679245517909902326021357488432625829119307657215384971943168316639329270856899604811287235196331266811672197759968612760362496689313257898552057926481286351889052136163504459572884618620071056016259979537086992797483826784698143888393052635136374310237639373128595936137061463369519992870685905197680687853193992410326374507361033908435096398000280199243932119285168418702096942174759149633098502767623253161381247963608619550567754792118868240382958946243938395032405817373064747186663586362207180818056966264112776145985521041950952646285212825350508010651383506030254757575725122082550152368474264347242173826195272068495115938098961563586628645676129143197497162625877437105714268192276829848583836941755514419196482936519003694646083848369222911861250448150791101737934906076260297354719773693594068022233474742599503389745696211576079878268162252591105783120789677750937740077209494371297937313363435973518689950419007565753016103745355664436595099031523509297572828669081152856255580472772789698404381928247075688823287424612620424659252373345062194999478309374557093227914665665321647312426743459833635912156172328256465110191053437973733148805422313365525890657884926824198870453895948863812552993626191419053188085304599036545561113355517660793096302559353235271651258428161569352073105640233992892750832382445709166799761254331693452503338280403438716614556972719941373180093084218297459012991067456099241462018752262844614477555483126331376464011885945748819525613804131172133656262745084756934176217484450151199412637379479221517948804377306963799730132061149179956733268666212876533444149767146702462244336861029386082316389312506701418751871646615880979121350472013454848907657677285773646434399830243351588056310826501852255763598872397935433212639364486645807421207245926849369299755799721148416398250176405556995839112012291488872783187076631101760459265421977991145269650830380576559155222879576035876992610416296450950697371006115246322795852210827191826699149341927737242375742376240595907776236830204578111288916252379559644229189787776414925308133721099158134672863833336341628635655193529160972112404547112345754845748245869789411908605246361940771669847441537541894012338246914178926255015446765614923878957436641914892768203010296304880848441430359167871082188812604426542991998849856895422030252546604521229301329320261422393047422194475270785109742853797251570798638108784501096291992439537467418978194384723637897983010109108911119476680194747272065186277261525920773253477035142924452464888356324378680645857746165594821183269163654954568057202882711943919019363735173869922952765130281578529348216053516194277369961285931698612972442784983322281262229884078504262544217220389175693640261738184127243871239136714321717264711182915549596636159774013035443207689690109720135283776086891624376228869197636196507280346313245138336324648133368433024727326626444826062843940758290026142611279471762269989853849619647234193901527118798141640995756774613277411852927604868927357156483660811123258325496527286475741527902676162047984290498397658955862088092795748589872116376054692513042426172606876326751484636044452849311116994722400674990875111670285929300139116939352117479246644134135841022349010430885862262284695557290151297325531730994121082581168447125683334049839888491863096924361532957741861827592282975152299274485961696504780719523676886683133412356825072428125155523930682535431573294562237838149483753365205037843551616230436598753109579241846848860602658715553182262547831333916954536228549849741221498120399289101130830462294407461345156449613952383437704333054557961498686177243192678312744901968572819699653723501812217079379538598900619232718996736195345621516240666012917238929007622247998647202812609977902941128710594892804024573324302378666975132538262123135391302147856994720657068244273698126278133649141031633171498765364599358918041423692644249437377841528823815232598902349981614458533473934675203376522933168719677539393286449561480594878257372964873550996519327792940892569964772882684594111172110334543169134742694075755393143826149273279886239809292117182233883686191312449392841388688454774837841425666599654281387296439638468314766122412687487016719895768822979350821849005490825011027172127292629312749616855698969837903454256256593383860927967523662977684616358897102228724310803613427623141400479780212382507497739395651745213768885900727472472682855171314342926505169564053644940471945601153506652597287494998775443314318839524828372673586116033715037291376563721657361276368058481796303279715364032716038407381161932452370531243466121249057908756781044515579446515132214985969963477394673908490927560118464834135831657623662474414641375972296802364730364807259671835848623235335741909017846019839584530272076187668518975845661153665529074406926534163675137289065226682496266497090452014083713748515724045358427724598392400843172179399445078884918825445836971549372289251134369207850238418986822159916662473097048845464666414711728794372952561793632731368773341591836331462008257970787432929631662525964827252774544665104286907177194662031361754190689914675150422794867448531106067133589129499215236237029878281845765734651036955725391125311744759658319138732438749918295449004565076129332435441622629658197782745756780582612784132008453133220383036251946994328620198335749896013367795159673047713340373983226213967997522738512948799877329462105237346111971076315325669994310888191081825943679124457220551844606473206617955825479529793579720334478836986994920500313812443495353003403843555277513434176839483047779091611439266365218341397199535552114431922595580231081235225165561477415637855317986227472153456183665329017532802042358519207484713351767847028779476644364278617277943025324730944849113552811124687421689797928959611583812944649478944884926187487392821164298786007956679452785