# SageMathCell online https://sagecell.sagemath.org/?q=jpxgyy # (9,4) Moore bound=5266 # ''' Main properties of the graph com1768 | Ord.: 1768 / Size: 7956 / Diam.: 4 / Avg.dist: 3.63092 / 9-reg.? True / Girth: 3 comG24 | Ord.: 1640 / Size: 7380 / Diam.: 4 / Avg.dist: 3.57108 / 9-reg.? True / Girth: 5 Symmetry properties of the graph com1768 | Aut.group.ord.: 32 / Cayley ? False --- vtx.trans. ? False -- edge.trans. ? False comG24 | Aut.group.ord.: 1640 / Cayley ? True --- vtx.trans. ? True -- edge.trans. ? False Automorphism group structure C_n is the cyclic group of order n; x means direct product; : means semidirect product. comG24 : C41 : C40 | center order: 1 com1768 distance distrib from vtx. 0: [1, 9, 67, 508, 1183] comG24 distance distrib from vtx. 0: [1, 9, 72, 532, 1026] Number of k-cycles for k=3 up to 5 com1768 69 | 1881 | 1916 comG24 0 | 0 | 1640 ''' import networkx as nx com1768 =Graph(r":~?Zgk_?@?I?L?p@hDXGZH|_??J?K?o@gDWGYH{K__??b@AD]EhGiJjKG_@?a@BD^EgGjJiKHKa_@?iAqAvCrE@FuIt_??jArAuCqE?FvIsKc_@?wCgFjHKJpJzJ|_??xChFiHLJoJyJ{Ke_?@DDEDrHeHkI@KC_@@CDFDqHfHlI?KDKg_@BHClEOFtHXI{_?BGCkEPFsHWI|Ki_@@uCtE`FIHQHVJR_?@vCsE_FJHRHUJQKk_@ACA_BdFeGRKEKK_?ADA`BcFfGQKFKLKm_A?EABBPDEGCHpIY_B?FAABODFGDHoIZKo_B?SEwFGG]HRINIc_A?TExFHG^HQIMIdKq_B?aC}EHGIJJJgK?_A?bC~EGGJJIJhK@Ks_A?~@TBRBdIHIXJn_B?}@SBQBcIGIWJmKu_B@PBEECFpGYIaIe_A@OBFEDFoGZIbIfKw_A@fBICmEQFuHZI}_B@eBJCnFvI~Ky_ABuB|COESEpFtJv_BBvB{CPETEoFsJuK{_AC]DhFiIjJGJ_KB_BC^DgFjIiJHJ`KAK}_C?_@dDeERIEIKI`_D?`@cDfEQIFILI_L?_C@hBLCoFxH[J@_D@gBKCpESFwH\J?LA_D@nAmB\DVEGHCJ|_C@mAnB[DUEHHDJ{LC_C@pAYCaCeEbFpHe_D@oAZCbCfEaFoHfLE_CABASGwHGI]JRKN_DAAATGxHHI^JQKMLG_CA|BdDNEME|GvHg_DA{BcDMENE{GuHh_DCECrGeGkH@JCJ__CCFCqGfGlH?JDJ`LK_DEhExGNHAH~ITKR_CEgEwGMHBH}ISKQLM_E?K?`AcB?CDGEGr_F?L?_AdB@CCGFGqLO_E?N@K@YDVFJG|J]_F?M@L@ZDUFIG{J^_E?rCeCkD@FCF_Gd_F?qCfClD?FDF`GcLS_F?wBsEkFSG}H~Il_E?xBtElFTG~H}IkLU_F@iBMCqEUFzH]JA_E@jBNCrEVFyH^JBLW_F@yBkEMFUF^G[Gi_E@zBlENFVF]G\GjLY_EBCCpDYFaFeHbIp_FBDCoDZFbFfHaIoL[_H?X@nAaB^BtDrED_G?W@mAbB]BsDqECL]_G?_@B@aD}FHHIKJ_H?`@A@bD~FGHJKIL__G@]ARBNBcDbDsKW_H@^AQBMBdDaDtKXLa`lBOCtEXF{H`JC`kBPCsEWF|H_JD_HAIDJDgE?EbFAJ]_GAJDIDhE@EaFBJ^Le_GBCD|EdGNHMH|Jv_HBDD{EcGMHNH{JuLg_GBJCkFPFZF\G@Gw_HBIClFOFYF[G?GxLi_HBxEzG\J@JIJLJp_GBwEyG[J?JJJKJoLk_J?g@?@bAAE]FhHi_I?h@@@aABE^FgHj_J@kCPCZC\D@DwHg_I@lCOCYC[D?DxHhLo`mBQCuEZF}HaJF`nBRCvEYF~HbJELq_J@|C]DeDnEkEyIv_I@{C^DfDmElEzIuLs_IAQAVCRD`FUITK@_JARAUCQD_FVISK?Lu_IBJBgC?CbDAH]Ih_JBIBhC@CaDBH^IgLw_ICFDyFkIMJUJ^K[_JCEDzFlINJVJ]K\Ly_K?YCVEJF|I]JeJn_L?ZCUEIF{I^JfJmL{_K?sA]B^CLEFEwHs_L?tA^B]CKEEExHtL}_L@oBTCxE[G@JH_K@pBSCwE\G?JGM?_LAFAwDsGkHSI}J~_KAEAxDtGlHTI~J}MA_KAmBuB~C{DIHFIy_LAnBvB}C|DJHEIzMC_KApAzA|B`CWGGJJ_LAoAyA{B_CXGHJIME_N?cAbAsHWHgI}Jr_M?dAaAtHXHhI~JqMG_M?|AvBgEcH\IDJn_N?{AuBhEdH[ICJmMI_N@A@~ATCRCdJHJX_M@B@}ASCQCcJGJWMK_N@M@|BvCgFcI\JD_M@N@{BuChFdI[JCMM_M@U@^A[AiEfGYIK_N@V@]A\AjEeGZILMO_M@WBYEYEwFOFqGR_N@XBZEZExFPFrGQMQ_M@qBUCzE]GAHf_N@rBVCyE^GBHeJJMS_P?Z?\@@@wDgGjIK_O?Y?[@?@xDhGiILMU_O?q@RDmEwGyJyKW_P?r@QDnExGzJzKX_P?yBABEDBEPGEJC_O?zBBBFDAEOGFJDMY_P@HCxFzH\K@KIKL_O@GCwFyH[K?KJKKM[_P@TDVEAHuH|IOKS_O@SDUEBHvH{IPKTM]_OBXC{E`GCHhJL_PBWC|E_GDHgJKM__PAEDCEpFYHaHeJb_OAFDDEoFZHbHfJaMa_OASApBtFvGaKUK\_PATAoBsFuGbKVK[Mc_Q?VARB`DUGTI@Ii_R?UAQB_DVGSI?IjMe_R?dFHFXGnHaI^It_Q?cFGFWGmHbI]Is_Q?rDMEWGYJYJwKO_R?qDNEXGZJZJxKPMi_R@N@cBbBsIWIgJ}_Q@M@dBaBtIXIhJ~Mk_R@`BUETG@GiIqIv_Q@_BVESG?GjIrIuMm_Q@uC}EaGFHiJM_R@vC~EbGEHjJNMo_RCECKC`EcF?GDKE_QCFCLC_EdF@GCKFMq_RCmDwFyIyJWJoKQ_QCnDxFzIzJXJpKR_S?p@tDvEaIUI\Io_T?o@sDuEbIVI[IpMu_T@xB[D@EcGHHlJO_S@wB\D?EdGGHkJP_S@}A~BlDfEWHSKK_T@~A}BkDeEXHTKLMy_TA@AiCqCvErG@Hu_SA?AjCrCuEqG?HvM{_TARAdHHHXInJaK^_SAQAcHGHWImJbK]M}_SBKBsD]E^FLHFHw_TBLBtD^E]FKHEHxN?_TCVDAGuG|HOJSJp_SCUDBGvG{HPJTJoNA_U?\?oAsBPCTGVHA_V?[?pAtBOCSGUHBNC_U?^@[@iDfFYHKJm_V?]@\@jDeFZHLJnNE_V@ACuC|DOFSFpGt_U@BCvC{DPFTFoGs_V@GCCE|FdHNIMI|_U@HCDE{FcHMINI{NI_U@zB]DAEfGIHm_V@yB^DBEeGJHnNK_VAJB|E]FeFnGkGy_UAIB{E^FfFmGlGzNM_UBTD@DiFqFvHrJ@_VBSD?DjFrFuHqJ?NO_W?g@}ArBnCCEBES_X?h@~AqBmCDEAETNQ_W?o@Q@rEMFWHYKY_X?p@R@qENFXHZKZNS_X@{B`DCEhGLHo_W@|B_DDEgGKHpNU_WAYDYDwEOEqFRJm_XAZDZDxEPErFQJnNW_WBSEKEsG]H^ILKF_XBTELEtG^H]IKKENY_XBZC|F`FiFlGPHH_WBYC{F_FjFkGOHG_WCGFJGkJPJZJ\K@_XCHFIGlJOJYJ[K?N]_Y?w@O@qAREmFwHy_Z?x@P@rAQEnFxHzN__Z@|C`CiClDPEHHx_Y@{C_CjCkDOEGHwNa_Z@}BaDFEiGMHqJU_Y@~BbDEEjGNHrJV_YAKCmDuD~E{FIJF_ZALCnDvD}E|FJJENe_YAaAeCbDpFeIcKP_ZAbAfCaDoFfIdKONg_YBYBwCOCqDRHmIw_ZBZBxCPCrDQHnIxNi_[?iCfEYGKImJuJ~_\?jCeEZGLInJvJ}Nk_\@DAnBmC\EVFGIC_[@CAmBnC[EUFHIDNm_[A@BcDHElGOHtJX_\A?BdDGEkGPHsJWNo_\AVBGECG|HdJNKM_[AUBHEDG{HcJMKNNq_\A}CECNDKDYHVJJ_[A~CFCMDLDZHUJINs_\B@BIBLBpChGXJZ_[B?BJBKBoCgGWJY_^?tArBDHhHxJNKA_]?sAqBCHgHwJMKBNw_^@LBFBwEsHkISJ}_]@KBEBxEtHlITJ~Ny_]@RANAcCbCsJWJg_^@QAMAdCaCtJXJhN{_]@^ALCFCwFsIkJS_^@]AKCECxFtIlJTN}_]@e@nAkAyEvGjI\_^@f@mAlAzEuGiI[O?_]@hBiEjFGF_GBGa_^@gBjEiFHF`GAGbOA_]AABfDIEmGQHuJZ_^ABBeDJEnGRHvJYOC_`?i?l@PAHDxGzI\__?j?k@OAGDwGyI[OE_`@IBQBVDRE`GUJT__@JBRBUDQE_GVJSOG_`@WDGGJHkKPKZK\__@XDHGIHlKOKYK[OIaCBhDLEoGTHxJ[aDBgDKEpGSHwJ\_`AUDTF@FiHqHvJr__AVDSF?FjHrHuJqOM_a?eAbBpDeGcIPIy_b?fAaBoDfGdIOIzOO_b?sFWFgG}HrInJC_a?tFXFhG~HqImJDOQ_a@^@tBrCDIhIxKN_b@]@sBqCCIgIwKM_b@pBeEcGPGyJAJE_a@oBfEdGOGzJBJFOU_aAFBiDMEqGUHzJ]_bAEBjDNErGVHyJ^OW_aCUC\CoEsFPGTKV_bCVC[CpEtFOGSKUOY_c@?ADEEErIeIkJ@_d@@ACEFEqIfIlJ?O[_cAHDOGXH{H|_dDPGWJ_J`LdO]_dANBMB|DvEgHcK\_cAMBNB{DuEhHdK[O__cAPAyDADEFBGPIE_dAOAzDBDFFAGOIFOa_cB\CDDnEmF\HVIG_dB[CCDmEnF[HUIHOc_dCeDRHEHKH`JcK?_cCfDQHFHLH_JdK@Oe_e?k@@BCB_CdGeHR_f?l@?BDB`CcGfHQOg_e?n@k@yDvFjH\J}_f?m@l@zDuFiH[J~Oi_e@RDEDKD`FcG?HD_f@QDFDLD_FdG@HCOk_f@WCSFKFsH]I^JL_e@XCTFLFtH^I]JKOm_fAIBmDQEuGZH}Ja_eAJBnDREvGYH~JbOo_fAYCKEmFuF~G{HI_eAZCLEnFvF}G|HJOq_eBcDPDyGAGEIBJP_fBdDODzGBGFIAJOOs_h?xANBAB~CTEREd_g?wAMBBB}CSEQEcOu_hALBoDTExG[I@Jc_gAKBpDSEwG\I?JdOw_hAiDjEGE_FBFaJ}_gAjDiEHE`FAFbJ~Oy_gBcE\FDGnHmI\KV_hBdE[FCGmHnI[KUO{_gBjDKFpFzF|G`HW_hBiDLFoFyF{G_HXO}_hCXFZG|J`JiJlKP_gCWFYG{J_JjJkKOP?_j@G@_ABAaE}GHII_i@H@`AAAbE~GGIJPA_jAKCpCzC|D`EWIG_iALCoCyC{D_EXIHPC_iAMBqDUEzG]IAJf_jANBrDVEyG^IBJePE_jA\C}EEENFKFYJV_iA[C~EFEMFLFZJUPG_iBjCGC_DBDaH}JH_jBiCHC`DADbH~JGPI_k?yCvEjG\I}KEKN_l?zCuEiG[I~KFKMPK_k@SA}B~ClEfFWIS_l@TA~B}CkEeFXITPM_lAOBtDXE{G`Jh_kAPBsDWE|G_JgPO_lAfBWESHKHsJ]K^_kAeBXETHLHtJ^K]PQ_kBMCUC^D[DiHfJY_lBNCVC]D\DjHeJZPS_kBPBZB\C@CwGgJj_lBOBYB[C?CxGhJiPU_n@CBBBSHwIGJ]KR_m@DBABTHxIHJ^KQPW_m@\BVCGFCH|IdKN_n@[BUCHFDH{IcKMPY_n@aA^AtCrDDJhJx_m@bA]AsCqDCJgJwP[_n@mA\CVDGGCI|Jd_m@nA[CUDHGDI{JcP]_m@u@~A{BIFFGyIk_n@v@}A|BJFEGzIlP__m@wByEyFWFoGQGr_n@xBzEzFXFpGRGqPa_mAQBuE}GaGbIE_nARBvDYDZE~IFPc_p?z?|@`AWEGHJIk_o?y?{@_AXEHHIIlPe_p@YBaBeDbEpGeJc_o@ZBbBfDaEoGfJdPg_oATBxD[F@GcJl_pASBwD\F?GdJkPi_pAeDcFPFyIAIEKB_oAfDdFOFzIBIFKAPk_q?vArC@DuGtI`JI_r?uAqC?DvGsI_JJPm_r@DFhFxHNIAI~JT_q@CFgFwHMIBI}JSPo_r@nACCBCSIwJGK]_q@mADCACTIxJHK^Pq_rA@BuEtG`HIJQJV_qA?BvEsG_HJJRJUPs_qAUBzD]FAGfIIJm_rAVByD^FBGeIJJnPu_s@PATEVFAIuI|JO_t@OASEUFBIvI{JPPwaXB{D`FCGhILJoaWB|D_FDGgIKJpPy_tA`BIDQDVFRG`IU_sA_BJDRDUFQG_IVP{_sBkCSD}E~FlHfIW_tBlCTD~E}FkHeIXP}_tCvDaHUH\HoJsKP_sCuDbHVH[HpJtKOQ?_u?|@OBSBpCtGvHa_v?{@PBTBoCsGuHbQA_u?~@{AIEFFyHkKM_v?}@|AJEEFzHlKNQC_v@aDUD\DoFsGPHT_u@bDVD[DpFtGOHSQE_v@gCcF\GDHnImJ\_u@hCdF[GCHmInJ[QG_uAZB}DaFFGiIMJq_vAYB~DbFEGjINJrQI_vAjC\E}GEGNHKHY_uAiC[E~GFGMHLHZQK_uBtD`EIGQGVIRJ`_vBsD_EJGRGUIQJ_QM_w@GA]BRCNCcEbEs_x@HA^BQCMCdEaEtQO_xA[DcFHGlIO_wA\DdFGGkIPQQ_wAyDyEWEoFQFrKM_xAzDzEXEpFRFqKNQS_xBzD\G@GIGLGpHh_wByD[G?GJGKGoHgQU_y@W@oAQArFMGWIY_z@X@pARAqFNGXIZQW_zA\D@DIDLDpEhIX_yA[D?DJDKDoEgIWQY_zA]CADfFIGmIQJu_yA^CBDeFJGnIRJvQ[_yAkDMEUE^F[FiJf_zAlDNEVE]F\FjJeQ]_yByCWCoDQDrIMJW_zBzCXCpDRDqINJXQ__{@IDFEyGkJMKUK^_|@JDEEzGlJNKVK]Qa_|@dBNCMC|EvFgIc_{@cBMCNC{EuFhIdQc_{A`CCDhFLGoITJx_|A_CDDgFKGpISJwQe_|B]CeCnDkDyHvJj_{B^CfCmDlDzHuJiQg_|B`BiBlCPDHGxJz_{B_BjBkCODGGwJyQi_~@lBfCWFSIKIsK]_}@kBeCXFTILItK^Qk_}@rAnBCDBDSJwKG_~@qAmBDDADTJxKHQm_}@~AlCfDWGSJKJs_~@}AkCeDXGTJLJtQo_}AEANBKBYFVHJI|_~AFAMBLBZFUHII{Qq_}AHCIFJFgG?GbHA_~AGCJFIFhG@GaHBQs_}AaCFDiFMGqIUJz_~AbCEDjFNGrIVJyQu`@@I@L@pAhEXHZI|`?@J@K@oAgEWHYI{Qw`@@iBqBvDrF@GuJt`?@jBrBuDqF?GvJsQy`@AcCHDlFOGtIXJ{`?AdCGDkFPGsIWJ|Q{`@AuDtF`GIIQIVKR`?AvDsF_GJIRIUKQQ}`A@EBBCPEEHCIpJY`B@FBACOEFHDIoJZR?`B@SFwGGH]IRJNJc`A@TFxGHH^IQJMJdRA`BAPCEFCGpHYJaJe`AAOCFFDGoHZJbJfRC`AAfCIDmGuIZJ}`BAeCJDnGvIYJ~RE`C@_AdEeFRJEJKJ``D@`AcEfFQJFJLJ_RG`CAhCLDoGxI[K@`DAgCKDpGwI\K?RI`CApBYDaDeFbGpIe`DAoBZDbDfFaGoIfRK`CB|CdENFMF|HvIg`DB{CcEMFNF{HuIhRM`E@K@`BcC?DDHEHr`F@L@_BdC@DCHFHqRO`E@NAKAYEVGJH|K]`F@MALAZEUGIH{K^`E@rDeDkE@GCG_Hd`F@qDfDlE?GDG`HcRS`F@wCsFkGSH}I~Jl`E@xCtFlGTH~I}JkRU`E@FCMDqI]KAcNDrFUFVI^KBRW`FAyCkFMGUG^H[Hi`EAzClFNGVG]H\HjRY`ECCDpEYGaGeIbJp`FCDDoEZGbGfIaJoR[`H@XAnBaC^CtErFD`G@WAmBbC]CsEqFCR]`HAlCODtG{I`KC`GAkCPDsG|I_KDR_`HBIEJEgF?FbGAK]`GBJEIEhF@FaGBK^Ra`GCJDkGPGZG\H@Hw`HCIDlGOGYG[H?HxRc`J@gA?AbBAF]GhIi`I@hA@AaBBF^GgIj`JAkDPDZD\E@EwIg`IAlDODYD[E?ExIhRg`IAmDuFZG}IaKF`JAnDvFYG~IbKERi`JA|D]EeEnFkFyJv`IA{D^EfEmFlFzJuRk`ICJCgD?DbEAI]Jh`JCIChD@DaEBI^JgRm`K@sB]C^DLFFFwIs`L@tB^C]DKFEFxItRocTDxF[F\H@IcKH`K@LCSDwH?IdKGRq`KBmCuC~D{EIIFJy`LBnCvC}D|EJIEJzRs`KBpBzB|C`DWHGKJ`LBoByB{C_DXHHKIRu`NAAA~BTDRDdKHKX`MABA}BSDQDcKGKWRw`NAMA|CvDgGcJ\KD`MANA{CuDhGdJ[KCRy`MAUA^B[BiFfHYJK`NAVA]B\BjFeHZJLR{`MAWCYFYFwGOGqHR`NAXCZFZFxGPGrHQR}`MAqCUDzF]HAIf`NArCVDyF^HBIeS?`P@Z@\A@AwEgHjJK`O@Y@[A?AxEhHiJLSA`P@yCACEEBFPHEKC`O@zCBCFEAFOHFKDSC`OCXD{F`HCIhKL`PCWD|F_HDIgKKSE`Q@VBRC`EUHTJ@Ji`R@UBQC_EVHSJ?JjSG`R@dGHGXHnIaJ^Jt`Q@cGGGWHmIbJ]JsSI`RA`CUFTH@HiJqJv`QA_CVFSH?HjJrJuSK`QCZD}FaHFIiKM`RCYD~FbHEIjKNSM`S@pAtEvFaJUJ\Jo`T@oAsEuFbJVJ[JpSO`TAxC[E@FcHHIlKO`SAwC\E?FdHGIkKPSQ`TB@BiDqDvFrH@Iu`SB?BjDrDuFqH?IvSS`SCKCsE]F^GLIFIw`TCLCtE^F]GKIEIxSU`U@\@oBsCPDTHVIA`V@[@pBtCODSHUIBSW`VAADuD|EOGSGpHt`UABDvD{EPGTGoHsSY`VAGDCF|GdINJMJ|`UAHDDF{GcIMJNJ{S[`UAzC]EAFfHIImKQ`VAyC^EBFeHJInKRS]`VBJC|F]GeGnHkHy`UBIC{F^GfGmHlHzS_`UCTE@EiGqGvIrK@`VCSE?EjGrGuIqK?Sa`W@gA}BrCnDCFBFS`X@hA~BqCmDDFAFTSc`XA{ECFhHLIoKT`WA|EDFgHKIpKSSe`XCZD|G`GiGlHPIH`WCYD{G_GjGkHOIGSg`Y@wAOAqBRFmGwIy`Z@xAPArBQFnGxIzSi`ZA|D`DiDlEPFHIx`YA{D_DjDkEOFGIwSkcaIqKUKVcbFiFjIrSm`YBKDmEuE~F{GIKF`ZBLDnEvE}F|GJKESo`YCYCwDODqERImJw`ZCZCxDPDrEQInJxSq`\ADBnCmD\FVGGJC`[ACBmCnD[FUGHJDSs`[B@CcEHFlHOItKX`\B?EGFkHPIsKWSu`\B}DEDNEKEYIVKJ`[B~DFDMELEZIUKISw`\C@CICLCpDhHXKZ`[C?CJCKCoDgHWKYSy`]A^BLDFDwGsJkKS`^A]BKDEDxGtJlKTS{`]AeAnBkByFvHjJ\`^AfAmBlBzFuHiJ[S}`]AhCiFjGGG_HBHa`^AgCjFiGHG`HAHbT?`]BACfHQIuKZ`^BBCeHRIvKYTA``@i@lAPBHExHzJ\`_@j@kAOBGEwHyJ[TC``AICQCVERF`HUKT`_AJCRCUEQF_HVKSTE``BCChELFoHTIxK[`_BDCgEKFpHSIwK\TG`a@eBbCpEeHcJPJy`b@fBaCoEfHdJOJzTI`b@sGWGgH}IrJnKC`a@tGXGhH~IqJmKDTK`bApCeFcHPHyKAKE`aAoCfFdHOHzKBKFTM`aBFCiEMFqHUIzK]`bBECjENFrHVIyK^TO`cA?BDFEFrJeJkK@`dA@BCFFFqJfJlK?TQ`cBPByEAEEGBHPJE`dBOBzEBEFGAHOJFTS`cC\DDEnFmG\IVJG`dC[DCEmFnG[IUJHTU`e@kA@CCC_DdHeIR`f@lA?CDC`DcHfIQTW`eAREEEKE`GcH?ID`fAQEFELE_GdH@IC`fAWDSGKGsI]J^KL`eAXDTGLGtI^J]KKT[`fBYDKFmGuG~H{II`eBZDLFnGvG}H|IJT]`eCcEPEyHAHEJBKP`fCdEOEzHBHFJAKOT_`h@xBNCAC~DTFRFd`g@wBMCBC}DSFQFcTa`gCjEKGpGzG|H`IW`hCiELGoGyG{H_IXTc`jAGA_BBBaF}HHJI`iAHA`BABbF~HGJJTe`jBKDpDzD|E`FWJG`iBLDoDyD{E_FXJHTg`jB\D}FEFNGKGYKV`iB[D~FFFMGLGZKUTi`iCjDGD_EBEaI}KH`jCiDHD`EAEbI~KG`kASB}C~DlFfGWJS`lATB~C}DkFeGXJTTm`kCMDUD^E[EiIfKY`lCNDVD]E\EjIeKZTo`mAuA~B{CIGFHyJk`nAvA}B|CJGEHzJl`mAwCyFyGWGoHQHr`nAxCzFzGXGpHRHqTs`p@z@|A`BWFGIJJk`o@y@{A_BXFHIIJlTu`q@vBrD@EuHtJ`KI`r@uBqD?EvHsJ_KJTw`rADGhGxINJAJ~KT`qACGgGwIMJBJ}KSTy`rB@CuFtH`IIKQKV`qB?CvFsH_IJKRKUT{`sAPBTFVGAJuJ|KO`tAOBSFUGBJvJ{KPT}`tB`CIEQEVGRH`JU`sB_CJEREUGQH_JVU?`sCkDSE}F~GlIfJW`tClDTE~F}GkIeJXUA`u@|AOCSCpDtHvIa`v@{APCTCoDsHuIb`vAaEUE\EoGsHPIT`uAbEVE[EpGtHOISUE`vAgDcG\HDInJmK\`uAhDdG[HCImJnK[`vBjD\F}HEHNIKIY`uBiD[F~HFHMILIZUI`wAGB]CRDNDcFbFs`xAHB^CQDMDdFaFtUK`xCzE\H@HIHLHpIh`wCyE[H?HJHKHoIgUM`yAWAoBQBrGMHWJY`zAXApBRBqGNHXJZUO`zB\E@EIELEpFhJX`yB[E?EJEKEoFgJWUQ`yCyDWDoEQErJMKW`zCzDXDpEREqJNKXUS`|AdCNDMD|FvGgJc`{AcCMDND{FuGhJdUU`}BEBNCKCYGVIJJ|`~BFBMCLCZGUIIJ{UW`}BHDIGJGgH?HbIA`~BGDJGIGhH@HaIBUYa@AIALApBhFXIZJ|a?AJAKAoBgFWIYJ{U[aAAECBDPFEICJpKYaBAFCADOFFIDJoKZU]aCBpCYEaEeGbHpJeaDBoCZEbEfGaHoJfU_aCC|DdFNGMG|IvJgaDC{DcFMGNG{IuJhUaaEAKA`CcD?EDIEIraFALA_CdD@ECIFIqUcaEArEeEkF@HCH_IdaFAqEfElF?HDH`IcUeaFByDkGMHUH^I[IiaEBzDlGNHVH]I\IjUgaHAXBnCaD^DtFraGAWBmCbD]DsFqUiaGDJEkHPHZH\I@IwaHDIElHOHYH[I?IxUkaJAgB?BbCAG]HhJiaIAhB@BaCBG^HgJjUmaJBkEPEZE\F@FwJgaIBlEOEYE[F?FxJhaKAsC]D^ELGFGwJsaLAtC^D]EKGEGxJtUqaMBUB^C[CiGfIYKKaNBVB]C\CjGeIZKLUsaMBWDYGYGwHOHqIRaNBXDZGZGxHPHrIQUuaPAZA\B@BwFgIjKKaOAYA[B?BxFhIiKLUwaTC@CiEqEvGrI@JuaSC?CjErEuGqI?JvUyaSDKDsF]G^HLJFJwaTDLDtF^G]HKJEJxU{aUA\AoCsDPETIVJAaVA[ApCtDOESIUJBU}aVBAEuE|FOHSHpItaUBBEvE{FPHTHoIsV?aVCJD|G]HeHnIkIyaUCID{G^HfHmIlIzVAaWAgB}CrDnECGBGSaXAhB~CqDmEDGAGTVCaXDZE|H`HiHlIPJHaWDYE{H_HjHkIOJGVEaYAwBOBqCRGmHwJyaZAxBPBrCQGnHxJzVGaZB|E`EiElFPGHJxaYB{E_EjEkFOGGJwVIa\BDCnDmE\GVHGKCa[BCCmDnE[GUHHKDVKa]BeBnCkCyGvIjK\a^BfBmClCzGuIiK[VMa]BhDiGjHGH_IBIaa^BgDjGiHHH`IAIbVOa`AiAlBPCHFxIzK\a_AjAkBOCGFwIyK[VQacCPCyFAFEHBIPKEadCOCzFBFFHAIOKFacD\EDFnGmH\JVKGadD[ECFmGnH[JUKHVUaeAkB@DCD_EdIeJRafAlB?DDD`EcIfJQVWaeBRFEFKF`HcI?JDafBQFFFLF_HdI@JCVYafCYEKGmHuH~I{JIaeCZELGnHvH}I|JJV[ahAxCNDAD~ETGRagAwCMDBD}ESGQV]agDjFKHpHzH|I`JWahDiFLHoHyH{I_JXV_ajBGB_CBCaG}IHKIaiBHB`CACbG~IGKJajCKEpEzE|F`GWKGaiCLEoEyE{F_GXKHVcakBSC}D~ElGfHWKSalBTC~D}EkGeHXKTamBwDyGyHWHoIQIranBxDzGzHXHpIRIqVgatC`DIFQFVHRI`KUasC_DJFRFUHQI_KVasDkESF}G~HlJfKWatDlETF~G}HkJeKXVkauA|BODSDpEtIvJaavA{BPDTDoEsIuJbVmavBaFUF\FoHsIPJTauBbFVF[FpHtIOJSVoavCjE\G}IEINJKJYauCiE[G~IFIMJLJZVqawBGC]DRENEcGbGsaxBHC^DQEMEdGaGtVsaxDzF\I@IIILIpJhawDyF[I?IJIKIoJgVuayBWBoCQCrHMIWKYazBXBpCRCqHNIXKZazC\F@FIFLFpGhKXayC[F?FJFKFoGgKWVya}CHEIHJHgI?IbJAa~CGEJHIHhI@IaJBV{bEBKB`DcE?FDJEJrbFBLB_DdE@FCJFJqV}bEBrFeFkG@ICI_JdbFBqFfFlG?IDI`JcW?bFCyEkHMIUI^J[JibECzElHNIVI]J\JjWAbHBXCnDaE^EtGrHDbGBWCmDbE]EsGqHCWCbGEJFkIPIZI\J@JwbHEIFlIOIYI[J?JxWEbMCWEYHYHwIOIqJRbNCXEZHZHxIPIrJQWGbUB\BoDsEPFTJVKAbVB[BpDtEOFSJUKBWIbVCAFuF|GOISIpJtbUCBFvF{GPITIoJsWKbVDJE|H]IeInJkJybUDIE{H^IfImJlJzWMbWBgC}DrEnFCHBHSbXBhC~DqEmFDHAHTWObXEZF|I`IiIlJPKHbWEYF{I_IjIkJOKGWQb]ChEiHjIGI_JBJab^CgEjHiIHI`JAJbWSbeBkC@ECE_FdJeKRbfBlC?EDE`FcJfKQWUbeCRGEGKG`IcJ?KDbfCQGFGLG_IdJ@KCWWbfDYFKHmIuI~J{KIbeDZFLHnIvI}J|KJWYbhBxDNEAE~FTHRHdbgBwDMEBE}FSHQHcW[bgEjGKIpIzI|J`KWbhEiGLIoIyI{J_KXW]bmCwEyHyIWIoJQJrbnCxEzHzIXIpJRJqW_bvCaGUG\GoIsJPKTbuCbGVG[GpItJOKSWabvDjF\H}JEJNKKKYbuDiF[H~JFJMKLKZbwCGD]ERFNFcHbHsbxCHD^EQFMFdHaHtWeb}DHFIIJIgJ?JbKAb~DGFJIIIhJ@JaKBWgcHCXDnEaF^FtHrIDcGCWDmEbF]FsHqICWicMDWFYIYIwJOJqKRcNDXFZIZIxJPJrKQWkcWCgD}ErFnGCIBIScXChD~EqFmGDIAITWmchCxENFAF~GTIRIdcgCwEMFBF}GSIQIcWocwDGE]FRGNGcIbIscxDHE^FQGMGdIaItWqdHDXEnFaG^GtIrJDdGDWEmFbG]GsIqJCWsdWDgE}FrGnHCJBJSdXDhE~FqGmHDJAJTWudhDxFNGAG~HTJRJddgDwFMGBG}HSJQJcWwdwEGF]GRHNHcJbJsdxEHF^GQHMHdJaJteHEXFnGaH^HtJrKDeGEWFmGbH]HsJqKCW{eWEgF}GrHnICKBKSeXEhF~GqHmIDKAKTW}_@@cBHClEOFtI{_?@dBGCkEPFsI|X?_A@fBICmEQFuI}_B@eBJCnERFvHYI~XA_C@hBLCoETFxH[J@_D@gBKCpFwH\J?XC_F@iBMCqEUH]JA_E@jBNCrEVH^JBXE_H@lBOCtEXF{JCKz_G@kBPCsEWF|JD_I@mBQCuEZF}HaJF_J@nBRCvEYF~HbJEXI_L@oCxE[G@HcJH_K@pCwE\G?HdJGXK_M@qBUCzE]GAHfJI_N@rBVCyE^GBHeXM_O@tBXC{E`GCHhJL_P@sBWC|E_GDHgJKXO`uBZC}EaGFHi`vBYC~EbGEHjXQ_T@xB[D@EcGHHlJO_S@wB\D?EdGGHkJP_U@zB]DAEfGIHmJQ_V@yB^DBEeGJHnJRXU_X@{B`EhGLHoJT_W@|B_EgGKHpJSXW`}BaDFEiGMHqJU`~BbDEEjGNHrJVXH_[BcDHElGOHtJX_\BdDGEkGPHsJWX[_]AABfEmGQHuJZ_^ABBeEnGRHvJYX]_`BhDLEoGTHxJ[__BgDKEpGSHwJ\_aAFBiDMEqGUHzJ]_bAEBjDNErGVHyJ^Xa_cAHBlDOEtGXH{J`_dAGBkDPEsGWH|J_Xc_fAIBmDQEuH}Ja_eAJBnDREvH~JbXe_hALBoExG[I@Jc_gAKBpEwG\I?JdXg_iAMBqDUEzG]IAJf_jANBrDVEyG^IBJeXi_lAODXE{G`ICJh_kAPDWE|G_IDJgXk_mAQBuDZE}GaIFJi_nARBvDYE~GbIEJjXm_oATBxD[F@GcIHJl_pASBwD\F?GdIGJkXoaUBzD]FAGfIIJmaVByD^FBGeIJJnXq_tAXB{D`FCGhILJo_sAWB|D_FDGgIKJpXs_uAZB}DaFFGiIM_vAYB~DbFEGjINXu_xA[C@DcFHGlIOJt_wA\C?DdFGGkIPJsXwa]CADfFIGmIQJua^CBDeFJGnIRJvXy_{A`CCDhFLGoITJx_|A_CDDgFKGpISJwX{_}AaCFFMGqIUJz_~AbCEFNGrIVJyX}`@AcCHDlFOIXJ{`?AdCGDkFPIWJ|Y?`AAfCIDmFQGuIZJ}`BAeCJDnFRGvIYJ~YA`CAhCLDoFTGxI[K@`DAgCKDpFSGwI\K?YC`FAiCMDqFUGzI]KA`EAjCNDrFVGyI^KBYE`HAlCODtFXG{I``GAkCPDsFWG|I_YG`IAmAnCQIaKF`JCRG}G~IbKEYI`LAoDxF[H@IcKH`KApDwF\H?IdKGYK`MAqCUDzF]HAIfKI`NArCVDyF^HBIeKJYM`OAtCXD{F`IhKL`PAsCWD|F_IgKKYO`QAuD}FaHFKMKN`RAvCYCZD~FbHEYQ`TAxC[E@FcHHIlKO`SAwC\E?FdHGIkKPYS`UC]EAImInKR`VC^EBFeFfKQYU`XA{C`ECFhHLIoKT`WA|C_EDFgHKIpKSYW`ZA}CaEFFiHMIqKU`YA~CbEEFjHNIrKVYY`[B@EHFlHOItKX`\B?CdEGFkHPIsKWY[`]BACfEIFmHQIuKZ`^BBCeEJFnHRIvKYY]``BCELFoHTIxK[`_BDEKFpHSIwK\Y_`aBFCiEMFqHUIzK]`bBECjENFrHVIyK^YaauAvSMSNTYTZUCUD`Y@ZSmSnUGUHYcfWFXRQRRR_R`VaVbbYBZMoMpTkTlYecgChNGNHN[N\Y_Y`gyGzRWRXTqTraiAjMWMXRWRXcQCRMgMhRiRjWyWzcSCTNuNvYKYL_Q?RVeVfWcWdXQXR_s?tPyPzVwVxYkYl__?`OKOLYfeSETLALILJXDYmjsJtOSOTQQQRVSVThCHDYOYPYoYpfYFZLmLnYIYJ`s@tM_M`MsMtYjjMJNMwXQXRXTccCdSvY[YsYt_G?HLcLddSDTXgXhYtgcGdV]V^Yqa?A@X[X\YnYuhMHNNcNdSmSnjSJTNUNVYqesEtO]O^YdYwYyhcHdM?M@ReRfY{Y|bsBtXkXlYteEEFLQLRSmSnc_C`SeSfUoUpYy_I?JLqLrYfYkYvY{c?C@MxQQQRXSYvY~fQFRRERFYnY}gYGZXeXfYhY{asAtSESFYzZ@ZDdIDJX]X^ZCZDbSBTXKXLYiYnYoZ?hWHXX?X@YrZCgsGtY?Y@ZAZEfSFTRIRJZHjqJrXuXvYuiCIDPOPPYwZIZJa}A~SmSnViVjZHZKfyFzXEXFYrZBkIKJS?S@X_YwayAzYUYVYdZNiGIHPiPjYgYsYxZFZPeIEJTATBXYYvYzdiDjX}X~YqZFZMZOiiIjLcYQYRZKh_H`XGXHYxZ@ZGZJ_y?zXyXzY~ZTZUfmFnTATBZFZNZReRHYHZKzXAYnY~ZJZW_Y?ZXYXZYuYvZJZLhIHJYUYVYiYvYwZPaoApRqRrYhZ?ZEZNZOgCGDUiUjYhYxY~aCADX_X`ZPZTZ\duDvYIYJYrZ?ZIZKkCKDOKOLYGYHZIZTZ]jiJjPcPdX`YzZCZVjIJJMSXNYkZWZ]Z^aGBkBlO]O^Y|Z\ZajQJRNKNLYyZSZZZ`dCDDXWXXYiZDZHZYZc`c@dKiKjY{ZKZLZR_q?rXqXrYxZOZVZbZe") # Z_40 x(24)Z_41 comG24=Graph(r":~?Xg_^?Z_[_\_]_t?C_D_E_F_G_z?H_I_J_??K_@?L_N_O_P_Q_R`E?S_T_U_A?V_W_Y_|_}_A?~`?`P@@`A`B`C`E`F`G`H`I`J`[?^___`_a_b_d_e_f_g_h`f?i_j_k_l_m_o_p_q_r_??s`I@N`r?@?t_u_v_w_x_z_{`Z@o`e@r`q@s`}@t@|`u`v`w`x`K`L`M`N`P`~`Q`R`S`T`U`V`W`X`Y`[a?`\`]`^`_```a`b`c`d`fa@_B@g_M@h_X@i_c@j_n@k_y@l`D@m`O@naHaIaA_BAJ_MAK_XAL_cAM_nAN_yAO`DAP`OAQ`ZAS`eATaB`qAU`|AVaGAWaRAXaYA]aZAha[Asa\a^a_aCA{a`aaabacadae`y`z`{`}aDA|`~a?a@aAaBaCaDaEaFbBaEA}bCbDbEbFbGbHbJbKbLbM`J@PaFB?_?BN_@BObPbQbRafagaiajakaHB@_AAl`pAmanB_aoapaqaratauavaIBAawaxayaza{a|a}b?b@bAbJBqbqbrbsbtbubwbxbybzb{bKBrb|b}b~c?c@bSbUbVbWbXbLBsbYbZb[b\b]b^babbbcbdbMBtbebfbgbhbibjblbmbnbobNBubp_MCK_XCM_cCN_nCO_yCP`DCQ`OCR`ZCS`eCTbOBw`qCU`|CVaGCXaRCYa]CZahC[asC\a~C]bIC^bTC_bPBxb`C`bkCabvCccdcecfcgchcicj_^@QBobQByckclcncBcCcDcEcFcGcHbRBzcI_BCJcxC{c|DCc}DOc~DZd?d@dAdBafB{DadDdEdFdGdHdIdJdKdLdMagB|DbdPdQdRdSdTdUdVdWdXdYaiB}Dcd[d\cocpcqcrcsctcACucLCvajB~DdcWCwcbCycmCzdqdrdsdtdudvdwakC?Dfdxdydzd|d}d~e?e@eAeBalC@DgeCeDeEeGeHeId]d^d_d`amBSDhdadbdcdddfdgdhdidjdk_BAnBUDidldmdndoebecedeeefeh__@RBp_MAoBVDjeiejekelemeneoepeqes_XApBWDketeueveJeKeLeMeNeOeP_cAqBXDleReSeTeUeVeWeXeYeZe[_nArBYDme]e^e_e`ea_UF`_VFa_WFb_YFc_ZFd_yAtBZDn_[Ew_\Ex_]Eyeze{e|f?f@fAfB`DAuB[DofCfDfEfFfGfHfJfKfL_CFM`OAvB\Dq_DFN_EFO_FFP_GFQ_HFR_IFS_JFU_KFV_LFW_NFX`ZAwB]Dr_OFY_PFZ_QF[_RF\_SF]_TF^_lFh_mFi_oFk_pFl`eAxB^Ds_qFm_rFn_sFo_tFp_uFq_vFr_wFs_xFt_zFv_{Fw`qAyBaDt_|Fx_}Fy_~Fz`?F{`@F|`AF}`BF~`CG?`EGA`FGB_`@SBq`|AzBbDu`GGC`HGD`IGE`JGF_^GG__GH_`GI_aGJ_bGL_dGMaGA{BcDv_eGN_fGO_gGP_hGQ_iFe_jFf_kFg`gGu`hGv`iGwaRA|BdDw`jGy`kGz`lG{`mG|`nG}`oG~`rH?`sGR`tGS`uGTa]A}BeDx`vGU`wGW`xGX`KGY`LGZ`MG[`NG\`PG]`QG^`RG_ahB?BfDy`SG``TGb`UGc`VGd`WGe`XGf`YGg`[Gh`\Gi`]GjasB@BgDz`^Gk`_Gn``Go`aGp`bGq`cGr`dGs`fGt_ZAVHG_[AWHHa~BABhD|_\AXHI_]AYHJaZHKa[HLa\HMa^HOa_HPa`HQaaHRabHSbBBIBiD}acHTadHUaeHV`yHW`zHX`{HZ`}H[`~H\_CA?H]_DA@H^bCBTBjD~_EAAH__FABH`_GACHa_HADHb_IAEHc_JAFHe_KAHHf_LAIHg_NAJHh_OAKHibDB`BlE?_PALHj_QAMHk_RANHl_SAOH@_TAPHA_UAQHB_VASHD_WATHE_YAUHF_|ApID_a@TBrbEBkBmE@_}AqIF_~ArIG`?AtIH`@AuII`AAvIJ`BAwIK`CAxIL_C@EAyIM_D@FAzIN_E@GA{IObFBnBvEA_F@HA|IQ_??G@IA}IR_@?H@JB?IS_I?^B@IT_J?_BAIU_K?`BBIV_L?aBCIW_N?bBDIX_O?dBEIY_P?eBFHmbGBoEB_Q?fBGHn_A?R?gBHHp_S?h@pBJHq_T?iBKB_Hr_U?jBLDNHs_V?kBME}Ht_W?lBNGlHu_Y?mBOHvI[_Z?oBPHw_[?pBQHxbHBpEC_\?qBRHy_]?rAfH{_sAgH|_tAiH}_uAjH~_vAkI?_wAlI@_xAmIA_zAnIB_{AoIC_DBuCKDOEM_EBwCMDZEN_FBxCNDeEO_GByCODpEP_HBzCPD{ER_IB{CQEFES_b@UBsI{_JB|CREQET_KB}CSEUE\_LB~CTEVEg_NC?CUEWEr_OC@CVEXE~_PBSCXEYFI_QBUCYEZFT_RBVCZE[F__SBWC[E]Fj_TBXC\E^Fu_d@VBtI|_UBYC]E_G@_VBZC^E`GK_WB[C_EaGV_YB\C`EbGa_ZB]CaEcGm_[B^CcEdGx_\BaCdEeHC_]BbCeEfHNbcCfEhHYbdCgEiHd_e@WBuI~beChEjHobfCiEkHzbgCjElIEbhCkEmIPbiClEnI\bjCnEoIgblCBEpIrbmCCEqI}bnCACDEsboCECLEt`?@sBcIk_f@XBwJ?bpCFCWEubqCGCbEvbrCHCmEJbsCICxEK_CBtCJDCEL`IC[C{FZJL`JC\C|F[JM_^C]C}F\JO__C^C~F]JP_`C_D?F^JQ_g@YBxJ@_aC`D@F`JR_bCaDAFaJS_dCcDBFbJT_eCdDDFcJU_fCeDEFdJV_gCfDFEwJW_hCgDGExJX_iChDHEyJZ_jCiDIEzJ[_kCjDJE{J\_h@[ByJA_lCkDKE|J]_mClDLF?J^_oCnDMF@J__pCBDPFAJ`_qCCDQFBJa_rCDDRFCJb_sCEDSFDJc_tCFDTFEJe_uCGDUFFJf_vCHDVFGJg_i@\BzJB_wCIDWFHJh_xCJDXFJJi_zCKDYFKJj_{CMD[FLJk_|CND\FMJl_}COCoFNJm_~CPCpFOJn`?CQCqFPJq`@CRCrFQJr`ACSCsFRJs_j@]B{JC`BCTCtFSJt`CCUCuFUJu`ECVCvFVJH`FCXCwFWJI`GCYCyFXJJ`HCZCzFYJK`rDDDqFlKE`sDEDrFmKG`tDFDsFnKH`uDGDtFoKI_k@^B|JD`vDHDuFpKJ`wDIDvFqKK`xDJDwFrKL`KDKDxFsKM`LDLDyFtKN`MDMDzFvKO`NDPD|FwKP`PDQD}FxKR`QDRD~FyKS`RDSE?FzKT_l@_B}JE`SDTE@F{KU`TDUEAF|KV`UDVEBF}KW`VDWECF~KX`WDXEDG?KY`XDYEEGAKZ`YD[EGGBK[`[D\EHGCK]`\CoEIGDK^`]CpD]GEK__m@`B~JF`^CqD^GFK``_CrD_GGKa``CsD`GHKb`aCtDaGIJv`bCuDbGJJw`cCvDcGLJx`dCwDdGMJy`fCyDfGNJz`gCzDgGOJ|`hC{DhGPJ}_o@aC?JG`iC|DiGQJ~`jC}DjFeK?`kC~DkFfK@`lD?DlFgKA`mD@DmFhKB`nDADnFiKC`oDBDoFkKDabDbEbGiKlacDcEcGjKmadDdEdGkKn_p@bC@IZaeDfEeGnKo`yDgEfGoKp`zDhEhGpKq`{DiEiGqKs`}DjEjGrKt`~DkEkGsKua?DlElGtKva@DmEmGuKwaADnEnGvKxaBDoEoGwKy`@@tBdIl_q@cBSI]aCDqEpGyKzaDDrEqGzK{aEDsEsG{K|aFDtEtG|K~aHDuEuG}L?aIDvEvG~L@aJDwEJH?LAaKDxEKGRLBaLDyELGSLCaMDzEMGTLD_r@dBUI^aND|ENGULEaOD}EOGWLFaPD~EPGXLGaQE?ERGYLIaSE@ESGZLJaTEAETG[LKaUEBEUG\LLaVECEVG]LMaWEDEWG^LNaXEEEXG_LO_s@fBVI_aYEGEYG`KcaZEHEZGbKda[EIE[GcKea\D]E]GdKfa^D^E^GeKha_D_E_GfKia`D`E`GgKjaaDaEaGhKkbDEtF`HMLpbEEuFaHOLq_t@gBWI`bFEvFbHPLrbGEJFcHQLsbHEKFdHRLtbJELEwHSLvbKEMExHTLwbLENEyHULxbMEOEzHVLybNEPE{HWLzbOERE|HXL{bPESF?HZL|_u@hBXIabQETF@H[L}bREUFAH\LPafEVFBH]LQagEWFCH^LRaiEXFDH_LTajEYFEH`LUakEZFFHaLValE[FGHbLWamE]FHHcLXanE^FJHeLY_v@iBYIbaoE_FKHfLZapE`FLHgL[aqEaFMHhL\arEbFNHiL]atEcFOHjL`auEdFPHkLaavEeFQHlLbawEfFRH@LcaxEhFSHALdayEiFUHBLe_w@jBZIcazEjFVHDLfa{EkFWHELga|ElFXHFLha}EmFYHGLib?EnFZHHLkb@EoF[HILlbAEpF\HJLmbBEqF]HKLnbCEsF^HLLo_RByFCFhHnMP_x@kB[Id_SBzFDFiHpMQ_TB{FEFkHqMR_UB|FFFlHrMS_VB}FGFmHsMT_WB~FHFnHtMU_YC?FJFoHuMW_ZC@FKFpHvMX_[BSFLFqHwMY_\BUFMFrHxMZ_]BVFNFsHyM[_z@lB\IebWFOFtH{M\bXFPFvH|M]bYFQFwH}M^bZFRFxH~M_b[FSFyI?M`b\FUFzI@Mbb]FVF{IAMcb^FWF|IBMdbaFXF}ICMebbFYF~IDMf_{@mB]IfbcFZG?IFMgbdF[GAIGMhbeF\GBIHMibfF]GCIIMjbgF^GDIJL~bhF`GEIKM?_CBiFaGFILMA_DBjFbGGIMMB_EBlFcGHINMC_FBmFdGIIOMD`A@uBeIm_|@nB^Ih_GBnEwGJIQME_HBoExGLIRMF_IBpEyGMISMG_JBqEzGNITMH_KBrE{GOIUMI_LBsE|GPIVMJ_NBtF?GQIWML_OBuF@FeIXMM_PBwFAFfIYMN_QBxFBFgHmMO_@@]AHCU_wCPGLGuIvM|_xCQGMGvIwM}_zCRGNGwIxM~_{CSGOGyIyN?_|CTGPGzIzN@_}CUGQG{I{NA_~CVFeG|I|NC_C@?CXFfG}I~ND_D@@CYFgG~J?NE_E@ACZFhH?J@NF_B@^AICVJo_F@BC[FiGRJANG_G@CC\FkGSJBNH_H@EC]FlGTJCNI_I@FC^FmGUJDNJ_J@GC_FnGWJENK_K@HC`FoGXJFNL_L@ICaFpGYJGNO_N@JCcFqGZIZNP_O?^CdFrG[I]NQ_P?_CeFsG\I^NR_M@_AJCXL^_Q?`CfFtG]I_NS_R?aCgFvG^I`NT_S?bChFwG_IaNU_T?dCiFxG`IbNV_U?eCjFyGbIcNW_V?fCkFzGcIdNX_W?gClF{GdIeMk_Y?hCnF|GeIfMm_Z?iCBF}GfIhMn_[?jCCF~GgIiMo_X@`AKCYNM_\?kCDG?GhIjMp_]?lCEGAGiIkMq_mCFGBGjIlMr_oCGGCGkImMs_pCHGDGnInMt_qCIGEGoIoMu_rCJGFGpIpMv_sCKGGGqIqMx_tCMGHGrIsMy_uCNGIGsItMz_c@aALCZ_vCOGJGtIuM{_j@`DJGhHGJoN}_k@aDKGiHHL^N~_l@bDLGjHINMO?_m@cDMGkHJO@_o@dDPGnHKOA_p@fDQGoHLOB_q@gDRGpHMOC_r@hDSGqHOOD_A?s@iDTGrHPOF_n@bAMC[_t@j@pDUGsHQNZ_u@kB_DVGtHRN[_v@lDNDWGuHSN\_w@mDXE}GvHTN]_x@nDYGlGwHUN^_z@oD[GyHVI[N__{@rD\GzHWJNN`_|@sCoG{HXJYNa_}@tCpG|HZJdNb_~@uCqG}H[JpNc_y@cANC\`?@vCrG~H\J{Ne`@@wCsH?H]KFNf`A@xCtGRH^KQNg`B@KCuGSH_K\Nh`C@LCvGTH`KgNi`E@MCwGUHaKrNj`F@NCyGWHbK}Nk`G@PCzGXHcLHNl`H@QC{GYHeLSNm`I@RC|GZHfL_Nn`D@dAOC]`J@SC}G[HgLjNp_^@TC~G\HhLuNq__@UD?G]HiM@Nr_`@VD@G^HjMKNs_a@WDAG_HkMVNt_b@XDBG`HlMaNu_d@YDDGbH@MlNv_e@[DEGcHAMwNw_f@\DFGdHBNBNx_g@]DGGeHDNNNy`O@fAPC^_??h@^DHGfHEN{_@?i@_DIGgHFN|`_A?DyH`IDOfOh``A@DzHaIFOiOq`aAAD|HbIGOj`bABD}HcIHOk`cACD~HeIIOl`dADE?HfIJOm`fAEE@HgIKOn`gAFEAHhILOo`B@vBfInOEOJ_A@Z@gAQC_Ov`hAHEBHiIMOp`iAIECHjINOr`jAJEDHkIOOs`kAKEEHlIQOG`lALEGH@IROH`mAMEHHAISOI`nANEIHBITOJ`oAOD]HDIUOK`rAPD^HEIVOL`sAQD_HFIWOM`e@h@pASC`Ow`tASD`HGIXON`uATDaHHIYOO`vAUDbHIHmOQ`wAVDcHJHnOR`xAWDdHKHpOS`KAXDfHLHqOT`LAYDgHMHrOU`MAZDhHOHsOV`NA[DiHPHtOW`PA\DjHQHuOX`i@qATB_CaOx`QA^DkHRHvOY`RA_DlHSHwOZ`SA`DmHTHxO\`TAaDnHUHyO]`UAbDoHVH{O^`VAcDqHWH|O_`WAdDrHXH}NYO``XAeDsHZH~NdOa`Y@yDtH[I?NoOb`[@zDuH\I@NzOc`j@|AUCcDNOy`\@{DvH]IAOEOd`]@}DwH^IBOPOe`^@~DxH_ICO[OgaQBPETIYIiPNaSBQEUHmIjPOaTBREVHnIkPPaUAfEWHpIlPQaVAgEXHqImPRaWAiEYHrInPTaXAjEZHsIoPU`kAGAVCdE}OzaYAkE[HtIpPVaZAlE]HuIqPWa[AmE^HvIsPXa\AnE_HwItPYa^AoE`HxIuPZa_ApEaHyIvP[_CA`AqEbH{IwP\_B?DAaArEcH|IxP]_E?MAbAtEdH}IyP__F?XAcAuEeH~IzP``lARAWCeGlO{_G?cAdAvEfI?I{Pa_H?nAeAwEhI@I|Ot_I?y@yAxEiIAI~Ou_J@D@zAyEjIBJ?Ov_K@O@{AzEkICJ@Ow_L@Z@}A{ElIDJAOx_N@e@~A|EmIFJBOy_O@qA?A}EnIGJCOz_P@|A@B?EoIHJDO{_QAAAGB@EpIIJEO~`mAXA]CfI[O~_RABARBAEqIJJFP?_SACA]BBEsIKJGP@_TADAhBCEtILIZPA_UAEAsBDEuIMI]PB_VAFA~BEEvINI^PC_WAHBFBIEJIOI_PD_YAIBGBTEKIQI`PE_ZAJBHB`ELIRIaPF_[AKBJBkEMISIbPG_\ALBKBvENITIcPI`nAYAhCgJNP?_]AMBLEOIUIdPJaNBMEPIVIePKaOBNERIWIfPLaPBOESIXIhPM_@@@BNB^E\FDInPw`ABOBaEgFEIoJoPx`BBPBbErFFIpL^Py`CBQBcE~FGIqNMPz`EBRBdFHFIIsO|P{`FAfBeFJFTItP|`oAZAsChJYP@`GAgBfFKF_IuP}`HAiBgFLFjIvP~`IAjBhFMFuIwQ@_A@JAkBiFNG@IxQA_^@pAlBjFOGKIyQB__AmB_BlFPGVIzQC_`AnBmDNFQGaI{QD_aAoBnE}FRGmI|QE_bApBoFSGlGxI~QF_dAqBpFUHCI[J?QG`rA[A~CiJdPA_eArBqFVHNJ@JNQH_fAtBrFWHYJAJYQI_gAuBsFXHdJBJdQK_hAvBtFYHoJCJpQL_iAwBuFZHzJDJ{QM_jAxBwF[IEJEKFQN_kAyBxF\IPJFKQPb_lAzByF]I\JGK\Pc_mA{BzF^IZIgKgPd_oA|B{F`I]IrKrPe`C@wBgIoOKOPQT`sA\BICjJpPB_pA}B|FaI^I}K}Pf_qB?B}CAFbI_LHPg_rB@B~CLFcI`LSPh_sBAC?CWFdIaL_Pj_tBBC@CbEwIbLjPk_uBCBSCmExIcLuPl_vBDBUCxEyIdM@Pm_wBEBVDCEzIeMKPn_xBFBWDOE{IfMVPo_zBGBXDZE|IhMaPp`tA^BTCkJ{PC_{BHBYDeF?IiMlPq_|BJBZDpF@IjMwPr_}BKB[D{FAIkNBPs_~BLB\EFFBIlNNPu_?@?BMB]EQFCImPv`RBWChFyJQNBQT`SBXCiFzJRNNQV_?@TBYCjF{JSQW_@@UBZCkF|JTQX`VB[ClF}JUJoQY`uA_B`ClKFPD`WB\CnF~JVL^QZ`XB]CBG?JWNMQ[`YB^CCGAJXO|Q\`[BaCDGBJZQ]Qk`\BbCEGCJ[Q^`]BcCFGDJ\Q_`^BdCGGEJ]Qa_A@_BeCHGFJ^Qb``@pBfCIGGJ_Qc`aB_BgCJGHJ`Qd`vA`BkCnKQPE`bBhCKDNGIJaQe`cBiCME}GJJbQf`dBjCNGLGlJcNYQg`fBlCOGMI[JeNdQh`gBmCPGNJNJfNoQi`hBnCQGOJYJgNzQj`iBoCRGPJdJhOEQm`jBpCSGQJiJpOPQn`kBqCTFeJjJ{O[Qo`lBrCUFfJkKFOfQp`wAaBvCBK\PF`mBsCVFgJlKQOqQq`nBtCXFhJmK\O}Qr`oBuCYFiJnKgPHQs`rBwCZFkJqKrPSQt`sBxC[FlJrK}P^Qu`tByC\FmJsLHPiQv`uBzC]FnJtLSPtQx`vB{C^FoJuL_Q?Qy`wB|C_FpJHLjQJQz`xB}C`FqJILuQUQ{`xAbCCKgPGQ}`KB~CaFrJJM@Q`Q|`LC?CcFsJKMKQOQl`MC@CdFtJLMVQPQw`NBSCeFvJMMaQQRB`PBUCfFwJOMlQRRM`QBVCgFxJPMwQSRXaPCdDEGjKURgaQCeDFGkKVRhaSCfDGGnKWRiaTCgDHGoKXQ}`KAcCDKrPIQ~aUChDIGpKYQ~aVCiDJGqKZR?aWCjDKGrK[R@aXCkDLGsK]NYRAaYClDMGtK^NdRCaZCnDPGuK_NoRDa[CBDQGvK`NzREa\CCDRGwKaOERFa^CDDSGyKbOPRGa_CEDTGzJvO[RH`LAdCEK}PJR?a`CFDUG{JwOfRIaaCGDVG|JxOqRJ_BAbCHDWG}JyO}RK_MAcCIDXG~JzPHRL_XAdCJDYH?J|PSRN_cAeCKD[GRJ}P^RO_n@yCMD\GSJ~PiRP_y@zCNCoGTK?PtRQ`D@{COCpGUK@Q?RR`O@}CPCqGWKAQJRS`MAeCFLHPKR@`Z@~CQCrGXKBQURT`eA?CRCsGYKCQ`RU`qA@CSCtGZKDQlRV`|AACTCuG[KEQwRWaBAGCUCvG\KGRBRYaCARCVCwG]KHRMRZaDA]CXCyG^KIRXR[aEAhCYCzG_KJR\RcaFAsCZC{G`KKR]RnaHA~C[C|GbKLR^Ry`N@yCGLSPLRAaIBIC\C}GcKMR_SDaJBTC]C~GdKNR`SOaKB`C^D?GeKORaaLBkC_D@GfKPRbaMBvC`DAGgKRRdaNCaDBGhKSReaOCcDDGiKTRfatBTCuDOD}HhKuRuauB`CvDZD~HiKvRvavBkCwDeE?HjKwRw`E@xBhIpOLO[QVRG`P@zCHL_PMRCSRawBvCyDpE@HkKxRxaxCzD{EAHlKyRzayC{EBEFH@KzR{azC|ECEQHAK{R|a{C}EDE\HBK|R}a|C~EEEgHDK~R~a}D?EGErHEL?S?b?D@EHE~HFL@S@b@DAEIFIHGLASAbADBD]FTHHLBSB`Q@{CILjPNRDSSbBDDD^F_HILCSCbCDED_FjHJLDSEbDDFD`FuHKLESFbEDGDaG@HLLFSGbFDHDbGKHMLGSHbGDIDcGVHOLISIbHDJDdGaHPLJSJbJDKDfGmHQLKSKbKDLDgGxHRLLSL_BBLDMDhHCHSLMSM`R@}CJLuPOREST_MBMDPDiHNHTLNSN_XBNDQDjHUHYLOSP_cBODRDkHVHdKcSQ_nBPDSDlHWHoKdSR_yBQDTDmHXHzKeSS`DBRDUDnHZIEKfST`OAfDVDoH[IPKhSU`ZAgDWDqH\I\KiSV`eAiDXDrH]IgKjRj`qAjDYDsH^IrKkRk`S@~CKM@PPRFSU`|AkD[DtH_I}KlRlaGAlCAD\DuH`KmRmaRAmCLCoDvHaKnRoa]AnCWCpDwHbKoRpahAoCbCqDxHcKpRqapAsCmCrDyHeKqRraqA~CsCxDzHfKsRsarBICtDCD|HgKtRtbUDtEvGmHqJLLbT?bVDuEJGxHrJMLcT@`TA?CMMKPQRGSVbWDvEKHCHsJOLdTAbXDwELHNHtJPLeTBbYDxEMHYHuJQLfTCbZDyENHdHvJRLgTDb[DzEOHoHwJSLhSWb\D|EPHxHzJTLiSXb]D}ERHyIEJULkSYb^D~ESH{IPJVLlS\baE?ETH|I\JWLmS]bbE@EUH}IgJXLnS^`UA@CNMVPRRHRjbcEAEVH~IrJZLoS_bdEBEWI?I}J[LpS`beCAECEXI@J\LqSabfCLEDEYIAJ]LrSbbgCWEEEZIBJ^LsScbhCbEGE[ICJ_LtSdbiCmEHE]IDJ`LvSebjCxEIE^IFJaLwSgblDCD]E_IGJbLxShbmDOD^E`IHJcLySi`VAACOMaPTRIRkbnDZD_EaIIJeLzSjboD`DeEbIJJfL{SkbpDaDpEcIKJgL|SlbqDbD{EdILJhL}SmbrDcEFEeIMJiLPSnbsDdEQEfINJjLQSobtDfE\EhIOJkLRSpbuDgEgEiIQJlLTSrbwDhEjErIRJmLUSsbxDiEkE~ISJnLVSt`WABCPMlPURJRlbyDjElFIITJqLWSubzDkEmFTIUJrLXSvb{DlEnF_IVJsLYSwb|DmEoFjIWJtLZSxb}DnEpFuIXJuL[Syb~DoEqG@IYJHL\Szc?DqEsGKHmJIL]S{c@DrEtGVHnJJL`S}bSDsEuGaHpJKLaS~c\EWFKI~JlKEMbT[`XACCQMwPVRKRmc]EXFLJ?JmKGMcT\c^EYFMJ@JnKHMdT^c_EZFNJAJqKIMeT_c`E[FOJBJrKJMfT`caE]FPJCJsKKMgTaccE^FQJDJtKLMhTbcdE_FRJEJuKMMiTcceE`FSJFJHKNMjTdcfEaFUJGJIKOL~TecgEbFVIZJJKPM?Tf`YADCRNBPWRLRochEcFWI]JKKRMATgciEdFXI^JLKSMBTicjEeFYI_JMKTMCTjckEfFZI`JOKUMDTkclEhF[IaJPKVMETlcnEiF\IbJQKWMFTmcBEjF]IcJRKXMGTncCEkF^IdJSKYMHTocDElF`IeJTKZMITpcEEmFaIfJUK[MJTq`F@KBiIqOMOfQWRH`[AECSNNPXRNRpcFEnFbIhJVK]MLTEcGEoFcIiJWK^MMTFcHEpFdIjJXK_MNTHcIEqEwIkJZK`MOTIcJEsExIlJ[KaMPTJcKEtEyImJ\KbMQTKcMEuEzInJ]JvMRTLcNEvE{IoJ^JwMSTMcOEJE|IpJ_JxMTTNcPEKF?IqJ`JyMUTO_?@\AFCTPYRORqcQELF@IsJaJzMWTPcREMFAItJbJ|MXTQcSENFBIuJcJ}MYTScTEOFCIvJeJ~MZTTcUEPFDIwJfK?M[TUcVERFEIxJgK@M\TVcXESFFIyJhKAM]TWcYETFGIzJiKBM^TXcZEUFHI{JjKCM_TYc[EVFJI|JkKDM`TZaJBBDGIrQKRcSUS]cqExGPKDKlNLQkUScrEyGQKEKmNOSZUTcsEzFeKGKnNPUIUVctE{FfKHKoNQUW_ACuE|FgKIKpNRUX`pCvF?FhKJKqNSUYb_CwF@FiKKKsNTUZcyDNFAFkKLKtNUU[czE}FBFlKMKuNVU\c{FCFmGlKNKvNWU]aKBCDHI}QLRnSVS^c|FDFnI[KOKwNXU^c}FEFoJNKPKxMkU_c~FFFpJYKRKyMmTrd?FGFqJdKSKzMnTtd@FHFrJpKTK{MoTudAFJFsJ{KUK|MpTvdBFKFtKFKVK~MqTwdDFLFvKQKWL?MrTxdEFMFwKXK\L@MsTydFFNFxKYKgLAMtTzaLBDCADIQMRjRyS_dGFOFyKZKrLBMuT{dHFPFzK[K}LCMvT|dIFQF{K]LDLHMxT}dJFRF|K^LELSMyU?dKFSF}K_LFL_MzU@dLFUF~K`LGLjM{UAdMFVG?KaLILuM|UBdPFWGAKbLJM@M}UCdQFXGBJvLKMKM~UDdRFYGCJwLLMVN?UEaMBECLDJQNRkSDS`dSFZGDJxLMMaN@UFdTF[GEJyLNMlNAUGdUF\GFJzLOMwNCUHdVF]GGJ|KcNBNDUKdWF^GHJ}KdNENNUL_?DXF`GIJ~KeNFUM_@DYFaGJK?KfNGUNd[FbGLJoK@KhNHUOd\FcGMKAKiL^NIUPcoFdGNKBKjNJNMUQaNBFCWDKPbRlSOSacpEwGOKCKkNKO|URddG?GyL?LpNsRBVMdfGAGzL@LqNtRMUadgGBG{LALrNuRXUbdhGCG|LBLsNvRcUcdiGDG}LCLtNwRnUddjGEG~LDLvNxRyUedkGFH?LELwNySDUfdlGGGRLFLxN{SOUgdmGHGSLGLyN|S[UhaOBGCbDLPcRmS[SbdnGIGTLILzN}SfUidoGJGULJL{N~SqUjdqGLGWLKL|O?S|UldrGMGXLLL}O@TGUmdsGNGYLMLPOATRUndtGOGZLNLQOBT]UoduGPG[LOLROCThUpdvGQG\KcLTODTsUqdwFeG]KdLUOFT~UrdxFfG^KeLVNZUJUsaPBHCmDMPdRoScSfdyFgG_KfLWN[UUUtdzFhG`KhLXNYN\Uud|FiGbKiLYN]NdUwd}FkGcKjLZN^NoUxd~FlGdKkL[N_NzUye?FmGeKlL\N`OEUze@FnGfKmL]NaOPU{eAFoGgKnL`NbO[U|eBFpGhKoLaNcOfU}eCFqGiKpLbNeOqU~aQBJCxDPPeRpSdSqeDFrGjKqLcNfO}V?eEFsGkKsLdNgPHV@eGFtGnKtLeNhPSVBeHFvGoKuLfNiP^VCeIFwGpKvLgNjPiVDd]FxGqKwLhNkPtVEd^FyGrKxLiNlQ?VFd_FzGsKyLkNmQJVGd`F{GtKzLlNnQUVHdaF|GuK{LmNpQ`VI`G@LBjIsONOqQXRIUdaSBKDCDQPfRqSeS|dbF}GvK|LnNqQlVJdcF~GwK~LoNrQwVKeNGTHiLnMPO\V`eOGUHjLoMQO]VaePGWHkLpMRO^VceRGXHlLqMSO_VdeSGYH@LrMTO`VeeTGZHALsMUOaVf_BEUG[HBLtMWObVg_MEVG\HDLvMXOcVhaTBLDODRPgRrSgTG_XEWG]HELwMYOdVi_cEXG^HFLxMZOeVj_nEYG_HGLyM[OgVk_yEZG`HHLzM\OhVl`DE[GbHIL{M]OiVn`OE]GcHJL|M^OjVo`ZE^GdHKL}M_OkVp`eE_GeHLLPM`OlVq`qE`GfHMLQMbOmVr`|EaGgHOLRMcOnVsaUBMDSDZPhRsShTRaGEbGhHPLTMdOoVtaREcGiHQLUMeOpVua]EdGjHRLVMfOrVvahEeGkHSLWMgOsVwasEfGnHTLXMhOGVza~EhGoHULYMiOHV{bIEiGpHVLZMjOIVNbTEjGqHWL[L~OJVOb`EkGrHXL\M?OKVPbkElGsHZL]MAOLVQaVBNDTDePjRtSiT]bvEmGtH[L`MBOMVRenGuH\LaMCONU`VSeoGvH]LbMDOOUkVTepGwH^LcMEOQUvVUeqGyH_LdMFORVAVVesGzH`LeMGOSVLVXetG{HaLfMHOTVWVYeuG|HbLgMIOUVZVbevG}HcLhMJOVV[VmeJG~HeLiMLOWV\VyaWBODUDpPkRuSjThV|eKH?HfLkMMOXV]WDeLGRHgLlMNOYV^WOeMGSHhLmMOOZV_WZcLFGHHIKMHM|OyWgcWFHHIILMIM}OzWhcbFJHJIMMJM~O{V|cmFKHKINMLN?O~V}cxFLHLIOMMN@P?V~dCFMHMIQMNNAP@W?dOFNHOIRMONCPAW@aXBPDVD{PlRvSkTsV}dZFOHPISMPNDPBWAdeFPHQITMQNEPCWB_CDpFQHRIUMRNFPDWC_DD{FRHSIVMSNGPEWE_EEFFSHTIWMTNHPFWF_FEQFUHUIXMUNIPGWG_GE\FVHVIYMWNJPIWH_HEgFWHWHmMXNKPJWI_IErFXHXHnMYNLPKWJ_JE~FYHZHpMZNOPLWKaYBQDWEFPmRwSlT~V~_KFIFZH[HqM[NPPMWL_LFTF[H\HrM\NQPNWM_NF\F_H]HsM]NRPOWN_OF]FjH^HtM^NSPPWP_PF^FuH_HuM_NTPQWQ_QF`G@H`HvM`NUPRWR_RFaGKHaHwMbNVPTWS_SFbGVHbHxMcNWPUWT_TFcGaHcHyMdNXPVWU_UFdGmHeH{MeMkPWWVaZBRDXEQPnRxSmUJW?_VEwGxHfH|MfMmPXWW_WExHCHgH}MgMnPYWX_YEyHNHhH~MhMoPZWY_ZEzHYHiI?MiMpP[W[_[E{HdHjI@MjMqP\W\_\E|HkHoIAL~MrP]W]_]F?HlHzIBM?MsP_W^f@H@ICIEMAMtP`W_fAHAIDIPMBMuPaW`fBHBIFI\MCMvOtWaa[AfDYE\PoRzSnUUW@fCHDIGIgMDMxOuWbfDHEIHIrMEMyOvWcfEHFIII}MFMzOwWdcAFFHGIJMGM{OxWf_bFnHrJ@JbMxN}QLXN_dFoHsJAJcMyN~QMXO_eFpHtJBJeMzO?QNXP_fFqHuJCJfM{O@PbXR_gFrHvJDJgM|OAPcXS_hFsHwJEJhM}OBPdXTa\AgD[EgNYPpR{SoWA_iFtHxJFJiM~OCPeXU_jFvHyJGJjN?ODPfWi_kFwH{IZJkN@OFPgWj_lFxH|I]JlNANZPhWk_mFyH}I^JmNCN[PjWl_oFzH~I_JnNDN\PkWm_pF{I?I`JqNEN]PlWn_qF|I@IaJrNFN^PmWo_rF}IAIbJsNGN_PnWq_sF~IBIcJtNHN`PoWr") # List of graphs to process graphs = [('com1768 ', com1768), ('comG24 ', comG24)] com1768nx = com1768.networkx_graph() comG24nx = comG24.networkx_graph() def count_k_cycles(G, k): count = 0 visited = set() def dfs(path, start, depth): nonlocal count current = path[-1] # Early exit if we?re going too deep if depth == k: if start in G.neighbors(current): # Normalize to avoid duplicates cycle = tuple(sorted(path)) if cycle not in visited: visited.add(cycle) count += 1 return for neighbor in G.neighbors(current): if neighbor not in path and neighbor >= start: dfs(path + [neighbor], start, depth + 1) for v in G.vertices(): dfs([v], v, 1) return count # each cycle counted twice (once forward, once reverse) def algebraic_connectivity(G): """ Compute the algebraic connectivity (Fiedler value) of a graph G. INPUT: - G: a SageMath Graph OUTPUT: - The second-smallest eigenvalue of the Laplacian matrix of G """ L = G.laplacian_matrix() eigenvalues = L.eigenvalues() eigenvalues.sort() if len(eigenvalues) < 2: return 0 # Trivial case: empty or isolated vertex graph return eigenvalues[1] def check_all_isomorphisms(graph_list): n = len(graph_list) print("\n Isomorphism check of all pairs (a dot means the pair ARE isomorphic):") for i in range(n): label_i, G_i = graph_list[i] for j in range(i + 1, n): label_j, G_j = graph_list[j] if G_i.is_isomorphic(G_j): # print(".", end="") print(f"{label_i} IS isomorphic to {label_j}") else: print(f"{label_i} NOT isomorphic to {label_j}") def non_isomorphic(graph_list): reps = [] labels = [] for label, G in graph_list: if not any(G.is_isomorphic(H) for _, H in reps): reps.append((label, G)) labels.append(label.strip()) # remove extra spaces if you want return labels def isomorphic(graph_list): labels = [] for i, (label, G) in enumerate(graph_list): if any(i != j and G.is_isomorphic(H) for j, (_, H) in enumerate(graph_list)): labels.append(label.strip()) return labels def compare_graphs_list(graphs): canon = {} count =1 for label, G in graphs: s6 = G.canonical_label().sparse6_string() # print(f"{label.strip():15} : {s6[:40]}...") canon.setdefault(s6, []).append(label.strip()) print("\n noniso ->",len(canon)) print("\nGroups:") for group in canon.values(): if len(group) > 1: print(count,"Isomorphic :", ", ".join(group)) count=count+1 else: print(count,"Unique :", group[0]) count=count+1 print("\n START \n") #noniso = non_isomorphic(graphs) #print(len(noniso), " non-isomorphic -> ",noniso) #iso=isomorphic(graphs) #print(len(iso), " isomorphic -> ",iso,"\n") #compare_graphs_list(graphs) nonisographs = graphs # Print properties for each graph in the list print("\n Main properties of the graph") for label, graph in nonisographs: print(f"{label} | Ord.: {graph.order()} / Size: {graph.size()} / Diam.: {graph.diameter()} / Avg.dist: {graph.average_distance().n(digits=6)} / 9-reg.? {graph.is_regular(k=9)} / Girth: {graph.girth()} ")#/ Alg.conn. {algebraic_connectivity(graph).n(digits=6)} ")# / Domin. number: {graph.dominating_set(value_only=True)} ") print("\n Symmetry properties of the graph") for label, graph in nonisographs: print(f"{label} | Aut.group.ord.: {graph.automorphism_group().order()} / Cayley ? {graph.is_cayley()} --- vtx.trans. ? {graph.is_vertex_transitive()} -- edge.trans. ? {graph.is_edge_transitive()}" ) ''' print("Degree histogram com1767 :", nx.degree_histogram(com1767nx) ) print("Degree histogram comG24 :", nx.degree_histogram(comG24nx) ) print("\n Properties of the graphs as at arXiv\n") for label, graph in nonisographs: print(f"{label} & {graph.average_distance().n(digits=6)} & {graph.girth()} & {algebraic_connectivity(graph).n(digits=6)} & {graph.automorphism_group().order()} \\\\ ") ''' # Check isomorphisms # print(f"Are isomorphic G5 and G6? {G5.is_isomorphic(G6)}") #check_all_isomorphisms(nonisographs) print("\n") # automorphism group structure print(" Automorphism group structure") print(' C_n is the cyclic group of order n; x means direct product; : means semidirect product.') AcomG24 = comG24.automorphism_group() print('comG24 :', AcomG24.structure_description(), ' | center order:',AcomG24.center().order()) # Compute the distance distribution from a given vertex v in graph G # Returns a list where the i-th element is the number of vertices at distance i from v def distance_distribution(G, v): from collections import Counter distances = G.shortest_path_lengths(v) distribution = Counter(distances.values()) result = [distribution[d] for d in sorted(distribution)] return result print("\n") for label, graph in nonisographs: print(f"{label} distance distrib from vtx. 0: {distance_distribution(graph, 0)}") # Counting k-cycles for each graph print("\nNumber of k-cycles for k=3 up to 5") for label, graph in nonisographs: print(f"{label} "," | ".join(str(count_k_cycles(graph, k)) for k in range(3, 6))) ''' # from 0 versio Molodtsov? for name, G in nonisographs: fname = name.strip() + "_adjlst.txt" s = "; ".join( "{}-{}".format(v, ",".join(map(str, G.neighbors(v)))) if G.neighbors(v) else str(v) for v in G.vertices(sort=True) ) with open(fname, "w") as f: f.write(s) ''' # from 0 for label, _ in nonisographs: base = label.strip() G = globals()[base + "nx"] with open(f"{base}_edges.txt", "w") as f: f.write(",".join( f"{{{u},{v}}}" for u, v in sorted((min(u, v), max(u, v)) for u, v in G.edges()) )) ''' # from 1 for label, _ in nonisographs: base = label.strip() G = globals()[base + "nx"] with open(f"{base}_Zedges.txt", "w") as f: f.write(",".join( f"{{{u+1},{v+1}}}" for u, v in sorted((min(u, v), max(u, v)) for u, v in G.edges()) )) ''' print("\n DONE \n") ## ##