Explorar o código

add ha-db service to nas and fix ulimits on scrutiny

Blaine Story hai 1 semana
pai
achega
411ee40d93
Modificáronse 2 ficheiros con 514 adicións e 496 borrados
  1. 18 6
      plays/nas-services.yml
  2. 496 490
      vars/vault.yaml

+ 18 - 6
plays/nas-services.yml

@@ -67,6 +67,20 @@
           - /run/dbus:/run/dbus:ro
         restart: unless-stopped
 
+      - name: ha-db
+        active: true
+        image: mariadb
+        ports:
+          - 3308:3308
+        include_global_env_vars: true
+        restart: unless-stopped
+        environment:
+          - MARIADB_ROOT_PASSWORD={{ vaulted_ha_db_root_pass }}
+          - MARIADB_USER={{ vaulted_ha_db_user }}
+          - MARIADB_PASSWORD={{ vaulted_ha_db_pass }}
+        volumes:
+          - /opt/ha-db:/var/lib/mysql
+
       - name: kodi-db
         active: true
         image: mariadb
@@ -190,6 +204,10 @@
         cap_add:
           - SYS_RAWIO
           - SYS_ADMIN # https://github.com/AnalogJ/scrutiny/issues/26#issuecomment-696817130
+        ulimits:
+          nofile: # workaround influxdb errors on startup
+            soft: 65535
+            hard: 65535
         devices:
           - /dev/sda
           - /dev/sdb
@@ -199,12 +217,6 @@
           - /dev/sdf
           - /dev/sdg
           - /dev/sdh
-# added the following to scrutiny to workaround influxdb errors on startup
-# TODO: add support for this to docker role
-#    ulimits:
-#      nofile:
-#        soft: 65535
-#        hard: 65535
 
       - name: watchyourlan
         active: true

+ 496 - 490
vars/vault.yaml

@@ -1,491 +1,497 @@
 $ANSIBLE_VAULT;1.1;AES256
