944543348084497282637782557655235597691396724413093813653101748282358796632236238068678536121512667760286458679617968685239915930333912879647570448408320339390691833947344798416667184197722128228234253575596042592912724229184867866736033373256066127710987322166916536231147697383610053455219482118357708540638213305696783178594242247237512412631394409630204067544762146743418727128735521788508841654506811131631954696474498487368985111842751944280537352836424195748412707304851947209071907542198318303649800921375830849637511438318893871281413069791236601105053984441578859295551838340757655595202735797719109062706419676510964739355992117388126774872995577882282534668937387344995624892185949338633403720058047171510689079187818511557159282598746181056871812962978806789197367479943111479604416549709483895253156368796667773751168519044284056683033840918453625642819503992561677992155669744333782771747163961335923275343751060748283138095197491296839699699841481811912668368685012641077094892243777093014604712361302145577163065797275045411677687583908049179386306691259695845113533738215966429110003435115717871085720165378046570397134299681646528239973198467522908731417692415626785781389473374948862790604148191160451054358478268447518958444669540044492929131447409521548561342197116314031681936668954354136913532743460783854235674736367942197864336935764701120656051306487046411617976990577224730077286758333241203465686513748929580087483527523662665939444663272533764787271125880919889651011754647280204826476346965300897972883620250648332518841530531697526150757077532371322368518414442023894724367859686734597477133019080770896091217559383887478846629407134276945708134396400292811282171559120644017976161459972910033089718655111134842308322054585362684166568265176057344650756689698566672144786687662078124818474619739341913469478182733358315870281834215113420591368646866284131355856139972136713579296513652703225223633886711769230492882080665882849099947972447878176187250158394916674835017826302977874288496944963445875216418911999531887775190150927755221408105132188598182512827027928155507920813321845761138690508528904931050738834583813423411913348017796627752861251127779664788189300310058526664974738493976193261595084777719129245649881674313678567276955168611481974938707013319390382937694999537139116781856982549416166676446846926918507776812161283465188360945547009161984818615432906182240522380647862152897231241883101680702210796001752268155112277581447052816188099680930225865079687416727249100964538266395602791691785965341786808327529585551163873824447074555834327257766683891507163848476083790618140386732280572851546597549002369771816289518127964116835116331556069311214936638038830763454921184364986231895955133673184130191735160797435882928426988716903628212104400429726938346215187778692314189444951943378294333271992226918432332825330802222404306769944960456568860706987986117482644995797081322368862548462234126948718106723169759397087342773942901551677651450383951918066245494319153788455784376178636794765591937779643674593457944136015710446595809658494224144397481787375216362336858383772846224270712429621048396131243413455584838139081889490978151346702689919663910989455816528399226931098923382802325925874139951451330805792145647861111262542957768656018939816676827870570913205928772486979174844578162770736319557612355544989545012198428307823983287001394552026144699606715184710630021761519853574524548135578628200871741822741993954475198655495372474499032854047264491944570641487848833573756851685735089121884595008108264247958653808311153080200371675392986427846563451396687054051128296842513398991622864309895805967890391052487258443870839471483324682048329761314608977366865703118469798620269283623160697855853028577367136292703648322738643349193710679352067085998356427865545576555914897119047965121131132464614769593492909634159968805292606650376141497154255222309882719874940282031811278366339873783366641129011316921922762946683288679756560319344681548086988044436612233697103563667275121312879829881049966891834346741242695435488336518520872428995698830327889106782510218767581551216372183350479461446489826189782860082085012462276272304872516722031460366922605815365517286022968802711534779171118231888198492000940514616121505348334042599447705731183932416745671344062967136067164471225472699675015758035598347781371496155567933563325674206083894887227741267047975264953661279253766615774360273325624697189238266285359354981033988984879726235974911755518404945206197222934697050619177665921176118275074404443175831731794326867662775909944778324791147462614701496753804296544567386828335341959557682245483359204850256694623024670482564179169162738544469650631376620448125544901439974639644274029835916641876916375609562478572642334814317724226963359078847527235116902846345193372441079426938331960257452596354225997603584981080945461580126521541426995958384985375472617974178360001395416515895020190662385358779515578247336717848932188234771576709699647755517613349281417893699574837802620976919114784325514056852165596391531373711749865630089641909688124498629346557345206864472751199677131985999693338913660599766776498522685470446408708772093587483949815272479287627185054147428711540850724478151294051633547434437517200233980238464877050789063323025030575821634376037472340168854979541762069711175531218541882448442665575812251921728529827399182567218618130186166659491645637288406859944072572463599813168239381876206159820457971628552813821690220404585238681746041013452940719795871063542614685206370377173556939276174712742935737762124158328630642060041877611938096298950590607466225537053560555711313557747496663153873743574179519828189845915318966196859720452792544860458825907268239303240256351914356619171422288757197017771521998383259105136927371841980158623200911197631395556842877