-66386137363736613262303366653361353466373964393732323232366339323135336464363432
-3730393364656663646461323933663332326337663637620a663831663433373962316663663862
-66623631346561343134646634663135306636333138336332663134363661313135643337323166
-6261396234383463360a393639373664386335336162323231626465643064356265646239336134
-62336161373830643439393931643333333064326230626234396333363231303031316132333730
-62633434343537663737613435383365393731356630623465383933353834353335303132393537
-61363361613532326164613764343237653761363032383730383866313361346439666236663035
-63383637616566333862373039613736643765626666656135306166323639383834316632363632
-34393636333163623635636163393661386330333665393363366138363666613662356338353931
-38303638323861373332623665306166333136633933313935626263383333333866376332623933
-63393366663732646539356236333966306366333137373435373965373137646130613663306464
-62353763366563326533316637366334656235343066613831646361383662653865343338633965
-37343133386461623632316638653465373963373338313561613462326130306637663032376238
-38653437373364336363623163363635353731613839626436363637613736616635653639303632
-33633531366166303838323561633866643462613230353034373263383730306339303939303138
-62313866303661346331656461623536386464343635363161303861326362373030376430623166
-30636562656334376535663261363032343334653234343736653433643361353234643366633637
-61373031666536353233343062323964636563633861356161666537626531383666626439376631
-66313534333564656639666131373735663666653362376264363137656361333433653163393163
-65636233623763376631386331333330323439353136353939646163396264366533336239303739
-30326432313830326661306433663437346162623835656638653935623633656536313761363633
-35343538356538653166356338626536653934393935383233396533333633343836363866333963
-35616464373864396638383634666630616138646661346632393965376238333630613231623562
-66663634306464646632326530353633373332313834346364376361303530656663316136343766
-32653266306536663738353363393963343637656138623261656130646333343339353338653334
-38363734326138623563393731383562643862303533316337616537306234663933316334666433
-30633438653464363330666438366331633838373239663762613834313835393865303630306634
-61303336616538386365343763343862343836303837616434396161636232643330323663623232
-32303763623866623331343136666361663839333937623163323364303161643637653834303234
-39333430333633373433636638636530363763343165323131373536313230386631363435323533
-31656362343133313063666536326539336335633666643563333332363638363533323564393230
-63383330663763333432646536613065383566303364383364383766386333653738353738366639
-66363938626331323461303336323933613039663034316165366638663031653933343138666334
-62636637313564656134383439366338353363626134393335646538323433643733623061643236
-61363731333263356561633436383937373338663532376662396438336662623531396565363437
-39326335653766343335656237363436633065623066633731306131623435333030656637333138
-31653337623961316462633037666634386166616234626330336265663738636363653063303132
-34383034643062656535313338303539373231346230623439653335396335303663316265636538
-30356634306430356663383830373964313037643061323630653065666633393461383263306636
-61356535613361316633303237666663356437646634393732313766306331376162373037316530
-37313332643030633966323630363437303135306163623030633834353434666337663565313933
-65353537393337663430313866303962343431356130393365396233336130666665353730366636
-36636631383630636266656534383861376237383535366161313531323764646635623964373037
-35613338623634313933656364303538396537363431663239653363383364626231383965326232
-39373530653931363766383937303963313934313933343964333237313832366232623865666135
-62646237323462316434356265353030626234363031613034656435386632646462616238643035
-63633733623566326362333832376162386638656634326265383431313231376634643836393930
-61363536643065636637356532326533393931323538613838393566393739303165656633656333
-30313231376533346438306666396235653739643439343034626136306137303334353833386265
-30393665366231613230393237326630353335616462323764323237636664663731663065653432
-63383437393530653535326337376266353030376532323937633531663966373836376136333435
-34393036383733323337643736623866653438313338376533323763376362346233353966323538
-64333935663764313334366637646233336537346365613239396134366665383461303530383063
-34653966643262633930393731333731656262343630373064393533366262383764376639636162
-34626334396131376663353763643833386361376262336635623963366134643235626563643062
-38356635363064663934643239616165633031613234623966333762656262663063326534333733
-37353630313237356335386262333361613161383339613265333630653865616130373737616536
-66313061623564356131616266343463633333626162313837613532356239353638333831323663
-64363765383533663035323961313964623730326464336334326633333463636664396231643534
-31336438306663643935376636353332623562376565626562393934363366303133383066376362
-63373736623736656164653961373132306236643839303939313530663738623064663435356466
-33646663633530373962633736636463333534306238613131373132643235633932643931396136
-62646134316465616462343933386264633835633563643863326334343363616462353131303764
-62306532616339303965613036636631626262313062306164346531393762643163383736386330
-35313035343431643035623837396635363664306136343032396139313637333663626336636535
-33623638616163643531333432616230386635326662383462326166623064343836336165616533
-63653438303731383261366338313165643532613062643065316635363038376166363966363366
-39303530386161303165383566326361373531636161333166633736386333653232346632643166
-35373635633163363462646161306130323461663732323939313739626461373038616536656563
-66326435383638396363303039666334633934623439373262343264336165613138386235613432
-35373230323233643166613734303331326434366564333038306438306138306439636333326665
-65613734373130323864663932643037356166653361383263336436626131393066626630306235
-38613635373664343833616566383339346138373434636462343432383161646435306362393835
-31666466383466376232326662343430656465373530383331356465376637343264336233393035
-35323937623139663035376361643166653232343265346436343335346435326538333263613036
-66393466663766316530336666636537366134313737633234613764663866633730353731353561
-66616635363764336462653663313462333466366236643537613537373633643736386334383539
-31393565363836326638353636613730653732663035623039323466323964636531353638306434
-65323937303865633237306139313233393165343330326430653962633235656436336565303633
-35383232643463393735333833323963313234363836633338646237376565383265313031333565
-63396631616135353064613738373732633734363230313265326230313839366433646337333036
-62363766333931623036623166643134353838623232333166346362653032333936626237353231
-33643732333563393138663934623363366638613431386166636133303235323864306365626539
-64663338666333333039623532633630633631623536353361633837376365343337393834316132
-62643333326530653439616466643731366432306263386662663965313664313066663939373265
-66353362613262333366346534633362633634313961323334353766343365333162373261663132
-62373966303737393733366233653665646361336639623238343062323932636439313264333132
-36626331646236646135306234666161383239353037323336366162383335316461346433376335
-63636639376438376234326537303536393933303663346437656438653138643862396566333231
-65666265643031313230626135363766393832616534383366653562343739306431633963353766
-63623563613761333636663233633531323265366230373364313564336462356230393662326337
-36303164626532613164353433666330396531356264623239363864343763316533353964343765
-37323566663763326362313534623864346631613363323839366230653764326264386564656137
-37363234346363346538643432386164663334623339613239646130623633376433643130623266
-38626566313139323664333835653233643966613239656232633665336230376332346465396261
-64306664316438653037643663326337313038363834333638303630393066336435386131656639
-30663033336364323362633063363130653164633337653064343262303261313838336366356638
-31633535363435323166386438663963363933346231656162656130623366363733623466383663
-30356162343332356430306532333135626637623530623631623866323237363235336664663765
-35306235636336303262613234313531633530653666323266303133653262626661303965343939
-33666661323362303439336332373836316562613532633630653739326565383836313563633130
-64663839376163316262373063343765623861346630343232663530613430303164373633363130
-62343961613265663537643831353739396331653364356364633236623430656234333130386436
-33623236363334326630306462396263633562306363653235303861626562333537626430663831
-66333237346336623265633031313532316666363365306263633666333336356639356433396364
-30333937333533663130636130653164346136303839343036376432643264313133626232346539
-38633132653936303533363935333165623365303134613034323235623037613430323333656563
-36633863323533626231393638313062383461663866383261646564623930613135666665643165
-66363337323134343036313434393436646161623163376635343137333566383538373235643166
-35333534323766313538633338346432653239303233643931383636343032643464666237643961
-62376138393735346436326639613261623266386464316535626334383434333161343435653330
-39363130626364313030666334636663393236663364363233643130323630383534343665333534
-31383339366634613930643132383034383538346266626333326133326231633864663837306332
-65653136633934613066656238333134323638343965386539376666366563636562643335656665
-31343732393039653033393132306231383163633438316564343431663162313231396633623037
-31656364333036336364346261356162396566323663653265363639333766396337343038653434
-32646137613038653866376232323431656635653132363762643632633766363861306162323532
-61613931663264613635663930376439383736616464626138623663353036656135663234303139
-33646338316164646631323661333739626633366137663261373362663766636238366161306161
-66303739363837613366346430346262383738653663323534666433336663326331633435353431
-66303036613537303033653261616664306236616536613734343862353833316264346262363664
-62353765613837623961313066663036383137663831363838613762316365333632333836383432
-31376531663834383539653233623666303932653438343333343034663735663266366331656162
-33363730663936383161396464346134363962363961306334653338336464613635333561396136
-31353463326230393766636138663366353338623965376131353031656363356565333236373735
-32323632373934396264623038396139326132353762623163653164363466316263363062306666
-66346161306430643035386565323033376337383166646139383131303539376439306331623331
-32393132326334333936666334376334363338343566386335383733366537333231323634383130
-33366531303138313766366538366261326430343135366363386130396236626337313163663064
-64396333663835303631613039303663303231346338383133623362636363383539313430633264
-38613364336362616235356430633363333065313162626535343133623730393265316438373736
-61616466623730323436333739353262326439633764356535393437613763316263666630383662
-33383334346661326562623531323734373165353362663531663033663338376266666463393564
-65336166323065636337373932353532616230653231653165623031306366373835663439356366
-30373930313434663635323465366561323730333463656231666232636533356163336465363232
-31623765653937346564393735363765333461613263346430306332313530656131653634653632
-35366634663438373464386635353834623734363637356338313864653764626263343536343366
-36393634306661626530613433343439636634303234313364666131656630333261643765363933
-38646433336663623963336463316334666561326566646564376663363438643239326130386465
-30323563653932346531303865613632393565666136306432393832373465626664616365313366
-62393334633065343732623063356438646637346335376334643032326366636566323339316432
-36633166626337396138346237353238333931343162663133363837623339363631663438346337
-33353435653938316432343662313162373336383732343866663463653337323735376162616237
-39343236396562366665376432633532383664646333343763366237623064376633323430343464
-66363831363936306363326563333339653831326634653739386663386164616638633831623839
-62393365323264396530623534646462616238363236643763333930333533633761303539613731
-33303338616536663063353166353633333038376237333661336361653438363834623665383537
-62633037313164616364336538306332613933393366303833633935333166636636353633383661
-34333663326464636464653737313633623666383164626536653035393839663238616337653238
-63646334356462396463396139393731373763626336383035396461393832333963616335346566
-39363561373636313737636138366662656536336537336634653337333835653064303431666136
-61613734356265623561313263343235663936343833356631636565633964383339623939616266
-30336439393462303733393431626338653538656230373965393865613433646230396236346436
-63643631623463376633353437663535636466383332396361323339363430613930343862636166
-36666138326432663733353835396334613437316130623435336339396462393236306235653862
-65636632373831373238383830313934343435356339666131326432303737376137366233656461
-38393634326539646463663635616639633837303736376630363638636136653835363230386338
-31383966656538363036363963303531613530636561316638303739313833376533326461356432
-30663732663036313361373161383432343131663662633265666661633237623437386535613333
-31326636326564343738313730626638343262633563613964633965636230363333333062313064
-39646135363633393266366536366338353736663364646236303530623632623465356230313362
-65626661656365336531646263373662316562376262313365646337646362366231383734636437
-65303162636666373837623132333537353435383630303239346137366230363064656561613533
-34613766633464623536643361616161333563393765373931333932623639316530666662643434
-62343431626435666238376138623631373165306361633738373364383063656364663065643131
-33356661663762376135643965313332386363333638313162623662653963386430386639646433
-35616235373539646530353932366664363435393839303431393732343466633238386264373439
-34313036623431636431616332313262396562653862323663393835356539643538623533316334
-33643434383564386565373863656532393665633531613664656262323464663033383666656131
-36376537646533656433333635643833323435306464666230663130343230373162633333343163
-33666139343731393636623234633162356164343432333038633932393562386161383261636136
-36313036653662613565646565353538636231373733316466343965366532646664363830323932
-37393566316532653763323133353339323730663465323938383633623764373762666561383162
-33333361633531303061636531353832326563613664366333613534613065633038393634316135
-32353066656331373632313033326365363931373563643163643432376265303066346337353561
-61613266616532383264646535646334626265353766633237623132363661373631613764393235
-33613631633031363639656163653463303466316363373265373166393562336262666235356337
-39393038346330346130393434343461613966623937383466313933653332616661633862366431
-36323731616432626164333438303263316137393766653331336434363963316435366563653961
-34303332383836353333316138396632626235306636306439636561313235353561323563336536
-65353232333235346566643435613530353333396531633563356564623161626464393434336163
-61623561373663653933396232663263666232616335386435663131356162633865393938663465
-63353261373265363162383634356662346165343236656435343732313937343165393734663832
-34366364633332663564373138666132623861633838663966656235666131666136383937376332
-66373139616635663038633362343632663236323132303161323930316464326235643030326637
-30636632623365643437626237343438616233323032366638626439343866653061663231363236
-36643761366662666366363435636262633262653231373262373334643261376133613734333439
-64336331616237353031333061373537383539633965653339363261356231623538366663323839
-65643036383736633966646466313831623366633136383534393538343236656465316339663534
-65646565663536323362383365643637643935386634376631616666353966626139616235623765
-62393966636132353335376562663139306330643232386461663431373633646366353866393733
-66343165633663373263373134336163356462343431353834663630623937316533663435666639
-36316331616163343962356339623939303236363434666461373265616565313264336131346234
-38333562336633386435376166653238373665613862613938643231653639666632396539646536
-63333461663239373064393462353639336432393564376565653839363963313961313361656266
-32333530373938346138326364623639303835626530363934373465663538383033303337663736
-36323734613066663531633639616638646532323265663033633665643761643435616530653635
-33336330336663376437306233613866323530316435306261373563306331383565346365623437
-33643032343766653261613630343838666234356137396562653364393365656337656565626235
-32363165653862666364643633393330376366636663316538386237636339636166386162343731
-35643763366135373362373236363735313565373431333465323133623533643761666261666563
-31363262323937326461636362623264303865303833333466346136626338326330306536383335
-33613763363838366630616632626639343362373233313362616139353331376532656135613665
-64386333653239383538653338306535303366383336646263336564613862383430353333366337
-39663932353933646263373563653235626564343632626232653435346565323633393132353731
-37366332306363383064663634316438613439656135306262613132326164323334303664313734
-33383233353663303138346338303334303462303161613430303536663766333534343736663731
-62313934316561313434316263383237636664666366336133343635653762353239613434653762
-31363338633263373264363337343232663665666430643063373465386239633137656634353137
-33643631393663626637333064363566383061333036646566376633393337336166343661663432
-62616136333832333634633037313236313737623831393266613331396561666533353330303238
-32393064616362613030613033653136613466303839303563666131616163336435396664613330
-64326636653962356438376466353733633437396230636539316631656262393661383232396632
-39656338336638343364643034326333386430393430616331636333343662633734616431306536
-65393665316566356233336337663164323038313365666239643965313763643738363266326264
-37356438623631303538663430663665346634653161633865313234363366633161396530353763
-66393863626634356466613637373762306334346365636539646332353336353964393230643662
-62383661643563353865303063613538626232393965373636643037316337323831626537373937
-62333735393431613261376439333065336537636436376161636564343662343034633532313761
-64653735616263303233646661383036316463656639346662383462653833306431313939626137
-62633864623163356537393763336464656465343132633439323330653836646666373661633963
-66306135333464663361636561306333376638353364656565643034323739346335323031393836
-31323263333933306466386665303837373635353038633234393732336239363732633865643134
-63303361626233653064666564363266626131663563303565353431313938336163653831306231
-38633637323634653934316261623634343763656635633133353063393636383166386139623963
-31613166633039343739316132616664356137633638333434366665626538643835393362653566
-31383830313865346536343761643665353864393534633264343063613937633962383031343633
-64333666386565353035313365333134333830643139393764376233396632333831623236663466
-63376637383464613363353532653436343162366465653765356139306136353263363134386134
-37626136336538303863316539356561353031336135623838626635313361343962643262643834
-33653033343235363662646235656461306130643635313164366265303765646131653738353731
-62363165646538306664323138373532336232616163333265363933393832656332633065396236
-33633331313261386165316164376336396437343634373835306631613534336338646162636261
-38626566616231653736383235623461643833626232643662303131613862663938613839633361
-30386638316530663633313563343331613534323630363461346630623936636138383863313131
-61663266356235393236393731336639333635346262626530353635376131343534636465326238
-64666137616438386134393065303939393339333862303831336561666463346266393065366330
-64663931366135306538613430633735656163656133363861363665653639643832633661626264
-37393135663531633265616330356162653230633064626639336437333837393661623363343935
-39393234363035353432633730643164646232626230343235316433643132623338353739656561
-62646664623438663438613866333735363139656263623134373136636366356161633536363534
-65386531333431373635386235373265383932363239653437363565646330643632333635656436
-34333432653064626633343233626231646434316634376563326265636662653861396137653539
-39623939643630396465366239336463306238616566376439616334316364613761343731346134
-31343834653737386165363761653734333162383233346363616334343766363034303731303339
-62353962613733303862643161623536323838613965363333666334333064353265376264646262
-65333738346265363234306336633065356331356362646361366335393939653337376164643466
-34383266363466313561323261343139633335653661333932313364373537613162326639643361
-39643066366235643235343932316130383035653130393231343635643766396263303438393164
-66373864383762333066646263306236663135616334306665383936363062383961323362646363
-38346139633632383138613038376164646532373137376536353639303631326266306432663738
-38616332656137663530616466633532313662316264613933363331653337346630643436386636
-61396537303636613337316165643231356362643533636133366161646261346266643636333430
-64303364633531346364333764616566343566373661306634633533626436363739653161353363
-32316436666434333864393532653064653939396632353439316538353532663733333535623863
-30366339323363323030343437376665376234653864666163613333353464326664343161666436
-62356161623133353935336332343438636161313035633139373832346466363532633236316636
-35303831393030393365346239393661366538383437353337613461326438656565633938653435
-37336333363133646162616566313862383763643363663835313639383035353333363534643632
-61643938313031653861326637313165643162316236393162323534333963323264666466313434
-62336632353737386566346334666236303330376431313136626632643263633865623537646535
-63363761386566613464646439636530353736343137306161346565633432343066646461393937
-33663636383264343566336264643135613839616137363064643064383464376332653966636364
-37636337376666366565386163363837616562383562633536626136653763643237313866323633
-65373236376366343331636565373761383230636136353066313939373435346236653732346262
-39353438313866656634623364393634613661636437316334613764643736366630313832363434
-36336635303263616632626263326132643537663634313634623131393437646332373430323835
-39396133613632303530613538316232623234343363623934653230376532623630313735633966
-39666161633037386666343037303264376361653034616438323864626538326430303134323933
-32326631373635356161363630343139646137666430303538393836343565323938356636336631
-36366335306538633937356332653132356161333037636430353731393531376661383561356335
-62653262396130353662646264623531316231333966313535653964333636616361343063623837
-61383363663533653165326533303531353966356338626336346532316364353731303135653837
-30383762343763343835363137666664376232306531356365343639393535633632373164393434
-65316263333362653034363766646566336231313937323037653865316666336239633065363736
-63356464386564663461313864636436636263646339303835346664353636303532313731303961
-62323035636466303635613661373737666461386230613964303466326436646633323632323864
-34303463643262343161656166643338353963646535326266363063653334363237623638383562
-36616364336639353239663338613237343335663963363639323534356366313434373264333638
-33633933326537356239383064616237646239656630396265366532613634646637633334633866
-63353231333366626264346165663834333663356333626261636338663764303937643461316539
-37646364323037326562386437376565313935323035643563393235326533343330306639303130
-34663262666634663539663337396435323461313939393861316535616535663963633633373037
-34346366373439623665376530626362333465663338646231643931326561336561346166323135
-66313233636535356466326237353063656563613437663137383766633161383036366365396534
-61336463616530643436343735313931323633383030306263656438306365353162393937353535
-37313164383036333835633837353161383334373430356136363965613937353739636437383538
-30323061623233303135383135356338303039646363373935613166333738396133373432666132
-36663336643062616132383433333536336235353734653637393631626131393763303463356363
-30343637373533363566306235643635306361643261363036656462356633356161626432326638
-62353065376532613134663230333566306263643664343035663332303063386662333633643231
-30323935636130333239386534386533633737356233646665613339373835363266393964613433
-65303564333031323134316234666632653233613538303764656637306464316265326264346137
-30333735666464313332373361613436643435373034323333343232343332646439376565383136
-36626433393034363136613636333863383239623036343366623862653734346231616337336434
-34626264313064663837346561643034393134393666366265316361643938386561623366366436
-30656263303235386136393266326431613739643032363734306530646239333339306339313236
-39303033616430663437343433613936396636633061613837626636656666646662666137373336
-31333935636366386537333338643966623037383138633466643139633162393261623263333564
-35636636353135373565663562353566633664313530643839323638656431616363303633386161
-64393563376337333634316436633838643333353632616239393339613535343636393830623036
-62316566393934323061373532363236666265343966656237643535366164396436383934666330
-63663464623663646334386131336232306436356337373166623238306163363062353036363832
-30616433303237653866376639316134336235393034653861343835313332356337653435313533
-30323534303234656635643935356637313633623363316565663361396331383861353030386263
-31336334623363626638356336363631356430633835666238363431643430613765356263613365
-62623532356339373366393664313134666633313634643731363265373534366637633331626639
-30366432306435613766383938333839353664303736386665363336313330313135613334343639
-39313939663939313063653563376631626662653034343065643736643637623332343134653630
-30333736616162623339626132383334643833376235343933666535376631643863313935643734
-34396238633366366237663031353630666436316533666239643962316164373630666164353834
-66336235643737653262366139646338646538633437666466666133633535346461333533333331
-62636534306664316239646135353036653338353665616466326438656463363362366563373464
-31316439656636316264613437353234666132393233373230306333643438396365396330633463
-66313665326662353865386230393563346165653639383964353061306536646563623831363263
-62363965323838373932336337306562393433396666633538303331656537633630336238623033
-62323962306466373632656163636635313063306230616335376165333931633433633530613861
-30393631653934336165373739373438626564393032333333303866666364333733376230393335
-66323734383237333137623931396264346162336438383630613334333532333532616433613738
-31636361396261323839656562343935376161643666396433633865343330316431303265346161
-63313137386364393233363931663938613237363165396136663961386265386632343632303566
-33633736393233653933616631636464373831616630373036613832396363386664666432373734
-36383336313930343330373139616435393534666662353834373061313831656163353062646339
-38663432623734656231396335346430653534376264343837643363363563383235313134653162
-30643635363436323433343737386463623834313738326232313531313034633234393565613465
-62666337656634653133353266363566353730633462616261363632386537383066643936383433
-34396465646434623137353837363663393765333437353466663038343934303530333866346564
-36363230666634653862613934356335313439366332653363633039343862363964376237373862
-37656430653639643966376238366463306165353238306236393766396462363135616439383338
-61316230356565336161663735646362383939663830626437333165653363326661663935373432
-33326164363665343838396264303530663432653337346235316562333633336438663137616234
-66343662336233353363616239383661663732633230666632663262653463336231363232376363
-36363965326539653462393739373330303239613237303238376535643766363030643435333165
-36643935343634336531653262636134323865646238646233643235353936656131373830373232
-34626236636461323039306233353262303932626637653834663462366138303339363366666131
-65636234333966316661313533373233303036303333623338313963383834303835663935336165
-34313834623934656161393331653261323839643732633835626162653366356634386630653361
-39623165633036303930633537316165636634383238643138303838353365333961343433666465
-61356332313638373665653664313130346534626130383838343530656661363534386436343933
-65313133313333393335386237636363366163643164333931323830326238633736643364616138
-66643662303332343036396337666637366266383635613463363431393461653538633432396266
-34343537396437663435313638666639336134616134636430353539346661373733376265333839
-62373030383166326632363039333738613632653539346534346635393430626234313538376534
-39393265306539623964383537333136353130653836616536313730306165303837393263366366
-62363663333839346465663234376264323462396637383330643364626631666661313430376562
-61326130396330396364346131356162643266393362366662633334393337396233396236666665
-38313738616233313836663564383538643662636333633630373162386164316534396564633262
-30316164343230323137393763373638623134333930323531303162636562333232663165353139
-31376662366335333933393631616333636632616164363464303037663862396230323366313764
-63313838383039326338363065353233636630343631393066653263303539656339363266613639
-64373832396433313731653638353932373637636262393965623538363032373232363839386161
-39666638313734373035373963363936313961636433323963393062633065363563643433643266
-31393834323164303930353263343835303432383437616536653564383166323939326163363965
-36316663303438666430303832386164343837666163376165306366313336323939663538353164
-64336530626633613261623031313964636438366166653664623336366161393334313464623637
-30323532626466616333666635366465373366666139646462646231353031393063353933313636
-38626335633330386465353037626439326536393535303832343038636530363337323437313866
-30363932373739336532393739623737666266313633373330663730303466613766376665663561
-35366332383063383837346263643031643437363038336630666334643365393236663336323163
-37313465653534393630393864306635616236653637326563353138626265636461303736303066
-31363031396434343262376331336363306634663166336430333762643632343635646663383231
-36313865373263666262366265626131646164623737363265373563373531653834316534646535
-65396664353932633138626333366637656634346366363531396331323432646536336134343534
-63343136396530346432663631666364383538656232373132646239653433313863653531633233
-66623837303331663134613039376335333238343431623334643561386139313163316439656166
-39303564383562323164326136636265313733313732623864383237313532663036623734616532
-39656338323431333662383264383134643763356530633765666463326538363934383964666563
-63646138626230353961373665643062613064353534633239613338343430366535353065393863
-39313964656131616237393765636261346662386135613230393330646364383333386236366137
-34613835646632613562313862633866646537656631396265356335336165383232353631613864
-61353136363264643039633132663566353165316364616438616266663966613966633639356433
-32343430613139363562323636366262393964623834333662383335646163663666396634313166
-62626631363065643035633066646233353233663761306439323064383233613039333331623135
-64326632353761393563616465663330663462346233373235383638663639313435313539653462
-38643439336665363139373061316339373432623361386263643633323061613633626335326331
-64323632646563353036666637616365393034623736373162336462393536363763653735353662
-34666264316135343061393362346339616662336134336537353666386436633563303366333863
-65393038626133363337383764333939383731333562343866653536313564363132336633333665
-65393138386637636232346166663965333933666564333862346439336633396339333131366631
-35336436363534626465396430383862643165666337373037346333656139626437393331363739
-63336562363763346636643739306337326463626636326462623534363234393637663665396234
-63356431316230626335366562383466343766643936336165306162303734346536366336383634
-38653133623139393764323934666266643037343339343733323234393134636136663238633761
-35613836393233353165626230623631323463333436333865633739383836323331313063353530
-31643466636435663538346431313232643964373061373337343532663632333538663163633137
-62626566633363663865643262333132653136333766393065363165313161346539313535356138
-65323838663763633937383664636563306431396431663334656534383832323262343032303262
-36383730343763363738316434376561386364363431666236313638393637353065383537663266
-38333936636434646331393234356263653764663631383336643334653234346436383536356634
-36316566306363653433363963633932323065653663393834343665363537366330306265366230
-66623038646235353137626534626437626534343633643836363332653537316139343739663534
-63623135346665346433633866656266616563653534666238393464393338646138313865616162
-64373361613434386264636362613935333332373364333239346532666539326432386133373931
-32326562343534326238356262393766363137613165663936383765313038636563396634313730
-62663033326362396135316661343134303661346466346536366265633137323966376464366366
-36363763343664376162373163396434346131666633313835323565653862336466633837333638
-66303237386437303536366238373563386431393434393533653231653833336533393431323932
-36336130666239363030356665623331313433623930333234313763353037323334333238636331
-37633637353762346463633266633937313732393165393231623564333135303862656561336331
-64616438373730343866623961363537643962323861363166333366613737333866656633356131
-64306131393132306130333036303935633634613237346361326662653435353332386538663534
-31636239663162336164343433313962386536393932303866306461643334316531613130333763
-32613837343834313430346266363338616464316665653465656537313839373639636331653665
-30313766386330303562376438393563663734653965343262626538383137663962636133373437
-37363362656263653930303930323132316232313638393339393639373235363563363761356138
-37363631336232633332373165616461643564303464663138666261393234306537306430623062
-38666566393662666430346633393266633232613965353133353835303539333834313737353834
-35356161343464636533363564656235353035316135363531643537633564623866336634356338
-34393039366234306666623432306139666536383037356431393630343462356563366563306135
-35373734643631393737613830336535663738353839383663656230623430376165393734376230
-66653136633363653434646435313836353663663166636464373135386161663236613132343738
-35323965323666396365653837393562666166653661636239643034363930323531613665666132
-38393965643965346334323365383735613936363139376166343761653137613836313434363437
-30383230333066653838303431303362666135383136616433303037363865353965353938663831
-35323064626166643663326637373132393561363739386364643230386635343634373336373865
-30613336376537343034316533343561303931643536653430616435366131663830353732336664
-63653766613238623064316365646635623332333335396333313037373531303862656565363837
-30343536356166633863656335396133366332383961656465643538333132663366633533643130
-63663366633237393563386535303832343564333533366338353635333730373533396332646565
-66643930643332363030343563386465626636353438333734343933643439323933393833343665
-30386335393765626666353134333765613834313732383365633933626433636231356162326166
-66643237316163323236623562653864303532393863613764373562383835393361373763386562
-32363263393637663537326538356632336462346632343964363661383134376237376362306161
-36306439646438633330343461373734316231336534393364613563656639643935383462663839
-34336539336635323131366434356335626636333964626633346461323936313730313330616464
-63303766633431643966636633613663303436616239363936353635633834363138303135303939
-62393438366635333936366662326464393636376233346631623533363439343332333135613065
-30626332633530626337633435333832366162323534373763333631643266643063666631303063
-37383436643263653736663636396137313962656236373737383431636461646265616261643765
-64623866316539323634303262623435356332393338356565333161623965333237616665303931
-32306562313261323936393739373763636232633365363664353831366336313131396134336463
-39663937353564386463363663343664343936333861316230323833666539373566656136343134
-36633133356130326439373238363965616130313133323539653339383061653934376136653265
-63633364653035333361306664373264663634303038303961356237663865353132313436393332
-33663365636466333331326662313233623634396436393335383665353365313661643935383437
-38636665653961343238346639363030373630313065373531633463616639386665653531306132
-64646439633165336432626266366635346563653763373831316131393362356335393164336236
-36646130323662643730646631663630366339393634343361393038333235343337653865343039
-37373339306336386530343063373630323138623839383031356538336262633264326435633063
-65303834316562393963663339316165316663663231393333643339613334386135626336306337
-38613533636132306430623539303631643838663762303233316439643738326534316633343365
-32633531373931353235623732333137613366366338613365613533333631313537653934666566
-39333137303435306362626234396462386536323835366265613633626238313036306365653532
-34363365613038306666323764636163653866353862613033343733346634333464636435613334
-38656463353031323162633766356565353065663030623331383666303539633666626630393063
-65343764393932343835653032616232633361663336633265383431626332376133366433613836
-34393331613933313335353463633165633532333662383765633735333132646231393364393335
-65353735343431616565653038643335373764633165303561613036336233306131353835646538
-37316334616539333434313962626336663137333330633135316135333262346631656162313666
-35623263353838313835646136306337633132353133656633613761613630393034393261623732
-31646666376163653539656531333836346131326335663938383030623164353238626563656530
-34666331613861366662636263306364363761333538663163356564313863333933636361383764
-66316233643339656666303136396138303663356637396332316630613933626239363232326565
-32366438636264643361363037346263616639373032636531383562663966613736363862383234
-30393930373863313636383435333739396530373539383930326666336431623361393639353362
-65303433373531653532653863326436383030353637376461633631303864653565626463373235
-34376438623732616230623564383766396263383136383130626566383233613563343464373037
-62623035646133666334313164666433356561326262643435626432643763623438353364353363
-65636230333231616133373632383663626565663930363537386463303932383264376462663330
-66353463633962623365323630633463323161633136306539643635646437363932626663343361
-62383130646535393631306561346166336664323332646161653464653261666438323035376437
-37663439626163343634373835663933356361643138306135646264663636616263313166616233
-32383536653831386139306539313831633537633633666131353237396239353935373035343562
-61343430653933633634663537303564313333363139663631303961373563323364383464333332
-66306433626338643832653562323263636437336463316132643466303131386363396237616439
-33393164616266303733306432613830643766363139656137623037373130343164396337376539
-33353133326434303238313634343564353834666430613365306562313334323635306662393834
-30343361623534326333373063336639666639346664313830616537336439653066306465383964
-64393134393436666264383861626631346362626462333733323565366432386135633764356233
-34343939303134393562653530383637313761393436326334383434306162316437346539303631
-61616461353539343237643931366464633163306533376438653639353334626162666663653833
-32383133363737616464636339396166383037623662366661353733313862386564653232326430
-32653763633935326533376432386433363537353639373233663436623361623862393631663662
-61383238643863336661653033353866393464623262636631663364316164653532313335383632
-35383637376561336236323833646334633462346537663336646434313063376339316330613236
-35356266373966356437666565613533373532653732333333336362643834343231623661633339
-39303737336136623334626137613132613266376262643863386237313866336261323764656632
-37303735653331333563356230653331633063383435613736623963663630393433363166383432
-61643261653232643234633536326336373539393539303034363233663537663934663534373938
-61316331313439623232343435333662643165313937326533316236616565383865366533633834
-33303361643435306335396363383564663866633765623737333232356233363963633933376237
-31356362333139396138323839646164386636323438343234323462383866663134376637303239
-35623230346166353163633937393162636366663635373030326364626262616264636165626165
-30653664313036316431343739376431303265613361643132383932616632393136383335376139
-64333630646436346538326238623132316164326262376333346364623364393531656234313033
-36396661643536323436636166303864653864393661313133316634636137366337306439613938
-38313435623761336431333466636431346635653364393834306535353332333437376135363563
-39393731616261393863336637373166326131613463653032316332303330633234616164616635
-39336439303631656638316666313137376533393465343936303839636132653735643232323463
-3933353337306338383237303136396236376336383162383936
+34636434333339316333396532356237326433623037373365623834656135373563663562323862
+3834303332636531313564383339366261306633333362380a636263383936333063313031366137
+65346133653639386533383336666465316436633965333431666165613734333266393939306136
+6366633064316536390a303734363866343031373139656161393266636133336137303739646362
+62663237613862373262396239396335393566333235306364316135356237643734333733303563
+34323133366237633333393361613030313337356564373134303065343338363134613634323965
+37346336333136346334366332343833306634343636653533343634303136373866336335386631
+65326538383664393662343238616362383364316466643361393630383363663463353831306632
+66343130623361613730623232383934636164386464346638356637393539336230343062336366
+37653662303138376232373065396334616231333161333136353335636435343739343764656263
+33383161396663383033393535666562346565316138353861376537303232363137323663653835
+38366530623334336239646238316333633932396138386530313437396531663162643561316462
+32316232306637303865383864636132333539643937653333643231626639613339626564303262
+35343265666662363534363336643138303138393534333033383330643933353461366538326434
+66376439373139396531623564653165373864343933303130653561643733353537316132356635
+30306433653766326139323361353564393033646363636635386432343961393361323339616139
+37366565613637353961623730363535326361626165653835376362633764323564623966316235
+63316237343238623437636132313035636665323230316532316131663737633336633336353261
+66613239623562303061316132656636353135643632303736386636306134653539316363633465
+35653064653966643532626236363633363338653664376136316462626134373333346266616263
+37373535313164633663303465303638653636623131393464356334323664346361323566616237
+38313033393036373738646465633031623938396532666333386334303639643966346135616231
+39326439313463326464323031636566303066383034333364663731336134303466396239653263
+63613666393861383964646130663830353735323036643430303065366330623166356135363037
+35656238376232396630396233653165626339396139343839333035306265323463333265326264
+33336562656237616434313734376538386333616362623534333632383736373536343665623239
+35333934346666333532366330396335643664623137336639386638393333386465643061343965
+65353437353165313639326234663763306365333430623532613263396235333164346163653533
+31326363303334643833633531393261636439363563303930366263353833656233333035616131
+62633230343931653631316233303334306463353333616333326137303063346537363461646239
+38333234303835666530643538353530383965653230323563613565383063613930303064343437
+31656665326336626530383833383963633662343464336339356134373939626433356134643330
+33373363623364646531343964653066353365363630616331386438613333393262396261623435
+30316464326637326331336630333439323563626162303233306435313430636236616338653063
+38646231356436313263303263623861663437636237623030376134303534353835336265363238
+34316133616337386462353666623066343233396165626534353534616133373663633532323666
+35646532373161303639333765623733386636333734366564333166343333386134666635633366
+39343739346632303862356538333166343834346430333131356366343133323065646236663938
+32333836663032326133306438653963386362326539333632636564396566343661616339333630
+34383464363365323936303539393961323937326338333232633566336137383634346232656465
+61633332323535643635613136373939393835393766663062373033643363316637346466363734
+37303365356230316564633962393434316532316662626535646338366531333264363839373539
+37376364373765336266613539666633373861333566353630386337663936356561376239633336
+36626232633764663466333535396234373466656636666162333162316635313736333139613934
+30363334333237623266613265626563653231356532616664333530653531623361643537336361
+32336464373039313565313532666264376436323937383934653562653165343463323135613934
+64623861303638323738663032643066326631363337623161393566623939396336396365323164
+64323930313362343061366334353231373665386238323830306136666261333732353166616632
+61393034383266626265313839383964663631316365373334616631353030353033303934386132
+37636662393430636261656664653235653834663032343631373536626231666365313136306261
+35306136633939373435653564373366393962343234616535373530373035356664386464613766
+37303935303635336665303638663365333538393430353630363565383030363662333064663261
+33653164343734623338373061323837303436363736653931373061373635336339383036353033
+33306637383163616231353266363139396662666537663537663033653162656264383232643931
+32666330623938393361616536306633633565303638353635393135346434663066326564626638
+66306263646533313664396630653933623666666363373832393834383731346439653436643935
+36323362343565316235353536613462313034343338613137633835626430626633333232613663
+34313963336634383134326363306365376662613230633638366534363861643566636330313335
+66363163333765373464306133666632346665363031333362343832353064366464336632616561
+63666461643137646166636539333834366566343263663763303861313763333430383531616164
+33383636623539366136633637353166343361633966656262336633633630333264386336316566
+63333831653132626366633662623638313530316434353764646164333537636439633265626466
+38313863306364613264313335633466366338633638363039656638303961343766323437393632
+36373663396364373535646236363731643930326532633233653537353165333264643638623530
+63346265303936363732333635306464343261666334373435623833363030653837663265376138
+66623332653736356466666430393635313865313661626466336166373066653733633961346431
+34356135363630633735663738363961363662353136303535623237643061336339393264646561
+38626533363664386438656635643737613039626265356639626231316166366130386235313163
+66383234306236313739323032306135366134306634646433313838646264333666653562303734
+32643039316364633461646335303831306366373834633362363031633166663264646361343734
+32303139333733323636663735363633396637313965646430626231393566326162376230363330
+66643361326535333564396163636536613037623337376232623362613834326439653966656436
+31396439326661663966336164373332323066666637363965623362643237663366653766396338
+61616162396662636635653735313536626632363065333331626534313532333833383430353935
+38303364626138613730366237336361623736373931313430323038326534613633613833323637
+61393431393631666335386138653863616535333830346536613762376130363038326566356630
+34636464356332393463396334333463616563356231623333663830303661393062623930313963
+61343232616332383762376538633631626335323661643864383663616330643261323835363333
+65636162306461383464306333333135653866383433386234636139363334343037343839663866
+33646362376338663033333432326532623362666664646532383732323563613732383735323336
+37613364316562633038653038373634636536396164313661306461623062616434653430323635
+30326131356163663662356162633865316465376532633861633862316364653036643438653861
+34303937656237373834633961646432383365346137343064343038616533346630376230663537
+34396336633762646536353662386133663763333634633137323831313230653862643664366366
+65343061353938633239363738633831653534653564656233363930623139613634626363643335
+32313165636236326666386266376363383035643736393161376664656438663938653733666665
+33623664326165333638396335393932363738623830666233623364643032303365363463306633
+64636565383733306165626366323661646135346232316564313436633562316537636531633534
+39633630353065346439313533306535393563663161316162616564636666646236663334363665
+65646535616139323864656635373164633235316562646338356362383466613061626339363933
+64353561303237623163643437373632323433313762326661613332333638346262316230323966
+38356163353332386366306665636364643634656639376230316235373234356431326335383661
+64393939633938626237326433316565396537336163653663373235623231346137363838353662
+63636266643539666535323961323737363965666465623861643939663162626662643439626562
+33616561366565316233363430646235303034383831643334393039643138326662386162393761
+36653066373334353034626134656131653336373266373861666433316264383237383133363466
+30643730643033616531616233343763653466616365386663323466393333393638666664363930
+31643732373331626233623437393134646164393936646339363738373436656164356433643261
+62626664643035303561646336386231653564396365623234346531306437623933376561656663
+64313034356564316335363937343930303636663764343130663234633037653834356661663666
+38663334643365316365376331363737666431663465333562376266636334316561313266633962
+63363465373531366331643632656232373636343331393535656237373130646434343630333565
+65626566636537366333646666646139353665643834366131633063663964303965353865663061
+31616238373731336165336562396661623939386330653763363466356130643863666362316238
+32396164393165383534373435343365356665343435646435393139383833653731383033393962
+35623462663066323738653332323936366239643833313637306537383032623638366532303861
+39306164666466623339663931336362613065623366333162643933623864333566393731396533
+61613366643266386133653064633765303463323038613265333836333066666230343065656563
+32313331333264616438636530393465656234663232663164653762643465326362306366656433
+37333365646466306435643331373034323064366433366437326538393734343431356138653432
+34623831336530656132356136653066343431316530303464656333366164373564353231666236
+66326163306135373462356137396465333561333534306530373931663335613134643336666365
+63643463373733366138346466313132663837353438613539383761363533306661643437666362
+30303538323930643931633439623065653933636239393938613936636136306665346338306330
+66373733376330303062303461373264623630343234373636313930306364383363653235633665
+65323332656530313934626334326263316131666261666366303465313434646637633030343065
+66356262653436366432393734303535623362343039376665396165343536633932383430356566
+65656165373436653631346262383332386163626337356265326132323433623430336436633738
+36343063643536303062393837326662373435333764633636663231613861653432653633636439
+61343261373830393162643439373839636632616666316161633439343566636130376535303839
+33626463353965353937393264363461383964343031353466373331653666323135656431343637
+65356163396239356235306134363239666633316632653836653531313664656339336336333763
+33303534656334356238653961643538623437383838353061653135313139346637306166363165
+38616133366165633934303832373733306364643330616338643936666534323066356630303165
+38663234376166303738656339643264643131373866663364386438383062636332313331666635
+66366565633161616666663863346331656265323833653232386363303134323131386466653863
+64613762323935313035393838386637636161383733376164303962383965623263343336363137
+64346438646231636639613030613335616333333731386662303936396132633466633961646361
+36616132383136616336663264343665616133326631326637393030363561356331666135326637
+35326537366139376531643061393637393133663663303466303563643763393536313432613466
+65326462633035356135363535303463363961363964333138636138343036613835613433653565
+63646532623266396638373532366461363737343735313930363462623437613361306261643364
+32353131666533626463313431363463306562363531366466323335626633383936383530663038
+35376464326530366661373761363363333937306333313730386161376238346131326131353464
+35393935303865623231313266396364656365643035313039353338663232363332356430336435
+39633638663030306332356464616332366534653761613735626436336332663134313136613230
+31333365643764656339613535643031393332376339336366666665383064373236383130666537
+62626565633632653065643838636465393862306566343063656130306131336336633261353331
+61303435353864373639633436633866633365623732623437363562346163316533616536333365
+33383932643337306661366331346665376138333537343361663933346431333661316339626665
+32633234393361613665643161303835623230383037613039316261336164616331313433666132
+62373733303734363035626134376238346265336631613430646630343962313766306133376330
+35336534363563646166366662303137663636326366353065396531343133313563663530396539
+34316139353961336535666466646266633433353731633930326139653631353863666630393331
+35303236303637613162376238343339626333633739353736353735323634323934393764626234
+65633438326236656533643331613234396665356233363663333930356230666333666138636661
+39376265376533386330393164646639616264376633363131326463393462643837356530393136
+30333433306634663931343264396433323439636565326132633564313765323464353263396531
+39373833636434356332633166333736613538353661393736306630333238643933363734636261
+31663563653464336363366631653363303264383738313236653531313164326336346565306161
+63623766323033326466366561376266663134356339643836373462356632343464373236373235
+62376236303263383033373735626330353566666432386436303232393964663863336333653434
+62636636346530333137303535343637616638623366346132343333613136643030633835663665
+34653936386439373038336337326331343566396137663966353039326566626133326636376637
+64616135623831336336623538343565346465396130623837313934396364306665383662313535
+35333130323230643137333966613363656331626164623737376233376663303663623431303964
+65393433646565393138396436633436353236633130643334326537326238356332623134366636
+35363334326633333864323539653132333730316239346239323862626132663134313132383536
+31356133316134383664346663303961393938353366633136613536306161373030316437643833
+36393430383331363236313036623762336630633138313333636632333033303866313937653065
+62633465656133313766666665626230363731653430663137396536623466326165623637316664
+39386562623536316138393866386435353235613963396136356163393737366633316633316333
+32613763373638373262333036613961396262346536623834646539363231353264396563663739
+35653863613033656637373231373761366237383431396639316233333337313733313132633831
+64323666323538643333646435363439653564396135383265386235623761386562316330376634
+66616138396636666637376466623738343739343033333037323034656437333362336231333930
+32386537666362323462633861636165666530653162343735646439313438616132363435623032
+66353831306635366236623732393334316633663930303335396235643736646261643066653933
+30343062336232343536643036326131346535366364316134313863396235613166326339323238
+65613430396333343361643765343538666261323033343962353839666638343436333837383963
+61646337333262383730376262623539316633643632376133623338643035646533313866393434
+32313436366231343835633438666239333534666633346266393962333836393562366564343535
+36353939393736366263386634633134343631623134613461663564643734343339623964313637
+33353062346331623762343931383836623763666665363565313538356465333930303336326564
+64323461626635353334646139636331346461393939663333346663303565346334343437636637
+32623939363339633261633234356666613263336265653933353338383836353966646261646436
+62333964613362313963623839333662363137316634383566323931626135626162316338633539
+31343138646665383965333036373863356231663831643866643430313232653137376438633635
+39326633386437333231656136363536343164376436623562386237393463306565646135646135
+62623361376430656238633233303836653762383737313964653533656165383934626561383635
+39323737653733616563323239393735396131643435363739353462376636626238383361333535
+35353262633930303864656665313265373931353738636134393636356333653166343439346166
+37643637646161633465363537323964336135643837313364316265353162316364343733656634
+30666432396630616632646163366163653663323536653936326162393733633735643037306365
+61646238373366333331623438313935613662656661643539626662376463336135376334663830
+35393764646230633733303166626530646438616437626561346263323938613638396237616131
+31626138656438323432396630616165653662373135633264376436363236356530633532313830
+39643938613565303539663731376233393737313062636239613661363666613134363931383638
+38636264663531316238613836656131346134643433333862336566653532666531333662653964
+39646430373863356338343131353435313765643239323932313833656130376435303434313532
+62313330306137646531373366363164373838636364303266396163346563316438346539396666
+61363961303362336132373266396265636635373730313862313864383061306361643366656238
+66306135313530313265333661383730653233623137653231613464623332323739383666356533
+34386234616630363537653566363133376139306136636361663933656563323735616461653662
+33653433366435303934333663613533663863616333306133323463396631373634663039353231
+36663761653430333235643739303936333638313564646234393961386336306364633433616339
+66366231333737613066353562306563363063396636623166613039643237653735333833306635
+62613231613565393934376539363632353361623036613663646135653739363335356164306234
+36376362626364626566656130666239386531653661363632393438323636613035376338623262
+35303264383134323161666562396461643537353638323035313634646137643133626661373562
+38663261313431613137386463376530313831656361323065313065663737303830316234303738
+38316166323366643165646166336235653462373538343032386335326536363430346338636238
+64376166346637396432316166613038306334316361343533303034636663323437333138383030
+33373764343766323864323134646366316331613032663733613266353638353931643539336134
+35393565613866363130626231373062313361396634656466353463323864333964333534303362
+33383636386639613538393836616632373362653865323562313333626236613061366165376536
+37343734643965303533333032643832306432636535353966326165346563636134363930653238
+65353738656463363835663264313463613936613930386162346238653732366262333937383939
+33373533373232636237376166623463623938396632626231373066363962626363366135616265
+35393764643135626535393731636336343037333166333466346130636538376163376331363837
+64396639613232356364356161396361623734343234333431313362646534396263383362633463
+62343034623766666335313836616238306132313361383833633639633731373234666332633135
+61336237386664373065313731313231613434666330356331393564613466326133346431653464
+30323430626531373234316436373038656239306231336237393162373936623139386231613866
+38333132666633393935313938613464613465373438383434346362613466663062333266323734
+31616232376539643733346336646331326462326561643537303462306266643961636532353539
+36336563373264626532353762643135373363623035363934613763306338636261376530636162
+33326330353839636437313564613938326263346330656661363032663232333633623431643830
+63626363306130376435346162373539633233633338363530343866366338616634633764303863
+32663866373266343666386235626662643236613264346265326137376135336138376665316664
+62383461366334356335643364326434653837653030656164323631353964396336303234653232
+34356165376132626537636263303539396333636136363963383939643539303062336139393230
+39643535363832366433663333666532653863393432353465653662363864653538393131613435
+36316330373539306634353036363334353831343266663831636537373263353937353838396562
+36616332383364643731653237653664613661363563363434353130396136626434643933623330
+37646433666662303337326563626631336164343333333238396665333639353633636464393838
+30366330363432303234646232303061333134616465343030613339323862623331366133303765
+65343062613937333365353935363963646662306263303266383339363164353937376632666231
+36366639393831393837343163313733396366633764623838653533666563386433343830323262
+38646235313937656131343932383863393633616564666230323164613833366137373930313061
+37353836613638636533663431346636303432623631636466336430353764376530326539303430
+66613539613439313761636630356339613966313463623037326362366236393731356538373239
+39613865633138626138373665313134306662663764363633373432376139316564366132316539
+65363737326537613637363166353230303737643066333763316134643933663137396131333234
+61333764366536623635326463336236383161643737623136643139373636643062373033386531
+39366663613532333632343036326337383163383930343231313539333539613030366162663430
+35373439643537373864396431306365636562313035333861666363363065643039653962303536
+35353335613831376666396537323463303262383061333533396566323237663430646564636131
+65633830623266313539633131393434666131386532373563353862373832366435653536626263
+33316334633830376162656363663138313734633138626130343164366639653438343739333633
+36643536383965353862643063313739343835376663353934633433376630613364643031303336
+32303933326539356661393335663437633963393161343865366261373931626334343865656661
+34313666393862396139393939623230373138313937633632666135653339623162323839623064
+63633033613237336539353837636438316236663062613334656261333630633161326433363433
+33333432633731663639323166393232316264633164386433376239303730613164333563303134
+66323039386461306536323530346537343762373530323033303236613630613936643566336432
+39303563646561656436373461303363663766306632613938333931633466666262363231326635
+32336634313663373661663935336639343430396430653138633631363462356230383331383665
+61663165316233346464353830623439653166333135326433353937616434613131383065363033
+65393530343161663738363530383334356639336438323164653335306261303265663961643631
+32643130323763316163663839626565623534333735303465626239616630656236643436386130
+33336135356632303739663934353731333334356432386639316339626436363335616631343164
+34353839386661643061316261336361306338613330613936623765343032383635346438623865
+34396662376163393936333433646334386337373830326330613630356332336233333338363434
+31326564643232333361653336383835383561373237393262316365343036386331346232353339
+31363531383131653963396535373038656334346663363462616166313631333233393233336535
+63353834653438643330313461646235346365356161633864636231643438333162633131613037
+32613739363731383563663730653036616237336236393138313836313237626164306635343564
+39643939623335616162303661343461643564656364326466646665643664356361386630303634
+39303834616166373935653039313832616534336663666238393966613866323236396364326333
+62643966363161666238373539356437366234396334306635306632663636636161623561346635
+32323835353865363565666133376563383334313366363633613337363836396639326261376537
+61306564366265646433303565623330363366386233316633613066623262646431356535666463
+37373865333935333566303038336337316330633466626434383635306362303665626133363533
+36313035373866326438386261616333316231323262336536613332353930663339346638356336
+36313833386134363638663866663031613761396263323132623765336438613330396138623130
+66313832353535613662656231636430646539356465633033373463396533656164316632316364
+36626630663761646461656336313830373834633763663363613436383536653062663431653065
+62303562396265636261343730353362643066323830323063643734303766333839323461636364
+62333737303030346662383938323737373961383439623134323737663033396264313537663835
+62666438323537376230656530653036363334613063656636646365326131306239393861393836
+38326538613638653963366138663365363966313461623437323664623064313832646536366439
+65623465623365363239633964396131316466386233633865656362396462653634333830326662
+37333135643132343831333238366630306566623764373261636139386364346537666461333837
+36356336306361336566646234343634663232386331363632303566653533306138323639656337
+32633263376466623933353465616439353461336431653833623230363563363266393265343732
+38633835663533316537653937353866366463663138626337326266323762643961346430393739
+63363964346230313236653131623166373539373665653361393032646563663436383866343663
+39363235363837653630383361353737313530306338393035316132336130323032643864313461
+65356533323136396336636133643936643930613565393762343163343335363866303666363866
+66393766313933633264353037643262623166623838376137623238636132356434393632316263
+61306261353834346231366635626639343333336166656164343235333966383561353330656234
+34383964623562626364356333316335396336623362613736396666373665653665303039303762
+62643138653366316133393962613233366133353464653633316539663136306666353931633765
+39313166303262336230316432633938343638383735316239613266316236343063643735366562
+64323238313031333561383466336266343638636465356263633262616238623232363533626666
+61386663366137626237623433383734306338383331326262623635303132643539313131393732
+33346339363338306231376465633731393939626337376363373564326462356436316336636163
+38613434656537633138323162346563633764663837633864646438313861666166353032613932
+31343133646565623336333532343663393836396164646162393730383036313461653937343066
+39393464303432363363313662363664313534366539613365373361383463656235613765663234
+32346161393763353363376466613837366538626635383038343763663032666636393261656134
+62383536396438386236366462646536643231623631653030356539373836353838333732356437
+34313363653162393265653832346566316130646533623833646630313566313330633237306264
+38396539373964626632363164313434643164646233343234323633666337626363353531626339
+34373333396638336135306566393363626263353037366430666163306432373739323363353635
+37386232346635373131316533616530323164316135613464363934373466636231663663633864
+35303663346633353761316464373461363764656535643538373363373261633331303634313465
+64656566366439313366396565363966313163623163323865336262363633373336376133666333
+37663766653439616164636565373839326361356635386533353635323138303538336366656138
+31613733336534656464376562343361383438383333306234643930303264343037666464633533
+31646365396464323930656666366438643430303730613061383731396438613133303930366631
+34663939663739373566303637356163303030626664623439353462643734373365386339656636
+32343862383464613637663130663237393966653566343134646137393631386338333261663733
+64623064346534353063636565363064376230366464323534666634373365663532313838343137
+37323161653665393836623062356437373366393230383834383464363636376133303939636364
+30346631356332313961323163623036396465303934363733336538623062363661633438643830
+38356439646632366162643438636235366231306466383539376238653739316666393437313131
+39656133326165356462636332633062666265313762613263383035343933636132623937333039
+39363336356633356166356463653434346438623435633337343665363633353437643938326632
+39663339313832393566386432653730643838623532363436393130636539313634353138653631
+35663339613034346138633636643739613738666466643739323338653432633863346261613732
+64613962636536303531633361623863343266346237633465303365313634323666343532626238
+33303262303038396533326132333035333331316261353962623230386461346438366530373165
+30363030653239376332326264646666636665333538316363336232666436653931356135323334
+65343564323062363433346365316166633061643130343230613633383534363433666366386462
+35663939346164313865643161666165396639313264336139383838663465666537353164343766
+62363263616533356232336637633030343333393965343035363266383539353763636134326631
+36653430336263303836376361646631626230643439383733366236653830633733396231613534
+31353732376331356438323461636664353436383433623132616263393939353530656439623234
+33306135643962303764353761333766663561653066616436623737326434666538636437323730
+61353037333933366132653962323139343539643566383463626463653134306439323438396566
+62666333626266323236663638356139393235323237313865373430323134346563633566353665
+63376465313437663135613961346633626633376139623735316463303431376231643665633237
+31366538613737626631353131656665633363393733653231613937613337333137633063373032
+63343536303135646630633766343637613034666439316333343762633466396439326532343132
+37343165343662633762666465353261656435333734623336373433396565323432396134623365
+33656536633232303231333962613966303364623837643034643832373631363039363733346530
+37636339393265323565356639373362396436346463626462343032646536343566396530313666
+39316637383030623838663831653763353938643262353034363635636638386438656461376264
+36616163343336366431343665316239346432616337333433636437306139646334313063623436
+63613930396134663738643532343439346163623235613132346635386232316639336563323832
+32613365616538373166363833613334303733663933623765393935666462633862653939633237
+65653130323332663733633132313635656338326439333036646563346263666262313331343438
+65316664313733633339616236373033316630353261613133343262376131623262356363663034
+38316530616238653464613436646536316662626631396230303562353830393834663935633334
+64363736383864326638383138623230353437623737383233613761376235383936313161306539
+61313865653039626239303730663464353731646530366366343462396261393661303532346438
+62623636646632323637633233383863623733633534353337353030613532663430373362666266
+39356435613266346162366335656264336263383266623733353364633331623833343236313632
+38653561323965376564333830666432623361396132383635643832643534633830366462636564
+39643863366636363730393063326636323738323937653330363830303266383166303165613861
+64653862363538666364323233623137626235366363353239383136616136633365333464326537
+39386536626539393766393434376661313134613632626135626138333739323435376532323033
+36616362636436363662313137663534333434663835646632343033353563633261376133393938
+39653035313737663762316163653035316462663765316633663639613864313738343830613237
+30356163393935663932363863356337616236356135363862333538666430396163633039363931
+65366436386134303363343263376335616233616435623432316336383132653533366162666139
+61653561303166666633633333343230323963343234316137353733663337376564643962313766
+66666161313663343064353735303362623566613364393839333264306664636462353866356431
+38383637626535396238306134313961326366313062633764653662323639326437353861363562
+62373733653866623036316432363966323261396661383436623761646133316137623634326634
+38656462663565653865323832666437616232323262373834613836333036353332346130333733
+62666634303933636338653361653864633130316335383564336436346239636437626230323137
+32626634306563613637373636643565623133326264353461666332633530346433633032653134
+37366631363462316664313938623930346238353333316665613261636264376433383030653161
+33346634343638666237616631336135356164663065366337613832376132346337643531373835
+62633165376637366134646661613439373839646536396132333763636662663139366132646530
+35303837356637623035396263656130366338353630626638323331636465663164663332343938
+66616236333332653131663334323933666138373863393564376135663439383963366364333836
+30346239666466336435666433386230333965636630343936316534613635626164333462373636
+34306331386331303237636438363266323731343061656134376132343932653862623634396330
+35346666353161643165623735356630653561326462333034383634383434653335656565653565
+39653762343830363531373739653666326232356338313532313933313061633135383064373861
+62623061623764383763303439366539343961623336656565346430393961323734623761613263
+65616464303465633939613334353962633630346139366630613531643335343335343832393137
+62393532613837326135663662353838616561323430303666356665316431633336653934326138
+64613238383439313930346666616365643261666466373562343735366536396636303562626439
+62643565303539633938613361353331396562326331366237393734326232313038613762643738
+38366263303237656338393638383163633935396134653233653265643161353863396263363364
+61666162643365323734393661323032613834623834313965353737343866386236663562393632
+39663239396335313737383131633965623839373762376361326539616538343066376231346232
+37326166313333336362373763663634373566353238653664626434386664363835363734373761
+35643335383766653734363665336665323964393564323665336337393362626234623862633132
+36366135313637306439353737343365313764653965363531316164306264386263356339366637
+65613336663965326461623533636564323032333433303762343233336336323033343330303532
+39383035383165656639323432313030313637363661616536316639333766366134383838633965
+66376662663730353431396564663431616130303963313965343062313532616262343165363832
+31653732666532323230306131613238303638353035656335663765633130643461386337636564
+38363661393331626263376435653934373563313432356530366133326338303933643039383233
+32363334343834323535623864643835653837343930653366663934303832356134313063386632
+33643232343535366632636538393337326364363338633664316239626563313931363537343862
+66666439316133633830373035386361313332383834663236393936653339343239396330336133
+66333038303333316435643166353334653330396363393462393065383066303762626139653135
+36306162623632373139326164663066323934313137373061333038623239626234323030626230
+34613733306237636235633636316134353431393336396330643033646562383032636166636461
+63623363396534353363393431356138323065333632646237626661346433316432623763343937
+62613262326530663037623365323731323163393537613138326132623266386563653366393231
+64333031616361666539353135656363653564346435363562383436336430306262643433616336
+36636236313465393433623134326161323666326136386131663032376132656135356432373732
+36393235613939613939663563323739346462633234393637653935383466626166656132343166
+34303433656363323162663466656265383862373066376665323531336235383232663333313830
+32633034656363653665316466376563363861373339613732313364613038346137643238313962
+37636431316236313136333430313633313336366434363563386233653161643766633332356236
+36356630346130303636643231316664313064643961613335623462663430343534666265373134
+31643536643834316333373832353161646663626636343765343338653434356138663764653465
+31353633353032316237623632643065373763303462346439326264663231613661663963643536
+34306339363136646566363837303833383465316531336631303734663761643936353536313038
+35616365616364653334626139333866386365393562323431393733656162323566346135383664
+61386333313766363635316666653833383363363336363033663230346136356238633831633666
+36326164306665643337656661343365616134346533376439353535373530623864343231613038
+65346639613163323532336661666238383934373265336434636530643634623965646335383439
+64376435336135326565623537313436376536363563316132656638303065656430393665366232
+34313037626662363534663732626562646237326164396364363861313363383966336632623934
+38363238356163333532333661656263393033376130343565616133646334343436306664363166
+35353861393535663132316636343562393833343063323638373062643464303261633331626163
+62396636663639653430363736346262393231373830663132343232613432623363653164626233
+32343339373536396461313663396138316438306533343232363339393365666439343862666437
+33626133306663666537633630623636633232666231643732386337373464383061643264626635
+63386263303965393361616537346438323234323038363535623837633464666564323133333136
+36653836646262616634656165353663323637373161666366386537643164353735393937643030
+37613462343261643965323932316639663736656236383663633262643730393936663837313065
+33616666373334313164656334626665663938393630613835393466666231326431646564333438
+66613261393362396130616235333335643839306434643739653365363831306361316363663932
+35326335363035313438373162653232333766303261343435636264383633376634366539636465
+39633430333063643564323731373763663839316366343065623761663338623330633965356531
+65616437303366396236643331343163376332393637323065653665366165653333343730313533
+35373462393566313733653865383539313037393262643437646463353563386334393162346162
+33383635343336646130323637643164313964613165393865656436663333656132633163343263
+62663465386230343336366332656435393939363035343866373134303266376432633039356366
+36326437656336363464336531343636313762636338366266306635333532666437313366336462
+30396132616334373232393836346131326366653436393861376235333032333564323038343262
+63626436383462326634623830613637363563653035643030313564633762356638313534336632
+65653733636633646336356232386361303730316535343233656631313837623763303066613337
+33613138306534383336363361373465623130323236366664363664646638323366306639666566
+38613264666238346563366264336339666136343363316432376462343132353630623762303733
+30616261666534353265353866646365313231366431653138336338613365346335396264663633
+38653165303164306263333331333333613731663538613164663239373730393862616165376638
+62353962316264356633613637663766323563623530396532323262333763303434376534353361
+34383939616435306233303538326333643034303665616232316334373633393331363838386166
+31376466663838666362356136653866363633303230376561373033633563613065383464313336
+63636130353862373031613630353266613262333537376630303639373364373966383430353639
+38336236323433616365303638356431663930303436333338373166653337336430623130396632
+38306536353962323333636537333438633332653039376235366639306236313534666235313238
+34656137653963633164376565323634333438373032396664303939366261313466356430666236
+65623433623535303263306166306532316136643132336665386334316537376433626438363863
+33363638373533326663366436633262623831643336636332393361333938373961616438653930
+39346666646565333731316632646233336531376439326264346262313936646563663861343761
+32613961353964393131313862656431643063386531376639383031316365643533363734306166
+31303334333732653733353539653737616562653761326165316336383965303533343631633062
+34376430303439393037636364653034316363346134376662333531616335336137303862663335
+32666265316162353132666534626562373530393664396163343265643039663464633162643934
+32363364363464656338663437643162313136363534613434386137363436346336363433343238
+34343162653465623264353739386166333365353030396632623933346631383135346238383262
+38393862376230386530623131336132383139316635383530366362393832616262623362353430
+64656537383566333031373865636335363934613936353663343633306561326331613062393233
+65383363636439636465646239373234613833383836396461303338646235613662373961343461
+39383830323832613132346164636530636134393463613564303034653237336663376235353933
+39396361636635656463626630383464633536393031636530636130376238633963373832333337
+66666435313839666338303064356330613433333534306161373531363336613861656434393761
+65393263386334646431373563666134663139396439353439653730613433663562623436613162
+37333265336130663137386434663964656237663334666436633030316234333639383064323563
+30393735386332626563363862363334376361613731373632333431316439336535346362656137
+34643465636363636132336339626131653165663539323661383538383437623939343737323232
+30656531646563633339316638343234323438376232613539313330306263323230393062656134
+30356430313535376239386536386264613661323136656663326162396635646631353864663566
+36633039343964366238616161353761623932343339353132323339636637316435323239623766
+65623566616235376163323939626662393034326163636336303030333730336638393737613266
+39346438656163386539356434636562356332303035613363383161323531623231333265626563
+62653965363330383062633937653862343231643231363330643939323634623933643061386639
+36323639656361666632373565356661613836353931336266386131653939623762376436663861
+61363338373433646239343161323463326332373132346130393464646335613033343932333938
+65626235396562613130636337623239646236613937313364346338303936363232303464306661
+32396262633461626131356434396230623234663837653266656634666130623130646266353331
+31663162303138356433636564636639373635333366346437396234303734383663393264653966
+36656365363961363538333932373830323466356636326132323635613938636630393936313131
+61376263646333626464653336313331653164613865326631316165336133303430373063613136
+38643836373037656230663636613933393339306237653234663135663137653335396335396161
+31393931623139643638306665316663663365626364386633356435613366663966336335333131
+38313931623466343762623830646461613731376437383261383665643665393535346538666334
+36353735316366376461393961353037326564616265356639376534356264366431373966616234
+39383831303735663439373166323439356337616564646130396163336639383733616139306661
+30663237626236306537343064323934616431336564366437323565363061316266326338303363
+39343163646333633135376365666665663732653430643039393862316166353563363832623731
+38356665356666666636393739633066623137333461633166383239303330333739363965383066
+34333332616230646339613030643764643936653439333763653238626639633036333630396539
+35653831373835666463323763646236656235343062663132373137303930626332636566373963
+33306337343033633066363234626438346661363733666330653039623139626437616361386236
+37633431633034356132313266643162343536323362323339393833333734653264383738633338
+64383138313632353831616564343065396633333762333331393439623239303339636335623765
+33666134353663396239613431633834346436366632336664363333626235616538666239633934
+38666365313430313065623431303961663636356532613632386131626364323362353131626361
+35336433626166316438396130393063636465666537646433313230663537323530653666373934
+63623661666437656165656363336432656161653833303938623233646436663038616436383139
+63373436386334396136396263653063626365616338663763393866393765353265616536656132
+38346137343330656534323135626139626265353232383130613662333862396236636466363236
+61613361666335333966393162396365613937623438336337636466373161386436613565393666
+39346432353638303539336236303765393930613836663830396661393634353036393663393231
+64656535656536643031386261336163653161313633363437393163343964353565366339323765
+64303734323061323463363338653836656461396537346638353362633338366232346665333030
+61636361326235306632646462356135366634373831643233393737373262316663633431356662
+63316235393961346136393261373932393933376631303534316335643366613336623036663638
+65636130333631336665343831353134396531363036663264323962343931323931626137316261
+39636633333038623866356538343666646639623930363332623130306431393564613734363139
+62376135363461656264636531333831383731373261623865653338343939626562326635636138
+30353762326337643333