ccgo_openbsd_arm64.go 744 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089210902109121092210932109421095210962109721098210992110021101211022110321104211052110621107211082110921110211112111221113211142111521116211172111821119211202112121122211232112421125211262112721128211292113021131211322113321134211352113621137211382113921140211412114221143211442114521146211472114821149211502115121152211532115421155211562115721158211592116021161211622116321164211652116621167211682116921170211712117221173211742117521176211772117821179211802118121182211832118421185211862118721188211892119021191211922119321194211952119621197211982119921200212012120221203212042120521206212072120821209212102121121212212132121421215212162121721218212192122021221212222122321224212252122621227212282122921230212312123221233212342123521236212372123821239212402124121242212432124421245212462124721248212492125021251212522125321254212552125621257212582125921260212612126221263212642126521266212672126821269212702127121272212732127421275212762127721278212792128021281212822128321284212852128621287212882128921290212912129221293212942129521296212972129821299213002130121302213032130421305213062130721308213092131021311213122131321314213152131621317213182131921320213212132221323213242132521326213272132821329213302133121332213332133421335213362133721338213392134021341213422134321344213452134621347213482134921350213512135221353213542135521356213572135821359213602136121362213632136421365213662136721368213692137021371213722137321374213752137621377213782137921380213812138221383213842138521386213872138821389213902139121392213932139421395213962139721398213992140021401214022140321404214052140621407214082140921410214112141221413214142141521416214172141821419214202142121422214232142421425214262142721428214292143021431214322143321434214352143621437214382143921440214412144221443214442144521446214472144821449214502145121452214532145421455214562145721458214592146021461214622146321464214652146621467214682146921470214712147221473214742147521476214772147821479214802148121482214832148421485214862148721488214892149021491214922149321494214952149621497214982149921500215012150221503215042150521506215072150821509215102151121512215132151421515215162151721518215192152021521215222152321524215252152621527215282152921530215312153221533215342153521536215372153821539215402154121542215432154421545215462154721548215492155021551215522155321554215552155621557215582155921560215612156221563215642156521566215672156821569215702157121572215732157421575215762157721578215792158021581215822158321584215852158621587215882158921590215912159221593215942159521596215972159821599216002160121602216032160421605216062160721608216092161021611216122161321614216152161621617216182161921620216212162221623216242162521626216272162821629216302163121632216332163421635216362163721638216392164021641216422164321644216452164621647216482164921650216512165221653216542165521656216572165821659216602166121662216632166421665216662166721668216692167021671216722167321674216752167621677216782167921680216812168221683216842168521686216872168821689216902169121692216932169421695216962169721698216992170021701217022170321704217052170621707217082170921710217112171221713217142171521716217172171821719217202172121722217232172421725217262172721728217292173021731217322173321734217352173621737217382173921740217412174221743217442174521746217472174821749217502175121752217532175421755217562175721758217592176021761217622176321764217652176621767217682176921770217712177221773217742177521776217772177821779217802178121782217832178421785217862178721788217892179021791217922179321794217952179621797217982179921800218012180221803218042180521806218072180821809218102181121812218132181421815218162181721818218192182021821218222182321824218252182621827218282182921830218312183221833218342183521836218372183821839218402184121842218432184421845218462184721848218492185021851218522185321854218552185621857218582185921860218612186221863218642186521866218672186821869218702187121872218732187421875218762187721878218792188021881218822188321884218852188621887218882188921890218912189221893218942189521896218972189821899219002190121902219032190421905219062190721908219092191021911219122191321914219152191621917219182191921920219212192221923219242192521926219272192821929219302193121932219332193421935219362193721938219392194021941219422194321944219452194621947219482194921950219512195221953219542195521956219572195821959219602196121962219632196421965219662196721968219692197021971219722197321974219752197621977219782197921980219812198221983219842198521986219872198821989219902199121992219932199421995219962199721998219992200022001220022200322004220052200622007220082200922010220112201222013220142201522016220172201822019220202202122022220232202422025220262202722028220292203022031220322203322034220352203622037220382203922040220412204222043220442204522046220472204822049220502205122052220532205422055220562205722058220592206022061220622206322064220652206622067220682206922070220712207222073220742207522076220772207822079220802208122082220832208422085220862208722088220892209022091220922209322094220952209622097220982209922100221012210222103221042210522106221072210822109221102211122112221132211422115221162211722118221192212022121221222212322124221252212622127221282212922130221312213222133221342213522136221372213822139221402214122142221432214422145221462214722148221492215022151221522215322154221552215622157221582215922160221612216222163221642216522166221672216822169221702217122172221732217422175221762217722178221792218022181221822218322184221852218622187221882218922190221912219222193221942219522196221972219822199222002220122202222032220422205222062220722208222092221022211222122221322214222152221622217222182221922220222212222222223222242222522226222272222822229222302223122232222332223422235222362223722238222392224022241222422224322244222452224622247222482224922250222512225222253222542225522256222572225822259222602226122262222632226422265222662226722268222692227022271222722227322274222752227622277222782227922280222812228222283222842228522286222872228822289222902229122292222932229422295222962229722298222992230022301223022230322304223052230622307223082230922310223112231222313223142231522316223172231822319223202232122322223232232422325223262232722328223292233022331223322233322334223352233622337223382233922340223412234222343223442234522346223472234822349223502235122352223532235422355223562235722358223592236022361223622236322364223652236622367223682236922370223712237222373223742237522376223772237822379223802238122382223832238422385223862238722388223892239022391223922239322394223952239622397223982239922400224012240222403224042240522406224072240822409224102241122412224132241422415224162241722418224192242022421224222242322424224252242622427224282242922430224312243222433224342243522436224372243822439224402244122442224432244422445224462244722448224492245022451224522245322454224552245622457224582245922460224612246222463224642246522466224672246822469224702247122472224732247422475224762247722478224792248022481224822248322484224852248622487224882248922490224912249222493224942249522496224972249822499225002250122502225032250422505225062250722508225092251022511225122251322514225152251622517225182251922520225212252222523225242252522526225272252822529225302253122532225332253422535225362253722538225392254022541225422254322544225452254622547225482254922550225512255222553225542255522556225572255822559225602256122562225632256422565225662256722568225692257022571225722257322574225752257622577225782257922580225812258222583225842258522586225872258822589225902259122592225932259422595225962259722598225992260022601226022260322604226052260622607226082260922610226112261222613226142261522616226172261822619226202262122622226232262422625226262262722628226292263022631226322263322634226352263622637226382263922640226412264222643226442264522646226472264822649226502265122652226532265422655226562265722658226592266022661226622266322664226652266622667226682266922670226712267222673226742267522676226772267822679226802268122682226832268422685226862268722688226892269022691226922269322694226952269622697226982269922700227012270222703227042270522706227072270822709227102271122712227132271422715227162271722718227192272022721227222272322724227252272622727227282272922730227312273222733227342273522736227372273822739227402274122742227432274422745227462274722748227492275022751227522275322754227552275622757227582275922760227612276222763227642276522766227672276822769227702277122772227732277422775227762277722778227792278022781227822278322784227852278622787227882278922790227912279222793227942279522796227972279822799228002280122802228032280422805228062280722808228092281022811228122281322814228152281622817228182281922820228212282222823228242282522826228272282822829228302283122832228332283422835228362283722838228392284022841228422284322844228452284622847228482284922850228512285222853228542285522856228572285822859228602286122862228632286422865228662286722868228692287022871228722287322874228752287622877228782287922880228812288222883228842288522886228872288822889228902289122892228932289422895228962289722898228992290022901229022290322904229052290622907229082290922910229112291222913229142291522916229172291822919229202292122922229232292422925229262292722928229292293022931229322293322934229352293622937229382293922940229412294222943229442294522946229472294822949229502295122952229532295422955229562295722958229592296022961229622296322964229652296622967229682296922970229712297222973229742297522976229772297822979229802298122982229832298422985229862298722988229892299022991229922299322994229952299622997229982299923000230012300223003230042300523006230072300823009230102301123012230132301423015230162301723018230192302023021230222302323024230252302623027230282302923030230312303223033230342303523036230372303823039230402304123042230432304423045230462304723048230492305023051230522305323054230552305623057230582305923060230612306223063230642306523066230672306823069230702307123072230732307423075230762307723078230792308023081230822308323084230852308623087230882308923090230912309223093230942309523096230972309823099231002310123102231032310423105231062310723108231092311023111231122311323114231152311623117231182311923120231212312223123231242312523126231272312823129231302313123132231332313423135231362313723138231392314023141231422314323144231452314623147231482314923150231512315223153231542315523156231572315823159231602316123162231632316423165231662316723168231692317023171231722317323174231752317623177231782317923180231812318223183231842318523186231872318823189231902319123192231932319423195231962319723198231992320023201232022320323204232052320623207232082320923210232112321223213232142321523216232172321823219232202322123222232232322423225232262322723228232292323023231232322323323234232352323623237232382323923240232412324223243232442324523246232472324823249232502325123252232532325423255232562325723258232592326023261232622326323264232652326623267232682326923270232712327223273232742327523276232772327823279232802328123282232832328423285232862328723288232892329023291232922329323294232952329623297232982329923300233012330223303233042330523306233072330823309233102331123312233132331423315233162331723318233192332023321233222332323324233252332623327233282332923330233312333223333233342333523336233372333823339233402334123342233432334423345233462334723348233492335023351233522335323354233552335623357233582335923360233612336223363233642336523366233672336823369233702337123372233732337423375233762337723378233792338023381233822338323384233852338623387233882338923390233912339223393233942339523396233972339823399234002340123402234032340423405234062340723408234092341023411234122341323414234152341623417234182341923420234212342223423234242342523426234272342823429234302343123432234332343423435234362343723438234392344023441234422344323444234452344623447234482344923450234512345223453234542345523456234572345823459234602346123462234632346423465234662346723468234692347023471234722347323474234752347623477234782347923480234812348223483234842348523486234872348823489234902349123492234932349423495234962349723498234992350023501235022350323504235052350623507235082350923510235112351223513235142351523516235172351823519235202352123522235232352423525235262352723528235292353023531235322353323534235352353623537235382353923540235412354223543235442354523546235472354823549235502355123552235532355423555235562355723558235592356023561235622356323564235652356623567235682356923570235712357223573235742357523576235772357823579235802358123582235832358423585235862358723588235892359023591235922359323594235952359623597235982359923600236012360223603236042360523606236072360823609236102361123612236132361423615236162361723618236192362023621236222362323624236252362623627236282362923630236312363223633236342363523636236372363823639236402364123642236432364423645236462364723648236492365023651236522365323654236552365623657236582365923660236612366223663236642366523666236672366823669236702367123672236732367423675236762367723678236792368023681236822368323684236852368623687236882368923690236912369223693236942369523696236972369823699237002370123702237032370423705237062370723708237092371023711237122371323714237152371623717237182371923720237212372223723237242372523726237272372823729237302373123732237332373423735237362373723738237392374023741237422374323744237452374623747237482374923750237512375223753237542375523756237572375823759237602376123762237632376423765237662376723768237692377023771237722377323774237752377623777237782377923780237812378223783237842378523786237872378823789237902379123792237932379423795237962379723798237992380023801238022380323804238052380623807238082380923810238112381223813238142381523816238172381823819238202382123822238232382423825238262382723828238292383023831238322383323834238352383623837238382383923840238412384223843238442384523846238472384823849238502385123852238532385423855238562385723858238592386023861238622386323864238652386623867238682386923870238712387223873238742387523876238772387823879238802388123882238832388423885238862388723888238892389023891238922389323894238952389623897238982389923900239012390223903239042390523906239072390823909239102391123912239132391423915239162391723918239192392023921239222392323924239252392623927239282392923930239312393223933239342393523936239372393823939239402394123942239432394423945239462394723948239492395023951239522395323954239552395623957239582395923960239612396223963239642396523966239672396823969239702397123972239732397423975239762397723978239792398023981239822398323984239852398623987239882398923990239912399223993239942399523996239972399823999240002400124002240032400424005240062400724008240092401024011240122401324014240152401624017240182401924020240212402224023240242402524026240272402824029240302403124032240332403424035240362403724038240392404024041240422404324044240452404624047240482404924050240512405224053240542405524056240572405824059240602406124062240632406424065240662406724068240692407024071240722407324074240752407624077240782407924080240812408224083240842408524086240872408824089240902409124092240932409424095240962409724098240992410024101241022410324104241052410624107241082410924110241112411224113241142411524116241172411824119241202412124122241232412424125241262412724128241292413024131241322413324134241352413624137241382413924140241412414224143241442414524146241472414824149241502415124152241532415424155241562415724158241592416024161241622416324164241652416624167241682416924170241712417224173241742417524176241772417824179241802418124182241832418424185241862418724188241892419024191241922419324194241952419624197241982419924200242012420224203242042420524206242072420824209242102421124212242132421424215242162421724218242192422024221242222422324224242252422624227242282422924230242312423224233242342423524236242372423824239242402424124242242432424424245242462424724248242492425024251242522425324254242552425624257242582425924260242612426224263242642426524266242672426824269242702427124272242732427424275242762427724278242792428024281242822428324284242852428624287242882428924290242912429224293242942429524296242972429824299243002430124302243032430424305243062430724308243092431024311243122431324314243152431624317243182431924320243212432224323243242432524326243272432824329243302433124332243332433424335243362433724338243392434024341243422434324344243452434624347243482434924350243512435224353243542435524356243572435824359243602436124362243632436424365243662436724368243692437024371243722437324374243752437624377243782437924380243812438224383243842438524386243872438824389243902439124392243932439424395243962439724398243992440024401244022440324404244052440624407244082440924410244112441224413244142441524416244172441824419244202442124422244232442424425244262442724428244292443024431244322443324434244352443624437244382443924440244412444224443244442444524446244472444824449244502445124452244532445424455244562445724458244592446024461244622446324464244652446624467244682446924470244712447224473244742447524476244772447824479244802448124482244832448424485244862448724488244892449024491244922449324494244952449624497244982449924500245012450224503245042450524506245072450824509245102451124512245132451424515245162451724518245192452024521245222452324524245252452624527245282452924530245312453224533245342453524536245372453824539245402454124542
  1. // Code generated for openbsd/arm64 by 'generator --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-macro=m_ --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -extended-errors -ignore-unsupported-alignment --package-name=libz -o libz.a.go libz.a', DO NOT EDIT.
  2. //go:build openbsd && arm64
  3. // +build openbsd,arm64
  4. package libz
  5. import (
  6. "reflect"
  7. "unsafe"
  8. "modernc.org/libc"
  9. )
  10. var (
  11. _ reflect.Type
  12. _ unsafe.Pointer
  13. )
  14. const m_BASE = 65521
  15. const m_NMAX = 5552
  16. const m_Z_NULL = 0
  17. type t__builtin_va_list = uintptr
  18. type t__predefined_size_t = uint64
  19. type t__predefined_wchar_t = int32
  20. type t__predefined_ptrdiff_t = int64
  21. type t__int8_t = int8
  22. type t__uint8_t = uint8
  23. type t__int16_t = int16
  24. type t__uint16_t = uint16
  25. type t__int32_t = int32
  26. type t__uint32_t = uint32
  27. type t__int64_t = int64
  28. type t__uint64_t = uint64
  29. type t__int_least8_t = int8
  30. type t__uint_least8_t = uint8
  31. type t__int_least16_t = int16
  32. type t__uint_least16_t = uint16
  33. type t__int_least32_t = int32
  34. type t__uint_least32_t = uint32
  35. type t__int_least64_t = int64
  36. type t__uint_least64_t = uint64
  37. type t__int_fast8_t = int32
  38. type t__uint_fast8_t = uint32
  39. type t__int_fast16_t = int32
  40. type t__uint_fast16_t = uint32
  41. type t__int_fast32_t = int32
  42. type t__uint_fast32_t = uint32
  43. type t__int_fast64_t = int64
  44. type t__uint_fast64_t = uint64
  45. type t__intptr_t = int64
  46. type t__uintptr_t = uint64
  47. type t__intmax_t = int64
  48. type t__uintmax_t = uint64
  49. type t__register_t = int64
  50. type t__vaddr_t = uint64
  51. type t__paddr_t = uint64
  52. type t__vsize_t = uint64
  53. type t__psize_t = uint64
  54. type t__double_t = float64
  55. type t__float_t = float32
  56. type t__ptrdiff_t = int64
  57. type t__size_t = uint64
  58. type t__ssize_t = int64
  59. type t__va_list = uintptr
  60. type t__wchar_t = int32
  61. type t__wint_t = int32
  62. type t__rune_t = int32
  63. type t__wctrans_t = uintptr
  64. type t__wctype_t = uintptr
  65. type t__blkcnt_t = int64
  66. type t__blksize_t = int32
  67. type t__clock_t = int64
  68. type t__clockid_t = int32
  69. type t__cpuid_t = uint64
  70. type t__dev_t = int32
  71. type t__fixpt_t = uint32
  72. type t__fsblkcnt_t = uint64
  73. type t__fsfilcnt_t = uint64
  74. type t__gid_t = uint32
  75. type t__id_t = uint32
  76. type t__in_addr_t = uint32
  77. type t__in_port_t = uint16
  78. type t__ino_t = uint64
  79. type t__key_t = int64
  80. type t__mode_t = uint32
  81. type t__nlink_t = uint32
  82. type t__off_t = int64
  83. type t__pid_t = int32
  84. type t__rlim_t = uint64
  85. type t__sa_family_t = uint8
  86. type t__segsz_t = int32
  87. type t__socklen_t = uint32
  88. type t__suseconds_t = int64
  89. type t__time_t = int64
  90. type t__timer_t = int32
  91. type t__uid_t = uint32
  92. type t__useconds_t = uint32
  93. type t__mbstate_t = struct {
  94. F__mbstateL [0]t__int64_t
  95. F__mbstate8 [128]uint8
  96. }
  97. type Tptrdiff_t = int64
  98. type Tsize_t = uint64
  99. type Twchar_t = int32
  100. type Twint_t = int32
  101. type Tmbstate_t = struct {
  102. F__mbstateL [0]t__int64_t
  103. F__mbstate8 [128]uint8
  104. }
  105. type Tmax_align_t = struct {
  106. F__max_align_ll int64
  107. F__max_align_ld float64
  108. }
  109. type Tz_size_t = uint64
  110. type TByte = uint8
  111. type TuInt = uint32
  112. type TuLong = uint64
  113. type TBytef = uint8
  114. type Tcharf = uint8
  115. type Tintf = int32
  116. type TuIntf = uint32
  117. type TuLongf = uint64
  118. type Tvoidpc = uintptr
  119. type Tvoidpf = uintptr
  120. type Tvoidp = uintptr
  121. type Tz_crc_t = uint32
  122. type Tu_char = uint8
  123. type Tu_short = uint16
  124. type Tu_int = uint32
  125. type Tu_long = uint64
  126. type Tunchar = uint8
  127. type Tushort = uint16
  128. type Tuint = uint32
  129. type Tulong = uint64
  130. type Tcpuid_t = uint64
  131. type Tregister_t = int64
  132. type Tint8_t = int8
  133. type Tuint8_t = uint8
  134. type Tint16_t = int16
  135. type Tuint16_t = uint16
  136. type Tint32_t = int32
  137. type Tuint32_t = uint32
  138. type Tint64_t = int64
  139. type Tuint64_t = uint64
  140. type Tu_int8_t = uint8
  141. type Tu_int16_t = uint16
  142. type Tu_int32_t = uint32
  143. type Tu_int64_t = uint64
  144. type Tquad_t = int64
  145. type Tu_quad_t = uint64
  146. type Tvaddr_t = uint64
  147. type Tpaddr_t = uint64
  148. type Tvsize_t = uint64
  149. type Tpsize_t = uint64
  150. type Tblkcnt_t = int64
  151. type Tblksize_t = int32
  152. type Tcaddr_t = uintptr
  153. type Tdaddr32_t = int32
  154. type Tdaddr_t = int64
  155. type Tdev_t = int32
  156. type Tfixpt_t = uint32
  157. type Tgid_t = uint32
  158. type Tid_t = uint32
  159. type Tino_t = uint64
  160. type Tkey_t = int64
  161. type Tmode_t = uint32
  162. type Tnlink_t = uint32
  163. type Trlim_t = uint64
  164. type Tsegsz_t = int32
  165. type Tuid_t = uint32
  166. type Tuseconds_t = uint32
  167. type Tsuseconds_t = int64
  168. type Tfsblkcnt_t = uint64
  169. type Tfsfilcnt_t = uint64
  170. type Tclock_t = int64
  171. type Tclockid_t = int32
  172. type Tpid_t = int32
  173. type Tssize_t = int64
  174. type Ttime_t = int64
  175. type Ttimer_t = int32
  176. type Toff_t = int64
  177. type t__gnuc_va_list = uintptr
  178. type Tva_list = uintptr
  179. type t__tfork = struct {
  180. Ftf_tcb uintptr
  181. Ftf_tid uintptr
  182. Ftf_stack uintptr
  183. }
  184. type t__kbind = struct {
  185. Fkb_addr uintptr
  186. Fkb_size Tsize_t
  187. }
  188. type Tintptr_t = int64
  189. type Talloc_func = uintptr
  190. type Tfree_func = uintptr
  191. type Tz_stream = struct {
  192. Fnext_in uintptr
  193. Favail_in TuInt
  194. Ftotal_in TuLong
  195. Fnext_out uintptr
  196. Favail_out TuInt
  197. Ftotal_out TuLong
  198. Fmsg uintptr
  199. Fstate uintptr
  200. Fzalloc Talloc_func
  201. Fzfree Tfree_func
  202. Fopaque Tvoidpf
  203. Fdata_type int32
  204. Fadler TuLong
  205. Freserved TuLong
  206. }
  207. type Tz_stream_s = Tz_stream
  208. type Tz_streamp = uintptr
  209. type Tgz_header = struct {
  210. Ftext int32
  211. Ftime TuLong
  212. Fxflags int32
  213. Fos int32
  214. Fextra uintptr
  215. Fextra_len TuInt
  216. Fextra_max TuInt
  217. Fname uintptr
  218. Fname_max TuInt
  219. Fcomment uintptr
  220. Fcomm_max TuInt
  221. Fhcrc int32
  222. Fdone int32
  223. F__ccgo_pad13 [4]byte
  224. }
  225. type Tgz_header_s = Tgz_header
  226. type Tgz_headerp = uintptr
  227. type Tin_func = uintptr
  228. type Tout_func = uintptr
  229. type TgzFile = uintptr
  230. type TgzFile_s = struct {
  231. Fhave uint32
  232. Fnext uintptr
  233. Fpos Toff_t
  234. }
  235. type Tlocale_t = uintptr
  236. type Tdiv_t = struct {
  237. Fquot int32
  238. Frem int32
  239. }
  240. type Tldiv_t = struct {
  241. Fquot int64
  242. Frem int64
  243. }
  244. type Tlldiv_t = struct {
  245. Fquot int64
  246. Frem int64
  247. }
  248. type Tqdiv_t = struct {
  249. Fquot Tquad_t
  250. Frem Tquad_t
  251. }
  252. type Tuch = uint8
  253. type Tuchf = uint8
  254. type Tush = uint16
  255. type Tushf = uint16
  256. type Tulg = uint64
  257. /* Reverse the bytes in a 32-bit value */
  258. /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
  259. /* use NO_DIVIDE if your processor does not do division in hardware --
  260. try it both ways to see which is faster */
  261. // C documentation
  262. //
  263. // /* ========================================================================= */
  264. func Xadler32_z(tls *libc.TLS, adler TuLong, buf uintptr, len1 Tz_size_t) (r TuLong) {
  265. var n, v3 uint32
  266. var sum2 uint64
  267. var v1, v5 Tz_size_t
  268. var v2, v6 uintptr
  269. _, _, _, _, _, _, _ = n, sum2, v1, v2, v3, v5, v6
  270. /* split Adler-32 into component sums */
  271. sum2 = adler >> libc.Int32FromInt32(16) & uint64(0xffff)
  272. adler &= uint64(0xffff)
  273. /* in case user likes doing a byte at a time, keep it fast */
  274. if len1 == uint64(1) {
  275. adler += uint64(*(*TBytef)(unsafe.Pointer(buf)))
  276. if adler >= uint64(65521) {
  277. adler -= uint64(65521)
  278. }
  279. sum2 += adler
  280. if sum2 >= uint64(65521) {
  281. sum2 -= uint64(65521)
  282. }
  283. return adler | sum2<<int32(16)
  284. }
  285. /* initial Adler-32 value (deferred check for len == 1 speed) */
  286. if buf == uintptr(m_Z_NULL) {
  287. return uint64(1)
  288. }
  289. /* in case short lengths are provided, keep it somewhat fast */
  290. if len1 < uint64(16) {
  291. for {
  292. v1 = len1
  293. len1--
  294. if !(v1 != 0) {
  295. break
  296. }
  297. v2 = buf
  298. buf++
  299. adler += uint64(*(*TBytef)(unsafe.Pointer(v2)))
  300. sum2 += adler
  301. }
  302. if adler >= uint64(65521) {
  303. adler -= uint64(65521)
  304. }
  305. sum2 %= uint64(65521) /* only added so many BASE's */
  306. return adler | sum2<<int32(16)
  307. }
  308. /* do length NMAX blocks -- requires just one modulo operation */
  309. for len1 >= uint64(m_NMAX) {
  310. len1 -= uint64(m_NMAX)
  311. n = uint32(libc.Int32FromInt32(m_NMAX) / libc.Int32FromInt32(16)) /* NMAX is divisible by 16 */
  312. for {
  313. adler += uint64(*(*TBytef)(unsafe.Pointer(buf)))
  314. sum2 += adler
  315. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(1)))))
  316. sum2 += adler
  317. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)))))
  318. sum2 += adler
  319. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  320. sum2 += adler
  321. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)))))
  322. sum2 += adler
  323. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  324. sum2 += adler
  325. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  326. sum2 += adler
  327. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  328. sum2 += adler
  329. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + 8)))
  330. sum2 += adler
  331. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(1)))))
  332. sum2 += adler
  333. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)))))
  334. sum2 += adler
  335. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  336. sum2 += adler
  337. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)))))
  338. sum2 += adler
  339. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  340. sum2 += adler
  341. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  342. sum2 += adler
  343. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  344. sum2 += adler /* 16 sums unrolled */
  345. buf += uintptr(16)
  346. goto _4
  347. _4:
  348. n--
  349. v3 = n
  350. if !(v3 != 0) {
  351. break
  352. }
  353. }
  354. adler %= uint64(65521)
  355. sum2 %= uint64(65521)
  356. }
  357. /* do remaining bytes (less than NMAX, still just one modulo) */
  358. if len1 != 0 { /* avoid modulos if none remaining */
  359. for len1 >= uint64(16) {
  360. len1 -= uint64(16)
  361. adler += uint64(*(*TBytef)(unsafe.Pointer(buf)))
  362. sum2 += adler
  363. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(1)))))
  364. sum2 += adler
  365. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)))))
  366. sum2 += adler
  367. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  368. sum2 += adler
  369. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)))))
  370. sum2 += adler
  371. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  372. sum2 += adler
  373. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  374. sum2 += adler
  375. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  376. sum2 += adler
  377. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + 8)))
  378. sum2 += adler
  379. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(1)))))
  380. sum2 += adler
  381. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)))))
  382. sum2 += adler
  383. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  384. sum2 += adler
  385. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)))))
  386. sum2 += adler
  387. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  388. sum2 += adler
  389. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  390. sum2 += adler
  391. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  392. sum2 += adler
  393. buf += uintptr(16)
  394. }
  395. for {
  396. v5 = len1
  397. len1--
  398. if !(v5 != 0) {
  399. break
  400. }
  401. v6 = buf
  402. buf++
  403. adler += uint64(*(*TBytef)(unsafe.Pointer(v6)))
  404. sum2 += adler
  405. }
  406. adler %= uint64(65521)
  407. sum2 %= uint64(65521)
  408. }
  409. /* return recombined sums */
  410. return adler | sum2<<int32(16)
  411. }
  412. // C documentation
  413. //
  414. // /* ========================================================================= */
  415. func Xadler32(tls *libc.TLS, adler TuLong, buf uintptr, len1 TuInt) (r TuLong) {
  416. return Xadler32_z(tls, adler, buf, uint64(len1))
  417. }
  418. // C documentation
  419. //
  420. // /* ========================================================================= */
  421. func _adler32_combine_(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff_t) (r TuLong) {
  422. var rem uint32
  423. var sum1, sum2 uint64
  424. _, _, _ = rem, sum1, sum2
  425. /* for negative len, return invalid adler32 as a clue for debugging */
  426. if len2 < 0 {
  427. return uint64(0xffffffff)
  428. }
  429. /* the derivation of this formula is left as an exercise for the reader */
  430. len2 %= libc.Int64FromUint32(65521) /* assumes len2 >= 0 */
  431. rem = uint32(len2)
  432. sum1 = adler1 & uint64(0xffff)
  433. sum2 = uint64(rem) * sum1
  434. sum2 %= uint64(65521)
  435. sum1 += adler2&uint64(0xffff) + uint64(65521) - uint64(1)
  436. sum2 += adler1>>libc.Int32FromInt32(16)&uint64(0xffff) + adler2>>libc.Int32FromInt32(16)&uint64(0xffff) + uint64(65521) - uint64(rem)
  437. if sum1 >= uint64(65521) {
  438. sum1 -= uint64(65521)
  439. }
  440. if sum1 >= uint64(65521) {
  441. sum1 -= uint64(65521)
  442. }
  443. if sum2 >= libc.Uint64FromUint32(65521)<<libc.Int32FromInt32(1) {
  444. sum2 -= libc.Uint64FromUint32(65521) << libc.Int32FromInt32(1)
  445. }
  446. if sum2 >= uint64(65521) {
  447. sum2 -= uint64(65521)
  448. }
  449. return sum1 | sum2<<int32(16)
  450. }
  451. // C documentation
  452. //
  453. // /* ========================================================================= */
  454. func Xadler32_combine(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff_t) (r TuLong) {
  455. return _adler32_combine_(tls, adler1, adler2, len2)
  456. }
  457. func Xadler32_combine64(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff_t) (r TuLong) {
  458. return _adler32_combine_(tls, adler1, adler2, len2)
  459. }
  460. const m_N = 5
  461. const m_POLY = 3988292384
  462. const m_W = 8
  463. /* Reverse the bytes in a 32-bit value */
  464. /*
  465. A CRC of a message is computed on N braids of words in the message, where
  466. each word consists of W bytes (4 or 8). If N is 3, for example, then three
  467. running sparse CRCs are calculated respectively on each braid, at these
  468. indices in the array of words: 0, 3, 6, ..., 1, 4, 7, ..., and 2, 5, 8, ...
  469. This is done starting at a word boundary, and continues until as many blocks
  470. of N * W bytes as are available have been processed. The results are combined
  471. into a single CRC at the end. For this code, N must be in the range 1..6 and
  472. W must be 4 or 8. The upper limit on N can be increased if desired by adding
  473. more #if blocks, extending the patterns apparent in the code. In addition,
  474. crc32.h would need to be regenerated, if the maximum N value is increased.
  475. N and W are chosen empirically by benchmarking the execution time on a given
  476. processor. The choices for N and W below were based on testing on Intel Kaby
  477. Lake i7, AMD Ryzen 7, ARM Cortex-A57, Sparc64-VII, PowerPC POWER9, and MIPS64
  478. Octeon II processors. The Intel, AMD, and ARM processors were all fastest
  479. with N=5, W=8. The Sparc, PowerPC, and MIPS64 were all fastest at N=5, W=4.
  480. They were all tested with either gcc or clang, all using the -O3 optimization
  481. level. Your mileage may vary.
  482. */
  483. /* Define N */
  484. /*
  485. z_crc_t must be at least 32 bits. z_word_t must be at least as long as
  486. z_crc_t. It is assumed here that z_word_t is either 32 bits or 64 bits, and
  487. that bytes are eight bits.
  488. */
  489. // C documentation
  490. //
  491. // /*
  492. // Define W and the associated z_word_t type. If W is not defined, then a
  493. // braided calculation is not used, and the associated tables and code are not
  494. // compiled.
  495. // */
  496. type Tz_word_t = uint64
  497. /* If available, use the ARM processor CRC32 instruction. */
  498. // C documentation
  499. //
  500. // /*
  501. // Swap the bytes in a z_word_t to convert between little and big endian. Any
  502. // self-respecting compiler will optimize this to a single machine byte-swap
  503. // instruction, if one is available. This assumes that word_t is either 32 bits
  504. // or 64 bits.
  505. // */
  506. func _byte_swap(tls *libc.TLS, word Tz_word_t) (r Tz_word_t) {
  507. return word&uint64(0xff00000000000000)>>int32(56) | word&uint64(0xff000000000000)>>int32(40) | word&uint64(0xff0000000000)>>int32(24) | word&uint64(0xff00000000)>>int32(8) | word&uint64(0xff000000)<<int32(8) | word&uint64(0xff0000)<<int32(24) | word&uint64(0xff00)<<int32(40) | word&uint64(0xff)<<int32(56)
  508. }
  509. var _crc_table = [256]Tz_crc_t{
  510. 1: uint32(0x77073096),
  511. 2: uint32(0xee0e612c),
  512. 3: uint32(0x990951ba),
  513. 4: uint32(0x076dc419),
  514. 5: uint32(0x706af48f),
  515. 6: uint32(0xe963a535),
  516. 7: uint32(0x9e6495a3),
  517. 8: uint32(0x0edb8832),
  518. 9: uint32(0x79dcb8a4),
  519. 10: uint32(0xe0d5e91e),
  520. 11: uint32(0x97d2d988),
  521. 12: uint32(0x09b64c2b),
  522. 13: uint32(0x7eb17cbd),
  523. 14: uint32(0xe7b82d07),
  524. 15: uint32(0x90bf1d91),
  525. 16: uint32(0x1db71064),
  526. 17: uint32(0x6ab020f2),
  527. 18: uint32(0xf3b97148),
  528. 19: uint32(0x84be41de),
  529. 20: uint32(0x1adad47d),
  530. 21: uint32(0x6ddde4eb),
  531. 22: uint32(0xf4d4b551),
  532. 23: uint32(0x83d385c7),
  533. 24: uint32(0x136c9856),
  534. 25: uint32(0x646ba8c0),
  535. 26: uint32(0xfd62f97a),
  536. 27: uint32(0x8a65c9ec),
  537. 28: uint32(0x14015c4f),
  538. 29: uint32(0x63066cd9),
  539. 30: uint32(0xfa0f3d63),
  540. 31: uint32(0x8d080df5),
  541. 32: uint32(0x3b6e20c8),
  542. 33: uint32(0x4c69105e),
  543. 34: uint32(0xd56041e4),
  544. 35: uint32(0xa2677172),
  545. 36: uint32(0x3c03e4d1),
  546. 37: uint32(0x4b04d447),
  547. 38: uint32(0xd20d85fd),
  548. 39: uint32(0xa50ab56b),
  549. 40: uint32(0x35b5a8fa),
  550. 41: uint32(0x42b2986c),
  551. 42: uint32(0xdbbbc9d6),
  552. 43: uint32(0xacbcf940),
  553. 44: uint32(0x32d86ce3),
  554. 45: uint32(0x45df5c75),
  555. 46: uint32(0xdcd60dcf),
  556. 47: uint32(0xabd13d59),
  557. 48: uint32(0x26d930ac),
  558. 49: uint32(0x51de003a),
  559. 50: uint32(0xc8d75180),
  560. 51: uint32(0xbfd06116),
  561. 52: uint32(0x21b4f4b5),
  562. 53: uint32(0x56b3c423),
  563. 54: uint32(0xcfba9599),
  564. 55: uint32(0xb8bda50f),
  565. 56: uint32(0x2802b89e),
  566. 57: uint32(0x5f058808),
  567. 58: uint32(0xc60cd9b2),
  568. 59: uint32(0xb10be924),
  569. 60: uint32(0x2f6f7c87),
  570. 61: uint32(0x58684c11),
  571. 62: uint32(0xc1611dab),
  572. 63: uint32(0xb6662d3d),
  573. 64: uint32(0x76dc4190),
  574. 65: uint32(0x01db7106),
  575. 66: uint32(0x98d220bc),
  576. 67: uint32(0xefd5102a),
  577. 68: uint32(0x71b18589),
  578. 69: uint32(0x06b6b51f),
  579. 70: uint32(0x9fbfe4a5),
  580. 71: uint32(0xe8b8d433),
  581. 72: uint32(0x7807c9a2),
  582. 73: uint32(0x0f00f934),
  583. 74: uint32(0x9609a88e),
  584. 75: uint32(0xe10e9818),
  585. 76: uint32(0x7f6a0dbb),
  586. 77: uint32(0x086d3d2d),
  587. 78: uint32(0x91646c97),
  588. 79: uint32(0xe6635c01),
  589. 80: uint32(0x6b6b51f4),
  590. 81: uint32(0x1c6c6162),
  591. 82: uint32(0x856530d8),
  592. 83: uint32(0xf262004e),
  593. 84: uint32(0x6c0695ed),
  594. 85: uint32(0x1b01a57b),
  595. 86: uint32(0x8208f4c1),
  596. 87: uint32(0xf50fc457),
  597. 88: uint32(0x65b0d9c6),
  598. 89: uint32(0x12b7e950),
  599. 90: uint32(0x8bbeb8ea),
  600. 91: uint32(0xfcb9887c),
  601. 92: uint32(0x62dd1ddf),
  602. 93: uint32(0x15da2d49),
  603. 94: uint32(0x8cd37cf3),
  604. 95: uint32(0xfbd44c65),
  605. 96: uint32(0x4db26158),
  606. 97: uint32(0x3ab551ce),
  607. 98: uint32(0xa3bc0074),
  608. 99: uint32(0xd4bb30e2),
  609. 100: uint32(0x4adfa541),
  610. 101: uint32(0x3dd895d7),
  611. 102: uint32(0xa4d1c46d),
  612. 103: uint32(0xd3d6f4fb),
  613. 104: uint32(0x4369e96a),
  614. 105: uint32(0x346ed9fc),
  615. 106: uint32(0xad678846),
  616. 107: uint32(0xda60b8d0),
  617. 108: uint32(0x44042d73),
  618. 109: uint32(0x33031de5),
  619. 110: uint32(0xaa0a4c5f),
  620. 111: uint32(0xdd0d7cc9),
  621. 112: uint32(0x5005713c),
  622. 113: uint32(0x270241aa),
  623. 114: uint32(0xbe0b1010),
  624. 115: uint32(0xc90c2086),
  625. 116: uint32(0x5768b525),
  626. 117: uint32(0x206f85b3),
  627. 118: uint32(0xb966d409),
  628. 119: uint32(0xce61e49f),
  629. 120: uint32(0x5edef90e),
  630. 121: uint32(0x29d9c998),
  631. 122: uint32(0xb0d09822),
  632. 123: uint32(0xc7d7a8b4),
  633. 124: uint32(0x59b33d17),
  634. 125: uint32(0x2eb40d81),
  635. 126: uint32(0xb7bd5c3b),
  636. 127: uint32(0xc0ba6cad),
  637. 128: uint32(0xedb88320),
  638. 129: uint32(0x9abfb3b6),
  639. 130: uint32(0x03b6e20c),
  640. 131: uint32(0x74b1d29a),
  641. 132: uint32(0xead54739),
  642. 133: uint32(0x9dd277af),
  643. 134: uint32(0x04db2615),
  644. 135: uint32(0x73dc1683),
  645. 136: uint32(0xe3630b12),
  646. 137: uint32(0x94643b84),
  647. 138: uint32(0x0d6d6a3e),
  648. 139: uint32(0x7a6a5aa8),
  649. 140: uint32(0xe40ecf0b),
  650. 141: uint32(0x9309ff9d),
  651. 142: uint32(0x0a00ae27),
  652. 143: uint32(0x7d079eb1),
  653. 144: uint32(0xf00f9344),
  654. 145: uint32(0x8708a3d2),
  655. 146: uint32(0x1e01f268),
  656. 147: uint32(0x6906c2fe),
  657. 148: uint32(0xf762575d),
  658. 149: uint32(0x806567cb),
  659. 150: uint32(0x196c3671),
  660. 151: uint32(0x6e6b06e7),
  661. 152: uint32(0xfed41b76),
  662. 153: uint32(0x89d32be0),
  663. 154: uint32(0x10da7a5a),
  664. 155: uint32(0x67dd4acc),
  665. 156: uint32(0xf9b9df6f),
  666. 157: uint32(0x8ebeeff9),
  667. 158: uint32(0x17b7be43),
  668. 159: uint32(0x60b08ed5),
  669. 160: uint32(0xd6d6a3e8),
  670. 161: uint32(0xa1d1937e),
  671. 162: uint32(0x38d8c2c4),
  672. 163: uint32(0x4fdff252),
  673. 164: uint32(0xd1bb67f1),
  674. 165: uint32(0xa6bc5767),
  675. 166: uint32(0x3fb506dd),
  676. 167: uint32(0x48b2364b),
  677. 168: uint32(0xd80d2bda),
  678. 169: uint32(0xaf0a1b4c),
  679. 170: uint32(0x36034af6),
  680. 171: uint32(0x41047a60),
  681. 172: uint32(0xdf60efc3),
  682. 173: uint32(0xa867df55),
  683. 174: uint32(0x316e8eef),
  684. 175: uint32(0x4669be79),
  685. 176: uint32(0xcb61b38c),
  686. 177: uint32(0xbc66831a),
  687. 178: uint32(0x256fd2a0),
  688. 179: uint32(0x5268e236),
  689. 180: uint32(0xcc0c7795),
  690. 181: uint32(0xbb0b4703),
  691. 182: uint32(0x220216b9),
  692. 183: uint32(0x5505262f),
  693. 184: uint32(0xc5ba3bbe),
  694. 185: uint32(0xb2bd0b28),
  695. 186: uint32(0x2bb45a92),
  696. 187: uint32(0x5cb36a04),
  697. 188: uint32(0xc2d7ffa7),
  698. 189: uint32(0xb5d0cf31),
  699. 190: uint32(0x2cd99e8b),
  700. 191: uint32(0x5bdeae1d),
  701. 192: uint32(0x9b64c2b0),
  702. 193: uint32(0xec63f226),
  703. 194: uint32(0x756aa39c),
  704. 195: uint32(0x026d930a),
  705. 196: uint32(0x9c0906a9),
  706. 197: uint32(0xeb0e363f),
  707. 198: uint32(0x72076785),
  708. 199: uint32(0x05005713),
  709. 200: uint32(0x95bf4a82),
  710. 201: uint32(0xe2b87a14),
  711. 202: uint32(0x7bb12bae),
  712. 203: uint32(0x0cb61b38),
  713. 204: uint32(0x92d28e9b),
  714. 205: uint32(0xe5d5be0d),
  715. 206: uint32(0x7cdcefb7),
  716. 207: uint32(0x0bdbdf21),
  717. 208: uint32(0x86d3d2d4),
  718. 209: uint32(0xf1d4e242),
  719. 210: uint32(0x68ddb3f8),
  720. 211: uint32(0x1fda836e),
  721. 212: uint32(0x81be16cd),
  722. 213: uint32(0xf6b9265b),
  723. 214: uint32(0x6fb077e1),
  724. 215: uint32(0x18b74777),
  725. 216: uint32(0x88085ae6),
  726. 217: uint32(0xff0f6a70),
  727. 218: uint32(0x66063bca),
  728. 219: uint32(0x11010b5c),
  729. 220: uint32(0x8f659eff),
  730. 221: uint32(0xf862ae69),
  731. 222: uint32(0x616bffd3),
  732. 223: uint32(0x166ccf45),
  733. 224: uint32(0xa00ae278),
  734. 225: uint32(0xd70dd2ee),
  735. 226: uint32(0x4e048354),
  736. 227: uint32(0x3903b3c2),
  737. 228: uint32(0xa7672661),
  738. 229: uint32(0xd06016f7),
  739. 230: uint32(0x4969474d),
  740. 231: uint32(0x3e6e77db),
  741. 232: uint32(0xaed16a4a),
  742. 233: uint32(0xd9d65adc),
  743. 234: uint32(0x40df0b66),
  744. 235: uint32(0x37d83bf0),
  745. 236: uint32(0xa9bcae53),
  746. 237: uint32(0xdebb9ec5),
  747. 238: uint32(0x47b2cf7f),
  748. 239: uint32(0x30b5ffe9),
  749. 240: uint32(0xbdbdf21c),
  750. 241: uint32(0xcabac28a),
  751. 242: uint32(0x53b39330),
  752. 243: uint32(0x24b4a3a6),
  753. 244: uint32(0xbad03605),
  754. 245: uint32(0xcdd70693),
  755. 246: uint32(0x54de5729),
  756. 247: uint32(0x23d967bf),
  757. 248: uint32(0xb3667a2e),
  758. 249: uint32(0xc4614ab8),
  759. 250: uint32(0x5d681b02),
  760. 251: uint32(0x2a6f2b94),
  761. 252: uint32(0xb40bbe37),
  762. 253: uint32(0xc30c8ea1),
  763. 254: uint32(0x5a05df1b),
  764. 255: uint32(0x2d02ef8d),
  765. }
  766. var _crc_big_table = [256]Tz_word_t{
  767. 1: uint64(0x9630077700000000),
  768. 2: uint64(0x2c610eee00000000),
  769. 3: uint64(0xba51099900000000),
  770. 4: uint64(0x19c46d0700000000),
  771. 5: uint64(0x8ff46a7000000000),
  772. 6: uint64(0x35a563e900000000),
  773. 7: uint64(0xa395649e00000000),
  774. 8: uint64(0x3288db0e00000000),
  775. 9: uint64(0xa4b8dc7900000000),
  776. 10: uint64(0x1ee9d5e000000000),
  777. 11: uint64(0x88d9d29700000000),
  778. 12: uint64(0x2b4cb60900000000),
  779. 13: uint64(0xbd7cb17e00000000),
  780. 14: uint64(0x072db8e700000000),
  781. 15: uint64(0x911dbf9000000000),
  782. 16: uint64(0x6410b71d00000000),
  783. 17: uint64(0xf220b06a00000000),
  784. 18: uint64(0x4871b9f300000000),
  785. 19: uint64(0xde41be8400000000),
  786. 20: uint64(0x7dd4da1a00000000),
  787. 21: uint64(0xebe4dd6d00000000),
  788. 22: uint64(0x51b5d4f400000000),
  789. 23: uint64(0xc785d38300000000),
  790. 24: uint64(0x56986c1300000000),
  791. 25: uint64(0xc0a86b6400000000),
  792. 26: uint64(0x7af962fd00000000),
  793. 27: uint64(0xecc9658a00000000),
  794. 28: uint64(0x4f5c011400000000),
  795. 29: uint64(0xd96c066300000000),
  796. 30: uint64(0x633d0ffa00000000),
  797. 31: uint64(0xf50d088d00000000),
  798. 32: uint64(0xc8206e3b00000000),
  799. 33: uint64(0x5e10694c00000000),
  800. 34: uint64(0xe44160d500000000),
  801. 35: uint64(0x727167a200000000),
  802. 36: uint64(0xd1e4033c00000000),
  803. 37: uint64(0x47d4044b00000000),
  804. 38: uint64(0xfd850dd200000000),
  805. 39: uint64(0x6bb50aa500000000),
  806. 40: uint64(0xfaa8b53500000000),
  807. 41: uint64(0x6c98b24200000000),
  808. 42: uint64(0xd6c9bbdb00000000),
  809. 43: uint64(0x40f9bcac00000000),
  810. 44: uint64(0xe36cd83200000000),
  811. 45: uint64(0x755cdf4500000000),
  812. 46: uint64(0xcf0dd6dc00000000),
  813. 47: uint64(0x593dd1ab00000000),
  814. 48: uint64(0xac30d92600000000),
  815. 49: uint64(0x3a00de5100000000),
  816. 50: uint64(0x8051d7c800000000),
  817. 51: uint64(0x1661d0bf00000000),
  818. 52: uint64(0xb5f4b42100000000),
  819. 53: uint64(0x23c4b35600000000),
  820. 54: uint64(0x9995bacf00000000),
  821. 55: uint64(0x0fa5bdb800000000),
  822. 56: uint64(0x9eb8022800000000),
  823. 57: uint64(0x0888055f00000000),
  824. 58: uint64(0xb2d90cc600000000),
  825. 59: uint64(0x24e90bb100000000),
  826. 60: uint64(0x877c6f2f00000000),
  827. 61: uint64(0x114c685800000000),
  828. 62: uint64(0xab1d61c100000000),
  829. 63: uint64(0x3d2d66b600000000),
  830. 64: uint64(0x9041dc7600000000),
  831. 65: uint64(0x0671db0100000000),
  832. 66: uint64(0xbc20d29800000000),
  833. 67: uint64(0x2a10d5ef00000000),
  834. 68: uint64(0x8985b17100000000),
  835. 69: uint64(0x1fb5b60600000000),
  836. 70: uint64(0xa5e4bf9f00000000),
  837. 71: uint64(0x33d4b8e800000000),
  838. 72: uint64(0xa2c9077800000000),
  839. 73: uint64(0x34f9000f00000000),
  840. 74: uint64(0x8ea8099600000000),
  841. 75: uint64(0x18980ee100000000),
  842. 76: uint64(0xbb0d6a7f00000000),
  843. 77: uint64(0x2d3d6d0800000000),
  844. 78: uint64(0x976c649100000000),
  845. 79: uint64(0x015c63e600000000),
  846. 80: uint64(0xf4516b6b00000000),
  847. 81: uint64(0x62616c1c00000000),
  848. 82: uint64(0xd830658500000000),
  849. 83: uint64(0x4e0062f200000000),
  850. 84: uint64(0xed95066c00000000),
  851. 85: uint64(0x7ba5011b00000000),
  852. 86: uint64(0xc1f4088200000000),
  853. 87: uint64(0x57c40ff500000000),
  854. 88: uint64(0xc6d9b06500000000),
  855. 89: uint64(0x50e9b71200000000),
  856. 90: uint64(0xeab8be8b00000000),
  857. 91: uint64(0x7c88b9fc00000000),
  858. 92: uint64(0xdf1ddd6200000000),
  859. 93: uint64(0x492dda1500000000),
  860. 94: uint64(0xf37cd38c00000000),
  861. 95: uint64(0x654cd4fb00000000),
  862. 96: uint64(0x5861b24d00000000),
  863. 97: uint64(0xce51b53a00000000),
  864. 98: uint64(0x7400bca300000000),
  865. 99: uint64(0xe230bbd400000000),
  866. 100: uint64(0x41a5df4a00000000),
  867. 101: uint64(0xd795d83d00000000),
  868. 102: uint64(0x6dc4d1a400000000),
  869. 103: uint64(0xfbf4d6d300000000),
  870. 104: uint64(0x6ae9694300000000),
  871. 105: uint64(0xfcd96e3400000000),
  872. 106: uint64(0x468867ad00000000),
  873. 107: uint64(0xd0b860da00000000),
  874. 108: uint64(0x732d044400000000),
  875. 109: uint64(0xe51d033300000000),
  876. 110: uint64(0x5f4c0aaa00000000),
  877. 111: uint64(0xc97c0ddd00000000),
  878. 112: uint64(0x3c71055000000000),
  879. 113: uint64(0xaa41022700000000),
  880. 114: uint64(0x10100bbe00000000),
  881. 115: uint64(0x86200cc900000000),
  882. 116: uint64(0x25b5685700000000),
  883. 117: uint64(0xb3856f2000000000),
  884. 118: uint64(0x09d466b900000000),
  885. 119: uint64(0x9fe461ce00000000),
  886. 120: uint64(0x0ef9de5e00000000),
  887. 121: uint64(0x98c9d92900000000),
  888. 122: uint64(0x2298d0b000000000),
  889. 123: uint64(0xb4a8d7c700000000),
  890. 124: uint64(0x173db35900000000),
  891. 125: uint64(0x810db42e00000000),
  892. 126: uint64(0x3b5cbdb700000000),
  893. 127: uint64(0xad6cbac000000000),
  894. 128: uint64(0x2083b8ed00000000),
  895. 129: uint64(0xb6b3bf9a00000000),
  896. 130: uint64(0x0ce2b60300000000),
  897. 131: uint64(0x9ad2b17400000000),
  898. 132: uint64(0x3947d5ea00000000),
  899. 133: uint64(0xaf77d29d00000000),
  900. 134: uint64(0x1526db0400000000),
  901. 135: uint64(0x8316dc7300000000),
  902. 136: uint64(0x120b63e300000000),
  903. 137: uint64(0x843b649400000000),
  904. 138: uint64(0x3e6a6d0d00000000),
  905. 139: uint64(0xa85a6a7a00000000),
  906. 140: uint64(0x0bcf0ee400000000),
  907. 141: uint64(0x9dff099300000000),
  908. 142: uint64(0x27ae000a00000000),
  909. 143: uint64(0xb19e077d00000000),
  910. 144: uint64(0x44930ff000000000),
  911. 145: uint64(0xd2a3088700000000),
  912. 146: uint64(0x68f2011e00000000),
  913. 147: uint64(0xfec2066900000000),
  914. 148: uint64(0x5d5762f700000000),
  915. 149: uint64(0xcb67658000000000),
  916. 150: uint64(0x71366c1900000000),
  917. 151: uint64(0xe7066b6e00000000),
  918. 152: uint64(0x761bd4fe00000000),
  919. 153: uint64(0xe02bd38900000000),
  920. 154: uint64(0x5a7ada1000000000),
  921. 155: uint64(0xcc4add6700000000),
  922. 156: uint64(0x6fdfb9f900000000),
  923. 157: uint64(0xf9efbe8e00000000),
  924. 158: uint64(0x43beb71700000000),
  925. 159: uint64(0xd58eb06000000000),
  926. 160: uint64(0xe8a3d6d600000000),
  927. 161: uint64(0x7e93d1a100000000),
  928. 162: uint64(0xc4c2d83800000000),
  929. 163: uint64(0x52f2df4f00000000),
  930. 164: uint64(0xf167bbd100000000),
  931. 165: uint64(0x6757bca600000000),
  932. 166: uint64(0xdd06b53f00000000),
  933. 167: uint64(0x4b36b24800000000),
  934. 168: uint64(0xda2b0dd800000000),
  935. 169: uint64(0x4c1b0aaf00000000),
  936. 170: uint64(0xf64a033600000000),
  937. 171: uint64(0x607a044100000000),
  938. 172: uint64(0xc3ef60df00000000),
  939. 173: uint64(0x55df67a800000000),
  940. 174: uint64(0xef8e6e3100000000),
  941. 175: uint64(0x79be694600000000),
  942. 176: uint64(0x8cb361cb00000000),
  943. 177: uint64(0x1a8366bc00000000),
  944. 178: uint64(0xa0d26f2500000000),
  945. 179: uint64(0x36e2685200000000),
  946. 180: uint64(0x95770ccc00000000),
  947. 181: uint64(0x03470bbb00000000),
  948. 182: uint64(0xb916022200000000),
  949. 183: uint64(0x2f26055500000000),
  950. 184: uint64(0xbe3bbac500000000),
  951. 185: uint64(0x280bbdb200000000),
  952. 186: uint64(0x925ab42b00000000),
  953. 187: uint64(0x046ab35c00000000),
  954. 188: uint64(0xa7ffd7c200000000),
  955. 189: uint64(0x31cfd0b500000000),
  956. 190: uint64(0x8b9ed92c00000000),
  957. 191: uint64(0x1daede5b00000000),
  958. 192: uint64(0xb0c2649b00000000),
  959. 193: uint64(0x26f263ec00000000),
  960. 194: uint64(0x9ca36a7500000000),
  961. 195: uint64(0x0a936d0200000000),
  962. 196: uint64(0xa906099c00000000),
  963. 197: uint64(0x3f360eeb00000000),
  964. 198: uint64(0x8567077200000000),
  965. 199: uint64(0x1357000500000000),
  966. 200: uint64(0x824abf9500000000),
  967. 201: uint64(0x147ab8e200000000),
  968. 202: uint64(0xae2bb17b00000000),
  969. 203: uint64(0x381bb60c00000000),
  970. 204: uint64(0x9b8ed29200000000),
  971. 205: uint64(0x0dbed5e500000000),
  972. 206: uint64(0xb7efdc7c00000000),
  973. 207: uint64(0x21dfdb0b00000000),
  974. 208: uint64(0xd4d2d38600000000),
  975. 209: uint64(0x42e2d4f100000000),
  976. 210: uint64(0xf8b3dd6800000000),
  977. 211: uint64(0x6e83da1f00000000),
  978. 212: uint64(0xcd16be8100000000),
  979. 213: uint64(0x5b26b9f600000000),
  980. 214: uint64(0xe177b06f00000000),
  981. 215: uint64(0x7747b71800000000),
  982. 216: uint64(0xe65a088800000000),
  983. 217: uint64(0x706a0fff00000000),
  984. 218: uint64(0xca3b066600000000),
  985. 219: uint64(0x5c0b011100000000),
  986. 220: uint64(0xff9e658f00000000),
  987. 221: uint64(0x69ae62f800000000),
  988. 222: uint64(0xd3ff6b6100000000),
  989. 223: uint64(0x45cf6c1600000000),
  990. 224: uint64(0x78e20aa000000000),
  991. 225: uint64(0xeed20dd700000000),
  992. 226: uint64(0x5483044e00000000),
  993. 227: uint64(0xc2b3033900000000),
  994. 228: uint64(0x612667a700000000),
  995. 229: uint64(0xf71660d000000000),
  996. 230: uint64(0x4d47694900000000),
  997. 231: uint64(0xdb776e3e00000000),
  998. 232: uint64(0x4a6ad1ae00000000),
  999. 233: uint64(0xdc5ad6d900000000),
  1000. 234: uint64(0x660bdf4000000000),
  1001. 235: uint64(0xf03bd83700000000),
  1002. 236: uint64(0x53aebca900000000),
  1003. 237: uint64(0xc59ebbde00000000),
  1004. 238: uint64(0x7fcfb24700000000),
  1005. 239: uint64(0xe9ffb53000000000),
  1006. 240: uint64(0x1cf2bdbd00000000),
  1007. 241: uint64(0x8ac2baca00000000),
  1008. 242: uint64(0x3093b35300000000),
  1009. 243: uint64(0xa6a3b42400000000),
  1010. 244: uint64(0x0536d0ba00000000),
  1011. 245: uint64(0x9306d7cd00000000),
  1012. 246: uint64(0x2957de5400000000),
  1013. 247: uint64(0xbf67d92300000000),
  1014. 248: uint64(0x2e7a66b300000000),
  1015. 249: uint64(0xb84a61c400000000),
  1016. 250: uint64(0x021b685d00000000),
  1017. 251: uint64(0x942b6f2a00000000),
  1018. 252: uint64(0x37be0bb400000000),
  1019. 253: uint64(0xa18e0cc300000000),
  1020. 254: uint64(0x1bdf055a00000000),
  1021. 255: uint64(0x8def022d00000000),
  1022. }
  1023. var _crc_braid_table = [8][256]Tz_crc_t{
  1024. 0: {
  1025. 1: uint32(0xaf449247),
  1026. 2: uint32(0x85f822cf),
  1027. 3: uint32(0x2abcb088),
  1028. 4: uint32(0xd08143df),
  1029. 5: uint32(0x7fc5d198),
  1030. 6: uint32(0x55796110),
  1031. 7: uint32(0xfa3df357),
  1032. 8: uint32(0x7a7381ff),
  1033. 9: uint32(0xd53713b8),
  1034. 10: uint32(0xff8ba330),
  1035. 11: uint32(0x50cf3177),
  1036. 12: uint32(0xaaf2c220),
  1037. 13: uint32(0x05b65067),
  1038. 14: uint32(0x2f0ae0ef),
  1039. 15: uint32(0x804e72a8),
  1040. 16: uint32(0xf4e703fe),
  1041. 17: uint32(0x5ba391b9),
  1042. 18: uint32(0x711f2131),
  1043. 19: uint32(0xde5bb376),
  1044. 20: uint32(0x24664021),
  1045. 21: uint32(0x8b22d266),
  1046. 22: uint32(0xa19e62ee),
  1047. 23: uint32(0x0edaf0a9),
  1048. 24: uint32(0x8e948201),
  1049. 25: uint32(0x21d01046),
  1050. 26: uint32(0x0b6ca0ce),
  1051. 27: uint32(0xa4283289),
  1052. 28: uint32(0x5e15c1de),
  1053. 29: uint32(0xf1515399),
  1054. 30: uint32(0xdbede311),
  1055. 31: uint32(0x74a97156),
  1056. 32: uint32(0x32bf01bd),
  1057. 33: uint32(0x9dfb93fa),
  1058. 34: uint32(0xb7472372),
  1059. 35: uint32(0x1803b135),
  1060. 36: uint32(0xe23e4262),
  1061. 37: uint32(0x4d7ad025),
  1062. 38: uint32(0x67c660ad),
  1063. 39: uint32(0xc882f2ea),
  1064. 40: uint32(0x48cc8042),
  1065. 41: uint32(0xe7881205),
  1066. 42: uint32(0xcd34a28d),
  1067. 43: uint32(0x627030ca),
  1068. 44: uint32(0x984dc39d),
  1069. 45: uint32(0x370951da),
  1070. 46: uint32(0x1db5e152),
  1071. 47: uint32(0xb2f17315),
  1072. 48: uint32(0xc6580243),
  1073. 49: uint32(0x691c9004),
  1074. 50: uint32(0x43a0208c),
  1075. 51: uint32(0xece4b2cb),
  1076. 52: uint32(0x16d9419c),
  1077. 53: uint32(0xb99dd3db),
  1078. 54: uint32(0x93216353),
  1079. 55: uint32(0x3c65f114),
  1080. 56: uint32(0xbc2b83bc),
  1081. 57: uint32(0x136f11fb),
  1082. 58: uint32(0x39d3a173),
  1083. 59: uint32(0x96973334),
  1084. 60: uint32(0x6caac063),
  1085. 61: uint32(0xc3ee5224),
  1086. 62: uint32(0xe952e2ac),
  1087. 63: uint32(0x461670eb),
  1088. 64: uint32(0x657e037a),
  1089. 65: uint32(0xca3a913d),
  1090. 66: uint32(0xe08621b5),
  1091. 67: uint32(0x4fc2b3f2),
  1092. 68: uint32(0xb5ff40a5),
  1093. 69: uint32(0x1abbd2e2),
  1094. 70: uint32(0x3007626a),
  1095. 71: uint32(0x9f43f02d),
  1096. 72: uint32(0x1f0d8285),
  1097. 73: uint32(0xb04910c2),
  1098. 74: uint32(0x9af5a04a),
  1099. 75: uint32(0x35b1320d),
  1100. 76: uint32(0xcf8cc15a),
  1101. 77: uint32(0x60c8531d),
  1102. 78: uint32(0x4a74e395),
  1103. 79: uint32(0xe53071d2),
  1104. 80: uint32(0x91990084),
  1105. 81: uint32(0x3edd92c3),
  1106. 82: uint32(0x1461224b),
  1107. 83: uint32(0xbb25b00c),
  1108. 84: uint32(0x4118435b),
  1109. 85: uint32(0xee5cd11c),
  1110. 86: uint32(0xc4e06194),
  1111. 87: uint32(0x6ba4f3d3),
  1112. 88: uint32(0xebea817b),
  1113. 89: uint32(0x44ae133c),
  1114. 90: uint32(0x6e12a3b4),
  1115. 91: uint32(0xc15631f3),
  1116. 92: uint32(0x3b6bc2a4),
  1117. 93: uint32(0x942f50e3),
  1118. 94: uint32(0xbe93e06b),
  1119. 95: uint32(0x11d7722c),
  1120. 96: uint32(0x57c102c7),
  1121. 97: uint32(0xf8859080),
  1122. 98: uint32(0xd2392008),
  1123. 99: uint32(0x7d7db24f),
  1124. 100: uint32(0x87404118),
  1125. 101: uint32(0x2804d35f),
  1126. 102: uint32(0x02b863d7),
  1127. 103: uint32(0xadfcf190),
  1128. 104: uint32(0x2db28338),
  1129. 105: uint32(0x82f6117f),
  1130. 106: uint32(0xa84aa1f7),
  1131. 107: uint32(0x070e33b0),
  1132. 108: uint32(0xfd33c0e7),
  1133. 109: uint32(0x527752a0),
  1134. 110: uint32(0x78cbe228),
  1135. 111: uint32(0xd78f706f),
  1136. 112: uint32(0xa3260139),
  1137. 113: uint32(0x0c62937e),
  1138. 114: uint32(0x26de23f6),
  1139. 115: uint32(0x899ab1b1),
  1140. 116: uint32(0x73a742e6),
  1141. 117: uint32(0xdce3d0a1),
  1142. 118: uint32(0xf65f6029),
  1143. 119: uint32(0x591bf26e),
  1144. 120: uint32(0xd95580c6),
  1145. 121: uint32(0x76111281),
  1146. 122: uint32(0x5cada209),
  1147. 123: uint32(0xf3e9304e),
  1148. 124: uint32(0x09d4c319),
  1149. 125: uint32(0xa690515e),
  1150. 126: uint32(0x8c2ce1d6),
  1151. 127: uint32(0x23687391),
  1152. 128: uint32(0xcafc06f4),
  1153. 129: uint32(0x65b894b3),
  1154. 130: uint32(0x4f04243b),
  1155. 131: uint32(0xe040b67c),
  1156. 132: uint32(0x1a7d452b),
  1157. 133: uint32(0xb539d76c),
  1158. 134: uint32(0x9f8567e4),
  1159. 135: uint32(0x30c1f5a3),
  1160. 136: uint32(0xb08f870b),
  1161. 137: uint32(0x1fcb154c),
  1162. 138: uint32(0x3577a5c4),
  1163. 139: uint32(0x9a333783),
  1164. 140: uint32(0x600ec4d4),
  1165. 141: uint32(0xcf4a5693),
  1166. 142: uint32(0xe5f6e61b),
  1167. 143: uint32(0x4ab2745c),
  1168. 144: uint32(0x3e1b050a),
  1169. 145: uint32(0x915f974d),
  1170. 146: uint32(0xbbe327c5),
  1171. 147: uint32(0x14a7b582),
  1172. 148: uint32(0xee9a46d5),
  1173. 149: uint32(0x41ded492),
  1174. 150: uint32(0x6b62641a),
  1175. 151: uint32(0xc426f65d),
  1176. 152: uint32(0x446884f5),
  1177. 153: uint32(0xeb2c16b2),
  1178. 154: uint32(0xc190a63a),
  1179. 155: uint32(0x6ed4347d),
  1180. 156: uint32(0x94e9c72a),
  1181. 157: uint32(0x3bad556d),
  1182. 158: uint32(0x1111e5e5),
  1183. 159: uint32(0xbe5577a2),
  1184. 160: uint32(0xf8430749),
  1185. 161: uint32(0x5707950e),
  1186. 162: uint32(0x7dbb2586),
  1187. 163: uint32(0xd2ffb7c1),
  1188. 164: uint32(0x28c24496),
  1189. 165: uint32(0x8786d6d1),
  1190. 166: uint32(0xad3a6659),
  1191. 167: uint32(0x027ef41e),
  1192. 168: uint32(0x823086b6),
  1193. 169: uint32(0x2d7414f1),
  1194. 170: uint32(0x07c8a479),
  1195. 171: uint32(0xa88c363e),
  1196. 172: uint32(0x52b1c569),
  1197. 173: uint32(0xfdf5572e),
  1198. 174: uint32(0xd749e7a6),
  1199. 175: uint32(0x780d75e1),
  1200. 176: uint32(0x0ca404b7),
  1201. 177: uint32(0xa3e096f0),
  1202. 178: uint32(0x895c2678),
  1203. 179: uint32(0x2618b43f),
  1204. 180: uint32(0xdc254768),
  1205. 181: uint32(0x7361d52f),
  1206. 182: uint32(0x59dd65a7),
  1207. 183: uint32(0xf699f7e0),
  1208. 184: uint32(0x76d78548),
  1209. 185: uint32(0xd993170f),
  1210. 186: uint32(0xf32fa787),
  1211. 187: uint32(0x5c6b35c0),
  1212. 188: uint32(0xa656c697),
  1213. 189: uint32(0x091254d0),
  1214. 190: uint32(0x23aee458),
  1215. 191: uint32(0x8cea761f),
  1216. 192: uint32(0xaf82058e),
  1217. 193: uint32(0x00c697c9),
  1218. 194: uint32(0x2a7a2741),
  1219. 195: uint32(0x853eb506),
  1220. 196: uint32(0x7f034651),
  1221. 197: uint32(0xd047d416),
  1222. 198: uint32(0xfafb649e),
  1223. 199: uint32(0x55bff6d9),
  1224. 200: uint32(0xd5f18471),
  1225. 201: uint32(0x7ab51636),
  1226. 202: uint32(0x5009a6be),
  1227. 203: uint32(0xff4d34f9),
  1228. 204: uint32(0x0570c7ae),
  1229. 205: uint32(0xaa3455e9),
  1230. 206: uint32(0x8088e561),
  1231. 207: uint32(0x2fcc7726),
  1232. 208: uint32(0x5b650670),
  1233. 209: uint32(0xf4219437),
  1234. 210: uint32(0xde9d24bf),
  1235. 211: uint32(0x71d9b6f8),
  1236. 212: uint32(0x8be445af),
  1237. 213: uint32(0x24a0d7e8),
  1238. 214: uint32(0x0e1c6760),
  1239. 215: uint32(0xa158f527),
  1240. 216: uint32(0x2116878f),
  1241. 217: uint32(0x8e5215c8),
  1242. 218: uint32(0xa4eea540),
  1243. 219: uint32(0x0baa3707),
  1244. 220: uint32(0xf197c450),
  1245. 221: uint32(0x5ed35617),
  1246. 222: uint32(0x746fe69f),
  1247. 223: uint32(0xdb2b74d8),
  1248. 224: uint32(0x9d3d0433),
  1249. 225: uint32(0x32799674),
  1250. 226: uint32(0x18c526fc),
  1251. 227: uint32(0xb781b4bb),
  1252. 228: uint32(0x4dbc47ec),
  1253. 229: uint32(0xe2f8d5ab),
  1254. 230: uint32(0xc8446523),
  1255. 231: uint32(0x6700f764),
  1256. 232: uint32(0xe74e85cc),
  1257. 233: uint32(0x480a178b),
  1258. 234: uint32(0x62b6a703),
  1259. 235: uint32(0xcdf23544),
  1260. 236: uint32(0x37cfc613),
  1261. 237: uint32(0x988b5454),
  1262. 238: uint32(0xb237e4dc),
  1263. 239: uint32(0x1d73769b),
  1264. 240: uint32(0x69da07cd),
  1265. 241: uint32(0xc69e958a),
  1266. 242: uint32(0xec222502),
  1267. 243: uint32(0x4366b745),
  1268. 244: uint32(0xb95b4412),
  1269. 245: uint32(0x161fd655),
  1270. 246: uint32(0x3ca366dd),
  1271. 247: uint32(0x93e7f49a),
  1272. 248: uint32(0x13a98632),
  1273. 249: uint32(0xbced1475),
  1274. 250: uint32(0x9651a4fd),
  1275. 251: uint32(0x391536ba),
  1276. 252: uint32(0xc328c5ed),
  1277. 253: uint32(0x6c6c57aa),
  1278. 254: uint32(0x46d0e722),
  1279. 255: uint32(0xe9947565),
  1280. },
  1281. 1: {
  1282. 1: uint32(0x4e890ba9),
  1283. 2: uint32(0x9d121752),
  1284. 3: uint32(0xd39b1cfb),
  1285. 4: uint32(0xe15528e5),
  1286. 5: uint32(0xafdc234c),
  1287. 6: uint32(0x7c473fb7),
  1288. 7: uint32(0x32ce341e),
  1289. 8: uint32(0x19db578b),
  1290. 9: uint32(0x57525c22),
  1291. 10: uint32(0x84c940d9),
  1292. 11: uint32(0xca404b70),
  1293. 12: uint32(0xf88e7f6e),
  1294. 13: uint32(0xb60774c7),
  1295. 14: uint32(0x659c683c),
  1296. 15: uint32(0x2b156395),
  1297. 16: uint32(0x33b6af16),
  1298. 17: uint32(0x7d3fa4bf),
  1299. 18: uint32(0xaea4b844),
  1300. 19: uint32(0xe02db3ed),
  1301. 20: uint32(0xd2e387f3),
  1302. 21: uint32(0x9c6a8c5a),
  1303. 22: uint32(0x4ff190a1),
  1304. 23: uint32(0x01789b08),
  1305. 24: uint32(0x2a6df89d),
  1306. 25: uint32(0x64e4f334),
  1307. 26: uint32(0xb77fefcf),
  1308. 27: uint32(0xf9f6e466),
  1309. 28: uint32(0xcb38d078),
  1310. 29: uint32(0x85b1dbd1),
  1311. 30: uint32(0x562ac72a),
  1312. 31: uint32(0x18a3cc83),
  1313. 32: uint32(0x676d5e2c),
  1314. 33: uint32(0x29e45585),
  1315. 34: uint32(0xfa7f497e),
  1316. 35: uint32(0xb4f642d7),
  1317. 36: uint32(0x863876c9),
  1318. 37: uint32(0xc8b17d60),
  1319. 38: uint32(0x1b2a619b),
  1320. 39: uint32(0x55a36a32),
  1321. 40: uint32(0x7eb609a7),
  1322. 41: uint32(0x303f020e),
  1323. 42: uint32(0xe3a41ef5),
  1324. 43: uint32(0xad2d155c),
  1325. 44: uint32(0x9fe32142),
  1326. 45: uint32(0xd16a2aeb),
  1327. 46: uint32(0x02f13610),
  1328. 47: uint32(0x4c783db9),
  1329. 48: uint32(0x54dbf13a),
  1330. 49: uint32(0x1a52fa93),
  1331. 50: uint32(0xc9c9e668),
  1332. 51: uint32(0x8740edc1),
  1333. 52: uint32(0xb58ed9df),
  1334. 53: uint32(0xfb07d276),
  1335. 54: uint32(0x289cce8d),
  1336. 55: uint32(0x6615c524),
  1337. 56: uint32(0x4d00a6b1),
  1338. 57: uint32(0x0389ad18),
  1339. 58: uint32(0xd012b1e3),
  1340. 59: uint32(0x9e9bba4a),
  1341. 60: uint32(0xac558e54),
  1342. 61: uint32(0xe2dc85fd),
  1343. 62: uint32(0x31479906),
  1344. 63: uint32(0x7fce92af),
  1345. 64: uint32(0xcedabc58),
  1346. 65: uint32(0x8053b7f1),
  1347. 66: uint32(0x53c8ab0a),
  1348. 67: uint32(0x1d41a0a3),
  1349. 68: uint32(0x2f8f94bd),
  1350. 69: uint32(0x61069f14),
  1351. 70: uint32(0xb29d83ef),
  1352. 71: uint32(0xfc148846),
  1353. 72: uint32(0xd701ebd3),
  1354. 73: uint32(0x9988e07a),
  1355. 74: uint32(0x4a13fc81),
  1356. 75: uint32(0x049af728),
  1357. 76: uint32(0x3654c336),
  1358. 77: uint32(0x78ddc89f),
  1359. 78: uint32(0xab46d464),
  1360. 79: uint32(0xe5cfdfcd),
  1361. 80: uint32(0xfd6c134e),
  1362. 81: uint32(0xb3e518e7),
  1363. 82: uint32(0x607e041c),
  1364. 83: uint32(0x2ef70fb5),
  1365. 84: uint32(0x1c393bab),
  1366. 85: uint32(0x52b03002),
  1367. 86: uint32(0x812b2cf9),
  1368. 87: uint32(0xcfa22750),
  1369. 88: uint32(0xe4b744c5),
  1370. 89: uint32(0xaa3e4f6c),
  1371. 90: uint32(0x79a55397),
  1372. 91: uint32(0x372c583e),
  1373. 92: uint32(0x05e26c20),
  1374. 93: uint32(0x4b6b6789),
  1375. 94: uint32(0x98f07b72),
  1376. 95: uint32(0xd67970db),
  1377. 96: uint32(0xa9b7e274),
  1378. 97: uint32(0xe73ee9dd),
  1379. 98: uint32(0x34a5f526),
  1380. 99: uint32(0x7a2cfe8f),
  1381. 100: uint32(0x48e2ca91),
  1382. 101: uint32(0x066bc138),
  1383. 102: uint32(0xd5f0ddc3),
  1384. 103: uint32(0x9b79d66a),
  1385. 104: uint32(0xb06cb5ff),
  1386. 105: uint32(0xfee5be56),
  1387. 106: uint32(0x2d7ea2ad),
  1388. 107: uint32(0x63f7a904),
  1389. 108: uint32(0x51399d1a),
  1390. 109: uint32(0x1fb096b3),
  1391. 110: uint32(0xcc2b8a48),
  1392. 111: uint32(0x82a281e1),
  1393. 112: uint32(0x9a014d62),
  1394. 113: uint32(0xd48846cb),
  1395. 114: uint32(0x07135a30),
  1396. 115: uint32(0x499a5199),
  1397. 116: uint32(0x7b546587),
  1398. 117: uint32(0x35dd6e2e),
  1399. 118: uint32(0xe64672d5),
  1400. 119: uint32(0xa8cf797c),
  1401. 120: uint32(0x83da1ae9),
  1402. 121: uint32(0xcd531140),
  1403. 122: uint32(0x1ec80dbb),
  1404. 123: uint32(0x50410612),
  1405. 124: uint32(0x628f320c),
  1406. 125: uint32(0x2c0639a5),
  1407. 126: uint32(0xff9d255e),
  1408. 127: uint32(0xb1142ef7),
  1409. 128: uint32(0x46c47ef1),
  1410. 129: uint32(0x084d7558),
  1411. 130: uint32(0xdbd669a3),
  1412. 131: uint32(0x955f620a),
  1413. 132: uint32(0xa7915614),
  1414. 133: uint32(0xe9185dbd),
  1415. 134: uint32(0x3a834146),
  1416. 135: uint32(0x740a4aef),
  1417. 136: uint32(0x5f1f297a),
  1418. 137: uint32(0x119622d3),
  1419. 138: uint32(0xc20d3e28),
  1420. 139: uint32(0x8c843581),
  1421. 140: uint32(0xbe4a019f),
  1422. 141: uint32(0xf0c30a36),
  1423. 142: uint32(0x235816cd),
  1424. 143: uint32(0x6dd11d64),
  1425. 144: uint32(0x7572d1e7),
  1426. 145: uint32(0x3bfbda4e),
  1427. 146: uint32(0xe860c6b5),
  1428. 147: uint32(0xa6e9cd1c),
  1429. 148: uint32(0x9427f902),
  1430. 149: uint32(0xdaaef2ab),
  1431. 150: uint32(0x0935ee50),
  1432. 151: uint32(0x47bce5f9),
  1433. 152: uint32(0x6ca9866c),
  1434. 153: uint32(0x22208dc5),
  1435. 154: uint32(0xf1bb913e),
  1436. 155: uint32(0xbf329a97),
  1437. 156: uint32(0x8dfcae89),
  1438. 157: uint32(0xc375a520),
  1439. 158: uint32(0x10eeb9db),
  1440. 159: uint32(0x5e67b272),
  1441. 160: uint32(0x21a920dd),
  1442. 161: uint32(0x6f202b74),
  1443. 162: uint32(0xbcbb378f),
  1444. 163: uint32(0xf2323c26),
  1445. 164: uint32(0xc0fc0838),
  1446. 165: uint32(0x8e750391),
  1447. 166: uint32(0x5dee1f6a),
  1448. 167: uint32(0x136714c3),
  1449. 168: uint32(0x38727756),
  1450. 169: uint32(0x76fb7cff),
  1451. 170: uint32(0xa5606004),
  1452. 171: uint32(0xebe96bad),
  1453. 172: uint32(0xd9275fb3),
  1454. 173: uint32(0x97ae541a),
  1455. 174: uint32(0x443548e1),
  1456. 175: uint32(0x0abc4348),
  1457. 176: uint32(0x121f8fcb),
  1458. 177: uint32(0x5c968462),
  1459. 178: uint32(0x8f0d9899),
  1460. 179: uint32(0xc1849330),
  1461. 180: uint32(0xf34aa72e),
  1462. 181: uint32(0xbdc3ac87),
  1463. 182: uint32(0x6e58b07c),
  1464. 183: uint32(0x20d1bbd5),
  1465. 184: uint32(0x0bc4d840),
  1466. 185: uint32(0x454dd3e9),
  1467. 186: uint32(0x96d6cf12),
  1468. 187: uint32(0xd85fc4bb),
  1469. 188: uint32(0xea91f0a5),
  1470. 189: uint32(0xa418fb0c),
  1471. 190: uint32(0x7783e7f7),
  1472. 191: uint32(0x390aec5e),
  1473. 192: uint32(0x881ec2a9),
  1474. 193: uint32(0xc697c900),
  1475. 194: uint32(0x150cd5fb),
  1476. 195: uint32(0x5b85de52),
  1477. 196: uint32(0x694bea4c),
  1478. 197: uint32(0x27c2e1e5),
  1479. 198: uint32(0xf459fd1e),
  1480. 199: uint32(0xbad0f6b7),
  1481. 200: uint32(0x91c59522),
  1482. 201: uint32(0xdf4c9e8b),
  1483. 202: uint32(0x0cd78270),
  1484. 203: uint32(0x425e89d9),
  1485. 204: uint32(0x7090bdc7),
  1486. 205: uint32(0x3e19b66e),
  1487. 206: uint32(0xed82aa95),
  1488. 207: uint32(0xa30ba13c),
  1489. 208: uint32(0xbba86dbf),
  1490. 209: uint32(0xf5216616),
  1491. 210: uint32(0x26ba7aed),
  1492. 211: uint32(0x68337144),
  1493. 212: uint32(0x5afd455a),
  1494. 213: uint32(0x14744ef3),
  1495. 214: uint32(0xc7ef5208),
  1496. 215: uint32(0x896659a1),
  1497. 216: uint32(0xa2733a34),
  1498. 217: uint32(0xecfa319d),
  1499. 218: uint32(0x3f612d66),
  1500. 219: uint32(0x71e826cf),
  1501. 220: uint32(0x432612d1),
  1502. 221: uint32(0x0daf1978),
  1503. 222: uint32(0xde340583),
  1504. 223: uint32(0x90bd0e2a),
  1505. 224: uint32(0xef739c85),
  1506. 225: uint32(0xa1fa972c),
  1507. 226: uint32(0x72618bd7),
  1508. 227: uint32(0x3ce8807e),
  1509. 228: uint32(0x0e26b460),
  1510. 229: uint32(0x40afbfc9),
  1511. 230: uint32(0x9334a332),
  1512. 231: uint32(0xddbda89b),
  1513. 232: uint32(0xf6a8cb0e),
  1514. 233: uint32(0xb821c0a7),
  1515. 234: uint32(0x6bbadc5c),
  1516. 235: uint32(0x2533d7f5),
  1517. 236: uint32(0x17fde3eb),
  1518. 237: uint32(0x5974e842),
  1519. 238: uint32(0x8aeff4b9),
  1520. 239: uint32(0xc466ff10),
  1521. 240: uint32(0xdcc53393),
  1522. 241: uint32(0x924c383a),
  1523. 242: uint32(0x41d724c1),
  1524. 243: uint32(0x0f5e2f68),
  1525. 244: uint32(0x3d901b76),
  1526. 245: uint32(0x731910df),
  1527. 246: uint32(0xa0820c24),
  1528. 247: uint32(0xee0b078d),
  1529. 248: uint32(0xc51e6418),
  1530. 249: uint32(0x8b976fb1),
  1531. 250: uint32(0x580c734a),
  1532. 251: uint32(0x168578e3),
  1533. 252: uint32(0x244b4cfd),
  1534. 253: uint32(0x6ac24754),
  1535. 254: uint32(0xb9595baf),
  1536. 255: uint32(0xf7d05006),
  1537. },
  1538. 2: {
  1539. 1: uint32(0x8d88fde2),
  1540. 2: uint32(0xc060fd85),
  1541. 3: uint32(0x4de80067),
  1542. 4: uint32(0x5bb0fd4b),
  1543. 5: uint32(0xd63800a9),
  1544. 6: uint32(0x9bd000ce),
  1545. 7: uint32(0x1658fd2c),
  1546. 8: uint32(0xb761fa96),
  1547. 9: uint32(0x3ae90774),
  1548. 10: uint32(0x77010713),
  1549. 11: uint32(0xfa89faf1),
  1550. 12: uint32(0xecd107dd),
  1551. 13: uint32(0x6159fa3f),
  1552. 14: uint32(0x2cb1fa58),
  1553. 15: uint32(0xa13907ba),
  1554. 16: uint32(0xb5b2f36d),
  1555. 17: uint32(0x383a0e8f),
  1556. 18: uint32(0x75d20ee8),
  1557. 19: uint32(0xf85af30a),
  1558. 20: uint32(0xee020e26),
  1559. 21: uint32(0x638af3c4),
  1560. 22: uint32(0x2e62f3a3),
  1561. 23: uint32(0xa3ea0e41),
  1562. 24: uint32(0x02d309fb),
  1563. 25: uint32(0x8f5bf419),
  1564. 26: uint32(0xc2b3f47e),
  1565. 27: uint32(0x4f3b099c),
  1566. 28: uint32(0x5963f4b0),
  1567. 29: uint32(0xd4eb0952),
  1568. 30: uint32(0x99030935),
  1569. 31: uint32(0x148bf4d7),
  1570. 32: uint32(0xb014e09b),
  1571. 33: uint32(0x3d9c1d79),
  1572. 34: uint32(0x70741d1e),
  1573. 35: uint32(0xfdfce0fc),
  1574. 36: uint32(0xeba41dd0),
  1575. 37: uint32(0x662ce032),
  1576. 38: uint32(0x2bc4e055),
  1577. 39: uint32(0xa64c1db7),
  1578. 40: uint32(0x07751a0d),
  1579. 41: uint32(0x8afde7ef),
  1580. 42: uint32(0xc715e788),
  1581. 43: uint32(0x4a9d1a6a),
  1582. 44: uint32(0x5cc5e746),
  1583. 45: uint32(0xd14d1aa4),
  1584. 46: uint32(0x9ca51ac3),
  1585. 47: uint32(0x112de721),
  1586. 48: uint32(0x05a613f6),
  1587. 49: uint32(0x882eee14),
  1588. 50: uint32(0xc5c6ee73),
  1589. 51: uint32(0x484e1391),
  1590. 52: uint32(0x5e16eebd),
  1591. 53: uint32(0xd39e135f),
  1592. 54: uint32(0x9e761338),
  1593. 55: uint32(0x13feeeda),
  1594. 56: uint32(0xb2c7e960),
  1595. 57: uint32(0x3f4f1482),
  1596. 58: uint32(0x72a714e5),
  1597. 59: uint32(0xff2fe907),
  1598. 60: uint32(0xe977142b),
  1599. 61: uint32(0x64ffe9c9),
  1600. 62: uint32(0x2917e9ae),
  1601. 63: uint32(0xa49f144c),
  1602. 64: uint32(0xbb58c777),
  1603. 65: uint32(0x36d03a95),
  1604. 66: uint32(0x7b383af2),
  1605. 67: uint32(0xf6b0c710),
  1606. 68: uint32(0xe0e83a3c),
  1607. 69: uint32(0x6d60c7de),
  1608. 70: uint32(0x2088c7b9),
  1609. 71: uint32(0xad003a5b),
  1610. 72: uint32(0x0c393de1),
  1611. 73: uint32(0x81b1c003),
  1612. 74: uint32(0xcc59c064),
  1613. 75: uint32(0x41d13d86),
  1614. 76: uint32(0x5789c0aa),
  1615. 77: uint32(0xda013d48),
  1616. 78: uint32(0x97e93d2f),
  1617. 79: uint32(0x1a61c0cd),
  1618. 80: uint32(0x0eea341a),
  1619. 81: uint32(0x8362c9f8),
  1620. 82: uint32(0xce8ac99f),
  1621. 83: uint32(0x4302347d),
  1622. 84: uint32(0x555ac951),
  1623. 85: uint32(0xd8d234b3),
  1624. 86: uint32(0x953a34d4),
  1625. 87: uint32(0x18b2c936),
  1626. 88: uint32(0xb98bce8c),
  1627. 89: uint32(0x3403336e),
  1628. 90: uint32(0x79eb3309),
  1629. 91: uint32(0xf463ceeb),
  1630. 92: uint32(0xe23b33c7),
  1631. 93: uint32(0x6fb3ce25),
  1632. 94: uint32(0x225bce42),
  1633. 95: uint32(0xafd333a0),
  1634. 96: uint32(0x0b4c27ec),
  1635. 97: uint32(0x86c4da0e),
  1636. 98: uint32(0xcb2cda69),
  1637. 99: uint32(0x46a4278b),
  1638. 100: uint32(0x50fcdaa7),
  1639. 101: uint32(0xdd742745),
  1640. 102: uint32(0x909c2722),
  1641. 103: uint32(0x1d14dac0),
  1642. 104: uint32(0xbc2ddd7a),
  1643. 105: uint32(0x31a52098),
  1644. 106: uint32(0x7c4d20ff),
  1645. 107: uint32(0xf1c5dd1d),
  1646. 108: uint32(0xe79d2031),
  1647. 109: uint32(0x6a15ddd3),
  1648. 110: uint32(0x27fdddb4),
  1649. 111: uint32(0xaa752056),
  1650. 112: uint32(0xbefed481),
  1651. 113: uint32(0x33762963),
  1652. 114: uint32(0x7e9e2904),
  1653. 115: uint32(0xf316d4e6),
  1654. 116: uint32(0xe54e29ca),
  1655. 117: uint32(0x68c6d428),
  1656. 118: uint32(0x252ed44f),
  1657. 119: uint32(0xa8a629ad),
  1658. 120: uint32(0x099f2e17),
  1659. 121: uint32(0x8417d3f5),
  1660. 122: uint32(0xc9ffd392),
  1661. 123: uint32(0x44772e70),
  1662. 124: uint32(0x522fd35c),
  1663. 125: uint32(0xdfa72ebe),
  1664. 126: uint32(0x924f2ed9),
  1665. 127: uint32(0x1fc7d33b),
  1666. 128: uint32(0xadc088af),
  1667. 129: uint32(0x2048754d),
  1668. 130: uint32(0x6da0752a),
  1669. 131: uint32(0xe02888c8),
  1670. 132: uint32(0xf67075e4),
  1671. 133: uint32(0x7bf88806),
  1672. 134: uint32(0x36108861),
  1673. 135: uint32(0xbb987583),
  1674. 136: uint32(0x1aa17239),
  1675. 137: uint32(0x97298fdb),
  1676. 138: uint32(0xdac18fbc),
  1677. 139: uint32(0x5749725e),
  1678. 140: uint32(0x41118f72),
  1679. 141: uint32(0xcc997290),
  1680. 142: uint32(0x817172f7),
  1681. 143: uint32(0x0cf98f15),
  1682. 144: uint32(0x18727bc2),
  1683. 145: uint32(0x95fa8620),
  1684. 146: uint32(0xd8128647),
  1685. 147: uint32(0x559a7ba5),
  1686. 148: uint32(0x43c28689),
  1687. 149: uint32(0xce4a7b6b),
  1688. 150: uint32(0x83a27b0c),
  1689. 151: uint32(0x0e2a86ee),
  1690. 152: uint32(0xaf138154),
  1691. 153: uint32(0x229b7cb6),
  1692. 154: uint32(0x6f737cd1),
  1693. 155: uint32(0xe2fb8133),
  1694. 156: uint32(0xf4a37c1f),
  1695. 157: uint32(0x792b81fd),
  1696. 158: uint32(0x34c3819a),
  1697. 159: uint32(0xb94b7c78),
  1698. 160: uint32(0x1dd46834),
  1699. 161: uint32(0x905c95d6),
  1700. 162: uint32(0xddb495b1),
  1701. 163: uint32(0x503c6853),
  1702. 164: uint32(0x4664957f),
  1703. 165: uint32(0xcbec689d),
  1704. 166: uint32(0x860468fa),
  1705. 167: uint32(0x0b8c9518),
  1706. 168: uint32(0xaab592a2),
  1707. 169: uint32(0x273d6f40),
  1708. 170: uint32(0x6ad56f27),
  1709. 171: uint32(0xe75d92c5),
  1710. 172: uint32(0xf1056fe9),
  1711. 173: uint32(0x7c8d920b),
  1712. 174: uint32(0x3165926c),
  1713. 175: uint32(0xbced6f8e),
  1714. 176: uint32(0xa8669b59),
  1715. 177: uint32(0x25ee66bb),
  1716. 178: uint32(0x680666dc),
  1717. 179: uint32(0xe58e9b3e),
  1718. 180: uint32(0xf3d66612),
  1719. 181: uint32(0x7e5e9bf0),
  1720. 182: uint32(0x33b69b97),
  1721. 183: uint32(0xbe3e6675),
  1722. 184: uint32(0x1f0761cf),
  1723. 185: uint32(0x928f9c2d),
  1724. 186: uint32(0xdf679c4a),
  1725. 187: uint32(0x52ef61a8),
  1726. 188: uint32(0x44b79c84),
  1727. 189: uint32(0xc93f6166),
  1728. 190: uint32(0x84d76101),
  1729. 191: uint32(0x095f9ce3),
  1730. 192: uint32(0x16984fd8),
  1731. 193: uint32(0x9b10b23a),
  1732. 194: uint32(0xd6f8b25d),
  1733. 195: uint32(0x5b704fbf),
  1734. 196: uint32(0x4d28b293),
  1735. 197: uint32(0xc0a04f71),
  1736. 198: uint32(0x8d484f16),
  1737. 199: uint32(0x00c0b2f4),
  1738. 200: uint32(0xa1f9b54e),
  1739. 201: uint32(0x2c7148ac),
  1740. 202: uint32(0x619948cb),
  1741. 203: uint32(0xec11b529),
  1742. 204: uint32(0xfa494805),
  1743. 205: uint32(0x77c1b5e7),
  1744. 206: uint32(0x3a29b580),
  1745. 207: uint32(0xb7a14862),
  1746. 208: uint32(0xa32abcb5),
  1747. 209: uint32(0x2ea24157),
  1748. 210: uint32(0x634a4130),
  1749. 211: uint32(0xeec2bcd2),
  1750. 212: uint32(0xf89a41fe),
  1751. 213: uint32(0x7512bc1c),
  1752. 214: uint32(0x38fabc7b),
  1753. 215: uint32(0xb5724199),
  1754. 216: uint32(0x144b4623),
  1755. 217: uint32(0x99c3bbc1),
  1756. 218: uint32(0xd42bbba6),
  1757. 219: uint32(0x59a34644),
  1758. 220: uint32(0x4ffbbb68),
  1759. 221: uint32(0xc273468a),
  1760. 222: uint32(0x8f9b46ed),
  1761. 223: uint32(0x0213bb0f),
  1762. 224: uint32(0xa68caf43),
  1763. 225: uint32(0x2b0452a1),
  1764. 226: uint32(0x66ec52c6),
  1765. 227: uint32(0xeb64af24),
  1766. 228: uint32(0xfd3c5208),
  1767. 229: uint32(0x70b4afea),
  1768. 230: uint32(0x3d5caf8d),
  1769. 231: uint32(0xb0d4526f),
  1770. 232: uint32(0x11ed55d5),
  1771. 233: uint32(0x9c65a837),
  1772. 234: uint32(0xd18da850),
  1773. 235: uint32(0x5c0555b2),
  1774. 236: uint32(0x4a5da89e),
  1775. 237: uint32(0xc7d5557c),
  1776. 238: uint32(0x8a3d551b),
  1777. 239: uint32(0x07b5a8f9),
  1778. 240: uint32(0x133e5c2e),
  1779. 241: uint32(0x9eb6a1cc),
  1780. 242: uint32(0xd35ea1ab),
  1781. 243: uint32(0x5ed65c49),
  1782. 244: uint32(0x488ea165),
  1783. 245: uint32(0xc5065c87),
  1784. 246: uint32(0x88ee5ce0),
  1785. 247: uint32(0x0566a102),
  1786. 248: uint32(0xa45fa6b8),
  1787. 249: uint32(0x29d75b5a),
  1788. 250: uint32(0x643f5b3d),
  1789. 251: uint32(0xe9b7a6df),
  1790. 252: uint32(0xffef5bf3),
  1791. 253: uint32(0x7267a611),
  1792. 254: uint32(0x3f8fa676),
  1793. 255: uint32(0xb2075b94),
  1794. },
  1795. 3: {
  1796. 1: uint32(0x80f0171f),
  1797. 2: uint32(0xda91287f),
  1798. 3: uint32(0x5a613f60),
  1799. 4: uint32(0x6e5356bf),
  1800. 5: uint32(0xeea341a0),
  1801. 6: uint32(0xb4c27ec0),
  1802. 7: uint32(0x343269df),
  1803. 8: uint32(0xdca6ad7e),
  1804. 9: uint32(0x5c56ba61),
  1805. 10: uint32(0x06378501),
  1806. 11: uint32(0x86c7921e),
  1807. 12: uint32(0xb2f5fbc1),
  1808. 13: uint32(0x3205ecde),
  1809. 14: uint32(0x6864d3be),
  1810. 15: uint32(0xe894c4a1),
  1811. 16: uint32(0x623c5cbd),
  1812. 17: uint32(0xe2cc4ba2),
  1813. 18: uint32(0xb8ad74c2),
  1814. 19: uint32(0x385d63dd),
  1815. 20: uint32(0x0c6f0a02),
  1816. 21: uint32(0x8c9f1d1d),
  1817. 22: uint32(0xd6fe227d),
  1818. 23: uint32(0x560e3562),
  1819. 24: uint32(0xbe9af1c3),
  1820. 25: uint32(0x3e6ae6dc),
  1821. 26: uint32(0x640bd9bc),
  1822. 27: uint32(0xe4fbcea3),
  1823. 28: uint32(0xd0c9a77c),
  1824. 29: uint32(0x5039b063),
  1825. 30: uint32(0x0a588f03),
  1826. 31: uint32(0x8aa8981c),
  1827. 32: uint32(0xc478b97a),
  1828. 33: uint32(0x4488ae65),
  1829. 34: uint32(0x1ee99105),
  1830. 35: uint32(0x9e19861a),
  1831. 36: uint32(0xaa2befc5),
  1832. 37: uint32(0x2adbf8da),
  1833. 38: uint32(0x70bac7ba),
  1834. 39: uint32(0xf04ad0a5),
  1835. 40: uint32(0x18de1404),
  1836. 41: uint32(0x982e031b),
  1837. 42: uint32(0xc24f3c7b),
  1838. 43: uint32(0x42bf2b64),
  1839. 44: uint32(0x768d42bb),
  1840. 45: uint32(0xf67d55a4),
  1841. 46: uint32(0xac1c6ac4),
  1842. 47: uint32(0x2cec7ddb),
  1843. 48: uint32(0xa644e5c7),
  1844. 49: uint32(0x26b4f2d8),
  1845. 50: uint32(0x7cd5cdb8),
  1846. 51: uint32(0xfc25daa7),
  1847. 52: uint32(0xc817b378),
  1848. 53: uint32(0x48e7a467),
  1849. 54: uint32(0x12869b07),
  1850. 55: uint32(0x92768c18),
  1851. 56: uint32(0x7ae248b9),
  1852. 57: uint32(0xfa125fa6),
  1853. 58: uint32(0xa07360c6),
  1854. 59: uint32(0x208377d9),
  1855. 60: uint32(0x14b11e06),
  1856. 61: uint32(0x94410919),
  1857. 62: uint32(0xce203679),
  1858. 63: uint32(0x4ed02166),
  1859. 64: uint32(0x538074b5),
  1860. 65: uint32(0xd37063aa),
  1861. 66: uint32(0x89115cca),
  1862. 67: uint32(0x09e14bd5),
  1863. 68: uint32(0x3dd3220a),
  1864. 69: uint32(0xbd233515),
  1865. 70: uint32(0xe7420a75),
  1866. 71: uint32(0x67b21d6a),
  1867. 72: uint32(0x8f26d9cb),
  1868. 73: uint32(0x0fd6ced4),
  1869. 74: uint32(0x55b7f1b4),
  1870. 75: uint32(0xd547e6ab),
  1871. 76: uint32(0xe1758f74),
  1872. 77: uint32(0x6185986b),
  1873. 78: uint32(0x3be4a70b),
  1874. 79: uint32(0xbb14b014),
  1875. 80: uint32(0x31bc2808),
  1876. 81: uint32(0xb14c3f17),
  1877. 82: uint32(0xeb2d0077),
  1878. 83: uint32(0x6bdd1768),
  1879. 84: uint32(0x5fef7eb7),
  1880. 85: uint32(0xdf1f69a8),
  1881. 86: uint32(0x857e56c8),
  1882. 87: uint32(0x058e41d7),
  1883. 88: uint32(0xed1a8576),
  1884. 89: uint32(0x6dea9269),
  1885. 90: uint32(0x378bad09),
  1886. 91: uint32(0xb77bba16),
  1887. 92: uint32(0x8349d3c9),
  1888. 93: uint32(0x03b9c4d6),
  1889. 94: uint32(0x59d8fbb6),
  1890. 95: uint32(0xd928eca9),
  1891. 96: uint32(0x97f8cdcf),
  1892. 97: uint32(0x1708dad0),
  1893. 98: uint32(0x4d69e5b0),
  1894. 99: uint32(0xcd99f2af),
  1895. 100: uint32(0xf9ab9b70),
  1896. 101: uint32(0x795b8c6f),
  1897. 102: uint32(0x233ab30f),
  1898. 103: uint32(0xa3caa410),
  1899. 104: uint32(0x4b5e60b1),
  1900. 105: uint32(0xcbae77ae),
  1901. 106: uint32(0x91cf48ce),
  1902. 107: uint32(0x113f5fd1),
  1903. 108: uint32(0x250d360e),
  1904. 109: uint32(0xa5fd2111),
  1905. 110: uint32(0xff9c1e71),
  1906. 111: uint32(0x7f6c096e),
  1907. 112: uint32(0xf5c49172),
  1908. 113: uint32(0x7534866d),
  1909. 114: uint32(0x2f55b90d),
  1910. 115: uint32(0xafa5ae12),
  1911. 116: uint32(0x9b97c7cd),
  1912. 117: uint32(0x1b67d0d2),
  1913. 118: uint32(0x4106efb2),
  1914. 119: uint32(0xc1f6f8ad),
  1915. 120: uint32(0x29623c0c),
  1916. 121: uint32(0xa9922b13),
  1917. 122: uint32(0xf3f31473),
  1918. 123: uint32(0x7303036c),
  1919. 124: uint32(0x47316ab3),
  1920. 125: uint32(0xc7c17dac),
  1921. 126: uint32(0x9da042cc),
  1922. 127: uint32(0x1d5055d3),
  1923. 128: uint32(0xa700e96a),
  1924. 129: uint32(0x27f0fe75),
  1925. 130: uint32(0x7d91c115),
  1926. 131: uint32(0xfd61d60a),
  1927. 132: uint32(0xc953bfd5),
  1928. 133: uint32(0x49a3a8ca),
  1929. 134: uint32(0x13c297aa),
  1930. 135: uint32(0x933280b5),
  1931. 136: uint32(0x7ba64414),
  1932. 137: uint32(0xfb56530b),
  1933. 138: uint32(0xa1376c6b),
  1934. 139: uint32(0x21c77b74),
  1935. 140: uint32(0x15f512ab),
  1936. 141: uint32(0x950505b4),
  1937. 142: uint32(0xcf643ad4),
  1938. 143: uint32(0x4f942dcb),
  1939. 144: uint32(0xc53cb5d7),
  1940. 145: uint32(0x45cca2c8),
  1941. 146: uint32(0x1fad9da8),
  1942. 147: uint32(0x9f5d8ab7),
  1943. 148: uint32(0xab6fe368),
  1944. 149: uint32(0x2b9ff477),
  1945. 150: uint32(0x71fecb17),
  1946. 151: uint32(0xf10edc08),
  1947. 152: uint32(0x199a18a9),
  1948. 153: uint32(0x996a0fb6),
  1949. 154: uint32(0xc30b30d6),
  1950. 155: uint32(0x43fb27c9),
  1951. 156: uint32(0x77c94e16),
  1952. 157: uint32(0xf7395909),
  1953. 158: uint32(0xad586669),
  1954. 159: uint32(0x2da87176),
  1955. 160: uint32(0x63785010),
  1956. 161: uint32(0xe388470f),
  1957. 162: uint32(0xb9e9786f),
  1958. 163: uint32(0x39196f70),
  1959. 164: uint32(0x0d2b06af),
  1960. 165: uint32(0x8ddb11b0),
  1961. 166: uint32(0xd7ba2ed0),
  1962. 167: uint32(0x574a39cf),
  1963. 168: uint32(0xbfdefd6e),
  1964. 169: uint32(0x3f2eea71),
  1965. 170: uint32(0x654fd511),
  1966. 171: uint32(0xe5bfc20e),
  1967. 172: uint32(0xd18dabd1),
  1968. 173: uint32(0x517dbcce),
  1969. 174: uint32(0x0b1c83ae),
  1970. 175: uint32(0x8bec94b1),
  1971. 176: uint32(0x01440cad),
  1972. 177: uint32(0x81b41bb2),
  1973. 178: uint32(0xdbd524d2),
  1974. 179: uint32(0x5b2533cd),
  1975. 180: uint32(0x6f175a12),
  1976. 181: uint32(0xefe74d0d),
  1977. 182: uint32(0xb586726d),
  1978. 183: uint32(0x35766572),
  1979. 184: uint32(0xdde2a1d3),
  1980. 185: uint32(0x5d12b6cc),
  1981. 186: uint32(0x077389ac),
  1982. 187: uint32(0x87839eb3),
  1983. 188: uint32(0xb3b1f76c),
  1984. 189: uint32(0x3341e073),
  1985. 190: uint32(0x6920df13),
  1986. 191: uint32(0xe9d0c80c),
  1987. 192: uint32(0xf4809ddf),
  1988. 193: uint32(0x74708ac0),
  1989. 194: uint32(0x2e11b5a0),
  1990. 195: uint32(0xaee1a2bf),
  1991. 196: uint32(0x9ad3cb60),
  1992. 197: uint32(0x1a23dc7f),
  1993. 198: uint32(0x4042e31f),
  1994. 199: uint32(0xc0b2f400),
  1995. 200: uint32(0x282630a1),
  1996. 201: uint32(0xa8d627be),
  1997. 202: uint32(0xf2b718de),
  1998. 203: uint32(0x72470fc1),
  1999. 204: uint32(0x4675661e),
  2000. 205: uint32(0xc6857101),
  2001. 206: uint32(0x9ce44e61),
  2002. 207: uint32(0x1c14597e),
  2003. 208: uint32(0x96bcc162),
  2004. 209: uint32(0x164cd67d),
  2005. 210: uint32(0x4c2de91d),
  2006. 211: uint32(0xccddfe02),
  2007. 212: uint32(0xf8ef97dd),
  2008. 213: uint32(0x781f80c2),
  2009. 214: uint32(0x227ebfa2),
  2010. 215: uint32(0xa28ea8bd),
  2011. 216: uint32(0x4a1a6c1c),
  2012. 217: uint32(0xcaea7b03),
  2013. 218: uint32(0x908b4463),
  2014. 219: uint32(0x107b537c),
  2015. 220: uint32(0x24493aa3),
  2016. 221: uint32(0xa4b92dbc),
  2017. 222: uint32(0xfed812dc),
  2018. 223: uint32(0x7e2805c3),
  2019. 224: uint32(0x30f824a5),
  2020. 225: uint32(0xb00833ba),
  2021. 226: uint32(0xea690cda),
  2022. 227: uint32(0x6a991bc5),
  2023. 228: uint32(0x5eab721a),
  2024. 229: uint32(0xde5b6505),
  2025. 230: uint32(0x843a5a65),
  2026. 231: uint32(0x04ca4d7a),
  2027. 232: uint32(0xec5e89db),
  2028. 233: uint32(0x6cae9ec4),
  2029. 234: uint32(0x36cfa1a4),
  2030. 235: uint32(0xb63fb6bb),
  2031. 236: uint32(0x820ddf64),
  2032. 237: uint32(0x02fdc87b),
  2033. 238: uint32(0x589cf71b),
  2034. 239: uint32(0xd86ce004),
  2035. 240: uint32(0x52c47818),
  2036. 241: uint32(0xd2346f07),
  2037. 242: uint32(0x88555067),
  2038. 243: uint32(0x08a54778),
  2039. 244: uint32(0x3c972ea7),
  2040. 245: uint32(0xbc6739b8),
  2041. 246: uint32(0xe60606d8),
  2042. 247: uint32(0x66f611c7),
  2043. 248: uint32(0x8e62d566),
  2044. 249: uint32(0x0e92c279),
  2045. 250: uint32(0x54f3fd19),
  2046. 251: uint32(0xd403ea06),
  2047. 252: uint32(0xe03183d9),
  2048. 253: uint32(0x60c194c6),
  2049. 254: uint32(0x3aa0aba6),
  2050. 255: uint32(0xba50bcb9),
  2051. },
  2052. 4: {
  2053. 1: uint32(0x9570d495),
  2054. 2: uint32(0xf190af6b),
  2055. 3: uint32(0x64e07bfe),
  2056. 4: uint32(0x38505897),
  2057. 5: uint32(0xad208c02),
  2058. 6: uint32(0xc9c0f7fc),
  2059. 7: uint32(0x5cb02369),
  2060. 8: uint32(0x70a0b12e),
  2061. 9: uint32(0xe5d065bb),
  2062. 10: uint32(0x81301e45),
  2063. 11: uint32(0x1440cad0),
  2064. 12: uint32(0x48f0e9b9),
  2065. 13: uint32(0xdd803d2c),
  2066. 14: uint32(0xb96046d2),
  2067. 15: uint32(0x2c109247),
  2068. 16: uint32(0xe141625c),
  2069. 17: uint32(0x7431b6c9),
  2070. 18: uint32(0x10d1cd37),
  2071. 19: uint32(0x85a119a2),
  2072. 20: uint32(0xd9113acb),
  2073. 21: uint32(0x4c61ee5e),
  2074. 22: uint32(0x288195a0),
  2075. 23: uint32(0xbdf14135),
  2076. 24: uint32(0x91e1d372),
  2077. 25: uint32(0x049107e7),
  2078. 26: uint32(0x60717c19),
  2079. 27: uint32(0xf501a88c),
  2080. 28: uint32(0xa9b18be5),
  2081. 29: uint32(0x3cc15f70),
  2082. 30: uint32(0x5821248e),
  2083. 31: uint32(0xcd51f01b),
  2084. 32: uint32(0x19f3c2f9),
  2085. 33: uint32(0x8c83166c),
  2086. 34: uint32(0xe8636d92),
  2087. 35: uint32(0x7d13b907),
  2088. 36: uint32(0x21a39a6e),
  2089. 37: uint32(0xb4d34efb),
  2090. 38: uint32(0xd0333505),
  2091. 39: uint32(0x4543e190),
  2092. 40: uint32(0x695373d7),
  2093. 41: uint32(0xfc23a742),
  2094. 42: uint32(0x98c3dcbc),
  2095. 43: uint32(0x0db30829),
  2096. 44: uint32(0x51032b40),
  2097. 45: uint32(0xc473ffd5),
  2098. 46: uint32(0xa093842b),
  2099. 47: uint32(0x35e350be),
  2100. 48: uint32(0xf8b2a0a5),
  2101. 49: uint32(0x6dc27430),
  2102. 50: uint32(0x09220fce),
  2103. 51: uint32(0x9c52db5b),
  2104. 52: uint32(0xc0e2f832),
  2105. 53: uint32(0x55922ca7),
  2106. 54: uint32(0x31725759),
  2107. 55: uint32(0xa40283cc),
  2108. 56: uint32(0x8812118b),
  2109. 57: uint32(0x1d62c51e),
  2110. 58: uint32(0x7982bee0),
  2111. 59: uint32(0xecf26a75),
  2112. 60: uint32(0xb042491c),
  2113. 61: uint32(0x25329d89),
  2114. 62: uint32(0x41d2e677),
  2115. 63: uint32(0xd4a232e2),
  2116. 64: uint32(0x33e785f2),
  2117. 65: uint32(0xa6975167),
  2118. 66: uint32(0xc2772a99),
  2119. 67: uint32(0x5707fe0c),
  2120. 68: uint32(0x0bb7dd65),
  2121. 69: uint32(0x9ec709f0),
  2122. 70: uint32(0xfa27720e),
  2123. 71: uint32(0x6f57a69b),
  2124. 72: uint32(0x434734dc),
  2125. 73: uint32(0xd637e049),
  2126. 74: uint32(0xb2d79bb7),
  2127. 75: uint32(0x27a74f22),
  2128. 76: uint32(0x7b176c4b),
  2129. 77: uint32(0xee67b8de),
  2130. 78: uint32(0x8a87c320),
  2131. 79: uint32(0x1ff717b5),
  2132. 80: uint32(0xd2a6e7ae),
  2133. 81: uint32(0x47d6333b),
  2134. 82: uint32(0x233648c5),
  2135. 83: uint32(0xb6469c50),
  2136. 84: uint32(0xeaf6bf39),
  2137. 85: uint32(0x7f866bac),
  2138. 86: uint32(0x1b661052),
  2139. 87: uint32(0x8e16c4c7),
  2140. 88: uint32(0xa2065680),
  2141. 89: uint32(0x37768215),
  2142. 90: uint32(0x5396f9eb),
  2143. 91: uint32(0xc6e62d7e),
  2144. 92: uint32(0x9a560e17),
  2145. 93: uint32(0x0f26da82),
  2146. 94: uint32(0x6bc6a17c),
  2147. 95: uint32(0xfeb675e9),
  2148. 96: uint32(0x2a14470b),
  2149. 97: uint32(0xbf64939e),
  2150. 98: uint32(0xdb84e860),
  2151. 99: uint32(0x4ef43cf5),
  2152. 100: uint32(0x12441f9c),
  2153. 101: uint32(0x8734cb09),
  2154. 102: uint32(0xe3d4b0f7),
  2155. 103: uint32(0x76a46462),
  2156. 104: uint32(0x5ab4f625),
  2157. 105: uint32(0xcfc422b0),
  2158. 106: uint32(0xab24594e),
  2159. 107: uint32(0x3e548ddb),
  2160. 108: uint32(0x62e4aeb2),
  2161. 109: uint32(0xf7947a27),
  2162. 110: uint32(0x937401d9),
  2163. 111: uint32(0x0604d54c),
  2164. 112: uint32(0xcb552557),
  2165. 113: uint32(0x5e25f1c2),
  2166. 114: uint32(0x3ac58a3c),
  2167. 115: uint32(0xafb55ea9),
  2168. 116: uint32(0xf3057dc0),
  2169. 117: uint32(0x6675a955),
  2170. 118: uint32(0x0295d2ab),
  2171. 119: uint32(0x97e5063e),
  2172. 120: uint32(0xbbf59479),
  2173. 121: uint32(0x2e8540ec),
  2174. 122: uint32(0x4a653b12),
  2175. 123: uint32(0xdf15ef87),
  2176. 124: uint32(0x83a5ccee),
  2177. 125: uint32(0x16d5187b),
  2178. 126: uint32(0x72356385),
  2179. 127: uint32(0xe745b710),
  2180. 128: uint32(0x67cf0be4),
  2181. 129: uint32(0xf2bfdf71),
  2182. 130: uint32(0x965fa48f),
  2183. 131: uint32(0x032f701a),
  2184. 132: uint32(0x5f9f5373),
  2185. 133: uint32(0xcaef87e6),
  2186. 134: uint32(0xae0ffc18),
  2187. 135: uint32(0x3b7f288d),
  2188. 136: uint32(0x176fbaca),
  2189. 137: uint32(0x821f6e5f),
  2190. 138: uint32(0xe6ff15a1),
  2191. 139: uint32(0x738fc134),
  2192. 140: uint32(0x2f3fe25d),
  2193. 141: uint32(0xba4f36c8),
  2194. 142: uint32(0xdeaf4d36),
  2195. 143: uint32(0x4bdf99a3),
  2196. 144: uint32(0x868e69b8),
  2197. 145: uint32(0x13febd2d),
  2198. 146: uint32(0x771ec6d3),
  2199. 147: uint32(0xe26e1246),
  2200. 148: uint32(0xbede312f),
  2201. 149: uint32(0x2baee5ba),
  2202. 150: uint32(0x4f4e9e44),
  2203. 151: uint32(0xda3e4ad1),
  2204. 152: uint32(0xf62ed896),
  2205. 153: uint32(0x635e0c03),
  2206. 154: uint32(0x07be77fd),
  2207. 155: uint32(0x92cea368),
  2208. 156: uint32(0xce7e8001),
  2209. 157: uint32(0x5b0e5494),
  2210. 158: uint32(0x3fee2f6a),
  2211. 159: uint32(0xaa9efbff),
  2212. 160: uint32(0x7e3cc91d),
  2213. 161: uint32(0xeb4c1d88),
  2214. 162: uint32(0x8fac6676),
  2215. 163: uint32(0x1adcb2e3),
  2216. 164: uint32(0x466c918a),
  2217. 165: uint32(0xd31c451f),
  2218. 166: uint32(0xb7fc3ee1),
  2219. 167: uint32(0x228cea74),
  2220. 168: uint32(0x0e9c7833),
  2221. 169: uint32(0x9becaca6),
  2222. 170: uint32(0xff0cd758),
  2223. 171: uint32(0x6a7c03cd),
  2224. 172: uint32(0x36cc20a4),
  2225. 173: uint32(0xa3bcf431),
  2226. 174: uint32(0xc75c8fcf),
  2227. 175: uint32(0x522c5b5a),
  2228. 176: uint32(0x9f7dab41),
  2229. 177: uint32(0x0a0d7fd4),
  2230. 178: uint32(0x6eed042a),
  2231. 179: uint32(0xfb9dd0bf),
  2232. 180: uint32(0xa72df3d6),
  2233. 181: uint32(0x325d2743),
  2234. 182: uint32(0x56bd5cbd),
  2235. 183: uint32(0xc3cd8828),
  2236. 184: uint32(0xefdd1a6f),
  2237. 185: uint32(0x7aadcefa),
  2238. 186: uint32(0x1e4db504),
  2239. 187: uint32(0x8b3d6191),
  2240. 188: uint32(0xd78d42f8),
  2241. 189: uint32(0x42fd966d),
  2242. 190: uint32(0x261ded93),
  2243. 191: uint32(0xb36d3906),
  2244. 192: uint32(0x54288e16),
  2245. 193: uint32(0xc1585a83),
  2246. 194: uint32(0xa5b8217d),
  2247. 195: uint32(0x30c8f5e8),
  2248. 196: uint32(0x6c78d681),
  2249. 197: uint32(0xf9080214),
  2250. 198: uint32(0x9de879ea),
  2251. 199: uint32(0x0898ad7f),
  2252. 200: uint32(0x24883f38),
  2253. 201: uint32(0xb1f8ebad),
  2254. 202: uint32(0xd5189053),
  2255. 203: uint32(0x406844c6),
  2256. 204: uint32(0x1cd867af),
  2257. 205: uint32(0x89a8b33a),
  2258. 206: uint32(0xed48c8c4),
  2259. 207: uint32(0x78381c51),
  2260. 208: uint32(0xb569ec4a),
  2261. 209: uint32(0x201938df),
  2262. 210: uint32(0x44f94321),
  2263. 211: uint32(0xd18997b4),
  2264. 212: uint32(0x8d39b4dd),
  2265. 213: uint32(0x18496048),
  2266. 214: uint32(0x7ca91bb6),
  2267. 215: uint32(0xe9d9cf23),
  2268. 216: uint32(0xc5c95d64),
  2269. 217: uint32(0x50b989f1),
  2270. 218: uint32(0x3459f20f),
  2271. 219: uint32(0xa129269a),
  2272. 220: uint32(0xfd9905f3),
  2273. 221: uint32(0x68e9d166),
  2274. 222: uint32(0x0c09aa98),
  2275. 223: uint32(0x99797e0d),
  2276. 224: uint32(0x4ddb4cef),
  2277. 225: uint32(0xd8ab987a),
  2278. 226: uint32(0xbc4be384),
  2279. 227: uint32(0x293b3711),
  2280. 228: uint32(0x758b1478),
  2281. 229: uint32(0xe0fbc0ed),
  2282. 230: uint32(0x841bbb13),
  2283. 231: uint32(0x116b6f86),
  2284. 232: uint32(0x3d7bfdc1),
  2285. 233: uint32(0xa80b2954),
  2286. 234: uint32(0xcceb52aa),
  2287. 235: uint32(0x599b863f),
  2288. 236: uint32(0x052ba556),
  2289. 237: uint32(0x905b71c3),
  2290. 238: uint32(0xf4bb0a3d),
  2291. 239: uint32(0x61cbdea8),
  2292. 240: uint32(0xac9a2eb3),
  2293. 241: uint32(0x39eafa26),
  2294. 242: uint32(0x5d0a81d8),
  2295. 243: uint32(0xc87a554d),
  2296. 244: uint32(0x94ca7624),
  2297. 245: uint32(0x01baa2b1),
  2298. 246: uint32(0x655ad94f),
  2299. 247: uint32(0xf02a0dda),
  2300. 248: uint32(0xdc3a9f9d),
  2301. 249: uint32(0x494a4b08),
  2302. 250: uint32(0x2daa30f6),
  2303. 251: uint32(0xb8dae463),
  2304. 252: uint32(0xe46ac70a),
  2305. 253: uint32(0x711a139f),
  2306. 254: uint32(0x15fa6861),
  2307. 255: uint32(0x808abcf4),
  2308. },
  2309. 5: {
  2310. 1: uint32(0xcf9e17c8),
  2311. 2: uint32(0x444d29d1),
  2312. 3: uint32(0x8bd33e19),
  2313. 4: uint32(0x889a53a2),
  2314. 5: uint32(0x4704446a),
  2315. 6: uint32(0xccd77a73),
  2316. 7: uint32(0x03496dbb),
  2317. 8: uint32(0xca45a105),
  2318. 9: uint32(0x05dbb6cd),
  2319. 10: uint32(0x8e0888d4),
  2320. 11: uint32(0x41969f1c),
  2321. 12: uint32(0x42dff2a7),
  2322. 13: uint32(0x8d41e56f),
  2323. 14: uint32(0x0692db76),
  2324. 15: uint32(0xc90cccbe),
  2325. 16: uint32(0x4ffa444b),
  2326. 17: uint32(0x80645383),
  2327. 18: uint32(0x0bb76d9a),
  2328. 19: uint32(0xc4297a52),
  2329. 20: uint32(0xc76017e9),
  2330. 21: uint32(0x08fe0021),
  2331. 22: uint32(0x832d3e38),
  2332. 23: uint32(0x4cb329f0),
  2333. 24: uint32(0x85bfe54e),
  2334. 25: uint32(0x4a21f286),
  2335. 26: uint32(0xc1f2cc9f),
  2336. 27: uint32(0x0e6cdb57),
  2337. 28: uint32(0x0d25b6ec),
  2338. 29: uint32(0xc2bba124),
  2339. 30: uint32(0x49689f3d),
  2340. 31: uint32(0x86f688f5),
  2341. 32: uint32(0x9ff48896),
  2342. 33: uint32(0x506a9f5e),
  2343. 34: uint32(0xdbb9a147),
  2344. 35: uint32(0x1427b68f),
  2345. 36: uint32(0x176edb34),
  2346. 37: uint32(0xd8f0ccfc),
  2347. 38: uint32(0x5323f2e5),
  2348. 39: uint32(0x9cbde52d),
  2349. 40: uint32(0x55b12993),
  2350. 41: uint32(0x9a2f3e5b),
  2351. 42: uint32(0x11fc0042),
  2352. 43: uint32(0xde62178a),
  2353. 44: uint32(0xdd2b7a31),
  2354. 45: uint32(0x12b56df9),
  2355. 46: uint32(0x996653e0),
  2356. 47: uint32(0x56f84428),
  2357. 48: uint32(0xd00eccdd),
  2358. 49: uint32(0x1f90db15),
  2359. 50: uint32(0x9443e50c),
  2360. 51: uint32(0x5bddf2c4),
  2361. 52: uint32(0x58949f7f),
  2362. 53: uint32(0x970a88b7),
  2363. 54: uint32(0x1cd9b6ae),
  2364. 55: uint32(0xd347a166),
  2365. 56: uint32(0x1a4b6dd8),
  2366. 57: uint32(0xd5d57a10),
  2367. 58: uint32(0x5e064409),
  2368. 59: uint32(0x919853c1),
  2369. 60: uint32(0x92d13e7a),
  2370. 61: uint32(0x5d4f29b2),
  2371. 62: uint32(0xd69c17ab),
  2372. 63: uint32(0x19020063),
  2373. 64: uint32(0xe498176d),
  2374. 65: uint32(0x2b0600a5),
  2375. 66: uint32(0xa0d53ebc),
  2376. 67: uint32(0x6f4b2974),
  2377. 68: uint32(0x6c0244cf),
  2378. 69: uint32(0xa39c5307),
  2379. 70: uint32(0x284f6d1e),
  2380. 71: uint32(0xe7d17ad6),
  2381. 72: uint32(0x2eddb668),
  2382. 73: uint32(0xe143a1a0),
  2383. 74: uint32(0x6a909fb9),
  2384. 75: uint32(0xa50e8871),
  2385. 76: uint32(0xa647e5ca),
  2386. 77: uint32(0x69d9f202),
  2387. 78: uint32(0xe20acc1b),
  2388. 79: uint32(0x2d94dbd3),
  2389. 80: uint32(0xab625326),
  2390. 81: uint32(0x64fc44ee),
  2391. 82: uint32(0xef2f7af7),
  2392. 83: uint32(0x20b16d3f),
  2393. 84: uint32(0x23f80084),
  2394. 85: uint32(0xec66174c),
  2395. 86: uint32(0x67b52955),
  2396. 87: uint32(0xa82b3e9d),
  2397. 88: uint32(0x6127f223),
  2398. 89: uint32(0xaeb9e5eb),
  2399. 90: uint32(0x256adbf2),
  2400. 91: uint32(0xeaf4cc3a),
  2401. 92: uint32(0xe9bda181),
  2402. 93: uint32(0x2623b649),
  2403. 94: uint32(0xadf08850),
  2404. 95: uint32(0x626e9f98),
  2405. 96: uint32(0x7b6c9ffb),
  2406. 97: uint32(0xb4f28833),
  2407. 98: uint32(0x3f21b62a),
  2408. 99: uint32(0xf0bfa1e2),
  2409. 100: uint32(0xf3f6cc59),
  2410. 101: uint32(0x3c68db91),
  2411. 102: uint32(0xb7bbe588),
  2412. 103: uint32(0x7825f240),
  2413. 104: uint32(0xb1293efe),
  2414. 105: uint32(0x7eb72936),
  2415. 106: uint32(0xf564172f),
  2416. 107: uint32(0x3afa00e7),
  2417. 108: uint32(0x39b36d5c),
  2418. 109: uint32(0xf62d7a94),
  2419. 110: uint32(0x7dfe448d),
  2420. 111: uint32(0xb2605345),
  2421. 112: uint32(0x3496dbb0),
  2422. 113: uint32(0xfb08cc78),
  2423. 114: uint32(0x70dbf261),
  2424. 115: uint32(0xbf45e5a9),
  2425. 116: uint32(0xbc0c8812),
  2426. 117: uint32(0x73929fda),
  2427. 118: uint32(0xf841a1c3),
  2428. 119: uint32(0x37dfb60b),
  2429. 120: uint32(0xfed37ab5),
  2430. 121: uint32(0x314d6d7d),
  2431. 122: uint32(0xba9e5364),
  2432. 123: uint32(0x750044ac),
  2433. 124: uint32(0x76492917),
  2434. 125: uint32(0xb9d73edf),
  2435. 126: uint32(0x320400c6),
  2436. 127: uint32(0xfd9a170e),
  2437. 128: uint32(0x1241289b),
  2438. 129: uint32(0xdddf3f53),
  2439. 130: uint32(0x560c014a),
  2440. 131: uint32(0x99921682),
  2441. 132: uint32(0x9adb7b39),
  2442. 133: uint32(0x55456cf1),
  2443. 134: uint32(0xde9652e8),
  2444. 135: uint32(0x11084520),
  2445. 136: uint32(0xd804899e),
  2446. 137: uint32(0x179a9e56),
  2447. 138: uint32(0x9c49a04f),
  2448. 139: uint32(0x53d7b787),
  2449. 140: uint32(0x509eda3c),
  2450. 141: uint32(0x9f00cdf4),
  2451. 142: uint32(0x14d3f3ed),
  2452. 143: uint32(0xdb4de425),
  2453. 144: uint32(0x5dbb6cd0),
  2454. 145: uint32(0x92257b18),
  2455. 146: uint32(0x19f64501),
  2456. 147: uint32(0xd66852c9),
  2457. 148: uint32(0xd5213f72),
  2458. 149: uint32(0x1abf28ba),
  2459. 150: uint32(0x916c16a3),
  2460. 151: uint32(0x5ef2016b),
  2461. 152: uint32(0x97fecdd5),
  2462. 153: uint32(0x5860da1d),
  2463. 154: uint32(0xd3b3e404),
  2464. 155: uint32(0x1c2df3cc),
  2465. 156: uint32(0x1f649e77),
  2466. 157: uint32(0xd0fa89bf),
  2467. 158: uint32(0x5b29b7a6),
  2468. 159: uint32(0x94b7a06e),
  2469. 160: uint32(0x8db5a00d),
  2470. 161: uint32(0x422bb7c5),
  2471. 162: uint32(0xc9f889dc),
  2472. 163: uint32(0x06669e14),
  2473. 164: uint32(0x052ff3af),
  2474. 165: uint32(0xcab1e467),
  2475. 166: uint32(0x4162da7e),
  2476. 167: uint32(0x8efccdb6),
  2477. 168: uint32(0x47f00108),
  2478. 169: uint32(0x886e16c0),
  2479. 170: uint32(0x03bd28d9),
  2480. 171: uint32(0xcc233f11),
  2481. 172: uint32(0xcf6a52aa),
  2482. 173: uint32(0x00f44562),
  2483. 174: uint32(0x8b277b7b),
  2484. 175: uint32(0x44b96cb3),
  2485. 176: uint32(0xc24fe446),
  2486. 177: uint32(0x0dd1f38e),
  2487. 178: uint32(0x8602cd97),
  2488. 179: uint32(0x499cda5f),
  2489. 180: uint32(0x4ad5b7e4),
  2490. 181: uint32(0x854ba02c),
  2491. 182: uint32(0x0e989e35),
  2492. 183: uint32(0xc10689fd),
  2493. 184: uint32(0x080a4543),
  2494. 185: uint32(0xc794528b),
  2495. 186: uint32(0x4c476c92),
  2496. 187: uint32(0x83d97b5a),
  2497. 188: uint32(0x809016e1),
  2498. 189: uint32(0x4f0e0129),
  2499. 190: uint32(0xc4dd3f30),
  2500. 191: uint32(0x0b4328f8),
  2501. 192: uint32(0xf6d93ff6),
  2502. 193: uint32(0x3947283e),
  2503. 194: uint32(0xb2941627),
  2504. 195: uint32(0x7d0a01ef),
  2505. 196: uint32(0x7e436c54),
  2506. 197: uint32(0xb1dd7b9c),
  2507. 198: uint32(0x3a0e4585),
  2508. 199: uint32(0xf590524d),
  2509. 200: uint32(0x3c9c9ef3),
  2510. 201: uint32(0xf302893b),
  2511. 202: uint32(0x78d1b722),
  2512. 203: uint32(0xb74fa0ea),
  2513. 204: uint32(0xb406cd51),
  2514. 205: uint32(0x7b98da99),
  2515. 206: uint32(0xf04be480),
  2516. 207: uint32(0x3fd5f348),
  2517. 208: uint32(0xb9237bbd),
  2518. 209: uint32(0x76bd6c75),
  2519. 210: uint32(0xfd6e526c),
  2520. 211: uint32(0x32f045a4),
  2521. 212: uint32(0x31b9281f),
  2522. 213: uint32(0xfe273fd7),
  2523. 214: uint32(0x75f401ce),
  2524. 215: uint32(0xba6a1606),
  2525. 216: uint32(0x7366dab8),
  2526. 217: uint32(0xbcf8cd70),
  2527. 218: uint32(0x372bf369),
  2528. 219: uint32(0xf8b5e4a1),
  2529. 220: uint32(0xfbfc891a),
  2530. 221: uint32(0x34629ed2),
  2531. 222: uint32(0xbfb1a0cb),
  2532. 223: uint32(0x702fb703),
  2533. 224: uint32(0x692db760),
  2534. 225: uint32(0xa6b3a0a8),
  2535. 226: uint32(0x2d609eb1),
  2536. 227: uint32(0xe2fe8979),
  2537. 228: uint32(0xe1b7e4c2),
  2538. 229: uint32(0x2e29f30a),
  2539. 230: uint32(0xa5facd13),
  2540. 231: uint32(0x6a64dadb),
  2541. 232: uint32(0xa3681665),
  2542. 233: uint32(0x6cf601ad),
  2543. 234: uint32(0xe7253fb4),
  2544. 235: uint32(0x28bb287c),
  2545. 236: uint32(0x2bf245c7),
  2546. 237: uint32(0xe46c520f),
  2547. 238: uint32(0x6fbf6c16),
  2548. 239: uint32(0xa0217bde),
  2549. 240: uint32(0x26d7f32b),
  2550. 241: uint32(0xe949e4e3),
  2551. 242: uint32(0x629adafa),
  2552. 243: uint32(0xad04cd32),
  2553. 244: uint32(0xae4da089),
  2554. 245: uint32(0x61d3b741),
  2555. 246: uint32(0xea008958),
  2556. 247: uint32(0x259e9e90),
  2557. 248: uint32(0xec92522e),
  2558. 249: uint32(0x230c45e6),
  2559. 250: uint32(0xa8df7bff),
  2560. 251: uint32(0x67416c37),
  2561. 252: uint32(0x6408018c),
  2562. 253: uint32(0xab961644),
  2563. 254: uint32(0x2045285d),
  2564. 255: uint32(0xefdb3f95),
  2565. },
  2566. 6: {
  2567. 1: uint32(0x24825136),
  2568. 2: uint32(0x4904a26c),
  2569. 3: uint32(0x6d86f35a),
  2570. 4: uint32(0x920944d8),
  2571. 5: uint32(0xb68b15ee),
  2572. 6: uint32(0xdb0de6b4),
  2573. 7: uint32(0xff8fb782),
  2574. 8: uint32(0xff638ff1),
  2575. 9: uint32(0xdbe1dec7),
  2576. 10: uint32(0xb6672d9d),
  2577. 11: uint32(0x92e57cab),
  2578. 12: uint32(0x6d6acb29),
  2579. 13: uint32(0x49e89a1f),
  2580. 14: uint32(0x246e6945),
  2581. 15: uint32(0x00ec3873),
  2582. 16: uint32(0x25b619a3),
  2583. 17: uint32(0x01344895),
  2584. 18: uint32(0x6cb2bbcf),
  2585. 19: uint32(0x4830eaf9),
  2586. 20: uint32(0xb7bf5d7b),
  2587. 21: uint32(0x933d0c4d),
  2588. 22: uint32(0xfebbff17),
  2589. 23: uint32(0xda39ae21),
  2590. 24: uint32(0xdad59652),
  2591. 25: uint32(0xfe57c764),
  2592. 26: uint32(0x93d1343e),
  2593. 27: uint32(0xb7536508),
  2594. 28: uint32(0x48dcd28a),
  2595. 29: uint32(0x6c5e83bc),
  2596. 30: uint32(0x01d870e6),
  2597. 31: uint32(0x255a21d0),
  2598. 32: uint32(0x4b6c3346),
  2599. 33: uint32(0x6fee6270),
  2600. 34: uint32(0x0268912a),
  2601. 35: uint32(0x26eac01c),
  2602. 36: uint32(0xd965779e),
  2603. 37: uint32(0xfde726a8),
  2604. 38: uint32(0x9061d5f2),
  2605. 39: uint32(0xb4e384c4),
  2606. 40: uint32(0xb40fbcb7),
  2607. 41: uint32(0x908ded81),
  2608. 42: uint32(0xfd0b1edb),
  2609. 43: uint32(0xd9894fed),
  2610. 44: uint32(0x2606f86f),
  2611. 45: uint32(0x0284a959),
  2612. 46: uint32(0x6f025a03),
  2613. 47: uint32(0x4b800b35),
  2614. 48: uint32(0x6eda2ae5),
  2615. 49: uint32(0x4a587bd3),
  2616. 50: uint32(0x27de8889),
  2617. 51: uint32(0x035cd9bf),
  2618. 52: uint32(0xfcd36e3d),
  2619. 53: uint32(0xd8513f0b),
  2620. 54: uint32(0xb5d7cc51),
  2621. 55: uint32(0x91559d67),
  2622. 56: uint32(0x91b9a514),
  2623. 57: uint32(0xb53bf422),
  2624. 58: uint32(0xd8bd0778),
  2625. 59: uint32(0xfc3f564e),
  2626. 60: uint32(0x03b0e1cc),
  2627. 61: uint32(0x2732b0fa),
  2628. 62: uint32(0x4ab443a0),
  2629. 63: uint32(0x6e361296),
  2630. 64: uint32(0x96d8668c),
  2631. 65: uint32(0xb25a37ba),
  2632. 66: uint32(0xdfdcc4e0),
  2633. 67: uint32(0xfb5e95d6),
  2634. 68: uint32(0x04d12254),
  2635. 69: uint32(0x20537362),
  2636. 70: uint32(0x4dd58038),
  2637. 71: uint32(0x6957d10e),
  2638. 72: uint32(0x69bbe97d),
  2639. 73: uint32(0x4d39b84b),
  2640. 74: uint32(0x20bf4b11),
  2641. 75: uint32(0x043d1a27),
  2642. 76: uint32(0xfbb2ada5),
  2643. 77: uint32(0xdf30fc93),
  2644. 78: uint32(0xb2b60fc9),
  2645. 79: uint32(0x96345eff),
  2646. 80: uint32(0xb36e7f2f),
  2647. 81: uint32(0x97ec2e19),
  2648. 82: uint32(0xfa6add43),
  2649. 83: uint32(0xdee88c75),
  2650. 84: uint32(0x21673bf7),
  2651. 85: uint32(0x05e56ac1),
  2652. 86: uint32(0x6863999b),
  2653. 87: uint32(0x4ce1c8ad),
  2654. 88: uint32(0x4c0df0de),
  2655. 89: uint32(0x688fa1e8),
  2656. 90: uint32(0x050952b2),
  2657. 91: uint32(0x218b0384),
  2658. 92: uint32(0xde04b406),
  2659. 93: uint32(0xfa86e530),
  2660. 94: uint32(0x9700166a),
  2661. 95: uint32(0xb382475c),
  2662. 96: uint32(0xddb455ca),
  2663. 97: uint32(0xf93604fc),
  2664. 98: uint32(0x94b0f7a6),
  2665. 99: uint32(0xb032a690),
  2666. 100: uint32(0x4fbd1112),
  2667. 101: uint32(0x6b3f4024),
  2668. 102: uint32(0x06b9b37e),
  2669. 103: uint32(0x223be248),
  2670. 104: uint32(0x22d7da3b),
  2671. 105: uint32(0x06558b0d),
  2672. 106: uint32(0x6bd37857),
  2673. 107: uint32(0x4f512961),
  2674. 108: uint32(0xb0de9ee3),
  2675. 109: uint32(0x945ccfd5),
  2676. 110: uint32(0xf9da3c8f),
  2677. 111: uint32(0xdd586db9),
  2678. 112: uint32(0xf8024c69),
  2679. 113: uint32(0xdc801d5f),
  2680. 114: uint32(0xb106ee05),
  2681. 115: uint32(0x9584bf33),
  2682. 116: uint32(0x6a0b08b1),
  2683. 117: uint32(0x4e895987),
  2684. 118: uint32(0x230faadd),
  2685. 119: uint32(0x078dfbeb),
  2686. 120: uint32(0x0761c398),
  2687. 121: uint32(0x23e392ae),
  2688. 122: uint32(0x4e6561f4),
  2689. 123: uint32(0x6ae730c2),
  2690. 124: uint32(0x95688740),
  2691. 125: uint32(0xb1ead676),
  2692. 126: uint32(0xdc6c252c),
  2693. 127: uint32(0xf8ee741a),
  2694. 128: uint32(0xf6c1cb59),
  2695. 129: uint32(0xd2439a6f),
  2696. 130: uint32(0xbfc56935),
  2697. 131: uint32(0x9b473803),
  2698. 132: uint32(0x64c88f81),
  2699. 133: uint32(0x404adeb7),
  2700. 134: uint32(0x2dcc2ded),
  2701. 135: uint32(0x094e7cdb),
  2702. 136: uint32(0x09a244a8),
  2703. 137: uint32(0x2d20159e),
  2704. 138: uint32(0x40a6e6c4),
  2705. 139: uint32(0x6424b7f2),
  2706. 140: uint32(0x9bab0070),
  2707. 141: uint32(0xbf295146),
  2708. 142: uint32(0xd2afa21c),
  2709. 143: uint32(0xf62df32a),
  2710. 144: uint32(0xd377d2fa),
  2711. 145: uint32(0xf7f583cc),
  2712. 146: uint32(0x9a737096),
  2713. 147: uint32(0xbef121a0),
  2714. 148: uint32(0x417e9622),
  2715. 149: uint32(0x65fcc714),
  2716. 150: uint32(0x087a344e),
  2717. 151: uint32(0x2cf86578),
  2718. 152: uint32(0x2c145d0b),
  2719. 153: uint32(0x08960c3d),
  2720. 154: uint32(0x6510ff67),
  2721. 155: uint32(0x4192ae51),
  2722. 156: uint32(0xbe1d19d3),
  2723. 157: uint32(0x9a9f48e5),
  2724. 158: uint32(0xf719bbbf),
  2725. 159: uint32(0xd39bea89),
  2726. 160: uint32(0xbdadf81f),
  2727. 161: uint32(0x992fa929),
  2728. 162: uint32(0xf4a95a73),
  2729. 163: uint32(0xd02b0b45),
  2730. 164: uint32(0x2fa4bcc7),
  2731. 165: uint32(0x0b26edf1),
  2732. 166: uint32(0x66a01eab),
  2733. 167: uint32(0x42224f9d),
  2734. 168: uint32(0x42ce77ee),
  2735. 169: uint32(0x664c26d8),
  2736. 170: uint32(0x0bcad582),
  2737. 171: uint32(0x2f4884b4),
  2738. 172: uint32(0xd0c73336),
  2739. 173: uint32(0xf4456200),
  2740. 174: uint32(0x99c3915a),
  2741. 175: uint32(0xbd41c06c),
  2742. 176: uint32(0x981be1bc),
  2743. 177: uint32(0xbc99b08a),
  2744. 178: uint32(0xd11f43d0),
  2745. 179: uint32(0xf59d12e6),
  2746. 180: uint32(0x0a12a564),
  2747. 181: uint32(0x2e90f452),
  2748. 182: uint32(0x43160708),
  2749. 183: uint32(0x6794563e),
  2750. 184: uint32(0x67786e4d),
  2751. 185: uint32(0x43fa3f7b),
  2752. 186: uint32(0x2e7ccc21),
  2753. 187: uint32(0x0afe9d17),
  2754. 188: uint32(0xf5712a95),
  2755. 189: uint32(0xd1f37ba3),
  2756. 190: uint32(0xbc7588f9),
  2757. 191: uint32(0x98f7d9cf),
  2758. 192: uint32(0x6019add5),
  2759. 193: uint32(0x449bfce3),
  2760. 194: uint32(0x291d0fb9),
  2761. 195: uint32(0x0d9f5e8f),
  2762. 196: uint32(0xf210e90d),
  2763. 197: uint32(0xd692b83b),
  2764. 198: uint32(0xbb144b61),
  2765. 199: uint32(0x9f961a57),
  2766. 200: uint32(0x9f7a2224),
  2767. 201: uint32(0xbbf87312),
  2768. 202: uint32(0xd67e8048),
  2769. 203: uint32(0xf2fcd17e),
  2770. 204: uint32(0x0d7366fc),
  2771. 205: uint32(0x29f137ca),
  2772. 206: uint32(0x4477c490),
  2773. 207: uint32(0x60f595a6),
  2774. 208: uint32(0x45afb476),
  2775. 209: uint32(0x612de540),
  2776. 210: uint32(0x0cab161a),
  2777. 211: uint32(0x2829472c),
  2778. 212: uint32(0xd7a6f0ae),
  2779. 213: uint32(0xf324a198),
  2780. 214: uint32(0x9ea252c2),
  2781. 215: uint32(0xba2003f4),
  2782. 216: uint32(0xbacc3b87),
  2783. 217: uint32(0x9e4e6ab1),
  2784. 218: uint32(0xf3c899eb),
  2785. 219: uint32(0xd74ac8dd),
  2786. 220: uint32(0x28c57f5f),
  2787. 221: uint32(0x0c472e69),
  2788. 222: uint32(0x61c1dd33),
  2789. 223: uint32(0x45438c05),
  2790. 224: uint32(0x2b759e93),
  2791. 225: uint32(0x0ff7cfa5),
  2792. 226: uint32(0x62713cff),
  2793. 227: uint32(0x46f36dc9),
  2794. 228: uint32(0xb97cda4b),
  2795. 229: uint32(0x9dfe8b7d),
  2796. 230: uint32(0xf0787827),
  2797. 231: uint32(0xd4fa2911),
  2798. 232: uint32(0xd4161162),
  2799. 233: uint32(0xf0944054),
  2800. 234: uint32(0x9d12b30e),
  2801. 235: uint32(0xb990e238),
  2802. 236: uint32(0x461f55ba),
  2803. 237: uint32(0x629d048c),
  2804. 238: uint32(0x0f1bf7d6),
  2805. 239: uint32(0x2b99a6e0),
  2806. 240: uint32(0x0ec38730),
  2807. 241: uint32(0x2a41d606),
  2808. 242: uint32(0x47c7255c),
  2809. 243: uint32(0x6345746a),
  2810. 244: uint32(0x9ccac3e8),
  2811. 245: uint32(0xb84892de),
  2812. 246: uint32(0xd5ce6184),
  2813. 247: uint32(0xf14c30b2),
  2814. 248: uint32(0xf1a008c1),
  2815. 249: uint32(0xd52259f7),
  2816. 250: uint32(0xb8a4aaad),
  2817. 251: uint32(0x9c26fb9b),
  2818. 252: uint32(0x63a94c19),
  2819. 253: uint32(0x472b1d2f),
  2820. 254: uint32(0x2aadee75),
  2821. 255: uint32(0x0e2fbf43),
  2822. },
  2823. 7: {
  2824. 1: uint32(0x36f290f3),
  2825. 2: uint32(0x6de521e6),
  2826. 3: uint32(0x5b17b115),
  2827. 4: uint32(0xdbca43cc),
  2828. 5: uint32(0xed38d33f),
  2829. 6: uint32(0xb62f622a),
  2830. 7: uint32(0x80ddf2d9),
  2831. 8: uint32(0x6ce581d9),
  2832. 9: uint32(0x5a17112a),
  2833. 10: uint32(0x0100a03f),
  2834. 11: uint32(0x37f230cc),
  2835. 12: uint32(0xb72fc215),
  2836. 13: uint32(0x81dd52e6),
  2837. 14: uint32(0xdacae3f3),
  2838. 15: uint32(0xec387300),
  2839. 16: uint32(0xd9cb03b2),
  2840. 17: uint32(0xef399341),
  2841. 18: uint32(0xb42e2254),
  2842. 19: uint32(0x82dcb2a7),
  2843. 20: uint32(0x0201407e),
  2844. 21: uint32(0x34f3d08d),
  2845. 22: uint32(0x6fe46198),
  2846. 23: uint32(0x5916f16b),
  2847. 24: uint32(0xb52e826b),
  2848. 25: uint32(0x83dc1298),
  2849. 26: uint32(0xd8cba38d),
  2850. 27: uint32(0xee39337e),
  2851. 28: uint32(0x6ee4c1a7),
  2852. 29: uint32(0x58165154),
  2853. 30: uint32(0x0301e041),
  2854. 31: uint32(0x35f370b2),
  2855. 32: uint32(0x68e70125),
  2856. 33: uint32(0x5e1591d6),
  2857. 34: uint32(0x050220c3),
  2858. 35: uint32(0x33f0b030),
  2859. 36: uint32(0xb32d42e9),
  2860. 37: uint32(0x85dfd21a),
  2861. 38: uint32(0xdec8630f),
  2862. 39: uint32(0xe83af3fc),
  2863. 40: uint32(0x040280fc),
  2864. 41: uint32(0x32f0100f),
  2865. 42: uint32(0x69e7a11a),
  2866. 43: uint32(0x5f1531e9),
  2867. 44: uint32(0xdfc8c330),
  2868. 45: uint32(0xe93a53c3),
  2869. 46: uint32(0xb22de2d6),
  2870. 47: uint32(0x84df7225),
  2871. 48: uint32(0xb12c0297),
  2872. 49: uint32(0x87de9264),
  2873. 50: uint32(0xdcc92371),
  2874. 51: uint32(0xea3bb382),
  2875. 52: uint32(0x6ae6415b),
  2876. 53: uint32(0x5c14d1a8),
  2877. 54: uint32(0x070360bd),
  2878. 55: uint32(0x31f1f04e),
  2879. 56: uint32(0xddc9834e),
  2880. 57: uint32(0xeb3b13bd),
  2881. 58: uint32(0xb02ca2a8),
  2882. 59: uint32(0x86de325b),
  2883. 60: uint32(0x0603c082),
  2884. 61: uint32(0x30f15071),
  2885. 62: uint32(0x6be6e164),
  2886. 63: uint32(0x5d147197),
  2887. 64: uint32(0xd1ce024a),
  2888. 65: uint32(0xe73c92b9),
  2889. 66: uint32(0xbc2b23ac),
  2890. 67: uint32(0x8ad9b35f),
  2891. 68: uint32(0x0a044186),
  2892. 69: uint32(0x3cf6d175),
  2893. 70: uint32(0x67e16060),
  2894. 71: uint32(0x5113f093),
  2895. 72: uint32(0xbd2b8393),
  2896. 73: uint32(0x8bd91360),
  2897. 74: uint32(0xd0cea275),
  2898. 75: uint32(0xe63c3286),
  2899. 76: uint32(0x66e1c05f),
  2900. 77: uint32(0x501350ac),
  2901. 78: uint32(0x0b04e1b9),
  2902. 79: uint32(0x3df6714a),
  2903. 80: uint32(0x080501f8),
  2904. 81: uint32(0x3ef7910b),
  2905. 82: uint32(0x65e0201e),
  2906. 83: uint32(0x5312b0ed),
  2907. 84: uint32(0xd3cf4234),
  2908. 85: uint32(0xe53dd2c7),
  2909. 86: uint32(0xbe2a63d2),
  2910. 87: uint32(0x88d8f321),
  2911. 88: uint32(0x64e08021),
  2912. 89: uint32(0x521210d2),
  2913. 90: uint32(0x0905a1c7),
  2914. 91: uint32(0x3ff73134),
  2915. 92: uint32(0xbf2ac3ed),
  2916. 93: uint32(0x89d8531e),
  2917. 94: uint32(0xd2cfe20b),
  2918. 95: uint32(0xe43d72f8),
  2919. 96: uint32(0xb929036f),
  2920. 97: uint32(0x8fdb939c),
  2921. 98: uint32(0xd4cc2289),
  2922. 99: uint32(0xe23eb27a),
  2923. 100: uint32(0x62e340a3),
  2924. 101: uint32(0x5411d050),
  2925. 102: uint32(0x0f066145),
  2926. 103: uint32(0x39f4f1b6),
  2927. 104: uint32(0xd5cc82b6),
  2928. 105: uint32(0xe33e1245),
  2929. 106: uint32(0xb829a350),
  2930. 107: uint32(0x8edb33a3),
  2931. 108: uint32(0x0e06c17a),
  2932. 109: uint32(0x38f45189),
  2933. 110: uint32(0x63e3e09c),
  2934. 111: uint32(0x5511706f),
  2935. 112: uint32(0x60e200dd),
  2936. 113: uint32(0x5610902e),
  2937. 114: uint32(0x0d07213b),
  2938. 115: uint32(0x3bf5b1c8),
  2939. 116: uint32(0xbb284311),
  2940. 117: uint32(0x8ddad3e2),
  2941. 118: uint32(0xd6cd62f7),
  2942. 119: uint32(0xe03ff204),
  2943. 120: uint32(0x0c078104),
  2944. 121: uint32(0x3af511f7),
  2945. 122: uint32(0x61e2a0e2),
  2946. 123: uint32(0x57103011),
  2947. 124: uint32(0xd7cdc2c8),
  2948. 125: uint32(0xe13f523b),
  2949. 126: uint32(0xba28e32e),
  2950. 127: uint32(0x8cda73dd),
  2951. 128: uint32(0x78ed02d5),
  2952. 129: uint32(0x4e1f9226),
  2953. 130: uint32(0x15082333),
  2954. 131: uint32(0x23fab3c0),
  2955. 132: uint32(0xa3274119),
  2956. 133: uint32(0x95d5d1ea),
  2957. 134: uint32(0xcec260ff),
  2958. 135: uint32(0xf830f00c),
  2959. 136: uint32(0x1408830c),
  2960. 137: uint32(0x22fa13ff),
  2961. 138: uint32(0x79eda2ea),
  2962. 139: uint32(0x4f1f3219),
  2963. 140: uint32(0xcfc2c0c0),
  2964. 141: uint32(0xf9305033),
  2965. 142: uint32(0xa227e126),
  2966. 143: uint32(0x94d571d5),
  2967. 144: uint32(0xa1260167),
  2968. 145: uint32(0x97d49194),
  2969. 146: uint32(0xccc32081),
  2970. 147: uint32(0xfa31b072),
  2971. 148: uint32(0x7aec42ab),
  2972. 149: uint32(0x4c1ed258),
  2973. 150: uint32(0x1709634d),
  2974. 151: uint32(0x21fbf3be),
  2975. 152: uint32(0xcdc380be),
  2976. 153: uint32(0xfb31104d),
  2977. 154: uint32(0xa026a158),
  2978. 155: uint32(0x96d431ab),
  2979. 156: uint32(0x1609c372),
  2980. 157: uint32(0x20fb5381),
  2981. 158: uint32(0x7bece294),
  2982. 159: uint32(0x4d1e7267),
  2983. 160: uint32(0x100a03f0),
  2984. 161: uint32(0x26f89303),
  2985. 162: uint32(0x7def2216),
  2986. 163: uint32(0x4b1db2e5),
  2987. 164: uint32(0xcbc0403c),
  2988. 165: uint32(0xfd32d0cf),
  2989. 166: uint32(0xa62561da),
  2990. 167: uint32(0x90d7f129),
  2991. 168: uint32(0x7cef8229),
  2992. 169: uint32(0x4a1d12da),
  2993. 170: uint32(0x110aa3cf),
  2994. 171: uint32(0x27f8333c),
  2995. 172: uint32(0xa725c1e5),
  2996. 173: uint32(0x91d75116),
  2997. 174: uint32(0xcac0e003),
  2998. 175: uint32(0xfc3270f0),
  2999. 176: uint32(0xc9c10042),
  3000. 177: uint32(0xff3390b1),
  3001. 178: uint32(0xa42421a4),
  3002. 179: uint32(0x92d6b157),
  3003. 180: uint32(0x120b438e),
  3004. 181: uint32(0x24f9d37d),
  3005. 182: uint32(0x7fee6268),
  3006. 183: uint32(0x491cf29b),
  3007. 184: uint32(0xa524819b),
  3008. 185: uint32(0x93d61168),
  3009. 186: uint32(0xc8c1a07d),
  3010. 187: uint32(0xfe33308e),
  3011. 188: uint32(0x7eeec257),
  3012. 189: uint32(0x481c52a4),
  3013. 190: uint32(0x130be3b1),
  3014. 191: uint32(0x25f97342),
  3015. 192: uint32(0xa923009f),
  3016. 193: uint32(0x9fd1906c),
  3017. 194: uint32(0xc4c62179),
  3018. 195: uint32(0xf234b18a),
  3019. 196: uint32(0x72e94353),
  3020. 197: uint32(0x441bd3a0),
  3021. 198: uint32(0x1f0c62b5),
  3022. 199: uint32(0x29fef246),
  3023. 200: uint32(0xc5c68146),
  3024. 201: uint32(0xf33411b5),
  3025. 202: uint32(0xa823a0a0),
  3026. 203: uint32(0x9ed13053),
  3027. 204: uint32(0x1e0cc28a),
  3028. 205: uint32(0x28fe5279),
  3029. 206: uint32(0x73e9e36c),
  3030. 207: uint32(0x451b739f),
  3031. 208: uint32(0x70e8032d),
  3032. 209: uint32(0x461a93de),
  3033. 210: uint32(0x1d0d22cb),
  3034. 211: uint32(0x2bffb238),
  3035. 212: uint32(0xab2240e1),
  3036. 213: uint32(0x9dd0d012),
  3037. 214: uint32(0xc6c76107),
  3038. 215: uint32(0xf035f1f4),
  3039. 216: uint32(0x1c0d82f4),
  3040. 217: uint32(0x2aff1207),
  3041. 218: uint32(0x71e8a312),
  3042. 219: uint32(0x471a33e1),
  3043. 220: uint32(0xc7c7c138),
  3044. 221: uint32(0xf13551cb),
  3045. 222: uint32(0xaa22e0de),
  3046. 223: uint32(0x9cd0702d),
  3047. 224: uint32(0xc1c401ba),
  3048. 225: uint32(0xf7369149),
  3049. 226: uint32(0xac21205c),
  3050. 227: uint32(0x9ad3b0af),
  3051. 228: uint32(0x1a0e4276),
  3052. 229: uint32(0x2cfcd285),
  3053. 230: uint32(0x77eb6390),
  3054. 231: uint32(0x4119f363),
  3055. 232: uint32(0xad218063),
  3056. 233: uint32(0x9bd31090),
  3057. 234: uint32(0xc0c4a185),
  3058. 235: uint32(0xf6363176),
  3059. 236: uint32(0x76ebc3af),
  3060. 237: uint32(0x4019535c),
  3061. 238: uint32(0x1b0ee249),
  3062. 239: uint32(0x2dfc72ba),
  3063. 240: uint32(0x180f0208),
  3064. 241: uint32(0x2efd92fb),
  3065. 242: uint32(0x75ea23ee),
  3066. 243: uint32(0x4318b31d),
  3067. 244: uint32(0xc3c541c4),
  3068. 245: uint32(0xf537d137),
  3069. 246: uint32(0xae206022),
  3070. 247: uint32(0x98d2f0d1),
  3071. 248: uint32(0x74ea83d1),
  3072. 249: uint32(0x42181322),
  3073. 250: uint32(0x190fa237),
  3074. 251: uint32(0x2ffd32c4),
  3075. 252: uint32(0xaf20c01d),
  3076. 253: uint32(0x99d250ee),
  3077. 254: uint32(0xc2c5e1fb),
  3078. 255: uint32(0xf4377108),
  3079. },
  3080. }
  3081. var _crc_braid_big_table = [8][256]Tz_word_t{
  3082. 0: {
  3083. 1: uint64(0xf390f23600000000),
  3084. 2: uint64(0xe621e56d00000000),
  3085. 3: uint64(0x15b1175b00000000),
  3086. 4: uint64(0xcc43cadb00000000),
  3087. 5: uint64(0x3fd338ed00000000),
  3088. 6: uint64(0x2a622fb600000000),
  3089. 7: uint64(0xd9f2dd8000000000),
  3090. 8: uint64(0xd981e56c00000000),
  3091. 9: uint64(0x2a11175a00000000),
  3092. 10: uint64(0x3fa0000100000000),
  3093. 11: uint64(0xcc30f23700000000),
  3094. 12: uint64(0x15c22fb700000000),
  3095. 13: uint64(0xe652dd8100000000),
  3096. 14: uint64(0xf3e3cada00000000),
  3097. 15: uint64(0x007338ec00000000),
  3098. 16: uint64(0xb203cbd900000000),
  3099. 17: uint64(0x419339ef00000000),
  3100. 18: uint64(0x54222eb400000000),
  3101. 19: uint64(0xa7b2dc8200000000),
  3102. 20: uint64(0x7e40010200000000),
  3103. 21: uint64(0x8dd0f33400000000),
  3104. 22: uint64(0x9861e46f00000000),
  3105. 23: uint64(0x6bf1165900000000),
  3106. 24: uint64(0x6b822eb500000000),
  3107. 25: uint64(0x9812dc8300000000),
  3108. 26: uint64(0x8da3cbd800000000),
  3109. 27: uint64(0x7e3339ee00000000),
  3110. 28: uint64(0xa7c1e46e00000000),
  3111. 29: uint64(0x5451165800000000),
  3112. 30: uint64(0x41e0010300000000),
  3113. 31: uint64(0xb270f33500000000),
  3114. 32: uint64(0x2501e76800000000),
  3115. 33: uint64(0xd691155e00000000),
  3116. 34: uint64(0xc320020500000000),
  3117. 35: uint64(0x30b0f03300000000),
  3118. 36: uint64(0xe9422db300000000),
  3119. 37: uint64(0x1ad2df8500000000),
  3120. 38: uint64(0x0f63c8de00000000),
  3121. 39: uint64(0xfcf33ae800000000),
  3122. 40: uint64(0xfc80020400000000),
  3123. 41: uint64(0x0f10f03200000000),
  3124. 42: uint64(0x1aa1e76900000000),
  3125. 43: uint64(0xe931155f00000000),
  3126. 44: uint64(0x30c3c8df00000000),
  3127. 45: uint64(0xc3533ae900000000),
  3128. 46: uint64(0xd6e22db200000000),
  3129. 47: uint64(0x2572df8400000000),
  3130. 48: uint64(0x97022cb100000000),
  3131. 49: uint64(0x6492de8700000000),
  3132. 50: uint64(0x7123c9dc00000000),
  3133. 51: uint64(0x82b33bea00000000),
  3134. 52: uint64(0x5b41e66a00000000),
  3135. 53: uint64(0xa8d1145c00000000),
  3136. 54: uint64(0xbd60030700000000),
  3137. 55: uint64(0x4ef0f13100000000),
  3138. 56: uint64(0x4e83c9dd00000000),
  3139. 57: uint64(0xbd133beb00000000),
  3140. 58: uint64(0xa8a22cb000000000),
  3141. 59: uint64(0x5b32de8600000000),
  3142. 60: uint64(0x82c0030600000000),
  3143. 61: uint64(0x7150f13000000000),
  3144. 62: uint64(0x64e1e66b00000000),
  3145. 63: uint64(0x9771145d00000000),
  3146. 64: uint64(0x4a02ced100000000),
  3147. 65: uint64(0xb9923ce700000000),
  3148. 66: uint64(0xac232bbc00000000),
  3149. 67: uint64(0x5fb3d98a00000000),
  3150. 68: uint64(0x8641040a00000000),
  3151. 69: uint64(0x75d1f63c00000000),
  3152. 70: uint64(0x6060e16700000000),
  3153. 71: uint64(0x93f0135100000000),
  3154. 72: uint64(0x93832bbd00000000),
  3155. 73: uint64(0x6013d98b00000000),
  3156. 74: uint64(0x75a2ced000000000),
  3157. 75: uint64(0x86323ce600000000),
  3158. 76: uint64(0x5fc0e16600000000),
  3159. 77: uint64(0xac50135000000000),
  3160. 78: uint64(0xb9e1040b00000000),
  3161. 79: uint64(0x4a71f63d00000000),
  3162. 80: uint64(0xf801050800000000),
  3163. 81: uint64(0x0b91f73e00000000),
  3164. 82: uint64(0x1e20e06500000000),
  3165. 83: uint64(0xedb0125300000000),
  3166. 84: uint64(0x3442cfd300000000),
  3167. 85: uint64(0xc7d23de500000000),
  3168. 86: uint64(0xd2632abe00000000),
  3169. 87: uint64(0x21f3d88800000000),
  3170. 88: uint64(0x2180e06400000000),
  3171. 89: uint64(0xd210125200000000),
  3172. 90: uint64(0xc7a1050900000000),
  3173. 91: uint64(0x3431f73f00000000),
  3174. 92: uint64(0xedc32abf00000000),
  3175. 93: uint64(0x1e53d88900000000),
  3176. 94: uint64(0x0be2cfd200000000),
  3177. 95: uint64(0xf8723de400000000),
  3178. 96: uint64(0x6f0329b900000000),
  3179. 97: uint64(0x9c93db8f00000000),
  3180. 98: uint64(0x8922ccd400000000),
  3181. 99: uint64(0x7ab23ee200000000),
  3182. 100: uint64(0xa340e36200000000),
  3183. 101: uint64(0x50d0115400000000),
  3184. 102: uint64(0x4561060f00000000),
  3185. 103: uint64(0xb6f1f43900000000),
  3186. 104: uint64(0xb682ccd500000000),
  3187. 105: uint64(0x45123ee300000000),
  3188. 106: uint64(0x50a329b800000000),
  3189. 107: uint64(0xa333db8e00000000),
  3190. 108: uint64(0x7ac1060e00000000),
  3191. 109: uint64(0x8951f43800000000),
  3192. 110: uint64(0x9ce0e36300000000),
  3193. 111: uint64(0x6f70115500000000),
  3194. 112: uint64(0xdd00e26000000000),
  3195. 113: uint64(0x2e90105600000000),
  3196. 114: uint64(0x3b21070d00000000),
  3197. 115: uint64(0xc8b1f53b00000000),
  3198. 116: uint64(0x114328bb00000000),
  3199. 117: uint64(0xe2d3da8d00000000),
  3200. 118: uint64(0xf762cdd600000000),
  3201. 119: uint64(0x04f23fe000000000),
  3202. 120: uint64(0x0481070c00000000),
  3203. 121: uint64(0xf711f53a00000000),
  3204. 122: uint64(0xe2a0e26100000000),
  3205. 123: uint64(0x1130105700000000),
  3206. 124: uint64(0xc8c2cdd700000000),
  3207. 125: uint64(0x3b523fe100000000),
  3208. 126: uint64(0x2ee328ba00000000),
  3209. 127: uint64(0xdd73da8c00000000),
  3210. 128: uint64(0xd502ed7800000000),
  3211. 129: uint64(0x26921f4e00000000),
  3212. 130: uint64(0x3323081500000000),
  3213. 131: uint64(0xc0b3fa2300000000),
  3214. 132: uint64(0x194127a300000000),
  3215. 133: uint64(0xead1d59500000000),
  3216. 134: uint64(0xff60c2ce00000000),
  3217. 135: uint64(0x0cf030f800000000),
  3218. 136: uint64(0x0c83081400000000),
  3219. 137: uint64(0xff13fa2200000000),
  3220. 138: uint64(0xeaa2ed7900000000),
  3221. 139: uint64(0x19321f4f00000000),
  3222. 140: uint64(0xc0c0c2cf00000000),
  3223. 141: uint64(0x335030f900000000),
  3224. 142: uint64(0x26e127a200000000),
  3225. 143: uint64(0xd571d59400000000),
  3226. 144: uint64(0x670126a100000000),
  3227. 145: uint64(0x9491d49700000000),
  3228. 146: uint64(0x8120c3cc00000000),
  3229. 147: uint64(0x72b031fa00000000),
  3230. 148: uint64(0xab42ec7a00000000),
  3231. 149: uint64(0x58d21e4c00000000),
  3232. 150: uint64(0x4d63091700000000),
  3233. 151: uint64(0xbef3fb2100000000),
  3234. 152: uint64(0xbe80c3cd00000000),
  3235. 153: uint64(0x4d1031fb00000000),
  3236. 154: uint64(0x58a126a000000000),
  3237. 155: uint64(0xab31d49600000000),
  3238. 156: uint64(0x72c3091600000000),
  3239. 157: uint64(0x8153fb2000000000),
  3240. 158: uint64(0x94e2ec7b00000000),
  3241. 159: uint64(0x67721e4d00000000),
  3242. 160: uint64(0xf0030a1000000000),
  3243. 161: uint64(0x0393f82600000000),
  3244. 162: uint64(0x1622ef7d00000000),
  3245. 163: uint64(0xe5b21d4b00000000),
  3246. 164: uint64(0x3c40c0cb00000000),
  3247. 165: uint64(0xcfd032fd00000000),
  3248. 166: uint64(0xda6125a600000000),
  3249. 167: uint64(0x29f1d79000000000),
  3250. 168: uint64(0x2982ef7c00000000),
  3251. 169: uint64(0xda121d4a00000000),
  3252. 170: uint64(0xcfa30a1100000000),
  3253. 171: uint64(0x3c33f82700000000),
  3254. 172: uint64(0xe5c125a700000000),
  3255. 173: uint64(0x1651d79100000000),
  3256. 174: uint64(0x03e0c0ca00000000),
  3257. 175: uint64(0xf07032fc00000000),
  3258. 176: uint64(0x4200c1c900000000),
  3259. 177: uint64(0xb19033ff00000000),
  3260. 178: uint64(0xa42124a400000000),
  3261. 179: uint64(0x57b1d69200000000),
  3262. 180: uint64(0x8e430b1200000000),
  3263. 181: uint64(0x7dd3f92400000000),
  3264. 182: uint64(0x6862ee7f00000000),
  3265. 183: uint64(0x9bf21c4900000000),
  3266. 184: uint64(0x9b8124a500000000),
  3267. 185: uint64(0x6811d69300000000),
  3268. 186: uint64(0x7da0c1c800000000),
  3269. 187: uint64(0x8e3033fe00000000),
  3270. 188: uint64(0x57c2ee7e00000000),
  3271. 189: uint64(0xa4521c4800000000),
  3272. 190: uint64(0xb1e30b1300000000),
  3273. 191: uint64(0x4273f92500000000),
  3274. 192: uint64(0x9f0023a900000000),
  3275. 193: uint64(0x6c90d19f00000000),
  3276. 194: uint64(0x7921c6c400000000),
  3277. 195: uint64(0x8ab134f200000000),
  3278. 196: uint64(0x5343e97200000000),
  3279. 197: uint64(0xa0d31b4400000000),
  3280. 198: uint64(0xb5620c1f00000000),
  3281. 199: uint64(0x46f2fe2900000000),
  3282. 200: uint64(0x4681c6c500000000),
  3283. 201: uint64(0xb51134f300000000),
  3284. 202: uint64(0xa0a023a800000000),
  3285. 203: uint64(0x5330d19e00000000),
  3286. 204: uint64(0x8ac20c1e00000000),
  3287. 205: uint64(0x7952fe2800000000),
  3288. 206: uint64(0x6ce3e97300000000),
  3289. 207: uint64(0x9f731b4500000000),
  3290. 208: uint64(0x2d03e87000000000),
  3291. 209: uint64(0xde931a4600000000),
  3292. 210: uint64(0xcb220d1d00000000),
  3293. 211: uint64(0x38b2ff2b00000000),
  3294. 212: uint64(0xe14022ab00000000),
  3295. 213: uint64(0x12d0d09d00000000),
  3296. 214: uint64(0x0761c7c600000000),
  3297. 215: uint64(0xf4f135f000000000),
  3298. 216: uint64(0xf4820d1c00000000),
  3299. 217: uint64(0x0712ff2a00000000),
  3300. 218: uint64(0x12a3e87100000000),
  3301. 219: uint64(0xe1331a4700000000),
  3302. 220: uint64(0x38c1c7c700000000),
  3303. 221: uint64(0xcb5135f100000000),
  3304. 222: uint64(0xdee022aa00000000),
  3305. 223: uint64(0x2d70d09c00000000),
  3306. 224: uint64(0xba01c4c100000000),
  3307. 225: uint64(0x499136f700000000),
  3308. 226: uint64(0x5c2021ac00000000),
  3309. 227: uint64(0xafb0d39a00000000),
  3310. 228: uint64(0x76420e1a00000000),
  3311. 229: uint64(0x85d2fc2c00000000),
  3312. 230: uint64(0x9063eb7700000000),
  3313. 231: uint64(0x63f3194100000000),
  3314. 232: uint64(0x638021ad00000000),
  3315. 233: uint64(0x9010d39b00000000),
  3316. 234: uint64(0x85a1c4c000000000),
  3317. 235: uint64(0x763136f600000000),
  3318. 236: uint64(0xafc3eb7600000000),
  3319. 237: uint64(0x5c53194000000000),
  3320. 238: uint64(0x49e20e1b00000000),
  3321. 239: uint64(0xba72fc2d00000000),
  3322. 240: uint64(0x08020f1800000000),
  3323. 241: uint64(0xfb92fd2e00000000),
  3324. 242: uint64(0xee23ea7500000000),
  3325. 243: uint64(0x1db3184300000000),
  3326. 244: uint64(0xc441c5c300000000),
  3327. 245: uint64(0x37d137f500000000),
  3328. 246: uint64(0x226020ae00000000),
  3329. 247: uint64(0xd1f0d29800000000),
  3330. 248: uint64(0xd183ea7400000000),
  3331. 249: uint64(0x2213184200000000),
  3332. 250: uint64(0x37a20f1900000000),
  3333. 251: uint64(0xc432fd2f00000000),
  3334. 252: uint64(0x1dc020af00000000),
  3335. 253: uint64(0xee50d29900000000),
  3336. 254: uint64(0xfbe1c5c200000000),
  3337. 255: uint64(0x087137f400000000),
  3338. },
  3339. 1: {
  3340. 1: uint64(0x3651822400000000),
  3341. 2: uint64(0x6ca2044900000000),
  3342. 3: uint64(0x5af3866d00000000),
  3343. 4: uint64(0xd844099200000000),
  3344. 5: uint64(0xee158bb600000000),
  3345. 6: uint64(0xb4e60ddb00000000),
  3346. 7: uint64(0x82b78fff00000000),
  3347. 8: uint64(0xf18f63ff00000000),
  3348. 9: uint64(0xc7dee1db00000000),
  3349. 10: uint64(0x9d2d67b600000000),
  3350. 11: uint64(0xab7ce59200000000),
  3351. 12: uint64(0x29cb6a6d00000000),
  3352. 13: uint64(0x1f9ae84900000000),
  3353. 14: uint64(0x45696e2400000000),
  3354. 15: uint64(0x7338ec0000000000),
  3355. 16: uint64(0xa319b62500000000),
  3356. 17: uint64(0x9548340100000000),
  3357. 18: uint64(0xcfbbb26c00000000),
  3358. 19: uint64(0xf9ea304800000000),
  3359. 20: uint64(0x7b5dbfb700000000),
  3360. 21: uint64(0x4d0c3d9300000000),
  3361. 22: uint64(0x17ffbbfe00000000),
  3362. 23: uint64(0x21ae39da00000000),
  3363. 24: uint64(0x5296d5da00000000),
  3364. 25: uint64(0x64c757fe00000000),
  3365. 26: uint64(0x3e34d19300000000),
  3366. 27: uint64(0x086553b700000000),
  3367. 28: uint64(0x8ad2dc4800000000),
  3368. 29: uint64(0xbc835e6c00000000),
  3369. 30: uint64(0xe670d80100000000),
  3370. 31: uint64(0xd0215a2500000000),
  3371. 32: uint64(0x46336c4b00000000),
  3372. 33: uint64(0x7062ee6f00000000),
  3373. 34: uint64(0x2a91680200000000),
  3374. 35: uint64(0x1cc0ea2600000000),
  3375. 36: uint64(0x9e7765d900000000),
  3376. 37: uint64(0xa826e7fd00000000),
  3377. 38: uint64(0xf2d5619000000000),
  3378. 39: uint64(0xc484e3b400000000),
  3379. 40: uint64(0xb7bc0fb400000000),
  3380. 41: uint64(0x81ed8d9000000000),
  3381. 42: uint64(0xdb1e0bfd00000000),
  3382. 43: uint64(0xed4f89d900000000),
  3383. 44: uint64(0x6ff8062600000000),
  3384. 45: uint64(0x59a9840200000000),
  3385. 46: uint64(0x035a026f00000000),
  3386. 47: uint64(0x350b804b00000000),
  3387. 48: uint64(0xe52ada6e00000000),
  3388. 49: uint64(0xd37b584a00000000),
  3389. 50: uint64(0x8988de2700000000),
  3390. 51: uint64(0xbfd95c0300000000),
  3391. 52: uint64(0x3d6ed3fc00000000),
  3392. 53: uint64(0x0b3f51d800000000),
  3393. 54: uint64(0x51ccd7b500000000),
  3394. 55: uint64(0x679d559100000000),
  3395. 56: uint64(0x14a5b99100000000),
  3396. 57: uint64(0x22f43bb500000000),
  3397. 58: uint64(0x7807bdd800000000),
  3398. 59: uint64(0x4e563ffc00000000),
  3399. 60: uint64(0xcce1b00300000000),
  3400. 61: uint64(0xfab0322700000000),
  3401. 62: uint64(0xa043b44a00000000),
  3402. 63: uint64(0x9612366e00000000),
  3403. 64: uint64(0x8c66d89600000000),
  3404. 65: uint64(0xba375ab200000000),
  3405. 66: uint64(0xe0c4dcdf00000000),
  3406. 67: uint64(0xd6955efb00000000),
  3407. 68: uint64(0x5422d10400000000),
  3408. 69: uint64(0x6273532000000000),
  3409. 70: uint64(0x3880d54d00000000),
  3410. 71: uint64(0x0ed1576900000000),
  3411. 72: uint64(0x7de9bb6900000000),
  3412. 73: uint64(0x4bb8394d00000000),
  3413. 74: uint64(0x114bbf2000000000),
  3414. 75: uint64(0x271a3d0400000000),
  3415. 76: uint64(0xa5adb2fb00000000),
  3416. 77: uint64(0x93fc30df00000000),
  3417. 78: uint64(0xc90fb6b200000000),
  3418. 79: uint64(0xff5e349600000000),
  3419. 80: uint64(0x2f7f6eb300000000),
  3420. 81: uint64(0x192eec9700000000),
  3421. 82: uint64(0x43dd6afa00000000),
  3422. 83: uint64(0x758ce8de00000000),
  3423. 84: uint64(0xf73b672100000000),
  3424. 85: uint64(0xc16ae50500000000),
  3425. 86: uint64(0x9b99636800000000),
  3426. 87: uint64(0xadc8e14c00000000),
  3427. 88: uint64(0xdef00d4c00000000),
  3428. 89: uint64(0xe8a18f6800000000),
  3429. 90: uint64(0xb252090500000000),
  3430. 91: uint64(0x84038b2100000000),
  3431. 92: uint64(0x06b404de00000000),
  3432. 93: uint64(0x30e586fa00000000),
  3433. 94: uint64(0x6a16009700000000),
  3434. 95: uint64(0x5c4782b300000000),
  3435. 96: uint64(0xca55b4dd00000000),
  3436. 97: uint64(0xfc0436f900000000),
  3437. 98: uint64(0xa6f7b09400000000),
  3438. 99: uint64(0x90a632b000000000),
  3439. 100: uint64(0x1211bd4f00000000),
  3440. 101: uint64(0x24403f6b00000000),
  3441. 102: uint64(0x7eb3b90600000000),
  3442. 103: uint64(0x48e23b2200000000),
  3443. 104: uint64(0x3bdad72200000000),
  3444. 105: uint64(0x0d8b550600000000),
  3445. 106: uint64(0x5778d36b00000000),
  3446. 107: uint64(0x6129514f00000000),
  3447. 108: uint64(0xe39edeb000000000),
  3448. 109: uint64(0xd5cf5c9400000000),
  3449. 110: uint64(0x8f3cdaf900000000),
  3450. 111: uint64(0xb96d58dd00000000),
  3451. 112: uint64(0x694c02f800000000),
  3452. 113: uint64(0x5f1d80dc00000000),
  3453. 114: uint64(0x05ee06b100000000),
  3454. 115: uint64(0x33bf849500000000),
  3455. 116: uint64(0xb1080b6a00000000),
  3456. 117: uint64(0x8759894e00000000),
  3457. 118: uint64(0xddaa0f2300000000),
  3458. 119: uint64(0xebfb8d0700000000),
  3459. 120: uint64(0x98c3610700000000),
  3460. 121: uint64(0xae92e32300000000),
  3461. 122: uint64(0xf461654e00000000),
  3462. 123: uint64(0xc230e76a00000000),
  3463. 124: uint64(0x4087689500000000),
  3464. 125: uint64(0x76d6eab100000000),
  3465. 126: uint64(0x2c256cdc00000000),
  3466. 127: uint64(0x1a74eef800000000),
  3467. 128: uint64(0x59cbc1f600000000),
  3468. 129: uint64(0x6f9a43d200000000),
  3469. 130: uint64(0x3569c5bf00000000),
  3470. 131: uint64(0x0338479b00000000),
  3471. 132: uint64(0x818fc86400000000),
  3472. 133: uint64(0xb7de4a4000000000),
  3473. 134: uint64(0xed2dcc2d00000000),
  3474. 135: uint64(0xdb7c4e0900000000),
  3475. 136: uint64(0xa844a20900000000),
  3476. 137: uint64(0x9e15202d00000000),
  3477. 138: uint64(0xc4e6a64000000000),
  3478. 139: uint64(0xf2b7246400000000),
  3479. 140: uint64(0x7000ab9b00000000),
  3480. 141: uint64(0x465129bf00000000),
  3481. 142: uint64(0x1ca2afd200000000),
  3482. 143: uint64(0x2af32df600000000),
  3483. 144: uint64(0xfad277d300000000),
  3484. 145: uint64(0xcc83f5f700000000),
  3485. 146: uint64(0x9670739a00000000),
  3486. 147: uint64(0xa021f1be00000000),
  3487. 148: uint64(0x22967e4100000000),
  3488. 149: uint64(0x14c7fc6500000000),
  3489. 150: uint64(0x4e347a0800000000),
  3490. 151: uint64(0x7865f82c00000000),
  3491. 152: uint64(0x0b5d142c00000000),
  3492. 153: uint64(0x3d0c960800000000),
  3493. 154: uint64(0x67ff106500000000),
  3494. 155: uint64(0x51ae924100000000),
  3495. 156: uint64(0xd3191dbe00000000),
  3496. 157: uint64(0xe5489f9a00000000),
  3497. 158: uint64(0xbfbb19f700000000),
  3498. 159: uint64(0x89ea9bd300000000),
  3499. 160: uint64(0x1ff8adbd00000000),
  3500. 161: uint64(0x29a92f9900000000),
  3501. 162: uint64(0x735aa9f400000000),
  3502. 163: uint64(0x450b2bd000000000),
  3503. 164: uint64(0xc7bca42f00000000),
  3504. 165: uint64(0xf1ed260b00000000),
  3505. 166: uint64(0xab1ea06600000000),
  3506. 167: uint64(0x9d4f224200000000),
  3507. 168: uint64(0xee77ce4200000000),
  3508. 169: uint64(0xd8264c6600000000),
  3509. 170: uint64(0x82d5ca0b00000000),
  3510. 171: uint64(0xb484482f00000000),
  3511. 172: uint64(0x3633c7d000000000),
  3512. 173: uint64(0x006245f400000000),
  3513. 174: uint64(0x5a91c39900000000),
  3514. 175: uint64(0x6cc041bd00000000),
  3515. 176: uint64(0xbce11b9800000000),
  3516. 177: uint64(0x8ab099bc00000000),
  3517. 178: uint64(0xd0431fd100000000),
  3518. 179: uint64(0xe6129df500000000),
  3519. 180: uint64(0x64a5120a00000000),
  3520. 181: uint64(0x52f4902e00000000),
  3521. 182: uint64(0x0807164300000000),
  3522. 183: uint64(0x3e56946700000000),
  3523. 184: uint64(0x4d6e786700000000),
  3524. 185: uint64(0x7b3ffa4300000000),
  3525. 186: uint64(0x21cc7c2e00000000),
  3526. 187: uint64(0x179dfe0a00000000),
  3527. 188: uint64(0x952a71f500000000),
  3528. 189: uint64(0xa37bf3d100000000),
  3529. 190: uint64(0xf98875bc00000000),
  3530. 191: uint64(0xcfd9f79800000000),
  3531. 192: uint64(0xd5ad196000000000),
  3532. 193: uint64(0xe3fc9b4400000000),
  3533. 194: uint64(0xb90f1d2900000000),
  3534. 195: uint64(0x8f5e9f0d00000000),
  3535. 196: uint64(0x0de910f200000000),
  3536. 197: uint64(0x3bb892d600000000),
  3537. 198: uint64(0x614b14bb00000000),
  3538. 199: uint64(0x571a969f00000000),
  3539. 200: uint64(0x24227a9f00000000),
  3540. 201: uint64(0x1273f8bb00000000),
  3541. 202: uint64(0x48807ed600000000),
  3542. 203: uint64(0x7ed1fcf200000000),
  3543. 204: uint64(0xfc66730d00000000),
  3544. 205: uint64(0xca37f12900000000),
  3545. 206: uint64(0x90c4774400000000),
  3546. 207: uint64(0xa695f56000000000),
  3547. 208: uint64(0x76b4af4500000000),
  3548. 209: uint64(0x40e52d6100000000),
  3549. 210: uint64(0x1a16ab0c00000000),
  3550. 211: uint64(0x2c47292800000000),
  3551. 212: uint64(0xaef0a6d700000000),
  3552. 213: uint64(0x98a124f300000000),
  3553. 214: uint64(0xc252a29e00000000),
  3554. 215: uint64(0xf40320ba00000000),
  3555. 216: uint64(0x873bccba00000000),
  3556. 217: uint64(0xb16a4e9e00000000),
  3557. 218: uint64(0xeb99c8f300000000),
  3558. 219: uint64(0xddc84ad700000000),
  3559. 220: uint64(0x5f7fc52800000000),
  3560. 221: uint64(0x692e470c00000000),
  3561. 222: uint64(0x33ddc16100000000),
  3562. 223: uint64(0x058c434500000000),
  3563. 224: uint64(0x939e752b00000000),
  3564. 225: uint64(0xa5cff70f00000000),
  3565. 226: uint64(0xff3c716200000000),
  3566. 227: uint64(0xc96df34600000000),
  3567. 228: uint64(0x4bda7cb900000000),
  3568. 229: uint64(0x7d8bfe9d00000000),
  3569. 230: uint64(0x277878f000000000),
  3570. 231: uint64(0x1129fad400000000),
  3571. 232: uint64(0x621116d400000000),
  3572. 233: uint64(0x544094f000000000),
  3573. 234: uint64(0x0eb3129d00000000),
  3574. 235: uint64(0x38e290b900000000),
  3575. 236: uint64(0xba551f4600000000),
  3576. 237: uint64(0x8c049d6200000000),
  3577. 238: uint64(0xd6f71b0f00000000),
  3578. 239: uint64(0xe0a6992b00000000),
  3579. 240: uint64(0x3087c30e00000000),
  3580. 241: uint64(0x06d6412a00000000),
  3581. 242: uint64(0x5c25c74700000000),
  3582. 243: uint64(0x6a74456300000000),
  3583. 244: uint64(0xe8c3ca9c00000000),
  3584. 245: uint64(0xde9248b800000000),
  3585. 246: uint64(0x8461ced500000000),
  3586. 247: uint64(0xb2304cf100000000),
  3587. 248: uint64(0xc108a0f100000000),
  3588. 249: uint64(0xf75922d500000000),
  3589. 250: uint64(0xadaaa4b800000000),
  3590. 251: uint64(0x9bfb269c00000000),
  3591. 252: uint64(0x194ca96300000000),
  3592. 253: uint64(0x2f1d2b4700000000),
  3593. 254: uint64(0x75eead2a00000000),
  3594. 255: uint64(0x43bf2f0e00000000),
  3595. },
  3596. 2: {
  3597. 1: uint64(0xc8179ecf00000000),
  3598. 2: uint64(0xd1294d4400000000),
  3599. 3: uint64(0x193ed38b00000000),
  3600. 4: uint64(0xa2539a8800000000),
  3601. 5: uint64(0x6a44044700000000),
  3602. 6: uint64(0x737ad7cc00000000),
  3603. 7: uint64(0xbb6d490300000000),
  3604. 8: uint64(0x05a145ca00000000),
  3605. 9: uint64(0xcdb6db0500000000),
  3606. 10: uint64(0xd488088e00000000),
  3607. 11: uint64(0x1c9f964100000000),
  3608. 12: uint64(0xa7f2df4200000000),
  3609. 13: uint64(0x6fe5418d00000000),
  3610. 14: uint64(0x76db920600000000),
  3611. 15: uint64(0xbecc0cc900000000),
  3612. 16: uint64(0x4b44fa4f00000000),
  3613. 17: uint64(0x8353648000000000),
  3614. 18: uint64(0x9a6db70b00000000),
  3615. 19: uint64(0x527a29c400000000),
  3616. 20: uint64(0xe91760c700000000),
  3617. 21: uint64(0x2100fe0800000000),
  3618. 22: uint64(0x383e2d8300000000),
  3619. 23: uint64(0xf029b34c00000000),
  3620. 24: uint64(0x4ee5bf8500000000),
  3621. 25: uint64(0x86f2214a00000000),
  3622. 26: uint64(0x9fccf2c100000000),
  3623. 27: uint64(0x57db6c0e00000000),
  3624. 28: uint64(0xecb6250d00000000),
  3625. 29: uint64(0x24a1bbc200000000),
  3626. 30: uint64(0x3d9f684900000000),
  3627. 31: uint64(0xf588f68600000000),
  3628. 32: uint64(0x9688f49f00000000),
  3629. 33: uint64(0x5e9f6a5000000000),
  3630. 34: uint64(0x47a1b9db00000000),
  3631. 35: uint64(0x8fb6271400000000),
  3632. 36: uint64(0x34db6e1700000000),
  3633. 37: uint64(0xfcccf0d800000000),
  3634. 38: uint64(0xe5f2235300000000),
  3635. 39: uint64(0x2de5bd9c00000000),
  3636. 40: uint64(0x9329b15500000000),
  3637. 41: uint64(0x5b3e2f9a00000000),
  3638. 42: uint64(0x4200fc1100000000),
  3639. 43: uint64(0x8a1762de00000000),
  3640. 44: uint64(0x317a2bdd00000000),
  3641. 45: uint64(0xf96db51200000000),
  3642. 46: uint64(0xe053669900000000),
  3643. 47: uint64(0x2844f85600000000),
  3644. 48: uint64(0xddcc0ed000000000),
  3645. 49: uint64(0x15db901f00000000),
  3646. 50: uint64(0x0ce5439400000000),
  3647. 51: uint64(0xc4f2dd5b00000000),
  3648. 52: uint64(0x7f9f945800000000),
  3649. 53: uint64(0xb7880a9700000000),
  3650. 54: uint64(0xaeb6d91c00000000),
  3651. 55: uint64(0x66a147d300000000),
  3652. 56: uint64(0xd86d4b1a00000000),
  3653. 57: uint64(0x107ad5d500000000),
  3654. 58: uint64(0x0944065e00000000),
  3655. 59: uint64(0xc153989100000000),
  3656. 60: uint64(0x7a3ed19200000000),
  3657. 61: uint64(0xb2294f5d00000000),
  3658. 62: uint64(0xab179cd600000000),
  3659. 63: uint64(0x6300021900000000),
  3660. 64: uint64(0x6d1798e400000000),
  3661. 65: uint64(0xa500062b00000000),
  3662. 66: uint64(0xbc3ed5a000000000),
  3663. 67: uint64(0x74294b6f00000000),
  3664. 68: uint64(0xcf44026c00000000),
  3665. 69: uint64(0x07539ca300000000),
  3666. 70: uint64(0x1e6d4f2800000000),
  3667. 71: uint64(0xd67ad1e700000000),
  3668. 72: uint64(0x68b6dd2e00000000),
  3669. 73: uint64(0xa0a143e100000000),
  3670. 74: uint64(0xb99f906a00000000),
  3671. 75: uint64(0x71880ea500000000),
  3672. 76: uint64(0xcae547a600000000),
  3673. 77: uint64(0x02f2d96900000000),
  3674. 78: uint64(0x1bcc0ae200000000),
  3675. 79: uint64(0xd3db942d00000000),
  3676. 80: uint64(0x265362ab00000000),
  3677. 81: uint64(0xee44fc6400000000),
  3678. 82: uint64(0xf77a2fef00000000),
  3679. 83: uint64(0x3f6db12000000000),
  3680. 84: uint64(0x8400f82300000000),
  3681. 85: uint64(0x4c1766ec00000000),
  3682. 86: uint64(0x5529b56700000000),
  3683. 87: uint64(0x9d3e2ba800000000),
  3684. 88: uint64(0x23f2276100000000),
  3685. 89: uint64(0xebe5b9ae00000000),
  3686. 90: uint64(0xf2db6a2500000000),
  3687. 91: uint64(0x3accf4ea00000000),
  3688. 92: uint64(0x81a1bde900000000),
  3689. 93: uint64(0x49b6232600000000),
  3690. 94: uint64(0x5088f0ad00000000),
  3691. 95: uint64(0x989f6e6200000000),
  3692. 96: uint64(0xfb9f6c7b00000000),
  3693. 97: uint64(0x3388f2b400000000),
  3694. 98: uint64(0x2ab6213f00000000),
  3695. 99: uint64(0xe2a1bff000000000),
  3696. 100: uint64(0x59ccf6f300000000),
  3697. 101: uint64(0x91db683c00000000),
  3698. 102: uint64(0x88e5bbb700000000),
  3699. 103: uint64(0x40f2257800000000),
  3700. 104: uint64(0xfe3e29b100000000),
  3701. 105: uint64(0x3629b77e00000000),
  3702. 106: uint64(0x2f1764f500000000),
  3703. 107: uint64(0xe700fa3a00000000),
  3704. 108: uint64(0x5c6db33900000000),
  3705. 109: uint64(0x947a2df600000000),
  3706. 110: uint64(0x8d44fe7d00000000),
  3707. 111: uint64(0x455360b200000000),
  3708. 112: uint64(0xb0db963400000000),
  3709. 113: uint64(0x78cc08fb00000000),
  3710. 114: uint64(0x61f2db7000000000),
  3711. 115: uint64(0xa9e545bf00000000),
  3712. 116: uint64(0x12880cbc00000000),
  3713. 117: uint64(0xda9f927300000000),
  3714. 118: uint64(0xc3a141f800000000),
  3715. 119: uint64(0x0bb6df3700000000),
  3716. 120: uint64(0xb57ad3fe00000000),
  3717. 121: uint64(0x7d6d4d3100000000),
  3718. 122: uint64(0x64539eba00000000),
  3719. 123: uint64(0xac44007500000000),
  3720. 124: uint64(0x1729497600000000),
  3721. 125: uint64(0xdf3ed7b900000000),
  3722. 126: uint64(0xc600043200000000),
  3723. 127: uint64(0x0e179afd00000000),
  3724. 128: uint64(0x9b28411200000000),
  3725. 129: uint64(0x533fdfdd00000000),
  3726. 130: uint64(0x4a010c5600000000),
  3727. 131: uint64(0x8216929900000000),
  3728. 132: uint64(0x397bdb9a00000000),
  3729. 133: uint64(0xf16c455500000000),
  3730. 134: uint64(0xe85296de00000000),
  3731. 135: uint64(0x2045081100000000),
  3732. 136: uint64(0x9e8904d800000000),
  3733. 137: uint64(0x569e9a1700000000),
  3734. 138: uint64(0x4fa0499c00000000),
  3735. 139: uint64(0x87b7d75300000000),
  3736. 140: uint64(0x3cda9e5000000000),
  3737. 141: uint64(0xf4cd009f00000000),
  3738. 142: uint64(0xedf3d31400000000),
  3739. 143: uint64(0x25e44ddb00000000),
  3740. 144: uint64(0xd06cbb5d00000000),
  3741. 145: uint64(0x187b259200000000),
  3742. 146: uint64(0x0145f61900000000),
  3743. 147: uint64(0xc95268d600000000),
  3744. 148: uint64(0x723f21d500000000),
  3745. 149: uint64(0xba28bf1a00000000),
  3746. 150: uint64(0xa3166c9100000000),
  3747. 151: uint64(0x6b01f25e00000000),
  3748. 152: uint64(0xd5cdfe9700000000),
  3749. 153: uint64(0x1dda605800000000),
  3750. 154: uint64(0x04e4b3d300000000),
  3751. 155: uint64(0xccf32d1c00000000),
  3752. 156: uint64(0x779e641f00000000),
  3753. 157: uint64(0xbf89fad000000000),
  3754. 158: uint64(0xa6b7295b00000000),
  3755. 159: uint64(0x6ea0b79400000000),
  3756. 160: uint64(0x0da0b58d00000000),
  3757. 161: uint64(0xc5b72b4200000000),
  3758. 162: uint64(0xdc89f8c900000000),
  3759. 163: uint64(0x149e660600000000),
  3760. 164: uint64(0xaff32f0500000000),
  3761. 165: uint64(0x67e4b1ca00000000),
  3762. 166: uint64(0x7eda624100000000),
  3763. 167: uint64(0xb6cdfc8e00000000),
  3764. 168: uint64(0x0801f04700000000),
  3765. 169: uint64(0xc0166e8800000000),
  3766. 170: uint64(0xd928bd0300000000),
  3767. 171: uint64(0x113f23cc00000000),
  3768. 172: uint64(0xaa526acf00000000),
  3769. 173: uint64(0x6245f40000000000),
  3770. 174: uint64(0x7b7b278b00000000),
  3771. 175: uint64(0xb36cb94400000000),
  3772. 176: uint64(0x46e44fc200000000),
  3773. 177: uint64(0x8ef3d10d00000000),
  3774. 178: uint64(0x97cd028600000000),
  3775. 179: uint64(0x5fda9c4900000000),
  3776. 180: uint64(0xe4b7d54a00000000),
  3777. 181: uint64(0x2ca04b8500000000),
  3778. 182: uint64(0x359e980e00000000),
  3779. 183: uint64(0xfd8906c100000000),
  3780. 184: uint64(0x43450a0800000000),
  3781. 185: uint64(0x8b5294c700000000),
  3782. 186: uint64(0x926c474c00000000),
  3783. 187: uint64(0x5a7bd98300000000),
  3784. 188: uint64(0xe116908000000000),
  3785. 189: uint64(0x29010e4f00000000),
  3786. 190: uint64(0x303fddc400000000),
  3787. 191: uint64(0xf828430b00000000),
  3788. 192: uint64(0xf63fd9f600000000),
  3789. 193: uint64(0x3e28473900000000),
  3790. 194: uint64(0x271694b200000000),
  3791. 195: uint64(0xef010a7d00000000),
  3792. 196: uint64(0x546c437e00000000),
  3793. 197: uint64(0x9c7bddb100000000),
  3794. 198: uint64(0x85450e3a00000000),
  3795. 199: uint64(0x4d5290f500000000),
  3796. 200: uint64(0xf39e9c3c00000000),
  3797. 201: uint64(0x3b8902f300000000),
  3798. 202: uint64(0x22b7d17800000000),
  3799. 203: uint64(0xeaa04fb700000000),
  3800. 204: uint64(0x51cd06b400000000),
  3801. 205: uint64(0x99da987b00000000),
  3802. 206: uint64(0x80e44bf000000000),
  3803. 207: uint64(0x48f3d53f00000000),
  3804. 208: uint64(0xbd7b23b900000000),
  3805. 209: uint64(0x756cbd7600000000),
  3806. 210: uint64(0x6c526efd00000000),
  3807. 211: uint64(0xa445f03200000000),
  3808. 212: uint64(0x1f28b93100000000),
  3809. 213: uint64(0xd73f27fe00000000),
  3810. 214: uint64(0xce01f47500000000),
  3811. 215: uint64(0x06166aba00000000),
  3812. 216: uint64(0xb8da667300000000),
  3813. 217: uint64(0x70cdf8bc00000000),
  3814. 218: uint64(0x69f32b3700000000),
  3815. 219: uint64(0xa1e4b5f800000000),
  3816. 220: uint64(0x1a89fcfb00000000),
  3817. 221: uint64(0xd29e623400000000),
  3818. 222: uint64(0xcba0b1bf00000000),
  3819. 223: uint64(0x03b72f7000000000),
  3820. 224: uint64(0x60b72d6900000000),
  3821. 225: uint64(0xa8a0b3a600000000),
  3822. 226: uint64(0xb19e602d00000000),
  3823. 227: uint64(0x7989fee200000000),
  3824. 228: uint64(0xc2e4b7e100000000),
  3825. 229: uint64(0x0af3292e00000000),
  3826. 230: uint64(0x13cdfaa500000000),
  3827. 231: uint64(0xdbda646a00000000),
  3828. 232: uint64(0x651668a300000000),
  3829. 233: uint64(0xad01f66c00000000),
  3830. 234: uint64(0xb43f25e700000000),
  3831. 235: uint64(0x7c28bb2800000000),
  3832. 236: uint64(0xc745f22b00000000),
  3833. 237: uint64(0x0f526ce400000000),
  3834. 238: uint64(0x166cbf6f00000000),
  3835. 239: uint64(0xde7b21a000000000),
  3836. 240: uint64(0x2bf3d72600000000),
  3837. 241: uint64(0xe3e449e900000000),
  3838. 242: uint64(0xfada9a6200000000),
  3839. 243: uint64(0x32cd04ad00000000),
  3840. 244: uint64(0x89a04dae00000000),
  3841. 245: uint64(0x41b7d36100000000),
  3842. 246: uint64(0x588900ea00000000),
  3843. 247: uint64(0x909e9e2500000000),
  3844. 248: uint64(0x2e5292ec00000000),
  3845. 249: uint64(0xe6450c2300000000),
  3846. 250: uint64(0xff7bdfa800000000),
  3847. 251: uint64(0x376c416700000000),
  3848. 252: uint64(0x8c01086400000000),
  3849. 253: uint64(0x441696ab00000000),
  3850. 254: uint64(0x5d28452000000000),
  3851. 255: uint64(0x953fdbef00000000),
  3852. },
  3853. 3: {
  3854. 1: uint64(0x95d4709500000000),
  3855. 2: uint64(0x6baf90f100000000),
  3856. 3: uint64(0xfe7be06400000000),
  3857. 4: uint64(0x9758503800000000),
  3858. 5: uint64(0x028c20ad00000000),
  3859. 6: uint64(0xfcf7c0c900000000),
  3860. 7: uint64(0x6923b05c00000000),
  3861. 8: uint64(0x2eb1a07000000000),
  3862. 9: uint64(0xbb65d0e500000000),
  3863. 10: uint64(0x451e308100000000),
  3864. 11: uint64(0xd0ca401400000000),
  3865. 12: uint64(0xb9e9f04800000000),
  3866. 13: uint64(0x2c3d80dd00000000),
  3867. 14: uint64(0xd24660b900000000),
  3868. 15: uint64(0x4792102c00000000),
  3869. 16: uint64(0x5c6241e100000000),
  3870. 17: uint64(0xc9b6317400000000),
  3871. 18: uint64(0x37cdd11000000000),
  3872. 19: uint64(0xa219a18500000000),
  3873. 20: uint64(0xcb3a11d900000000),
  3874. 21: uint64(0x5eee614c00000000),
  3875. 22: uint64(0xa095812800000000),
  3876. 23: uint64(0x3541f1bd00000000),
  3877. 24: uint64(0x72d3e19100000000),
  3878. 25: uint64(0xe707910400000000),
  3879. 26: uint64(0x197c716000000000),
  3880. 27: uint64(0x8ca801f500000000),
  3881. 28: uint64(0xe58bb1a900000000),
  3882. 29: uint64(0x705fc13c00000000),
  3883. 30: uint64(0x8e24215800000000),
  3884. 31: uint64(0x1bf051cd00000000),
  3885. 32: uint64(0xf9c2f31900000000),
  3886. 33: uint64(0x6c16838c00000000),
  3887. 34: uint64(0x926d63e800000000),
  3888. 35: uint64(0x07b9137d00000000),
  3889. 36: uint64(0x6e9aa32100000000),
  3890. 37: uint64(0xfb4ed3b400000000),
  3891. 38: uint64(0x053533d000000000),
  3892. 39: uint64(0x90e1434500000000),
  3893. 40: uint64(0xd773536900000000),
  3894. 41: uint64(0x42a723fc00000000),
  3895. 42: uint64(0xbcdcc39800000000),
  3896. 43: uint64(0x2908b30d00000000),
  3897. 44: uint64(0x402b035100000000),
  3898. 45: uint64(0xd5ff73c400000000),
  3899. 46: uint64(0x2b8493a000000000),
  3900. 47: uint64(0xbe50e33500000000),
  3901. 48: uint64(0xa5a0b2f800000000),
  3902. 49: uint64(0x3074c26d00000000),
  3903. 50: uint64(0xce0f220900000000),
  3904. 51: uint64(0x5bdb529c00000000),
  3905. 52: uint64(0x32f8e2c000000000),
  3906. 53: uint64(0xa72c925500000000),
  3907. 54: uint64(0x5957723100000000),
  3908. 55: uint64(0xcc8302a400000000),
  3909. 56: uint64(0x8b11128800000000),
  3910. 57: uint64(0x1ec5621d00000000),
  3911. 58: uint64(0xe0be827900000000),
  3912. 59: uint64(0x756af2ec00000000),
  3913. 60: uint64(0x1c4942b000000000),
  3914. 61: uint64(0x899d322500000000),
  3915. 62: uint64(0x77e6d24100000000),
  3916. 63: uint64(0xe232a2d400000000),
  3917. 64: uint64(0xf285e73300000000),
  3918. 65: uint64(0x675197a600000000),
  3919. 66: uint64(0x992a77c200000000),
  3920. 67: uint64(0x0cfe075700000000),
  3921. 68: uint64(0x65ddb70b00000000),
  3922. 69: uint64(0xf009c79e00000000),
  3923. 70: uint64(0x0e7227fa00000000),
  3924. 71: uint64(0x9ba6576f00000000),
  3925. 72: uint64(0xdc34474300000000),
  3926. 73: uint64(0x49e037d600000000),
  3927. 74: uint64(0xb79bd7b200000000),
  3928. 75: uint64(0x224fa72700000000),
  3929. 76: uint64(0x4b6c177b00000000),
  3930. 77: uint64(0xdeb867ee00000000),
  3931. 78: uint64(0x20c3878a00000000),
  3932. 79: uint64(0xb517f71f00000000),
  3933. 80: uint64(0xaee7a6d200000000),
  3934. 81: uint64(0x3b33d64700000000),
  3935. 82: uint64(0xc548362300000000),
  3936. 83: uint64(0x509c46b600000000),
  3937. 84: uint64(0x39bff6ea00000000),
  3938. 85: uint64(0xac6b867f00000000),
  3939. 86: uint64(0x5210661b00000000),
  3940. 87: uint64(0xc7c4168e00000000),
  3941. 88: uint64(0x805606a200000000),
  3942. 89: uint64(0x1582763700000000),
  3943. 90: uint64(0xebf9965300000000),
  3944. 91: uint64(0x7e2de6c600000000),
  3945. 92: uint64(0x170e569a00000000),
  3946. 93: uint64(0x82da260f00000000),
  3947. 94: uint64(0x7ca1c66b00000000),
  3948. 95: uint64(0xe975b6fe00000000),
  3949. 96: uint64(0x0b47142a00000000),
  3950. 97: uint64(0x9e9364bf00000000),
  3951. 98: uint64(0x60e884db00000000),
  3952. 99: uint64(0xf53cf44e00000000),
  3953. 100: uint64(0x9c1f441200000000),
  3954. 101: uint64(0x09cb348700000000),
  3955. 102: uint64(0xf7b0d4e300000000),
  3956. 103: uint64(0x6264a47600000000),
  3957. 104: uint64(0x25f6b45a00000000),
  3958. 105: uint64(0xb022c4cf00000000),
  3959. 106: uint64(0x4e5924ab00000000),
  3960. 107: uint64(0xdb8d543e00000000),
  3961. 108: uint64(0xb2aee46200000000),
  3962. 109: uint64(0x277a94f700000000),
  3963. 110: uint64(0xd901749300000000),
  3964. 111: uint64(0x4cd5040600000000),
  3965. 112: uint64(0x572555cb00000000),
  3966. 113: uint64(0xc2f1255e00000000),
  3967. 114: uint64(0x3c8ac53a00000000),
  3968. 115: uint64(0xa95eb5af00000000),
  3969. 116: uint64(0xc07d05f300000000),
  3970. 117: uint64(0x55a9756600000000),
  3971. 118: uint64(0xabd2950200000000),
  3972. 119: uint64(0x3e06e59700000000),
  3973. 120: uint64(0x7994f5bb00000000),
  3974. 121: uint64(0xec40852e00000000),
  3975. 122: uint64(0x123b654a00000000),
  3976. 123: uint64(0x87ef15df00000000),
  3977. 124: uint64(0xeecca58300000000),
  3978. 125: uint64(0x7b18d51600000000),
  3979. 126: uint64(0x8563357200000000),
  3980. 127: uint64(0x10b745e700000000),
  3981. 128: uint64(0xe40bcf6700000000),
  3982. 129: uint64(0x71dfbff200000000),
  3983. 130: uint64(0x8fa45f9600000000),
  3984. 131: uint64(0x1a702f0300000000),
  3985. 132: uint64(0x73539f5f00000000),
  3986. 133: uint64(0xe687efca00000000),
  3987. 134: uint64(0x18fc0fae00000000),
  3988. 135: uint64(0x8d287f3b00000000),
  3989. 136: uint64(0xcaba6f1700000000),
  3990. 137: uint64(0x5f6e1f8200000000),
  3991. 138: uint64(0xa115ffe600000000),
  3992. 139: uint64(0x34c18f7300000000),
  3993. 140: uint64(0x5de23f2f00000000),
  3994. 141: uint64(0xc8364fba00000000),
  3995. 142: uint64(0x364dafde00000000),
  3996. 143: uint64(0xa399df4b00000000),
  3997. 144: uint64(0xb8698e8600000000),
  3998. 145: uint64(0x2dbdfe1300000000),
  3999. 146: uint64(0xd3c61e7700000000),
  4000. 147: uint64(0x46126ee200000000),
  4001. 148: uint64(0x2f31debe00000000),
  4002. 149: uint64(0xbae5ae2b00000000),
  4003. 150: uint64(0x449e4e4f00000000),
  4004. 151: uint64(0xd14a3eda00000000),
  4005. 152: uint64(0x96d82ef600000000),
  4006. 153: uint64(0x030c5e6300000000),
  4007. 154: uint64(0xfd77be0700000000),
  4008. 155: uint64(0x68a3ce9200000000),
  4009. 156: uint64(0x01807ece00000000),
  4010. 157: uint64(0x94540e5b00000000),
  4011. 158: uint64(0x6a2fee3f00000000),
  4012. 159: uint64(0xfffb9eaa00000000),
  4013. 160: uint64(0x1dc93c7e00000000),
  4014. 161: uint64(0x881d4ceb00000000),
  4015. 162: uint64(0x7666ac8f00000000),
  4016. 163: uint64(0xe3b2dc1a00000000),
  4017. 164: uint64(0x8a916c4600000000),
  4018. 165: uint64(0x1f451cd300000000),
  4019. 166: uint64(0xe13efcb700000000),
  4020. 167: uint64(0x74ea8c2200000000),
  4021. 168: uint64(0x33789c0e00000000),
  4022. 169: uint64(0xa6acec9b00000000),
  4023. 170: uint64(0x58d70cff00000000),
  4024. 171: uint64(0xcd037c6a00000000),
  4025. 172: uint64(0xa420cc3600000000),
  4026. 173: uint64(0x31f4bca300000000),
  4027. 174: uint64(0xcf8f5cc700000000),
  4028. 175: uint64(0x5a5b2c5200000000),
  4029. 176: uint64(0x41ab7d9f00000000),
  4030. 177: uint64(0xd47f0d0a00000000),
  4031. 178: uint64(0x2a04ed6e00000000),
  4032. 179: uint64(0xbfd09dfb00000000),
  4033. 180: uint64(0xd6f32da700000000),
  4034. 181: uint64(0x43275d3200000000),
  4035. 182: uint64(0xbd5cbd5600000000),
  4036. 183: uint64(0x2888cdc300000000),
  4037. 184: uint64(0x6f1addef00000000),
  4038. 185: uint64(0xfacead7a00000000),
  4039. 186: uint64(0x04b54d1e00000000),
  4040. 187: uint64(0x91613d8b00000000),
  4041. 188: uint64(0xf8428dd700000000),
  4042. 189: uint64(0x6d96fd4200000000),
  4043. 190: uint64(0x93ed1d2600000000),
  4044. 191: uint64(0x06396db300000000),
  4045. 192: uint64(0x168e285400000000),
  4046. 193: uint64(0x835a58c100000000),
  4047. 194: uint64(0x7d21b8a500000000),
  4048. 195: uint64(0xe8f5c83000000000),
  4049. 196: uint64(0x81d6786c00000000),
  4050. 197: uint64(0x140208f900000000),
  4051. 198: uint64(0xea79e89d00000000),
  4052. 199: uint64(0x7fad980800000000),
  4053. 200: uint64(0x383f882400000000),
  4054. 201: uint64(0xadebf8b100000000),
  4055. 202: uint64(0x539018d500000000),
  4056. 203: uint64(0xc644684000000000),
  4057. 204: uint64(0xaf67d81c00000000),
  4058. 205: uint64(0x3ab3a88900000000),
  4059. 206: uint64(0xc4c848ed00000000),
  4060. 207: uint64(0x511c387800000000),
  4061. 208: uint64(0x4aec69b500000000),
  4062. 209: uint64(0xdf38192000000000),
  4063. 210: uint64(0x2143f94400000000),
  4064. 211: uint64(0xb49789d100000000),
  4065. 212: uint64(0xddb4398d00000000),
  4066. 213: uint64(0x4860491800000000),
  4067. 214: uint64(0xb61ba97c00000000),
  4068. 215: uint64(0x23cfd9e900000000),
  4069. 216: uint64(0x645dc9c500000000),
  4070. 217: uint64(0xf189b95000000000),
  4071. 218: uint64(0x0ff2593400000000),
  4072. 219: uint64(0x9a2629a100000000),
  4073. 220: uint64(0xf30599fd00000000),
  4074. 221: uint64(0x66d1e96800000000),
  4075. 222: uint64(0x98aa090c00000000),
  4076. 223: uint64(0x0d7e799900000000),
  4077. 224: uint64(0xef4cdb4d00000000),
  4078. 225: uint64(0x7a98abd800000000),
  4079. 226: uint64(0x84e34bbc00000000),
  4080. 227: uint64(0x11373b2900000000),
  4081. 228: uint64(0x78148b7500000000),
  4082. 229: uint64(0xedc0fbe000000000),
  4083. 230: uint64(0x13bb1b8400000000),
  4084. 231: uint64(0x866f6b1100000000),
  4085. 232: uint64(0xc1fd7b3d00000000),
  4086. 233: uint64(0x54290ba800000000),
  4087. 234: uint64(0xaa52ebcc00000000),
  4088. 235: uint64(0x3f869b5900000000),
  4089. 236: uint64(0x56a52b0500000000),
  4090. 237: uint64(0xc3715b9000000000),
  4091. 238: uint64(0x3d0abbf400000000),
  4092. 239: uint64(0xa8decb6100000000),
  4093. 240: uint64(0xb32e9aac00000000),
  4094. 241: uint64(0x26faea3900000000),
  4095. 242: uint64(0xd8810a5d00000000),
  4096. 243: uint64(0x4d557ac800000000),
  4097. 244: uint64(0x2476ca9400000000),
  4098. 245: uint64(0xb1a2ba0100000000),
  4099. 246: uint64(0x4fd95a6500000000),
  4100. 247: uint64(0xda0d2af000000000),
  4101. 248: uint64(0x9d9f3adc00000000),
  4102. 249: uint64(0x084b4a4900000000),
  4103. 250: uint64(0xf630aa2d00000000),
  4104. 251: uint64(0x63e4dab800000000),
  4105. 252: uint64(0x0ac76ae400000000),
  4106. 253: uint64(0x9f131a7100000000),
  4107. 254: uint64(0x6168fa1500000000),
  4108. 255: uint64(0xf4bc8a8000000000),
  4109. },
  4110. 4: {
  4111. 1: uint64(0x1f17f08000000000),
  4112. 2: uint64(0x7f2891da00000000),
  4113. 3: uint64(0x603f615a00000000),
  4114. 4: uint64(0xbf56536e00000000),
  4115. 5: uint64(0xa041a3ee00000000),
  4116. 6: uint64(0xc07ec2b400000000),
  4117. 7: uint64(0xdf69323400000000),
  4118. 8: uint64(0x7eada6dc00000000),
  4119. 9: uint64(0x61ba565c00000000),
  4120. 10: uint64(0x0185370600000000),
  4121. 11: uint64(0x1e92c78600000000),
  4122. 12: uint64(0xc1fbf5b200000000),
  4123. 13: uint64(0xdeec053200000000),
  4124. 14: uint64(0xbed3646800000000),
  4125. 15: uint64(0xa1c494e800000000),
  4126. 16: uint64(0xbd5c3c6200000000),
  4127. 17: uint64(0xa24bcce200000000),
  4128. 18: uint64(0xc274adb800000000),
  4129. 19: uint64(0xdd635d3800000000),
  4130. 20: uint64(0x020a6f0c00000000),
  4131. 21: uint64(0x1d1d9f8c00000000),
  4132. 22: uint64(0x7d22fed600000000),
  4133. 23: uint64(0x62350e5600000000),
  4134. 24: uint64(0xc3f19abe00000000),
  4135. 25: uint64(0xdce66a3e00000000),
  4136. 26: uint64(0xbcd90b6400000000),
  4137. 27: uint64(0xa3cefbe400000000),
  4138. 28: uint64(0x7ca7c9d000000000),
  4139. 29: uint64(0x63b0395000000000),
  4140. 30: uint64(0x038f580a00000000),
  4141. 31: uint64(0x1c98a88a00000000),
  4142. 32: uint64(0x7ab978c400000000),
  4143. 33: uint64(0x65ae884400000000),
  4144. 34: uint64(0x0591e91e00000000),
  4145. 35: uint64(0x1a86199e00000000),
  4146. 36: uint64(0xc5ef2baa00000000),
  4147. 37: uint64(0xdaf8db2a00000000),
  4148. 38: uint64(0xbac7ba7000000000),
  4149. 39: uint64(0xa5d04af000000000),
  4150. 40: uint64(0x0414de1800000000),
  4151. 41: uint64(0x1b032e9800000000),
  4152. 42: uint64(0x7b3c4fc200000000),
  4153. 43: uint64(0x642bbf4200000000),
  4154. 44: uint64(0xbb428d7600000000),
  4155. 45: uint64(0xa4557df600000000),
  4156. 46: uint64(0xc46a1cac00000000),
  4157. 47: uint64(0xdb7dec2c00000000),
  4158. 48: uint64(0xc7e544a600000000),
  4159. 49: uint64(0xd8f2b42600000000),
  4160. 50: uint64(0xb8cdd57c00000000),
  4161. 51: uint64(0xa7da25fc00000000),
  4162. 52: uint64(0x78b317c800000000),
  4163. 53: uint64(0x67a4e74800000000),
  4164. 54: uint64(0x079b861200000000),
  4165. 55: uint64(0x188c769200000000),
  4166. 56: uint64(0xb948e27a00000000),
  4167. 57: uint64(0xa65f12fa00000000),
  4168. 58: uint64(0xc66073a000000000),
  4169. 59: uint64(0xd977832000000000),
  4170. 60: uint64(0x061eb11400000000),
  4171. 61: uint64(0x1909419400000000),
  4172. 62: uint64(0x793620ce00000000),
  4173. 63: uint64(0x6621d04e00000000),
  4174. 64: uint64(0xb574805300000000),
  4175. 65: uint64(0xaa6370d300000000),
  4176. 66: uint64(0xca5c118900000000),
  4177. 67: uint64(0xd54be10900000000),
  4178. 68: uint64(0x0a22d33d00000000),
  4179. 69: uint64(0x153523bd00000000),
  4180. 70: uint64(0x750a42e700000000),
  4181. 71: uint64(0x6a1db26700000000),
  4182. 72: uint64(0xcbd9268f00000000),
  4183. 73: uint64(0xd4ced60f00000000),
  4184. 74: uint64(0xb4f1b75500000000),
  4185. 75: uint64(0xabe647d500000000),
  4186. 76: uint64(0x748f75e100000000),
  4187. 77: uint64(0x6b98856100000000),
  4188. 78: uint64(0x0ba7e43b00000000),
  4189. 79: uint64(0x14b014bb00000000),
  4190. 80: uint64(0x0828bc3100000000),
  4191. 81: uint64(0x173f4cb100000000),
  4192. 82: uint64(0x77002deb00000000),
  4193. 83: uint64(0x6817dd6b00000000),
  4194. 84: uint64(0xb77eef5f00000000),
  4195. 85: uint64(0xa8691fdf00000000),
  4196. 86: uint64(0xc8567e8500000000),
  4197. 87: uint64(0xd7418e0500000000),
  4198. 88: uint64(0x76851aed00000000),
  4199. 89: uint64(0x6992ea6d00000000),
  4200. 90: uint64(0x09ad8b3700000000),
  4201. 91: uint64(0x16ba7bb700000000),
  4202. 92: uint64(0xc9d3498300000000),
  4203. 93: uint64(0xd6c4b90300000000),
  4204. 94: uint64(0xb6fbd85900000000),
  4205. 95: uint64(0xa9ec28d900000000),
  4206. 96: uint64(0xcfcdf89700000000),
  4207. 97: uint64(0xd0da081700000000),
  4208. 98: uint64(0xb0e5694d00000000),
  4209. 99: uint64(0xaff299cd00000000),
  4210. 100: uint64(0x709babf900000000),
  4211. 101: uint64(0x6f8c5b7900000000),
  4212. 102: uint64(0x0fb33a2300000000),
  4213. 103: uint64(0x10a4caa300000000),
  4214. 104: uint64(0xb1605e4b00000000),
  4215. 105: uint64(0xae77aecb00000000),
  4216. 106: uint64(0xce48cf9100000000),
  4217. 107: uint64(0xd15f3f1100000000),
  4218. 108: uint64(0x0e360d2500000000),
  4219. 109: uint64(0x1121fda500000000),
  4220. 110: uint64(0x711e9cff00000000),
  4221. 111: uint64(0x6e096c7f00000000),
  4222. 112: uint64(0x7291c4f500000000),
  4223. 113: uint64(0x6d86347500000000),
  4224. 114: uint64(0x0db9552f00000000),
  4225. 115: uint64(0x12aea5af00000000),
  4226. 116: uint64(0xcdc7979b00000000),
  4227. 117: uint64(0xd2d0671b00000000),
  4228. 118: uint64(0xb2ef064100000000),
  4229. 119: uint64(0xadf8f6c100000000),
  4230. 120: uint64(0x0c3c622900000000),
  4231. 121: uint64(0x132b92a900000000),
  4232. 122: uint64(0x7314f3f300000000),
  4233. 123: uint64(0x6c03037300000000),
  4234. 124: uint64(0xb36a314700000000),
  4235. 125: uint64(0xac7dc1c700000000),
  4236. 126: uint64(0xcc42a09d00000000),
  4237. 127: uint64(0xd355501d00000000),
  4238. 128: uint64(0x6ae900a700000000),
  4239. 129: uint64(0x75fef02700000000),
  4240. 130: uint64(0x15c1917d00000000),
  4241. 131: uint64(0x0ad661fd00000000),
  4242. 132: uint64(0xd5bf53c900000000),
  4243. 133: uint64(0xcaa8a34900000000),
  4244. 134: uint64(0xaa97c21300000000),
  4245. 135: uint64(0xb580329300000000),
  4246. 136: uint64(0x1444a67b00000000),
  4247. 137: uint64(0x0b5356fb00000000),
  4248. 138: uint64(0x6b6c37a100000000),
  4249. 139: uint64(0x747bc72100000000),
  4250. 140: uint64(0xab12f51500000000),
  4251. 141: uint64(0xb405059500000000),
  4252. 142: uint64(0xd43a64cf00000000),
  4253. 143: uint64(0xcb2d944f00000000),
  4254. 144: uint64(0xd7b53cc500000000),
  4255. 145: uint64(0xc8a2cc4500000000),
  4256. 146: uint64(0xa89dad1f00000000),
  4257. 147: uint64(0xb78a5d9f00000000),
  4258. 148: uint64(0x68e36fab00000000),
  4259. 149: uint64(0x77f49f2b00000000),
  4260. 150: uint64(0x17cbfe7100000000),
  4261. 151: uint64(0x08dc0ef100000000),
  4262. 152: uint64(0xa9189a1900000000),
  4263. 153: uint64(0xb60f6a9900000000),
  4264. 154: uint64(0xd6300bc300000000),
  4265. 155: uint64(0xc927fb4300000000),
  4266. 156: uint64(0x164ec97700000000),
  4267. 157: uint64(0x095939f700000000),
  4268. 158: uint64(0x696658ad00000000),
  4269. 159: uint64(0x7671a82d00000000),
  4270. 160: uint64(0x1050786300000000),
  4271. 161: uint64(0x0f4788e300000000),
  4272. 162: uint64(0x6f78e9b900000000),
  4273. 163: uint64(0x706f193900000000),
  4274. 164: uint64(0xaf062b0d00000000),
  4275. 165: uint64(0xb011db8d00000000),
  4276. 166: uint64(0xd02ebad700000000),
  4277. 167: uint64(0xcf394a5700000000),
  4278. 168: uint64(0x6efddebf00000000),
  4279. 169: uint64(0x71ea2e3f00000000),
  4280. 170: uint64(0x11d54f6500000000),
  4281. 171: uint64(0x0ec2bfe500000000),
  4282. 172: uint64(0xd1ab8dd100000000),
  4283. 173: uint64(0xcebc7d5100000000),
  4284. 174: uint64(0xae831c0b00000000),
  4285. 175: uint64(0xb194ec8b00000000),
  4286. 176: uint64(0xad0c440100000000),
  4287. 177: uint64(0xb21bb48100000000),
  4288. 178: uint64(0xd224d5db00000000),
  4289. 179: uint64(0xcd33255b00000000),
  4290. 180: uint64(0x125a176f00000000),
  4291. 181: uint64(0x0d4de7ef00000000),
  4292. 182: uint64(0x6d7286b500000000),
  4293. 183: uint64(0x7265763500000000),
  4294. 184: uint64(0xd3a1e2dd00000000),
  4295. 185: uint64(0xccb6125d00000000),
  4296. 186: uint64(0xac89730700000000),
  4297. 187: uint64(0xb39e838700000000),
  4298. 188: uint64(0x6cf7b1b300000000),
  4299. 189: uint64(0x73e0413300000000),
  4300. 190: uint64(0x13df206900000000),
  4301. 191: uint64(0x0cc8d0e900000000),
  4302. 192: uint64(0xdf9d80f400000000),
  4303. 193: uint64(0xc08a707400000000),
  4304. 194: uint64(0xa0b5112e00000000),
  4305. 195: uint64(0xbfa2e1ae00000000),
  4306. 196: uint64(0x60cbd39a00000000),
  4307. 197: uint64(0x7fdc231a00000000),
  4308. 198: uint64(0x1fe3424000000000),
  4309. 199: uint64(0x00f4b2c000000000),
  4310. 200: uint64(0xa130262800000000),
  4311. 201: uint64(0xbe27d6a800000000),
  4312. 202: uint64(0xde18b7f200000000),
  4313. 203: uint64(0xc10f477200000000),
  4314. 204: uint64(0x1e66754600000000),
  4315. 205: uint64(0x017185c600000000),
  4316. 206: uint64(0x614ee49c00000000),
  4317. 207: uint64(0x7e59141c00000000),
  4318. 208: uint64(0x62c1bc9600000000),
  4319. 209: uint64(0x7dd64c1600000000),
  4320. 210: uint64(0x1de92d4c00000000),
  4321. 211: uint64(0x02feddcc00000000),
  4322. 212: uint64(0xdd97eff800000000),
  4323. 213: uint64(0xc2801f7800000000),
  4324. 214: uint64(0xa2bf7e2200000000),
  4325. 215: uint64(0xbda88ea200000000),
  4326. 216: uint64(0x1c6c1a4a00000000),
  4327. 217: uint64(0x037beaca00000000),
  4328. 218: uint64(0x63448b9000000000),
  4329. 219: uint64(0x7c537b1000000000),
  4330. 220: uint64(0xa33a492400000000),
  4331. 221: uint64(0xbc2db9a400000000),
  4332. 222: uint64(0xdc12d8fe00000000),
  4333. 223: uint64(0xc305287e00000000),
  4334. 224: uint64(0xa524f83000000000),
  4335. 225: uint64(0xba3308b000000000),
  4336. 226: uint64(0xda0c69ea00000000),
  4337. 227: uint64(0xc51b996a00000000),
  4338. 228: uint64(0x1a72ab5e00000000),
  4339. 229: uint64(0x05655bde00000000),
  4340. 230: uint64(0x655a3a8400000000),
  4341. 231: uint64(0x7a4dca0400000000),
  4342. 232: uint64(0xdb895eec00000000),
  4343. 233: uint64(0xc49eae6c00000000),
  4344. 234: uint64(0xa4a1cf3600000000),
  4345. 235: uint64(0xbbb63fb600000000),
  4346. 236: uint64(0x64df0d8200000000),
  4347. 237: uint64(0x7bc8fd0200000000),
  4348. 238: uint64(0x1bf79c5800000000),
  4349. 239: uint64(0x04e06cd800000000),
  4350. 240: uint64(0x1878c45200000000),
  4351. 241: uint64(0x076f34d200000000),
  4352. 242: uint64(0x6750558800000000),
  4353. 243: uint64(0x7847a50800000000),
  4354. 244: uint64(0xa72e973c00000000),
  4355. 245: uint64(0xb83967bc00000000),
  4356. 246: uint64(0xd80606e600000000),
  4357. 247: uint64(0xc711f66600000000),
  4358. 248: uint64(0x66d5628e00000000),
  4359. 249: uint64(0x79c2920e00000000),
  4360. 250: uint64(0x19fdf35400000000),
  4361. 251: uint64(0x06ea03d400000000),
  4362. 252: uint64(0xd98331e000000000),
  4363. 253: uint64(0xc694c16000000000),
  4364. 254: uint64(0xa6aba03a00000000),
  4365. 255: uint64(0xb9bc50ba00000000),
  4366. },
  4367. 5: {
  4368. 1: uint64(0xe2fd888d00000000),
  4369. 2: uint64(0x85fd60c000000000),
  4370. 3: uint64(0x6700e84d00000000),
  4371. 4: uint64(0x4bfdb05b00000000),
  4372. 5: uint64(0xa90038d600000000),
  4373. 6: uint64(0xce00d09b00000000),
  4374. 7: uint64(0x2cfd581600000000),
  4375. 8: uint64(0x96fa61b700000000),
  4376. 9: uint64(0x7407e93a00000000),
  4377. 10: uint64(0x1307017700000000),
  4378. 11: uint64(0xf1fa89fa00000000),
  4379. 12: uint64(0xdd07d1ec00000000),
  4380. 13: uint64(0x3ffa596100000000),
  4381. 14: uint64(0x58fab12c00000000),
  4382. 15: uint64(0xba0739a100000000),
  4383. 16: uint64(0x6df3b2b500000000),
  4384. 17: uint64(0x8f0e3a3800000000),
  4385. 18: uint64(0xe80ed27500000000),
  4386. 19: uint64(0x0af35af800000000),
  4387. 20: uint64(0x260e02ee00000000),
  4388. 21: uint64(0xc4f38a6300000000),
  4389. 22: uint64(0xa3f3622e00000000),
  4390. 23: uint64(0x410eeaa300000000),
  4391. 24: uint64(0xfb09d30200000000),
  4392. 25: uint64(0x19f45b8f00000000),
  4393. 26: uint64(0x7ef4b3c200000000),
  4394. 27: uint64(0x9c093b4f00000000),
  4395. 28: uint64(0xb0f4635900000000),
  4396. 29: uint64(0x5209ebd400000000),
  4397. 30: uint64(0x3509039900000000),
  4398. 31: uint64(0xd7f48b1400000000),
  4399. 32: uint64(0x9be014b000000000),
  4400. 33: uint64(0x791d9c3d00000000),
  4401. 34: uint64(0x1e1d747000000000),
  4402. 35: uint64(0xfce0fcfd00000000),
  4403. 36: uint64(0xd01da4eb00000000),
  4404. 37: uint64(0x32e02c6600000000),
  4405. 38: uint64(0x55e0c42b00000000),
  4406. 39: uint64(0xb71d4ca600000000),
  4407. 40: uint64(0x0d1a750700000000),
  4408. 41: uint64(0xefe7fd8a00000000),
  4409. 42: uint64(0x88e715c700000000),
  4410. 43: uint64(0x6a1a9d4a00000000),
  4411. 44: uint64(0x46e7c55c00000000),
  4412. 45: uint64(0xa41a4dd100000000),
  4413. 46: uint64(0xc31aa59c00000000),
  4414. 47: uint64(0x21e72d1100000000),
  4415. 48: uint64(0xf613a60500000000),
  4416. 49: uint64(0x14ee2e8800000000),
  4417. 50: uint64(0x73eec6c500000000),
  4418. 51: uint64(0x91134e4800000000),
  4419. 52: uint64(0xbdee165e00000000),
  4420. 53: uint64(0x5f139ed300000000),
  4421. 54: uint64(0x3813769e00000000),
  4422. 55: uint64(0xdaeefe1300000000),
  4423. 56: uint64(0x60e9c7b200000000),
  4424. 57: uint64(0x82144f3f00000000),
  4425. 58: uint64(0xe514a77200000000),
  4426. 59: uint64(0x07e92fff00000000),
  4427. 60: uint64(0x2b1477e900000000),
  4428. 61: uint64(0xc9e9ff6400000000),
  4429. 62: uint64(0xaee9172900000000),
  4430. 63: uint64(0x4c149fa400000000),
  4431. 64: uint64(0x77c758bb00000000),
  4432. 65: uint64(0x953ad03600000000),
  4433. 66: uint64(0xf23a387b00000000),
  4434. 67: uint64(0x10c7b0f600000000),
  4435. 68: uint64(0x3c3ae8e000000000),
  4436. 69: uint64(0xdec7606d00000000),
  4437. 70: uint64(0xb9c7882000000000),
  4438. 71: uint64(0x5b3a00ad00000000),
  4439. 72: uint64(0xe13d390c00000000),
  4440. 73: uint64(0x03c0b18100000000),
  4441. 74: uint64(0x64c059cc00000000),
  4442. 75: uint64(0x863dd14100000000),
  4443. 76: uint64(0xaac0895700000000),
  4444. 77: uint64(0x483d01da00000000),
  4445. 78: uint64(0x2f3de99700000000),
  4446. 79: uint64(0xcdc0611a00000000),
  4447. 80: uint64(0x1a34ea0e00000000),
  4448. 81: uint64(0xf8c9628300000000),
  4449. 82: uint64(0x9fc98ace00000000),
  4450. 83: uint64(0x7d34024300000000),
  4451. 84: uint64(0x51c95a5500000000),
  4452. 85: uint64(0xb334d2d800000000),
  4453. 86: uint64(0xd4343a9500000000),
  4454. 87: uint64(0x36c9b21800000000),
  4455. 88: uint64(0x8cce8bb900000000),
  4456. 89: uint64(0x6e33033400000000),
  4457. 90: uint64(0x0933eb7900000000),
  4458. 91: uint64(0xebce63f400000000),
  4459. 92: uint64(0xc7333be200000000),
  4460. 93: uint64(0x25ceb36f00000000),
  4461. 94: uint64(0x42ce5b2200000000),
  4462. 95: uint64(0xa033d3af00000000),
  4463. 96: uint64(0xec274c0b00000000),
  4464. 97: uint64(0x0edac48600000000),
  4465. 98: uint64(0x69da2ccb00000000),
  4466. 99: uint64(0x8b27a44600000000),
  4467. 100: uint64(0xa7dafc5000000000),
  4468. 101: uint64(0x452774dd00000000),
  4469. 102: uint64(0x22279c9000000000),
  4470. 103: uint64(0xc0da141d00000000),
  4471. 104: uint64(0x7add2dbc00000000),
  4472. 105: uint64(0x9820a53100000000),
  4473. 106: uint64(0xff204d7c00000000),
  4474. 107: uint64(0x1dddc5f100000000),
  4475. 108: uint64(0x31209de700000000),
  4476. 109: uint64(0xd3dd156a00000000),
  4477. 110: uint64(0xb4ddfd2700000000),
  4478. 111: uint64(0x562075aa00000000),
  4479. 112: uint64(0x81d4febe00000000),
  4480. 113: uint64(0x6329763300000000),
  4481. 114: uint64(0x04299e7e00000000),
  4482. 115: uint64(0xe6d416f300000000),
  4483. 116: uint64(0xca294ee500000000),
  4484. 117: uint64(0x28d4c66800000000),
  4485. 118: uint64(0x4fd42e2500000000),
  4486. 119: uint64(0xad29a6a800000000),
  4487. 120: uint64(0x172e9f0900000000),
  4488. 121: uint64(0xf5d3178400000000),
  4489. 122: uint64(0x92d3ffc900000000),
  4490. 123: uint64(0x702e774400000000),
  4491. 124: uint64(0x5cd32f5200000000),
  4492. 125: uint64(0xbe2ea7df00000000),
  4493. 126: uint64(0xd92e4f9200000000),
  4494. 127: uint64(0x3bd3c71f00000000),
  4495. 128: uint64(0xaf88c0ad00000000),
  4496. 129: uint64(0x4d75482000000000),
  4497. 130: uint64(0x2a75a06d00000000),
  4498. 131: uint64(0xc88828e000000000),
  4499. 132: uint64(0xe47570f600000000),
  4500. 133: uint64(0x0688f87b00000000),
  4501. 134: uint64(0x6188103600000000),
  4502. 135: uint64(0x837598bb00000000),
  4503. 136: uint64(0x3972a11a00000000),
  4504. 137: uint64(0xdb8f299700000000),
  4505. 138: uint64(0xbc8fc1da00000000),
  4506. 139: uint64(0x5e72495700000000),
  4507. 140: uint64(0x728f114100000000),
  4508. 141: uint64(0x907299cc00000000),
  4509. 142: uint64(0xf772718100000000),
  4510. 143: uint64(0x158ff90c00000000),
  4511. 144: uint64(0xc27b721800000000),
  4512. 145: uint64(0x2086fa9500000000),
  4513. 146: uint64(0x478612d800000000),
  4514. 147: uint64(0xa57b9a5500000000),
  4515. 148: uint64(0x8986c24300000000),
  4516. 149: uint64(0x6b7b4ace00000000),
  4517. 150: uint64(0x0c7ba28300000000),
  4518. 151: uint64(0xee862a0e00000000),
  4519. 152: uint64(0x548113af00000000),
  4520. 153: uint64(0xb67c9b2200000000),
  4521. 154: uint64(0xd17c736f00000000),
  4522. 155: uint64(0x3381fbe200000000),
  4523. 156: uint64(0x1f7ca3f400000000),
  4524. 157: uint64(0xfd812b7900000000),
  4525. 158: uint64(0x9a81c33400000000),
  4526. 159: uint64(0x787c4bb900000000),
  4527. 160: uint64(0x3468d41d00000000),
  4528. 161: uint64(0xd6955c9000000000),
  4529. 162: uint64(0xb195b4dd00000000),
  4530. 163: uint64(0x53683c5000000000),
  4531. 164: uint64(0x7f95644600000000),
  4532. 165: uint64(0x9d68eccb00000000),
  4533. 166: uint64(0xfa68048600000000),
  4534. 167: uint64(0x18958c0b00000000),
  4535. 168: uint64(0xa292b5aa00000000),
  4536. 169: uint64(0x406f3d2700000000),
  4537. 170: uint64(0x276fd56a00000000),
  4538. 171: uint64(0xc5925de700000000),
  4539. 172: uint64(0xe96f05f100000000),
  4540. 173: uint64(0x0b928d7c00000000),
  4541. 174: uint64(0x6c92653100000000),
  4542. 175: uint64(0x8e6fedbc00000000),
  4543. 176: uint64(0x599b66a800000000),
  4544. 177: uint64(0xbb66ee2500000000),
  4545. 178: uint64(0xdc66066800000000),
  4546. 179: uint64(0x3e9b8ee500000000),
  4547. 180: uint64(0x1266d6f300000000),
  4548. 181: uint64(0xf09b5e7e00000000),
  4549. 182: uint64(0x979bb63300000000),
  4550. 183: uint64(0x75663ebe00000000),
  4551. 184: uint64(0xcf61071f00000000),
  4552. 185: uint64(0x2d9c8f9200000000),
  4553. 186: uint64(0x4a9c67df00000000),
  4554. 187: uint64(0xa861ef5200000000),
  4555. 188: uint64(0x849cb74400000000),
  4556. 189: uint64(0x66613fc900000000),
  4557. 190: uint64(0x0161d78400000000),
  4558. 191: uint64(0xe39c5f0900000000),
  4559. 192: uint64(0xd84f981600000000),
  4560. 193: uint64(0x3ab2109b00000000),
  4561. 194: uint64(0x5db2f8d600000000),
  4562. 195: uint64(0xbf4f705b00000000),
  4563. 196: uint64(0x93b2284d00000000),
  4564. 197: uint64(0x714fa0c000000000),
  4565. 198: uint64(0x164f488d00000000),
  4566. 199: uint64(0xf4b2c00000000000),
  4567. 200: uint64(0x4eb5f9a100000000),
  4568. 201: uint64(0xac48712c00000000),
  4569. 202: uint64(0xcb48996100000000),
  4570. 203: uint64(0x29b511ec00000000),
  4571. 204: uint64(0x054849fa00000000),
  4572. 205: uint64(0xe7b5c17700000000),
  4573. 206: uint64(0x80b5293a00000000),
  4574. 207: uint64(0x6248a1b700000000),
  4575. 208: uint64(0xb5bc2aa300000000),
  4576. 209: uint64(0x5741a22e00000000),
  4577. 210: uint64(0x30414a6300000000),
  4578. 211: uint64(0xd2bcc2ee00000000),
  4579. 212: uint64(0xfe419af800000000),
  4580. 213: uint64(0x1cbc127500000000),
  4581. 214: uint64(0x7bbcfa3800000000),
  4582. 215: uint64(0x994172b500000000),
  4583. 216: uint64(0x23464b1400000000),
  4584. 217: uint64(0xc1bbc39900000000),
  4585. 218: uint64(0xa6bb2bd400000000),
  4586. 219: uint64(0x4446a35900000000),
  4587. 220: uint64(0x68bbfb4f00000000),
  4588. 221: uint64(0x8a4673c200000000),
  4589. 222: uint64(0xed469b8f00000000),
  4590. 223: uint64(0x0fbb130200000000),
  4591. 224: uint64(0x43af8ca600000000),
  4592. 225: uint64(0xa152042b00000000),
  4593. 226: uint64(0xc652ec6600000000),
  4594. 227: uint64(0x24af64eb00000000),
  4595. 228: uint64(0x08523cfd00000000),
  4596. 229: uint64(0xeaafb47000000000),
  4597. 230: uint64(0x8daf5c3d00000000),
  4598. 231: uint64(0x6f52d4b000000000),
  4599. 232: uint64(0xd555ed1100000000),
  4600. 233: uint64(0x37a8659c00000000),
  4601. 234: uint64(0x50a88dd100000000),
  4602. 235: uint64(0xb255055c00000000),
  4603. 236: uint64(0x9ea85d4a00000000),
  4604. 237: uint64(0x7c55d5c700000000),
  4605. 238: uint64(0x1b553d8a00000000),
  4606. 239: uint64(0xf9a8b50700000000),
  4607. 240: uint64(0x2e5c3e1300000000),
  4608. 241: uint64(0xcca1b69e00000000),
  4609. 242: uint64(0xaba15ed300000000),
  4610. 243: uint64(0x495cd65e00000000),
  4611. 244: uint64(0x65a18e4800000000),
  4612. 245: uint64(0x875c06c500000000),
  4613. 246: uint64(0xe05cee8800000000),
  4614. 247: uint64(0x02a1660500000000),
  4615. 248: uint64(0xb8a65fa400000000),
  4616. 249: uint64(0x5a5bd72900000000),
  4617. 250: uint64(0x3d5b3f6400000000),
  4618. 251: uint64(0xdfa6b7e900000000),
  4619. 252: uint64(0xf35befff00000000),
  4620. 253: uint64(0x11a6677200000000),
  4621. 254: uint64(0x76a68f3f00000000),
  4622. 255: uint64(0x945b07b200000000),
  4623. },
  4624. 6: {
  4625. 1: uint64(0xa90b894e00000000),
  4626. 2: uint64(0x5217129d00000000),
  4627. 3: uint64(0xfb1c9bd300000000),
  4628. 4: uint64(0xe52855e100000000),
  4629. 5: uint64(0x4c23dcaf00000000),
  4630. 6: uint64(0xb73f477c00000000),
  4631. 7: uint64(0x1e34ce3200000000),
  4632. 8: uint64(0x8b57db1900000000),
  4633. 9: uint64(0x225c525700000000),
  4634. 10: uint64(0xd940c98400000000),
  4635. 11: uint64(0x704b40ca00000000),
  4636. 12: uint64(0x6e7f8ef800000000),
  4637. 13: uint64(0xc77407b600000000),
  4638. 14: uint64(0x3c689c6500000000),
  4639. 15: uint64(0x9563152b00000000),
  4640. 16: uint64(0x16afb63300000000),
  4641. 17: uint64(0xbfa43f7d00000000),
  4642. 18: uint64(0x44b8a4ae00000000),
  4643. 19: uint64(0xedb32de000000000),
  4644. 20: uint64(0xf387e3d200000000),
  4645. 21: uint64(0x5a8c6a9c00000000),
  4646. 22: uint64(0xa190f14f00000000),
  4647. 23: uint64(0x089b780100000000),
  4648. 24: uint64(0x9df86d2a00000000),
  4649. 25: uint64(0x34f3e46400000000),
  4650. 26: uint64(0xcfef7fb700000000),
  4651. 27: uint64(0x66e4f6f900000000),
  4652. 28: uint64(0x78d038cb00000000),
  4653. 29: uint64(0xd1dbb18500000000),
  4654. 30: uint64(0x2ac72a5600000000),
  4655. 31: uint64(0x83cca31800000000),
  4656. 32: uint64(0x2c5e6d6700000000),
  4657. 33: uint64(0x8555e42900000000),
  4658. 34: uint64(0x7e497ffa00000000),
  4659. 35: uint64(0xd742f6b400000000),
  4660. 36: uint64(0xc976388600000000),
  4661. 37: uint64(0x607db1c800000000),
  4662. 38: uint64(0x9b612a1b00000000),
  4663. 39: uint64(0x326aa35500000000),
  4664. 40: uint64(0xa709b67e00000000),
  4665. 41: uint64(0x0e023f3000000000),
  4666. 42: uint64(0xf51ea4e300000000),
  4667. 43: uint64(0x5c152dad00000000),
  4668. 44: uint64(0x4221e39f00000000),
  4669. 45: uint64(0xeb2a6ad100000000),
  4670. 46: uint64(0x1036f10200000000),
  4671. 47: uint64(0xb93d784c00000000),
  4672. 48: uint64(0x3af1db5400000000),
  4673. 49: uint64(0x93fa521a00000000),
  4674. 50: uint64(0x68e6c9c900000000),
  4675. 51: uint64(0xc1ed408700000000),
  4676. 52: uint64(0xdfd98eb500000000),
  4677. 53: uint64(0x76d207fb00000000),
  4678. 54: uint64(0x8dce9c2800000000),
  4679. 55: uint64(0x24c5156600000000),
  4680. 56: uint64(0xb1a6004d00000000),
  4681. 57: uint64(0x18ad890300000000),
  4682. 58: uint64(0xe3b112d000000000),
  4683. 59: uint64(0x4aba9b9e00000000),
  4684. 60: uint64(0x548e55ac00000000),
  4685. 61: uint64(0xfd85dce200000000),
  4686. 62: uint64(0x0699473100000000),
  4687. 63: uint64(0xaf92ce7f00000000),
  4688. 64: uint64(0x58bcdace00000000),
  4689. 65: uint64(0xf1b7538000000000),
  4690. 66: uint64(0x0aabc85300000000),
  4691. 67: uint64(0xa3a0411d00000000),
  4692. 68: uint64(0xbd948f2f00000000),
  4693. 69: uint64(0x149f066100000000),
  4694. 70: uint64(0xef839db200000000),
  4695. 71: uint64(0x468814fc00000000),
  4696. 72: uint64(0xd3eb01d700000000),
  4697. 73: uint64(0x7ae0889900000000),
  4698. 74: uint64(0x81fc134a00000000),
  4699. 75: uint64(0x28f79a0400000000),
  4700. 76: uint64(0x36c3543600000000),
  4701. 77: uint64(0x9fc8dd7800000000),
  4702. 78: uint64(0x64d446ab00000000),
  4703. 79: uint64(0xcddfcfe500000000),
  4704. 80: uint64(0x4e136cfd00000000),
  4705. 81: uint64(0xe718e5b300000000),
  4706. 82: uint64(0x1c047e6000000000),
  4707. 83: uint64(0xb50ff72e00000000),
  4708. 84: uint64(0xab3b391c00000000),
  4709. 85: uint64(0x0230b05200000000),
  4710. 86: uint64(0xf92c2b8100000000),
  4711. 87: uint64(0x5027a2cf00000000),
  4712. 88: uint64(0xc544b7e400000000),
  4713. 89: uint64(0x6c4f3eaa00000000),
  4714. 90: uint64(0x9753a57900000000),
  4715. 91: uint64(0x3e582c3700000000),
  4716. 92: uint64(0x206ce20500000000),
  4717. 93: uint64(0x89676b4b00000000),
  4718. 94: uint64(0x727bf09800000000),
  4719. 95: uint64(0xdb7079d600000000),
  4720. 96: uint64(0x74e2b7a900000000),
  4721. 97: uint64(0xdde93ee700000000),
  4722. 98: uint64(0x26f5a53400000000),
  4723. 99: uint64(0x8ffe2c7a00000000),
  4724. 100: uint64(0x91cae24800000000),
  4725. 101: uint64(0x38c16b0600000000),
  4726. 102: uint64(0xc3ddf0d500000000),
  4727. 103: uint64(0x6ad6799b00000000),
  4728. 104: uint64(0xffb56cb000000000),
  4729. 105: uint64(0x56bee5fe00000000),
  4730. 106: uint64(0xada27e2d00000000),
  4731. 107: uint64(0x04a9f76300000000),
  4732. 108: uint64(0x1a9d395100000000),
  4733. 109: uint64(0xb396b01f00000000),
  4734. 110: uint64(0x488a2bcc00000000),
  4735. 111: uint64(0xe181a28200000000),
  4736. 112: uint64(0x624d019a00000000),
  4737. 113: uint64(0xcb4688d400000000),
  4738. 114: uint64(0x305a130700000000),
  4739. 115: uint64(0x99519a4900000000),
  4740. 116: uint64(0x8765547b00000000),
  4741. 117: uint64(0x2e6edd3500000000),
  4742. 118: uint64(0xd57246e600000000),
  4743. 119: uint64(0x7c79cfa800000000),
  4744. 120: uint64(0xe91ada8300000000),
  4745. 121: uint64(0x401153cd00000000),
  4746. 122: uint64(0xbb0dc81e00000000),
  4747. 123: uint64(0x1206415000000000),
  4748. 124: uint64(0x0c328f6200000000),
  4749. 125: uint64(0xa539062c00000000),
  4750. 126: uint64(0x5e259dff00000000),
  4751. 127: uint64(0xf72e14b100000000),
  4752. 128: uint64(0xf17ec44600000000),
  4753. 129: uint64(0x58754d0800000000),
  4754. 130: uint64(0xa369d6db00000000),
  4755. 131: uint64(0x0a625f9500000000),
  4756. 132: uint64(0x145691a700000000),
  4757. 133: uint64(0xbd5d18e900000000),
  4758. 134: uint64(0x4641833a00000000),
  4759. 135: uint64(0xef4a0a7400000000),
  4760. 136: uint64(0x7a291f5f00000000),
  4761. 137: uint64(0xd322961100000000),
  4762. 138: uint64(0x283e0dc200000000),
  4763. 139: uint64(0x8135848c00000000),
  4764. 140: uint64(0x9f014abe00000000),
  4765. 141: uint64(0x360ac3f000000000),
  4766. 142: uint64(0xcd16582300000000),
  4767. 143: uint64(0x641dd16d00000000),
  4768. 144: uint64(0xe7d1727500000000),
  4769. 145: uint64(0x4edafb3b00000000),
  4770. 146: uint64(0xb5c660e800000000),
  4771. 147: uint64(0x1ccde9a600000000),
  4772. 148: uint64(0x02f9279400000000),
  4773. 149: uint64(0xabf2aeda00000000),
  4774. 150: uint64(0x50ee350900000000),
  4775. 151: uint64(0xf9e5bc4700000000),
  4776. 152: uint64(0x6c86a96c00000000),
  4777. 153: uint64(0xc58d202200000000),
  4778. 154: uint64(0x3e91bbf100000000),
  4779. 155: uint64(0x979a32bf00000000),
  4780. 156: uint64(0x89aefc8d00000000),
  4781. 157: uint64(0x20a575c300000000),
  4782. 158: uint64(0xdbb9ee1000000000),
  4783. 159: uint64(0x72b2675e00000000),
  4784. 160: uint64(0xdd20a92100000000),
  4785. 161: uint64(0x742b206f00000000),
  4786. 162: uint64(0x8f37bbbc00000000),
  4787. 163: uint64(0x263c32f200000000),
  4788. 164: uint64(0x3808fcc000000000),
  4789. 165: uint64(0x9103758e00000000),
  4790. 166: uint64(0x6a1fee5d00000000),
  4791. 167: uint64(0xc314671300000000),
  4792. 168: uint64(0x5677723800000000),
  4793. 169: uint64(0xff7cfb7600000000),
  4794. 170: uint64(0x046060a500000000),
  4795. 171: uint64(0xad6be9eb00000000),
  4796. 172: uint64(0xb35f27d900000000),
  4797. 173: uint64(0x1a54ae9700000000),
  4798. 174: uint64(0xe148354400000000),
  4799. 175: uint64(0x4843bc0a00000000),
  4800. 176: uint64(0xcb8f1f1200000000),
  4801. 177: uint64(0x6284965c00000000),
  4802. 178: uint64(0x99980d8f00000000),
  4803. 179: uint64(0x309384c100000000),
  4804. 180: uint64(0x2ea74af300000000),
  4805. 181: uint64(0x87acc3bd00000000),
  4806. 182: uint64(0x7cb0586e00000000),
  4807. 183: uint64(0xd5bbd12000000000),
  4808. 184: uint64(0x40d8c40b00000000),
  4809. 185: uint64(0xe9d34d4500000000),
  4810. 186: uint64(0x12cfd69600000000),
  4811. 187: uint64(0xbbc45fd800000000),
  4812. 188: uint64(0xa5f091ea00000000),
  4813. 189: uint64(0x0cfb18a400000000),
  4814. 190: uint64(0xf7e7837700000000),
  4815. 191: uint64(0x5eec0a3900000000),
  4816. 192: uint64(0xa9c21e8800000000),
  4817. 193: uint64(0x00c997c600000000),
  4818. 194: uint64(0xfbd50c1500000000),
  4819. 195: uint64(0x52de855b00000000),
  4820. 196: uint64(0x4cea4b6900000000),
  4821. 197: uint64(0xe5e1c22700000000),
  4822. 198: uint64(0x1efd59f400000000),
  4823. 199: uint64(0xb7f6d0ba00000000),
  4824. 200: uint64(0x2295c59100000000),
  4825. 201: uint64(0x8b9e4cdf00000000),
  4826. 202: uint64(0x7082d70c00000000),
  4827. 203: uint64(0xd9895e4200000000),
  4828. 204: uint64(0xc7bd907000000000),
  4829. 205: uint64(0x6eb6193e00000000),
  4830. 206: uint64(0x95aa82ed00000000),
  4831. 207: uint64(0x3ca10ba300000000),
  4832. 208: uint64(0xbf6da8bb00000000),
  4833. 209: uint64(0x166621f500000000),
  4834. 210: uint64(0xed7aba2600000000),
  4835. 211: uint64(0x4471336800000000),
  4836. 212: uint64(0x5a45fd5a00000000),
  4837. 213: uint64(0xf34e741400000000),
  4838. 214: uint64(0x0852efc700000000),
  4839. 215: uint64(0xa159668900000000),
  4840. 216: uint64(0x343a73a200000000),
  4841. 217: uint64(0x9d31faec00000000),
  4842. 218: uint64(0x662d613f00000000),
  4843. 219: uint64(0xcf26e87100000000),
  4844. 220: uint64(0xd112264300000000),
  4845. 221: uint64(0x7819af0d00000000),
  4846. 222: uint64(0x830534de00000000),
  4847. 223: uint64(0x2a0ebd9000000000),
  4848. 224: uint64(0x859c73ef00000000),
  4849. 225: uint64(0x2c97faa100000000),
  4850. 226: uint64(0xd78b617200000000),
  4851. 227: uint64(0x7e80e83c00000000),
  4852. 228: uint64(0x60b4260e00000000),
  4853. 229: uint64(0xc9bfaf4000000000),
  4854. 230: uint64(0x32a3349300000000),
  4855. 231: uint64(0x9ba8bddd00000000),
  4856. 232: uint64(0x0ecba8f600000000),
  4857. 233: uint64(0xa7c021b800000000),
  4858. 234: uint64(0x5cdcba6b00000000),
  4859. 235: uint64(0xf5d7332500000000),
  4860. 236: uint64(0xebe3fd1700000000),
  4861. 237: uint64(0x42e8745900000000),
  4862. 238: uint64(0xb9f4ef8a00000000),
  4863. 239: uint64(0x10ff66c400000000),
  4864. 240: uint64(0x9333c5dc00000000),
  4865. 241: uint64(0x3a384c9200000000),
  4866. 242: uint64(0xc124d74100000000),
  4867. 243: uint64(0x682f5e0f00000000),
  4868. 244: uint64(0x761b903d00000000),
  4869. 245: uint64(0xdf10197300000000),
  4870. 246: uint64(0x240c82a000000000),
  4871. 247: uint64(0x8d070bee00000000),
  4872. 248: uint64(0x18641ec500000000),
  4873. 249: uint64(0xb16f978b00000000),
  4874. 250: uint64(0x4a730c5800000000),
  4875. 251: uint64(0xe378851600000000),
  4876. 252: uint64(0xfd4c4b2400000000),
  4877. 253: uint64(0x5447c26a00000000),
  4878. 254: uint64(0xaf5b59b900000000),
  4879. 255: uint64(0x0650d0f700000000),
  4880. },
  4881. 7: {
  4882. 1: uint64(0x479244af00000000),
  4883. 2: uint64(0xcf22f88500000000),
  4884. 3: uint64(0x88b0bc2a00000000),
  4885. 4: uint64(0xdf4381d000000000),
  4886. 5: uint64(0x98d1c57f00000000),
  4887. 6: uint64(0x1061795500000000),
  4888. 7: uint64(0x57f33dfa00000000),
  4889. 8: uint64(0xff81737a00000000),
  4890. 9: uint64(0xb81337d500000000),
  4891. 10: uint64(0x30a38bff00000000),
  4892. 11: uint64(0x7731cf5000000000),
  4893. 12: uint64(0x20c2f2aa00000000),
  4894. 13: uint64(0x6750b60500000000),
  4895. 14: uint64(0xefe00a2f00000000),
  4896. 15: uint64(0xa8724e8000000000),
  4897. 16: uint64(0xfe03e7f400000000),
  4898. 17: uint64(0xb991a35b00000000),
  4899. 18: uint64(0x31211f7100000000),
  4900. 19: uint64(0x76b35bde00000000),
  4901. 20: uint64(0x2140662400000000),
  4902. 21: uint64(0x66d2228b00000000),
  4903. 22: uint64(0xee629ea100000000),
  4904. 23: uint64(0xa9f0da0e00000000),
  4905. 24: uint64(0x0182948e00000000),
  4906. 25: uint64(0x4610d02100000000),
  4907. 26: uint64(0xcea06c0b00000000),
  4908. 27: uint64(0x893228a400000000),
  4909. 28: uint64(0xdec1155e00000000),
  4910. 29: uint64(0x995351f100000000),
  4911. 30: uint64(0x11e3eddb00000000),
  4912. 31: uint64(0x5671a97400000000),
  4913. 32: uint64(0xbd01bf3200000000),
  4914. 33: uint64(0xfa93fb9d00000000),
  4915. 34: uint64(0x722347b700000000),
  4916. 35: uint64(0x35b1031800000000),
  4917. 36: uint64(0x62423ee200000000),
  4918. 37: uint64(0x25d07a4d00000000),
  4919. 38: uint64(0xad60c66700000000),
  4920. 39: uint64(0xeaf282c800000000),
  4921. 40: uint64(0x4280cc4800000000),
  4922. 41: uint64(0x051288e700000000),
  4923. 42: uint64(0x8da234cd00000000),
  4924. 43: uint64(0xca30706200000000),
  4925. 44: uint64(0x9dc34d9800000000),
  4926. 45: uint64(0xda51093700000000),
  4927. 46: uint64(0x52e1b51d00000000),
  4928. 47: uint64(0x1573f1b200000000),
  4929. 48: uint64(0x430258c600000000),
  4930. 49: uint64(0x04901c6900000000),
  4931. 50: uint64(0x8c20a04300000000),
  4932. 51: uint64(0xcbb2e4ec00000000),
  4933. 52: uint64(0x9c41d91600000000),
  4934. 53: uint64(0xdbd39db900000000),
  4935. 54: uint64(0x5363219300000000),
  4936. 55: uint64(0x14f1653c00000000),
  4937. 56: uint64(0xbc832bbc00000000),
  4938. 57: uint64(0xfb116f1300000000),
  4939. 58: uint64(0x73a1d33900000000),
  4940. 59: uint64(0x3433979600000000),
  4941. 60: uint64(0x63c0aa6c00000000),
  4942. 61: uint64(0x2452eec300000000),
  4943. 62: uint64(0xace252e900000000),
  4944. 63: uint64(0xeb70164600000000),
  4945. 64: uint64(0x7a037e6500000000),
  4946. 65: uint64(0x3d913aca00000000),
  4947. 66: uint64(0xb52186e000000000),
  4948. 67: uint64(0xf2b3c24f00000000),
  4949. 68: uint64(0xa540ffb500000000),
  4950. 69: uint64(0xe2d2bb1a00000000),
  4951. 70: uint64(0x6a62073000000000),
  4952. 71: uint64(0x2df0439f00000000),
  4953. 72: uint64(0x85820d1f00000000),
  4954. 73: uint64(0xc21049b000000000),
  4955. 74: uint64(0x4aa0f59a00000000),
  4956. 75: uint64(0x0d32b13500000000),
  4957. 76: uint64(0x5ac18ccf00000000),
  4958. 77: uint64(0x1d53c86000000000),
  4959. 78: uint64(0x95e3744a00000000),
  4960. 79: uint64(0xd27130e500000000),
  4961. 80: uint64(0x8400999100000000),
  4962. 81: uint64(0xc392dd3e00000000),
  4963. 82: uint64(0x4b22611400000000),
  4964. 83: uint64(0x0cb025bb00000000),
  4965. 84: uint64(0x5b43184100000000),
  4966. 85: uint64(0x1cd15cee00000000),
  4967. 86: uint64(0x9461e0c400000000),
  4968. 87: uint64(0xd3f3a46b00000000),
  4969. 88: uint64(0x7b81eaeb00000000),
  4970. 89: uint64(0x3c13ae4400000000),
  4971. 90: uint64(0xb4a3126e00000000),
  4972. 91: uint64(0xf33156c100000000),
  4973. 92: uint64(0xa4c26b3b00000000),
  4974. 93: uint64(0xe3502f9400000000),
  4975. 94: uint64(0x6be093be00000000),
  4976. 95: uint64(0x2c72d71100000000),
  4977. 96: uint64(0xc702c15700000000),
  4978. 97: uint64(0x809085f800000000),
  4979. 98: uint64(0x082039d200000000),
  4980. 99: uint64(0x4fb27d7d00000000),
  4981. 100: uint64(0x1841408700000000),
  4982. 101: uint64(0x5fd3042800000000),
  4983. 102: uint64(0xd763b80200000000),
  4984. 103: uint64(0x90f1fcad00000000),
  4985. 104: uint64(0x3883b22d00000000),
  4986. 105: uint64(0x7f11f68200000000),
  4987. 106: uint64(0xf7a14aa800000000),
  4988. 107: uint64(0xb0330e0700000000),
  4989. 108: uint64(0xe7c033fd00000000),
  4990. 109: uint64(0xa052775200000000),
  4991. 110: uint64(0x28e2cb7800000000),
  4992. 111: uint64(0x6f708fd700000000),
  4993. 112: uint64(0x390126a300000000),
  4994. 113: uint64(0x7e93620c00000000),
  4995. 114: uint64(0xf623de2600000000),
  4996. 115: uint64(0xb1b19a8900000000),
  4997. 116: uint64(0xe642a77300000000),
  4998. 117: uint64(0xa1d0e3dc00000000),
  4999. 118: uint64(0x29605ff600000000),
  5000. 119: uint64(0x6ef21b5900000000),
  5001. 120: uint64(0xc68055d900000000),
  5002. 121: uint64(0x8112117600000000),
  5003. 122: uint64(0x09a2ad5c00000000),
  5004. 123: uint64(0x4e30e9f300000000),
  5005. 124: uint64(0x19c3d40900000000),
  5006. 125: uint64(0x5e5190a600000000),
  5007. 126: uint64(0xd6e12c8c00000000),
  5008. 127: uint64(0x9173682300000000),
  5009. 128: uint64(0xf406fcca00000000),
  5010. 129: uint64(0xb394b86500000000),
  5011. 130: uint64(0x3b24044f00000000),
  5012. 131: uint64(0x7cb640e000000000),
  5013. 132: uint64(0x2b457d1a00000000),
  5014. 133: uint64(0x6cd739b500000000),
  5015. 134: uint64(0xe467859f00000000),
  5016. 135: uint64(0xa3f5c13000000000),
  5017. 136: uint64(0x0b878fb000000000),
  5018. 137: uint64(0x4c15cb1f00000000),
  5019. 138: uint64(0xc4a5773500000000),
  5020. 139: uint64(0x8337339a00000000),
  5021. 140: uint64(0xd4c40e6000000000),
  5022. 141: uint64(0x93564acf00000000),
  5023. 142: uint64(0x1be6f6e500000000),
  5024. 143: uint64(0x5c74b24a00000000),
  5025. 144: uint64(0x0a051b3e00000000),
  5026. 145: uint64(0x4d975f9100000000),
  5027. 146: uint64(0xc527e3bb00000000),
  5028. 147: uint64(0x82b5a71400000000),
  5029. 148: uint64(0xd5469aee00000000),
  5030. 149: uint64(0x92d4de4100000000),
  5031. 150: uint64(0x1a64626b00000000),
  5032. 151: uint64(0x5df626c400000000),
  5033. 152: uint64(0xf584684400000000),
  5034. 153: uint64(0xb2162ceb00000000),
  5035. 154: uint64(0x3aa690c100000000),
  5036. 155: uint64(0x7d34d46e00000000),
  5037. 156: uint64(0x2ac7e99400000000),
  5038. 157: uint64(0x6d55ad3b00000000),
  5039. 158: uint64(0xe5e5111100000000),
  5040. 159: uint64(0xa27755be00000000),
  5041. 160: uint64(0x490743f800000000),
  5042. 161: uint64(0x0e95075700000000),
  5043. 162: uint64(0x8625bb7d00000000),
  5044. 163: uint64(0xc1b7ffd200000000),
  5045. 164: uint64(0x9644c22800000000),
  5046. 165: uint64(0xd1d6868700000000),
  5047. 166: uint64(0x59663aad00000000),
  5048. 167: uint64(0x1ef47e0200000000),
  5049. 168: uint64(0xb686308200000000),
  5050. 169: uint64(0xf114742d00000000),
  5051. 170: uint64(0x79a4c80700000000),
  5052. 171: uint64(0x3e368ca800000000),
  5053. 172: uint64(0x69c5b15200000000),
  5054. 173: uint64(0x2e57f5fd00000000),
  5055. 174: uint64(0xa6e749d700000000),
  5056. 175: uint64(0xe1750d7800000000),
  5057. 176: uint64(0xb704a40c00000000),
  5058. 177: uint64(0xf096e0a300000000),
  5059. 178: uint64(0x78265c8900000000),
  5060. 179: uint64(0x3fb4182600000000),
  5061. 180: uint64(0x684725dc00000000),
  5062. 181: uint64(0x2fd5617300000000),
  5063. 182: uint64(0xa765dd5900000000),
  5064. 183: uint64(0xe0f799f600000000),
  5065. 184: uint64(0x4885d77600000000),
  5066. 185: uint64(0x0f1793d900000000),
  5067. 186: uint64(0x87a72ff300000000),
  5068. 187: uint64(0xc0356b5c00000000),
  5069. 188: uint64(0x97c656a600000000),
  5070. 189: uint64(0xd054120900000000),
  5071. 190: uint64(0x58e4ae2300000000),
  5072. 191: uint64(0x1f76ea8c00000000),
  5073. 192: uint64(0x8e0582af00000000),
  5074. 193: uint64(0xc997c60000000000),
  5075. 194: uint64(0x41277a2a00000000),
  5076. 195: uint64(0x06b53e8500000000),
  5077. 196: uint64(0x5146037f00000000),
  5078. 197: uint64(0x16d447d000000000),
  5079. 198: uint64(0x9e64fbfa00000000),
  5080. 199: uint64(0xd9f6bf5500000000),
  5081. 200: uint64(0x7184f1d500000000),
  5082. 201: uint64(0x3616b57a00000000),
  5083. 202: uint64(0xbea6095000000000),
  5084. 203: uint64(0xf9344dff00000000),
  5085. 204: uint64(0xaec7700500000000),
  5086. 205: uint64(0xe95534aa00000000),
  5087. 206: uint64(0x61e5888000000000),
  5088. 207: uint64(0x2677cc2f00000000),
  5089. 208: uint64(0x7006655b00000000),
  5090. 209: uint64(0x379421f400000000),
  5091. 210: uint64(0xbf249dde00000000),
  5092. 211: uint64(0xf8b6d97100000000),
  5093. 212: uint64(0xaf45e48b00000000),
  5094. 213: uint64(0xe8d7a02400000000),
  5095. 214: uint64(0x60671c0e00000000),
  5096. 215: uint64(0x27f558a100000000),
  5097. 216: uint64(0x8f87162100000000),
  5098. 217: uint64(0xc815528e00000000),
  5099. 218: uint64(0x40a5eea400000000),
  5100. 219: uint64(0x0737aa0b00000000),
  5101. 220: uint64(0x50c497f100000000),
  5102. 221: uint64(0x1756d35e00000000),
  5103. 222: uint64(0x9fe66f7400000000),
  5104. 223: uint64(0xd8742bdb00000000),
  5105. 224: uint64(0x33043d9d00000000),
  5106. 225: uint64(0x7496793200000000),
  5107. 226: uint64(0xfc26c51800000000),
  5108. 227: uint64(0xbbb481b700000000),
  5109. 228: uint64(0xec47bc4d00000000),
  5110. 229: uint64(0xabd5f8e200000000),
  5111. 230: uint64(0x236544c800000000),
  5112. 231: uint64(0x64f7006700000000),
  5113. 232: uint64(0xcc854ee700000000),
  5114. 233: uint64(0x8b170a4800000000),
  5115. 234: uint64(0x03a7b66200000000),
  5116. 235: uint64(0x4435f2cd00000000),
  5117. 236: uint64(0x13c6cf3700000000),
  5118. 237: uint64(0x54548b9800000000),
  5119. 238: uint64(0xdce437b200000000),
  5120. 239: uint64(0x9b76731d00000000),
  5121. 240: uint64(0xcd07da6900000000),
  5122. 241: uint64(0x8a959ec600000000),
  5123. 242: uint64(0x022522ec00000000),
  5124. 243: uint64(0x45b7664300000000),
  5125. 244: uint64(0x12445bb900000000),
  5126. 245: uint64(0x55d61f1600000000),
  5127. 246: uint64(0xdd66a33c00000000),
  5128. 247: uint64(0x9af4e79300000000),
  5129. 248: uint64(0x3286a91300000000),
  5130. 249: uint64(0x7514edbc00000000),
  5131. 250: uint64(0xfda4519600000000),
  5132. 251: uint64(0xba36153900000000),
  5133. 252: uint64(0xedc528c300000000),
  5134. 253: uint64(0xaa576c6c00000000),
  5135. 254: uint64(0x22e7d04600000000),
  5136. 255: uint64(0x657594e900000000),
  5137. },
  5138. }
  5139. var _x2n_table = [32]Tz_crc_t{
  5140. 0: uint32(0x40000000),
  5141. 1: uint32(0x20000000),
  5142. 2: uint32(0x08000000),
  5143. 3: uint32(0x00800000),
  5144. 4: uint32(0x00008000),
  5145. 5: uint32(0xedb88320),
  5146. 6: uint32(0xb1e6b092),
  5147. 7: uint32(0xa06a2517),
  5148. 8: uint32(0xed627dae),
  5149. 9: uint32(0x88d14467),
  5150. 10: uint32(0xd7bbfe6a),
  5151. 11: uint32(0xec447f11),
  5152. 12: uint32(0x8e7ea170),
  5153. 13: uint32(0x6427800e),
  5154. 14: uint32(0x4d47bae0),
  5155. 15: uint32(0x09fe548f),
  5156. 16: uint32(0x83852d0f),
  5157. 17: uint32(0x30362f1a),
  5158. 18: uint32(0x7b5a9cc3),
  5159. 19: uint32(0x31fec169),
  5160. 20: uint32(0x9fec022a),
  5161. 21: uint32(0x6c8dedc4),
  5162. 22: uint32(0x15d6874d),
  5163. 23: uint32(0x5fde7a4e),
  5164. 24: uint32(0xbad90e37),
  5165. 25: uint32(0x2e4e5eef),
  5166. 26: uint32(0x4eaba214),
  5167. 27: uint32(0xa8a472c0),
  5168. 28: uint32(0x429a969e),
  5169. 29: uint32(0x148d302a),
  5170. 30: uint32(0xc40ba6d0),
  5171. 31: uint32(0xc4e22c3c),
  5172. }
  5173. /* CRC polynomial. */
  5174. // C documentation
  5175. //
  5176. // /*
  5177. // Return a(x) multiplied by b(x) modulo p(x), where p(x) is the CRC polynomial,
  5178. // reflected. For speed, this requires that a not be zero.
  5179. // */
  5180. func _multmodp(tls *libc.TLS, a Tz_crc_t, b Tz_crc_t) (r Tz_crc_t) {
  5181. var m, p Tz_crc_t
  5182. var v2 uint32
  5183. _, _, _ = m, p, v2
  5184. m = libc.Uint32FromInt32(1) << libc.Int32FromInt32(31)
  5185. p = uint32(0)
  5186. for {
  5187. if a&m != 0 {
  5188. p ^= b
  5189. if a&(m-uint32(1)) == uint32(0) {
  5190. break
  5191. }
  5192. }
  5193. m >>= uint32(1)
  5194. if b&uint32(1) != 0 {
  5195. v2 = b>>libc.Int32FromInt32(1) ^ uint32(m_POLY)
  5196. } else {
  5197. v2 = b >> int32(1)
  5198. }
  5199. b = v2
  5200. goto _1
  5201. _1:
  5202. }
  5203. return p
  5204. }
  5205. // C documentation
  5206. //
  5207. // /*
  5208. // Return x^(n * 2^k) modulo p(x). Requires that x2n_table[] has been
  5209. // initialized.
  5210. // */
  5211. func _x2nmodp(tls *libc.TLS, n Toff_t, k uint32) (r Tz_crc_t) {
  5212. var p Tz_crc_t
  5213. _ = p
  5214. p = libc.Uint32FromInt32(1) << libc.Int32FromInt32(31) /* x^0 == 1 */
  5215. for n != 0 {
  5216. if n&int64(1) != 0 {
  5217. p = _multmodp(tls, _x2n_table[k&uint32(31)], p)
  5218. }
  5219. n >>= int64(1)
  5220. k++
  5221. }
  5222. return p
  5223. }
  5224. // C documentation
  5225. //
  5226. // /* =========================================================================
  5227. // * This function can be used by asm versions of crc32(), and to force the
  5228. // * generation of the CRC tables in a threaded application.
  5229. // */
  5230. func Xget_crc_table(tls *libc.TLS) (r uintptr) {
  5231. return uintptr(unsafe.Pointer(&_crc_table))
  5232. }
  5233. /* =========================================================================
  5234. * Use ARM machine instructions if available. This will compute the CRC about
  5235. * ten times faster than the braided calculation. This code does not check for
  5236. * the presence of the CRC instruction at run time. __ARM_FEATURE_CRC32 will
  5237. * only be defined if the compilation specifies an ARM processor architecture
  5238. * that has the instructions. For example, compiling with -march=armv8.1-a or
  5239. * -march=armv8-a+crc, or -march=native if the compile machine has the crc32
  5240. * instructions.
  5241. */
  5242. // C documentation
  5243. //
  5244. // /*
  5245. // Return the CRC of the W bytes in the word_t data, taking the
  5246. // least-significant byte of the word as the first byte of data, without any pre
  5247. // or post conditioning. This is used to combine the CRCs of each braid.
  5248. // */
  5249. func _crc_word(tls *libc.TLS, data Tz_word_t) (r Tz_crc_t) {
  5250. var k int32
  5251. _ = k
  5252. k = 0
  5253. for {
  5254. if !(k < int32(m_W)) {
  5255. break
  5256. }
  5257. data = data>>libc.Int32FromInt32(8) ^ uint64(_crc_table[data&uint64(0xff)])
  5258. goto _1
  5259. _1:
  5260. k++
  5261. }
  5262. return uint32(data)
  5263. }
  5264. func _crc_word_big(tls *libc.TLS, data Tz_word_t) (r Tz_word_t) {
  5265. var k int32
  5266. _ = k
  5267. k = 0
  5268. for {
  5269. if !(k < int32(m_W)) {
  5270. break
  5271. }
  5272. data = data<<libc.Int32FromInt32(8) ^ _crc_big_table[data>>((libc.Int32FromInt32(m_W)-libc.Int32FromInt32(1))<<libc.Int32FromInt32(3))&uint64(0xff)]
  5273. goto _1
  5274. _1:
  5275. k++
  5276. }
  5277. return data
  5278. }
  5279. // C documentation
  5280. //
  5281. // /* ========================================================================= */
  5282. func Xcrc32_z(tls *libc.TLS, crc uint64, buf uintptr, len1 Tz_size_t) (r uint64) {
  5283. bp := tls.Alloc(16)
  5284. defer tls.Free(16)
  5285. var blks, v2, v4 Tz_size_t
  5286. var comb, crc01, crc11, crc21, crc31, crc41, word0, word01, word1, word11, word2, word21, word3, word31, word4, word41 Tz_word_t
  5287. var crc0, crc1, crc2, crc3, crc4 Tz_crc_t
  5288. var k int32
  5289. var words, v1, v10, v11, v12, v13, v14, v6, v7, v8, v9 uintptr
  5290. var _ /* endian at bp+0 */ uint32
  5291. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = blks, comb, crc0, crc01, crc1, crc11, crc2, crc21, crc3, crc31, crc4, crc41, k, word0, word01, word1, word11, word2, word21, word3, word31, word4, word41, words, v1, v10, v11, v12, v13, v14, v2, v4, v6, v7, v8, v9
  5292. /* Return initial CRC, if requested. */
  5293. if buf == uintptr(m_Z_NULL) {
  5294. return uint64(0)
  5295. }
  5296. /* Pre-condition the CRC */
  5297. crc = ^crc & uint64(0xffffffff)
  5298. /* If provided enough bytes, do a braided CRC calculation. */
  5299. if len1 >= uint64(libc.Int32FromInt32(m_N)*libc.Int32FromInt32(m_W)+libc.Int32FromInt32(m_W)-libc.Int32FromInt32(1)) {
  5300. /* Compute the CRC up to a z_word_t boundary. */
  5301. for len1 != 0 && uint64(buf)&uint64(libc.Int32FromInt32(m_W)-libc.Int32FromInt32(1)) != uint64(0) {
  5302. len1--
  5303. v1 = buf
  5304. buf++
  5305. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v1))))&uint64(0xff)])
  5306. }
  5307. /* Compute the CRC on as many N z_word_t blocks as are available. */
  5308. blks = len1 / uint64(libc.Int32FromInt32(m_N)*libc.Int32FromInt32(m_W))
  5309. len1 -= blks * uint64(m_N) * uint64(m_W)
  5310. words = buf
  5311. /* Do endian check at execution time instead of compile time, since ARM
  5312. processors can change the endianness at execution time. If the
  5313. compiler knows what the endianness will be, it can optimize out the
  5314. check and the unused branch. */
  5315. *(*uint32)(unsafe.Pointer(bp)) = uint32(1)
  5316. if *(*uint8)(unsafe.Pointer(bp)) != 0 {
  5317. /* Initialize the CRC for each braid. */
  5318. crc0 = uint32(crc)
  5319. crc1 = uint32(0)
  5320. crc2 = uint32(0)
  5321. crc3 = uint32(0)
  5322. crc4 = uint32(0)
  5323. /*
  5324. Process the first blks-1 blocks, computing the CRCs on each braid
  5325. independently.
  5326. */
  5327. for {
  5328. blks--
  5329. v2 = blks
  5330. if !(v2 != 0) {
  5331. break
  5332. }
  5333. /* Load the word for each braid into registers. */
  5334. word0 = uint64(crc0) ^ *(*Tz_word_t)(unsafe.Pointer(words))
  5335. word1 = uint64(crc1) ^ *(*Tz_word_t)(unsafe.Pointer(words + 1*8))
  5336. word2 = uint64(crc2) ^ *(*Tz_word_t)(unsafe.Pointer(words + 2*8))
  5337. word3 = uint64(crc3) ^ *(*Tz_word_t)(unsafe.Pointer(words + 3*8))
  5338. word4 = uint64(crc4) ^ *(*Tz_word_t)(unsafe.Pointer(words + 4*8))
  5339. words += uintptr(m_N) * 8
  5340. /* Compute and update the CRC for each word. The loop should
  5341. get unrolled. */
  5342. crc0 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word0&uint64(0xff))*4))
  5343. crc1 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word1&uint64(0xff))*4))
  5344. crc2 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word2&uint64(0xff))*4))
  5345. crc3 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word3&uint64(0xff))*4))
  5346. crc4 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word4&uint64(0xff))*4))
  5347. k = int32(1)
  5348. for {
  5349. if !(k < int32(m_W)) {
  5350. break
  5351. }
  5352. crc0 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word0>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*4))
  5353. crc1 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word1>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*4))
  5354. crc2 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word2>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*4))
  5355. crc3 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word3>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*4))
  5356. crc4 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word4>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*4))
  5357. goto _3
  5358. _3:
  5359. k++
  5360. }
  5361. }
  5362. /*
  5363. Process the last block, combining the CRCs of the N braids at the
  5364. same time.
  5365. */
  5366. crc = uint64(_crc_word(tls, uint64(crc0)^*(*Tz_word_t)(unsafe.Pointer(words))))
  5367. crc = uint64(_crc_word(tls, uint64(crc1)^*(*Tz_word_t)(unsafe.Pointer(words + 1*8))^crc))
  5368. crc = uint64(_crc_word(tls, uint64(crc2)^*(*Tz_word_t)(unsafe.Pointer(words + 2*8))^crc))
  5369. crc = uint64(_crc_word(tls, uint64(crc3)^*(*Tz_word_t)(unsafe.Pointer(words + 3*8))^crc))
  5370. crc = uint64(_crc_word(tls, uint64(crc4)^*(*Tz_word_t)(unsafe.Pointer(words + 4*8))^crc))
  5371. words += uintptr(m_N) * 8
  5372. } else {
  5373. /* Initialize the CRC for each braid. */
  5374. crc01 = _byte_swap(tls, crc)
  5375. crc11 = uint64(0)
  5376. crc21 = uint64(0)
  5377. crc31 = uint64(0)
  5378. crc41 = uint64(0)
  5379. /*
  5380. Process the first blks-1 blocks, computing the CRCs on each braid
  5381. independently.
  5382. */
  5383. for {
  5384. blks--
  5385. v4 = blks
  5386. if !(v4 != 0) {
  5387. break
  5388. }
  5389. /* Load the word for each braid into registers. */
  5390. word01 = crc01 ^ *(*Tz_word_t)(unsafe.Pointer(words))
  5391. word11 = crc11 ^ *(*Tz_word_t)(unsafe.Pointer(words + 1*8))
  5392. word21 = crc21 ^ *(*Tz_word_t)(unsafe.Pointer(words + 2*8))
  5393. word31 = crc31 ^ *(*Tz_word_t)(unsafe.Pointer(words + 3*8))
  5394. word41 = crc41 ^ *(*Tz_word_t)(unsafe.Pointer(words + 4*8))
  5395. words += uintptr(m_N) * 8
  5396. /* Compute and update the CRC for each word. The loop should
  5397. get unrolled. */
  5398. crc01 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word01&uint64(0xff))*8))
  5399. crc11 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word11&uint64(0xff))*8))
  5400. crc21 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word21&uint64(0xff))*8))
  5401. crc31 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word31&uint64(0xff))*8))
  5402. crc41 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word41&uint64(0xff))*8))
  5403. k = int32(1)
  5404. for {
  5405. if !(k < int32(m_W)) {
  5406. break
  5407. }
  5408. crc01 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*2048 + uintptr(word01>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*8))
  5409. crc11 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*2048 + uintptr(word11>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*8))
  5410. crc21 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*2048 + uintptr(word21>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*8))
  5411. crc31 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*2048 + uintptr(word31>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*8))
  5412. crc41 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*2048 + uintptr(word41>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*8))
  5413. goto _5
  5414. _5:
  5415. k++
  5416. }
  5417. }
  5418. /*
  5419. Process the last block, combining the CRCs of the N braids at the
  5420. same time.
  5421. */
  5422. comb = _crc_word_big(tls, crc01^*(*Tz_word_t)(unsafe.Pointer(words)))
  5423. comb = _crc_word_big(tls, crc11^*(*Tz_word_t)(unsafe.Pointer(words + 1*8))^comb)
  5424. comb = _crc_word_big(tls, crc21^*(*Tz_word_t)(unsafe.Pointer(words + 2*8))^comb)
  5425. comb = _crc_word_big(tls, crc31^*(*Tz_word_t)(unsafe.Pointer(words + 3*8))^comb)
  5426. comb = _crc_word_big(tls, crc41^*(*Tz_word_t)(unsafe.Pointer(words + 4*8))^comb)
  5427. words += uintptr(m_N) * 8
  5428. crc = _byte_swap(tls, comb)
  5429. }
  5430. /*
  5431. Update the pointer to the remaining bytes to process.
  5432. */
  5433. buf = words
  5434. }
  5435. /* Complete the computation of the CRC on any remaining bytes. */
  5436. for len1 >= uint64(8) {
  5437. len1 -= uint64(8)
  5438. v6 = buf
  5439. buf++
  5440. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v6))))&uint64(0xff)])
  5441. v7 = buf
  5442. buf++
  5443. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v7))))&uint64(0xff)])
  5444. v8 = buf
  5445. buf++
  5446. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v8))))&uint64(0xff)])
  5447. v9 = buf
  5448. buf++
  5449. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v9))))&uint64(0xff)])
  5450. v10 = buf
  5451. buf++
  5452. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v10))))&uint64(0xff)])
  5453. v11 = buf
  5454. buf++
  5455. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v11))))&uint64(0xff)])
  5456. v12 = buf
  5457. buf++
  5458. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v12))))&uint64(0xff)])
  5459. v13 = buf
  5460. buf++
  5461. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v13))))&uint64(0xff)])
  5462. }
  5463. for len1 != 0 {
  5464. len1--
  5465. v14 = buf
  5466. buf++
  5467. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v14))))&uint64(0xff)])
  5468. }
  5469. /* Return the CRC, post-conditioned. */
  5470. return crc ^ uint64(0xffffffff)
  5471. }
  5472. // C documentation
  5473. //
  5474. // /* ========================================================================= */
  5475. func Xcrc32(tls *libc.TLS, crc uint64, buf uintptr, len1 TuInt) (r uint64) {
  5476. return Xcrc32_z(tls, crc, buf, uint64(len1))
  5477. }
  5478. // C documentation
  5479. //
  5480. // /* ========================================================================= */
  5481. func Xcrc32_combine64(tls *libc.TLS, crc1 TuLong, crc2 TuLong, len2 Toff_t) (r TuLong) {
  5482. return uint64(_multmodp(tls, _x2nmodp(tls, len2, uint32(3)), uint32(crc1))) ^ crc2&uint64(0xffffffff)
  5483. }
  5484. // C documentation
  5485. //
  5486. // /* ========================================================================= */
  5487. func Xcrc32_combine(tls *libc.TLS, crc1 TuLong, crc2 TuLong, len2 Toff_t) (r TuLong) {
  5488. return Xcrc32_combine64(tls, crc1, crc2, len2)
  5489. }
  5490. // C documentation
  5491. //
  5492. // /* ========================================================================= */
  5493. func Xcrc32_combine_gen64(tls *libc.TLS, len2 Toff_t) (r TuLong) {
  5494. return uint64(_x2nmodp(tls, len2, uint32(3)))
  5495. }
  5496. // C documentation
  5497. //
  5498. // /* ========================================================================= */
  5499. func Xcrc32_combine_gen(tls *libc.TLS, len2 Toff_t) (r TuLong) {
  5500. return Xcrc32_combine_gen64(tls, len2)
  5501. }
  5502. // C documentation
  5503. //
  5504. // /* ========================================================================= */
  5505. func Xcrc32_combine_op(tls *libc.TLS, crc1 TuLong, crc2 TuLong, op TuLong) (r TuLong) {
  5506. return uint64(_multmodp(tls, uint32(op), uint32(crc1))) ^ crc2&uint64(0xffffffff)
  5507. }
  5508. const m_BL_CODES = 19
  5509. const m_BUSY_STATE = 113
  5510. const m_Buf_size = 16
  5511. const m_COMMENT_STATE = 91
  5512. const m_DEF_MEM_LEVEL = 8
  5513. const m_D_CODES = 30
  5514. const m_EXTRA_STATE = 69
  5515. const m_FINISH_STATE = 666
  5516. const m_GZIP_STATE = 57
  5517. const m_HCRC_STATE = 103
  5518. const m_INIT_STATE = 42
  5519. const m_LENGTH_CODES = 29
  5520. const m_LITERALS = 256
  5521. const m_MAX_BITS = 15
  5522. const m_MAX_MATCH = 258
  5523. const m_MAX_MEM_LEVEL = 9
  5524. const m_MAX_STORED = 65535
  5525. const m_MAX_WBITS = 15
  5526. const m_MIN_MATCH = 3
  5527. const m_NAME_STATE = 73
  5528. const m_NIL = 0
  5529. const m_OS_CODE = 3
  5530. const m_PRESET_DICT = 32
  5531. const m_TOO_FAR = 4096
  5532. const m_ZLIB_VERSION = "1.3"
  5533. const m_Z_BLOCK = 5
  5534. const m_Z_DEFAULT_STRATEGY = 0
  5535. const m_Z_DEFLATED = 8
  5536. const m_Z_FILTERED = 1
  5537. const m_Z_FINISH = 4
  5538. const m_Z_FIXED = 4
  5539. const m_Z_FULL_FLUSH = 3
  5540. const m_Z_HUFFMAN_ONLY = 2
  5541. const m_Z_NEED_DICT = 2
  5542. const m_Z_NO_FLUSH = 0
  5543. const m_Z_OK = 0
  5544. const m_Z_PARTIAL_FLUSH = 1
  5545. const m_Z_RLE = 3
  5546. const m_Z_STREAM_END = 1
  5547. const m_Z_UNKNOWN = 2
  5548. type Tinternal_state = struct {
  5549. Fstrm Tz_streamp
  5550. Fstatus int32
  5551. Fpending_buf uintptr
  5552. Fpending_buf_size Tulg
  5553. Fpending_out uintptr
  5554. Fpending Tulg
  5555. Fwrap int32
  5556. Fgzhead Tgz_headerp
  5557. Fgzindex Tulg
  5558. Fmethod TByte
  5559. Flast_flush int32
  5560. Fw_size TuInt
  5561. Fw_bits TuInt
  5562. Fw_mask TuInt
  5563. Fwindow uintptr
  5564. Fwindow_size Tulg
  5565. Fprev uintptr
  5566. Fhead uintptr
  5567. Fins_h TuInt
  5568. Fhash_size TuInt
  5569. Fhash_bits TuInt
  5570. Fhash_mask TuInt
  5571. Fhash_shift TuInt
  5572. Fblock_start int64
  5573. Fmatch_length TuInt
  5574. Fprev_match TIPos
  5575. Fmatch_available int32
  5576. Fstrstart TuInt
  5577. Fmatch_start TuInt
  5578. Flookahead TuInt
  5579. Fprev_length TuInt
  5580. Fmax_chain_length TuInt
  5581. Fmax_lazy_match TuInt
  5582. Flevel int32
  5583. Fstrategy int32
  5584. Fgood_match TuInt
  5585. Fnice_match int32
  5586. Fdyn_ltree [573]Tct_data_s
  5587. Fdyn_dtree [61]Tct_data_s
  5588. Fbl_tree [39]Tct_data_s
  5589. Fl_desc Ttree_desc_s
  5590. Fd_desc Ttree_desc_s
  5591. Fbl_desc Ttree_desc_s
  5592. Fbl_count [16]Tush
  5593. Fheap [573]int32
  5594. Fheap_len int32
  5595. Fheap_max int32
  5596. Fdepth [573]Tuch
  5597. Fsym_buf uintptr
  5598. Flit_bufsize TuInt
  5599. Fsym_next TuInt
  5600. Fsym_end TuInt
  5601. Fopt_len Tulg
  5602. Fstatic_len Tulg
  5603. Fmatches TuInt
  5604. Finsert TuInt
  5605. Fbi_buf Tush
  5606. Fbi_valid int32
  5607. Fhigh_water Tulg
  5608. }
  5609. type Tct_data = struct {
  5610. Ffc struct {
  5611. Fcode [0]Tush
  5612. Ffreq Tush
  5613. }
  5614. Fdl struct {
  5615. Flen1 [0]Tush
  5616. Fdad Tush
  5617. }
  5618. }
  5619. type Tct_data_s = Tct_data
  5620. type Ttree_desc = struct {
  5621. Fdyn_tree uintptr
  5622. Fmax_code int32
  5623. Fstat_desc uintptr
  5624. }
  5625. type Ttree_desc_s = Ttree_desc
  5626. type TPos = uint16
  5627. type TPosf = uint16
  5628. type TIPos = uint32
  5629. type Tdeflate_state = struct {
  5630. Fstrm Tz_streamp
  5631. Fstatus int32
  5632. Fpending_buf uintptr
  5633. Fpending_buf_size Tulg
  5634. Fpending_out uintptr
  5635. Fpending Tulg
  5636. Fwrap int32
  5637. Fgzhead Tgz_headerp
  5638. Fgzindex Tulg
  5639. Fmethod TByte
  5640. Flast_flush int32
  5641. Fw_size TuInt
  5642. Fw_bits TuInt
  5643. Fw_mask TuInt
  5644. Fwindow uintptr
  5645. Fwindow_size Tulg
  5646. Fprev uintptr
  5647. Fhead uintptr
  5648. Fins_h TuInt
  5649. Fhash_size TuInt
  5650. Fhash_bits TuInt
  5651. Fhash_mask TuInt
  5652. Fhash_shift TuInt
  5653. Fblock_start int64
  5654. Fmatch_length TuInt
  5655. Fprev_match TIPos
  5656. Fmatch_available int32
  5657. Fstrstart TuInt
  5658. Fmatch_start TuInt
  5659. Flookahead TuInt
  5660. Fprev_length TuInt
  5661. Fmax_chain_length TuInt
  5662. Fmax_lazy_match TuInt
  5663. Flevel int32
  5664. Fstrategy int32
  5665. Fgood_match TuInt
  5666. Fnice_match int32
  5667. Fdyn_ltree [573]Tct_data_s
  5668. Fdyn_dtree [61]Tct_data_s
  5669. Fbl_tree [39]Tct_data_s
  5670. Fl_desc Ttree_desc_s
  5671. Fd_desc Ttree_desc_s
  5672. Fbl_desc Ttree_desc_s
  5673. Fbl_count [16]Tush
  5674. Fheap [573]int32
  5675. Fheap_len int32
  5676. Fheap_max int32
  5677. Fdepth [573]Tuch
  5678. Fsym_buf uintptr
  5679. Flit_bufsize TuInt
  5680. Fsym_next TuInt
  5681. Fsym_end TuInt
  5682. Fopt_len Tulg
  5683. Fstatic_len Tulg
  5684. Fmatches TuInt
  5685. Finsert TuInt
  5686. Fbi_buf Tush
  5687. Fbi_valid int32
  5688. Fhigh_water Tulg
  5689. }
  5690. /*
  5691. If you use the zlib library in a product, an acknowledgment is welcome
  5692. in the documentation of your product. If for some reason you cannot
  5693. include such an acknowledgment, I would appreciate that you keep this
  5694. copyright string in the executable of your product.
  5695. */
  5696. type Tblock_state = int32
  5697. const _need_more = 0
  5698. const /* block not completed, need more input or more output */
  5699. _block_done = 1
  5700. const /* block flush performed */
  5701. _finish_started = 2
  5702. const /* finish started, need only more output at next deflate */
  5703. _finish_done = 3
  5704. type Tcompress_func = uintptr
  5705. /* ===========================================================================
  5706. * Local data
  5707. */
  5708. /* Tail of hash chains */
  5709. /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
  5710. // C documentation
  5711. //
  5712. // /* Values for max_lazy_match, good_match and max_chain_length, depending on
  5713. // * the desired pack level (0..9). The values given below have been tuned to
  5714. // * exclude worst case performance for pathological files. Better values may be
  5715. // * found for specific files.
  5716. // */
  5717. type Tconfig = struct {
  5718. Fgood_length Tush
  5719. Fmax_lazy Tush
  5720. Fnice_length Tush
  5721. Fmax_chain Tush
  5722. Ffunc1 Tcompress_func
  5723. }
  5724. /* ===========================================================================
  5725. * Local data
  5726. */
  5727. /* Tail of hash chains */
  5728. /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
  5729. // C documentation
  5730. //
  5731. // /* Values for max_lazy_match, good_match and max_chain_length, depending on
  5732. // * the desired pack level (0..9). The values given below have been tuned to
  5733. // * exclude worst case performance for pathological files. Better values may be
  5734. // * found for specific files.
  5735. // */
  5736. type Tconfig_s = Tconfig
  5737. var _configuration_table = [10]Tconfig{
  5738. 0: {},
  5739. 1: {
  5740. Fgood_length: uint16(4),
  5741. Fmax_lazy: uint16(4),
  5742. Fnice_length: uint16(8),
  5743. Fmax_chain: uint16(4),
  5744. },
  5745. 2: {
  5746. Fgood_length: uint16(4),
  5747. Fmax_lazy: uint16(5),
  5748. Fnice_length: uint16(16),
  5749. Fmax_chain: uint16(8),
  5750. },
  5751. 3: {
  5752. Fgood_length: uint16(4),
  5753. Fmax_lazy: uint16(6),
  5754. Fnice_length: uint16(32),
  5755. Fmax_chain: uint16(32),
  5756. },
  5757. 4: {
  5758. Fgood_length: uint16(4),
  5759. Fmax_lazy: uint16(4),
  5760. Fnice_length: uint16(16),
  5761. Fmax_chain: uint16(16),
  5762. },
  5763. 5: {
  5764. Fgood_length: uint16(8),
  5765. Fmax_lazy: uint16(16),
  5766. Fnice_length: uint16(32),
  5767. Fmax_chain: uint16(32),
  5768. },
  5769. 6: {
  5770. Fgood_length: uint16(8),
  5771. Fmax_lazy: uint16(16),
  5772. Fnice_length: uint16(128),
  5773. Fmax_chain: uint16(128),
  5774. },
  5775. 7: {
  5776. Fgood_length: uint16(8),
  5777. Fmax_lazy: uint16(32),
  5778. Fnice_length: uint16(128),
  5779. Fmax_chain: uint16(256),
  5780. },
  5781. 8: {
  5782. Fgood_length: uint16(32),
  5783. Fmax_lazy: uint16(128),
  5784. Fnice_length: uint16(258),
  5785. Fmax_chain: uint16(1024),
  5786. },
  5787. 9: {
  5788. Fgood_length: uint16(32),
  5789. Fmax_lazy: uint16(258),
  5790. Fnice_length: uint16(258),
  5791. Fmax_chain: uint16(4096),
  5792. },
  5793. }
  5794. func init() {
  5795. p := unsafe.Pointer(&_configuration_table)
  5796. *(*uintptr)(unsafe.Add(p, 8)) = __ccgo_fp(_deflate_stored)
  5797. *(*uintptr)(unsafe.Add(p, 24)) = __ccgo_fp(_deflate_fast)
  5798. *(*uintptr)(unsafe.Add(p, 40)) = __ccgo_fp(_deflate_fast)
  5799. *(*uintptr)(unsafe.Add(p, 56)) = __ccgo_fp(_deflate_fast)
  5800. *(*uintptr)(unsafe.Add(p, 72)) = __ccgo_fp(_deflate_slow)
  5801. *(*uintptr)(unsafe.Add(p, 88)) = __ccgo_fp(_deflate_slow)
  5802. *(*uintptr)(unsafe.Add(p, 104)) = __ccgo_fp(_deflate_slow)
  5803. *(*uintptr)(unsafe.Add(p, 120)) = __ccgo_fp(_deflate_slow)
  5804. *(*uintptr)(unsafe.Add(p, 136)) = __ccgo_fp(_deflate_slow)
  5805. *(*uintptr)(unsafe.Add(p, 152)) = __ccgo_fp(_deflate_slow)
  5806. }
  5807. /* max compression */
  5808. /* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4
  5809. * For deflate_fast() (levels <= 3) good is ignored and lazy has a different
  5810. * meaning.
  5811. */
  5812. /* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */
  5813. /* ===========================================================================
  5814. * Update a hash value with the given input byte
  5815. * IN assertion: all calls to UPDATE_HASH are made with consecutive input
  5816. * characters, so that a running hash key can be computed from the previous
  5817. * key instead of complete recalculation each time.
  5818. */
  5819. /* ===========================================================================
  5820. * Insert string str in the dictionary and set match_head to the previous head
  5821. * of the hash chain (the most recent string with same hash key). Return
  5822. * the previous length of the hash chain.
  5823. * If this file is compiled with -DFASTEST, the compression level is forced
  5824. * to 1, and no hash chains are maintained.
  5825. * IN assertion: all calls to INSERT_STRING are made with consecutive input
  5826. * characters and the first MIN_MATCH bytes of str are valid (except for
  5827. * the last MIN_MATCH-1 bytes of the input file).
  5828. */
  5829. /* ===========================================================================
  5830. * Initialize the hash table (avoiding 64K overflow for 16 bit systems).
  5831. * prev[] will be initialized on the fly.
  5832. */
  5833. // C documentation
  5834. //
  5835. // /* ===========================================================================
  5836. // * Slide the hash table when sliding the window down (could be avoided with 32
  5837. // * bit values at the expense of memory usage). We slide even when level == 0 to
  5838. // * keep the hash table consistent if we switch back to level > 0 later.
  5839. // */
  5840. func _slide_hash(tls *libc.TLS, s uintptr) {
  5841. var m, n, v1, v4, v5, v8 uint32
  5842. var p, v3, v7 uintptr
  5843. var wsize TuInt
  5844. _, _, _, _, _, _, _, _, _, _ = m, n, p, wsize, v1, v3, v4, v5, v7, v8
  5845. wsize = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  5846. n = (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size
  5847. p = (*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr(n)*2
  5848. for {
  5849. p -= 2
  5850. v3 = p
  5851. m = uint32(*(*TPosf)(unsafe.Pointer(v3)))
  5852. if m >= wsize {
  5853. v4 = m - wsize
  5854. } else {
  5855. v4 = uint32(m_NIL)
  5856. }
  5857. *(*TPosf)(unsafe.Pointer(p)) = uint16(v4)
  5858. goto _2
  5859. _2:
  5860. n--
  5861. v1 = n
  5862. if !(v1 != 0) {
  5863. break
  5864. }
  5865. }
  5866. n = wsize
  5867. p = (*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr(n)*2
  5868. for {
  5869. p -= 2
  5870. v7 = p
  5871. m = uint32(*(*TPosf)(unsafe.Pointer(v7)))
  5872. if m >= wsize {
  5873. v8 = m - wsize
  5874. } else {
  5875. v8 = uint32(m_NIL)
  5876. }
  5877. *(*TPosf)(unsafe.Pointer(p)) = uint16(v8)
  5878. /* If n is not on any hash chain, prev[n] is garbage but
  5879. * its value will never be used.
  5880. */
  5881. goto _6
  5882. _6:
  5883. n--
  5884. v5 = n
  5885. if !(v5 != 0) {
  5886. break
  5887. }
  5888. }
  5889. }
  5890. // C documentation
  5891. //
  5892. // /* ===========================================================================
  5893. // * Read a new buffer from the current input stream, update the adler32
  5894. // * and total number of bytes read. All deflate() input goes through
  5895. // * this function so some applications may wish to modify it to avoid
  5896. // * allocating a large strm->next_in buffer and copying from it.
  5897. // * (See also flush_pending()).
  5898. // */
  5899. func _read_buf(tls *libc.TLS, strm Tz_streamp, buf uintptr, size uint32) (r uint32) {
  5900. var len1 uint32
  5901. _ = len1
  5902. len1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  5903. if len1 > size {
  5904. len1 = size
  5905. }
  5906. if len1 == uint32(0) {
  5907. return uint32(0)
  5908. }
  5909. *(*TuInt)(unsafe.Pointer(strm + 8)) -= len1
  5910. libc.Xmemcpy(tls, buf, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, uint64(len1))
  5911. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap == int32(1) {
  5912. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, buf, len1)
  5913. } else {
  5914. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap == int32(2) {
  5915. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, buf, len1)
  5916. }
  5917. }
  5918. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(len1)
  5919. *(*TuLong)(unsafe.Pointer(strm + 16)) += uint64(len1)
  5920. return len1
  5921. }
  5922. // C documentation
  5923. //
  5924. // /* ===========================================================================
  5925. // * Fill the window when the lookahead becomes insufficient.
  5926. // * Updates strstart and lookahead.
  5927. // *
  5928. // * IN assertion: lookahead < MIN_LOOKAHEAD
  5929. // * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
  5930. // * At least one byte has been read, or avail_in == 0; reads are
  5931. // * performed for at least two bytes (required for the zip translate_eol
  5932. // * option -- not supported here).
  5933. // */
  5934. func _fill_window(tls *libc.TLS, s uintptr) {
  5935. var curr, init1 Tulg
  5936. var more, n uint32
  5937. var str, wsize TuInt
  5938. _, _, _, _, _, _ = curr, init1, more, n, str, wsize /* Amount of free space at the end of the window. */
  5939. wsize = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  5940. for cond := true; cond; cond = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in != uint32(0) {
  5941. more = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - uint64((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead) - uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  5942. /* Deal with !@#$% 64K limit: */
  5943. if uint64(4) <= uint64(2) {
  5944. if more == uint32(0) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart == uint32(0) && (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  5945. more = wsize
  5946. } else {
  5947. if more == uint32(-libc.Int32FromInt32(1)) {
  5948. /* Very unlikely, but possible on 16 bit machine if
  5949. * strstart == 0 && lookahead == 1 (input done a byte at time)
  5950. */
  5951. more--
  5952. }
  5953. }
  5954. }
  5955. /* If the window is almost full and there is insufficient lookahead,
  5956. * move the upper half to the lower one to make room in the upper half.
  5957. */
  5958. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart >= wsize+((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1))) {
  5959. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr(wsize), uint64(wsize-more))
  5960. *(*TuInt)(unsafe.Pointer(s + 176)) -= wsize
  5961. *(*TuInt)(unsafe.Pointer(s + 172)) -= wsize /* we now have strstart >= MAX_DIST */
  5962. *(*int64)(unsafe.Pointer(s + 152)) -= int64(wsize)
  5963. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  5964. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  5965. }
  5966. _slide_hash(tls, s)
  5967. more += wsize
  5968. }
  5969. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) {
  5970. break
  5971. }
  5972. /* If there was no sliding:
  5973. * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
  5974. * more == window_size - lookahead - strstart
  5975. * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
  5976. * => more >= window_size - 2*WSIZE + 2
  5977. * In the BIG_MEM or MMAP case (not yet supported),
  5978. * window_size == input_size + MIN_LOOKAHEAD &&
  5979. * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
  5980. * Otherwise, window_size == 2*WSIZE so more >= 2.
  5981. * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
  5982. */
  5983. n = _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead), more)
  5984. *(*TuInt)(unsafe.Pointer(s + 180)) += n
  5985. /* Initialize the hash value now that we have some input: */
  5986. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead+(*Tdeflate_state)(unsafe.Pointer(s)).Finsert >= uint32(m_MIN_MATCH) {
  5987. str = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  5988. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(str))))
  5989. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(str+uint32(1)))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  5990. for (*Tdeflate_state)(unsafe.Pointer(s)).Finsert != 0 {
  5991. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(str+uint32(m_MIN_MATCH)-uint32(1)))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  5992. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr(str&(*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask)*2)) = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  5993. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16(str)
  5994. str++
  5995. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert--
  5996. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead+(*Tdeflate_state)(unsafe.Pointer(s)).Finsert < uint32(m_MIN_MATCH) {
  5997. break
  5998. }
  5999. }
  6000. }
  6001. /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
  6002. * but this is not important since only literal bytes will be emitted.
  6003. */
  6004. }
  6005. /* If the WIN_INIT bytes after the end of the current data have never been
  6006. * written, then zero those bytes in order to avoid memory check reports of
  6007. * the use of uninitialized (or uninitialised as Julian writes) bytes by
  6008. * the longest match routines. Update the high water mark for the next
  6009. * time through here. WIN_INIT is set to MAX_MATCH since the longest match
  6010. * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.
  6011. */
  6012. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size {
  6013. curr = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uint64((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead)
  6014. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < curr {
  6015. /* Previous high water mark below current data -- zero WIN_INIT
  6016. * bytes or up to end of window, whichever is less.
  6017. */
  6018. init1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - curr
  6019. if init1 > uint64(m_MAX_MATCH) {
  6020. init1 = uint64(m_MAX_MATCH)
  6021. }
  6022. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr(curr), 0, uint64(uint32(init1)))
  6023. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = curr + init1
  6024. } else {
  6025. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < curr+uint64(m_MAX_MATCH) {
  6026. /* High water mark at or above current data, but below current data
  6027. * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up
  6028. * to end of window, whichever is less.
  6029. */
  6030. init1 = curr + uint64(m_MAX_MATCH) - (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water
  6031. if init1 > (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size-(*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water {
  6032. init1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water
  6033. }
  6034. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water), 0, uint64(uint32(init1)))
  6035. *(*Tulg)(unsafe.Pointer(s + 5944)) += init1
  6036. }
  6037. }
  6038. }
  6039. }
  6040. // C documentation
  6041. //
  6042. // /* ========================================================================= */
  6043. func XdeflateInit_(tls *libc.TLS, strm Tz_streamp, level int32, version uintptr, stream_size int32) (r int32) {
  6044. return XdeflateInit2_(tls, strm, level, int32(m_Z_DEFLATED), int32(m_MAX_WBITS), int32(m_DEF_MEM_LEVEL), m_Z_DEFAULT_STRATEGY, version, stream_size)
  6045. /* To do: ignore strm->next_in if we use it as window */
  6046. }
  6047. // C documentation
  6048. //
  6049. // /* ========================================================================= */
  6050. func XdeflateInit2_(tls *libc.TLS, strm Tz_streamp, level int32, method int32, windowBits int32, memLevel int32, strategy int32, version uintptr, stream_size int32) (r int32) {
  6051. var s uintptr
  6052. var wrap int32
  6053. _, _ = s, wrap
  6054. wrap = int32(1)
  6055. if version == uintptr(m_Z_NULL) || int32(*(*uint8)(unsafe.Pointer(version))) != int32(_my_version[0]) || uint64(stream_size) != uint64(112) {
  6056. return -int32(6)
  6057. }
  6058. if strm == uintptr(m_Z_NULL) {
  6059. return -int32(2)
  6060. }
  6061. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  6062. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  6063. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  6064. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  6065. }
  6066. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  6067. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  6068. }
  6069. if level == -int32(1) {
  6070. level = int32(6)
  6071. }
  6072. if windowBits < 0 { /* suppress zlib wrapper */
  6073. wrap = 0
  6074. if windowBits < -int32(15) {
  6075. return -int32(2)
  6076. }
  6077. windowBits = -windowBits
  6078. } else {
  6079. if windowBits > int32(15) {
  6080. wrap = int32(2) /* write gzip wrapper instead */
  6081. windowBits -= int32(16)
  6082. }
  6083. }
  6084. if memLevel < int32(1) || memLevel > int32(m_MAX_MEM_LEVEL) || method != int32(m_Z_DEFLATED) || windowBits < int32(8) || windowBits > int32(15) || level < 0 || level > int32(9) || strategy < 0 || strategy > int32(m_Z_FIXED) || windowBits == int32(8) && wrap != int32(1) {
  6085. return -int32(2)
  6086. }
  6087. if windowBits == int32(8) {
  6088. windowBits = int32(9)
  6089. } /* until 256-byte window bug fixed */
  6090. s = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, uint32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(5952)))
  6091. if s == uintptr(m_Z_NULL) {
  6092. return -int32(4)
  6093. }
  6094. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = s
  6095. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm = strm
  6096. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_INIT_STATE) /* to pass state test in deflateReset() */
  6097. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = wrap
  6098. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead = uintptr(m_Z_NULL)
  6099. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits = uint32(windowBits)
  6100. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size = uint32(int32(1) << (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits)
  6101. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - uint32(1)
  6102. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits = uint32(memLevel) + uint32(7)
  6103. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size = uint32(int32(1) << (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits)
  6104. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask = (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size - uint32(1)
  6105. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift = ((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits + libc.Uint32FromInt32(m_MIN_MATCH) - libc.Uint32FromInt32(1)) / libc.Uint32FromInt32(m_MIN_MATCH)
  6106. (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size, uint32(libc.Uint64FromInt32(2)*libc.Uint64FromInt64(1)))
  6107. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size, uint32(libc.Uint64FromInt64(2)))
  6108. (*Tdeflate_state)(unsafe.Pointer(s)).Fhead = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size, uint32(libc.Uint64FromInt64(2)))
  6109. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint64(0) /* nothing written to s->window yet */
  6110. (*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize = uint32(int32(1) << (memLevel + int32(6))) /* 16K elements by default */
  6111. /* We overlay pending_buf and sym_buf. This works since the average size
  6112. * for length/distance pairs over any compressed block is assured to be 31
  6113. * bits or less.
  6114. *
  6115. * Analysis: The longest fixed codes are a length code of 8 bits plus 5
  6116. * extra bits, for lengths 131 to 257. The longest fixed distance codes are
  6117. * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest
  6118. * possible fixed-codes length/distance pair is then 31 bits total.
  6119. *
  6120. * sym_buf starts one-fourth of the way into pending_buf. So there are
  6121. * three bytes in sym_buf for every four bytes in pending_buf. Each symbol
  6122. * in sym_buf is three bytes -- two for the distance and one for the
  6123. * literal/length. As each symbol is consumed, the pointer to the next
  6124. * sym_buf value to read moves forward three bytes. From that symbol, up to
  6125. * 31 bits are written to pending_buf. The closest the written pending_buf
  6126. * bits gets to the next sym_buf symbol to read is just before the last
  6127. * code is written. At that time, 31*(n - 2) bits have been written, just
  6128. * after 24*(n - 2) bits have been consumed from sym_buf. sym_buf starts at
  6129. * 8*n bits into pending_buf. (Note that the symbol buffer fills when n - 1
  6130. * symbols are written.) The closest the writing gets to what is unread is
  6131. * then n + 14 bits. Here n is lit_bufsize, which is 16384 by default, and
  6132. * can range from 128 to 32768.
  6133. *
  6134. * Therefore, at a minimum, there are 142 bits of space between what is
  6135. * written and what is read in the overlain buffers, so the symbols cannot
  6136. * be overwritten by the compressed data. That space is actually 139 bits,
  6137. * due to the three-bit fixed-code block header.
  6138. *
  6139. * That covers the case where either Z_FIXED is specified, forcing fixed
  6140. * codes, or when the use of fixed codes is chosen, because that choice
  6141. * results in a smaller compressed block than dynamic codes. That latter
  6142. * condition then assures that the above analysis also covers all dynamic
  6143. * blocks. A dynamic-code block will only be chosen to be emitted if it has
  6144. * fewer bits than a fixed-code block would for the same set of symbols.
  6145. * Therefore its average symbol length is assured to be less than 31. So
  6146. * the compressed data for a dynamic block also cannot overwrite the
  6147. * symbols from which it is being constructed.
  6148. */
  6149. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize, uint32(libc.Int32FromInt32(4)))
  6150. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize) * uint64(4)
  6151. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(s)).Fprev == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(s)).Fhead == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf == uintptr(m_Z_NULL) {
  6152. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_FINISH_STATE)
  6153. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(m_Z_NEED_DICT) - -libc.Int32FromInt32(4)]
  6154. XdeflateEnd(tls, strm)
  6155. return -int32(4)
  6156. }
  6157. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize)
  6158. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end = ((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize - uint32(1)) * uint32(3)
  6159. /* We avoid equality with lit_bufsize*3 because of wraparound at 64K
  6160. * on 16 bit machines and because stored blocks are restricted to
  6161. * 64K-1 bytes.
  6162. */
  6163. (*Tdeflate_state)(unsafe.Pointer(s)).Flevel = level
  6164. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy = strategy
  6165. (*Tdeflate_state)(unsafe.Pointer(s)).Fmethod = uint8(method)
  6166. return XdeflateReset(tls, strm)
  6167. }
  6168. var _my_version = [4]uint8{'1', '.', '3'}
  6169. // C documentation
  6170. //
  6171. // /* =========================================================================
  6172. // * Check for a valid deflate stream state. Return 0 if ok, 1 if not.
  6173. // */
  6174. func _deflateStateCheck(tls *libc.TLS, strm Tz_streamp) (r int32) {
  6175. var s uintptr
  6176. _ = s
  6177. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  6178. return int32(1)
  6179. }
  6180. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  6181. if s == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm != strm || (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_INIT_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_GZIP_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_EXTRA_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_NAME_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_COMMENT_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_HCRC_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_BUSY_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_FINISH_STATE) {
  6182. return int32(1)
  6183. }
  6184. return 0
  6185. }
  6186. // C documentation
  6187. //
  6188. // /* ========================================================================= */
  6189. func XdeflateSetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength TuInt) (r int32) {
  6190. var avail uint32
  6191. var n, str, v1, v3 TuInt
  6192. var next, s uintptr
  6193. var wrap int32
  6194. _, _, _, _, _, _, _, _ = avail, n, next, s, str, wrap, v1, v3
  6195. if _deflateStateCheck(tls, strm) != 0 || dictionary == uintptr(m_Z_NULL) {
  6196. return -int32(2)
  6197. }
  6198. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  6199. wrap = (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap
  6200. if wrap == int32(2) || wrap == int32(1) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_INIT_STATE) || (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead != 0 {
  6201. return -int32(2)
  6202. }
  6203. /* when using zlib wrappers, compute Adler-32 for provided dictionary */
  6204. if wrap == int32(1) {
  6205. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, dictionary, dictLength)
  6206. }
  6207. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = 0 /* avoid computing Adler-32 in read_buf */
  6208. /* if dictionary would fill window, just replace the history */
  6209. if dictLength >= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  6210. if wrap == 0 { /* already empty otherwise */
  6211. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  6212. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  6213. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  6214. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  6215. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  6216. }
  6217. dictionary += uintptr(dictLength - (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) /* use the tail */
  6218. dictLength = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6219. }
  6220. /* insert dictionary into window and hash */
  6221. avail = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  6222. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  6223. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = dictLength
  6224. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = dictionary
  6225. _fill_window(tls, s)
  6226. for (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  6227. str = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6228. n = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))
  6229. for {
  6230. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(str+uint32(m_MIN_MATCH)-uint32(1)))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6231. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr(str&(*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask)*2)) = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6232. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16(str)
  6233. str++
  6234. goto _2
  6235. _2:
  6236. n--
  6237. v1 = n
  6238. if !(v1 != 0) {
  6239. break
  6240. }
  6241. }
  6242. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = str
  6243. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6244. _fill_window(tls, s)
  6245. }
  6246. *(*TuInt)(unsafe.Pointer(s + 172)) += (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  6247. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6248. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  6249. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(0)
  6250. v3 = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6251. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = v3
  6252. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = v3
  6253. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  6254. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  6255. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = avail
  6256. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = wrap
  6257. return m_Z_OK
  6258. }
  6259. // C documentation
  6260. //
  6261. // /* ========================================================================= */
  6262. func XdeflateGetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength uintptr) (r int32) {
  6263. var len1 TuInt
  6264. var s uintptr
  6265. _, _ = len1, s
  6266. if _deflateStateCheck(tls, strm) != 0 {
  6267. return -int32(2)
  6268. }
  6269. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  6270. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  6271. if len1 > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  6272. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6273. }
  6274. if dictionary != uintptr(m_Z_NULL) && len1 != 0 {
  6275. libc.Xmemcpy(tls, dictionary, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead)-uintptr(len1), uint64(len1))
  6276. }
  6277. if dictLength != uintptr(m_Z_NULL) {
  6278. *(*TuInt)(unsafe.Pointer(dictLength)) = len1
  6279. }
  6280. return m_Z_OK
  6281. }
  6282. // C documentation
  6283. //
  6284. // /* ========================================================================= */
  6285. func XdeflateResetKeep(tls *libc.TLS, strm Tz_streamp) (r int32) {
  6286. var s uintptr
  6287. var v1 TuLong
  6288. var v2 int32
  6289. var v3 uint64
  6290. _, _, _, _ = s, v1, v2, v3
  6291. if _deflateStateCheck(tls, strm) != 0 {
  6292. return -int32(2)
  6293. }
  6294. v1 = libc.Uint64FromInt32(0)
  6295. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = v1
  6296. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = v1
  6297. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* use zfree if we ever allocate msg dynamically */
  6298. (*Tz_stream)(unsafe.Pointer(strm)).Fdata_type = int32(m_Z_UNKNOWN)
  6299. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  6300. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending = uint64(0)
  6301. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf
  6302. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap < 0 {
  6303. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = -(*Tdeflate_state)(unsafe.Pointer(s)).Fwrap /* was made negative by deflate(..., Z_FINISH); */
  6304. }
  6305. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  6306. v2 = int32(m_GZIP_STATE)
  6307. } else {
  6308. v2 = int32(m_INIT_STATE)
  6309. }
  6310. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = v2
  6311. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  6312. v3 = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  6313. } else {
  6314. v3 = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  6315. }
  6316. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v3
  6317. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(2)
  6318. x__tr_init(tls, s)
  6319. return m_Z_OK
  6320. }
  6321. // C documentation
  6322. //
  6323. // /* ===========================================================================
  6324. // * Initialize the "longest match" routines for a new zlib stream
  6325. // */
  6326. func _lm_init(tls *libc.TLS, s uintptr) {
  6327. var v1 TuInt
  6328. _ = v1
  6329. (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size = libc.Uint64FromInt64(2) * uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  6330. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  6331. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  6332. /* Set the default configuration parameters:
  6333. */
  6334. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fmax_lazy)
  6335. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fgood_length)
  6336. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = int32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fnice_length)
  6337. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fmax_chain)
  6338. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  6339. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  6340. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(0)
  6341. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  6342. v1 = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6343. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = v1
  6344. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = v1
  6345. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  6346. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(0)
  6347. }
  6348. // C documentation
  6349. //
  6350. // /* ========================================================================= */
  6351. func XdeflateReset(tls *libc.TLS, strm Tz_streamp) (r int32) {
  6352. var ret int32
  6353. _ = ret
  6354. ret = XdeflateResetKeep(tls, strm)
  6355. if ret == m_Z_OK {
  6356. _lm_init(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fstate)
  6357. }
  6358. return ret
  6359. }
  6360. // C documentation
  6361. //
  6362. // /* ========================================================================= */
  6363. func XdeflateSetHeader(tls *libc.TLS, strm Tz_streamp, head Tgz_headerp) (r int32) {
  6364. if _deflateStateCheck(tls, strm) != 0 || (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap != int32(2) {
  6365. return -int32(2)
  6366. }
  6367. (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fgzhead = head
  6368. return m_Z_OK
  6369. }
  6370. // C documentation
  6371. //
  6372. // /* ========================================================================= */
  6373. func XdeflatePending(tls *libc.TLS, strm Tz_streamp, pending uintptr, bits uintptr) (r int32) {
  6374. if _deflateStateCheck(tls, strm) != 0 {
  6375. return -int32(2)
  6376. }
  6377. if pending != uintptr(m_Z_NULL) {
  6378. *(*uint32)(unsafe.Pointer(pending)) = uint32((*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending)
  6379. }
  6380. if bits != uintptr(m_Z_NULL) {
  6381. *(*int32)(unsafe.Pointer(bits)) = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fbi_valid
  6382. }
  6383. return m_Z_OK
  6384. }
  6385. // C documentation
  6386. //
  6387. // /* ========================================================================= */
  6388. func XdeflatePrime(tls *libc.TLS, strm Tz_streamp, bits int32, value int32) (r int32) {
  6389. var put int32
  6390. var s, p1 uintptr
  6391. _, _, _ = put, s, p1
  6392. if _deflateStateCheck(tls, strm) != 0 {
  6393. return -int32(2)
  6394. }
  6395. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  6396. if bits < 0 || bits > int32(16) || (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf < (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out+uintptr((libc.Int32FromInt32(m_Buf_size)+libc.Int32FromInt32(7))>>libc.Int32FromInt32(3)) {
  6397. return -int32(5)
  6398. }
  6399. for cond := true; cond; cond = bits != 0 {
  6400. put = int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid
  6401. if put > bits {
  6402. put = bits
  6403. }
  6404. p1 = s + 5936
  6405. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | int32(uint16(value&(libc.Int32FromInt32(1)<<put-libc.Int32FromInt32(1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)))
  6406. *(*int32)(unsafe.Pointer(s + 5940)) += put
  6407. x__tr_flush_bits(tls, s)
  6408. value >>= put
  6409. bits -= put
  6410. }
  6411. return m_Z_OK
  6412. }
  6413. // C documentation
  6414. //
  6415. // /* ========================================================================= */
  6416. func XdeflateParams(tls *libc.TLS, strm Tz_streamp, level int32, strategy int32) (r int32) {
  6417. var err int32
  6418. var func1 Tcompress_func
  6419. var s uintptr
  6420. _, _, _ = err, func1, s
  6421. if _deflateStateCheck(tls, strm) != 0 {
  6422. return -int32(2)
  6423. }
  6424. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  6425. if level == -int32(1) {
  6426. level = int32(6)
  6427. }
  6428. if level < 0 || level > int32(9) || strategy < 0 || strategy > int32(m_Z_FIXED) {
  6429. return -int32(2)
  6430. }
  6431. func1 = _configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Ffunc1
  6432. if (strategy != (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy || func1 != _configuration_table[level].Ffunc1) && (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush != -int32(2) {
  6433. /* Flush the last buffer: */
  6434. err = Xdeflate(tls, strm, int32(m_Z_BLOCK))
  6435. if err == -int32(2) {
  6436. return err
  6437. }
  6438. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 || int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start+int64((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead) != 0 {
  6439. return -int32(5)
  6440. }
  6441. }
  6442. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel != level {
  6443. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches != uint32(0) {
  6444. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches == uint32(1) {
  6445. _slide_hash(tls, s)
  6446. } else {
  6447. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  6448. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  6449. }
  6450. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = uint32(0)
  6451. }
  6452. (*Tdeflate_state)(unsafe.Pointer(s)).Flevel = level
  6453. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(_configuration_table[level].Fmax_lazy)
  6454. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(_configuration_table[level].Fgood_length)
  6455. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = int32(_configuration_table[level].Fnice_length)
  6456. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(_configuration_table[level].Fmax_chain)
  6457. }
  6458. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy = strategy
  6459. return m_Z_OK
  6460. }
  6461. // C documentation
  6462. //
  6463. // /* ========================================================================= */
  6464. func XdeflateTune(tls *libc.TLS, strm Tz_streamp, good_length int32, max_lazy int32, nice_length int32, max_chain int32) (r int32) {
  6465. var s uintptr
  6466. _ = s
  6467. if _deflateStateCheck(tls, strm) != 0 {
  6468. return -int32(2)
  6469. }
  6470. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  6471. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(good_length)
  6472. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(max_lazy)
  6473. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = nice_length
  6474. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(max_chain)
  6475. return m_Z_OK
  6476. }
  6477. // C documentation
  6478. //
  6479. // /* =========================================================================
  6480. // * For the default windowBits of 15 and memLevel of 8, this function returns a
  6481. // * close to exact, as well as small, upper bound on the compressed size. This
  6482. // * is an expansion of ~0.03%, plus a small constant.
  6483. // *
  6484. // * For any setting other than those defaults for windowBits and memLevel, one
  6485. // * of two worst case bounds is returned. This is at most an expansion of ~4% or
  6486. // * ~13%, plus a small constant.
  6487. // *
  6488. // * Both the 0.03% and 4% derive from the overhead of stored blocks. The first
  6489. // * one is for stored blocks of 16383 bytes (memLevel == 8), whereas the second
  6490. // * is for stored blocks of 127 bytes (the worst case memLevel == 1). The
  6491. // * expansion results from five bytes of header for each stored block.
  6492. // *
  6493. // * The larger expansion of 13% results from a window size less than or equal to
  6494. // * the symbols buffer size (windowBits <= memLevel + 7). In that case some of
  6495. // * the data being compressed may have slid out of the sliding window, impeding
  6496. // * a stored block from being emitted. Then the only choice is a fixed or
  6497. // * dynamic block, where a fixed block limits the maximum expansion to 9 bits
  6498. // * per 8-bit byte, plus 10 bits for every block. The smallest block size for
  6499. // * which this can occur is 255 (memLevel == 2).
  6500. // *
  6501. // * Shifts are used to approximate divisions, for speed.
  6502. // */
  6503. func XdeflateBound(tls *libc.TLS, strm Tz_streamp, sourceLen TuLong) (r TuLong) {
  6504. var fixedlen, storelen, wraplen TuLong
  6505. var s, str, v3, v5 uintptr
  6506. var v1, v7 uint64
  6507. var v2 int32
  6508. _, _, _, _, _, _, _, _, _, _ = fixedlen, s, storelen, str, wraplen, v1, v2, v3, v5, v7
  6509. /* upper bound for fixed blocks with 9-bit literals and length 255
  6510. (memLevel == 2, which is the lowest that may not use stored blocks) --
  6511. ~13% overhead plus a small constant */
  6512. fixedlen = sourceLen + sourceLen>>libc.Int32FromInt32(3) + sourceLen>>libc.Int32FromInt32(8) + sourceLen>>libc.Int32FromInt32(9) + uint64(4)
  6513. /* upper bound for stored blocks with length 127 (memLevel == 1) --
  6514. ~4% overhead plus a small constant */
  6515. storelen = sourceLen + sourceLen>>libc.Int32FromInt32(5) + sourceLen>>libc.Int32FromInt32(7) + sourceLen>>libc.Int32FromInt32(11) + uint64(7)
  6516. /* if can't get parameters, return larger bound plus a zlib wrapper */
  6517. if _deflateStateCheck(tls, strm) != 0 {
  6518. if fixedlen > storelen {
  6519. v1 = fixedlen
  6520. } else {
  6521. v1 = storelen
  6522. }
  6523. return v1 + uint64(6)
  6524. }
  6525. /* compute wrapper length */
  6526. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  6527. switch (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap {
  6528. case 0:
  6529. wraplen = uint64(0)
  6530. case int32(1):
  6531. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != 0 {
  6532. v2 = int32(4)
  6533. } else {
  6534. v2 = 0
  6535. }
  6536. wraplen = uint64(int32(6) + v2)
  6537. case int32(2):
  6538. wraplen = uint64(18)
  6539. if (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead != uintptr(m_Z_NULL) {
  6540. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  6541. wraplen += uint64(uint32(2) + (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len)
  6542. }
  6543. str = (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname
  6544. if str != uintptr(m_Z_NULL) {
  6545. for {
  6546. wraplen++
  6547. goto _4
  6548. _4:
  6549. v3 = str
  6550. str++
  6551. if !(*(*TBytef)(unsafe.Pointer(v3)) != 0) {
  6552. break
  6553. }
  6554. }
  6555. }
  6556. str = (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment
  6557. if str != uintptr(m_Z_NULL) {
  6558. for {
  6559. wraplen++
  6560. goto _6
  6561. _6:
  6562. v5 = str
  6563. str++
  6564. if !(*(*TBytef)(unsafe.Pointer(v5)) != 0) {
  6565. break
  6566. }
  6567. }
  6568. }
  6569. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  6570. wraplen += uint64(2)
  6571. }
  6572. }
  6573. default: /* for compiler happiness */
  6574. wraplen = uint64(6)
  6575. }
  6576. /* if not default parameters, return one of the conservative bounds */
  6577. if (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits != uint32(15) || (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits != uint32(libc.Int32FromInt32(8)+libc.Int32FromInt32(7)) {
  6578. if (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits <= (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits && (*Tdeflate_state)(unsafe.Pointer(s)).Flevel != 0 {
  6579. v7 = fixedlen
  6580. } else {
  6581. v7 = storelen
  6582. }
  6583. return v7 + wraplen
  6584. }
  6585. /* default settings: return tight bound for that case -- ~0.03% overhead
  6586. plus a small constant */
  6587. return sourceLen + sourceLen>>libc.Int32FromInt32(12) + sourceLen>>libc.Int32FromInt32(14) + sourceLen>>libc.Int32FromInt32(25) + uint64(13) - uint64(6) + wraplen
  6588. }
  6589. // C documentation
  6590. //
  6591. // /* =========================================================================
  6592. // * Put a short in the pending buffer. The 16-bit value is put in MSB order.
  6593. // * IN assertion: the stream state is correct and there is enough room in
  6594. // * pending_buf.
  6595. // */
  6596. func _putShortMSB(tls *libc.TLS, s uintptr, b TuInt) {
  6597. var v1, v3 Tulg
  6598. var v2, v4 uintptr
  6599. _, _, _, _ = v1, v2, v3, v4
  6600. v2 = s + 40
  6601. v1 = *(*Tulg)(unsafe.Pointer(v2))
  6602. *(*Tulg)(unsafe.Pointer(v2))++
  6603. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = uint8(b >> libc.Int32FromInt32(8))
  6604. v4 = s + 40
  6605. v3 = *(*Tulg)(unsafe.Pointer(v4))
  6606. *(*Tulg)(unsafe.Pointer(v4))++
  6607. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(b & libc.Uint32FromInt32(0xff))
  6608. }
  6609. // C documentation
  6610. //
  6611. // /* =========================================================================
  6612. // * Flush as much pending output as possible. All deflate() output, except for
  6613. // * some deflate_stored() output, goes through this function so some
  6614. // * applications may wish to modify it to avoid allocating a large
  6615. // * strm->next_out buffer and copying into it. (See also read_buf()).
  6616. // */
  6617. func _flush_pending(tls *libc.TLS, strm Tz_streamp) {
  6618. var len1 uint32
  6619. var s uintptr
  6620. _, _ = len1, s
  6621. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  6622. x__tr_flush_bits(tls, s)
  6623. len1 = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending)
  6624. if len1 > (*Tz_stream)(unsafe.Pointer(strm)).Favail_out {
  6625. len1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  6626. }
  6627. if len1 == uint32(0) {
  6628. return
  6629. }
  6630. libc.Xmemcpy(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out, uint64(len1))
  6631. *(*uintptr)(unsafe.Pointer(strm + 24)) += uintptr(len1)
  6632. *(*uintptr)(unsafe.Pointer(s + 32)) += uintptr(len1)
  6633. *(*TuLong)(unsafe.Pointer(strm + 40)) += uint64(len1)
  6634. *(*TuInt)(unsafe.Pointer(strm + 32)) -= len1
  6635. *(*Tulg)(unsafe.Pointer(s + 40)) -= uint64(len1)
  6636. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == uint64(0) {
  6637. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf
  6638. }
  6639. }
  6640. /* ===========================================================================
  6641. * Update the header CRC with the bytes s->pending_buf[beg..s->pending - 1].
  6642. */
  6643. // C documentation
  6644. //
  6645. // /* ========================================================================= */
  6646. func Xdeflate(tls *libc.TLS, strm Tz_streamp, flush int32) (r int32) {
  6647. var beg, beg1, beg2, v10, v12, v14, v16, v18, v20, v24, v26, v33, v35, v37, v39, v4, v41, v45, v47, v49, v51, v53, v55, v57, v59, v6, v61, v66, v68, v70, v72, v74, v76, v78, v8, v80 Tulg
  6648. var bstate Tblock_state
  6649. var copy1, header, left, level_flags TuInt
  6650. var old_flush, val, val1, v1, v2, v22, v23, v28, v29, v30, v31, v32, v43, v44, v63, v64, v65, v82 int32
  6651. var s, v11, v13, v15, v17, v19, v21, v25, v27, v34, v36, v38, v40, v42, v46, v48, v5, v50, v52, v54, v56, v58, v60, v62, v67, v69, v7, v71, v73, v75, v77, v79, v81, v9 uintptr
  6652. var v3 bool
  6653. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = beg, beg1, beg2, bstate, copy1, header, left, level_flags, old_flush, s, val, val1, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v3, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v4, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v5, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v6, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v7, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v8, v80, v81, v82, v9
  6654. if _deflateStateCheck(tls, strm) != 0 || flush > int32(m_Z_BLOCK) || flush < 0 {
  6655. return -int32(2)
  6656. }
  6657. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  6658. if (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != uint32(0) && (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_FINISH_STATE) && flush != int32(m_Z_FINISH) {
  6659. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(m_Z_NEED_DICT) - -libc.Int32FromInt32(2)]
  6660. return -libc.Int32FromInt32(2)
  6661. }
  6662. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  6663. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(m_Z_NEED_DICT) - -libc.Int32FromInt32(5)]
  6664. return -libc.Int32FromInt32(5)
  6665. }
  6666. old_flush = (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush
  6667. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = flush
  6668. /* Flush as much pending output as possible */
  6669. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  6670. _flush_pending(tls, strm)
  6671. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  6672. /* Since avail_out is 0, deflate will be called again with
  6673. * more output space, but possibly with both pending and
  6674. * avail_in equal to zero. There won't be anything to do,
  6675. * but this is not an error situation so make sure we
  6676. * return OK instead of BUF_ERROR at next call of deflate:
  6677. */
  6678. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  6679. return m_Z_OK
  6680. }
  6681. /* Make sure there is something to do and avoid duplicate consecutive
  6682. * flushes. For repeated and useless calls with Z_FINISH, we keep
  6683. * returning Z_STREAM_END instead of Z_BUF_ERROR.
  6684. */
  6685. } else {
  6686. if v3 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0); v3 {
  6687. if flush > int32(4) {
  6688. v1 = int32(9)
  6689. } else {
  6690. v1 = 0
  6691. }
  6692. if old_flush > int32(4) {
  6693. v2 = int32(9)
  6694. } else {
  6695. v2 = 0
  6696. }
  6697. }
  6698. if v3 && flush*int32(2)-v1 <= old_flush*int32(2)-v2 && flush != int32(m_Z_FINISH) {
  6699. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(m_Z_NEED_DICT) - -libc.Int32FromInt32(5)]
  6700. return -libc.Int32FromInt32(5)
  6701. }
  6702. }
  6703. /* User must not provide more input after the first FINISH: */
  6704. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_FINISH_STATE) && (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != uint32(0) {
  6705. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(m_Z_NEED_DICT) - -libc.Int32FromInt32(5)]
  6706. return -libc.Int32FromInt32(5)
  6707. }
  6708. /* Write the header */
  6709. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_INIT_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == 0 {
  6710. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  6711. }
  6712. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_INIT_STATE) {
  6713. /* zlib header */
  6714. header = (uint32(m_Z_DEFLATED) + ((*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits-uint32(8))<<int32(4)) << int32(8)
  6715. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  6716. level_flags = uint32(0)
  6717. } else {
  6718. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(6) {
  6719. level_flags = uint32(1)
  6720. } else {
  6721. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(6) {
  6722. level_flags = uint32(2)
  6723. } else {
  6724. level_flags = uint32(3)
  6725. }
  6726. }
  6727. }
  6728. header |= level_flags << libc.Int32FromInt32(6)
  6729. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != uint32(0) {
  6730. header |= uint32(m_PRESET_DICT)
  6731. }
  6732. header += uint32(31) - header%uint32(31)
  6733. _putShortMSB(tls, s, header)
  6734. /* Save the adler32 of the preset dictionary: */
  6735. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != uint32(0) {
  6736. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler>>libc.Int32FromInt32(16)))
  6737. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler&libc.Uint64FromInt32(0xffff)))
  6738. }
  6739. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  6740. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  6741. /* Compression must start with an empty pending buffer */
  6742. _flush_pending(tls, strm)
  6743. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  6744. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  6745. return m_Z_OK
  6746. }
  6747. }
  6748. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_GZIP_STATE) {
  6749. /* gzip header */
  6750. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  6751. v5 = s + 40
  6752. v4 = *(*Tulg)(unsafe.Pointer(v5))
  6753. *(*Tulg)(unsafe.Pointer(v5))++
  6754. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = uint8(libc.Int32FromInt32(31))
  6755. v7 = s + 40
  6756. v6 = *(*Tulg)(unsafe.Pointer(v7))
  6757. *(*Tulg)(unsafe.Pointer(v7))++
  6758. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v6))) = uint8(libc.Int32FromInt32(139))
  6759. v9 = s + 40
  6760. v8 = *(*Tulg)(unsafe.Pointer(v9))
  6761. *(*Tulg)(unsafe.Pointer(v9))++
  6762. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = uint8(libc.Int32FromInt32(8))
  6763. if (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead == uintptr(m_Z_NULL) {
  6764. v11 = s + 40
  6765. v10 = *(*Tulg)(unsafe.Pointer(v11))
  6766. *(*Tulg)(unsafe.Pointer(v11))++
  6767. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = uint8(libc.Int32FromInt32(0))
  6768. v13 = s + 40
  6769. v12 = *(*Tulg)(unsafe.Pointer(v13))
  6770. *(*Tulg)(unsafe.Pointer(v13))++
  6771. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v12))) = uint8(libc.Int32FromInt32(0))
  6772. v15 = s + 40
  6773. v14 = *(*Tulg)(unsafe.Pointer(v15))
  6774. *(*Tulg)(unsafe.Pointer(v15))++
  6775. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = uint8(libc.Int32FromInt32(0))
  6776. v17 = s + 40
  6777. v16 = *(*Tulg)(unsafe.Pointer(v17))
  6778. *(*Tulg)(unsafe.Pointer(v17))++
  6779. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v16))) = uint8(libc.Int32FromInt32(0))
  6780. v19 = s + 40
  6781. v18 = *(*Tulg)(unsafe.Pointer(v19))
  6782. *(*Tulg)(unsafe.Pointer(v19))++
  6783. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v18))) = uint8(libc.Int32FromInt32(0))
  6784. v21 = s + 40
  6785. v20 = *(*Tulg)(unsafe.Pointer(v21))
  6786. *(*Tulg)(unsafe.Pointer(v21))++
  6787. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(9) {
  6788. v22 = int32(2)
  6789. } else {
  6790. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  6791. v23 = int32(4)
  6792. } else {
  6793. v23 = 0
  6794. }
  6795. v22 = v23
  6796. }
  6797. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v20))) = uint8(v22)
  6798. v25 = s + 40
  6799. v24 = *(*Tulg)(unsafe.Pointer(v25))
  6800. *(*Tulg)(unsafe.Pointer(v25))++
  6801. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = uint8(libc.Int32FromInt32(m_OS_CODE))
  6802. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  6803. /* Compression must start with an empty pending buffer */
  6804. _flush_pending(tls, strm)
  6805. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  6806. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  6807. return m_Z_OK
  6808. }
  6809. } else {
  6810. v27 = s + 40
  6811. v26 = *(*Tulg)(unsafe.Pointer(v27))
  6812. *(*Tulg)(unsafe.Pointer(v27))++
  6813. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftext != 0 {
  6814. v28 = int32(1)
  6815. } else {
  6816. v28 = 0
  6817. }
  6818. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  6819. v29 = int32(2)
  6820. } else {
  6821. v29 = 0
  6822. }
  6823. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra == uintptr(m_Z_NULL) {
  6824. v30 = 0
  6825. } else {
  6826. v30 = int32(4)
  6827. }
  6828. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname == uintptr(m_Z_NULL) {
  6829. v31 = 0
  6830. } else {
  6831. v31 = int32(8)
  6832. }
  6833. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment == uintptr(m_Z_NULL) {
  6834. v32 = 0
  6835. } else {
  6836. v32 = int32(16)
  6837. }
  6838. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = uint8(v28 + v29 + v30 + v31 + v32)
  6839. v34 = s + 40
  6840. v33 = *(*Tulg)(unsafe.Pointer(v34))
  6841. *(*Tulg)(unsafe.Pointer(v34))++
  6842. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v33))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftime & libc.Uint64FromInt32(0xff))
  6843. v36 = s + 40
  6844. v35 = *(*Tulg)(unsafe.Pointer(v36))
  6845. *(*Tulg)(unsafe.Pointer(v36))++
  6846. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v35))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftime >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(0xff))
  6847. v38 = s + 40
  6848. v37 = *(*Tulg)(unsafe.Pointer(v38))
  6849. *(*Tulg)(unsafe.Pointer(v38))++
  6850. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v37))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftime >> libc.Int32FromInt32(16) & libc.Uint64FromInt32(0xff))
  6851. v40 = s + 40
  6852. v39 = *(*Tulg)(unsafe.Pointer(v40))
  6853. *(*Tulg)(unsafe.Pointer(v40))++
  6854. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v39))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftime >> libc.Int32FromInt32(24) & libc.Uint64FromInt32(0xff))
  6855. v42 = s + 40
  6856. v41 = *(*Tulg)(unsafe.Pointer(v42))
  6857. *(*Tulg)(unsafe.Pointer(v42))++
  6858. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(9) {
  6859. v43 = int32(2)
  6860. } else {
  6861. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  6862. v44 = int32(4)
  6863. } else {
  6864. v44 = 0
  6865. }
  6866. v43 = v44
  6867. }
  6868. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v41))) = uint8(v43)
  6869. v46 = s + 40
  6870. v45 = *(*Tulg)(unsafe.Pointer(v46))
  6871. *(*Tulg)(unsafe.Pointer(v46))++
  6872. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v45))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fos & libc.Int32FromInt32(0xff))
  6873. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  6874. v48 = s + 40
  6875. v47 = *(*Tulg)(unsafe.Pointer(v48))
  6876. *(*Tulg)(unsafe.Pointer(v48))++
  6877. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v47))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len & libc.Uint32FromInt32(0xff))
  6878. v50 = s + 40
  6879. v49 = *(*Tulg)(unsafe.Pointer(v50))
  6880. *(*Tulg)(unsafe.Pointer(v50))++
  6881. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v49))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len >> libc.Int32FromInt32(8) & libc.Uint32FromInt32(0xff))
  6882. }
  6883. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  6884. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf, uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending))
  6885. }
  6886. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint64(0)
  6887. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_EXTRA_STATE)
  6888. }
  6889. }
  6890. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_EXTRA_STATE) {
  6891. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  6892. beg = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending /* start of bytes to update crc */
  6893. left = uint32(uint64((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len&libc.Uint32FromInt32(0xffff)) - (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex)
  6894. for (*Tdeflate_state)(unsafe.Pointer(s)).Fpending+uint64(left) > (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  6895. copy1 = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fpending)
  6896. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending), (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex), uint64(copy1))
  6897. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size
  6898. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg {
  6899. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg))
  6900. }
  6901. *(*Tulg)(unsafe.Pointer(s + 64)) += uint64(copy1)
  6902. _flush_pending(tls, strm)
  6903. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  6904. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  6905. return m_Z_OK
  6906. }
  6907. beg = uint64(0)
  6908. left -= copy1
  6909. }
  6910. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending), (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex), uint64(left))
  6911. *(*Tulg)(unsafe.Pointer(s + 40)) += uint64(left)
  6912. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg {
  6913. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg))
  6914. }
  6915. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint64(0)
  6916. }
  6917. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_NAME_STATE)
  6918. }
  6919. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_NAME_STATE) {
  6920. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname != uintptr(m_Z_NULL) {
  6921. beg1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  6922. for cond := true; cond; cond = val != 0 {
  6923. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  6924. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg1 {
  6925. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg1), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg1))
  6926. }
  6927. _flush_pending(tls, strm)
  6928. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  6929. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  6930. return m_Z_OK
  6931. }
  6932. beg1 = uint64(0)
  6933. }
  6934. v52 = s + 64
  6935. v51 = *(*Tulg)(unsafe.Pointer(v52))
  6936. *(*Tulg)(unsafe.Pointer(v52))++
  6937. val = int32(*(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname + uintptr(v51))))
  6938. v54 = s + 40
  6939. v53 = *(*Tulg)(unsafe.Pointer(v54))
  6940. *(*Tulg)(unsafe.Pointer(v54))++
  6941. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v53))) = uint8(val)
  6942. }
  6943. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg1 {
  6944. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg1), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg1))
  6945. }
  6946. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint64(0)
  6947. }
  6948. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_COMMENT_STATE)
  6949. }
  6950. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_COMMENT_STATE) {
  6951. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment != uintptr(m_Z_NULL) {
  6952. beg2 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  6953. for cond := true; cond; cond = val1 != 0 {
  6954. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  6955. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg2 {
  6956. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg2), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg2))
  6957. }
  6958. _flush_pending(tls, strm)
  6959. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  6960. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  6961. return m_Z_OK
  6962. }
  6963. beg2 = uint64(0)
  6964. }
  6965. v56 = s + 64
  6966. v55 = *(*Tulg)(unsafe.Pointer(v56))
  6967. *(*Tulg)(unsafe.Pointer(v56))++
  6968. val1 = int32(*(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment + uintptr(v55))))
  6969. v58 = s + 40
  6970. v57 = *(*Tulg)(unsafe.Pointer(v58))
  6971. *(*Tulg)(unsafe.Pointer(v58))++
  6972. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v57))) = uint8(val1)
  6973. }
  6974. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg2 {
  6975. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg2), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg2))
  6976. }
  6977. }
  6978. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_HCRC_STATE)
  6979. }
  6980. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_HCRC_STATE) {
  6981. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  6982. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending+uint64(2) > (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  6983. _flush_pending(tls, strm)
  6984. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  6985. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  6986. return m_Z_OK
  6987. }
  6988. }
  6989. v60 = s + 40
  6990. v59 = *(*Tulg)(unsafe.Pointer(v60))
  6991. *(*Tulg)(unsafe.Pointer(v60))++
  6992. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v59))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler & libc.Uint64FromInt32(0xff))
  6993. v62 = s + 40
  6994. v61 = *(*Tulg)(unsafe.Pointer(v62))
  6995. *(*Tulg)(unsafe.Pointer(v62))++
  6996. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v61))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(0xff))
  6997. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  6998. }
  6999. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  7000. /* Compression must start with an empty pending buffer */
  7001. _flush_pending(tls, strm)
  7002. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  7003. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  7004. return m_Z_OK
  7005. }
  7006. }
  7007. /* Start a new block or continue the current one.
  7008. */
  7009. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != uint32(0) || (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead != uint32(0) || flush != m_Z_NO_FLUSH && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_FINISH_STATE) {
  7010. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == 0 {
  7011. v63 = _deflate_stored(tls, s, flush)
  7012. } else {
  7013. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_HUFFMAN_ONLY) {
  7014. v64 = _deflate_huff(tls, s, flush)
  7015. } else {
  7016. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_RLE) {
  7017. v65 = _deflate_rle(tls, s, flush)
  7018. } else {
  7019. v65 = (*(*func(*libc.TLS, uintptr, int32) Tblock_state)(unsafe.Pointer(&struct{ uintptr }{_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Ffunc1})))(tls, s, flush)
  7020. }
  7021. v64 = v65
  7022. }
  7023. v63 = v64
  7024. }
  7025. bstate = v63
  7026. if bstate == int32(_finish_started) || bstate == int32(_finish_done) {
  7027. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_FINISH_STATE)
  7028. }
  7029. if bstate == int32(_need_more) || bstate == int32(_finish_started) {
  7030. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  7031. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1) /* avoid BUF_ERROR next call, see above */
  7032. }
  7033. return m_Z_OK
  7034. /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
  7035. * of deflate should use the same flush parameter to make sure
  7036. * that the flush is complete. So we don't have to output an
  7037. * empty block here, this will be done at next call. This also
  7038. * ensures that for a very small output buffer, we emit at most
  7039. * one empty block.
  7040. */
  7041. }
  7042. if bstate == int32(_block_done) {
  7043. if flush == int32(m_Z_PARTIAL_FLUSH) {
  7044. x__tr_align(tls, s)
  7045. } else {
  7046. if flush != int32(m_Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */
  7047. x__tr_stored_block(tls, s, libc.UintptrFromInt32(0), uint64(0), 0)
  7048. /* For a full flush, this empty block will be recognized
  7049. * as a special marker by inflate_sync().
  7050. */
  7051. if flush == int32(m_Z_FULL_FLUSH) {
  7052. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  7053. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2)) /* forget history */
  7054. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  7055. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  7056. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  7057. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  7058. }
  7059. }
  7060. }
  7061. }
  7062. _flush_pending(tls, strm)
  7063. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  7064. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1) /* avoid BUF_ERROR at next call, see above */
  7065. return m_Z_OK
  7066. }
  7067. }
  7068. }
  7069. if flush != int32(m_Z_FINISH) {
  7070. return m_Z_OK
  7071. }
  7072. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap <= 0 {
  7073. return int32(m_Z_STREAM_END)
  7074. }
  7075. /* Write the trailer */
  7076. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  7077. v67 = s + 40
  7078. v66 = *(*Tulg)(unsafe.Pointer(v67))
  7079. *(*Tulg)(unsafe.Pointer(v67))++
  7080. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v66))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler & libc.Uint64FromInt32(0xff))
  7081. v69 = s + 40
  7082. v68 = *(*Tulg)(unsafe.Pointer(v69))
  7083. *(*Tulg)(unsafe.Pointer(v69))++
  7084. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v68))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(0xff))
  7085. v71 = s + 40
  7086. v70 = *(*Tulg)(unsafe.Pointer(v71))
  7087. *(*Tulg)(unsafe.Pointer(v71))++
  7088. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v70))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(16) & libc.Uint64FromInt32(0xff))
  7089. v73 = s + 40
  7090. v72 = *(*Tulg)(unsafe.Pointer(v73))
  7091. *(*Tulg)(unsafe.Pointer(v73))++
  7092. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v72))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(24) & libc.Uint64FromInt32(0xff))
  7093. v75 = s + 40
  7094. v74 = *(*Tulg)(unsafe.Pointer(v75))
  7095. *(*Tulg)(unsafe.Pointer(v75))++
  7096. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v74))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in & libc.Uint64FromInt32(0xff))
  7097. v77 = s + 40
  7098. v76 = *(*Tulg)(unsafe.Pointer(v77))
  7099. *(*Tulg)(unsafe.Pointer(v77))++
  7100. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v76))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(0xff))
  7101. v79 = s + 40
  7102. v78 = *(*Tulg)(unsafe.Pointer(v79))
  7103. *(*Tulg)(unsafe.Pointer(v79))++
  7104. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v78))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(16) & libc.Uint64FromInt32(0xff))
  7105. v81 = s + 40
  7106. v80 = *(*Tulg)(unsafe.Pointer(v81))
  7107. *(*Tulg)(unsafe.Pointer(v81))++
  7108. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v80))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(24) & libc.Uint64FromInt32(0xff))
  7109. } else {
  7110. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler>>libc.Int32FromInt32(16)))
  7111. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler&libc.Uint64FromInt32(0xffff)))
  7112. }
  7113. _flush_pending(tls, strm)
  7114. /* If avail_out is zero, the application will call deflate again
  7115. * to flush the rest.
  7116. */
  7117. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap > 0 {
  7118. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = -(*Tdeflate_state)(unsafe.Pointer(s)).Fwrap
  7119. } /* write the trailer only once! */
  7120. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  7121. v82 = m_Z_OK
  7122. } else {
  7123. v82 = int32(m_Z_STREAM_END)
  7124. }
  7125. return v82
  7126. }
  7127. // C documentation
  7128. //
  7129. // /* ========================================================================= */
  7130. func XdeflateEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  7131. var status, v1 int32
  7132. _, _ = status, v1
  7133. if _deflateStateCheck(tls, strm) != 0 {
  7134. return -int32(2)
  7135. }
  7136. status = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fstatus
  7137. /* Deallocate in reverse order of allocations: */
  7138. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending_buf != 0 {
  7139. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending_buf)
  7140. }
  7141. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fhead != 0 {
  7142. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fhead)
  7143. }
  7144. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fprev != 0 {
  7145. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fprev)
  7146. }
  7147. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwindow != 0 {
  7148. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwindow)
  7149. }
  7150. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tz_stream)(unsafe.Pointer(strm)).Fstate)
  7151. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  7152. if status == int32(m_BUSY_STATE) {
  7153. v1 = -int32(3)
  7154. } else {
  7155. v1 = m_Z_OK
  7156. }
  7157. return v1
  7158. }
  7159. // C documentation
  7160. //
  7161. // /* =========================================================================
  7162. // * Copy the source state to the destination state.
  7163. // * To simplify the source, this is not supported for 16-bit MSDOS (which
  7164. // * doesn't have enough memory anyway to duplicate compression states).
  7165. // */
  7166. func XdeflateCopy(tls *libc.TLS, dest Tz_streamp, source Tz_streamp) (r int32) {
  7167. var ds, ss uintptr
  7168. _, _ = ds, ss
  7169. if _deflateStateCheck(tls, source) != 0 || dest == uintptr(m_Z_NULL) {
  7170. return -int32(2)
  7171. }
  7172. ss = (*Tz_stream)(unsafe.Pointer(source)).Fstate
  7173. libc.Xmemcpy(tls, dest, source, uint64(112))
  7174. ds = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, uint32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(5952)))
  7175. if ds == uintptr(m_Z_NULL) {
  7176. return -int32(4)
  7177. }
  7178. (*Tz_stream)(unsafe.Pointer(dest)).Fstate = ds
  7179. libc.Xmemcpy(tls, ds, ss, uint64(5952))
  7180. (*Tdeflate_state)(unsafe.Pointer(ds)).Fstrm = dest
  7181. (*Tdeflate_state)(unsafe.Pointer(ds)).Fwindow = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size, uint32(libc.Uint64FromInt32(2)*libc.Uint64FromInt64(1)))
  7182. (*Tdeflate_state)(unsafe.Pointer(ds)).Fprev = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size, uint32(libc.Uint64FromInt64(2)))
  7183. (*Tdeflate_state)(unsafe.Pointer(ds)).Fhead = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Fhash_size, uint32(libc.Uint64FromInt64(2)))
  7184. (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize, uint32(libc.Int32FromInt32(4)))
  7185. if (*Tdeflate_state)(unsafe.Pointer(ds)).Fwindow == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(ds)).Fprev == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(ds)).Fhead == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf == uintptr(m_Z_NULL) {
  7186. XdeflateEnd(tls, dest)
  7187. return -int32(4)
  7188. }
  7189. /* following zmemcpy do not work for 16-bit MSDOS */
  7190. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(ss)).Fwindow, uint64((*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size*uint32(2))*uint64(1))
  7191. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fprev, (*Tdeflate_state)(unsafe.Pointer(ss)).Fprev, uint64((*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size)*uint64(2))
  7192. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fhead, (*Tdeflate_state)(unsafe.Pointer(ss)).Fhead, uint64((*Tdeflate_state)(unsafe.Pointer(ds)).Fhash_size)*uint64(2))
  7193. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf, (*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_buf, uint64(uint32((*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf_size)))
  7194. (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf + uintptr(int64((*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_out)-int64((*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_buf))
  7195. (*Tdeflate_state)(unsafe.Pointer(ds)).Fsym_buf = (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize)
  7196. (*Tdeflate_state)(unsafe.Pointer(ds)).Fl_desc.Fdyn_tree = ds + 212
  7197. (*Tdeflate_state)(unsafe.Pointer(ds)).Fd_desc.Fdyn_tree = ds + 2504
  7198. (*Tdeflate_state)(unsafe.Pointer(ds)).Fbl_desc.Fdyn_tree = ds + 2748
  7199. return m_Z_OK
  7200. }
  7201. // C documentation
  7202. //
  7203. // /* ===========================================================================
  7204. // * Set match_start to the longest match starting at the given string and
  7205. // * return its length. Matches shorter or equal to prev_length are discarded,
  7206. // * in which case the result is equal to prev_length and match_start is
  7207. // * garbage.
  7208. // * IN assertions: cur_match is the head of the hash chain for the current
  7209. // * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
  7210. // * OUT assertion: the match length is not greater than s->lookahead.
  7211. // */
  7212. func _longest_match(tls *libc.TLS, s uintptr, cur_match TIPos) (r TuInt) {
  7213. var best_len, len1, nice_match int32
  7214. var chain_length, v1, v3 uint32
  7215. var limit, v2 TIPos
  7216. var match, prev, scan, strend, v10, v11, v13, v14, v16, v17, v19, v20, v22, v23, v25, v26, v28, v29, v6, v8, v9 uintptr
  7217. var scan_end, scan_end1 TByte
  7218. var wmask TuInt
  7219. var v12, v15, v18, v21, v24, v27, v30, v4, v7 bool
  7220. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = best_len, chain_length, len1, limit, match, nice_match, prev, scan, scan_end, scan_end1, strend, wmask, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v3, v30, v4, v6, v7, v8, v9
  7221. chain_length = (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length /* max hash chain length */
  7222. scan = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) /* length of current match */
  7223. best_len = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length) /* best match length so far */
  7224. nice_match = (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match
  7225. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  7226. v1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - ((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)))
  7227. } else {
  7228. v1 = uint32(m_NIL)
  7229. } /* stop if match long enough */
  7230. limit = v1
  7231. /* Stop when cur_match becomes <= limit. To simplify the code,
  7232. * we prevent matches with the string of window index 0.
  7233. */
  7234. prev = (*Tdeflate_state)(unsafe.Pointer(s)).Fprev
  7235. wmask = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask
  7236. strend = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uintptr(m_MAX_MATCH)
  7237. scan_end1 = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len-int32(1))))
  7238. scan_end = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len)))
  7239. /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
  7240. * It is easy to get rid of this optimization if necessary.
  7241. */
  7242. /* Do not waste too much time if we already have a good match: */
  7243. if (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length >= (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match {
  7244. chain_length >>= uint32(2)
  7245. }
  7246. /* Do not look for matches beyond the end of the input. This is necessary
  7247. * to make deflate deterministic.
  7248. */
  7249. if uint32(nice_match) > (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  7250. nice_match = int32((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead)
  7251. }
  7252. for {
  7253. match = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(cur_match)
  7254. /* Skip to next match if the match length cannot increase
  7255. * or if the match length is less than 2. Note that the checks below
  7256. * for insufficient lookahead only occur occasionally for performance
  7257. * reasons. Therefore uninitialized memory will be accessed, and
  7258. * conditional jumps will be made that depend on those values.
  7259. * However the length of the match is limited to the lookahead, so
  7260. * the output of deflate is not affected by the uninitialized values.
  7261. */
  7262. if v7 = int32(*(*TBytef)(unsafe.Pointer(match + uintptr(best_len)))) != int32(scan_end) || int32(*(*TBytef)(unsafe.Pointer(match + uintptr(best_len-int32(1))))) != int32(scan_end1) || int32(*(*TBytef)(unsafe.Pointer(match))) != int32(*(*TBytef)(unsafe.Pointer(scan))); !v7 {
  7263. match++
  7264. v6 = match
  7265. }
  7266. if v7 || int32(*(*TBytef)(unsafe.Pointer(v6))) != int32(*(*TBytef)(unsafe.Pointer(scan + 1))) {
  7267. goto _5
  7268. }
  7269. /* The check at best_len - 1 can be removed because it will be made
  7270. * again later. (This heuristic is not always a win.)
  7271. * It is not necessary to compare scan[2] and match[2] since they
  7272. * are always equal when the other bytes match, given that
  7273. * the hash keys are equal and that HASH_BITS >= 8.
  7274. */
  7275. scan += uintptr(2)
  7276. /* The check at best_len - 1 can be removed because it will be made
  7277. * again later. (This heuristic is not always a win.)
  7278. * It is not necessary to compare scan[2] and match[2] since they
  7279. * are always equal when the other bytes match, given that
  7280. * the hash keys are equal and that HASH_BITS >= 8.
  7281. */
  7282. match++
  7283. /* We check for insufficient lookahead only every 8th comparison;
  7284. * the 256th check will be made at strstart + 258.
  7285. */
  7286. for {
  7287. goto _31
  7288. _31:
  7289. scan++
  7290. v8 = scan
  7291. match++
  7292. v9 = match
  7293. if v12 = int32(*(*TBytef)(unsafe.Pointer(v8))) == int32(*(*TBytef)(unsafe.Pointer(v9))); v12 {
  7294. scan++
  7295. v10 = scan
  7296. match++
  7297. v11 = match
  7298. }
  7299. if v15 = v12 && int32(*(*TBytef)(unsafe.Pointer(v10))) == int32(*(*TBytef)(unsafe.Pointer(v11))); v15 {
  7300. scan++
  7301. v13 = scan
  7302. match++
  7303. v14 = match
  7304. }
  7305. if v18 = v15 && int32(*(*TBytef)(unsafe.Pointer(v13))) == int32(*(*TBytef)(unsafe.Pointer(v14))); v18 {
  7306. scan++
  7307. v16 = scan
  7308. match++
  7309. v17 = match
  7310. }
  7311. if v21 = v18 && int32(*(*TBytef)(unsafe.Pointer(v16))) == int32(*(*TBytef)(unsafe.Pointer(v17))); v21 {
  7312. scan++
  7313. v19 = scan
  7314. match++
  7315. v20 = match
  7316. }
  7317. if v24 = v21 && int32(*(*TBytef)(unsafe.Pointer(v19))) == int32(*(*TBytef)(unsafe.Pointer(v20))); v24 {
  7318. scan++
  7319. v22 = scan
  7320. match++
  7321. v23 = match
  7322. }
  7323. if v27 = v24 && int32(*(*TBytef)(unsafe.Pointer(v22))) == int32(*(*TBytef)(unsafe.Pointer(v23))); v27 {
  7324. scan++
  7325. v25 = scan
  7326. match++
  7327. v26 = match
  7328. }
  7329. if v30 = v27 && int32(*(*TBytef)(unsafe.Pointer(v25))) == int32(*(*TBytef)(unsafe.Pointer(v26))); v30 {
  7330. scan++
  7331. v28 = scan
  7332. match++
  7333. v29 = match
  7334. }
  7335. if !(v30 && int32(*(*TBytef)(unsafe.Pointer(v28))) == int32(*(*TBytef)(unsafe.Pointer(v29))) && scan < strend) {
  7336. break
  7337. }
  7338. }
  7339. len1 = int32(m_MAX_MATCH) - int32(int64(strend)-int64(scan))
  7340. scan = strend - uintptr(m_MAX_MATCH)
  7341. if len1 > best_len {
  7342. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start = cur_match
  7343. best_len = len1
  7344. if len1 >= nice_match {
  7345. break
  7346. }
  7347. scan_end1 = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len-int32(1))))
  7348. scan_end = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len)))
  7349. }
  7350. goto _5
  7351. _5:
  7352. v2 = uint32(*(*TPosf)(unsafe.Pointer(prev + uintptr(cur_match&wmask)*2)))
  7353. cur_match = v2
  7354. if v4 = v2 > limit; v4 {
  7355. chain_length--
  7356. v3 = chain_length
  7357. }
  7358. if !(v4 && v3 != uint32(0)) {
  7359. break
  7360. }
  7361. }
  7362. if uint32(best_len) <= (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  7363. return uint32(best_len)
  7364. }
  7365. return (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  7366. }
  7367. /* ===========================================================================
  7368. * Flush the current block, with given end-of-file flag.
  7369. * IN assertion: strstart is set to the end of the current match.
  7370. */
  7371. /* Same but force premature exit if necessary. */
  7372. /* Maximum stored block length in deflate format (not including header). */
  7373. /* Minimum of a and b. */
  7374. // C documentation
  7375. //
  7376. // /* ===========================================================================
  7377. // * Copy without compression as much as possible from the input stream, return
  7378. // * the current block state.
  7379. // *
  7380. // * In case deflateParams() is used to later switch to a non-zero compression
  7381. // * level, s->matches (otherwise unused when storing) keeps track of the number
  7382. // * of hash table slides to perform. If s->matches is 1, then one hash table
  7383. // * slide will be done when switching. If s->matches is 2, the maximum value
  7384. // * allowed here, then the hash table will be cleared, since two or more slides
  7385. // * is the same as a clear.
  7386. // *
  7387. // * deflate_stored() is written to minimize the number of times an input byte is
  7388. // * copied. It is most efficient with large input and output buffers, which
  7389. // * maximizes the opportunities to have a single copy from next_in to next_out.
  7390. // */
  7391. func _deflate_stored(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  7392. var have, last, left, len1, min_block, used, v3, v4, v6, v7 uint32
  7393. var v1, v5 uint64
  7394. var v2, v8, v9 int32
  7395. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = have, last, left, len1, min_block, used, v1, v2, v3, v4, v5, v6, v7, v8, v9
  7396. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size-uint64(5) > uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) {
  7397. v1 = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  7398. } else {
  7399. v1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - uint64(5)
  7400. }
  7401. /* Smallest worthy block size when not flushing or finishing. By default
  7402. * this is 32K. This can be as small as 507 bytes for memLevel == 1. For
  7403. * large input and output buffers, the stored block size will be larger.
  7404. */
  7405. min_block = uint32(v1)
  7406. last = uint32(0)
  7407. used = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  7408. for cond := true; cond; cond = last == uint32(0) {
  7409. /* Set len to the maximum size block that we can copy directly with the
  7410. * available input data and output space. Set left to how much of that
  7411. * would be copied from what's left in the window.
  7412. */
  7413. len1 = uint32(m_MAX_STORED) /* maximum deflate stored block length */
  7414. have = uint32(((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid + int32(42)) >> int32(3)) /* number of header bytes */
  7415. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out < have { /* need room for header */
  7416. break
  7417. }
  7418. /* maximum stored block length that will fit in avail_out: */
  7419. have = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out - have
  7420. left = uint32(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start) /* bytes left in window */
  7421. if uint64(len1) > uint64(left)+uint64((*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in) {
  7422. len1 = left + (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  7423. } /* limit len to the input */
  7424. if len1 > have {
  7425. len1 = have
  7426. } /* limit len to the output */
  7427. /* If the stored block would be less than min_block in length, or if
  7428. * unable to copy all of the available input when flushing, then try
  7429. * copying to the window and the pending buffer instead. Also don't
  7430. * write an empty block when flushing -- deflate() does that.
  7431. */
  7432. if len1 < min_block && (len1 == uint32(0) && flush != int32(m_Z_FINISH) || flush == m_Z_NO_FLUSH || len1 != left+(*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in) {
  7433. break
  7434. }
  7435. /* Make a dummy stored block in pending to get the header bytes,
  7436. * including any pending bits. This also updates the debugging counts.
  7437. */
  7438. if flush == int32(m_Z_FINISH) && len1 == left+(*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  7439. v2 = int32(1)
  7440. } else {
  7441. v2 = 0
  7442. }
  7443. last = uint32(v2)
  7444. x__tr_stored_block(tls, s, libc.UintptrFromInt32(0), uint64(0), int32(last))
  7445. /* Replace the lengths in the dummy stored block with len. */
  7446. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(4)))) = uint8(len1)
  7447. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(3)))) = uint8(len1 >> int32(8))
  7448. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(2)))) = uint8(^len1)
  7449. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(1)))) = uint8(^len1 >> int32(8))
  7450. /* Write the stored block header bytes. */
  7451. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  7452. /* Copy uncompressed bytes from the window to next_out. */
  7453. if left != 0 {
  7454. if left > len1 {
  7455. left = len1
  7456. }
  7457. libc.Xmemcpy(tls, (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_out, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), uint64(left))
  7458. *(*uintptr)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 24)) += uintptr(left)
  7459. *(*TuInt)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 32)) -= left
  7460. *(*TuLong)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 40)) += uint64(left)
  7461. *(*int64)(unsafe.Pointer(s + 152)) += int64(left)
  7462. len1 -= left
  7463. }
  7464. /* Copy uncompressed bytes directly from next_in to next_out, updating
  7465. * the check value.
  7466. */
  7467. if len1 != 0 {
  7468. _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_out, len1)
  7469. *(*uintptr)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 24)) += uintptr(len1)
  7470. *(*TuInt)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 32)) -= len1
  7471. *(*TuLong)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 40)) += uint64(len1)
  7472. }
  7473. }
  7474. /* Update the sliding window with the last s->w_size bytes of the copied
  7475. * data, or append all of the copied data to the existing window if less
  7476. * than s->w_size bytes were copied. Also update the number of bytes to
  7477. * insert in the hash tables, in the event that deflateParams() switches to
  7478. * a non-zero compression level.
  7479. */
  7480. used -= (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in /* number of input bytes directly copied */
  7481. if used != 0 {
  7482. /* If any input was used, then no unused input remains in the window,
  7483. * therefore s->block_start == s->strstart.
  7484. */
  7485. if used >= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size { /* supplant the previous history */
  7486. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = uint32(2) /* clear hash */
  7487. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_in-uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size), uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size))
  7488. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  7489. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  7490. } else {
  7491. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size-uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) <= uint64(used) {
  7492. /* Slide the window down. */
  7493. *(*TuInt)(unsafe.Pointer(s + 172)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  7494. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size), uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  7495. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches < uint32(2) {
  7496. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  7497. } /* add a pending slide_hash() */
  7498. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  7499. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  7500. }
  7501. }
  7502. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart), (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_in-uintptr(used), uint64(used))
  7503. *(*TuInt)(unsafe.Pointer(s + 172)) += used
  7504. if used > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-(*Tdeflate_state)(unsafe.Pointer(s)).Finsert {
  7505. v3 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  7506. } else {
  7507. v3 = used
  7508. }
  7509. *(*TuInt)(unsafe.Pointer(s + 5932)) += v3
  7510. }
  7511. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  7512. }
  7513. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) {
  7514. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  7515. }
  7516. /* If the last block was written to next_out, then done. */
  7517. if last != 0 {
  7518. return int32(_finish_done)
  7519. }
  7520. /* If flushing and all input has been consumed, then done. */
  7521. if flush != m_Z_NO_FLUSH && flush != int32(m_Z_FINISH) && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) && int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) == (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start {
  7522. return int32(_block_done)
  7523. }
  7524. /* Fill the window with any remaining input. */
  7525. have = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  7526. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in > have && (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= int64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) {
  7527. /* Slide the window down. */
  7528. *(*int64)(unsafe.Pointer(s + 152)) -= int64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  7529. *(*TuInt)(unsafe.Pointer(s + 172)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  7530. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size), uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  7531. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches < uint32(2) {
  7532. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  7533. } /* add a pending slide_hash() */
  7534. have += (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size /* more space now */
  7535. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  7536. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  7537. }
  7538. }
  7539. if have > (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  7540. have = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  7541. }
  7542. if have != 0 {
  7543. _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart), have)
  7544. *(*TuInt)(unsafe.Pointer(s + 172)) += have
  7545. if have > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-(*Tdeflate_state)(unsafe.Pointer(s)).Finsert {
  7546. v4 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  7547. } else {
  7548. v4 = have
  7549. }
  7550. *(*TuInt)(unsafe.Pointer(s + 5932)) += v4
  7551. }
  7552. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) {
  7553. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  7554. }
  7555. /* There was not enough avail_out to write a complete worthy or flushed
  7556. * stored block to next_out. Write a stored block to pending instead, if we
  7557. * have enough input for a worthy block, or if flushing and there is enough
  7558. * room for the remaining input as a stored block in the pending buffer.
  7559. */
  7560. have = uint32(((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid + int32(42)) >> int32(3)) /* number of header bytes */
  7561. /* maximum stored block length that will fit in pending: */
  7562. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size-uint64(have) > uint64(libc.Int32FromInt32(m_MAX_STORED)) {
  7563. v5 = uint64(libc.Int32FromInt32(m_MAX_STORED))
  7564. } else {
  7565. v5 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - uint64(have)
  7566. }
  7567. have = uint32(v5)
  7568. if have > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  7569. v6 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  7570. } else {
  7571. v6 = have
  7572. }
  7573. min_block = v6
  7574. left = uint32(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start)
  7575. if left >= min_block || (left != 0 || flush == int32(m_Z_FINISH)) && flush != m_Z_NO_FLUSH && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) && left <= have {
  7576. if left > have {
  7577. v7 = have
  7578. } else {
  7579. v7 = left
  7580. }
  7581. len1 = v7
  7582. if flush == int32(m_Z_FINISH) && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) && len1 == left {
  7583. v8 = int32(1)
  7584. } else {
  7585. v8 = 0
  7586. }
  7587. last = uint32(v8)
  7588. x__tr_stored_block(tls, s, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), uint64(len1), int32(last))
  7589. *(*int64)(unsafe.Pointer(s + 152)) += int64(len1)
  7590. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  7591. }
  7592. /* We've done all we can with the available input and output. */
  7593. if last != 0 {
  7594. v9 = int32(_finish_started)
  7595. } else {
  7596. v9 = int32(_need_more)
  7597. }
  7598. return v9
  7599. }
  7600. // C documentation
  7601. //
  7602. // /* ===========================================================================
  7603. // * Compress as much as possible from the input stream, return the current
  7604. // * block state.
  7605. // * This function does not perform lazy evaluation of matches and inserts
  7606. // * new strings in the dictionary only for unmatched strings or for short
  7607. // * matches. It is used only for the fast compression options.
  7608. // */
  7609. func _deflate_fast(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  7610. var bflush, v9 int32
  7611. var cc, len1 Tuch
  7612. var dist Tush
  7613. var hash_head TIPos
  7614. var v10, v14, v16, v18, v3, v5, v7 TuInt
  7615. var v11, v15, v17, v19, v20, v22, v23, v4, v6, v8 uintptr
  7616. var v13, v2 TPosf
  7617. var v21 uint32
  7618. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bflush, cc, dist, hash_head, len1, v10, v11, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v3, v4, v5, v6, v7, v8, v9 /* set if current block must be flushed */
  7619. for {
  7620. /* Make sure that we always have enough lookahead, except
  7621. * at the end of the input file. We need MAX_MATCH bytes
  7622. * for the next match, plus MIN_MATCH bytes to insert the
  7623. * string following the next match.
  7624. */
  7625. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  7626. _fill_window(tls, s)
  7627. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && flush == m_Z_NO_FLUSH {
  7628. return int32(_need_more)
  7629. }
  7630. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  7631. break
  7632. } /* flush the current block */
  7633. }
  7634. /* Insert the string window[strstart .. strstart + 2] in the
  7635. * dictionary, and set hash_head to the head of the hash chain:
  7636. */
  7637. hash_head = uint32(m_NIL)
  7638. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  7639. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  7640. v2 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  7641. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart&(*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask)*2)) = v2
  7642. hash_head = uint32(v2)
  7643. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  7644. }
  7645. /* Find the longest match, discarding those <= prev_length.
  7646. * At this point we have always match_length < MIN_MATCH
  7647. */
  7648. if hash_head != uint32(m_NIL) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-hash_head <= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  7649. /* To simplify the code, we prevent matches with the string
  7650. * of window index 0 (in particular we have to avoid a match
  7651. * of the string with itself at the start of the input file).
  7652. */
  7653. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = _longest_match(tls, s, hash_head)
  7654. /* longest_match() sets match_start */
  7655. }
  7656. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length >= uint32(m_MIN_MATCH) {
  7657. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length - libc.Uint32FromInt32(m_MIN_MATCH))
  7658. dist = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start)
  7659. v4 = s + 5900
  7660. v3 = *(*TuInt)(unsafe.Pointer(v4))
  7661. *(*TuInt)(unsafe.Pointer(v4))++
  7662. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist)
  7663. v6 = s + 5900
  7664. v5 = *(*TuInt)(unsafe.Pointer(v6))
  7665. *(*TuInt)(unsafe.Pointer(v6))++
  7666. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = uint8(int32(dist) >> libc.Int32FromInt32(8))
  7667. v8 = s + 5900
  7668. v7 = *(*TuInt)(unsafe.Pointer(v8))
  7669. *(*TuInt)(unsafe.Pointer(v8))++
  7670. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v7))) = len1
  7671. dist--
  7672. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(int32(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  7673. if int32(dist) < int32(256) {
  7674. v9 = int32(x__dist_code[dist])
  7675. } else {
  7676. v9 = int32(x__dist_code[int32(256)+int32(dist)>>int32(7)])
  7677. }
  7678. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v9)*4))++
  7679. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  7680. *(*TuInt)(unsafe.Pointer(s + 180)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  7681. /* Insert new strings in the hash table only if the match length
  7682. * is not too large. This saves time but degrades compression.
  7683. */
  7684. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length <= (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match && (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  7685. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length-- /* string at strstart already in table */
  7686. for {
  7687. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  7688. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  7689. v13 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  7690. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart&(*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask)*2)) = v13
  7691. hash_head = uint32(v13)
  7692. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  7693. /* strstart never exceeds WSIZE-MAX_MATCH, so there are
  7694. * always MIN_MATCH bytes ahead.
  7695. */
  7696. goto _12
  7697. _12:
  7698. v11 = s + 160
  7699. *(*TuInt)(unsafe.Pointer(v11))--
  7700. v10 = *(*TuInt)(unsafe.Pointer(v11))
  7701. if !(v10 != uint32(0)) {
  7702. break
  7703. }
  7704. }
  7705. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  7706. } else {
  7707. *(*TuInt)(unsafe.Pointer(s + 172)) += (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  7708. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  7709. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))))
  7710. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(1)))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  7711. /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
  7712. * matter since it will be recomputed at next deflate call.
  7713. */
  7714. }
  7715. } else {
  7716. /* No match, output a literal byte */
  7717. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  7718. v15 = s + 5900
  7719. v14 = *(*TuInt)(unsafe.Pointer(v15))
  7720. *(*TuInt)(unsafe.Pointer(v15))++
  7721. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v14))) = uint8(0)
  7722. v17 = s + 5900
  7723. v16 = *(*TuInt)(unsafe.Pointer(v17))
  7724. *(*TuInt)(unsafe.Pointer(v17))++
  7725. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v16))) = uint8(0)
  7726. v19 = s + 5900
  7727. v18 = *(*TuInt)(unsafe.Pointer(v19))
  7728. *(*TuInt)(unsafe.Pointer(v19))++
  7729. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v18))) = cc
  7730. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  7731. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  7732. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  7733. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  7734. }
  7735. if bflush != 0 {
  7736. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  7737. v20 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  7738. } else {
  7739. v20 = libc.UintptrFromInt32(m_Z_NULL)
  7740. }
  7741. x__tr_flush_block(tls, s, v20, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  7742. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  7743. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  7744. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  7745. return int32(_need_more)
  7746. }
  7747. }
  7748. goto _1
  7749. _1:
  7750. }
  7751. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart < uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1)) {
  7752. v21 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  7753. } else {
  7754. v21 = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  7755. }
  7756. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = v21
  7757. if flush == int32(m_Z_FINISH) {
  7758. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  7759. v22 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  7760. } else {
  7761. v22 = libc.UintptrFromInt32(m_Z_NULL)
  7762. }
  7763. x__tr_flush_block(tls, s, v22, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  7764. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  7765. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  7766. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  7767. return int32(_finish_started)
  7768. }
  7769. return int32(_finish_done)
  7770. }
  7771. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  7772. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  7773. v23 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  7774. } else {
  7775. v23 = libc.UintptrFromInt32(m_Z_NULL)
  7776. }
  7777. x__tr_flush_block(tls, s, v23, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  7778. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  7779. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  7780. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  7781. return int32(_need_more)
  7782. }
  7783. }
  7784. return int32(_block_done)
  7785. }
  7786. // C documentation
  7787. //
  7788. // /* ===========================================================================
  7789. // * Same as above, but achieves better compression. We use a lazy
  7790. // * evaluation for matches: a match is finally adopted only if there is
  7791. // * no better match at the next window position.
  7792. // */
  7793. func _deflate_slow(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  7794. var bflush, v9 int32
  7795. var cc, cc1, len1 Tuch
  7796. var dist Tush
  7797. var hash_head TIPos
  7798. var max_insert, v10, v13, v17, v19, v21, v24, v26, v28, v3, v5, v7 TuInt
  7799. var v11, v14, v16, v18, v20, v22, v23, v25, v27, v29, v31, v32, v4, v6, v8 uintptr
  7800. var v15, v2 TPosf
  7801. var v30 uint32
  7802. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bflush, cc, cc1, dist, hash_head, len1, max_insert, v10, v11, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v3, v30, v31, v32, v4, v5, v6, v7, v8, v9 /* set if current block must be flushed */
  7803. /* Process the input block. */
  7804. for {
  7805. /* Make sure that we always have enough lookahead, except
  7806. * at the end of the input file. We need MAX_MATCH bytes
  7807. * for the next match, plus MIN_MATCH bytes to insert the
  7808. * string following the next match.
  7809. */
  7810. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  7811. _fill_window(tls, s)
  7812. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && flush == m_Z_NO_FLUSH {
  7813. return int32(_need_more)
  7814. }
  7815. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  7816. break
  7817. } /* flush the current block */
  7818. }
  7819. /* Insert the string window[strstart .. strstart + 2] in the
  7820. * dictionary, and set hash_head to the head of the hash chain:
  7821. */
  7822. hash_head = uint32(m_NIL)
  7823. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  7824. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  7825. v2 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  7826. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart&(*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask)*2)) = v2
  7827. hash_head = uint32(v2)
  7828. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  7829. }
  7830. /* Find the longest match, discarding those <= prev_length.
  7831. */
  7832. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  7833. /* Find the longest match, discarding those <= prev_length.
  7834. */
  7835. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_match = (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start
  7836. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  7837. if hash_head != uint32(m_NIL) && (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length < (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-hash_head <= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  7838. /* To simplify the code, we prevent matches with the string
  7839. * of window index 0 (in particular we have to avoid a match
  7840. * of the string with itself at the start of the input file).
  7841. */
  7842. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = _longest_match(tls, s, hash_head)
  7843. /* longest_match() sets match_start */
  7844. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length <= uint32(5) && ((*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_FILTERED) || (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length == uint32(m_MIN_MATCH) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-(*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start > uint32(m_TOO_FAR)) {
  7845. /* If prev_match is also MIN_MATCH, match_start is garbage
  7846. * but we will ignore the current match anyway.
  7847. */
  7848. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  7849. }
  7850. }
  7851. /* If there was a match at the previous step and the current
  7852. * match is not better, output the previous match:
  7853. */
  7854. if (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length >= uint32(m_MIN_MATCH) && (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length <= (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length {
  7855. max_insert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - uint32(m_MIN_MATCH)
  7856. /* Do not insert strings in hash table beyond this. */
  7857. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length - libc.Uint32FromInt32(m_MIN_MATCH))
  7858. dist = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - libc.Uint32FromInt32(1) - (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_match)
  7859. v4 = s + 5900
  7860. v3 = *(*TuInt)(unsafe.Pointer(v4))
  7861. *(*TuInt)(unsafe.Pointer(v4))++
  7862. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist)
  7863. v6 = s + 5900
  7864. v5 = *(*TuInt)(unsafe.Pointer(v6))
  7865. *(*TuInt)(unsafe.Pointer(v6))++
  7866. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = uint8(int32(dist) >> libc.Int32FromInt32(8))
  7867. v8 = s + 5900
  7868. v7 = *(*TuInt)(unsafe.Pointer(v8))
  7869. *(*TuInt)(unsafe.Pointer(v8))++
  7870. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v7))) = len1
  7871. dist--
  7872. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(int32(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  7873. if int32(dist) < int32(256) {
  7874. v9 = int32(x__dist_code[dist])
  7875. } else {
  7876. v9 = int32(x__dist_code[int32(256)+int32(dist)>>int32(7)])
  7877. }
  7878. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v9)*4))++
  7879. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  7880. /* Insert in hash table all strings up to the end of the match.
  7881. * strstart - 1 and strstart are already inserted. If there is not
  7882. * enough lookahead, the last two strings are not inserted in
  7883. * the hash table.
  7884. */
  7885. *(*TuInt)(unsafe.Pointer(s + 180)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length - uint32(1)
  7886. *(*TuInt)(unsafe.Pointer(s + 184)) -= uint32(2)
  7887. for {
  7888. v14 = s + 172
  7889. *(*TuInt)(unsafe.Pointer(v14))++
  7890. v13 = *(*TuInt)(unsafe.Pointer(v14))
  7891. if v13 <= max_insert {
  7892. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  7893. v15 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  7894. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart&(*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask)*2)) = v15
  7895. hash_head = uint32(v15)
  7896. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  7897. }
  7898. goto _12
  7899. _12:
  7900. v11 = s + 184
  7901. *(*TuInt)(unsafe.Pointer(v11))--
  7902. v10 = *(*TuInt)(unsafe.Pointer(v11))
  7903. if !(v10 != uint32(0)) {
  7904. break
  7905. }
  7906. }
  7907. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  7908. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  7909. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  7910. if bflush != 0 {
  7911. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  7912. v16 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  7913. } else {
  7914. v16 = libc.UintptrFromInt32(m_Z_NULL)
  7915. }
  7916. x__tr_flush_block(tls, s, v16, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  7917. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  7918. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  7919. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  7920. return int32(_need_more)
  7921. }
  7922. }
  7923. } else {
  7924. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available != 0 {
  7925. /* If there was no match at the previous position, output a
  7926. * single literal. If there was a match but the current match
  7927. * is longer, truncate the previous match to a single literal.
  7928. */
  7929. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-uint32(1))))
  7930. v18 = s + 5900
  7931. v17 = *(*TuInt)(unsafe.Pointer(v18))
  7932. *(*TuInt)(unsafe.Pointer(v18))++
  7933. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v17))) = uint8(0)
  7934. v20 = s + 5900
  7935. v19 = *(*TuInt)(unsafe.Pointer(v20))
  7936. *(*TuInt)(unsafe.Pointer(v20))++
  7937. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v19))) = uint8(0)
  7938. v22 = s + 5900
  7939. v21 = *(*TuInt)(unsafe.Pointer(v22))
  7940. *(*TuInt)(unsafe.Pointer(v22))++
  7941. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v21))) = cc
  7942. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  7943. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  7944. if bflush != 0 {
  7945. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  7946. v23 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  7947. } else {
  7948. v23 = libc.UintptrFromInt32(m_Z_NULL)
  7949. }
  7950. x__tr_flush_block(tls, s, v23, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  7951. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  7952. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  7953. }
  7954. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  7955. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  7956. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  7957. return int32(_need_more)
  7958. }
  7959. } else {
  7960. /* There is no previous match to compare with, wait for
  7961. * the next step to decide.
  7962. */
  7963. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = int32(1)
  7964. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  7965. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  7966. }
  7967. }
  7968. goto _1
  7969. _1:
  7970. }
  7971. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available != 0 {
  7972. cc1 = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-uint32(1))))
  7973. v25 = s + 5900
  7974. v24 = *(*TuInt)(unsafe.Pointer(v25))
  7975. *(*TuInt)(unsafe.Pointer(v25))++
  7976. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v24))) = uint8(0)
  7977. v27 = s + 5900
  7978. v26 = *(*TuInt)(unsafe.Pointer(v27))
  7979. *(*TuInt)(unsafe.Pointer(v27))++
  7980. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v26))) = uint8(0)
  7981. v29 = s + 5900
  7982. v28 = *(*TuInt)(unsafe.Pointer(v29))
  7983. *(*TuInt)(unsafe.Pointer(v29))++
  7984. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v28))) = cc1
  7985. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc1)*4))++
  7986. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  7987. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  7988. }
  7989. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart < uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1)) {
  7990. v30 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  7991. } else {
  7992. v30 = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  7993. }
  7994. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = v30
  7995. if flush == int32(m_Z_FINISH) {
  7996. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  7997. v31 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  7998. } else {
  7999. v31 = libc.UintptrFromInt32(m_Z_NULL)
  8000. }
  8001. x__tr_flush_block(tls, s, v31, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  8002. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8003. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8004. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8005. return int32(_finish_started)
  8006. }
  8007. return int32(_finish_done)
  8008. }
  8009. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  8010. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8011. v32 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8012. } else {
  8013. v32 = libc.UintptrFromInt32(m_Z_NULL)
  8014. }
  8015. x__tr_flush_block(tls, s, v32, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8016. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8017. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8018. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8019. return int32(_need_more)
  8020. }
  8021. }
  8022. return int32(_block_done)
  8023. }
  8024. // C documentation
  8025. //
  8026. // /* ===========================================================================
  8027. // * For Z_RLE, simply look for runs of bytes, generate matches only of distance
  8028. // * one. Do not maintain a hash table. (It will be regenerated if this run of
  8029. // * deflate switches away from Z_RLE.)
  8030. // */
  8031. func _deflate_rle(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  8032. var bflush, v29 int32
  8033. var cc, len1 Tuch
  8034. var dist Tush
  8035. var prev, v23, v25, v27, v30, v32, v34 TuInt
  8036. var scan, strend, v10, v12, v14, v16, v18, v2, v20, v24, v26, v28, v3, v31, v33, v35, v36, v37, v38, v5, v7, v8 uintptr
  8037. var v11, v13, v15, v17, v19, v21, v4, v6, v9 bool
  8038. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bflush, cc, dist, len1, prev, scan, strend, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v23, v24, v25, v26, v27, v28, v29, v3, v30, v31, v32, v33, v34, v35, v36, v37, v38, v4, v5, v6, v7, v8, v9 /* scan goes up to strend for length of run */
  8039. for {
  8040. /* Make sure that we always have enough lookahead, except
  8041. * at the end of the input file. We need MAX_MATCH bytes
  8042. * for the longest run, plus one for the unrolled loop.
  8043. */
  8044. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead <= uint32(m_MAX_MATCH) {
  8045. _fill_window(tls, s)
  8046. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead <= uint32(m_MAX_MATCH) && flush == m_Z_NO_FLUSH {
  8047. return int32(_need_more)
  8048. }
  8049. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  8050. break
  8051. } /* flush the current block */
  8052. }
  8053. /* See how many times the previous byte repeats */
  8054. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  8055. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart > uint32(0) {
  8056. scan = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - uintptr(1)
  8057. prev = uint32(*(*TBytef)(unsafe.Pointer(scan)))
  8058. scan++
  8059. v2 = scan
  8060. if v4 = prev == uint32(*(*TBytef)(unsafe.Pointer(v2))); v4 {
  8061. scan++
  8062. v3 = scan
  8063. }
  8064. if v6 = v4 && prev == uint32(*(*TBytef)(unsafe.Pointer(v3))); v6 {
  8065. scan++
  8066. v5 = scan
  8067. }
  8068. if v6 && prev == uint32(*(*TBytef)(unsafe.Pointer(v5))) {
  8069. strend = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uintptr(m_MAX_MATCH)
  8070. for {
  8071. goto _22
  8072. _22:
  8073. scan++
  8074. v7 = scan
  8075. if v9 = prev == uint32(*(*TBytef)(unsafe.Pointer(v7))); v9 {
  8076. scan++
  8077. v8 = scan
  8078. }
  8079. if v11 = v9 && prev == uint32(*(*TBytef)(unsafe.Pointer(v8))); v11 {
  8080. scan++
  8081. v10 = scan
  8082. }
  8083. if v13 = v11 && prev == uint32(*(*TBytef)(unsafe.Pointer(v10))); v13 {
  8084. scan++
  8085. v12 = scan
  8086. }
  8087. if v15 = v13 && prev == uint32(*(*TBytef)(unsafe.Pointer(v12))); v15 {
  8088. scan++
  8089. v14 = scan
  8090. }
  8091. if v17 = v15 && prev == uint32(*(*TBytef)(unsafe.Pointer(v14))); v17 {
  8092. scan++
  8093. v16 = scan
  8094. }
  8095. if v19 = v17 && prev == uint32(*(*TBytef)(unsafe.Pointer(v16))); v19 {
  8096. scan++
  8097. v18 = scan
  8098. }
  8099. if v21 = v19 && prev == uint32(*(*TBytef)(unsafe.Pointer(v18))); v21 {
  8100. scan++
  8101. v20 = scan
  8102. }
  8103. if !(v21 && prev == uint32(*(*TBytef)(unsafe.Pointer(v20))) && scan < strend) {
  8104. break
  8105. }
  8106. }
  8107. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(m_MAX_MATCH) - uint32(int64(strend)-int64(scan))
  8108. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length > (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  8109. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  8110. }
  8111. }
  8112. }
  8113. /* Emit match if have run of MIN_MATCH or longer, else emit literal */
  8114. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length >= uint32(m_MIN_MATCH) {
  8115. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length - libc.Uint32FromInt32(m_MIN_MATCH))
  8116. dist = uint16(libc.Int32FromInt32(1))
  8117. v24 = s + 5900
  8118. v23 = *(*TuInt)(unsafe.Pointer(v24))
  8119. *(*TuInt)(unsafe.Pointer(v24))++
  8120. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v23))) = uint8(dist)
  8121. v26 = s + 5900
  8122. v25 = *(*TuInt)(unsafe.Pointer(v26))
  8123. *(*TuInt)(unsafe.Pointer(v26))++
  8124. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v25))) = uint8(int32(dist) >> libc.Int32FromInt32(8))
  8125. v28 = s + 5900
  8126. v27 = *(*TuInt)(unsafe.Pointer(v28))
  8127. *(*TuInt)(unsafe.Pointer(v28))++
  8128. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v27))) = len1
  8129. dist--
  8130. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(int32(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  8131. if int32(dist) < int32(256) {
  8132. v29 = int32(x__dist_code[dist])
  8133. } else {
  8134. v29 = int32(x__dist_code[int32(256)+int32(dist)>>int32(7)])
  8135. }
  8136. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v29)*4))++
  8137. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  8138. *(*TuInt)(unsafe.Pointer(s + 180)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  8139. *(*TuInt)(unsafe.Pointer(s + 172)) += (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  8140. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  8141. } else {
  8142. /* No match, output a literal byte */
  8143. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  8144. v31 = s + 5900
  8145. v30 = *(*TuInt)(unsafe.Pointer(v31))
  8146. *(*TuInt)(unsafe.Pointer(v31))++
  8147. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v30))) = uint8(0)
  8148. v33 = s + 5900
  8149. v32 = *(*TuInt)(unsafe.Pointer(v33))
  8150. *(*TuInt)(unsafe.Pointer(v33))++
  8151. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v32))) = uint8(0)
  8152. v35 = s + 5900
  8153. v34 = *(*TuInt)(unsafe.Pointer(v35))
  8154. *(*TuInt)(unsafe.Pointer(v35))++
  8155. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v34))) = cc
  8156. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  8157. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  8158. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  8159. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  8160. }
  8161. if bflush != 0 {
  8162. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8163. v36 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8164. } else {
  8165. v36 = libc.UintptrFromInt32(m_Z_NULL)
  8166. }
  8167. x__tr_flush_block(tls, s, v36, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8168. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8169. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8170. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8171. return int32(_need_more)
  8172. }
  8173. }
  8174. goto _1
  8175. _1:
  8176. }
  8177. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  8178. if flush == int32(m_Z_FINISH) {
  8179. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8180. v37 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8181. } else {
  8182. v37 = libc.UintptrFromInt32(m_Z_NULL)
  8183. }
  8184. x__tr_flush_block(tls, s, v37, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  8185. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8186. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8187. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8188. return int32(_finish_started)
  8189. }
  8190. return int32(_finish_done)
  8191. }
  8192. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  8193. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8194. v38 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8195. } else {
  8196. v38 = libc.UintptrFromInt32(m_Z_NULL)
  8197. }
  8198. x__tr_flush_block(tls, s, v38, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8199. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8200. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8201. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8202. return int32(_need_more)
  8203. }
  8204. }
  8205. return int32(_block_done)
  8206. }
  8207. // C documentation
  8208. //
  8209. // /* ===========================================================================
  8210. // * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.
  8211. // * (It will be regenerated if this run of deflate switches away from Huffman.)
  8212. // */
  8213. func _deflate_huff(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  8214. var bflush int32
  8215. var cc Tuch
  8216. var v10, v3, v5, v7, v8, v9 uintptr
  8217. var v2, v4, v6 TuInt
  8218. _, _, _, _, _, _, _, _, _, _, _ = bflush, cc, v10, v2, v3, v4, v5, v6, v7, v8, v9 /* set if current block must be flushed */
  8219. for {
  8220. /* Make sure that we have a literal to write. */
  8221. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  8222. _fill_window(tls, s)
  8223. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  8224. if flush == m_Z_NO_FLUSH {
  8225. return int32(_need_more)
  8226. }
  8227. break /* flush the current block */
  8228. }
  8229. }
  8230. /* Output a literal byte */
  8231. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  8232. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  8233. v3 = s + 5900
  8234. v2 = *(*TuInt)(unsafe.Pointer(v3))
  8235. *(*TuInt)(unsafe.Pointer(v3))++
  8236. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v2))) = uint8(0)
  8237. v5 = s + 5900
  8238. v4 = *(*TuInt)(unsafe.Pointer(v5))
  8239. *(*TuInt)(unsafe.Pointer(v5))++
  8240. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v4))) = uint8(0)
  8241. v7 = s + 5900
  8242. v6 = *(*TuInt)(unsafe.Pointer(v7))
  8243. *(*TuInt)(unsafe.Pointer(v7))++
  8244. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v6))) = cc
  8245. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  8246. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  8247. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  8248. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  8249. if bflush != 0 {
  8250. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8251. v8 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8252. } else {
  8253. v8 = libc.UintptrFromInt32(m_Z_NULL)
  8254. }
  8255. x__tr_flush_block(tls, s, v8, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8256. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8257. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8258. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8259. return int32(_need_more)
  8260. }
  8261. }
  8262. goto _1
  8263. _1:
  8264. }
  8265. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  8266. if flush == int32(m_Z_FINISH) {
  8267. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8268. v9 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8269. } else {
  8270. v9 = libc.UintptrFromInt32(m_Z_NULL)
  8271. }
  8272. x__tr_flush_block(tls, s, v9, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  8273. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8274. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8275. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8276. return int32(_finish_started)
  8277. }
  8278. return int32(_finish_done)
  8279. }
  8280. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  8281. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8282. v10 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8283. } else {
  8284. v10 = libc.UintptrFromInt32(m_Z_NULL)
  8285. }
  8286. x__tr_flush_block(tls, s, v10, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8287. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8288. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8289. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8290. return int32(_need_more)
  8291. }
  8292. }
  8293. return int32(_block_done)
  8294. }
  8295. const m_ENOUGH_DISTS = 592
  8296. const m_ENOUGH_LENS = 852
  8297. type Tcode = struct {
  8298. Fop uint8
  8299. Fbits uint8
  8300. Fval uint16
  8301. }
  8302. type Tcodetype = int32
  8303. const _CODES = 0
  8304. const _LENS = 1
  8305. const _DISTS = 2
  8306. type Tinflate_mode = int32
  8307. const _HEAD = 16180
  8308. const _FLAGS = 16181
  8309. const _TIME = 16182
  8310. const _OS = 16183
  8311. const _EXLEN = 16184
  8312. const _EXTRA = 16185
  8313. const _NAME = 16186
  8314. const _COMMENT = 16187
  8315. const _HCRC = 16188
  8316. const _DICTID = 16189
  8317. const _DICT = 16190
  8318. const _TYPE = 16191
  8319. const _TYPEDO = 16192
  8320. const _STORED = 16193
  8321. const _COPY_ = 16194
  8322. const _COPY = 16195
  8323. const _TABLE = 16196
  8324. const _LENLENS = 16197
  8325. const _CODELENS = 16198
  8326. const _LEN_ = 16199
  8327. const _LEN = 16200
  8328. const _LENEXT = 16201
  8329. const _DIST = 16202
  8330. const _DISTEXT = 16203
  8331. const _MATCH = 16204
  8332. const _LIT = 16205
  8333. const _CHECK = 16206
  8334. const _LENGTH = 16207
  8335. const _DONE = 16208
  8336. const _BAD = 16209
  8337. const _MEM = 16210
  8338. const _SYNC = 16211
  8339. type Tinflate_state = struct {
  8340. Fstrm Tz_streamp
  8341. Fmode Tinflate_mode
  8342. Flast int32
  8343. Fwrap int32
  8344. Fhavedict int32
  8345. Fflags int32
  8346. Fdmax uint32
  8347. Fcheck uint64
  8348. Ftotal uint64
  8349. Fhead Tgz_headerp
  8350. Fwbits uint32
  8351. Fwsize uint32
  8352. Fwhave uint32
  8353. Fwnext uint32
  8354. Fwindow uintptr
  8355. Fhold uint64
  8356. Fbits uint32
  8357. Flength uint32
  8358. Foffset uint32
  8359. Fextra uint32
  8360. Flencode uintptr
  8361. Fdistcode uintptr
  8362. Flenbits uint32
  8363. Fdistbits uint32
  8364. Fncode uint32
  8365. Fnlen uint32
  8366. Fndist uint32
  8367. Fhave uint32
  8368. Fnext uintptr
  8369. Flens [320]uint16
  8370. Fwork [288]uint16
  8371. Fcodes [1444]Tcode
  8372. Fsane int32
  8373. Fback int32
  8374. Fwas uint32
  8375. F__ccgo_pad35 [4]byte
  8376. }
  8377. // C documentation
  8378. //
  8379. // /*
  8380. // strm provides memory allocation functions in zalloc and zfree, or
  8381. // Z_NULL to use the library memory allocation functions.
  8382. //
  8383. // windowBits is in the range 8..15, and window is a user-supplied
  8384. // window and output buffer that is 2**windowBits bytes.
  8385. // */
  8386. func XinflateBackInit_(tls *libc.TLS, strm Tz_streamp, windowBits int32, window uintptr, version uintptr, stream_size int32) (r int32) {
  8387. var state uintptr
  8388. _ = state
  8389. if version == uintptr(m_Z_NULL) || int32(*(*uint8)(unsafe.Pointer(version))) != int32(*(*uint8)(unsafe.Pointer(__ccgo_ts))) || stream_size != int32(libc.Uint64FromInt64(112)) {
  8390. return -int32(6)
  8391. }
  8392. if strm == uintptr(m_Z_NULL) || window == uintptr(m_Z_NULL) || windowBits < int32(8) || windowBits > int32(15) {
  8393. return -int32(2)
  8394. }
  8395. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* in case we return an error */
  8396. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  8397. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  8398. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  8399. }
  8400. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  8401. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  8402. }
  8403. state = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, uint32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(7160)))
  8404. if state == uintptr(m_Z_NULL) {
  8405. return -int32(4)
  8406. }
  8407. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = state
  8408. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(32768)
  8409. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = uint32(windowBits)
  8410. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(1) << windowBits
  8411. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = window
  8412. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  8413. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  8414. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  8415. return m_Z_OK
  8416. }
  8417. // C documentation
  8418. //
  8419. // /*
  8420. // Return state with length and distance decoding tables and index sizes set to
  8421. // fixed code decoding. Normally this returns fixed tables from inffixed.h.
  8422. // If BUILDFIXED is defined, then instead this routine builds the tables the
  8423. // first time it's called, and returns those tables the first time and
  8424. // thereafter. This reduces the size of the code by about 2K bytes, in
  8425. // exchange for a little execution time. However, BUILDFIXED should not be
  8426. // used for threaded applications, since the rewriting of the tables and virgin
  8427. // may not be thread-safe.
  8428. // */
  8429. func _fixedtables(tls *libc.TLS, state uintptr) {
  8430. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = uintptr(unsafe.Pointer(&_lenfix))
  8431. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  8432. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = uintptr(unsafe.Pointer(&_distfix))
  8433. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(5)
  8434. }
  8435. var _lenfix = [512]Tcode{
  8436. 0: {
  8437. Fop: uint8(96),
  8438. Fbits: uint8(7),
  8439. },
  8440. 1: {
  8441. Fbits: uint8(8),
  8442. Fval: uint16(80),
  8443. },
  8444. 2: {
  8445. Fbits: uint8(8),
  8446. Fval: uint16(16),
  8447. },
  8448. 3: {
  8449. Fop: uint8(20),
  8450. Fbits: uint8(8),
  8451. Fval: uint16(115),
  8452. },
  8453. 4: {
  8454. Fop: uint8(18),
  8455. Fbits: uint8(7),
  8456. Fval: uint16(31),
  8457. },
  8458. 5: {
  8459. Fbits: uint8(8),
  8460. Fval: uint16(112),
  8461. },
  8462. 6: {
  8463. Fbits: uint8(8),
  8464. Fval: uint16(48),
  8465. },
  8466. 7: {
  8467. Fbits: uint8(9),
  8468. Fval: uint16(192),
  8469. },
  8470. 8: {
  8471. Fop: uint8(16),
  8472. Fbits: uint8(7),
  8473. Fval: uint16(10),
  8474. },
  8475. 9: {
  8476. Fbits: uint8(8),
  8477. Fval: uint16(96),
  8478. },
  8479. 10: {
  8480. Fbits: uint8(8),
  8481. Fval: uint16(32),
  8482. },
  8483. 11: {
  8484. Fbits: uint8(9),
  8485. Fval: uint16(160),
  8486. },
  8487. 12: {
  8488. Fbits: uint8(8),
  8489. },
  8490. 13: {
  8491. Fbits: uint8(8),
  8492. Fval: uint16(128),
  8493. },
  8494. 14: {
  8495. Fbits: uint8(8),
  8496. Fval: uint16(64),
  8497. },
  8498. 15: {
  8499. Fbits: uint8(9),
  8500. Fval: uint16(224),
  8501. },
  8502. 16: {
  8503. Fop: uint8(16),
  8504. Fbits: uint8(7),
  8505. Fval: uint16(6),
  8506. },
  8507. 17: {
  8508. Fbits: uint8(8),
  8509. Fval: uint16(88),
  8510. },
  8511. 18: {
  8512. Fbits: uint8(8),
  8513. Fval: uint16(24),
  8514. },
  8515. 19: {
  8516. Fbits: uint8(9),
  8517. Fval: uint16(144),
  8518. },
  8519. 20: {
  8520. Fop: uint8(19),
  8521. Fbits: uint8(7),
  8522. Fval: uint16(59),
  8523. },
  8524. 21: {
  8525. Fbits: uint8(8),
  8526. Fval: uint16(120),
  8527. },
  8528. 22: {
  8529. Fbits: uint8(8),
  8530. Fval: uint16(56),
  8531. },
  8532. 23: {
  8533. Fbits: uint8(9),
  8534. Fval: uint16(208),
  8535. },
  8536. 24: {
  8537. Fop: uint8(17),
  8538. Fbits: uint8(7),
  8539. Fval: uint16(17),
  8540. },
  8541. 25: {
  8542. Fbits: uint8(8),
  8543. Fval: uint16(104),
  8544. },
  8545. 26: {
  8546. Fbits: uint8(8),
  8547. Fval: uint16(40),
  8548. },
  8549. 27: {
  8550. Fbits: uint8(9),
  8551. Fval: uint16(176),
  8552. },
  8553. 28: {
  8554. Fbits: uint8(8),
  8555. Fval: uint16(8),
  8556. },
  8557. 29: {
  8558. Fbits: uint8(8),
  8559. Fval: uint16(136),
  8560. },
  8561. 30: {
  8562. Fbits: uint8(8),
  8563. Fval: uint16(72),
  8564. },
  8565. 31: {
  8566. Fbits: uint8(9),
  8567. Fval: uint16(240),
  8568. },
  8569. 32: {
  8570. Fop: uint8(16),
  8571. Fbits: uint8(7),
  8572. Fval: uint16(4),
  8573. },
  8574. 33: {
  8575. Fbits: uint8(8),
  8576. Fval: uint16(84),
  8577. },
  8578. 34: {
  8579. Fbits: uint8(8),
  8580. Fval: uint16(20),
  8581. },
  8582. 35: {
  8583. Fop: uint8(21),
  8584. Fbits: uint8(8),
  8585. Fval: uint16(227),
  8586. },
  8587. 36: {
  8588. Fop: uint8(19),
  8589. Fbits: uint8(7),
  8590. Fval: uint16(43),
  8591. },
  8592. 37: {
  8593. Fbits: uint8(8),
  8594. Fval: uint16(116),
  8595. },
  8596. 38: {
  8597. Fbits: uint8(8),
  8598. Fval: uint16(52),
  8599. },
  8600. 39: {
  8601. Fbits: uint8(9),
  8602. Fval: uint16(200),
  8603. },
  8604. 40: {
  8605. Fop: uint8(17),
  8606. Fbits: uint8(7),
  8607. Fval: uint16(13),
  8608. },
  8609. 41: {
  8610. Fbits: uint8(8),
  8611. Fval: uint16(100),
  8612. },
  8613. 42: {
  8614. Fbits: uint8(8),
  8615. Fval: uint16(36),
  8616. },
  8617. 43: {
  8618. Fbits: uint8(9),
  8619. Fval: uint16(168),
  8620. },
  8621. 44: {
  8622. Fbits: uint8(8),
  8623. Fval: uint16(4),
  8624. },
  8625. 45: {
  8626. Fbits: uint8(8),
  8627. Fval: uint16(132),
  8628. },
  8629. 46: {
  8630. Fbits: uint8(8),
  8631. Fval: uint16(68),
  8632. },
  8633. 47: {
  8634. Fbits: uint8(9),
  8635. Fval: uint16(232),
  8636. },
  8637. 48: {
  8638. Fop: uint8(16),
  8639. Fbits: uint8(7),
  8640. Fval: uint16(8),
  8641. },
  8642. 49: {
  8643. Fbits: uint8(8),
  8644. Fval: uint16(92),
  8645. },
  8646. 50: {
  8647. Fbits: uint8(8),
  8648. Fval: uint16(28),
  8649. },
  8650. 51: {
  8651. Fbits: uint8(9),
  8652. Fval: uint16(152),
  8653. },
  8654. 52: {
  8655. Fop: uint8(20),
  8656. Fbits: uint8(7),
  8657. Fval: uint16(83),
  8658. },
  8659. 53: {
  8660. Fbits: uint8(8),
  8661. Fval: uint16(124),
  8662. },
  8663. 54: {
  8664. Fbits: uint8(8),
  8665. Fval: uint16(60),
  8666. },
  8667. 55: {
  8668. Fbits: uint8(9),
  8669. Fval: uint16(216),
  8670. },
  8671. 56: {
  8672. Fop: uint8(18),
  8673. Fbits: uint8(7),
  8674. Fval: uint16(23),
  8675. },
  8676. 57: {
  8677. Fbits: uint8(8),
  8678. Fval: uint16(108),
  8679. },
  8680. 58: {
  8681. Fbits: uint8(8),
  8682. Fval: uint16(44),
  8683. },
  8684. 59: {
  8685. Fbits: uint8(9),
  8686. Fval: uint16(184),
  8687. },
  8688. 60: {
  8689. Fbits: uint8(8),
  8690. Fval: uint16(12),
  8691. },
  8692. 61: {
  8693. Fbits: uint8(8),
  8694. Fval: uint16(140),
  8695. },
  8696. 62: {
  8697. Fbits: uint8(8),
  8698. Fval: uint16(76),
  8699. },
  8700. 63: {
  8701. Fbits: uint8(9),
  8702. Fval: uint16(248),
  8703. },
  8704. 64: {
  8705. Fop: uint8(16),
  8706. Fbits: uint8(7),
  8707. Fval: uint16(3),
  8708. },
  8709. 65: {
  8710. Fbits: uint8(8),
  8711. Fval: uint16(82),
  8712. },
  8713. 66: {
  8714. Fbits: uint8(8),
  8715. Fval: uint16(18),
  8716. },
  8717. 67: {
  8718. Fop: uint8(21),
  8719. Fbits: uint8(8),
  8720. Fval: uint16(163),
  8721. },
  8722. 68: {
  8723. Fop: uint8(19),
  8724. Fbits: uint8(7),
  8725. Fval: uint16(35),
  8726. },
  8727. 69: {
  8728. Fbits: uint8(8),
  8729. Fval: uint16(114),
  8730. },
  8731. 70: {
  8732. Fbits: uint8(8),
  8733. Fval: uint16(50),
  8734. },
  8735. 71: {
  8736. Fbits: uint8(9),
  8737. Fval: uint16(196),
  8738. },
  8739. 72: {
  8740. Fop: uint8(17),
  8741. Fbits: uint8(7),
  8742. Fval: uint16(11),
  8743. },
  8744. 73: {
  8745. Fbits: uint8(8),
  8746. Fval: uint16(98),
  8747. },
  8748. 74: {
  8749. Fbits: uint8(8),
  8750. Fval: uint16(34),
  8751. },
  8752. 75: {
  8753. Fbits: uint8(9),
  8754. Fval: uint16(164),
  8755. },
  8756. 76: {
  8757. Fbits: uint8(8),
  8758. Fval: uint16(2),
  8759. },
  8760. 77: {
  8761. Fbits: uint8(8),
  8762. Fval: uint16(130),
  8763. },
  8764. 78: {
  8765. Fbits: uint8(8),
  8766. Fval: uint16(66),
  8767. },
  8768. 79: {
  8769. Fbits: uint8(9),
  8770. Fval: uint16(228),
  8771. },
  8772. 80: {
  8773. Fop: uint8(16),
  8774. Fbits: uint8(7),
  8775. Fval: uint16(7),
  8776. },
  8777. 81: {
  8778. Fbits: uint8(8),
  8779. Fval: uint16(90),
  8780. },
  8781. 82: {
  8782. Fbits: uint8(8),
  8783. Fval: uint16(26),
  8784. },
  8785. 83: {
  8786. Fbits: uint8(9),
  8787. Fval: uint16(148),
  8788. },
  8789. 84: {
  8790. Fop: uint8(20),
  8791. Fbits: uint8(7),
  8792. Fval: uint16(67),
  8793. },
  8794. 85: {
  8795. Fbits: uint8(8),
  8796. Fval: uint16(122),
  8797. },
  8798. 86: {
  8799. Fbits: uint8(8),
  8800. Fval: uint16(58),
  8801. },
  8802. 87: {
  8803. Fbits: uint8(9),
  8804. Fval: uint16(212),
  8805. },
  8806. 88: {
  8807. Fop: uint8(18),
  8808. Fbits: uint8(7),
  8809. Fval: uint16(19),
  8810. },
  8811. 89: {
  8812. Fbits: uint8(8),
  8813. Fval: uint16(106),
  8814. },
  8815. 90: {
  8816. Fbits: uint8(8),
  8817. Fval: uint16(42),
  8818. },
  8819. 91: {
  8820. Fbits: uint8(9),
  8821. Fval: uint16(180),
  8822. },
  8823. 92: {
  8824. Fbits: uint8(8),
  8825. Fval: uint16(10),
  8826. },
  8827. 93: {
  8828. Fbits: uint8(8),
  8829. Fval: uint16(138),
  8830. },
  8831. 94: {
  8832. Fbits: uint8(8),
  8833. Fval: uint16(74),
  8834. },
  8835. 95: {
  8836. Fbits: uint8(9),
  8837. Fval: uint16(244),
  8838. },
  8839. 96: {
  8840. Fop: uint8(16),
  8841. Fbits: uint8(7),
  8842. Fval: uint16(5),
  8843. },
  8844. 97: {
  8845. Fbits: uint8(8),
  8846. Fval: uint16(86),
  8847. },
  8848. 98: {
  8849. Fbits: uint8(8),
  8850. Fval: uint16(22),
  8851. },
  8852. 99: {
  8853. Fop: uint8(64),
  8854. Fbits: uint8(8),
  8855. },
  8856. 100: {
  8857. Fop: uint8(19),
  8858. Fbits: uint8(7),
  8859. Fval: uint16(51),
  8860. },
  8861. 101: {
  8862. Fbits: uint8(8),
  8863. Fval: uint16(118),
  8864. },
  8865. 102: {
  8866. Fbits: uint8(8),
  8867. Fval: uint16(54),
  8868. },
  8869. 103: {
  8870. Fbits: uint8(9),
  8871. Fval: uint16(204),
  8872. },
  8873. 104: {
  8874. Fop: uint8(17),
  8875. Fbits: uint8(7),
  8876. Fval: uint16(15),
  8877. },
  8878. 105: {
  8879. Fbits: uint8(8),
  8880. Fval: uint16(102),
  8881. },
  8882. 106: {
  8883. Fbits: uint8(8),
  8884. Fval: uint16(38),
  8885. },
  8886. 107: {
  8887. Fbits: uint8(9),
  8888. Fval: uint16(172),
  8889. },
  8890. 108: {
  8891. Fbits: uint8(8),
  8892. Fval: uint16(6),
  8893. },
  8894. 109: {
  8895. Fbits: uint8(8),
  8896. Fval: uint16(134),
  8897. },
  8898. 110: {
  8899. Fbits: uint8(8),
  8900. Fval: uint16(70),
  8901. },
  8902. 111: {
  8903. Fbits: uint8(9),
  8904. Fval: uint16(236),
  8905. },
  8906. 112: {
  8907. Fop: uint8(16),
  8908. Fbits: uint8(7),
  8909. Fval: uint16(9),
  8910. },
  8911. 113: {
  8912. Fbits: uint8(8),
  8913. Fval: uint16(94),
  8914. },
  8915. 114: {
  8916. Fbits: uint8(8),
  8917. Fval: uint16(30),
  8918. },
  8919. 115: {
  8920. Fbits: uint8(9),
  8921. Fval: uint16(156),
  8922. },
  8923. 116: {
  8924. Fop: uint8(20),
  8925. Fbits: uint8(7),
  8926. Fval: uint16(99),
  8927. },
  8928. 117: {
  8929. Fbits: uint8(8),
  8930. Fval: uint16(126),
  8931. },
  8932. 118: {
  8933. Fbits: uint8(8),
  8934. Fval: uint16(62),
  8935. },
  8936. 119: {
  8937. Fbits: uint8(9),
  8938. Fval: uint16(220),
  8939. },
  8940. 120: {
  8941. Fop: uint8(18),
  8942. Fbits: uint8(7),
  8943. Fval: uint16(27),
  8944. },
  8945. 121: {
  8946. Fbits: uint8(8),
  8947. Fval: uint16(110),
  8948. },
  8949. 122: {
  8950. Fbits: uint8(8),
  8951. Fval: uint16(46),
  8952. },
  8953. 123: {
  8954. Fbits: uint8(9),
  8955. Fval: uint16(188),
  8956. },
  8957. 124: {
  8958. Fbits: uint8(8),
  8959. Fval: uint16(14),
  8960. },
  8961. 125: {
  8962. Fbits: uint8(8),
  8963. Fval: uint16(142),
  8964. },
  8965. 126: {
  8966. Fbits: uint8(8),
  8967. Fval: uint16(78),
  8968. },
  8969. 127: {
  8970. Fbits: uint8(9),
  8971. Fval: uint16(252),
  8972. },
  8973. 128: {
  8974. Fop: uint8(96),
  8975. Fbits: uint8(7),
  8976. },
  8977. 129: {
  8978. Fbits: uint8(8),
  8979. Fval: uint16(81),
  8980. },
  8981. 130: {
  8982. Fbits: uint8(8),
  8983. Fval: uint16(17),
  8984. },
  8985. 131: {
  8986. Fop: uint8(21),
  8987. Fbits: uint8(8),
  8988. Fval: uint16(131),
  8989. },
  8990. 132: {
  8991. Fop: uint8(18),
  8992. Fbits: uint8(7),
  8993. Fval: uint16(31),
  8994. },
  8995. 133: {
  8996. Fbits: uint8(8),
  8997. Fval: uint16(113),
  8998. },
  8999. 134: {
  9000. Fbits: uint8(8),
  9001. Fval: uint16(49),
  9002. },
  9003. 135: {
  9004. Fbits: uint8(9),
  9005. Fval: uint16(194),
  9006. },
  9007. 136: {
  9008. Fop: uint8(16),
  9009. Fbits: uint8(7),
  9010. Fval: uint16(10),
  9011. },
  9012. 137: {
  9013. Fbits: uint8(8),
  9014. Fval: uint16(97),
  9015. },
  9016. 138: {
  9017. Fbits: uint8(8),
  9018. Fval: uint16(33),
  9019. },
  9020. 139: {
  9021. Fbits: uint8(9),
  9022. Fval: uint16(162),
  9023. },
  9024. 140: {
  9025. Fbits: uint8(8),
  9026. Fval: uint16(1),
  9027. },
  9028. 141: {
  9029. Fbits: uint8(8),
  9030. Fval: uint16(129),
  9031. },
  9032. 142: {
  9033. Fbits: uint8(8),
  9034. Fval: uint16(65),
  9035. },
  9036. 143: {
  9037. Fbits: uint8(9),
  9038. Fval: uint16(226),
  9039. },
  9040. 144: {
  9041. Fop: uint8(16),
  9042. Fbits: uint8(7),
  9043. Fval: uint16(6),
  9044. },
  9045. 145: {
  9046. Fbits: uint8(8),
  9047. Fval: uint16(89),
  9048. },
  9049. 146: {
  9050. Fbits: uint8(8),
  9051. Fval: uint16(25),
  9052. },
  9053. 147: {
  9054. Fbits: uint8(9),
  9055. Fval: uint16(146),
  9056. },
  9057. 148: {
  9058. Fop: uint8(19),
  9059. Fbits: uint8(7),
  9060. Fval: uint16(59),
  9061. },
  9062. 149: {
  9063. Fbits: uint8(8),
  9064. Fval: uint16(121),
  9065. },
  9066. 150: {
  9067. Fbits: uint8(8),
  9068. Fval: uint16(57),
  9069. },
  9070. 151: {
  9071. Fbits: uint8(9),
  9072. Fval: uint16(210),
  9073. },
  9074. 152: {
  9075. Fop: uint8(17),
  9076. Fbits: uint8(7),
  9077. Fval: uint16(17),
  9078. },
  9079. 153: {
  9080. Fbits: uint8(8),
  9081. Fval: uint16(105),
  9082. },
  9083. 154: {
  9084. Fbits: uint8(8),
  9085. Fval: uint16(41),
  9086. },
  9087. 155: {
  9088. Fbits: uint8(9),
  9089. Fval: uint16(178),
  9090. },
  9091. 156: {
  9092. Fbits: uint8(8),
  9093. Fval: uint16(9),
  9094. },
  9095. 157: {
  9096. Fbits: uint8(8),
  9097. Fval: uint16(137),
  9098. },
  9099. 158: {
  9100. Fbits: uint8(8),
  9101. Fval: uint16(73),
  9102. },
  9103. 159: {
  9104. Fbits: uint8(9),
  9105. Fval: uint16(242),
  9106. },
  9107. 160: {
  9108. Fop: uint8(16),
  9109. Fbits: uint8(7),
  9110. Fval: uint16(4),
  9111. },
  9112. 161: {
  9113. Fbits: uint8(8),
  9114. Fval: uint16(85),
  9115. },
  9116. 162: {
  9117. Fbits: uint8(8),
  9118. Fval: uint16(21),
  9119. },
  9120. 163: {
  9121. Fop: uint8(16),
  9122. Fbits: uint8(8),
  9123. Fval: uint16(258),
  9124. },
  9125. 164: {
  9126. Fop: uint8(19),
  9127. Fbits: uint8(7),
  9128. Fval: uint16(43),
  9129. },
  9130. 165: {
  9131. Fbits: uint8(8),
  9132. Fval: uint16(117),
  9133. },
  9134. 166: {
  9135. Fbits: uint8(8),
  9136. Fval: uint16(53),
  9137. },
  9138. 167: {
  9139. Fbits: uint8(9),
  9140. Fval: uint16(202),
  9141. },
  9142. 168: {
  9143. Fop: uint8(17),
  9144. Fbits: uint8(7),
  9145. Fval: uint16(13),
  9146. },
  9147. 169: {
  9148. Fbits: uint8(8),
  9149. Fval: uint16(101),
  9150. },
  9151. 170: {
  9152. Fbits: uint8(8),
  9153. Fval: uint16(37),
  9154. },
  9155. 171: {
  9156. Fbits: uint8(9),
  9157. Fval: uint16(170),
  9158. },
  9159. 172: {
  9160. Fbits: uint8(8),
  9161. Fval: uint16(5),
  9162. },
  9163. 173: {
  9164. Fbits: uint8(8),
  9165. Fval: uint16(133),
  9166. },
  9167. 174: {
  9168. Fbits: uint8(8),
  9169. Fval: uint16(69),
  9170. },
  9171. 175: {
  9172. Fbits: uint8(9),
  9173. Fval: uint16(234),
  9174. },
  9175. 176: {
  9176. Fop: uint8(16),
  9177. Fbits: uint8(7),
  9178. Fval: uint16(8),
  9179. },
  9180. 177: {
  9181. Fbits: uint8(8),
  9182. Fval: uint16(93),
  9183. },
  9184. 178: {
  9185. Fbits: uint8(8),
  9186. Fval: uint16(29),
  9187. },
  9188. 179: {
  9189. Fbits: uint8(9),
  9190. Fval: uint16(154),
  9191. },
  9192. 180: {
  9193. Fop: uint8(20),
  9194. Fbits: uint8(7),
  9195. Fval: uint16(83),
  9196. },
  9197. 181: {
  9198. Fbits: uint8(8),
  9199. Fval: uint16(125),
  9200. },
  9201. 182: {
  9202. Fbits: uint8(8),
  9203. Fval: uint16(61),
  9204. },
  9205. 183: {
  9206. Fbits: uint8(9),
  9207. Fval: uint16(218),
  9208. },
  9209. 184: {
  9210. Fop: uint8(18),
  9211. Fbits: uint8(7),
  9212. Fval: uint16(23),
  9213. },
  9214. 185: {
  9215. Fbits: uint8(8),
  9216. Fval: uint16(109),
  9217. },
  9218. 186: {
  9219. Fbits: uint8(8),
  9220. Fval: uint16(45),
  9221. },
  9222. 187: {
  9223. Fbits: uint8(9),
  9224. Fval: uint16(186),
  9225. },
  9226. 188: {
  9227. Fbits: uint8(8),
  9228. Fval: uint16(13),
  9229. },
  9230. 189: {
  9231. Fbits: uint8(8),
  9232. Fval: uint16(141),
  9233. },
  9234. 190: {
  9235. Fbits: uint8(8),
  9236. Fval: uint16(77),
  9237. },
  9238. 191: {
  9239. Fbits: uint8(9),
  9240. Fval: uint16(250),
  9241. },
  9242. 192: {
  9243. Fop: uint8(16),
  9244. Fbits: uint8(7),
  9245. Fval: uint16(3),
  9246. },
  9247. 193: {
  9248. Fbits: uint8(8),
  9249. Fval: uint16(83),
  9250. },
  9251. 194: {
  9252. Fbits: uint8(8),
  9253. Fval: uint16(19),
  9254. },
  9255. 195: {
  9256. Fop: uint8(21),
  9257. Fbits: uint8(8),
  9258. Fval: uint16(195),
  9259. },
  9260. 196: {
  9261. Fop: uint8(19),
  9262. Fbits: uint8(7),
  9263. Fval: uint16(35),
  9264. },
  9265. 197: {
  9266. Fbits: uint8(8),
  9267. Fval: uint16(115),
  9268. },
  9269. 198: {
  9270. Fbits: uint8(8),
  9271. Fval: uint16(51),
  9272. },
  9273. 199: {
  9274. Fbits: uint8(9),
  9275. Fval: uint16(198),
  9276. },
  9277. 200: {
  9278. Fop: uint8(17),
  9279. Fbits: uint8(7),
  9280. Fval: uint16(11),
  9281. },
  9282. 201: {
  9283. Fbits: uint8(8),
  9284. Fval: uint16(99),
  9285. },
  9286. 202: {
  9287. Fbits: uint8(8),
  9288. Fval: uint16(35),
  9289. },
  9290. 203: {
  9291. Fbits: uint8(9),
  9292. Fval: uint16(166),
  9293. },
  9294. 204: {
  9295. Fbits: uint8(8),
  9296. Fval: uint16(3),
  9297. },
  9298. 205: {
  9299. Fbits: uint8(8),
  9300. Fval: uint16(131),
  9301. },
  9302. 206: {
  9303. Fbits: uint8(8),
  9304. Fval: uint16(67),
  9305. },
  9306. 207: {
  9307. Fbits: uint8(9),
  9308. Fval: uint16(230),
  9309. },
  9310. 208: {
  9311. Fop: uint8(16),
  9312. Fbits: uint8(7),
  9313. Fval: uint16(7),
  9314. },
  9315. 209: {
  9316. Fbits: uint8(8),
  9317. Fval: uint16(91),
  9318. },
  9319. 210: {
  9320. Fbits: uint8(8),
  9321. Fval: uint16(27),
  9322. },
  9323. 211: {
  9324. Fbits: uint8(9),
  9325. Fval: uint16(150),
  9326. },
  9327. 212: {
  9328. Fop: uint8(20),
  9329. Fbits: uint8(7),
  9330. Fval: uint16(67),
  9331. },
  9332. 213: {
  9333. Fbits: uint8(8),
  9334. Fval: uint16(123),
  9335. },
  9336. 214: {
  9337. Fbits: uint8(8),
  9338. Fval: uint16(59),
  9339. },
  9340. 215: {
  9341. Fbits: uint8(9),
  9342. Fval: uint16(214),
  9343. },
  9344. 216: {
  9345. Fop: uint8(18),
  9346. Fbits: uint8(7),
  9347. Fval: uint16(19),
  9348. },
  9349. 217: {
  9350. Fbits: uint8(8),
  9351. Fval: uint16(107),
  9352. },
  9353. 218: {
  9354. Fbits: uint8(8),
  9355. Fval: uint16(43),
  9356. },
  9357. 219: {
  9358. Fbits: uint8(9),
  9359. Fval: uint16(182),
  9360. },
  9361. 220: {
  9362. Fbits: uint8(8),
  9363. Fval: uint16(11),
  9364. },
  9365. 221: {
  9366. Fbits: uint8(8),
  9367. Fval: uint16(139),
  9368. },
  9369. 222: {
  9370. Fbits: uint8(8),
  9371. Fval: uint16(75),
  9372. },
  9373. 223: {
  9374. Fbits: uint8(9),
  9375. Fval: uint16(246),
  9376. },
  9377. 224: {
  9378. Fop: uint8(16),
  9379. Fbits: uint8(7),
  9380. Fval: uint16(5),
  9381. },
  9382. 225: {
  9383. Fbits: uint8(8),
  9384. Fval: uint16(87),
  9385. },
  9386. 226: {
  9387. Fbits: uint8(8),
  9388. Fval: uint16(23),
  9389. },
  9390. 227: {
  9391. Fop: uint8(64),
  9392. Fbits: uint8(8),
  9393. },
  9394. 228: {
  9395. Fop: uint8(19),
  9396. Fbits: uint8(7),
  9397. Fval: uint16(51),
  9398. },
  9399. 229: {
  9400. Fbits: uint8(8),
  9401. Fval: uint16(119),
  9402. },
  9403. 230: {
  9404. Fbits: uint8(8),
  9405. Fval: uint16(55),
  9406. },
  9407. 231: {
  9408. Fbits: uint8(9),
  9409. Fval: uint16(206),
  9410. },
  9411. 232: {
  9412. Fop: uint8(17),
  9413. Fbits: uint8(7),
  9414. Fval: uint16(15),
  9415. },
  9416. 233: {
  9417. Fbits: uint8(8),
  9418. Fval: uint16(103),
  9419. },
  9420. 234: {
  9421. Fbits: uint8(8),
  9422. Fval: uint16(39),
  9423. },
  9424. 235: {
  9425. Fbits: uint8(9),
  9426. Fval: uint16(174),
  9427. },
  9428. 236: {
  9429. Fbits: uint8(8),
  9430. Fval: uint16(7),
  9431. },
  9432. 237: {
  9433. Fbits: uint8(8),
  9434. Fval: uint16(135),
  9435. },
  9436. 238: {
  9437. Fbits: uint8(8),
  9438. Fval: uint16(71),
  9439. },
  9440. 239: {
  9441. Fbits: uint8(9),
  9442. Fval: uint16(238),
  9443. },
  9444. 240: {
  9445. Fop: uint8(16),
  9446. Fbits: uint8(7),
  9447. Fval: uint16(9),
  9448. },
  9449. 241: {
  9450. Fbits: uint8(8),
  9451. Fval: uint16(95),
  9452. },
  9453. 242: {
  9454. Fbits: uint8(8),
  9455. Fval: uint16(31),
  9456. },
  9457. 243: {
  9458. Fbits: uint8(9),
  9459. Fval: uint16(158),
  9460. },
  9461. 244: {
  9462. Fop: uint8(20),
  9463. Fbits: uint8(7),
  9464. Fval: uint16(99),
  9465. },
  9466. 245: {
  9467. Fbits: uint8(8),
  9468. Fval: uint16(127),
  9469. },
  9470. 246: {
  9471. Fbits: uint8(8),
  9472. Fval: uint16(63),
  9473. },
  9474. 247: {
  9475. Fbits: uint8(9),
  9476. Fval: uint16(222),
  9477. },
  9478. 248: {
  9479. Fop: uint8(18),
  9480. Fbits: uint8(7),
  9481. Fval: uint16(27),
  9482. },
  9483. 249: {
  9484. Fbits: uint8(8),
  9485. Fval: uint16(111),
  9486. },
  9487. 250: {
  9488. Fbits: uint8(8),
  9489. Fval: uint16(47),
  9490. },
  9491. 251: {
  9492. Fbits: uint8(9),
  9493. Fval: uint16(190),
  9494. },
  9495. 252: {
  9496. Fbits: uint8(8),
  9497. Fval: uint16(15),
  9498. },
  9499. 253: {
  9500. Fbits: uint8(8),
  9501. Fval: uint16(143),
  9502. },
  9503. 254: {
  9504. Fbits: uint8(8),
  9505. Fval: uint16(79),
  9506. },
  9507. 255: {
  9508. Fbits: uint8(9),
  9509. Fval: uint16(254),
  9510. },
  9511. 256: {
  9512. Fop: uint8(96),
  9513. Fbits: uint8(7),
  9514. },
  9515. 257: {
  9516. Fbits: uint8(8),
  9517. Fval: uint16(80),
  9518. },
  9519. 258: {
  9520. Fbits: uint8(8),
  9521. Fval: uint16(16),
  9522. },
  9523. 259: {
  9524. Fop: uint8(20),
  9525. Fbits: uint8(8),
  9526. Fval: uint16(115),
  9527. },
  9528. 260: {
  9529. Fop: uint8(18),
  9530. Fbits: uint8(7),
  9531. Fval: uint16(31),
  9532. },
  9533. 261: {
  9534. Fbits: uint8(8),
  9535. Fval: uint16(112),
  9536. },
  9537. 262: {
  9538. Fbits: uint8(8),
  9539. Fval: uint16(48),
  9540. },
  9541. 263: {
  9542. Fbits: uint8(9),
  9543. Fval: uint16(193),
  9544. },
  9545. 264: {
  9546. Fop: uint8(16),
  9547. Fbits: uint8(7),
  9548. Fval: uint16(10),
  9549. },
  9550. 265: {
  9551. Fbits: uint8(8),
  9552. Fval: uint16(96),
  9553. },
  9554. 266: {
  9555. Fbits: uint8(8),
  9556. Fval: uint16(32),
  9557. },
  9558. 267: {
  9559. Fbits: uint8(9),
  9560. Fval: uint16(161),
  9561. },
  9562. 268: {
  9563. Fbits: uint8(8),
  9564. },
  9565. 269: {
  9566. Fbits: uint8(8),
  9567. Fval: uint16(128),
  9568. },
  9569. 270: {
  9570. Fbits: uint8(8),
  9571. Fval: uint16(64),
  9572. },
  9573. 271: {
  9574. Fbits: uint8(9),
  9575. Fval: uint16(225),
  9576. },
  9577. 272: {
  9578. Fop: uint8(16),
  9579. Fbits: uint8(7),
  9580. Fval: uint16(6),
  9581. },
  9582. 273: {
  9583. Fbits: uint8(8),
  9584. Fval: uint16(88),
  9585. },
  9586. 274: {
  9587. Fbits: uint8(8),
  9588. Fval: uint16(24),
  9589. },
  9590. 275: {
  9591. Fbits: uint8(9),
  9592. Fval: uint16(145),
  9593. },
  9594. 276: {
  9595. Fop: uint8(19),
  9596. Fbits: uint8(7),
  9597. Fval: uint16(59),
  9598. },
  9599. 277: {
  9600. Fbits: uint8(8),
  9601. Fval: uint16(120),
  9602. },
  9603. 278: {
  9604. Fbits: uint8(8),
  9605. Fval: uint16(56),
  9606. },
  9607. 279: {
  9608. Fbits: uint8(9),
  9609. Fval: uint16(209),
  9610. },
  9611. 280: {
  9612. Fop: uint8(17),
  9613. Fbits: uint8(7),
  9614. Fval: uint16(17),
  9615. },
  9616. 281: {
  9617. Fbits: uint8(8),
  9618. Fval: uint16(104),
  9619. },
  9620. 282: {
  9621. Fbits: uint8(8),
  9622. Fval: uint16(40),
  9623. },
  9624. 283: {
  9625. Fbits: uint8(9),
  9626. Fval: uint16(177),
  9627. },
  9628. 284: {
  9629. Fbits: uint8(8),
  9630. Fval: uint16(8),
  9631. },
  9632. 285: {
  9633. Fbits: uint8(8),
  9634. Fval: uint16(136),
  9635. },
  9636. 286: {
  9637. Fbits: uint8(8),
  9638. Fval: uint16(72),
  9639. },
  9640. 287: {
  9641. Fbits: uint8(9),
  9642. Fval: uint16(241),
  9643. },
  9644. 288: {
  9645. Fop: uint8(16),
  9646. Fbits: uint8(7),
  9647. Fval: uint16(4),
  9648. },
  9649. 289: {
  9650. Fbits: uint8(8),
  9651. Fval: uint16(84),
  9652. },
  9653. 290: {
  9654. Fbits: uint8(8),
  9655. Fval: uint16(20),
  9656. },
  9657. 291: {
  9658. Fop: uint8(21),
  9659. Fbits: uint8(8),
  9660. Fval: uint16(227),
  9661. },
  9662. 292: {
  9663. Fop: uint8(19),
  9664. Fbits: uint8(7),
  9665. Fval: uint16(43),
  9666. },
  9667. 293: {
  9668. Fbits: uint8(8),
  9669. Fval: uint16(116),
  9670. },
  9671. 294: {
  9672. Fbits: uint8(8),
  9673. Fval: uint16(52),
  9674. },
  9675. 295: {
  9676. Fbits: uint8(9),
  9677. Fval: uint16(201),
  9678. },
  9679. 296: {
  9680. Fop: uint8(17),
  9681. Fbits: uint8(7),
  9682. Fval: uint16(13),
  9683. },
  9684. 297: {
  9685. Fbits: uint8(8),
  9686. Fval: uint16(100),
  9687. },
  9688. 298: {
  9689. Fbits: uint8(8),
  9690. Fval: uint16(36),
  9691. },
  9692. 299: {
  9693. Fbits: uint8(9),
  9694. Fval: uint16(169),
  9695. },
  9696. 300: {
  9697. Fbits: uint8(8),
  9698. Fval: uint16(4),
  9699. },
  9700. 301: {
  9701. Fbits: uint8(8),
  9702. Fval: uint16(132),
  9703. },
  9704. 302: {
  9705. Fbits: uint8(8),
  9706. Fval: uint16(68),
  9707. },
  9708. 303: {
  9709. Fbits: uint8(9),
  9710. Fval: uint16(233),
  9711. },
  9712. 304: {
  9713. Fop: uint8(16),
  9714. Fbits: uint8(7),
  9715. Fval: uint16(8),
  9716. },
  9717. 305: {
  9718. Fbits: uint8(8),
  9719. Fval: uint16(92),
  9720. },
  9721. 306: {
  9722. Fbits: uint8(8),
  9723. Fval: uint16(28),
  9724. },
  9725. 307: {
  9726. Fbits: uint8(9),
  9727. Fval: uint16(153),
  9728. },
  9729. 308: {
  9730. Fop: uint8(20),
  9731. Fbits: uint8(7),
  9732. Fval: uint16(83),
  9733. },
  9734. 309: {
  9735. Fbits: uint8(8),
  9736. Fval: uint16(124),
  9737. },
  9738. 310: {
  9739. Fbits: uint8(8),
  9740. Fval: uint16(60),
  9741. },
  9742. 311: {
  9743. Fbits: uint8(9),
  9744. Fval: uint16(217),
  9745. },
  9746. 312: {
  9747. Fop: uint8(18),
  9748. Fbits: uint8(7),
  9749. Fval: uint16(23),
  9750. },
  9751. 313: {
  9752. Fbits: uint8(8),
  9753. Fval: uint16(108),
  9754. },
  9755. 314: {
  9756. Fbits: uint8(8),
  9757. Fval: uint16(44),
  9758. },
  9759. 315: {
  9760. Fbits: uint8(9),
  9761. Fval: uint16(185),
  9762. },
  9763. 316: {
  9764. Fbits: uint8(8),
  9765. Fval: uint16(12),
  9766. },
  9767. 317: {
  9768. Fbits: uint8(8),
  9769. Fval: uint16(140),
  9770. },
  9771. 318: {
  9772. Fbits: uint8(8),
  9773. Fval: uint16(76),
  9774. },
  9775. 319: {
  9776. Fbits: uint8(9),
  9777. Fval: uint16(249),
  9778. },
  9779. 320: {
  9780. Fop: uint8(16),
  9781. Fbits: uint8(7),
  9782. Fval: uint16(3),
  9783. },
  9784. 321: {
  9785. Fbits: uint8(8),
  9786. Fval: uint16(82),
  9787. },
  9788. 322: {
  9789. Fbits: uint8(8),
  9790. Fval: uint16(18),
  9791. },
  9792. 323: {
  9793. Fop: uint8(21),
  9794. Fbits: uint8(8),
  9795. Fval: uint16(163),
  9796. },
  9797. 324: {
  9798. Fop: uint8(19),
  9799. Fbits: uint8(7),
  9800. Fval: uint16(35),
  9801. },
  9802. 325: {
  9803. Fbits: uint8(8),
  9804. Fval: uint16(114),
  9805. },
  9806. 326: {
  9807. Fbits: uint8(8),
  9808. Fval: uint16(50),
  9809. },
  9810. 327: {
  9811. Fbits: uint8(9),
  9812. Fval: uint16(197),
  9813. },
  9814. 328: {
  9815. Fop: uint8(17),
  9816. Fbits: uint8(7),
  9817. Fval: uint16(11),
  9818. },
  9819. 329: {
  9820. Fbits: uint8(8),
  9821. Fval: uint16(98),
  9822. },
  9823. 330: {
  9824. Fbits: uint8(8),
  9825. Fval: uint16(34),
  9826. },
  9827. 331: {
  9828. Fbits: uint8(9),
  9829. Fval: uint16(165),
  9830. },
  9831. 332: {
  9832. Fbits: uint8(8),
  9833. Fval: uint16(2),
  9834. },
  9835. 333: {
  9836. Fbits: uint8(8),
  9837. Fval: uint16(130),
  9838. },
  9839. 334: {
  9840. Fbits: uint8(8),
  9841. Fval: uint16(66),
  9842. },
  9843. 335: {
  9844. Fbits: uint8(9),
  9845. Fval: uint16(229),
  9846. },
  9847. 336: {
  9848. Fop: uint8(16),
  9849. Fbits: uint8(7),
  9850. Fval: uint16(7),
  9851. },
  9852. 337: {
  9853. Fbits: uint8(8),
  9854. Fval: uint16(90),
  9855. },
  9856. 338: {
  9857. Fbits: uint8(8),
  9858. Fval: uint16(26),
  9859. },
  9860. 339: {
  9861. Fbits: uint8(9),
  9862. Fval: uint16(149),
  9863. },
  9864. 340: {
  9865. Fop: uint8(20),
  9866. Fbits: uint8(7),
  9867. Fval: uint16(67),
  9868. },
  9869. 341: {
  9870. Fbits: uint8(8),
  9871. Fval: uint16(122),
  9872. },
  9873. 342: {
  9874. Fbits: uint8(8),
  9875. Fval: uint16(58),
  9876. },
  9877. 343: {
  9878. Fbits: uint8(9),
  9879. Fval: uint16(213),
  9880. },
  9881. 344: {
  9882. Fop: uint8(18),
  9883. Fbits: uint8(7),
  9884. Fval: uint16(19),
  9885. },
  9886. 345: {
  9887. Fbits: uint8(8),
  9888. Fval: uint16(106),
  9889. },
  9890. 346: {
  9891. Fbits: uint8(8),
  9892. Fval: uint16(42),
  9893. },
  9894. 347: {
  9895. Fbits: uint8(9),
  9896. Fval: uint16(181),
  9897. },
  9898. 348: {
  9899. Fbits: uint8(8),
  9900. Fval: uint16(10),
  9901. },
  9902. 349: {
  9903. Fbits: uint8(8),
  9904. Fval: uint16(138),
  9905. },
  9906. 350: {
  9907. Fbits: uint8(8),
  9908. Fval: uint16(74),
  9909. },
  9910. 351: {
  9911. Fbits: uint8(9),
  9912. Fval: uint16(245),
  9913. },
  9914. 352: {
  9915. Fop: uint8(16),
  9916. Fbits: uint8(7),
  9917. Fval: uint16(5),
  9918. },
  9919. 353: {
  9920. Fbits: uint8(8),
  9921. Fval: uint16(86),
  9922. },
  9923. 354: {
  9924. Fbits: uint8(8),
  9925. Fval: uint16(22),
  9926. },
  9927. 355: {
  9928. Fop: uint8(64),
  9929. Fbits: uint8(8),
  9930. },
  9931. 356: {
  9932. Fop: uint8(19),
  9933. Fbits: uint8(7),
  9934. Fval: uint16(51),
  9935. },
  9936. 357: {
  9937. Fbits: uint8(8),
  9938. Fval: uint16(118),
  9939. },
  9940. 358: {
  9941. Fbits: uint8(8),
  9942. Fval: uint16(54),
  9943. },
  9944. 359: {
  9945. Fbits: uint8(9),
  9946. Fval: uint16(205),
  9947. },
  9948. 360: {
  9949. Fop: uint8(17),
  9950. Fbits: uint8(7),
  9951. Fval: uint16(15),
  9952. },
  9953. 361: {
  9954. Fbits: uint8(8),
  9955. Fval: uint16(102),
  9956. },
  9957. 362: {
  9958. Fbits: uint8(8),
  9959. Fval: uint16(38),
  9960. },
  9961. 363: {
  9962. Fbits: uint8(9),
  9963. Fval: uint16(173),
  9964. },
  9965. 364: {
  9966. Fbits: uint8(8),
  9967. Fval: uint16(6),
  9968. },
  9969. 365: {
  9970. Fbits: uint8(8),
  9971. Fval: uint16(134),
  9972. },
  9973. 366: {
  9974. Fbits: uint8(8),
  9975. Fval: uint16(70),
  9976. },
  9977. 367: {
  9978. Fbits: uint8(9),
  9979. Fval: uint16(237),
  9980. },
  9981. 368: {
  9982. Fop: uint8(16),
  9983. Fbits: uint8(7),
  9984. Fval: uint16(9),
  9985. },
  9986. 369: {
  9987. Fbits: uint8(8),
  9988. Fval: uint16(94),
  9989. },
  9990. 370: {
  9991. Fbits: uint8(8),
  9992. Fval: uint16(30),
  9993. },
  9994. 371: {
  9995. Fbits: uint8(9),
  9996. Fval: uint16(157),
  9997. },
  9998. 372: {
  9999. Fop: uint8(20),
  10000. Fbits: uint8(7),
  10001. Fval: uint16(99),
  10002. },
  10003. 373: {
  10004. Fbits: uint8(8),
  10005. Fval: uint16(126),
  10006. },
  10007. 374: {
  10008. Fbits: uint8(8),
  10009. Fval: uint16(62),
  10010. },
  10011. 375: {
  10012. Fbits: uint8(9),
  10013. Fval: uint16(221),
  10014. },
  10015. 376: {
  10016. Fop: uint8(18),
  10017. Fbits: uint8(7),
  10018. Fval: uint16(27),
  10019. },
  10020. 377: {
  10021. Fbits: uint8(8),
  10022. Fval: uint16(110),
  10023. },
  10024. 378: {
  10025. Fbits: uint8(8),
  10026. Fval: uint16(46),
  10027. },
  10028. 379: {
  10029. Fbits: uint8(9),
  10030. Fval: uint16(189),
  10031. },
  10032. 380: {
  10033. Fbits: uint8(8),
  10034. Fval: uint16(14),
  10035. },
  10036. 381: {
  10037. Fbits: uint8(8),
  10038. Fval: uint16(142),
  10039. },
  10040. 382: {
  10041. Fbits: uint8(8),
  10042. Fval: uint16(78),
  10043. },
  10044. 383: {
  10045. Fbits: uint8(9),
  10046. Fval: uint16(253),
  10047. },
  10048. 384: {
  10049. Fop: uint8(96),
  10050. Fbits: uint8(7),
  10051. },
  10052. 385: {
  10053. Fbits: uint8(8),
  10054. Fval: uint16(81),
  10055. },
  10056. 386: {
  10057. Fbits: uint8(8),
  10058. Fval: uint16(17),
  10059. },
  10060. 387: {
  10061. Fop: uint8(21),
  10062. Fbits: uint8(8),
  10063. Fval: uint16(131),
  10064. },
  10065. 388: {
  10066. Fop: uint8(18),
  10067. Fbits: uint8(7),
  10068. Fval: uint16(31),
  10069. },
  10070. 389: {
  10071. Fbits: uint8(8),
  10072. Fval: uint16(113),
  10073. },
  10074. 390: {
  10075. Fbits: uint8(8),
  10076. Fval: uint16(49),
  10077. },
  10078. 391: {
  10079. Fbits: uint8(9),
  10080. Fval: uint16(195),
  10081. },
  10082. 392: {
  10083. Fop: uint8(16),
  10084. Fbits: uint8(7),
  10085. Fval: uint16(10),
  10086. },
  10087. 393: {
  10088. Fbits: uint8(8),
  10089. Fval: uint16(97),
  10090. },
  10091. 394: {
  10092. Fbits: uint8(8),
  10093. Fval: uint16(33),
  10094. },
  10095. 395: {
  10096. Fbits: uint8(9),
  10097. Fval: uint16(163),
  10098. },
  10099. 396: {
  10100. Fbits: uint8(8),
  10101. Fval: uint16(1),
  10102. },
  10103. 397: {
  10104. Fbits: uint8(8),
  10105. Fval: uint16(129),
  10106. },
  10107. 398: {
  10108. Fbits: uint8(8),
  10109. Fval: uint16(65),
  10110. },
  10111. 399: {
  10112. Fbits: uint8(9),
  10113. Fval: uint16(227),
  10114. },
  10115. 400: {
  10116. Fop: uint8(16),
  10117. Fbits: uint8(7),
  10118. Fval: uint16(6),
  10119. },
  10120. 401: {
  10121. Fbits: uint8(8),
  10122. Fval: uint16(89),
  10123. },
  10124. 402: {
  10125. Fbits: uint8(8),
  10126. Fval: uint16(25),
  10127. },
  10128. 403: {
  10129. Fbits: uint8(9),
  10130. Fval: uint16(147),
  10131. },
  10132. 404: {
  10133. Fop: uint8(19),
  10134. Fbits: uint8(7),
  10135. Fval: uint16(59),
  10136. },
  10137. 405: {
  10138. Fbits: uint8(8),
  10139. Fval: uint16(121),
  10140. },
  10141. 406: {
  10142. Fbits: uint8(8),
  10143. Fval: uint16(57),
  10144. },
  10145. 407: {
  10146. Fbits: uint8(9),
  10147. Fval: uint16(211),
  10148. },
  10149. 408: {
  10150. Fop: uint8(17),
  10151. Fbits: uint8(7),
  10152. Fval: uint16(17),
  10153. },
  10154. 409: {
  10155. Fbits: uint8(8),
  10156. Fval: uint16(105),
  10157. },
  10158. 410: {
  10159. Fbits: uint8(8),
  10160. Fval: uint16(41),
  10161. },
  10162. 411: {
  10163. Fbits: uint8(9),
  10164. Fval: uint16(179),
  10165. },
  10166. 412: {
  10167. Fbits: uint8(8),
  10168. Fval: uint16(9),
  10169. },
  10170. 413: {
  10171. Fbits: uint8(8),
  10172. Fval: uint16(137),
  10173. },
  10174. 414: {
  10175. Fbits: uint8(8),
  10176. Fval: uint16(73),
  10177. },
  10178. 415: {
  10179. Fbits: uint8(9),
  10180. Fval: uint16(243),
  10181. },
  10182. 416: {
  10183. Fop: uint8(16),
  10184. Fbits: uint8(7),
  10185. Fval: uint16(4),
  10186. },
  10187. 417: {
  10188. Fbits: uint8(8),
  10189. Fval: uint16(85),
  10190. },
  10191. 418: {
  10192. Fbits: uint8(8),
  10193. Fval: uint16(21),
  10194. },
  10195. 419: {
  10196. Fop: uint8(16),
  10197. Fbits: uint8(8),
  10198. Fval: uint16(258),
  10199. },
  10200. 420: {
  10201. Fop: uint8(19),
  10202. Fbits: uint8(7),
  10203. Fval: uint16(43),
  10204. },
  10205. 421: {
  10206. Fbits: uint8(8),
  10207. Fval: uint16(117),
  10208. },
  10209. 422: {
  10210. Fbits: uint8(8),
  10211. Fval: uint16(53),
  10212. },
  10213. 423: {
  10214. Fbits: uint8(9),
  10215. Fval: uint16(203),
  10216. },
  10217. 424: {
  10218. Fop: uint8(17),
  10219. Fbits: uint8(7),
  10220. Fval: uint16(13),
  10221. },
  10222. 425: {
  10223. Fbits: uint8(8),
  10224. Fval: uint16(101),
  10225. },
  10226. 426: {
  10227. Fbits: uint8(8),
  10228. Fval: uint16(37),
  10229. },
  10230. 427: {
  10231. Fbits: uint8(9),
  10232. Fval: uint16(171),
  10233. },
  10234. 428: {
  10235. Fbits: uint8(8),
  10236. Fval: uint16(5),
  10237. },
  10238. 429: {
  10239. Fbits: uint8(8),
  10240. Fval: uint16(133),
  10241. },
  10242. 430: {
  10243. Fbits: uint8(8),
  10244. Fval: uint16(69),
  10245. },
  10246. 431: {
  10247. Fbits: uint8(9),
  10248. Fval: uint16(235),
  10249. },
  10250. 432: {
  10251. Fop: uint8(16),
  10252. Fbits: uint8(7),
  10253. Fval: uint16(8),
  10254. },
  10255. 433: {
  10256. Fbits: uint8(8),
  10257. Fval: uint16(93),
  10258. },
  10259. 434: {
  10260. Fbits: uint8(8),
  10261. Fval: uint16(29),
  10262. },
  10263. 435: {
  10264. Fbits: uint8(9),
  10265. Fval: uint16(155),
  10266. },
  10267. 436: {
  10268. Fop: uint8(20),
  10269. Fbits: uint8(7),
  10270. Fval: uint16(83),
  10271. },
  10272. 437: {
  10273. Fbits: uint8(8),
  10274. Fval: uint16(125),
  10275. },
  10276. 438: {
  10277. Fbits: uint8(8),
  10278. Fval: uint16(61),
  10279. },
  10280. 439: {
  10281. Fbits: uint8(9),
  10282. Fval: uint16(219),
  10283. },
  10284. 440: {
  10285. Fop: uint8(18),
  10286. Fbits: uint8(7),
  10287. Fval: uint16(23),
  10288. },
  10289. 441: {
  10290. Fbits: uint8(8),
  10291. Fval: uint16(109),
  10292. },
  10293. 442: {
  10294. Fbits: uint8(8),
  10295. Fval: uint16(45),
  10296. },
  10297. 443: {
  10298. Fbits: uint8(9),
  10299. Fval: uint16(187),
  10300. },
  10301. 444: {
  10302. Fbits: uint8(8),
  10303. Fval: uint16(13),
  10304. },
  10305. 445: {
  10306. Fbits: uint8(8),
  10307. Fval: uint16(141),
  10308. },
  10309. 446: {
  10310. Fbits: uint8(8),
  10311. Fval: uint16(77),
  10312. },
  10313. 447: {
  10314. Fbits: uint8(9),
  10315. Fval: uint16(251),
  10316. },
  10317. 448: {
  10318. Fop: uint8(16),
  10319. Fbits: uint8(7),
  10320. Fval: uint16(3),
  10321. },
  10322. 449: {
  10323. Fbits: uint8(8),
  10324. Fval: uint16(83),
  10325. },
  10326. 450: {
  10327. Fbits: uint8(8),
  10328. Fval: uint16(19),
  10329. },
  10330. 451: {
  10331. Fop: uint8(21),
  10332. Fbits: uint8(8),
  10333. Fval: uint16(195),
  10334. },
  10335. 452: {
  10336. Fop: uint8(19),
  10337. Fbits: uint8(7),
  10338. Fval: uint16(35),
  10339. },
  10340. 453: {
  10341. Fbits: uint8(8),
  10342. Fval: uint16(115),
  10343. },
  10344. 454: {
  10345. Fbits: uint8(8),
  10346. Fval: uint16(51),
  10347. },
  10348. 455: {
  10349. Fbits: uint8(9),
  10350. Fval: uint16(199),
  10351. },
  10352. 456: {
  10353. Fop: uint8(17),
  10354. Fbits: uint8(7),
  10355. Fval: uint16(11),
  10356. },
  10357. 457: {
  10358. Fbits: uint8(8),
  10359. Fval: uint16(99),
  10360. },
  10361. 458: {
  10362. Fbits: uint8(8),
  10363. Fval: uint16(35),
  10364. },
  10365. 459: {
  10366. Fbits: uint8(9),
  10367. Fval: uint16(167),
  10368. },
  10369. 460: {
  10370. Fbits: uint8(8),
  10371. Fval: uint16(3),
  10372. },
  10373. 461: {
  10374. Fbits: uint8(8),
  10375. Fval: uint16(131),
  10376. },
  10377. 462: {
  10378. Fbits: uint8(8),
  10379. Fval: uint16(67),
  10380. },
  10381. 463: {
  10382. Fbits: uint8(9),
  10383. Fval: uint16(231),
  10384. },
  10385. 464: {
  10386. Fop: uint8(16),
  10387. Fbits: uint8(7),
  10388. Fval: uint16(7),
  10389. },
  10390. 465: {
  10391. Fbits: uint8(8),
  10392. Fval: uint16(91),
  10393. },
  10394. 466: {
  10395. Fbits: uint8(8),
  10396. Fval: uint16(27),
  10397. },
  10398. 467: {
  10399. Fbits: uint8(9),
  10400. Fval: uint16(151),
  10401. },
  10402. 468: {
  10403. Fop: uint8(20),
  10404. Fbits: uint8(7),
  10405. Fval: uint16(67),
  10406. },
  10407. 469: {
  10408. Fbits: uint8(8),
  10409. Fval: uint16(123),
  10410. },
  10411. 470: {
  10412. Fbits: uint8(8),
  10413. Fval: uint16(59),
  10414. },
  10415. 471: {
  10416. Fbits: uint8(9),
  10417. Fval: uint16(215),
  10418. },
  10419. 472: {
  10420. Fop: uint8(18),
  10421. Fbits: uint8(7),
  10422. Fval: uint16(19),
  10423. },
  10424. 473: {
  10425. Fbits: uint8(8),
  10426. Fval: uint16(107),
  10427. },
  10428. 474: {
  10429. Fbits: uint8(8),
  10430. Fval: uint16(43),
  10431. },
  10432. 475: {
  10433. Fbits: uint8(9),
  10434. Fval: uint16(183),
  10435. },
  10436. 476: {
  10437. Fbits: uint8(8),
  10438. Fval: uint16(11),
  10439. },
  10440. 477: {
  10441. Fbits: uint8(8),
  10442. Fval: uint16(139),
  10443. },
  10444. 478: {
  10445. Fbits: uint8(8),
  10446. Fval: uint16(75),
  10447. },
  10448. 479: {
  10449. Fbits: uint8(9),
  10450. Fval: uint16(247),
  10451. },
  10452. 480: {
  10453. Fop: uint8(16),
  10454. Fbits: uint8(7),
  10455. Fval: uint16(5),
  10456. },
  10457. 481: {
  10458. Fbits: uint8(8),
  10459. Fval: uint16(87),
  10460. },
  10461. 482: {
  10462. Fbits: uint8(8),
  10463. Fval: uint16(23),
  10464. },
  10465. 483: {
  10466. Fop: uint8(64),
  10467. Fbits: uint8(8),
  10468. },
  10469. 484: {
  10470. Fop: uint8(19),
  10471. Fbits: uint8(7),
  10472. Fval: uint16(51),
  10473. },
  10474. 485: {
  10475. Fbits: uint8(8),
  10476. Fval: uint16(119),
  10477. },
  10478. 486: {
  10479. Fbits: uint8(8),
  10480. Fval: uint16(55),
  10481. },
  10482. 487: {
  10483. Fbits: uint8(9),
  10484. Fval: uint16(207),
  10485. },
  10486. 488: {
  10487. Fop: uint8(17),
  10488. Fbits: uint8(7),
  10489. Fval: uint16(15),
  10490. },
  10491. 489: {
  10492. Fbits: uint8(8),
  10493. Fval: uint16(103),
  10494. },
  10495. 490: {
  10496. Fbits: uint8(8),
  10497. Fval: uint16(39),
  10498. },
  10499. 491: {
  10500. Fbits: uint8(9),
  10501. Fval: uint16(175),
  10502. },
  10503. 492: {
  10504. Fbits: uint8(8),
  10505. Fval: uint16(7),
  10506. },
  10507. 493: {
  10508. Fbits: uint8(8),
  10509. Fval: uint16(135),
  10510. },
  10511. 494: {
  10512. Fbits: uint8(8),
  10513. Fval: uint16(71),
  10514. },
  10515. 495: {
  10516. Fbits: uint8(9),
  10517. Fval: uint16(239),
  10518. },
  10519. 496: {
  10520. Fop: uint8(16),
  10521. Fbits: uint8(7),
  10522. Fval: uint16(9),
  10523. },
  10524. 497: {
  10525. Fbits: uint8(8),
  10526. Fval: uint16(95),
  10527. },
  10528. 498: {
  10529. Fbits: uint8(8),
  10530. Fval: uint16(31),
  10531. },
  10532. 499: {
  10533. Fbits: uint8(9),
  10534. Fval: uint16(159),
  10535. },
  10536. 500: {
  10537. Fop: uint8(20),
  10538. Fbits: uint8(7),
  10539. Fval: uint16(99),
  10540. },
  10541. 501: {
  10542. Fbits: uint8(8),
  10543. Fval: uint16(127),
  10544. },
  10545. 502: {
  10546. Fbits: uint8(8),
  10547. Fval: uint16(63),
  10548. },
  10549. 503: {
  10550. Fbits: uint8(9),
  10551. Fval: uint16(223),
  10552. },
  10553. 504: {
  10554. Fop: uint8(18),
  10555. Fbits: uint8(7),
  10556. Fval: uint16(27),
  10557. },
  10558. 505: {
  10559. Fbits: uint8(8),
  10560. Fval: uint16(111),
  10561. },
  10562. 506: {
  10563. Fbits: uint8(8),
  10564. Fval: uint16(47),
  10565. },
  10566. 507: {
  10567. Fbits: uint8(9),
  10568. Fval: uint16(191),
  10569. },
  10570. 508: {
  10571. Fbits: uint8(8),
  10572. Fval: uint16(15),
  10573. },
  10574. 509: {
  10575. Fbits: uint8(8),
  10576. Fval: uint16(143),
  10577. },
  10578. 510: {
  10579. Fbits: uint8(8),
  10580. Fval: uint16(79),
  10581. },
  10582. 511: {
  10583. Fbits: uint8(9),
  10584. Fval: uint16(255),
  10585. },
  10586. }
  10587. var _distfix = [32]Tcode{
  10588. 0: {
  10589. Fop: uint8(16),
  10590. Fbits: uint8(5),
  10591. Fval: uint16(1),
  10592. },
  10593. 1: {
  10594. Fop: uint8(23),
  10595. Fbits: uint8(5),
  10596. Fval: uint16(257),
  10597. },
  10598. 2: {
  10599. Fop: uint8(19),
  10600. Fbits: uint8(5),
  10601. Fval: uint16(17),
  10602. },
  10603. 3: {
  10604. Fop: uint8(27),
  10605. Fbits: uint8(5),
  10606. Fval: uint16(4097),
  10607. },
  10608. 4: {
  10609. Fop: uint8(17),
  10610. Fbits: uint8(5),
  10611. Fval: uint16(5),
  10612. },
  10613. 5: {
  10614. Fop: uint8(25),
  10615. Fbits: uint8(5),
  10616. Fval: uint16(1025),
  10617. },
  10618. 6: {
  10619. Fop: uint8(21),
  10620. Fbits: uint8(5),
  10621. Fval: uint16(65),
  10622. },
  10623. 7: {
  10624. Fop: uint8(29),
  10625. Fbits: uint8(5),
  10626. Fval: uint16(16385),
  10627. },
  10628. 8: {
  10629. Fop: uint8(16),
  10630. Fbits: uint8(5),
  10631. Fval: uint16(3),
  10632. },
  10633. 9: {
  10634. Fop: uint8(24),
  10635. Fbits: uint8(5),
  10636. Fval: uint16(513),
  10637. },
  10638. 10: {
  10639. Fop: uint8(20),
  10640. Fbits: uint8(5),
  10641. Fval: uint16(33),
  10642. },
  10643. 11: {
  10644. Fop: uint8(28),
  10645. Fbits: uint8(5),
  10646. Fval: uint16(8193),
  10647. },
  10648. 12: {
  10649. Fop: uint8(18),
  10650. Fbits: uint8(5),
  10651. Fval: uint16(9),
  10652. },
  10653. 13: {
  10654. Fop: uint8(26),
  10655. Fbits: uint8(5),
  10656. Fval: uint16(2049),
  10657. },
  10658. 14: {
  10659. Fop: uint8(22),
  10660. Fbits: uint8(5),
  10661. Fval: uint16(129),
  10662. },
  10663. 15: {
  10664. Fop: uint8(64),
  10665. Fbits: uint8(5),
  10666. },
  10667. 16: {
  10668. Fop: uint8(16),
  10669. Fbits: uint8(5),
  10670. Fval: uint16(2),
  10671. },
  10672. 17: {
  10673. Fop: uint8(23),
  10674. Fbits: uint8(5),
  10675. Fval: uint16(385),
  10676. },
  10677. 18: {
  10678. Fop: uint8(19),
  10679. Fbits: uint8(5),
  10680. Fval: uint16(25),
  10681. },
  10682. 19: {
  10683. Fop: uint8(27),
  10684. Fbits: uint8(5),
  10685. Fval: uint16(6145),
  10686. },
  10687. 20: {
  10688. Fop: uint8(17),
  10689. Fbits: uint8(5),
  10690. Fval: uint16(7),
  10691. },
  10692. 21: {
  10693. Fop: uint8(25),
  10694. Fbits: uint8(5),
  10695. Fval: uint16(1537),
  10696. },
  10697. 22: {
  10698. Fop: uint8(21),
  10699. Fbits: uint8(5),
  10700. Fval: uint16(97),
  10701. },
  10702. 23: {
  10703. Fop: uint8(29),
  10704. Fbits: uint8(5),
  10705. Fval: uint16(24577),
  10706. },
  10707. 24: {
  10708. Fop: uint8(16),
  10709. Fbits: uint8(5),
  10710. Fval: uint16(4),
  10711. },
  10712. 25: {
  10713. Fop: uint8(24),
  10714. Fbits: uint8(5),
  10715. Fval: uint16(769),
  10716. },
  10717. 26: {
  10718. Fop: uint8(20),
  10719. Fbits: uint8(5),
  10720. Fval: uint16(49),
  10721. },
  10722. 27: {
  10723. Fop: uint8(28),
  10724. Fbits: uint8(5),
  10725. Fval: uint16(12289),
  10726. },
  10727. 28: {
  10728. Fop: uint8(18),
  10729. Fbits: uint8(5),
  10730. Fval: uint16(13),
  10731. },
  10732. 29: {
  10733. Fop: uint8(26),
  10734. Fbits: uint8(5),
  10735. Fval: uint16(3073),
  10736. },
  10737. 30: {
  10738. Fop: uint8(22),
  10739. Fbits: uint8(5),
  10740. Fval: uint16(193),
  10741. },
  10742. 31: {
  10743. Fop: uint8(64),
  10744. Fbits: uint8(5),
  10745. },
  10746. }
  10747. /* Macros for inflateBack(): */
  10748. /* Load returned state from inflate_fast() */
  10749. /* Set state from registers for inflate_fast() */
  10750. /* Clear the input bit accumulator */
  10751. /* Assure that some input is available. If input is requested, but denied,
  10752. then return a Z_BUF_ERROR from inflateBack(). */
  10753. /* Get a byte of input into the bit accumulator, or return from inflateBack()
  10754. with an error if there is no input available. */
  10755. /* Assure that there are at least n bits in the bit accumulator. If there is
  10756. not enough available input to do that, then return from inflateBack() with
  10757. an error. */
  10758. /* Return the low n bits of the bit accumulator (n < 16) */
  10759. /* Remove n bits from the bit accumulator */
  10760. /* Remove zero to seven bits as needed to go to a byte boundary */
  10761. /* Assure that some output space is available, by writing out the window
  10762. if it's full. If the write fails, return from inflateBack() with a
  10763. Z_BUF_ERROR. */
  10764. // C documentation
  10765. //
  10766. // /*
  10767. // strm provides the memory allocation functions and window buffer on input,
  10768. // and provides information on the unused input on return. For Z_DATA_ERROR
  10769. // returns, strm will also provide an error message.
  10770. //
  10771. // in() and out() are the call-back input and output functions. When
  10772. // inflateBack() needs more input, it calls in(). When inflateBack() has
  10773. // filled the window with output, or when it completes with data in the
  10774. // window, it calls out() to write out the data. The application must not
  10775. // change the provided input until in() is called again or inflateBack()
  10776. // returns. The application must not change the window/output buffer until
  10777. // inflateBack() returns.
  10778. //
  10779. // in() and out() are called with a descriptor parameter provided in the
  10780. // inflateBack() call. This parameter can be a structure that provides the
  10781. // information required to do the read or write, as well as accumulated
  10782. // information on the input and output such as totals and check values.
  10783. //
  10784. // in() should return zero on failure. out() should return non-zero on
  10785. // failure. If either in() or out() fails, than inflateBack() returns a
  10786. // Z_BUF_ERROR. strm->next_in can be checked for Z_NULL to see whether it
  10787. // was in() or out() that caused in the error. Otherwise, inflateBack()
  10788. // returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format
  10789. // error, or Z_MEM_ERROR if it could not allocate memory for the state.
  10790. // inflateBack() can also return Z_STREAM_ERROR if the input parameters
  10791. // are not correct, i.e. strm is Z_NULL or the state was not initialized.
  10792. // */
  10793. func XinflateBack(tls *libc.TLS, strm Tz_streamp, in Tin_func, in_desc uintptr, out Tout_func, out_desc uintptr) (r int32) {
  10794. bp := tls.Alloc(16)
  10795. defer tls.Free(16)
  10796. var bits, copy1, have, left, len1, v1, v18, v20, v24, v29, v30, v43, v44 uint32
  10797. var from, put, state, v11, v15, v16, v17, v19, v21, v23, v25, v26, v27, v28, v31, v33, v35, v36, v37, v39, v41, v42, v46, v47 uintptr
  10798. var here, last Tcode
  10799. var hold uint64
  10800. var ret int32
  10801. var _ /* next at bp+0 */ uintptr
  10802. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bits, copy1, from, have, here, hold, last, left, len1, put, ret, state, v1, v11, v15, v16, v17, v18, v19, v20, v21, v23, v24, v25, v26, v27, v28, v29, v30, v31, v33, v35, v36, v37, v39, v41, v42, v43, v44, v46, v47 /* return code */
  10803. /* Check that the strm exists and that the state was initialized */
  10804. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fstate == uintptr(m_Z_NULL) {
  10805. return -int32(2)
  10806. }
  10807. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10808. /* Reset the state */
  10809. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  10810. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  10811. (*Tinflate_state)(unsafe.Pointer(state)).Flast = 0
  10812. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  10813. *(*uintptr)(unsafe.Pointer(bp)) = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  10814. if *(*uintptr)(unsafe.Pointer(bp)) != uintptr(m_Z_NULL) {
  10815. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  10816. } else {
  10817. v1 = uint32(0)
  10818. }
  10819. have = v1
  10820. hold = uint64(0)
  10821. bits = uint32(0)
  10822. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  10823. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  10824. /* Inflate until end of block marked as last */
  10825. for {
  10826. switch (*Tinflate_state)(unsafe.Pointer(state)).Fmode {
  10827. case int32(_TYPE):
  10828. goto _3
  10829. case int32(_STORED):
  10830. goto _4
  10831. case int32(_TABLE):
  10832. goto _5
  10833. case int32(_LEN):
  10834. goto _6
  10835. case int32(_DONE):
  10836. goto _7
  10837. case int32(_BAD):
  10838. goto _8
  10839. default:
  10840. goto _9
  10841. }
  10842. goto _10
  10843. _3:
  10844. /* determine and dispatch block type */
  10845. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  10846. hold >>= uint64(bits & uint32(7))
  10847. bits -= bits & uint32(7)
  10848. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DONE)
  10849. goto _10
  10850. }
  10851. for bits < uint32(libc.Int32FromInt32(3)) {
  10852. if have == uint32(0) {
  10853. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  10854. if have == uint32(0) {
  10855. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  10856. ret = -int32(5)
  10857. goto inf_leave
  10858. }
  10859. }
  10860. have--
  10861. v11 = *(*uintptr)(unsafe.Pointer(bp))
  10862. *(*uintptr)(unsafe.Pointer(bp))++
  10863. hold += uint64(*(*uint8)(unsafe.Pointer(v11))) << bits
  10864. bits += uint32(8)
  10865. }
  10866. (*Tinflate_state)(unsafe.Pointer(state)).Flast = int32(uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(1) - libc.Uint32FromInt32(1)))
  10867. hold >>= uint64(libc.Int32FromInt32(1))
  10868. bits -= uint32(libc.Int32FromInt32(1))
  10869. switch uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2) - libc.Uint32FromInt32(1)) {
  10870. case uint32(0):
  10871. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_STORED)
  10872. case uint32(1):
  10873. _fixedtables(tls, state)
  10874. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN) /* decode codes */
  10875. case uint32(2):
  10876. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TABLE)
  10877. case uint32(3):
  10878. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 4
  10879. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10880. }
  10881. hold >>= uint64(libc.Int32FromInt32(2))
  10882. bits -= uint32(libc.Int32FromInt32(2))
  10883. goto _10
  10884. _4:
  10885. /* get and verify stored block length */
  10886. _14:
  10887. hold >>= uint64(bits & uint32(7))
  10888. bits -= bits & uint32(7)
  10889. goto _13
  10890. _13:
  10891. if 0 != 0 {
  10892. goto _14
  10893. }
  10894. goto _12
  10895. _12: /* go to byte boundary */
  10896. for bits < uint32(libc.Int32FromInt32(32)) {
  10897. if have == uint32(0) {
  10898. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  10899. if have == uint32(0) {
  10900. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  10901. ret = -int32(5)
  10902. goto inf_leave
  10903. }
  10904. }
  10905. have--
  10906. v15 = *(*uintptr)(unsafe.Pointer(bp))
  10907. *(*uintptr)(unsafe.Pointer(bp))++
  10908. hold += uint64(*(*uint8)(unsafe.Pointer(v15))) << bits
  10909. bits += uint32(8)
  10910. }
  10911. if hold&uint64(0xffff) != hold>>int32(16)^uint64(0xffff) {
  10912. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 23
  10913. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10914. goto _10
  10915. }
  10916. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(hold) & uint32(0xffff)
  10917. hold = uint64(0)
  10918. bits = uint32(0)
  10919. /* copy stored block from input to output */
  10920. for (*Tinflate_state)(unsafe.Pointer(state)).Flength != uint32(0) {
  10921. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  10922. if have == uint32(0) {
  10923. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  10924. if have == uint32(0) {
  10925. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  10926. ret = -int32(5)
  10927. goto inf_leave
  10928. }
  10929. }
  10930. if left == uint32(0) {
  10931. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  10932. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  10933. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  10934. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  10935. ret = -int32(5)
  10936. goto inf_leave
  10937. }
  10938. }
  10939. if copy1 > have {
  10940. copy1 = have
  10941. }
  10942. if copy1 > left {
  10943. copy1 = left
  10944. }
  10945. libc.Xmemcpy(tls, put, *(*uintptr)(unsafe.Pointer(bp)), uint64(copy1))
  10946. have -= copy1
  10947. *(*uintptr)(unsafe.Pointer(bp)) += uintptr(copy1)
  10948. left -= copy1
  10949. put += uintptr(copy1)
  10950. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  10951. }
  10952. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  10953. goto _10
  10954. _5:
  10955. /* get dynamic table entries descriptor */
  10956. for bits < uint32(libc.Int32FromInt32(14)) {
  10957. if have == uint32(0) {
  10958. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  10959. if have == uint32(0) {
  10960. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  10961. ret = -int32(5)
  10962. goto inf_leave
  10963. }
  10964. }
  10965. have--
  10966. v16 = *(*uintptr)(unsafe.Pointer(bp))
  10967. *(*uintptr)(unsafe.Pointer(bp))++
  10968. hold += uint64(*(*uint8)(unsafe.Pointer(v16))) << bits
  10969. bits += uint32(8)
  10970. }
  10971. (*Tinflate_state)(unsafe.Pointer(state)).Fnlen = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(257)
  10972. hold >>= uint64(libc.Int32FromInt32(5))
  10973. bits -= uint32(libc.Int32FromInt32(5))
  10974. (*Tinflate_state)(unsafe.Pointer(state)).Fndist = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(1)
  10975. hold >>= uint64(libc.Int32FromInt32(5))
  10976. bits -= uint32(libc.Int32FromInt32(5))
  10977. (*Tinflate_state)(unsafe.Pointer(state)).Fncode = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(4)
  10978. hold >>= uint64(libc.Int32FromInt32(4))
  10979. bits -= uint32(libc.Int32FromInt32(4))
  10980. if (*Tinflate_state)(unsafe.Pointer(state)).Fnlen > uint32(286) || (*Tinflate_state)(unsafe.Pointer(state)).Fndist > uint32(30) {
  10981. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 52
  10982. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10983. goto _10
  10984. }
  10985. /* get code length code lengths (not a typo) */
  10986. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  10987. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fncode {
  10988. for bits < uint32(libc.Int32FromInt32(3)) {
  10989. if have == uint32(0) {
  10990. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  10991. if have == uint32(0) {
  10992. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  10993. ret = -int32(5)
  10994. goto inf_leave
  10995. }
  10996. }
  10997. have--
  10998. v17 = *(*uintptr)(unsafe.Pointer(bp))
  10999. *(*uintptr)(unsafe.Pointer(bp))++
  11000. hold += uint64(*(*uint8)(unsafe.Pointer(v17))) << bits
  11001. bits += uint32(8)
  11002. }
  11003. v19 = state + 140
  11004. v18 = *(*uint32)(unsafe.Pointer(v19))
  11005. *(*uint32)(unsafe.Pointer(v19))++
  11006. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order[v18])*2)) = uint16(uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3) - libc.Uint32FromInt32(1)))
  11007. hold >>= uint64(libc.Int32FromInt32(3))
  11008. bits -= uint32(libc.Int32FromInt32(3))
  11009. }
  11010. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < uint32(19) {
  11011. v21 = state + 140
  11012. v20 = *(*uint32)(unsafe.Pointer(v21))
  11013. *(*uint32)(unsafe.Pointer(v21))++
  11014. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order[v20])*2)) = uint16(0)
  11015. }
  11016. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  11017. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  11018. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(7)
  11019. ret = Xinflate_table(tls, int32(_CODES), state+152, uint32(19), state+144, state+120, state+792)
  11020. if ret != 0 {
  11021. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 88
  11022. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11023. goto _10
  11024. }
  11025. /* get length and distance code code lengths */
  11026. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  11027. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  11028. for {
  11029. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(hold)&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  11030. if uint32(here.Fbits) <= bits {
  11031. break
  11032. }
  11033. if have == uint32(0) {
  11034. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11035. if have == uint32(0) {
  11036. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11037. ret = -int32(5)
  11038. goto inf_leave
  11039. }
  11040. }
  11041. have--
  11042. v23 = *(*uintptr)(unsafe.Pointer(bp))
  11043. *(*uintptr)(unsafe.Pointer(bp))++
  11044. hold += uint64(*(*uint8)(unsafe.Pointer(v23))) << bits
  11045. bits += uint32(8)
  11046. goto _22
  11047. _22:
  11048. }
  11049. if int32(here.Fval) < int32(16) {
  11050. hold >>= uint64(here.Fbits)
  11051. bits -= uint32(here.Fbits)
  11052. v25 = state + 140
  11053. v24 = *(*uint32)(unsafe.Pointer(v25))
  11054. *(*uint32)(unsafe.Pointer(v25))++
  11055. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v24)*2)) = here.Fval
  11056. } else {
  11057. if int32(here.Fval) == int32(16) {
  11058. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(2)) {
  11059. if have == uint32(0) {
  11060. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11061. if have == uint32(0) {
  11062. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11063. ret = -int32(5)
  11064. goto inf_leave
  11065. }
  11066. }
  11067. have--
  11068. v26 = *(*uintptr)(unsafe.Pointer(bp))
  11069. *(*uintptr)(unsafe.Pointer(bp))++
  11070. hold += uint64(*(*uint8)(unsafe.Pointer(v26))) << bits
  11071. bits += uint32(8)
  11072. }
  11073. hold >>= uint64(here.Fbits)
  11074. bits -= uint32(here.Fbits)
  11075. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave == uint32(0) {
  11076. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 113
  11077. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11078. break
  11079. }
  11080. len1 = uint32(*(*uint16)(unsafe.Pointer(state + 152 + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fhave-uint32(1))*2)))
  11081. copy1 = uint32(3) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2)-libc.Uint32FromInt32(1))
  11082. hold >>= uint64(libc.Int32FromInt32(2))
  11083. bits -= uint32(libc.Int32FromInt32(2))
  11084. } else {
  11085. if int32(here.Fval) == int32(17) {
  11086. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(3)) {
  11087. if have == uint32(0) {
  11088. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11089. if have == uint32(0) {
  11090. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11091. ret = -int32(5)
  11092. goto inf_leave
  11093. }
  11094. }
  11095. have--
  11096. v27 = *(*uintptr)(unsafe.Pointer(bp))
  11097. *(*uintptr)(unsafe.Pointer(bp))++
  11098. hold += uint64(*(*uint8)(unsafe.Pointer(v27))) << bits
  11099. bits += uint32(8)
  11100. }
  11101. hold >>= uint64(here.Fbits)
  11102. bits -= uint32(here.Fbits)
  11103. len1 = uint32(0)
  11104. copy1 = uint32(3) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3)-libc.Uint32FromInt32(1))
  11105. hold >>= uint64(libc.Int32FromInt32(3))
  11106. bits -= uint32(libc.Int32FromInt32(3))
  11107. } else {
  11108. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(7)) {
  11109. if have == uint32(0) {
  11110. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11111. if have == uint32(0) {
  11112. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11113. ret = -int32(5)
  11114. goto inf_leave
  11115. }
  11116. }
  11117. have--
  11118. v28 = *(*uintptr)(unsafe.Pointer(bp))
  11119. *(*uintptr)(unsafe.Pointer(bp))++
  11120. hold += uint64(*(*uint8)(unsafe.Pointer(v28))) << bits
  11121. bits += uint32(8)
  11122. }
  11123. hold >>= uint64(here.Fbits)
  11124. bits -= uint32(here.Fbits)
  11125. len1 = uint32(0)
  11126. copy1 = uint32(11) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(7)-libc.Uint32FromInt32(1))
  11127. hold >>= uint64(libc.Int32FromInt32(7))
  11128. bits -= uint32(libc.Int32FromInt32(7))
  11129. }
  11130. }
  11131. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave+copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  11132. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 113
  11133. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11134. break
  11135. }
  11136. for {
  11137. v29 = copy1
  11138. copy1--
  11139. if !(v29 != 0) {
  11140. break
  11141. }
  11142. v31 = state + 140
  11143. v30 = *(*uint32)(unsafe.Pointer(v31))
  11144. *(*uint32)(unsafe.Pointer(v31))++
  11145. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v30)*2)) = uint16(len1)
  11146. }
  11147. }
  11148. }
  11149. /* handle error breaks in while */
  11150. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_BAD) {
  11151. goto _10
  11152. }
  11153. /* check for end-of-block code (better have one) */
  11154. if int32(*(*uint16)(unsafe.Pointer(state + 152 + 256*2))) == 0 {
  11155. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 139
  11156. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11157. goto _10
  11158. }
  11159. /* build code tables -- note: do not change the lenbits or distbits
  11160. values here (9 and 6) without reading the comments in inftrees.h
  11161. concerning the ENOUGH constants, which depend on those values */
  11162. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  11163. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  11164. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  11165. ret = Xinflate_table(tls, int32(_LENS), state+152, (*Tinflate_state)(unsafe.Pointer(state)).Fnlen, state+144, state+120, state+792)
  11166. if ret != 0 {
  11167. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 176
  11168. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11169. goto _10
  11170. }
  11171. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  11172. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(6)
  11173. ret = Xinflate_table(tls, int32(_DISTS), state+152+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fnlen)*2, (*Tinflate_state)(unsafe.Pointer(state)).Fndist, state+144, state+124, state+792)
  11174. if ret != 0 {
  11175. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 204
  11176. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11177. goto _10
  11178. }
  11179. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  11180. /* fallthrough */
  11181. _6:
  11182. /* use inflate_fast() if we have enough input and output */
  11183. if have >= uint32(6) && left >= uint32(258) {
  11184. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  11185. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  11186. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = *(*uintptr)(unsafe.Pointer(bp))
  11187. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  11188. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  11189. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  11190. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  11191. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - left
  11192. }
  11193. Xinflate_fast(tls, strm, (*Tinflate_state)(unsafe.Pointer(state)).Fwsize)
  11194. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  11195. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  11196. *(*uintptr)(unsafe.Pointer(bp)) = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  11197. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  11198. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  11199. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  11200. goto _10
  11201. }
  11202. /* get a literal, length, or end-of-block code */
  11203. for {
  11204. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(hold)&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  11205. if uint32(here.Fbits) <= bits {
  11206. break
  11207. }
  11208. if have == uint32(0) {
  11209. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11210. if have == uint32(0) {
  11211. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11212. ret = -int32(5)
  11213. goto inf_leave
  11214. }
  11215. }
  11216. have--
  11217. v33 = *(*uintptr)(unsafe.Pointer(bp))
  11218. *(*uintptr)(unsafe.Pointer(bp))++
  11219. hold += uint64(*(*uint8)(unsafe.Pointer(v33))) << bits
  11220. bits += uint32(8)
  11221. goto _32
  11222. _32:
  11223. }
  11224. if here.Fop != 0 && int32(here.Fop)&int32(0xf0) == 0 {
  11225. last = here
  11226. for {
  11227. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(last.Fval)+uint32(hold)&(uint32(1)<<(int32(last.Fbits)+int32(last.Fop))-uint32(1))>>last.Fbits)*4))
  11228. if uint32(int32(last.Fbits)+int32(here.Fbits)) <= bits {
  11229. break
  11230. }
  11231. if have == uint32(0) {
  11232. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11233. if have == uint32(0) {
  11234. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11235. ret = -int32(5)
  11236. goto inf_leave
  11237. }
  11238. }
  11239. have--
  11240. v35 = *(*uintptr)(unsafe.Pointer(bp))
  11241. *(*uintptr)(unsafe.Pointer(bp))++
  11242. hold += uint64(*(*uint8)(unsafe.Pointer(v35))) << bits
  11243. bits += uint32(8)
  11244. goto _34
  11245. _34:
  11246. }
  11247. hold >>= uint64(last.Fbits)
  11248. bits -= uint32(last.Fbits)
  11249. }
  11250. hold >>= uint64(here.Fbits)
  11251. bits -= uint32(here.Fbits)
  11252. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(here.Fval)
  11253. /* process literal */
  11254. if int32(here.Fop) == 0 {
  11255. if left == uint32(0) {
  11256. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  11257. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  11258. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  11259. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  11260. ret = -int32(5)
  11261. goto inf_leave
  11262. }
  11263. }
  11264. v36 = put
  11265. put++
  11266. *(*uint8)(unsafe.Pointer(v36)) = uint8((*Tinflate_state)(unsafe.Pointer(state)).Flength)
  11267. left--
  11268. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  11269. goto _10
  11270. }
  11271. /* process end of block */
  11272. if int32(here.Fop)&int32(32) != 0 {
  11273. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  11274. goto _10
  11275. }
  11276. /* invalid code */
  11277. if int32(here.Fop)&int32(64) != 0 {
  11278. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 226
  11279. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11280. goto _10
  11281. }
  11282. /* length code -- get extra bits, if any */
  11283. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  11284. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != uint32(0) {
  11285. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  11286. if have == uint32(0) {
  11287. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11288. if have == uint32(0) {
  11289. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11290. ret = -int32(5)
  11291. goto inf_leave
  11292. }
  11293. }
  11294. have--
  11295. v37 = *(*uintptr)(unsafe.Pointer(bp))
  11296. *(*uintptr)(unsafe.Pointer(bp))++
  11297. hold += uint64(*(*uint8)(unsafe.Pointer(v37))) << bits
  11298. bits += uint32(8)
  11299. }
  11300. *(*uint32)(unsafe.Pointer(state + 92)) += uint32(hold) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  11301. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  11302. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  11303. }
  11304. /* get distance code */
  11305. for {
  11306. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(hold)&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits-libc.Uint32FromInt32(1)))*4))
  11307. if uint32(here.Fbits) <= bits {
  11308. break
  11309. }
  11310. if have == uint32(0) {
  11311. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11312. if have == uint32(0) {
  11313. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11314. ret = -int32(5)
  11315. goto inf_leave
  11316. }
  11317. }
  11318. have--
  11319. v39 = *(*uintptr)(unsafe.Pointer(bp))
  11320. *(*uintptr)(unsafe.Pointer(bp))++
  11321. hold += uint64(*(*uint8)(unsafe.Pointer(v39))) << bits
  11322. bits += uint32(8)
  11323. goto _38
  11324. _38:
  11325. }
  11326. if int32(here.Fop)&int32(0xf0) == 0 {
  11327. last = here
  11328. for {
  11329. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(last.Fval)+uint32(hold)&(uint32(1)<<(int32(last.Fbits)+int32(last.Fop))-uint32(1))>>last.Fbits)*4))
  11330. if uint32(int32(last.Fbits)+int32(here.Fbits)) <= bits {
  11331. break
  11332. }
  11333. if have == uint32(0) {
  11334. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11335. if have == uint32(0) {
  11336. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11337. ret = -int32(5)
  11338. goto inf_leave
  11339. }
  11340. }
  11341. have--
  11342. v41 = *(*uintptr)(unsafe.Pointer(bp))
  11343. *(*uintptr)(unsafe.Pointer(bp))++
  11344. hold += uint64(*(*uint8)(unsafe.Pointer(v41))) << bits
  11345. bits += uint32(8)
  11346. goto _40
  11347. _40:
  11348. }
  11349. hold >>= uint64(last.Fbits)
  11350. bits -= uint32(last.Fbits)
  11351. }
  11352. hold >>= uint64(here.Fbits)
  11353. bits -= uint32(here.Fbits)
  11354. if int32(here.Fop)&int32(64) != 0 {
  11355. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 254
  11356. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11357. goto _10
  11358. }
  11359. (*Tinflate_state)(unsafe.Pointer(state)).Foffset = uint32(here.Fval)
  11360. /* get distance extra bits, if any */
  11361. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  11362. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != uint32(0) {
  11363. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  11364. if have == uint32(0) {
  11365. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11366. if have == uint32(0) {
  11367. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11368. ret = -int32(5)
  11369. goto inf_leave
  11370. }
  11371. }
  11372. have--
  11373. v42 = *(*uintptr)(unsafe.Pointer(bp))
  11374. *(*uintptr)(unsafe.Pointer(bp))++
  11375. hold += uint64(*(*uint8)(unsafe.Pointer(v42))) << bits
  11376. bits += uint32(8)
  11377. }
  11378. *(*uint32)(unsafe.Pointer(state + 96)) += uint32(hold) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  11379. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  11380. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  11381. }
  11382. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  11383. v43 = left
  11384. } else {
  11385. v43 = uint32(0)
  11386. }
  11387. if (*Tinflate_state)(unsafe.Pointer(state)).Foffset > (*Tinflate_state)(unsafe.Pointer(state)).Fwsize-v43 {
  11388. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 276
  11389. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11390. goto _10
  11391. }
  11392. /* copy match from window to output */
  11393. for cond := true; cond; cond = (*Tinflate_state)(unsafe.Pointer(state)).Flength != uint32(0) {
  11394. if left == uint32(0) {
  11395. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  11396. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  11397. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  11398. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  11399. ret = -int32(5)
  11400. goto inf_leave
  11401. }
  11402. }
  11403. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - (*Tinflate_state)(unsafe.Pointer(state)).Foffset
  11404. if copy1 < left {
  11405. from = put + uintptr(copy1)
  11406. copy1 = left - copy1
  11407. } else {
  11408. from = put - uintptr((*Tinflate_state)(unsafe.Pointer(state)).Foffset)
  11409. copy1 = left
  11410. }
  11411. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Flength {
  11412. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  11413. }
  11414. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  11415. left -= copy1
  11416. for {
  11417. v46 = put
  11418. put++
  11419. v47 = from
  11420. from++
  11421. *(*uint8)(unsafe.Pointer(v46)) = *(*uint8)(unsafe.Pointer(v47))
  11422. goto _45
  11423. _45:
  11424. copy1--
  11425. v44 = copy1
  11426. if !(v44 != 0) {
  11427. break
  11428. }
  11429. }
  11430. }
  11431. goto _10
  11432. _7:
  11433. /* inflate stream terminated properly */
  11434. ret = int32(m_Z_STREAM_END)
  11435. goto inf_leave
  11436. _8:
  11437. ret = -int32(3)
  11438. goto inf_leave
  11439. _9:
  11440. /* can't happen, but makes compilers happy */
  11441. ret = -int32(2)
  11442. goto inf_leave
  11443. _10:
  11444. goto _2
  11445. _2:
  11446. }
  11447. /* Write leftover output and return unused input */
  11448. inf_leave:
  11449. if left < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  11450. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, (*Tinflate_state)(unsafe.Pointer(state)).Fwsize-left) != 0 && ret == int32(m_Z_STREAM_END) {
  11451. ret = -int32(5)
  11452. }
  11453. }
  11454. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = *(*uintptr)(unsafe.Pointer(bp))
  11455. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  11456. return ret
  11457. }
  11458. var _order = [19]uint16{
  11459. 0: uint16(16),
  11460. 1: uint16(17),
  11461. 2: uint16(18),
  11462. 4: uint16(8),
  11463. 5: uint16(7),
  11464. 6: uint16(9),
  11465. 7: uint16(6),
  11466. 8: uint16(10),
  11467. 9: uint16(5),
  11468. 10: uint16(11),
  11469. 11: uint16(4),
  11470. 12: uint16(12),
  11471. 13: uint16(3),
  11472. 14: uint16(13),
  11473. 15: uint16(2),
  11474. 16: uint16(14),
  11475. 17: uint16(1),
  11476. 18: uint16(15),
  11477. }
  11478. func XinflateBackEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  11479. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fstate == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  11480. return -int32(2)
  11481. }
  11482. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tz_stream)(unsafe.Pointer(strm)).Fstate)
  11483. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  11484. return m_Z_OK
  11485. }
  11486. // C documentation
  11487. //
  11488. // /*
  11489. // Decode literal, length, and distance codes and write out the resulting
  11490. // literal and match bytes until either not enough input or output is
  11491. // available, an end-of-block is encountered, or a data error is encountered.
  11492. // When large enough input and output buffers are supplied to inflate(), for
  11493. // example, a 16K input buffer and a 64K output buffer, more than 95% of the
  11494. // inflate execution time is spent in this routine.
  11495. //
  11496. // Entry assumptions:
  11497. //
  11498. // state->mode == LEN
  11499. // strm->avail_in >= 6
  11500. // strm->avail_out >= 258
  11501. // start >= strm->avail_out
  11502. // state->bits < 8
  11503. //
  11504. // On return, state->mode is one of:
  11505. //
  11506. // LEN -- ran out of enough output space or enough available input
  11507. // TYPE -- reached end of block code, inflate() to interpret next block
  11508. // BAD -- error in block data
  11509. //
  11510. // Notes:
  11511. //
  11512. // - The maximum input bits used by a length/distance pair is 15 bits for the
  11513. // length code, 5 bits for the length extra, 15 bits for the distance code,
  11514. // and 13 bits for the distance extra. This totals 48 bits, or six bytes.
  11515. // Therefore if strm->avail_in >= 6, then there is enough input to avoid
  11516. // checking for available input while decoding.
  11517. //
  11518. // - The maximum bytes that a single length/distance pair can output is 258
  11519. // bytes, which is the maximum length that can be coded. inflate_fast()
  11520. // requires strm->avail_out >= 258 for each loop to avoid checking for
  11521. // output space.
  11522. // */
  11523. func Xinflate_fast(tls *libc.TLS, strm Tz_streamp, start uint32) {
  11524. var beg, dcode, end, from, here, in, last, lcode, out, state, window, v1, v11, v12, v15, v16, v19, v2, v20, v23, v24, v25, v26, v27, v28, v29, v3, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v4, v40, v41, v42, v43, v44, v5, v6, v7, v8 uintptr
  11525. var bits, dist, dmask, len1, lmask, op, whave, wnext, wsize, v13, v17, v21, v9 uint32
  11526. var hold uint64
  11527. var v45, v46 int64
  11528. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = beg, bits, dcode, dist, dmask, end, from, here, hold, in, last, lcode, len1, lmask, op, out, state, whave, window, wnext, wsize, v1, v11, v12, v13, v15, v16, v17, v19, v2, v20, v21, v23, v24, v25, v26, v27, v28, v29, v3, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v4, v40, v41, v42, v43, v44, v45, v46, v5, v6, v7, v8, v9 /* where to copy match from */
  11529. /* copy state to local variables */
  11530. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  11531. in = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  11532. last = in + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in-libc.Uint32FromInt32(5))
  11533. out = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  11534. beg = out - uintptr(start-(*Tz_stream)(unsafe.Pointer(strm)).Favail_out)
  11535. end = out + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_out-libc.Uint32FromInt32(257))
  11536. wsize = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  11537. whave = (*Tinflate_state)(unsafe.Pointer(state)).Fwhave
  11538. wnext = (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  11539. window = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  11540. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  11541. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  11542. lcode = (*Tinflate_state)(unsafe.Pointer(state)).Flencode
  11543. dcode = (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode
  11544. lmask = uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits - uint32(1)
  11545. dmask = uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits - uint32(1)
  11546. /* decode literals and length/distances until end-of-block or not enough
  11547. input data or output space */
  11548. for cond := true; cond; cond = in < last && out < end {
  11549. if bits < uint32(15) {
  11550. v1 = in
  11551. in++
  11552. hold += uint64(*(*uint8)(unsafe.Pointer(v1))) << bits
  11553. bits += uint32(8)
  11554. v2 = in
  11555. in++
  11556. hold += uint64(*(*uint8)(unsafe.Pointer(v2))) << bits
  11557. bits += uint32(8)
  11558. }
  11559. here = lcode + uintptr(hold&uint64(lmask))*4
  11560. dolen:
  11561. op = uint32((*Tcode)(unsafe.Pointer(here)).Fbits)
  11562. hold >>= uint64(op)
  11563. bits -= op
  11564. op = uint32((*Tcode)(unsafe.Pointer(here)).Fop)
  11565. if op == uint32(0) { /* literal */
  11566. v3 = out
  11567. out++
  11568. *(*uint8)(unsafe.Pointer(v3)) = uint8((*Tcode)(unsafe.Pointer(here)).Fval)
  11569. } else {
  11570. if op&uint32(16) != 0 { /* length base */
  11571. len1 = uint32((*Tcode)(unsafe.Pointer(here)).Fval)
  11572. op &= uint32(15) /* number of extra bits */
  11573. if op != 0 {
  11574. if bits < op {
  11575. v4 = in
  11576. in++
  11577. hold += uint64(*(*uint8)(unsafe.Pointer(v4))) << bits
  11578. bits += uint32(8)
  11579. }
  11580. len1 += uint32(hold) & (uint32(1)<<op - uint32(1))
  11581. hold >>= uint64(op)
  11582. bits -= op
  11583. }
  11584. if bits < uint32(15) {
  11585. v5 = in
  11586. in++
  11587. hold += uint64(*(*uint8)(unsafe.Pointer(v5))) << bits
  11588. bits += uint32(8)
  11589. v6 = in
  11590. in++
  11591. hold += uint64(*(*uint8)(unsafe.Pointer(v6))) << bits
  11592. bits += uint32(8)
  11593. }
  11594. here = dcode + uintptr(hold&uint64(dmask))*4
  11595. dodist:
  11596. op = uint32((*Tcode)(unsafe.Pointer(here)).Fbits)
  11597. hold >>= uint64(op)
  11598. bits -= op
  11599. op = uint32((*Tcode)(unsafe.Pointer(here)).Fop)
  11600. if op&uint32(16) != 0 { /* distance base */
  11601. dist = uint32((*Tcode)(unsafe.Pointer(here)).Fval)
  11602. op &= uint32(15) /* number of extra bits */
  11603. if bits < op {
  11604. v7 = in
  11605. in++
  11606. hold += uint64(*(*uint8)(unsafe.Pointer(v7))) << bits
  11607. bits += uint32(8)
  11608. if bits < op {
  11609. v8 = in
  11610. in++
  11611. hold += uint64(*(*uint8)(unsafe.Pointer(v8))) << bits
  11612. bits += uint32(8)
  11613. }
  11614. }
  11615. dist += uint32(hold) & (uint32(1)<<op - uint32(1))
  11616. hold >>= uint64(op)
  11617. bits -= op
  11618. op = uint32(int64(out) - int64(beg)) /* max distance in output */
  11619. if dist > op { /* see if copy from window */
  11620. op = dist - op /* distance back in window */
  11621. if op > whave {
  11622. if (*Tinflate_state)(unsafe.Pointer(state)).Fsane != 0 {
  11623. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 276
  11624. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11625. break
  11626. }
  11627. }
  11628. from = window
  11629. if wnext == uint32(0) { /* very common case */
  11630. from += uintptr(wsize - op)
  11631. if op < len1 { /* some from window */
  11632. len1 -= op
  11633. for {
  11634. v11 = out
  11635. out++
  11636. v12 = from
  11637. from++
  11638. *(*uint8)(unsafe.Pointer(v11)) = *(*uint8)(unsafe.Pointer(v12))
  11639. goto _10
  11640. _10:
  11641. op--
  11642. v9 = op
  11643. if !(v9 != 0) {
  11644. break
  11645. }
  11646. }
  11647. from = out - uintptr(dist) /* rest from output */
  11648. }
  11649. } else {
  11650. if wnext < op { /* wrap around window */
  11651. from += uintptr(wsize + wnext - op)
  11652. op -= wnext
  11653. if op < len1 { /* some from end of window */
  11654. len1 -= op
  11655. for {
  11656. v15 = out
  11657. out++
  11658. v16 = from
  11659. from++
  11660. *(*uint8)(unsafe.Pointer(v15)) = *(*uint8)(unsafe.Pointer(v16))
  11661. goto _14
  11662. _14:
  11663. op--
  11664. v13 = op
  11665. if !(v13 != 0) {
  11666. break
  11667. }
  11668. }
  11669. from = window
  11670. if wnext < len1 { /* some from start of window */
  11671. op = wnext
  11672. len1 -= op
  11673. for {
  11674. v19 = out
  11675. out++
  11676. v20 = from
  11677. from++
  11678. *(*uint8)(unsafe.Pointer(v19)) = *(*uint8)(unsafe.Pointer(v20))
  11679. goto _18
  11680. _18:
  11681. op--
  11682. v17 = op
  11683. if !(v17 != 0) {
  11684. break
  11685. }
  11686. }
  11687. from = out - uintptr(dist) /* rest from output */
  11688. }
  11689. }
  11690. } else { /* contiguous in window */
  11691. from += uintptr(wnext - op)
  11692. if op < len1 { /* some from window */
  11693. len1 -= op
  11694. for {
  11695. v23 = out
  11696. out++
  11697. v24 = from
  11698. from++
  11699. *(*uint8)(unsafe.Pointer(v23)) = *(*uint8)(unsafe.Pointer(v24))
  11700. goto _22
  11701. _22:
  11702. op--
  11703. v21 = op
  11704. if !(v21 != 0) {
  11705. break
  11706. }
  11707. }
  11708. from = out - uintptr(dist) /* rest from output */
  11709. }
  11710. }
  11711. }
  11712. for len1 > uint32(2) {
  11713. v25 = out
  11714. out++
  11715. v26 = from
  11716. from++
  11717. *(*uint8)(unsafe.Pointer(v25)) = *(*uint8)(unsafe.Pointer(v26))
  11718. v27 = out
  11719. out++
  11720. v28 = from
  11721. from++
  11722. *(*uint8)(unsafe.Pointer(v27)) = *(*uint8)(unsafe.Pointer(v28))
  11723. v29 = out
  11724. out++
  11725. v30 = from
  11726. from++
  11727. *(*uint8)(unsafe.Pointer(v29)) = *(*uint8)(unsafe.Pointer(v30))
  11728. len1 -= uint32(3)
  11729. }
  11730. if len1 != 0 {
  11731. v31 = out
  11732. out++
  11733. v32 = from
  11734. from++
  11735. *(*uint8)(unsafe.Pointer(v31)) = *(*uint8)(unsafe.Pointer(v32))
  11736. if len1 > uint32(1) {
  11737. v33 = out
  11738. out++
  11739. v34 = from
  11740. from++
  11741. *(*uint8)(unsafe.Pointer(v33)) = *(*uint8)(unsafe.Pointer(v34))
  11742. }
  11743. }
  11744. } else {
  11745. from = out - uintptr(dist) /* copy direct from output */
  11746. for cond := true; cond; cond = len1 > uint32(2) { /* minimum length is three */
  11747. v35 = out
  11748. out++
  11749. v36 = from
  11750. from++
  11751. *(*uint8)(unsafe.Pointer(v35)) = *(*uint8)(unsafe.Pointer(v36))
  11752. v37 = out
  11753. out++
  11754. v38 = from
  11755. from++
  11756. *(*uint8)(unsafe.Pointer(v37)) = *(*uint8)(unsafe.Pointer(v38))
  11757. v39 = out
  11758. out++
  11759. v40 = from
  11760. from++
  11761. *(*uint8)(unsafe.Pointer(v39)) = *(*uint8)(unsafe.Pointer(v40))
  11762. len1 -= uint32(3)
  11763. }
  11764. if len1 != 0 {
  11765. v41 = out
  11766. out++
  11767. v42 = from
  11768. from++
  11769. *(*uint8)(unsafe.Pointer(v41)) = *(*uint8)(unsafe.Pointer(v42))
  11770. if len1 > uint32(1) {
  11771. v43 = out
  11772. out++
  11773. v44 = from
  11774. from++
  11775. *(*uint8)(unsafe.Pointer(v43)) = *(*uint8)(unsafe.Pointer(v44))
  11776. }
  11777. }
  11778. }
  11779. } else {
  11780. if op&uint32(64) == uint32(0) { /* 2nd level distance code */
  11781. here = dcode + uintptr((*Tcode)(unsafe.Pointer(here)).Fval)*4 + uintptr(hold&uint64(libc.Uint32FromUint32(1)<<op-libc.Uint32FromInt32(1)))*4
  11782. goto dodist
  11783. } else {
  11784. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 254
  11785. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11786. break
  11787. }
  11788. }
  11789. } else {
  11790. if op&uint32(64) == uint32(0) { /* 2nd level length code */
  11791. here = lcode + uintptr((*Tcode)(unsafe.Pointer(here)).Fval)*4 + uintptr(hold&uint64(libc.Uint32FromUint32(1)<<op-libc.Uint32FromInt32(1)))*4
  11792. goto dolen
  11793. } else {
  11794. if op&uint32(32) != 0 { /* end-of-block */
  11795. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  11796. break
  11797. } else {
  11798. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 226
  11799. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11800. break
  11801. }
  11802. }
  11803. }
  11804. }
  11805. }
  11806. /* return unused bytes (on entry, bits < 8, so in won't go too far back) */
  11807. len1 = bits >> int32(3)
  11808. in -= uintptr(len1)
  11809. bits -= len1 << int32(3)
  11810. hold &= uint64(uint32(1)<<bits - uint32(1))
  11811. /* update state and return */
  11812. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = in
  11813. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = out
  11814. if in < last {
  11815. v45 = int64(5) + (int64(last) - int64(in))
  11816. } else {
  11817. v45 = int64(5) - (int64(in) - int64(last))
  11818. }
  11819. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(v45)
  11820. if out < end {
  11821. v46 = int64(257) + (int64(end) - int64(out))
  11822. } else {
  11823. v46 = int64(257) - (int64(out) - int64(end))
  11824. }
  11825. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = uint32(v46)
  11826. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  11827. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  11828. return
  11829. }
  11830. const m_Z_TREES = 6
  11831. func _inflateStateCheck(tls *libc.TLS, strm Tz_streamp) (r int32) {
  11832. var state uintptr
  11833. _ = state
  11834. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  11835. return int32(1)
  11836. }
  11837. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  11838. if state == uintptr(m_Z_NULL) || (*Tinflate_state)(unsafe.Pointer(state)).Fstrm != strm || (*Tinflate_state)(unsafe.Pointer(state)).Fmode < int32(_HEAD) || (*Tinflate_state)(unsafe.Pointer(state)).Fmode > int32(_SYNC) {
  11839. return int32(1)
  11840. }
  11841. return 0
  11842. }
  11843. func XinflateResetKeep(tls *libc.TLS, strm Tz_streamp) (r int32) {
  11844. var state, v3, v4 uintptr
  11845. var v1 TuLong
  11846. var v2 uint64
  11847. _, _, _, _, _ = state, v1, v2, v3, v4
  11848. if _inflateStateCheck(tls, strm) != 0 {
  11849. return -int32(2)
  11850. }
  11851. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  11852. v2 = libc.Uint64FromInt32(0)
  11853. (*Tinflate_state)(unsafe.Pointer(state)).Ftotal = v2
  11854. v1 = v2
  11855. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = v1
  11856. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = v1
  11857. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  11858. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 { /* to support ill-conceived Java test suite */
  11859. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = uint64((*Tinflate_state)(unsafe.Pointer(state)).Fwrap & int32(1))
  11860. }
  11861. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HEAD)
  11862. (*Tinflate_state)(unsafe.Pointer(state)).Flast = 0
  11863. (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict = 0
  11864. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = -int32(1)
  11865. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(32768)
  11866. (*Tinflate_state)(unsafe.Pointer(state)).Fhead = uintptr(m_Z_NULL)
  11867. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = uint64(0)
  11868. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = uint32(0)
  11869. v4 = state + 1368
  11870. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = v4
  11871. v3 = v4
  11872. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = v3
  11873. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = v3
  11874. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  11875. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  11876. return m_Z_OK
  11877. }
  11878. func XinflateReset(tls *libc.TLS, strm Tz_streamp) (r int32) {
  11879. var state uintptr
  11880. _ = state
  11881. if _inflateStateCheck(tls, strm) != 0 {
  11882. return -int32(2)
  11883. }
  11884. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  11885. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(0)
  11886. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  11887. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  11888. return XinflateResetKeep(tls, strm)
  11889. }
  11890. func XinflateReset2(tls *libc.TLS, strm Tz_streamp, windowBits int32) (r int32) {
  11891. var state uintptr
  11892. var wrap int32
  11893. _, _ = state, wrap
  11894. /* get the state */
  11895. if _inflateStateCheck(tls, strm) != 0 {
  11896. return -int32(2)
  11897. }
  11898. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  11899. /* extract wrap request from windowBits parameter */
  11900. if windowBits < 0 {
  11901. if windowBits < -int32(15) {
  11902. return -int32(2)
  11903. }
  11904. wrap = 0
  11905. windowBits = -windowBits
  11906. } else {
  11907. wrap = windowBits>>int32(4) + int32(5)
  11908. if windowBits < int32(48) {
  11909. windowBits &= int32(15)
  11910. }
  11911. }
  11912. /* set number of window bits, free window if different */
  11913. if windowBits != 0 && (windowBits < int32(8) || windowBits > int32(15)) {
  11914. return -int32(2)
  11915. }
  11916. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) && (*Tinflate_state)(unsafe.Pointer(state)).Fwbits != uint32(windowBits) {
  11917. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow)
  11918. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = uintptr(m_Z_NULL)
  11919. }
  11920. /* update state and reset the rest of it */
  11921. (*Tinflate_state)(unsafe.Pointer(state)).Fwrap = wrap
  11922. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = uint32(windowBits)
  11923. return XinflateReset(tls, strm)
  11924. }
  11925. func XinflateInit2_(tls *libc.TLS, strm Tz_streamp, windowBits int32, version uintptr, stream_size int32) (r int32) {
  11926. var ret int32
  11927. var state uintptr
  11928. _, _ = ret, state
  11929. if version == uintptr(m_Z_NULL) || int32(*(*uint8)(unsafe.Pointer(version))) != int32(*(*uint8)(unsafe.Pointer(__ccgo_ts))) || stream_size != int32(libc.Uint64FromInt64(112)) {
  11930. return -int32(6)
  11931. }
  11932. if strm == uintptr(m_Z_NULL) {
  11933. return -int32(2)
  11934. }
  11935. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* in case we return an error */
  11936. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  11937. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  11938. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  11939. }
  11940. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  11941. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  11942. }
  11943. state = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, uint32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(7160)))
  11944. if state == uintptr(m_Z_NULL) {
  11945. return -int32(4)
  11946. }
  11947. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = state
  11948. (*Tinflate_state)(unsafe.Pointer(state)).Fstrm = strm
  11949. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = uintptr(m_Z_NULL)
  11950. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HEAD) /* to pass state test in inflateReset2() */
  11951. ret = XinflateReset2(tls, strm, windowBits)
  11952. if ret != m_Z_OK {
  11953. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, state)
  11954. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  11955. }
  11956. return ret
  11957. }
  11958. func XinflateInit_(tls *libc.TLS, strm Tz_streamp, version uintptr, stream_size int32) (r int32) {
  11959. return XinflateInit2_(tls, strm, int32(m_MAX_WBITS), version, stream_size)
  11960. }
  11961. func XinflatePrime(tls *libc.TLS, strm Tz_streamp, bits int32, value int32) (r int32) {
  11962. var state uintptr
  11963. _ = state
  11964. if _inflateStateCheck(tls, strm) != 0 {
  11965. return -int32(2)
  11966. }
  11967. if bits == 0 {
  11968. return m_Z_OK
  11969. }
  11970. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  11971. if bits < 0 {
  11972. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = uint64(0)
  11973. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = uint32(0)
  11974. return m_Z_OK
  11975. }
  11976. if bits > int32(16) || (*Tinflate_state)(unsafe.Pointer(state)).Fbits+uint32(bits) > uint32(32) {
  11977. return -int32(2)
  11978. }
  11979. value = int32(int64(value) & (libc.Int64FromInt64(1)<<bits - libc.Int64FromInt32(1)))
  11980. *(*uint64)(unsafe.Pointer(state + 80)) += uint64(uint32(value) << (*Tinflate_state)(unsafe.Pointer(state)).Fbits)
  11981. *(*uint32)(unsafe.Pointer(state + 88)) += uint32(bits)
  11982. return m_Z_OK
  11983. }
  11984. // C documentation
  11985. //
  11986. // /*
  11987. // Return state with length and distance decoding tables and index sizes set to
  11988. // fixed code decoding. Normally this returns fixed tables from inffixed.h.
  11989. // If BUILDFIXED is defined, then instead this routine builds the tables the
  11990. // first time it's called, and returns those tables the first time and
  11991. // thereafter. This reduces the size of the code by about 2K bytes, in
  11992. // exchange for a little execution time. However, BUILDFIXED should not be
  11993. // used for threaded applications, since the rewriting of the tables and virgin
  11994. // may not be thread-safe.
  11995. // */
  11996. func _fixedtables1(tls *libc.TLS, state uintptr) {
  11997. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = uintptr(unsafe.Pointer(&_lenfix1))
  11998. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  11999. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = uintptr(unsafe.Pointer(&_distfix1))
  12000. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(5)
  12001. }
  12002. var _lenfix1 = [512]Tcode{
  12003. 0: {
  12004. Fop: uint8(96),
  12005. Fbits: uint8(7),
  12006. },
  12007. 1: {
  12008. Fbits: uint8(8),
  12009. Fval: uint16(80),
  12010. },
  12011. 2: {
  12012. Fbits: uint8(8),
  12013. Fval: uint16(16),
  12014. },
  12015. 3: {
  12016. Fop: uint8(20),
  12017. Fbits: uint8(8),
  12018. Fval: uint16(115),
  12019. },
  12020. 4: {
  12021. Fop: uint8(18),
  12022. Fbits: uint8(7),
  12023. Fval: uint16(31),
  12024. },
  12025. 5: {
  12026. Fbits: uint8(8),
  12027. Fval: uint16(112),
  12028. },
  12029. 6: {
  12030. Fbits: uint8(8),
  12031. Fval: uint16(48),
  12032. },
  12033. 7: {
  12034. Fbits: uint8(9),
  12035. Fval: uint16(192),
  12036. },
  12037. 8: {
  12038. Fop: uint8(16),
  12039. Fbits: uint8(7),
  12040. Fval: uint16(10),
  12041. },
  12042. 9: {
  12043. Fbits: uint8(8),
  12044. Fval: uint16(96),
  12045. },
  12046. 10: {
  12047. Fbits: uint8(8),
  12048. Fval: uint16(32),
  12049. },
  12050. 11: {
  12051. Fbits: uint8(9),
  12052. Fval: uint16(160),
  12053. },
  12054. 12: {
  12055. Fbits: uint8(8),
  12056. },
  12057. 13: {
  12058. Fbits: uint8(8),
  12059. Fval: uint16(128),
  12060. },
  12061. 14: {
  12062. Fbits: uint8(8),
  12063. Fval: uint16(64),
  12064. },
  12065. 15: {
  12066. Fbits: uint8(9),
  12067. Fval: uint16(224),
  12068. },
  12069. 16: {
  12070. Fop: uint8(16),
  12071. Fbits: uint8(7),
  12072. Fval: uint16(6),
  12073. },
  12074. 17: {
  12075. Fbits: uint8(8),
  12076. Fval: uint16(88),
  12077. },
  12078. 18: {
  12079. Fbits: uint8(8),
  12080. Fval: uint16(24),
  12081. },
  12082. 19: {
  12083. Fbits: uint8(9),
  12084. Fval: uint16(144),
  12085. },
  12086. 20: {
  12087. Fop: uint8(19),
  12088. Fbits: uint8(7),
  12089. Fval: uint16(59),
  12090. },
  12091. 21: {
  12092. Fbits: uint8(8),
  12093. Fval: uint16(120),
  12094. },
  12095. 22: {
  12096. Fbits: uint8(8),
  12097. Fval: uint16(56),
  12098. },
  12099. 23: {
  12100. Fbits: uint8(9),
  12101. Fval: uint16(208),
  12102. },
  12103. 24: {
  12104. Fop: uint8(17),
  12105. Fbits: uint8(7),
  12106. Fval: uint16(17),
  12107. },
  12108. 25: {
  12109. Fbits: uint8(8),
  12110. Fval: uint16(104),
  12111. },
  12112. 26: {
  12113. Fbits: uint8(8),
  12114. Fval: uint16(40),
  12115. },
  12116. 27: {
  12117. Fbits: uint8(9),
  12118. Fval: uint16(176),
  12119. },
  12120. 28: {
  12121. Fbits: uint8(8),
  12122. Fval: uint16(8),
  12123. },
  12124. 29: {
  12125. Fbits: uint8(8),
  12126. Fval: uint16(136),
  12127. },
  12128. 30: {
  12129. Fbits: uint8(8),
  12130. Fval: uint16(72),
  12131. },
  12132. 31: {
  12133. Fbits: uint8(9),
  12134. Fval: uint16(240),
  12135. },
  12136. 32: {
  12137. Fop: uint8(16),
  12138. Fbits: uint8(7),
  12139. Fval: uint16(4),
  12140. },
  12141. 33: {
  12142. Fbits: uint8(8),
  12143. Fval: uint16(84),
  12144. },
  12145. 34: {
  12146. Fbits: uint8(8),
  12147. Fval: uint16(20),
  12148. },
  12149. 35: {
  12150. Fop: uint8(21),
  12151. Fbits: uint8(8),
  12152. Fval: uint16(227),
  12153. },
  12154. 36: {
  12155. Fop: uint8(19),
  12156. Fbits: uint8(7),
  12157. Fval: uint16(43),
  12158. },
  12159. 37: {
  12160. Fbits: uint8(8),
  12161. Fval: uint16(116),
  12162. },
  12163. 38: {
  12164. Fbits: uint8(8),
  12165. Fval: uint16(52),
  12166. },
  12167. 39: {
  12168. Fbits: uint8(9),
  12169. Fval: uint16(200),
  12170. },
  12171. 40: {
  12172. Fop: uint8(17),
  12173. Fbits: uint8(7),
  12174. Fval: uint16(13),
  12175. },
  12176. 41: {
  12177. Fbits: uint8(8),
  12178. Fval: uint16(100),
  12179. },
  12180. 42: {
  12181. Fbits: uint8(8),
  12182. Fval: uint16(36),
  12183. },
  12184. 43: {
  12185. Fbits: uint8(9),
  12186. Fval: uint16(168),
  12187. },
  12188. 44: {
  12189. Fbits: uint8(8),
  12190. Fval: uint16(4),
  12191. },
  12192. 45: {
  12193. Fbits: uint8(8),
  12194. Fval: uint16(132),
  12195. },
  12196. 46: {
  12197. Fbits: uint8(8),
  12198. Fval: uint16(68),
  12199. },
  12200. 47: {
  12201. Fbits: uint8(9),
  12202. Fval: uint16(232),
  12203. },
  12204. 48: {
  12205. Fop: uint8(16),
  12206. Fbits: uint8(7),
  12207. Fval: uint16(8),
  12208. },
  12209. 49: {
  12210. Fbits: uint8(8),
  12211. Fval: uint16(92),
  12212. },
  12213. 50: {
  12214. Fbits: uint8(8),
  12215. Fval: uint16(28),
  12216. },
  12217. 51: {
  12218. Fbits: uint8(9),
  12219. Fval: uint16(152),
  12220. },
  12221. 52: {
  12222. Fop: uint8(20),
  12223. Fbits: uint8(7),
  12224. Fval: uint16(83),
  12225. },
  12226. 53: {
  12227. Fbits: uint8(8),
  12228. Fval: uint16(124),
  12229. },
  12230. 54: {
  12231. Fbits: uint8(8),
  12232. Fval: uint16(60),
  12233. },
  12234. 55: {
  12235. Fbits: uint8(9),
  12236. Fval: uint16(216),
  12237. },
  12238. 56: {
  12239. Fop: uint8(18),
  12240. Fbits: uint8(7),
  12241. Fval: uint16(23),
  12242. },
  12243. 57: {
  12244. Fbits: uint8(8),
  12245. Fval: uint16(108),
  12246. },
  12247. 58: {
  12248. Fbits: uint8(8),
  12249. Fval: uint16(44),
  12250. },
  12251. 59: {
  12252. Fbits: uint8(9),
  12253. Fval: uint16(184),
  12254. },
  12255. 60: {
  12256. Fbits: uint8(8),
  12257. Fval: uint16(12),
  12258. },
  12259. 61: {
  12260. Fbits: uint8(8),
  12261. Fval: uint16(140),
  12262. },
  12263. 62: {
  12264. Fbits: uint8(8),
  12265. Fval: uint16(76),
  12266. },
  12267. 63: {
  12268. Fbits: uint8(9),
  12269. Fval: uint16(248),
  12270. },
  12271. 64: {
  12272. Fop: uint8(16),
  12273. Fbits: uint8(7),
  12274. Fval: uint16(3),
  12275. },
  12276. 65: {
  12277. Fbits: uint8(8),
  12278. Fval: uint16(82),
  12279. },
  12280. 66: {
  12281. Fbits: uint8(8),
  12282. Fval: uint16(18),
  12283. },
  12284. 67: {
  12285. Fop: uint8(21),
  12286. Fbits: uint8(8),
  12287. Fval: uint16(163),
  12288. },
  12289. 68: {
  12290. Fop: uint8(19),
  12291. Fbits: uint8(7),
  12292. Fval: uint16(35),
  12293. },
  12294. 69: {
  12295. Fbits: uint8(8),
  12296. Fval: uint16(114),
  12297. },
  12298. 70: {
  12299. Fbits: uint8(8),
  12300. Fval: uint16(50),
  12301. },
  12302. 71: {
  12303. Fbits: uint8(9),
  12304. Fval: uint16(196),
  12305. },
  12306. 72: {
  12307. Fop: uint8(17),
  12308. Fbits: uint8(7),
  12309. Fval: uint16(11),
  12310. },
  12311. 73: {
  12312. Fbits: uint8(8),
  12313. Fval: uint16(98),
  12314. },
  12315. 74: {
  12316. Fbits: uint8(8),
  12317. Fval: uint16(34),
  12318. },
  12319. 75: {
  12320. Fbits: uint8(9),
  12321. Fval: uint16(164),
  12322. },
  12323. 76: {
  12324. Fbits: uint8(8),
  12325. Fval: uint16(2),
  12326. },
  12327. 77: {
  12328. Fbits: uint8(8),
  12329. Fval: uint16(130),
  12330. },
  12331. 78: {
  12332. Fbits: uint8(8),
  12333. Fval: uint16(66),
  12334. },
  12335. 79: {
  12336. Fbits: uint8(9),
  12337. Fval: uint16(228),
  12338. },
  12339. 80: {
  12340. Fop: uint8(16),
  12341. Fbits: uint8(7),
  12342. Fval: uint16(7),
  12343. },
  12344. 81: {
  12345. Fbits: uint8(8),
  12346. Fval: uint16(90),
  12347. },
  12348. 82: {
  12349. Fbits: uint8(8),
  12350. Fval: uint16(26),
  12351. },
  12352. 83: {
  12353. Fbits: uint8(9),
  12354. Fval: uint16(148),
  12355. },
  12356. 84: {
  12357. Fop: uint8(20),
  12358. Fbits: uint8(7),
  12359. Fval: uint16(67),
  12360. },
  12361. 85: {
  12362. Fbits: uint8(8),
  12363. Fval: uint16(122),
  12364. },
  12365. 86: {
  12366. Fbits: uint8(8),
  12367. Fval: uint16(58),
  12368. },
  12369. 87: {
  12370. Fbits: uint8(9),
  12371. Fval: uint16(212),
  12372. },
  12373. 88: {
  12374. Fop: uint8(18),
  12375. Fbits: uint8(7),
  12376. Fval: uint16(19),
  12377. },
  12378. 89: {
  12379. Fbits: uint8(8),
  12380. Fval: uint16(106),
  12381. },
  12382. 90: {
  12383. Fbits: uint8(8),
  12384. Fval: uint16(42),
  12385. },
  12386. 91: {
  12387. Fbits: uint8(9),
  12388. Fval: uint16(180),
  12389. },
  12390. 92: {
  12391. Fbits: uint8(8),
  12392. Fval: uint16(10),
  12393. },
  12394. 93: {
  12395. Fbits: uint8(8),
  12396. Fval: uint16(138),
  12397. },
  12398. 94: {
  12399. Fbits: uint8(8),
  12400. Fval: uint16(74),
  12401. },
  12402. 95: {
  12403. Fbits: uint8(9),
  12404. Fval: uint16(244),
  12405. },
  12406. 96: {
  12407. Fop: uint8(16),
  12408. Fbits: uint8(7),
  12409. Fval: uint16(5),
  12410. },
  12411. 97: {
  12412. Fbits: uint8(8),
  12413. Fval: uint16(86),
  12414. },
  12415. 98: {
  12416. Fbits: uint8(8),
  12417. Fval: uint16(22),
  12418. },
  12419. 99: {
  12420. Fop: uint8(64),
  12421. Fbits: uint8(8),
  12422. },
  12423. 100: {
  12424. Fop: uint8(19),
  12425. Fbits: uint8(7),
  12426. Fval: uint16(51),
  12427. },
  12428. 101: {
  12429. Fbits: uint8(8),
  12430. Fval: uint16(118),
  12431. },
  12432. 102: {
  12433. Fbits: uint8(8),
  12434. Fval: uint16(54),
  12435. },
  12436. 103: {
  12437. Fbits: uint8(9),
  12438. Fval: uint16(204),
  12439. },
  12440. 104: {
  12441. Fop: uint8(17),
  12442. Fbits: uint8(7),
  12443. Fval: uint16(15),
  12444. },
  12445. 105: {
  12446. Fbits: uint8(8),
  12447. Fval: uint16(102),
  12448. },
  12449. 106: {
  12450. Fbits: uint8(8),
  12451. Fval: uint16(38),
  12452. },
  12453. 107: {
  12454. Fbits: uint8(9),
  12455. Fval: uint16(172),
  12456. },
  12457. 108: {
  12458. Fbits: uint8(8),
  12459. Fval: uint16(6),
  12460. },
  12461. 109: {
  12462. Fbits: uint8(8),
  12463. Fval: uint16(134),
  12464. },
  12465. 110: {
  12466. Fbits: uint8(8),
  12467. Fval: uint16(70),
  12468. },
  12469. 111: {
  12470. Fbits: uint8(9),
  12471. Fval: uint16(236),
  12472. },
  12473. 112: {
  12474. Fop: uint8(16),
  12475. Fbits: uint8(7),
  12476. Fval: uint16(9),
  12477. },
  12478. 113: {
  12479. Fbits: uint8(8),
  12480. Fval: uint16(94),
  12481. },
  12482. 114: {
  12483. Fbits: uint8(8),
  12484. Fval: uint16(30),
  12485. },
  12486. 115: {
  12487. Fbits: uint8(9),
  12488. Fval: uint16(156),
  12489. },
  12490. 116: {
  12491. Fop: uint8(20),
  12492. Fbits: uint8(7),
  12493. Fval: uint16(99),
  12494. },
  12495. 117: {
  12496. Fbits: uint8(8),
  12497. Fval: uint16(126),
  12498. },
  12499. 118: {
  12500. Fbits: uint8(8),
  12501. Fval: uint16(62),
  12502. },
  12503. 119: {
  12504. Fbits: uint8(9),
  12505. Fval: uint16(220),
  12506. },
  12507. 120: {
  12508. Fop: uint8(18),
  12509. Fbits: uint8(7),
  12510. Fval: uint16(27),
  12511. },
  12512. 121: {
  12513. Fbits: uint8(8),
  12514. Fval: uint16(110),
  12515. },
  12516. 122: {
  12517. Fbits: uint8(8),
  12518. Fval: uint16(46),
  12519. },
  12520. 123: {
  12521. Fbits: uint8(9),
  12522. Fval: uint16(188),
  12523. },
  12524. 124: {
  12525. Fbits: uint8(8),
  12526. Fval: uint16(14),
  12527. },
  12528. 125: {
  12529. Fbits: uint8(8),
  12530. Fval: uint16(142),
  12531. },
  12532. 126: {
  12533. Fbits: uint8(8),
  12534. Fval: uint16(78),
  12535. },
  12536. 127: {
  12537. Fbits: uint8(9),
  12538. Fval: uint16(252),
  12539. },
  12540. 128: {
  12541. Fop: uint8(96),
  12542. Fbits: uint8(7),
  12543. },
  12544. 129: {
  12545. Fbits: uint8(8),
  12546. Fval: uint16(81),
  12547. },
  12548. 130: {
  12549. Fbits: uint8(8),
  12550. Fval: uint16(17),
  12551. },
  12552. 131: {
  12553. Fop: uint8(21),
  12554. Fbits: uint8(8),
  12555. Fval: uint16(131),
  12556. },
  12557. 132: {
  12558. Fop: uint8(18),
  12559. Fbits: uint8(7),
  12560. Fval: uint16(31),
  12561. },
  12562. 133: {
  12563. Fbits: uint8(8),
  12564. Fval: uint16(113),
  12565. },
  12566. 134: {
  12567. Fbits: uint8(8),
  12568. Fval: uint16(49),
  12569. },
  12570. 135: {
  12571. Fbits: uint8(9),
  12572. Fval: uint16(194),
  12573. },
  12574. 136: {
  12575. Fop: uint8(16),
  12576. Fbits: uint8(7),
  12577. Fval: uint16(10),
  12578. },
  12579. 137: {
  12580. Fbits: uint8(8),
  12581. Fval: uint16(97),
  12582. },
  12583. 138: {
  12584. Fbits: uint8(8),
  12585. Fval: uint16(33),
  12586. },
  12587. 139: {
  12588. Fbits: uint8(9),
  12589. Fval: uint16(162),
  12590. },
  12591. 140: {
  12592. Fbits: uint8(8),
  12593. Fval: uint16(1),
  12594. },
  12595. 141: {
  12596. Fbits: uint8(8),
  12597. Fval: uint16(129),
  12598. },
  12599. 142: {
  12600. Fbits: uint8(8),
  12601. Fval: uint16(65),
  12602. },
  12603. 143: {
  12604. Fbits: uint8(9),
  12605. Fval: uint16(226),
  12606. },
  12607. 144: {
  12608. Fop: uint8(16),
  12609. Fbits: uint8(7),
  12610. Fval: uint16(6),
  12611. },
  12612. 145: {
  12613. Fbits: uint8(8),
  12614. Fval: uint16(89),
  12615. },
  12616. 146: {
  12617. Fbits: uint8(8),
  12618. Fval: uint16(25),
  12619. },
  12620. 147: {
  12621. Fbits: uint8(9),
  12622. Fval: uint16(146),
  12623. },
  12624. 148: {
  12625. Fop: uint8(19),
  12626. Fbits: uint8(7),
  12627. Fval: uint16(59),
  12628. },
  12629. 149: {
  12630. Fbits: uint8(8),
  12631. Fval: uint16(121),
  12632. },
  12633. 150: {
  12634. Fbits: uint8(8),
  12635. Fval: uint16(57),
  12636. },
  12637. 151: {
  12638. Fbits: uint8(9),
  12639. Fval: uint16(210),
  12640. },
  12641. 152: {
  12642. Fop: uint8(17),
  12643. Fbits: uint8(7),
  12644. Fval: uint16(17),
  12645. },
  12646. 153: {
  12647. Fbits: uint8(8),
  12648. Fval: uint16(105),
  12649. },
  12650. 154: {
  12651. Fbits: uint8(8),
  12652. Fval: uint16(41),
  12653. },
  12654. 155: {
  12655. Fbits: uint8(9),
  12656. Fval: uint16(178),
  12657. },
  12658. 156: {
  12659. Fbits: uint8(8),
  12660. Fval: uint16(9),
  12661. },
  12662. 157: {
  12663. Fbits: uint8(8),
  12664. Fval: uint16(137),
  12665. },
  12666. 158: {
  12667. Fbits: uint8(8),
  12668. Fval: uint16(73),
  12669. },
  12670. 159: {
  12671. Fbits: uint8(9),
  12672. Fval: uint16(242),
  12673. },
  12674. 160: {
  12675. Fop: uint8(16),
  12676. Fbits: uint8(7),
  12677. Fval: uint16(4),
  12678. },
  12679. 161: {
  12680. Fbits: uint8(8),
  12681. Fval: uint16(85),
  12682. },
  12683. 162: {
  12684. Fbits: uint8(8),
  12685. Fval: uint16(21),
  12686. },
  12687. 163: {
  12688. Fop: uint8(16),
  12689. Fbits: uint8(8),
  12690. Fval: uint16(258),
  12691. },
  12692. 164: {
  12693. Fop: uint8(19),
  12694. Fbits: uint8(7),
  12695. Fval: uint16(43),
  12696. },
  12697. 165: {
  12698. Fbits: uint8(8),
  12699. Fval: uint16(117),
  12700. },
  12701. 166: {
  12702. Fbits: uint8(8),
  12703. Fval: uint16(53),
  12704. },
  12705. 167: {
  12706. Fbits: uint8(9),
  12707. Fval: uint16(202),
  12708. },
  12709. 168: {
  12710. Fop: uint8(17),
  12711. Fbits: uint8(7),
  12712. Fval: uint16(13),
  12713. },
  12714. 169: {
  12715. Fbits: uint8(8),
  12716. Fval: uint16(101),
  12717. },
  12718. 170: {
  12719. Fbits: uint8(8),
  12720. Fval: uint16(37),
  12721. },
  12722. 171: {
  12723. Fbits: uint8(9),
  12724. Fval: uint16(170),
  12725. },
  12726. 172: {
  12727. Fbits: uint8(8),
  12728. Fval: uint16(5),
  12729. },
  12730. 173: {
  12731. Fbits: uint8(8),
  12732. Fval: uint16(133),
  12733. },
  12734. 174: {
  12735. Fbits: uint8(8),
  12736. Fval: uint16(69),
  12737. },
  12738. 175: {
  12739. Fbits: uint8(9),
  12740. Fval: uint16(234),
  12741. },
  12742. 176: {
  12743. Fop: uint8(16),
  12744. Fbits: uint8(7),
  12745. Fval: uint16(8),
  12746. },
  12747. 177: {
  12748. Fbits: uint8(8),
  12749. Fval: uint16(93),
  12750. },
  12751. 178: {
  12752. Fbits: uint8(8),
  12753. Fval: uint16(29),
  12754. },
  12755. 179: {
  12756. Fbits: uint8(9),
  12757. Fval: uint16(154),
  12758. },
  12759. 180: {
  12760. Fop: uint8(20),
  12761. Fbits: uint8(7),
  12762. Fval: uint16(83),
  12763. },
  12764. 181: {
  12765. Fbits: uint8(8),
  12766. Fval: uint16(125),
  12767. },
  12768. 182: {
  12769. Fbits: uint8(8),
  12770. Fval: uint16(61),
  12771. },
  12772. 183: {
  12773. Fbits: uint8(9),
  12774. Fval: uint16(218),
  12775. },
  12776. 184: {
  12777. Fop: uint8(18),
  12778. Fbits: uint8(7),
  12779. Fval: uint16(23),
  12780. },
  12781. 185: {
  12782. Fbits: uint8(8),
  12783. Fval: uint16(109),
  12784. },
  12785. 186: {
  12786. Fbits: uint8(8),
  12787. Fval: uint16(45),
  12788. },
  12789. 187: {
  12790. Fbits: uint8(9),
  12791. Fval: uint16(186),
  12792. },
  12793. 188: {
  12794. Fbits: uint8(8),
  12795. Fval: uint16(13),
  12796. },
  12797. 189: {
  12798. Fbits: uint8(8),
  12799. Fval: uint16(141),
  12800. },
  12801. 190: {
  12802. Fbits: uint8(8),
  12803. Fval: uint16(77),
  12804. },
  12805. 191: {
  12806. Fbits: uint8(9),
  12807. Fval: uint16(250),
  12808. },
  12809. 192: {
  12810. Fop: uint8(16),
  12811. Fbits: uint8(7),
  12812. Fval: uint16(3),
  12813. },
  12814. 193: {
  12815. Fbits: uint8(8),
  12816. Fval: uint16(83),
  12817. },
  12818. 194: {
  12819. Fbits: uint8(8),
  12820. Fval: uint16(19),
  12821. },
  12822. 195: {
  12823. Fop: uint8(21),
  12824. Fbits: uint8(8),
  12825. Fval: uint16(195),
  12826. },
  12827. 196: {
  12828. Fop: uint8(19),
  12829. Fbits: uint8(7),
  12830. Fval: uint16(35),
  12831. },
  12832. 197: {
  12833. Fbits: uint8(8),
  12834. Fval: uint16(115),
  12835. },
  12836. 198: {
  12837. Fbits: uint8(8),
  12838. Fval: uint16(51),
  12839. },
  12840. 199: {
  12841. Fbits: uint8(9),
  12842. Fval: uint16(198),
  12843. },
  12844. 200: {
  12845. Fop: uint8(17),
  12846. Fbits: uint8(7),
  12847. Fval: uint16(11),
  12848. },
  12849. 201: {
  12850. Fbits: uint8(8),
  12851. Fval: uint16(99),
  12852. },
  12853. 202: {
  12854. Fbits: uint8(8),
  12855. Fval: uint16(35),
  12856. },
  12857. 203: {
  12858. Fbits: uint8(9),
  12859. Fval: uint16(166),
  12860. },
  12861. 204: {
  12862. Fbits: uint8(8),
  12863. Fval: uint16(3),
  12864. },
  12865. 205: {
  12866. Fbits: uint8(8),
  12867. Fval: uint16(131),
  12868. },
  12869. 206: {
  12870. Fbits: uint8(8),
  12871. Fval: uint16(67),
  12872. },
  12873. 207: {
  12874. Fbits: uint8(9),
  12875. Fval: uint16(230),
  12876. },
  12877. 208: {
  12878. Fop: uint8(16),
  12879. Fbits: uint8(7),
  12880. Fval: uint16(7),
  12881. },
  12882. 209: {
  12883. Fbits: uint8(8),
  12884. Fval: uint16(91),
  12885. },
  12886. 210: {
  12887. Fbits: uint8(8),
  12888. Fval: uint16(27),
  12889. },
  12890. 211: {
  12891. Fbits: uint8(9),
  12892. Fval: uint16(150),
  12893. },
  12894. 212: {
  12895. Fop: uint8(20),
  12896. Fbits: uint8(7),
  12897. Fval: uint16(67),
  12898. },
  12899. 213: {
  12900. Fbits: uint8(8),
  12901. Fval: uint16(123),
  12902. },
  12903. 214: {
  12904. Fbits: uint8(8),
  12905. Fval: uint16(59),
  12906. },
  12907. 215: {
  12908. Fbits: uint8(9),
  12909. Fval: uint16(214),
  12910. },
  12911. 216: {
  12912. Fop: uint8(18),
  12913. Fbits: uint8(7),
  12914. Fval: uint16(19),
  12915. },
  12916. 217: {
  12917. Fbits: uint8(8),
  12918. Fval: uint16(107),
  12919. },
  12920. 218: {
  12921. Fbits: uint8(8),
  12922. Fval: uint16(43),
  12923. },
  12924. 219: {
  12925. Fbits: uint8(9),
  12926. Fval: uint16(182),
  12927. },
  12928. 220: {
  12929. Fbits: uint8(8),
  12930. Fval: uint16(11),
  12931. },
  12932. 221: {
  12933. Fbits: uint8(8),
  12934. Fval: uint16(139),
  12935. },
  12936. 222: {
  12937. Fbits: uint8(8),
  12938. Fval: uint16(75),
  12939. },
  12940. 223: {
  12941. Fbits: uint8(9),
  12942. Fval: uint16(246),
  12943. },
  12944. 224: {
  12945. Fop: uint8(16),
  12946. Fbits: uint8(7),
  12947. Fval: uint16(5),
  12948. },
  12949. 225: {
  12950. Fbits: uint8(8),
  12951. Fval: uint16(87),
  12952. },
  12953. 226: {
  12954. Fbits: uint8(8),
  12955. Fval: uint16(23),
  12956. },
  12957. 227: {
  12958. Fop: uint8(64),
  12959. Fbits: uint8(8),
  12960. },
  12961. 228: {
  12962. Fop: uint8(19),
  12963. Fbits: uint8(7),
  12964. Fval: uint16(51),
  12965. },
  12966. 229: {
  12967. Fbits: uint8(8),
  12968. Fval: uint16(119),
  12969. },
  12970. 230: {
  12971. Fbits: uint8(8),
  12972. Fval: uint16(55),
  12973. },
  12974. 231: {
  12975. Fbits: uint8(9),
  12976. Fval: uint16(206),
  12977. },
  12978. 232: {
  12979. Fop: uint8(17),
  12980. Fbits: uint8(7),
  12981. Fval: uint16(15),
  12982. },
  12983. 233: {
  12984. Fbits: uint8(8),
  12985. Fval: uint16(103),
  12986. },
  12987. 234: {
  12988. Fbits: uint8(8),
  12989. Fval: uint16(39),
  12990. },
  12991. 235: {
  12992. Fbits: uint8(9),
  12993. Fval: uint16(174),
  12994. },
  12995. 236: {
  12996. Fbits: uint8(8),
  12997. Fval: uint16(7),
  12998. },
  12999. 237: {
  13000. Fbits: uint8(8),
  13001. Fval: uint16(135),
  13002. },
  13003. 238: {
  13004. Fbits: uint8(8),
  13005. Fval: uint16(71),
  13006. },
  13007. 239: {
  13008. Fbits: uint8(9),
  13009. Fval: uint16(238),
  13010. },
  13011. 240: {
  13012. Fop: uint8(16),
  13013. Fbits: uint8(7),
  13014. Fval: uint16(9),
  13015. },
  13016. 241: {
  13017. Fbits: uint8(8),
  13018. Fval: uint16(95),
  13019. },
  13020. 242: {
  13021. Fbits: uint8(8),
  13022. Fval: uint16(31),
  13023. },
  13024. 243: {
  13025. Fbits: uint8(9),
  13026. Fval: uint16(158),
  13027. },
  13028. 244: {
  13029. Fop: uint8(20),
  13030. Fbits: uint8(7),
  13031. Fval: uint16(99),
  13032. },
  13033. 245: {
  13034. Fbits: uint8(8),
  13035. Fval: uint16(127),
  13036. },
  13037. 246: {
  13038. Fbits: uint8(8),
  13039. Fval: uint16(63),
  13040. },
  13041. 247: {
  13042. Fbits: uint8(9),
  13043. Fval: uint16(222),
  13044. },
  13045. 248: {
  13046. Fop: uint8(18),
  13047. Fbits: uint8(7),
  13048. Fval: uint16(27),
  13049. },
  13050. 249: {
  13051. Fbits: uint8(8),
  13052. Fval: uint16(111),
  13053. },
  13054. 250: {
  13055. Fbits: uint8(8),
  13056. Fval: uint16(47),
  13057. },
  13058. 251: {
  13059. Fbits: uint8(9),
  13060. Fval: uint16(190),
  13061. },
  13062. 252: {
  13063. Fbits: uint8(8),
  13064. Fval: uint16(15),
  13065. },
  13066. 253: {
  13067. Fbits: uint8(8),
  13068. Fval: uint16(143),
  13069. },
  13070. 254: {
  13071. Fbits: uint8(8),
  13072. Fval: uint16(79),
  13073. },
  13074. 255: {
  13075. Fbits: uint8(9),
  13076. Fval: uint16(254),
  13077. },
  13078. 256: {
  13079. Fop: uint8(96),
  13080. Fbits: uint8(7),
  13081. },
  13082. 257: {
  13083. Fbits: uint8(8),
  13084. Fval: uint16(80),
  13085. },
  13086. 258: {
  13087. Fbits: uint8(8),
  13088. Fval: uint16(16),
  13089. },
  13090. 259: {
  13091. Fop: uint8(20),
  13092. Fbits: uint8(8),
  13093. Fval: uint16(115),
  13094. },
  13095. 260: {
  13096. Fop: uint8(18),
  13097. Fbits: uint8(7),
  13098. Fval: uint16(31),
  13099. },
  13100. 261: {
  13101. Fbits: uint8(8),
  13102. Fval: uint16(112),
  13103. },
  13104. 262: {
  13105. Fbits: uint8(8),
  13106. Fval: uint16(48),
  13107. },
  13108. 263: {
  13109. Fbits: uint8(9),
  13110. Fval: uint16(193),
  13111. },
  13112. 264: {
  13113. Fop: uint8(16),
  13114. Fbits: uint8(7),
  13115. Fval: uint16(10),
  13116. },
  13117. 265: {
  13118. Fbits: uint8(8),
  13119. Fval: uint16(96),
  13120. },
  13121. 266: {
  13122. Fbits: uint8(8),
  13123. Fval: uint16(32),
  13124. },
  13125. 267: {
  13126. Fbits: uint8(9),
  13127. Fval: uint16(161),
  13128. },
  13129. 268: {
  13130. Fbits: uint8(8),
  13131. },
  13132. 269: {
  13133. Fbits: uint8(8),
  13134. Fval: uint16(128),
  13135. },
  13136. 270: {
  13137. Fbits: uint8(8),
  13138. Fval: uint16(64),
  13139. },
  13140. 271: {
  13141. Fbits: uint8(9),
  13142. Fval: uint16(225),
  13143. },
  13144. 272: {
  13145. Fop: uint8(16),
  13146. Fbits: uint8(7),
  13147. Fval: uint16(6),
  13148. },
  13149. 273: {
  13150. Fbits: uint8(8),
  13151. Fval: uint16(88),
  13152. },
  13153. 274: {
  13154. Fbits: uint8(8),
  13155. Fval: uint16(24),
  13156. },
  13157. 275: {
  13158. Fbits: uint8(9),
  13159. Fval: uint16(145),
  13160. },
  13161. 276: {
  13162. Fop: uint8(19),
  13163. Fbits: uint8(7),
  13164. Fval: uint16(59),
  13165. },
  13166. 277: {
  13167. Fbits: uint8(8),
  13168. Fval: uint16(120),
  13169. },
  13170. 278: {
  13171. Fbits: uint8(8),
  13172. Fval: uint16(56),
  13173. },
  13174. 279: {
  13175. Fbits: uint8(9),
  13176. Fval: uint16(209),
  13177. },
  13178. 280: {
  13179. Fop: uint8(17),
  13180. Fbits: uint8(7),
  13181. Fval: uint16(17),
  13182. },
  13183. 281: {
  13184. Fbits: uint8(8),
  13185. Fval: uint16(104),
  13186. },
  13187. 282: {
  13188. Fbits: uint8(8),
  13189. Fval: uint16(40),
  13190. },
  13191. 283: {
  13192. Fbits: uint8(9),
  13193. Fval: uint16(177),
  13194. },
  13195. 284: {
  13196. Fbits: uint8(8),
  13197. Fval: uint16(8),
  13198. },
  13199. 285: {
  13200. Fbits: uint8(8),
  13201. Fval: uint16(136),
  13202. },
  13203. 286: {
  13204. Fbits: uint8(8),
  13205. Fval: uint16(72),
  13206. },
  13207. 287: {
  13208. Fbits: uint8(9),
  13209. Fval: uint16(241),
  13210. },
  13211. 288: {
  13212. Fop: uint8(16),
  13213. Fbits: uint8(7),
  13214. Fval: uint16(4),
  13215. },
  13216. 289: {
  13217. Fbits: uint8(8),
  13218. Fval: uint16(84),
  13219. },
  13220. 290: {
  13221. Fbits: uint8(8),
  13222. Fval: uint16(20),
  13223. },
  13224. 291: {
  13225. Fop: uint8(21),
  13226. Fbits: uint8(8),
  13227. Fval: uint16(227),
  13228. },
  13229. 292: {
  13230. Fop: uint8(19),
  13231. Fbits: uint8(7),
  13232. Fval: uint16(43),
  13233. },
  13234. 293: {
  13235. Fbits: uint8(8),
  13236. Fval: uint16(116),
  13237. },
  13238. 294: {
  13239. Fbits: uint8(8),
  13240. Fval: uint16(52),
  13241. },
  13242. 295: {
  13243. Fbits: uint8(9),
  13244. Fval: uint16(201),
  13245. },
  13246. 296: {
  13247. Fop: uint8(17),
  13248. Fbits: uint8(7),
  13249. Fval: uint16(13),
  13250. },
  13251. 297: {
  13252. Fbits: uint8(8),
  13253. Fval: uint16(100),
  13254. },
  13255. 298: {
  13256. Fbits: uint8(8),
  13257. Fval: uint16(36),
  13258. },
  13259. 299: {
  13260. Fbits: uint8(9),
  13261. Fval: uint16(169),
  13262. },
  13263. 300: {
  13264. Fbits: uint8(8),
  13265. Fval: uint16(4),
  13266. },
  13267. 301: {
  13268. Fbits: uint8(8),
  13269. Fval: uint16(132),
  13270. },
  13271. 302: {
  13272. Fbits: uint8(8),
  13273. Fval: uint16(68),
  13274. },
  13275. 303: {
  13276. Fbits: uint8(9),
  13277. Fval: uint16(233),
  13278. },
  13279. 304: {
  13280. Fop: uint8(16),
  13281. Fbits: uint8(7),
  13282. Fval: uint16(8),
  13283. },
  13284. 305: {
  13285. Fbits: uint8(8),
  13286. Fval: uint16(92),
  13287. },
  13288. 306: {
  13289. Fbits: uint8(8),
  13290. Fval: uint16(28),
  13291. },
  13292. 307: {
  13293. Fbits: uint8(9),
  13294. Fval: uint16(153),
  13295. },
  13296. 308: {
  13297. Fop: uint8(20),
  13298. Fbits: uint8(7),
  13299. Fval: uint16(83),
  13300. },
  13301. 309: {
  13302. Fbits: uint8(8),
  13303. Fval: uint16(124),
  13304. },
  13305. 310: {
  13306. Fbits: uint8(8),
  13307. Fval: uint16(60),
  13308. },
  13309. 311: {
  13310. Fbits: uint8(9),
  13311. Fval: uint16(217),
  13312. },
  13313. 312: {
  13314. Fop: uint8(18),
  13315. Fbits: uint8(7),
  13316. Fval: uint16(23),
  13317. },
  13318. 313: {
  13319. Fbits: uint8(8),
  13320. Fval: uint16(108),
  13321. },
  13322. 314: {
  13323. Fbits: uint8(8),
  13324. Fval: uint16(44),
  13325. },
  13326. 315: {
  13327. Fbits: uint8(9),
  13328. Fval: uint16(185),
  13329. },
  13330. 316: {
  13331. Fbits: uint8(8),
  13332. Fval: uint16(12),
  13333. },
  13334. 317: {
  13335. Fbits: uint8(8),
  13336. Fval: uint16(140),
  13337. },
  13338. 318: {
  13339. Fbits: uint8(8),
  13340. Fval: uint16(76),
  13341. },
  13342. 319: {
  13343. Fbits: uint8(9),
  13344. Fval: uint16(249),
  13345. },
  13346. 320: {
  13347. Fop: uint8(16),
  13348. Fbits: uint8(7),
  13349. Fval: uint16(3),
  13350. },
  13351. 321: {
  13352. Fbits: uint8(8),
  13353. Fval: uint16(82),
  13354. },
  13355. 322: {
  13356. Fbits: uint8(8),
  13357. Fval: uint16(18),
  13358. },
  13359. 323: {
  13360. Fop: uint8(21),
  13361. Fbits: uint8(8),
  13362. Fval: uint16(163),
  13363. },
  13364. 324: {
  13365. Fop: uint8(19),
  13366. Fbits: uint8(7),
  13367. Fval: uint16(35),
  13368. },
  13369. 325: {
  13370. Fbits: uint8(8),
  13371. Fval: uint16(114),
  13372. },
  13373. 326: {
  13374. Fbits: uint8(8),
  13375. Fval: uint16(50),
  13376. },
  13377. 327: {
  13378. Fbits: uint8(9),
  13379. Fval: uint16(197),
  13380. },
  13381. 328: {
  13382. Fop: uint8(17),
  13383. Fbits: uint8(7),
  13384. Fval: uint16(11),
  13385. },
  13386. 329: {
  13387. Fbits: uint8(8),
  13388. Fval: uint16(98),
  13389. },
  13390. 330: {
  13391. Fbits: uint8(8),
  13392. Fval: uint16(34),
  13393. },
  13394. 331: {
  13395. Fbits: uint8(9),
  13396. Fval: uint16(165),
  13397. },
  13398. 332: {
  13399. Fbits: uint8(8),
  13400. Fval: uint16(2),
  13401. },
  13402. 333: {
  13403. Fbits: uint8(8),
  13404. Fval: uint16(130),
  13405. },
  13406. 334: {
  13407. Fbits: uint8(8),
  13408. Fval: uint16(66),
  13409. },
  13410. 335: {
  13411. Fbits: uint8(9),
  13412. Fval: uint16(229),
  13413. },
  13414. 336: {
  13415. Fop: uint8(16),
  13416. Fbits: uint8(7),
  13417. Fval: uint16(7),
  13418. },
  13419. 337: {
  13420. Fbits: uint8(8),
  13421. Fval: uint16(90),
  13422. },
  13423. 338: {
  13424. Fbits: uint8(8),
  13425. Fval: uint16(26),
  13426. },
  13427. 339: {
  13428. Fbits: uint8(9),
  13429. Fval: uint16(149),
  13430. },
  13431. 340: {
  13432. Fop: uint8(20),
  13433. Fbits: uint8(7),
  13434. Fval: uint16(67),
  13435. },
  13436. 341: {
  13437. Fbits: uint8(8),
  13438. Fval: uint16(122),
  13439. },
  13440. 342: {
  13441. Fbits: uint8(8),
  13442. Fval: uint16(58),
  13443. },
  13444. 343: {
  13445. Fbits: uint8(9),
  13446. Fval: uint16(213),
  13447. },
  13448. 344: {
  13449. Fop: uint8(18),
  13450. Fbits: uint8(7),
  13451. Fval: uint16(19),
  13452. },
  13453. 345: {
  13454. Fbits: uint8(8),
  13455. Fval: uint16(106),
  13456. },
  13457. 346: {
  13458. Fbits: uint8(8),
  13459. Fval: uint16(42),
  13460. },
  13461. 347: {
  13462. Fbits: uint8(9),
  13463. Fval: uint16(181),
  13464. },
  13465. 348: {
  13466. Fbits: uint8(8),
  13467. Fval: uint16(10),
  13468. },
  13469. 349: {
  13470. Fbits: uint8(8),
  13471. Fval: uint16(138),
  13472. },
  13473. 350: {
  13474. Fbits: uint8(8),
  13475. Fval: uint16(74),
  13476. },
  13477. 351: {
  13478. Fbits: uint8(9),
  13479. Fval: uint16(245),
  13480. },
  13481. 352: {
  13482. Fop: uint8(16),
  13483. Fbits: uint8(7),
  13484. Fval: uint16(5),
  13485. },
  13486. 353: {
  13487. Fbits: uint8(8),
  13488. Fval: uint16(86),
  13489. },
  13490. 354: {
  13491. Fbits: uint8(8),
  13492. Fval: uint16(22),
  13493. },
  13494. 355: {
  13495. Fop: uint8(64),
  13496. Fbits: uint8(8),
  13497. },
  13498. 356: {
  13499. Fop: uint8(19),
  13500. Fbits: uint8(7),
  13501. Fval: uint16(51),
  13502. },
  13503. 357: {
  13504. Fbits: uint8(8),
  13505. Fval: uint16(118),
  13506. },
  13507. 358: {
  13508. Fbits: uint8(8),
  13509. Fval: uint16(54),
  13510. },
  13511. 359: {
  13512. Fbits: uint8(9),
  13513. Fval: uint16(205),
  13514. },
  13515. 360: {
  13516. Fop: uint8(17),
  13517. Fbits: uint8(7),
  13518. Fval: uint16(15),
  13519. },
  13520. 361: {
  13521. Fbits: uint8(8),
  13522. Fval: uint16(102),
  13523. },
  13524. 362: {
  13525. Fbits: uint8(8),
  13526. Fval: uint16(38),
  13527. },
  13528. 363: {
  13529. Fbits: uint8(9),
  13530. Fval: uint16(173),
  13531. },
  13532. 364: {
  13533. Fbits: uint8(8),
  13534. Fval: uint16(6),
  13535. },
  13536. 365: {
  13537. Fbits: uint8(8),
  13538. Fval: uint16(134),
  13539. },
  13540. 366: {
  13541. Fbits: uint8(8),
  13542. Fval: uint16(70),
  13543. },
  13544. 367: {
  13545. Fbits: uint8(9),
  13546. Fval: uint16(237),
  13547. },
  13548. 368: {
  13549. Fop: uint8(16),
  13550. Fbits: uint8(7),
  13551. Fval: uint16(9),
  13552. },
  13553. 369: {
  13554. Fbits: uint8(8),
  13555. Fval: uint16(94),
  13556. },
  13557. 370: {
  13558. Fbits: uint8(8),
  13559. Fval: uint16(30),
  13560. },
  13561. 371: {
  13562. Fbits: uint8(9),
  13563. Fval: uint16(157),
  13564. },
  13565. 372: {
  13566. Fop: uint8(20),
  13567. Fbits: uint8(7),
  13568. Fval: uint16(99),
  13569. },
  13570. 373: {
  13571. Fbits: uint8(8),
  13572. Fval: uint16(126),
  13573. },
  13574. 374: {
  13575. Fbits: uint8(8),
  13576. Fval: uint16(62),
  13577. },
  13578. 375: {
  13579. Fbits: uint8(9),
  13580. Fval: uint16(221),
  13581. },
  13582. 376: {
  13583. Fop: uint8(18),
  13584. Fbits: uint8(7),
  13585. Fval: uint16(27),
  13586. },
  13587. 377: {
  13588. Fbits: uint8(8),
  13589. Fval: uint16(110),
  13590. },
  13591. 378: {
  13592. Fbits: uint8(8),
  13593. Fval: uint16(46),
  13594. },
  13595. 379: {
  13596. Fbits: uint8(9),
  13597. Fval: uint16(189),
  13598. },
  13599. 380: {
  13600. Fbits: uint8(8),
  13601. Fval: uint16(14),
  13602. },
  13603. 381: {
  13604. Fbits: uint8(8),
  13605. Fval: uint16(142),
  13606. },
  13607. 382: {
  13608. Fbits: uint8(8),
  13609. Fval: uint16(78),
  13610. },
  13611. 383: {
  13612. Fbits: uint8(9),
  13613. Fval: uint16(253),
  13614. },
  13615. 384: {
  13616. Fop: uint8(96),
  13617. Fbits: uint8(7),
  13618. },
  13619. 385: {
  13620. Fbits: uint8(8),
  13621. Fval: uint16(81),
  13622. },
  13623. 386: {
  13624. Fbits: uint8(8),
  13625. Fval: uint16(17),
  13626. },
  13627. 387: {
  13628. Fop: uint8(21),
  13629. Fbits: uint8(8),
  13630. Fval: uint16(131),
  13631. },
  13632. 388: {
  13633. Fop: uint8(18),
  13634. Fbits: uint8(7),
  13635. Fval: uint16(31),
  13636. },
  13637. 389: {
  13638. Fbits: uint8(8),
  13639. Fval: uint16(113),
  13640. },
  13641. 390: {
  13642. Fbits: uint8(8),
  13643. Fval: uint16(49),
  13644. },
  13645. 391: {
  13646. Fbits: uint8(9),
  13647. Fval: uint16(195),
  13648. },
  13649. 392: {
  13650. Fop: uint8(16),
  13651. Fbits: uint8(7),
  13652. Fval: uint16(10),
  13653. },
  13654. 393: {
  13655. Fbits: uint8(8),
  13656. Fval: uint16(97),
  13657. },
  13658. 394: {
  13659. Fbits: uint8(8),
  13660. Fval: uint16(33),
  13661. },
  13662. 395: {
  13663. Fbits: uint8(9),
  13664. Fval: uint16(163),
  13665. },
  13666. 396: {
  13667. Fbits: uint8(8),
  13668. Fval: uint16(1),
  13669. },
  13670. 397: {
  13671. Fbits: uint8(8),
  13672. Fval: uint16(129),
  13673. },
  13674. 398: {
  13675. Fbits: uint8(8),
  13676. Fval: uint16(65),
  13677. },
  13678. 399: {
  13679. Fbits: uint8(9),
  13680. Fval: uint16(227),
  13681. },
  13682. 400: {
  13683. Fop: uint8(16),
  13684. Fbits: uint8(7),
  13685. Fval: uint16(6),
  13686. },
  13687. 401: {
  13688. Fbits: uint8(8),
  13689. Fval: uint16(89),
  13690. },
  13691. 402: {
  13692. Fbits: uint8(8),
  13693. Fval: uint16(25),
  13694. },
  13695. 403: {
  13696. Fbits: uint8(9),
  13697. Fval: uint16(147),
  13698. },
  13699. 404: {
  13700. Fop: uint8(19),
  13701. Fbits: uint8(7),
  13702. Fval: uint16(59),
  13703. },
  13704. 405: {
  13705. Fbits: uint8(8),
  13706. Fval: uint16(121),
  13707. },
  13708. 406: {
  13709. Fbits: uint8(8),
  13710. Fval: uint16(57),
  13711. },
  13712. 407: {
  13713. Fbits: uint8(9),
  13714. Fval: uint16(211),
  13715. },
  13716. 408: {
  13717. Fop: uint8(17),
  13718. Fbits: uint8(7),
  13719. Fval: uint16(17),
  13720. },
  13721. 409: {
  13722. Fbits: uint8(8),
  13723. Fval: uint16(105),
  13724. },
  13725. 410: {
  13726. Fbits: uint8(8),
  13727. Fval: uint16(41),
  13728. },
  13729. 411: {
  13730. Fbits: uint8(9),
  13731. Fval: uint16(179),
  13732. },
  13733. 412: {
  13734. Fbits: uint8(8),
  13735. Fval: uint16(9),
  13736. },
  13737. 413: {
  13738. Fbits: uint8(8),
  13739. Fval: uint16(137),
  13740. },
  13741. 414: {
  13742. Fbits: uint8(8),
  13743. Fval: uint16(73),
  13744. },
  13745. 415: {
  13746. Fbits: uint8(9),
  13747. Fval: uint16(243),
  13748. },
  13749. 416: {
  13750. Fop: uint8(16),
  13751. Fbits: uint8(7),
  13752. Fval: uint16(4),
  13753. },
  13754. 417: {
  13755. Fbits: uint8(8),
  13756. Fval: uint16(85),
  13757. },
  13758. 418: {
  13759. Fbits: uint8(8),
  13760. Fval: uint16(21),
  13761. },
  13762. 419: {
  13763. Fop: uint8(16),
  13764. Fbits: uint8(8),
  13765. Fval: uint16(258),
  13766. },
  13767. 420: {
  13768. Fop: uint8(19),
  13769. Fbits: uint8(7),
  13770. Fval: uint16(43),
  13771. },
  13772. 421: {
  13773. Fbits: uint8(8),
  13774. Fval: uint16(117),
  13775. },
  13776. 422: {
  13777. Fbits: uint8(8),
  13778. Fval: uint16(53),
  13779. },
  13780. 423: {
  13781. Fbits: uint8(9),
  13782. Fval: uint16(203),
  13783. },
  13784. 424: {
  13785. Fop: uint8(17),
  13786. Fbits: uint8(7),
  13787. Fval: uint16(13),
  13788. },
  13789. 425: {
  13790. Fbits: uint8(8),
  13791. Fval: uint16(101),
  13792. },
  13793. 426: {
  13794. Fbits: uint8(8),
  13795. Fval: uint16(37),
  13796. },
  13797. 427: {
  13798. Fbits: uint8(9),
  13799. Fval: uint16(171),
  13800. },
  13801. 428: {
  13802. Fbits: uint8(8),
  13803. Fval: uint16(5),
  13804. },
  13805. 429: {
  13806. Fbits: uint8(8),
  13807. Fval: uint16(133),
  13808. },
  13809. 430: {
  13810. Fbits: uint8(8),
  13811. Fval: uint16(69),
  13812. },
  13813. 431: {
  13814. Fbits: uint8(9),
  13815. Fval: uint16(235),
  13816. },
  13817. 432: {
  13818. Fop: uint8(16),
  13819. Fbits: uint8(7),
  13820. Fval: uint16(8),
  13821. },
  13822. 433: {
  13823. Fbits: uint8(8),
  13824. Fval: uint16(93),
  13825. },
  13826. 434: {
  13827. Fbits: uint8(8),
  13828. Fval: uint16(29),
  13829. },
  13830. 435: {
  13831. Fbits: uint8(9),
  13832. Fval: uint16(155),
  13833. },
  13834. 436: {
  13835. Fop: uint8(20),
  13836. Fbits: uint8(7),
  13837. Fval: uint16(83),
  13838. },
  13839. 437: {
  13840. Fbits: uint8(8),
  13841. Fval: uint16(125),
  13842. },
  13843. 438: {
  13844. Fbits: uint8(8),
  13845. Fval: uint16(61),
  13846. },
  13847. 439: {
  13848. Fbits: uint8(9),
  13849. Fval: uint16(219),
  13850. },
  13851. 440: {
  13852. Fop: uint8(18),
  13853. Fbits: uint8(7),
  13854. Fval: uint16(23),
  13855. },
  13856. 441: {
  13857. Fbits: uint8(8),
  13858. Fval: uint16(109),
  13859. },
  13860. 442: {
  13861. Fbits: uint8(8),
  13862. Fval: uint16(45),
  13863. },
  13864. 443: {
  13865. Fbits: uint8(9),
  13866. Fval: uint16(187),
  13867. },
  13868. 444: {
  13869. Fbits: uint8(8),
  13870. Fval: uint16(13),
  13871. },
  13872. 445: {
  13873. Fbits: uint8(8),
  13874. Fval: uint16(141),
  13875. },
  13876. 446: {
  13877. Fbits: uint8(8),
  13878. Fval: uint16(77),
  13879. },
  13880. 447: {
  13881. Fbits: uint8(9),
  13882. Fval: uint16(251),
  13883. },
  13884. 448: {
  13885. Fop: uint8(16),
  13886. Fbits: uint8(7),
  13887. Fval: uint16(3),
  13888. },
  13889. 449: {
  13890. Fbits: uint8(8),
  13891. Fval: uint16(83),
  13892. },
  13893. 450: {
  13894. Fbits: uint8(8),
  13895. Fval: uint16(19),
  13896. },
  13897. 451: {
  13898. Fop: uint8(21),
  13899. Fbits: uint8(8),
  13900. Fval: uint16(195),
  13901. },
  13902. 452: {
  13903. Fop: uint8(19),
  13904. Fbits: uint8(7),
  13905. Fval: uint16(35),
  13906. },
  13907. 453: {
  13908. Fbits: uint8(8),
  13909. Fval: uint16(115),
  13910. },
  13911. 454: {
  13912. Fbits: uint8(8),
  13913. Fval: uint16(51),
  13914. },
  13915. 455: {
  13916. Fbits: uint8(9),
  13917. Fval: uint16(199),
  13918. },
  13919. 456: {
  13920. Fop: uint8(17),
  13921. Fbits: uint8(7),
  13922. Fval: uint16(11),
  13923. },
  13924. 457: {
  13925. Fbits: uint8(8),
  13926. Fval: uint16(99),
  13927. },
  13928. 458: {
  13929. Fbits: uint8(8),
  13930. Fval: uint16(35),
  13931. },
  13932. 459: {
  13933. Fbits: uint8(9),
  13934. Fval: uint16(167),
  13935. },
  13936. 460: {
  13937. Fbits: uint8(8),
  13938. Fval: uint16(3),
  13939. },
  13940. 461: {
  13941. Fbits: uint8(8),
  13942. Fval: uint16(131),
  13943. },
  13944. 462: {
  13945. Fbits: uint8(8),
  13946. Fval: uint16(67),
  13947. },
  13948. 463: {
  13949. Fbits: uint8(9),
  13950. Fval: uint16(231),
  13951. },
  13952. 464: {
  13953. Fop: uint8(16),
  13954. Fbits: uint8(7),
  13955. Fval: uint16(7),
  13956. },
  13957. 465: {
  13958. Fbits: uint8(8),
  13959. Fval: uint16(91),
  13960. },
  13961. 466: {
  13962. Fbits: uint8(8),
  13963. Fval: uint16(27),
  13964. },
  13965. 467: {
  13966. Fbits: uint8(9),
  13967. Fval: uint16(151),
  13968. },
  13969. 468: {
  13970. Fop: uint8(20),
  13971. Fbits: uint8(7),
  13972. Fval: uint16(67),
  13973. },
  13974. 469: {
  13975. Fbits: uint8(8),
  13976. Fval: uint16(123),
  13977. },
  13978. 470: {
  13979. Fbits: uint8(8),
  13980. Fval: uint16(59),
  13981. },
  13982. 471: {
  13983. Fbits: uint8(9),
  13984. Fval: uint16(215),
  13985. },
  13986. 472: {
  13987. Fop: uint8(18),
  13988. Fbits: uint8(7),
  13989. Fval: uint16(19),
  13990. },
  13991. 473: {
  13992. Fbits: uint8(8),
  13993. Fval: uint16(107),
  13994. },
  13995. 474: {
  13996. Fbits: uint8(8),
  13997. Fval: uint16(43),
  13998. },
  13999. 475: {
  14000. Fbits: uint8(9),
  14001. Fval: uint16(183),
  14002. },
  14003. 476: {
  14004. Fbits: uint8(8),
  14005. Fval: uint16(11),
  14006. },
  14007. 477: {
  14008. Fbits: uint8(8),
  14009. Fval: uint16(139),
  14010. },
  14011. 478: {
  14012. Fbits: uint8(8),
  14013. Fval: uint16(75),
  14014. },
  14015. 479: {
  14016. Fbits: uint8(9),
  14017. Fval: uint16(247),
  14018. },
  14019. 480: {
  14020. Fop: uint8(16),
  14021. Fbits: uint8(7),
  14022. Fval: uint16(5),
  14023. },
  14024. 481: {
  14025. Fbits: uint8(8),
  14026. Fval: uint16(87),
  14027. },
  14028. 482: {
  14029. Fbits: uint8(8),
  14030. Fval: uint16(23),
  14031. },
  14032. 483: {
  14033. Fop: uint8(64),
  14034. Fbits: uint8(8),
  14035. },
  14036. 484: {
  14037. Fop: uint8(19),
  14038. Fbits: uint8(7),
  14039. Fval: uint16(51),
  14040. },
  14041. 485: {
  14042. Fbits: uint8(8),
  14043. Fval: uint16(119),
  14044. },
  14045. 486: {
  14046. Fbits: uint8(8),
  14047. Fval: uint16(55),
  14048. },
  14049. 487: {
  14050. Fbits: uint8(9),
  14051. Fval: uint16(207),
  14052. },
  14053. 488: {
  14054. Fop: uint8(17),
  14055. Fbits: uint8(7),
  14056. Fval: uint16(15),
  14057. },
  14058. 489: {
  14059. Fbits: uint8(8),
  14060. Fval: uint16(103),
  14061. },
  14062. 490: {
  14063. Fbits: uint8(8),
  14064. Fval: uint16(39),
  14065. },
  14066. 491: {
  14067. Fbits: uint8(9),
  14068. Fval: uint16(175),
  14069. },
  14070. 492: {
  14071. Fbits: uint8(8),
  14072. Fval: uint16(7),
  14073. },
  14074. 493: {
  14075. Fbits: uint8(8),
  14076. Fval: uint16(135),
  14077. },
  14078. 494: {
  14079. Fbits: uint8(8),
  14080. Fval: uint16(71),
  14081. },
  14082. 495: {
  14083. Fbits: uint8(9),
  14084. Fval: uint16(239),
  14085. },
  14086. 496: {
  14087. Fop: uint8(16),
  14088. Fbits: uint8(7),
  14089. Fval: uint16(9),
  14090. },
  14091. 497: {
  14092. Fbits: uint8(8),
  14093. Fval: uint16(95),
  14094. },
  14095. 498: {
  14096. Fbits: uint8(8),
  14097. Fval: uint16(31),
  14098. },
  14099. 499: {
  14100. Fbits: uint8(9),
  14101. Fval: uint16(159),
  14102. },
  14103. 500: {
  14104. Fop: uint8(20),
  14105. Fbits: uint8(7),
  14106. Fval: uint16(99),
  14107. },
  14108. 501: {
  14109. Fbits: uint8(8),
  14110. Fval: uint16(127),
  14111. },
  14112. 502: {
  14113. Fbits: uint8(8),
  14114. Fval: uint16(63),
  14115. },
  14116. 503: {
  14117. Fbits: uint8(9),
  14118. Fval: uint16(223),
  14119. },
  14120. 504: {
  14121. Fop: uint8(18),
  14122. Fbits: uint8(7),
  14123. Fval: uint16(27),
  14124. },
  14125. 505: {
  14126. Fbits: uint8(8),
  14127. Fval: uint16(111),
  14128. },
  14129. 506: {
  14130. Fbits: uint8(8),
  14131. Fval: uint16(47),
  14132. },
  14133. 507: {
  14134. Fbits: uint8(9),
  14135. Fval: uint16(191),
  14136. },
  14137. 508: {
  14138. Fbits: uint8(8),
  14139. Fval: uint16(15),
  14140. },
  14141. 509: {
  14142. Fbits: uint8(8),
  14143. Fval: uint16(143),
  14144. },
  14145. 510: {
  14146. Fbits: uint8(8),
  14147. Fval: uint16(79),
  14148. },
  14149. 511: {
  14150. Fbits: uint8(9),
  14151. Fval: uint16(255),
  14152. },
  14153. }
  14154. var _distfix1 = [32]Tcode{
  14155. 0: {
  14156. Fop: uint8(16),
  14157. Fbits: uint8(5),
  14158. Fval: uint16(1),
  14159. },
  14160. 1: {
  14161. Fop: uint8(23),
  14162. Fbits: uint8(5),
  14163. Fval: uint16(257),
  14164. },
  14165. 2: {
  14166. Fop: uint8(19),
  14167. Fbits: uint8(5),
  14168. Fval: uint16(17),
  14169. },
  14170. 3: {
  14171. Fop: uint8(27),
  14172. Fbits: uint8(5),
  14173. Fval: uint16(4097),
  14174. },
  14175. 4: {
  14176. Fop: uint8(17),
  14177. Fbits: uint8(5),
  14178. Fval: uint16(5),
  14179. },
  14180. 5: {
  14181. Fop: uint8(25),
  14182. Fbits: uint8(5),
  14183. Fval: uint16(1025),
  14184. },
  14185. 6: {
  14186. Fop: uint8(21),
  14187. Fbits: uint8(5),
  14188. Fval: uint16(65),
  14189. },
  14190. 7: {
  14191. Fop: uint8(29),
  14192. Fbits: uint8(5),
  14193. Fval: uint16(16385),
  14194. },
  14195. 8: {
  14196. Fop: uint8(16),
  14197. Fbits: uint8(5),
  14198. Fval: uint16(3),
  14199. },
  14200. 9: {
  14201. Fop: uint8(24),
  14202. Fbits: uint8(5),
  14203. Fval: uint16(513),
  14204. },
  14205. 10: {
  14206. Fop: uint8(20),
  14207. Fbits: uint8(5),
  14208. Fval: uint16(33),
  14209. },
  14210. 11: {
  14211. Fop: uint8(28),
  14212. Fbits: uint8(5),
  14213. Fval: uint16(8193),
  14214. },
  14215. 12: {
  14216. Fop: uint8(18),
  14217. Fbits: uint8(5),
  14218. Fval: uint16(9),
  14219. },
  14220. 13: {
  14221. Fop: uint8(26),
  14222. Fbits: uint8(5),
  14223. Fval: uint16(2049),
  14224. },
  14225. 14: {
  14226. Fop: uint8(22),
  14227. Fbits: uint8(5),
  14228. Fval: uint16(129),
  14229. },
  14230. 15: {
  14231. Fop: uint8(64),
  14232. Fbits: uint8(5),
  14233. },
  14234. 16: {
  14235. Fop: uint8(16),
  14236. Fbits: uint8(5),
  14237. Fval: uint16(2),
  14238. },
  14239. 17: {
  14240. Fop: uint8(23),
  14241. Fbits: uint8(5),
  14242. Fval: uint16(385),
  14243. },
  14244. 18: {
  14245. Fop: uint8(19),
  14246. Fbits: uint8(5),
  14247. Fval: uint16(25),
  14248. },
  14249. 19: {
  14250. Fop: uint8(27),
  14251. Fbits: uint8(5),
  14252. Fval: uint16(6145),
  14253. },
  14254. 20: {
  14255. Fop: uint8(17),
  14256. Fbits: uint8(5),
  14257. Fval: uint16(7),
  14258. },
  14259. 21: {
  14260. Fop: uint8(25),
  14261. Fbits: uint8(5),
  14262. Fval: uint16(1537),
  14263. },
  14264. 22: {
  14265. Fop: uint8(21),
  14266. Fbits: uint8(5),
  14267. Fval: uint16(97),
  14268. },
  14269. 23: {
  14270. Fop: uint8(29),
  14271. Fbits: uint8(5),
  14272. Fval: uint16(24577),
  14273. },
  14274. 24: {
  14275. Fop: uint8(16),
  14276. Fbits: uint8(5),
  14277. Fval: uint16(4),
  14278. },
  14279. 25: {
  14280. Fop: uint8(24),
  14281. Fbits: uint8(5),
  14282. Fval: uint16(769),
  14283. },
  14284. 26: {
  14285. Fop: uint8(20),
  14286. Fbits: uint8(5),
  14287. Fval: uint16(49),
  14288. },
  14289. 27: {
  14290. Fop: uint8(28),
  14291. Fbits: uint8(5),
  14292. Fval: uint16(12289),
  14293. },
  14294. 28: {
  14295. Fop: uint8(18),
  14296. Fbits: uint8(5),
  14297. Fval: uint16(13),
  14298. },
  14299. 29: {
  14300. Fop: uint8(26),
  14301. Fbits: uint8(5),
  14302. Fval: uint16(3073),
  14303. },
  14304. 30: {
  14305. Fop: uint8(22),
  14306. Fbits: uint8(5),
  14307. Fval: uint16(193),
  14308. },
  14309. 31: {
  14310. Fop: uint8(64),
  14311. Fbits: uint8(5),
  14312. },
  14313. }
  14314. // C documentation
  14315. //
  14316. // /*
  14317. // Update the window with the last wsize (normally 32K) bytes written before
  14318. // returning. If window does not exist yet, create it. This is only called
  14319. // when a window is already in use, or when output has been written during this
  14320. // inflate call, but the end of the deflate stream has not been reached yet.
  14321. // It is also called to create a window for dictionary data when a dictionary
  14322. // is loaded.
  14323. //
  14324. // Providing output buffers larger than 32K to inflate() should provide a speed
  14325. // advantage, since only the last 32K of output is copied to the sliding window
  14326. // upon return from inflate(), and since all distances after the first 32K of
  14327. // output will fall in the output data, making match copies simpler and faster.
  14328. // The advantage may be dependent on the size of the processor's data caches.
  14329. // */
  14330. func _updatewindow(tls *libc.TLS, strm Tz_streamp, end uintptr, copy1 uint32) (r int32) {
  14331. var dist uint32
  14332. var state uintptr
  14333. _, _ = dist, state
  14334. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14335. /* if it hasn't been done already, allocate space for the window */
  14336. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow == uintptr(m_Z_NULL) {
  14337. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fwbits, uint32(libc.Uint64FromInt64(1)))
  14338. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow == uintptr(m_Z_NULL) {
  14339. return int32(1)
  14340. }
  14341. }
  14342. /* if window not in use yet, initialize */
  14343. if (*Tinflate_state)(unsafe.Pointer(state)).Fwsize == uint32(0) {
  14344. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(1) << (*Tinflate_state)(unsafe.Pointer(state)).Fwbits
  14345. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  14346. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  14347. }
  14348. /* copy state->wsize or less output bytes into the circular window */
  14349. if copy1 >= (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  14350. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, end-uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwsize), uint64((*Tinflate_state)(unsafe.Pointer(state)).Fwsize))
  14351. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  14352. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  14353. } else {
  14354. dist = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  14355. if dist > copy1 {
  14356. dist = copy1
  14357. }
  14358. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), end-uintptr(copy1), uint64(dist))
  14359. copy1 -= dist
  14360. if copy1 != 0 {
  14361. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, end-uintptr(copy1), uint64(copy1))
  14362. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = copy1
  14363. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  14364. } else {
  14365. *(*uint32)(unsafe.Pointer(state + 68)) += dist
  14366. if (*Tinflate_state)(unsafe.Pointer(state)).Fwnext == (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  14367. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  14368. }
  14369. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  14370. *(*uint32)(unsafe.Pointer(state + 64)) += dist
  14371. }
  14372. }
  14373. }
  14374. return 0
  14375. }
  14376. /* Macros for inflate(): */
  14377. /* check function to use adler32() for zlib or crc32() for gzip */
  14378. /* check macros for header crc */
  14379. /* Load registers with state in inflate() for speed */
  14380. /* Restore state from registers in inflate() */
  14381. /* Clear the input bit accumulator */
  14382. /* Get a byte of input into the bit accumulator, or return from inflate()
  14383. if there is no input available. */
  14384. /* Assure that there are at least n bits in the bit accumulator. If there is
  14385. not enough available input to do that, then return from inflate(). */
  14386. /* Return the low n bits of the bit accumulator (n < 16) */
  14387. /* Remove n bits from the bit accumulator */
  14388. /* Remove zero to seven bits as needed to go to a byte boundary */
  14389. /*
  14390. inflate() uses a state machine to process as much input data and generate as
  14391. much output data as possible before returning. The state machine is
  14392. structured roughly as follows:
  14393. for (;;) switch (state) {
  14394. ...
  14395. case STATEn:
  14396. if (not enough input data or output space to make progress)
  14397. return;
  14398. ... make progress ...
  14399. state = STATEm;
  14400. break;
  14401. ...
  14402. }
  14403. so when inflate() is called again, the same case is attempted again, and
  14404. if the appropriate resources are provided, the machine proceeds to the
  14405. next state. The NEEDBITS() macro is usually the way the state evaluates
  14406. whether it can proceed or should return. NEEDBITS() does the return if
  14407. the requested bits are not available. The typical use of the BITS macros
  14408. is:
  14409. NEEDBITS(n);
  14410. ... do something with BITS(n) ...
  14411. DROPBITS(n);
  14412. where NEEDBITS(n) either returns from inflate() if there isn't enough
  14413. input left to load n bits into the accumulator, or it continues. BITS(n)
  14414. gives the low n bits in the accumulator. When done, DROPBITS(n) drops
  14415. the low n bits off the accumulator. INITBITS() clears the accumulator
  14416. and sets the number of available bits to zero. BYTEBITS() discards just
  14417. enough bits to put the accumulator on a byte boundary. After BYTEBITS()
  14418. and a NEEDBITS(8), then BITS(8) would return the next byte in the stream.
  14419. NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return
  14420. if there is no input available. The decoding of variable length codes uses
  14421. PULLBYTE() directly in order to pull just enough bytes to decode the next
  14422. code, and no more.
  14423. Some states loop until they get enough input, making sure that enough
  14424. state information is maintained to continue the loop where it left off
  14425. if NEEDBITS() returns in the loop. For example, want, need, and keep
  14426. would all have to actually be part of the saved state in case NEEDBITS()
  14427. returns:
  14428. case STATEw:
  14429. while (want < need) {
  14430. NEEDBITS(n);
  14431. keep[want++] = BITS(n);
  14432. DROPBITS(n);
  14433. }
  14434. state = STATEx;
  14435. case STATEx:
  14436. As shown above, if the next state is also the next case, then the break
  14437. is omitted.
  14438. A state may also return if there is not enough output space available to
  14439. complete that state. Those states are copying stored data, writing a
  14440. literal byte, and copying a matching string.
  14441. When returning, a "goto inf_leave" is used to update the total counters,
  14442. update the check value, and determine whether any progress has been made
  14443. during that inflate() call in order to return the proper return code.
  14444. Progress is defined as a change in either strm->avail_in or strm->avail_out.
  14445. When there is a window, goto inf_leave will update the window with the last
  14446. output written. If a goto inf_leave occurs in the middle of decompression
  14447. and there is no window currently, goto inf_leave will create one and copy
  14448. output to the window for the next call of inflate().
  14449. In this implementation, the flush parameter of inflate() only affects the
  14450. return code (per zlib.h). inflate() always writes as much as possible to
  14451. strm->next_out, given the space available and the provided input--the effect
  14452. documented in zlib.h of Z_SYNC_FLUSH. Furthermore, inflate() always defers
  14453. the allocation of and copying into a sliding window until necessary, which
  14454. provides the effect documented in zlib.h for Z_FINISH when the entire input
  14455. stream available. So the only thing the flush parameter actually does is:
  14456. when flush is set to Z_FINISH, inflate() cannot return Z_OK. Instead it
  14457. will return Z_BUF_ERROR if it has not reached the end of the stream.
  14458. */
  14459. func Xinflate(tls *libc.TLS, strm Tz_streamp, flush int32) (r int32) {
  14460. bp := tls.Alloc(16)
  14461. defer tls.Free(16)
  14462. var bits, copy1, have, in, left, len1, out, v46, v48, v49, v50, v52, v53, v64, v66, v70, v75, v76, v90 uint32
  14463. var from, next, put, state, v100, v36, v42, v43, v44, v45, v51, v54, v55, v57, v60, v61, v62, v63, v65, v67, v69, v71, v72, v73, v74, v77, v79, v81, v82, v85, v87, v88, v92, v93, v94, v95, p83, p89 uintptr
  14464. var here, last Tcode
  14465. var hold, v101, v102, v37, v56, v58, v59, v96, v97, v98 uint64
  14466. var ret, v103, v104, v105, v38 int32
  14467. var v47, v99 bool
  14468. var _ /* hbuf at bp+0 */ [4]uint8
  14469. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bits, copy1, from, have, here, hold, in, last, left, len1, next, out, put, ret, state, v100, v101, v102, v103, v104, v105, v36, v37, v38, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v69, v70, v71, v72, v73, v74, v75, v76, v77, v79, v81, v82, v85, v87, v88, v90, v92, v93, v94, v95, v96, v97, v98, v99, p83, p89 /* buffer for gzip header crc calculation */
  14470. if _inflateStateCheck(tls, strm) != 0 || (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in == uintptr(m_Z_NULL) && (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != uint32(0) {
  14471. return -int32(2)
  14472. }
  14473. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14474. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  14475. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPEDO)
  14476. } /* skip check */
  14477. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  14478. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  14479. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  14480. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  14481. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  14482. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  14483. in = have
  14484. out = left
  14485. ret = m_Z_OK
  14486. for {
  14487. switch (*Tinflate_state)(unsafe.Pointer(state)).Fmode {
  14488. case int32(_HEAD):
  14489. goto _2
  14490. case int32(_FLAGS):
  14491. goto _3
  14492. case int32(_TIME):
  14493. goto _4
  14494. case int32(_OS):
  14495. goto _5
  14496. case int32(_EXLEN):
  14497. goto _6
  14498. case int32(_EXTRA):
  14499. goto _7
  14500. case int32(_NAME):
  14501. goto _8
  14502. case int32(_COMMENT):
  14503. goto _9
  14504. case int32(_HCRC):
  14505. goto _10
  14506. case int32(_DICTID):
  14507. goto _11
  14508. case int32(_DICT):
  14509. goto _12
  14510. case int32(_TYPE):
  14511. goto _13
  14512. case int32(_TYPEDO):
  14513. goto _14
  14514. case int32(_STORED):
  14515. goto _15
  14516. case int32(_COPY_):
  14517. goto _16
  14518. case int32(_COPY):
  14519. goto _17
  14520. case int32(_TABLE):
  14521. goto _18
  14522. case int32(_LENLENS):
  14523. goto _19
  14524. case int32(_CODELENS):
  14525. goto _20
  14526. case int32(_LEN_):
  14527. goto _21
  14528. case int32(_LEN):
  14529. goto _22
  14530. case int32(_LENEXT):
  14531. goto _23
  14532. case int32(_DIST):
  14533. goto _24
  14534. case int32(_DISTEXT):
  14535. goto _25
  14536. case int32(_MATCH):
  14537. goto _26
  14538. case int32(_LIT):
  14539. goto _27
  14540. case int32(_CHECK):
  14541. goto _28
  14542. case int32(_LENGTH):
  14543. goto _29
  14544. case int32(_DONE):
  14545. goto _30
  14546. case int32(_BAD):
  14547. goto _31
  14548. case int32(_MEM):
  14549. goto _32
  14550. default:
  14551. goto _33
  14552. case int32(_SYNC):
  14553. goto _34
  14554. }
  14555. goto _35
  14556. _2:
  14557. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap == 0 {
  14558. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPEDO)
  14559. goto _35
  14560. }
  14561. for bits < uint32(libc.Int32FromInt32(16)) {
  14562. if have == uint32(0) {
  14563. goto inf_leave
  14564. }
  14565. have--
  14566. v36 = next
  14567. next++
  14568. hold += uint64(*(*uint8)(unsafe.Pointer(v36))) << bits
  14569. bits += uint32(8)
  14570. }
  14571. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(2) != 0 && hold == uint64(0x8b1f) { /* gzip header */
  14572. if (*Tinflate_state)(unsafe.Pointer(state)).Fwbits == uint32(0) {
  14573. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = uint32(15)
  14574. }
  14575. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  14576. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  14577. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  14578. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  14579. hold = uint64(0)
  14580. bits = uint32(0)
  14581. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_FLAGS)
  14582. goto _35
  14583. }
  14584. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  14585. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fdone = -int32(1)
  14586. }
  14587. if !((*Tinflate_state)(unsafe.Pointer(state)).Fwrap&libc.Int32FromInt32(1) != 0) || (uint64(uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(8)-libc.Uint32FromInt32(1))<<libc.Int32FromInt32(8))+hold>>int32(8))%uint64(31) != 0 {
  14588. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 306
  14589. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14590. goto _35
  14591. }
  14592. if uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) != uint32(m_Z_DEFLATED) {
  14593. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 329
  14594. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14595. goto _35
  14596. }
  14597. hold >>= uint64(libc.Int32FromInt32(4))
  14598. bits -= uint32(libc.Int32FromInt32(4))
  14599. len1 = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(8)
  14600. if (*Tinflate_state)(unsafe.Pointer(state)).Fwbits == uint32(0) {
  14601. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = len1
  14602. }
  14603. if len1 > uint32(15) || len1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwbits {
  14604. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 356
  14605. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14606. goto _35
  14607. }
  14608. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(1) << len1
  14609. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = 0 /* indicate zlib header */
  14610. v37 = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  14611. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v37
  14612. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v37
  14613. if hold&uint64(0x200) != 0 {
  14614. v38 = int32(_DICTID)
  14615. } else {
  14616. v38 = int32(_TYPE)
  14617. }
  14618. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = v38
  14619. hold = uint64(0)
  14620. bits = uint32(0)
  14621. goto _35
  14622. _3:
  14623. _41:
  14624. for bits < uint32(libc.Int32FromInt32(16)) {
  14625. if have == uint32(0) {
  14626. goto inf_leave
  14627. }
  14628. have--
  14629. v42 = next
  14630. next++
  14631. hold += uint64(*(*uint8)(unsafe.Pointer(v42))) << bits
  14632. bits += uint32(8)
  14633. }
  14634. goto _40
  14635. _40:
  14636. if 0 != 0 {
  14637. goto _41
  14638. }
  14639. goto _39
  14640. _39:
  14641. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = int32(hold)
  14642. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0xff) != int32(m_Z_DEFLATED) {
  14643. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 329
  14644. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14645. goto _35
  14646. }
  14647. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0xe000) != 0 {
  14648. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 376
  14649. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14650. goto _35
  14651. }
  14652. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  14653. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Ftext = int32(hold >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(1))
  14654. }
  14655. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  14656. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  14657. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  14658. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  14659. }
  14660. hold = uint64(0)
  14661. bits = uint32(0)
  14662. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TIME)
  14663. /* fallthrough */
  14664. _4:
  14665. for bits < uint32(libc.Int32FromInt32(32)) {
  14666. if have == uint32(0) {
  14667. goto inf_leave
  14668. }
  14669. have--
  14670. v43 = next
  14671. next++
  14672. hold += uint64(*(*uint8)(unsafe.Pointer(v43))) << bits
  14673. bits += uint32(8)
  14674. }
  14675. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  14676. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Ftime = hold
  14677. }
  14678. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  14679. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  14680. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  14681. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(2)] = uint8(hold >> libc.Int32FromInt32(16))
  14682. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(3)] = uint8(hold >> libc.Int32FromInt32(24))
  14683. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(4))
  14684. }
  14685. hold = uint64(0)
  14686. bits = uint32(0)
  14687. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_OS)
  14688. /* fallthrough */
  14689. _5:
  14690. for bits < uint32(libc.Int32FromInt32(16)) {
  14691. if have == uint32(0) {
  14692. goto inf_leave
  14693. }
  14694. have--
  14695. v44 = next
  14696. next++
  14697. hold += uint64(*(*uint8)(unsafe.Pointer(v44))) << bits
  14698. bits += uint32(8)
  14699. }
  14700. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  14701. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fxflags = int32(hold & libc.Uint64FromInt32(0xff))
  14702. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fos = int32(hold >> libc.Int32FromInt32(8))
  14703. }
  14704. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  14705. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  14706. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  14707. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  14708. }
  14709. hold = uint64(0)
  14710. bits = uint32(0)
  14711. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_EXLEN)
  14712. /* fallthrough */
  14713. _6:
  14714. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0400) != 0 {
  14715. for bits < uint32(libc.Int32FromInt32(16)) {
  14716. if have == uint32(0) {
  14717. goto inf_leave
  14718. }
  14719. have--
  14720. v45 = next
  14721. next++
  14722. hold += uint64(*(*uint8)(unsafe.Pointer(v45))) << bits
  14723. bits += uint32(8)
  14724. }
  14725. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(hold)
  14726. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  14727. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_len = uint32(hold)
  14728. }
  14729. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  14730. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  14731. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  14732. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  14733. }
  14734. hold = uint64(0)
  14735. bits = uint32(0)
  14736. } else {
  14737. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  14738. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra = uintptr(m_Z_NULL)
  14739. }
  14740. }
  14741. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_EXTRA)
  14742. /* fallthrough */
  14743. _7:
  14744. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0400) != 0 {
  14745. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14746. if copy1 > have {
  14747. copy1 = have
  14748. }
  14749. if copy1 != 0 {
  14750. if v47 = (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) && (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra != uintptr(m_Z_NULL); v47 {
  14751. v46 = (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_len - (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14752. len1 = v46
  14753. }
  14754. if v47 && v46 < (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max {
  14755. if len1+copy1 > (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max {
  14756. v48 = (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max - len1
  14757. } else {
  14758. v48 = copy1
  14759. }
  14760. libc.Xmemcpy(tls, (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra+uintptr(len1), next, uint64(v48))
  14761. }
  14762. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  14763. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  14764. }
  14765. have -= copy1
  14766. next += uintptr(copy1)
  14767. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  14768. }
  14769. if (*Tinflate_state)(unsafe.Pointer(state)).Flength != 0 {
  14770. goto inf_leave
  14771. }
  14772. }
  14773. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(0)
  14774. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_NAME)
  14775. /* fallthrough */
  14776. _8:
  14777. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0800) != 0 {
  14778. if have == uint32(0) {
  14779. goto inf_leave
  14780. }
  14781. copy1 = uint32(0)
  14782. for cond := true; cond; cond = len1 != 0 && copy1 < have {
  14783. v49 = copy1
  14784. copy1++
  14785. len1 = uint32(*(*uint8)(unsafe.Pointer(next + uintptr(v49))))
  14786. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) && (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname != uintptr(m_Z_NULL) && (*Tinflate_state)(unsafe.Pointer(state)).Flength < (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname_max {
  14787. v51 = state + 92
  14788. v50 = *(*uint32)(unsafe.Pointer(v51))
  14789. *(*uint32)(unsafe.Pointer(v51))++
  14790. *(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname + uintptr(v50))) = uint8(len1)
  14791. }
  14792. }
  14793. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  14794. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  14795. }
  14796. have -= copy1
  14797. next += uintptr(copy1)
  14798. if len1 != 0 {
  14799. goto inf_leave
  14800. }
  14801. } else {
  14802. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  14803. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname = uintptr(m_Z_NULL)
  14804. }
  14805. }
  14806. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(0)
  14807. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COMMENT)
  14808. /* fallthrough */
  14809. _9:
  14810. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x1000) != 0 {
  14811. if have == uint32(0) {
  14812. goto inf_leave
  14813. }
  14814. copy1 = uint32(0)
  14815. for cond := true; cond; cond = len1 != 0 && copy1 < have {
  14816. v52 = copy1
  14817. copy1++
  14818. len1 = uint32(*(*uint8)(unsafe.Pointer(next + uintptr(v52))))
  14819. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) && (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment != uintptr(m_Z_NULL) && (*Tinflate_state)(unsafe.Pointer(state)).Flength < (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomm_max {
  14820. v54 = state + 92
  14821. v53 = *(*uint32)(unsafe.Pointer(v54))
  14822. *(*uint32)(unsafe.Pointer(v54))++
  14823. *(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment + uintptr(v53))) = uint8(len1)
  14824. }
  14825. }
  14826. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  14827. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  14828. }
  14829. have -= copy1
  14830. next += uintptr(copy1)
  14831. if len1 != 0 {
  14832. goto inf_leave
  14833. }
  14834. } else {
  14835. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  14836. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment = uintptr(m_Z_NULL)
  14837. }
  14838. }
  14839. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HCRC)
  14840. /* fallthrough */
  14841. _10:
  14842. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 {
  14843. for bits < uint32(libc.Int32FromInt32(16)) {
  14844. if have == uint32(0) {
  14845. goto inf_leave
  14846. }
  14847. have--
  14848. v55 = next
  14849. next++
  14850. hold += uint64(*(*uint8)(unsafe.Pointer(v55))) << bits
  14851. bits += uint32(8)
  14852. }
  14853. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && hold != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck&uint64(0xffff) {
  14854. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 401
  14855. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14856. goto _35
  14857. }
  14858. hold = uint64(0)
  14859. bits = uint32(0)
  14860. }
  14861. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  14862. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fhcrc = (*Tinflate_state)(unsafe.Pointer(state)).Fflags >> libc.Int32FromInt32(9) & libc.Int32FromInt32(1)
  14863. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fdone = int32(1)
  14864. }
  14865. v56 = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  14866. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v56
  14867. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v56
  14868. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  14869. goto _35
  14870. _11:
  14871. for bits < uint32(libc.Int32FromInt32(32)) {
  14872. if have == uint32(0) {
  14873. goto inf_leave
  14874. }
  14875. have--
  14876. v57 = next
  14877. next++
  14878. hold += uint64(*(*uint8)(unsafe.Pointer(v57))) << bits
  14879. bits += uint32(8)
  14880. }
  14881. v58 = hold>>libc.Int32FromInt32(24)&libc.Uint64FromInt32(0xff) + hold>>libc.Int32FromInt32(8)&libc.Uint64FromInt32(0xff00) + hold&libc.Uint64FromInt32(0xff00)<<libc.Int32FromInt32(8) + hold&libc.Uint64FromInt32(0xff)<<libc.Int32FromInt32(24)
  14882. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v58
  14883. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v58
  14884. hold = uint64(0)
  14885. bits = uint32(0)
  14886. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DICT)
  14887. /* fallthrough */
  14888. _12:
  14889. if (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict == 0 {
  14890. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  14891. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  14892. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  14893. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  14894. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  14895. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  14896. return int32(m_Z_NEED_DICT)
  14897. }
  14898. v59 = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  14899. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v59
  14900. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v59
  14901. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  14902. /* fallthrough */
  14903. _13:
  14904. if flush == int32(m_Z_BLOCK) || flush == int32(m_Z_TREES) {
  14905. goto inf_leave
  14906. }
  14907. /* fallthrough */
  14908. _14:
  14909. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  14910. hold >>= uint64(bits & uint32(7))
  14911. bits -= bits & uint32(7)
  14912. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_CHECK)
  14913. goto _35
  14914. }
  14915. for bits < uint32(libc.Int32FromInt32(3)) {
  14916. if have == uint32(0) {
  14917. goto inf_leave
  14918. }
  14919. have--
  14920. v60 = next
  14921. next++
  14922. hold += uint64(*(*uint8)(unsafe.Pointer(v60))) << bits
  14923. bits += uint32(8)
  14924. }
  14925. (*Tinflate_state)(unsafe.Pointer(state)).Flast = int32(uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(1) - libc.Uint32FromInt32(1)))
  14926. hold >>= uint64(libc.Int32FromInt32(1))
  14927. bits -= uint32(libc.Int32FromInt32(1))
  14928. switch uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2) - libc.Uint32FromInt32(1)) {
  14929. case uint32(0):
  14930. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_STORED)
  14931. case uint32(1):
  14932. _fixedtables1(tls, state)
  14933. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN_) /* decode codes */
  14934. if flush == int32(m_Z_TREES) {
  14935. hold >>= uint64(libc.Int32FromInt32(2))
  14936. bits -= uint32(libc.Int32FromInt32(2))
  14937. goto inf_leave
  14938. }
  14939. case uint32(2):
  14940. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TABLE)
  14941. case uint32(3):
  14942. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 4
  14943. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14944. }
  14945. hold >>= uint64(libc.Int32FromInt32(2))
  14946. bits -= uint32(libc.Int32FromInt32(2))
  14947. goto _35
  14948. _15:
  14949. hold >>= uint64(bits & uint32(7))
  14950. bits -= bits & uint32(7) /* go to byte boundary */
  14951. for bits < uint32(libc.Int32FromInt32(32)) {
  14952. if have == uint32(0) {
  14953. goto inf_leave
  14954. }
  14955. have--
  14956. v61 = next
  14957. next++
  14958. hold += uint64(*(*uint8)(unsafe.Pointer(v61))) << bits
  14959. bits += uint32(8)
  14960. }
  14961. if hold&uint64(0xffff) != hold>>int32(16)^uint64(0xffff) {
  14962. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 23
  14963. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14964. goto _35
  14965. }
  14966. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(hold) & uint32(0xffff)
  14967. hold = uint64(0)
  14968. bits = uint32(0)
  14969. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COPY_)
  14970. if flush == int32(m_Z_TREES) {
  14971. goto inf_leave
  14972. }
  14973. /* fallthrough */
  14974. _16:
  14975. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COPY)
  14976. /* fallthrough */
  14977. _17:
  14978. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14979. if copy1 != 0 {
  14980. if copy1 > have {
  14981. copy1 = have
  14982. }
  14983. if copy1 > left {
  14984. copy1 = left
  14985. }
  14986. if copy1 == uint32(0) {
  14987. goto inf_leave
  14988. }
  14989. libc.Xmemcpy(tls, put, next, uint64(copy1))
  14990. have -= copy1
  14991. next += uintptr(copy1)
  14992. left -= copy1
  14993. put += uintptr(copy1)
  14994. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  14995. goto _35
  14996. }
  14997. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  14998. goto _35
  14999. _18:
  15000. for bits < uint32(libc.Int32FromInt32(14)) {
  15001. if have == uint32(0) {
  15002. goto inf_leave
  15003. }
  15004. have--
  15005. v62 = next
  15006. next++
  15007. hold += uint64(*(*uint8)(unsafe.Pointer(v62))) << bits
  15008. bits += uint32(8)
  15009. }
  15010. (*Tinflate_state)(unsafe.Pointer(state)).Fnlen = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(257)
  15011. hold >>= uint64(libc.Int32FromInt32(5))
  15012. bits -= uint32(libc.Int32FromInt32(5))
  15013. (*Tinflate_state)(unsafe.Pointer(state)).Fndist = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(1)
  15014. hold >>= uint64(libc.Int32FromInt32(5))
  15015. bits -= uint32(libc.Int32FromInt32(5))
  15016. (*Tinflate_state)(unsafe.Pointer(state)).Fncode = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(4)
  15017. hold >>= uint64(libc.Int32FromInt32(4))
  15018. bits -= uint32(libc.Int32FromInt32(4))
  15019. if (*Tinflate_state)(unsafe.Pointer(state)).Fnlen > uint32(286) || (*Tinflate_state)(unsafe.Pointer(state)).Fndist > uint32(30) {
  15020. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 52
  15021. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15022. goto _35
  15023. }
  15024. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  15025. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENLENS)
  15026. /* fallthrough */
  15027. _19:
  15028. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fncode {
  15029. for bits < uint32(libc.Int32FromInt32(3)) {
  15030. if have == uint32(0) {
  15031. goto inf_leave
  15032. }
  15033. have--
  15034. v63 = next
  15035. next++
  15036. hold += uint64(*(*uint8)(unsafe.Pointer(v63))) << bits
  15037. bits += uint32(8)
  15038. }
  15039. v65 = state + 140
  15040. v64 = *(*uint32)(unsafe.Pointer(v65))
  15041. *(*uint32)(unsafe.Pointer(v65))++
  15042. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order1[v64])*2)) = uint16(uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3) - libc.Uint32FromInt32(1)))
  15043. hold >>= uint64(libc.Int32FromInt32(3))
  15044. bits -= uint32(libc.Int32FromInt32(3))
  15045. }
  15046. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < uint32(19) {
  15047. v67 = state + 140
  15048. v66 = *(*uint32)(unsafe.Pointer(v67))
  15049. *(*uint32)(unsafe.Pointer(v67))++
  15050. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order1[v66])*2)) = uint16(0)
  15051. }
  15052. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  15053. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  15054. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(7)
  15055. ret = Xinflate_table(tls, int32(_CODES), state+152, uint32(19), state+144, state+120, state+792)
  15056. if ret != 0 {
  15057. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 88
  15058. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15059. goto _35
  15060. }
  15061. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  15062. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_CODELENS)
  15063. /* fallthrough */
  15064. _20:
  15065. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  15066. for {
  15067. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(hold)&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  15068. if uint32(here.Fbits) <= bits {
  15069. break
  15070. }
  15071. if have == uint32(0) {
  15072. goto inf_leave
  15073. }
  15074. have--
  15075. v69 = next
  15076. next++
  15077. hold += uint64(*(*uint8)(unsafe.Pointer(v69))) << bits
  15078. bits += uint32(8)
  15079. goto _68
  15080. _68:
  15081. }
  15082. if int32(here.Fval) < int32(16) {
  15083. hold >>= uint64(here.Fbits)
  15084. bits -= uint32(here.Fbits)
  15085. v71 = state + 140
  15086. v70 = *(*uint32)(unsafe.Pointer(v71))
  15087. *(*uint32)(unsafe.Pointer(v71))++
  15088. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v70)*2)) = here.Fval
  15089. } else {
  15090. if int32(here.Fval) == int32(16) {
  15091. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(2)) {
  15092. if have == uint32(0) {
  15093. goto inf_leave
  15094. }
  15095. have--
  15096. v72 = next
  15097. next++
  15098. hold += uint64(*(*uint8)(unsafe.Pointer(v72))) << bits
  15099. bits += uint32(8)
  15100. }
  15101. hold >>= uint64(here.Fbits)
  15102. bits -= uint32(here.Fbits)
  15103. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave == uint32(0) {
  15104. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 113
  15105. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15106. break
  15107. }
  15108. len1 = uint32(*(*uint16)(unsafe.Pointer(state + 152 + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fhave-uint32(1))*2)))
  15109. copy1 = uint32(3) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2)-libc.Uint32FromInt32(1))
  15110. hold >>= uint64(libc.Int32FromInt32(2))
  15111. bits -= uint32(libc.Int32FromInt32(2))
  15112. } else {
  15113. if int32(here.Fval) == int32(17) {
  15114. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(3)) {
  15115. if have == uint32(0) {
  15116. goto inf_leave
  15117. }
  15118. have--
  15119. v73 = next
  15120. next++
  15121. hold += uint64(*(*uint8)(unsafe.Pointer(v73))) << bits
  15122. bits += uint32(8)
  15123. }
  15124. hold >>= uint64(here.Fbits)
  15125. bits -= uint32(here.Fbits)
  15126. len1 = uint32(0)
  15127. copy1 = uint32(3) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3)-libc.Uint32FromInt32(1))
  15128. hold >>= uint64(libc.Int32FromInt32(3))
  15129. bits -= uint32(libc.Int32FromInt32(3))
  15130. } else {
  15131. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(7)) {
  15132. if have == uint32(0) {
  15133. goto inf_leave
  15134. }
  15135. have--
  15136. v74 = next
  15137. next++
  15138. hold += uint64(*(*uint8)(unsafe.Pointer(v74))) << bits
  15139. bits += uint32(8)
  15140. }
  15141. hold >>= uint64(here.Fbits)
  15142. bits -= uint32(here.Fbits)
  15143. len1 = uint32(0)
  15144. copy1 = uint32(11) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(7)-libc.Uint32FromInt32(1))
  15145. hold >>= uint64(libc.Int32FromInt32(7))
  15146. bits -= uint32(libc.Int32FromInt32(7))
  15147. }
  15148. }
  15149. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave+copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  15150. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 113
  15151. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15152. break
  15153. }
  15154. for {
  15155. v75 = copy1
  15156. copy1--
  15157. if !(v75 != 0) {
  15158. break
  15159. }
  15160. v77 = state + 140
  15161. v76 = *(*uint32)(unsafe.Pointer(v77))
  15162. *(*uint32)(unsafe.Pointer(v77))++
  15163. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v76)*2)) = uint16(len1)
  15164. }
  15165. }
  15166. }
  15167. /* handle error breaks in while */
  15168. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_BAD) {
  15169. goto _35
  15170. }
  15171. /* check for end-of-block code (better have one) */
  15172. if int32(*(*uint16)(unsafe.Pointer(state + 152 + 256*2))) == 0 {
  15173. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 139
  15174. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15175. goto _35
  15176. }
  15177. /* build code tables -- note: do not change the lenbits or distbits
  15178. values here (9 and 6) without reading the comments in inftrees.h
  15179. concerning the ENOUGH constants, which depend on those values */
  15180. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  15181. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  15182. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  15183. ret = Xinflate_table(tls, int32(_LENS), state+152, (*Tinflate_state)(unsafe.Pointer(state)).Fnlen, state+144, state+120, state+792)
  15184. if ret != 0 {
  15185. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 176
  15186. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15187. goto _35
  15188. }
  15189. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  15190. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(6)
  15191. ret = Xinflate_table(tls, int32(_DISTS), state+152+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fnlen)*2, (*Tinflate_state)(unsafe.Pointer(state)).Fndist, state+144, state+124, state+792)
  15192. if ret != 0 {
  15193. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 204
  15194. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15195. goto _35
  15196. }
  15197. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN_)
  15198. if flush == int32(m_Z_TREES) {
  15199. goto inf_leave
  15200. }
  15201. /* fallthrough */
  15202. _21:
  15203. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  15204. /* fallthrough */
  15205. _22:
  15206. if have >= uint32(6) && left >= uint32(258) {
  15207. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  15208. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  15209. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  15210. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  15211. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  15212. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  15213. Xinflate_fast(tls, strm, out)
  15214. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  15215. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  15216. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  15217. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  15218. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  15219. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  15220. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  15221. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  15222. }
  15223. goto _35
  15224. }
  15225. (*Tinflate_state)(unsafe.Pointer(state)).Fback = 0
  15226. for {
  15227. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(hold)&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  15228. if uint32(here.Fbits) <= bits {
  15229. break
  15230. }
  15231. if have == uint32(0) {
  15232. goto inf_leave
  15233. }
  15234. have--
  15235. v79 = next
  15236. next++
  15237. hold += uint64(*(*uint8)(unsafe.Pointer(v79))) << bits
  15238. bits += uint32(8)
  15239. goto _78
  15240. _78:
  15241. }
  15242. if here.Fop != 0 && int32(here.Fop)&int32(0xf0) == 0 {
  15243. last = here
  15244. for {
  15245. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(last.Fval)+uint32(hold)&(uint32(1)<<(int32(last.Fbits)+int32(last.Fop))-uint32(1))>>last.Fbits)*4))
  15246. if uint32(int32(last.Fbits)+int32(here.Fbits)) <= bits {
  15247. break
  15248. }
  15249. if have == uint32(0) {
  15250. goto inf_leave
  15251. }
  15252. have--
  15253. v81 = next
  15254. next++
  15255. hold += uint64(*(*uint8)(unsafe.Pointer(v81))) << bits
  15256. bits += uint32(8)
  15257. goto _80
  15258. _80:
  15259. }
  15260. hold >>= uint64(last.Fbits)
  15261. bits -= uint32(last.Fbits)
  15262. *(*int32)(unsafe.Pointer(state + 7148)) += int32(last.Fbits)
  15263. }
  15264. hold >>= uint64(here.Fbits)
  15265. bits -= uint32(here.Fbits)
  15266. *(*int32)(unsafe.Pointer(state + 7148)) += int32(here.Fbits)
  15267. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(here.Fval)
  15268. if int32(here.Fop) == 0 {
  15269. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LIT)
  15270. goto _35
  15271. }
  15272. if int32(here.Fop)&int32(32) != 0 {
  15273. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  15274. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  15275. goto _35
  15276. }
  15277. if int32(here.Fop)&int32(64) != 0 {
  15278. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 226
  15279. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15280. goto _35
  15281. }
  15282. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  15283. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENEXT)
  15284. /* fallthrough */
  15285. _23:
  15286. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != 0 {
  15287. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  15288. if have == uint32(0) {
  15289. goto inf_leave
  15290. }
  15291. have--
  15292. v82 = next
  15293. next++
  15294. hold += uint64(*(*uint8)(unsafe.Pointer(v82))) << bits
  15295. bits += uint32(8)
  15296. }
  15297. *(*uint32)(unsafe.Pointer(state + 92)) += uint32(hold) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  15298. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  15299. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  15300. p83 = state + 7148
  15301. *(*int32)(unsafe.Pointer(p83)) = int32(uint32(*(*int32)(unsafe.Pointer(p83))) + (*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  15302. }
  15303. (*Tinflate_state)(unsafe.Pointer(state)).Fwas = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  15304. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DIST)
  15305. /* fallthrough */
  15306. _24:
  15307. for {
  15308. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(hold)&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits-libc.Uint32FromInt32(1)))*4))
  15309. if uint32(here.Fbits) <= bits {
  15310. break
  15311. }
  15312. if have == uint32(0) {
  15313. goto inf_leave
  15314. }
  15315. have--
  15316. v85 = next
  15317. next++
  15318. hold += uint64(*(*uint8)(unsafe.Pointer(v85))) << bits
  15319. bits += uint32(8)
  15320. goto _84
  15321. _84:
  15322. }
  15323. if int32(here.Fop)&int32(0xf0) == 0 {
  15324. last = here
  15325. for {
  15326. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(last.Fval)+uint32(hold)&(uint32(1)<<(int32(last.Fbits)+int32(last.Fop))-uint32(1))>>last.Fbits)*4))
  15327. if uint32(int32(last.Fbits)+int32(here.Fbits)) <= bits {
  15328. break
  15329. }
  15330. if have == uint32(0) {
  15331. goto inf_leave
  15332. }
  15333. have--
  15334. v87 = next
  15335. next++
  15336. hold += uint64(*(*uint8)(unsafe.Pointer(v87))) << bits
  15337. bits += uint32(8)
  15338. goto _86
  15339. _86:
  15340. }
  15341. hold >>= uint64(last.Fbits)
  15342. bits -= uint32(last.Fbits)
  15343. *(*int32)(unsafe.Pointer(state + 7148)) += int32(last.Fbits)
  15344. }
  15345. hold >>= uint64(here.Fbits)
  15346. bits -= uint32(here.Fbits)
  15347. *(*int32)(unsafe.Pointer(state + 7148)) += int32(here.Fbits)
  15348. if int32(here.Fop)&int32(64) != 0 {
  15349. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 254
  15350. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15351. goto _35
  15352. }
  15353. (*Tinflate_state)(unsafe.Pointer(state)).Foffset = uint32(here.Fval)
  15354. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  15355. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DISTEXT)
  15356. /* fallthrough */
  15357. _25:
  15358. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != 0 {
  15359. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  15360. if have == uint32(0) {
  15361. goto inf_leave
  15362. }
  15363. have--
  15364. v88 = next
  15365. next++
  15366. hold += uint64(*(*uint8)(unsafe.Pointer(v88))) << bits
  15367. bits += uint32(8)
  15368. }
  15369. *(*uint32)(unsafe.Pointer(state + 96)) += uint32(hold) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  15370. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  15371. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  15372. p89 = state + 7148
  15373. *(*int32)(unsafe.Pointer(p89)) = int32(uint32(*(*int32)(unsafe.Pointer(p89))) + (*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  15374. }
  15375. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MATCH)
  15376. /* fallthrough */
  15377. _26:
  15378. if left == uint32(0) {
  15379. goto inf_leave
  15380. }
  15381. copy1 = out - left
  15382. if (*Tinflate_state)(unsafe.Pointer(state)).Foffset > copy1 { /* copy from window */
  15383. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Foffset - copy1
  15384. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwhave {
  15385. if (*Tinflate_state)(unsafe.Pointer(state)).Fsane != 0 {
  15386. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 276
  15387. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15388. goto _35
  15389. }
  15390. }
  15391. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwnext {
  15392. copy1 -= (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  15393. from = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwsize-copy1)
  15394. } else {
  15395. from = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext-copy1)
  15396. }
  15397. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Flength {
  15398. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  15399. }
  15400. } else { /* copy from output */
  15401. from = put - uintptr((*Tinflate_state)(unsafe.Pointer(state)).Foffset)
  15402. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  15403. }
  15404. if copy1 > left {
  15405. copy1 = left
  15406. }
  15407. left -= copy1
  15408. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  15409. for {
  15410. v92 = put
  15411. put++
  15412. v93 = from
  15413. from++
  15414. *(*uint8)(unsafe.Pointer(v92)) = *(*uint8)(unsafe.Pointer(v93))
  15415. goto _91
  15416. _91:
  15417. copy1--
  15418. v90 = copy1
  15419. if !(v90 != 0) {
  15420. break
  15421. }
  15422. }
  15423. if (*Tinflate_state)(unsafe.Pointer(state)).Flength == uint32(0) {
  15424. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  15425. }
  15426. goto _35
  15427. _27:
  15428. if left == uint32(0) {
  15429. goto inf_leave
  15430. }
  15431. v94 = put
  15432. put++
  15433. *(*uint8)(unsafe.Pointer(v94)) = uint8((*Tinflate_state)(unsafe.Pointer(state)).Flength)
  15434. left--
  15435. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  15436. goto _35
  15437. _28:
  15438. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 {
  15439. for bits < uint32(libc.Int32FromInt32(32)) {
  15440. if have == uint32(0) {
  15441. goto inf_leave
  15442. }
  15443. have--
  15444. v95 = next
  15445. next++
  15446. hold += uint64(*(*uint8)(unsafe.Pointer(v95))) << bits
  15447. bits += uint32(8)
  15448. }
  15449. out -= left
  15450. *(*TuLong)(unsafe.Pointer(strm + 40)) += uint64(out)
  15451. *(*uint64)(unsafe.Pointer(state + 40)) += uint64(out)
  15452. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && out != 0 {
  15453. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  15454. v97 = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, put-uintptr(out), out)
  15455. } else {
  15456. v97 = Xadler32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, put-uintptr(out), out)
  15457. }
  15458. v96 = v97
  15459. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v96
  15460. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v96
  15461. }
  15462. out = left
  15463. if v99 = (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0; v99 {
  15464. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  15465. v98 = hold
  15466. } else {
  15467. v98 = hold>>int32(24)&uint64(0xff) + hold>>int32(8)&uint64(0xff00) + hold&uint64(0xff00)<<int32(8) + hold&uint64(0xff)<<int32(24)
  15468. }
  15469. }
  15470. if v99 && v98 != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck {
  15471. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 421
  15472. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15473. goto _35
  15474. }
  15475. hold = uint64(0)
  15476. bits = uint32(0)
  15477. }
  15478. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENGTH)
  15479. /* fallthrough */
  15480. _29:
  15481. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  15482. for bits < uint32(libc.Int32FromInt32(32)) {
  15483. if have == uint32(0) {
  15484. goto inf_leave
  15485. }
  15486. have--
  15487. v100 = next
  15488. next++
  15489. hold += uint64(*(*uint8)(unsafe.Pointer(v100))) << bits
  15490. bits += uint32(8)
  15491. }
  15492. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && hold != (*Tinflate_state)(unsafe.Pointer(state)).Ftotal&uint64(0xffffffff) {
  15493. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 442
  15494. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15495. goto _35
  15496. }
  15497. hold = uint64(0)
  15498. bits = uint32(0)
  15499. }
  15500. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DONE)
  15501. /* fallthrough */
  15502. _30:
  15503. ret = int32(m_Z_STREAM_END)
  15504. goto inf_leave
  15505. _31:
  15506. ret = -int32(3)
  15507. goto inf_leave
  15508. _32:
  15509. return -int32(4)
  15510. _34:
  15511. /* fallthrough */
  15512. _33:
  15513. return -int32(2)
  15514. _35:
  15515. goto _1
  15516. _1:
  15517. }
  15518. /*
  15519. Return from inflate(), updating the total counts and the check value.
  15520. If there was no progress during the inflate() call, return a buffer
  15521. error. Call updatewindow() to create and/or update the window state.
  15522. Note: a memory error from inflate() is non-recoverable.
  15523. */
  15524. inf_leave:
  15525. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  15526. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  15527. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  15528. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  15529. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  15530. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  15531. if (*Tinflate_state)(unsafe.Pointer(state)).Fwsize != 0 || out != (*Tz_stream)(unsafe.Pointer(strm)).Favail_out && (*Tinflate_state)(unsafe.Pointer(state)).Fmode < int32(_BAD) && ((*Tinflate_state)(unsafe.Pointer(state)).Fmode < int32(_CHECK) || flush != int32(m_Z_FINISH)) {
  15532. if _updatewindow(tls, strm, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out, out-(*Tz_stream)(unsafe.Pointer(strm)).Favail_out) != 0 {
  15533. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MEM)
  15534. return -int32(4)
  15535. }
  15536. }
  15537. in -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  15538. out -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  15539. *(*TuLong)(unsafe.Pointer(strm + 16)) += uint64(in)
  15540. *(*TuLong)(unsafe.Pointer(strm + 40)) += uint64(out)
  15541. *(*uint64)(unsafe.Pointer(state + 40)) += uint64(out)
  15542. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && out != 0 {
  15543. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  15544. v102 = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out-uintptr(out), out)
  15545. } else {
  15546. v102 = Xadler32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out-uintptr(out), out)
  15547. }
  15548. v101 = v102
  15549. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v101
  15550. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v101
  15551. }
  15552. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  15553. v103 = int32(64)
  15554. } else {
  15555. v103 = 0
  15556. }
  15557. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  15558. v104 = int32(128)
  15559. } else {
  15560. v104 = 0
  15561. }
  15562. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_LEN_) || (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_COPY_) {
  15563. v105 = int32(256)
  15564. } else {
  15565. v105 = 0
  15566. }
  15567. (*Tz_stream)(unsafe.Pointer(strm)).Fdata_type = int32((*Tinflate_state)(unsafe.Pointer(state)).Fbits) + v103 + v104 + v105
  15568. if (in == uint32(0) && out == uint32(0) || flush == int32(m_Z_FINISH)) && ret == m_Z_OK {
  15569. ret = -int32(5)
  15570. }
  15571. return ret
  15572. }
  15573. var _order1 = [19]uint16{
  15574. 0: uint16(16),
  15575. 1: uint16(17),
  15576. 2: uint16(18),
  15577. 4: uint16(8),
  15578. 5: uint16(7),
  15579. 6: uint16(9),
  15580. 7: uint16(6),
  15581. 8: uint16(10),
  15582. 9: uint16(5),
  15583. 10: uint16(11),
  15584. 11: uint16(4),
  15585. 12: uint16(12),
  15586. 13: uint16(3),
  15587. 14: uint16(13),
  15588. 15: uint16(2),
  15589. 16: uint16(14),
  15590. 17: uint16(1),
  15591. 18: uint16(15),
  15592. }
  15593. func XinflateEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  15594. var state uintptr
  15595. _ = state
  15596. if _inflateStateCheck(tls, strm) != 0 {
  15597. return -int32(2)
  15598. }
  15599. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  15600. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) {
  15601. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow)
  15602. }
  15603. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tz_stream)(unsafe.Pointer(strm)).Fstate)
  15604. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  15605. return m_Z_OK
  15606. }
  15607. func XinflateGetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength uintptr) (r int32) {
  15608. var state uintptr
  15609. _ = state
  15610. /* check state */
  15611. if _inflateStateCheck(tls, strm) != 0 {
  15612. return -int32(2)
  15613. }
  15614. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  15615. /* copy dictionary */
  15616. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave != 0 && dictionary != uintptr(m_Z_NULL) {
  15617. libc.Xmemcpy(tls, dictionary, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), uint64((*Tinflate_state)(unsafe.Pointer(state)).Fwhave-(*Tinflate_state)(unsafe.Pointer(state)).Fwnext))
  15618. libc.Xmemcpy(tls, dictionary+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwhave)-uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, uint64((*Tinflate_state)(unsafe.Pointer(state)).Fwnext))
  15619. }
  15620. if dictLength != uintptr(m_Z_NULL) {
  15621. *(*TuInt)(unsafe.Pointer(dictLength)) = (*Tinflate_state)(unsafe.Pointer(state)).Fwhave
  15622. }
  15623. return m_Z_OK
  15624. }
  15625. func XinflateSetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength TuInt) (r int32) {
  15626. var dictid uint64
  15627. var ret int32
  15628. var state uintptr
  15629. _, _, _ = dictid, ret, state
  15630. /* check state */
  15631. if _inflateStateCheck(tls, strm) != 0 {
  15632. return -int32(2)
  15633. }
  15634. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  15635. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fmode != int32(_DICT) {
  15636. return -int32(2)
  15637. }
  15638. /* check for correct dictionary identifier */
  15639. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_DICT) {
  15640. dictid = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  15641. dictid = Xadler32(tls, dictid, dictionary, dictLength)
  15642. if dictid != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck {
  15643. return -int32(3)
  15644. }
  15645. }
  15646. /* copy dictionary to window using updatewindow(), which will amend the
  15647. existing dictionary if appropriate */
  15648. ret = _updatewindow(tls, strm, dictionary+uintptr(dictLength), dictLength)
  15649. if ret != 0 {
  15650. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MEM)
  15651. return -int32(4)
  15652. }
  15653. (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict = int32(1)
  15654. return m_Z_OK
  15655. }
  15656. func XinflateGetHeader(tls *libc.TLS, strm Tz_streamp, head Tgz_headerp) (r int32) {
  15657. var state uintptr
  15658. _ = state
  15659. /* check state */
  15660. if _inflateStateCheck(tls, strm) != 0 {
  15661. return -int32(2)
  15662. }
  15663. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  15664. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(2) == 0 {
  15665. return -int32(2)
  15666. }
  15667. /* save header structure */
  15668. (*Tinflate_state)(unsafe.Pointer(state)).Fhead = head
  15669. (*Tgz_header)(unsafe.Pointer(head)).Fdone = 0
  15670. return m_Z_OK
  15671. }
  15672. // C documentation
  15673. //
  15674. // /*
  15675. // Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff. Return when found
  15676. // or when out of input. When called, *have is the number of pattern bytes
  15677. // found in order so far, in 0..3. On return *have is updated to the new
  15678. // state. If on return *have equals four, then the pattern was found and the
  15679. // return value is how many bytes were read including the last byte of the
  15680. // pattern. If *have is less than four, then the pattern has not been found
  15681. // yet and the return value is len. In the latter case, syncsearch() can be
  15682. // called again with more data and the *have state. *have is initialized to
  15683. // zero for the first call.
  15684. // */
  15685. func _syncsearch(tls *libc.TLS, have uintptr, buf uintptr, len1 uint32) (r uint32) {
  15686. var got, next uint32
  15687. var v1 int32
  15688. _, _, _ = got, next, v1
  15689. got = *(*uint32)(unsafe.Pointer(have))
  15690. next = uint32(0)
  15691. for next < len1 && got < uint32(4) {
  15692. if got < uint32(2) {
  15693. v1 = 0
  15694. } else {
  15695. v1 = int32(0xff)
  15696. }
  15697. if int32(*(*uint8)(unsafe.Pointer(buf + uintptr(next)))) == v1 {
  15698. got++
  15699. } else {
  15700. if *(*uint8)(unsafe.Pointer(buf + uintptr(next))) != 0 {
  15701. got = uint32(0)
  15702. } else {
  15703. got = uint32(4) - got
  15704. }
  15705. }
  15706. next++
  15707. }
  15708. *(*uint32)(unsafe.Pointer(have)) = got
  15709. return next
  15710. }
  15711. func XinflateSync(tls *libc.TLS, strm Tz_streamp) (r int32) {
  15712. bp := tls.Alloc(16)
  15713. defer tls.Free(16)
  15714. var flags int32
  15715. var in, out uint64
  15716. var len1, v1 uint32
  15717. var state uintptr
  15718. var _ /* buf at bp+0 */ [4]uint8
  15719. _, _, _, _, _, _ = flags, in, len1, out, state, v1
  15720. /* check parameters */
  15721. if _inflateStateCheck(tls, strm) != 0 {
  15722. return -int32(2)
  15723. }
  15724. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  15725. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) && (*Tinflate_state)(unsafe.Pointer(state)).Fbits < uint32(8) {
  15726. return -int32(5)
  15727. }
  15728. /* if first time, start search in bit buffer */
  15729. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode != int32(_SYNC) {
  15730. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_SYNC)
  15731. *(*uint64)(unsafe.Pointer(state + 80)) <<= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fbits & uint32(7))
  15732. *(*uint32)(unsafe.Pointer(state + 88)) -= (*Tinflate_state)(unsafe.Pointer(state)).Fbits & uint32(7)
  15733. len1 = uint32(0)
  15734. for (*Tinflate_state)(unsafe.Pointer(state)).Fbits >= uint32(8) {
  15735. v1 = len1
  15736. len1++
  15737. (*(*[4]uint8)(unsafe.Pointer(bp)))[v1] = uint8((*Tinflate_state)(unsafe.Pointer(state)).Fhold)
  15738. *(*uint64)(unsafe.Pointer(state + 80)) >>= uint64(8)
  15739. *(*uint32)(unsafe.Pointer(state + 88)) -= uint32(8)
  15740. }
  15741. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  15742. _syncsearch(tls, state+140, bp, len1)
  15743. }
  15744. /* search available input */
  15745. len1 = _syncsearch(tls, state+140, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, (*Tz_stream)(unsafe.Pointer(strm)).Favail_in)
  15746. *(*TuInt)(unsafe.Pointer(strm + 8)) -= len1
  15747. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(len1)
  15748. *(*TuLong)(unsafe.Pointer(strm + 16)) += uint64(len1)
  15749. /* return no joy or set up to restart inflate() on a new block */
  15750. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave != uint32(4) {
  15751. return -int32(3)
  15752. }
  15753. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags == -int32(1) {
  15754. (*Tinflate_state)(unsafe.Pointer(state)).Fwrap = 0
  15755. } else {
  15756. *(*int32)(unsafe.Pointer(state + 16)) &= ^libc.Int32FromInt32(4)
  15757. } /* no point in computing a check value now */
  15758. flags = (*Tinflate_state)(unsafe.Pointer(state)).Fflags
  15759. in = (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in
  15760. out = (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out
  15761. XinflateReset(tls, strm)
  15762. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = in
  15763. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = out
  15764. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = flags
  15765. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  15766. return m_Z_OK
  15767. }
  15768. // C documentation
  15769. //
  15770. // /*
  15771. // Returns true if inflate is currently at the end of a block generated by
  15772. // Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP
  15773. // implementation to provide an additional safety check. PPP uses
  15774. // Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored
  15775. // block. When decompressing, PPP checks that at the end of input packet,
  15776. // inflate is waiting for these length bytes.
  15777. // */
  15778. func XinflateSyncPoint(tls *libc.TLS, strm Tz_streamp) (r int32) {
  15779. var state uintptr
  15780. _ = state
  15781. if _inflateStateCheck(tls, strm) != 0 {
  15782. return -int32(2)
  15783. }
  15784. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  15785. return libc.BoolInt32((*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_STORED) && (*Tinflate_state)(unsafe.Pointer(state)).Fbits == uint32(0))
  15786. }
  15787. func XinflateCopy(tls *libc.TLS, dest Tz_streamp, source Tz_streamp) (r int32) {
  15788. var copy1, state, window uintptr
  15789. var wsize uint32
  15790. _, _, _, _ = copy1, state, window, wsize
  15791. /* check input */
  15792. if _inflateStateCheck(tls, source) != 0 || dest == uintptr(m_Z_NULL) {
  15793. return -int32(2)
  15794. }
  15795. state = (*Tz_stream)(unsafe.Pointer(source)).Fstate
  15796. /* allocate space */
  15797. copy1 = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(source)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(source)).Fopaque, uint32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(7160)))
  15798. if copy1 == uintptr(m_Z_NULL) {
  15799. return -int32(4)
  15800. }
  15801. window = uintptr(m_Z_NULL)
  15802. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) {
  15803. window = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(source)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(source)).Fopaque, libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fwbits, uint32(libc.Uint64FromInt64(1)))
  15804. if window == uintptr(m_Z_NULL) {
  15805. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(source)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(source)).Fopaque, copy1)
  15806. return -int32(4)
  15807. }
  15808. }
  15809. /* copy state */
  15810. libc.Xmemcpy(tls, dest, source, uint64(112))
  15811. libc.Xmemcpy(tls, copy1, state, uint64(7160))
  15812. (*Tinflate_state)(unsafe.Pointer(copy1)).Fstrm = dest
  15813. if (*Tinflate_state)(unsafe.Pointer(state)).Flencode >= state+1368 && (*Tinflate_state)(unsafe.Pointer(state)).Flencode <= state+1368+uintptr(libc.Int32FromInt32(m_ENOUGH_LENS)+libc.Int32FromInt32(m_ENOUGH_DISTS))*4-uintptr(1)*4 {
  15814. (*Tinflate_state)(unsafe.Pointer(copy1)).Flencode = copy1 + 1368 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Flencode)-t__predefined_ptrdiff_t(state+1368))/4)*4
  15815. (*Tinflate_state)(unsafe.Pointer(copy1)).Fdistcode = copy1 + 1368 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode)-t__predefined_ptrdiff_t(state+1368))/4)*4
  15816. }
  15817. (*Tinflate_state)(unsafe.Pointer(copy1)).Fnext = copy1 + 1368 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Fnext)-t__predefined_ptrdiff_t(state+1368))/4)*4
  15818. if window != uintptr(m_Z_NULL) {
  15819. wsize = uint32(1) << (*Tinflate_state)(unsafe.Pointer(state)).Fwbits
  15820. libc.Xmemcpy(tls, window, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, uint64(wsize))
  15821. }
  15822. (*Tinflate_state)(unsafe.Pointer(copy1)).Fwindow = window
  15823. (*Tz_stream)(unsafe.Pointer(dest)).Fstate = copy1
  15824. return m_Z_OK
  15825. }
  15826. func XinflateUndermine(tls *libc.TLS, strm Tz_streamp, subvert int32) (r int32) {
  15827. var state uintptr
  15828. _ = state
  15829. if _inflateStateCheck(tls, strm) != 0 {
  15830. return -int32(2)
  15831. }
  15832. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  15833. _ = subvert
  15834. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  15835. return -int32(3)
  15836. }
  15837. func XinflateValidate(tls *libc.TLS, strm Tz_streamp, check int32) (r int32) {
  15838. var state uintptr
  15839. _ = state
  15840. if _inflateStateCheck(tls, strm) != 0 {
  15841. return -int32(2)
  15842. }
  15843. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  15844. if check != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 {
  15845. *(*int32)(unsafe.Pointer(state + 16)) |= int32(4)
  15846. } else {
  15847. *(*int32)(unsafe.Pointer(state + 16)) &= ^libc.Int32FromInt32(4)
  15848. }
  15849. return m_Z_OK
  15850. }
  15851. func XinflateMark(tls *libc.TLS, strm Tz_streamp) (r int64) {
  15852. var state uintptr
  15853. var v1, v2 uint32
  15854. _, _, _ = state, v1, v2
  15855. if _inflateStateCheck(tls, strm) != 0 {
  15856. return -(libc.Int64FromInt64(1) << libc.Int32FromInt32(16))
  15857. }
  15858. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  15859. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_COPY) {
  15860. v1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  15861. } else {
  15862. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_MATCH) {
  15863. v2 = (*Tinflate_state)(unsafe.Pointer(state)).Fwas - (*Tinflate_state)(unsafe.Pointer(state)).Flength
  15864. } else {
  15865. v2 = uint32(0)
  15866. }
  15867. v1 = v2
  15868. }
  15869. return int64(uint64(int64((*Tinflate_state)(unsafe.Pointer(state)).Fback))<<libc.Int32FromInt32(16)) + int64(v1)
  15870. }
  15871. func XinflateCodesUsed(tls *libc.TLS, strm Tz_streamp) (r uint64) {
  15872. var state uintptr
  15873. _ = state
  15874. if _inflateStateCheck(tls, strm) != 0 {
  15875. return uint64(-libc.Int32FromInt32(1))
  15876. }
  15877. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  15878. return uint64((int64((*Tinflate_state)(unsafe.Pointer(state)).Fnext) - t__predefined_ptrdiff_t(state+1368)) / 4)
  15879. }
  15880. const m_MAXBITS = 15
  15881. /*
  15882. If you use the zlib library in a product, an acknowledgment is welcome
  15883. in the documentation of your product. If for some reason you cannot
  15884. include such an acknowledgment, I would appreciate that you keep this
  15885. copyright string in the executable of your product.
  15886. */
  15887. // C documentation
  15888. //
  15889. // /*
  15890. // Build a set of tables to decode the provided canonical Huffman code.
  15891. // The code lengths are lens[0..codes-1]. The result starts at *table,
  15892. // whose indices are 0..2^bits-1. work is a writable array of at least
  15893. // lens shorts, which is used as a work area. type is the type of code
  15894. // to be generated, CODES, LENS, or DISTS. On return, zero is success,
  15895. // -1 is an invalid code, and +1 means that ENOUGH isn't enough. table
  15896. // on return points to the next available entry's address. bits is the
  15897. // requested root table index bits, and on return it is the actual root
  15898. // table index bits. It will differ if the request is greater than the
  15899. // longest code or if it is less than the shortest code.
  15900. // */
  15901. func Xinflate_table(tls *libc.TLS, type1 Tcodetype, lens uintptr, codes uint32, table uintptr, bits uintptr, work uintptr) (r int32) {
  15902. bp := tls.Alloc(64)
  15903. defer tls.Free(64)
  15904. var base, extra, next, v13, v14, v17, v4, v5, v6, v7 uintptr
  15905. var curr, drop, fill, huff, incr, len1, low, mask, match, max, min, root, sym, used uint32
  15906. var here Tcode
  15907. var left int32
  15908. var v12, v16 uint16
  15909. var _ /* count at bp+0 */ [16]uint16
  15910. var _ /* offs at bp+32 */ [16]uint16
  15911. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = base, curr, drop, extra, fill, here, huff, incr, left, len1, low, mask, match, max, min, next, root, sym, used, v12, v13, v14, v16, v17, v4, v5, v6, v7 /* offsets in table for each length */
  15912. /*
  15913. Process a set of code lengths to create a canonical Huffman code. The
  15914. code lengths are lens[0..codes-1]. Each length corresponds to the
  15915. symbols 0..codes-1. The Huffman code is generated by first sorting the
  15916. symbols by length from short to long, and retaining the symbol order
  15917. for codes with equal lengths. Then the code starts with all zero bits
  15918. for the first code of the shortest length, and the codes are integer
  15919. increments for the same length, and zeros are appended as the length
  15920. increases. For the deflate format, these bits are stored backwards
  15921. from their more natural integer increment ordering, and so when the
  15922. decoding tables are built in the large loop below, the integer codes
  15923. are incremented backwards.
  15924. This routine assumes, but does not check, that all of the entries in
  15925. lens[] are in the range 0..MAXBITS. The caller must assure this.
  15926. 1..MAXBITS is interpreted as that code length. zero means that that
  15927. symbol does not occur in this code.
  15928. The codes are sorted by computing a count of codes for each length,
  15929. creating from that a table of starting indices for each length in the
  15930. sorted table, and then entering the symbols in order in the sorted
  15931. table. The sorted table is work[], with that space being provided by
  15932. the caller.
  15933. The length counts are used for other purposes as well, i.e. finding
  15934. the minimum and maximum length codes, determining if there are any
  15935. codes at all, checking for a valid set of lengths, and looking ahead
  15936. at length counts to determine sub-table sizes when building the
  15937. decoding tables.
  15938. */
  15939. /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */
  15940. len1 = uint32(0)
  15941. for {
  15942. if !(len1 <= uint32(m_MAXBITS)) {
  15943. break
  15944. }
  15945. (*(*[16]uint16)(unsafe.Pointer(bp)))[len1] = uint16(0)
  15946. goto _1
  15947. _1:
  15948. len1++
  15949. }
  15950. sym = uint32(0)
  15951. for {
  15952. if !(sym < codes) {
  15953. break
  15954. }
  15955. (*(*[16]uint16)(unsafe.Pointer(bp)))[*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2))]++
  15956. goto _2
  15957. _2:
  15958. sym++
  15959. }
  15960. /* bound code lengths, force root to be within code lengths */
  15961. root = *(*uint32)(unsafe.Pointer(bits))
  15962. max = uint32(m_MAXBITS)
  15963. for {
  15964. if !(max >= uint32(1)) {
  15965. break
  15966. }
  15967. if int32((*(*[16]uint16)(unsafe.Pointer(bp)))[max]) != 0 {
  15968. break
  15969. }
  15970. goto _3
  15971. _3:
  15972. max--
  15973. }
  15974. if root > max {
  15975. root = max
  15976. }
  15977. if max == uint32(0) { /* no symbols to code at all */
  15978. here.Fop = libc.Uint8FromInt32(64) /* invalid code marker */
  15979. here.Fbits = libc.Uint8FromInt32(1)
  15980. here.Fval = libc.Uint16FromInt32(0)
  15981. v5 = table
  15982. v4 = *(*uintptr)(unsafe.Pointer(v5))
  15983. *(*uintptr)(unsafe.Pointer(v5)) += 4
  15984. *(*Tcode)(unsafe.Pointer(v4)) = here /* make a table to force an error */
  15985. v7 = table
  15986. v6 = *(*uintptr)(unsafe.Pointer(v7))
  15987. *(*uintptr)(unsafe.Pointer(v7)) += 4
  15988. *(*Tcode)(unsafe.Pointer(v6)) = here
  15989. *(*uint32)(unsafe.Pointer(bits)) = uint32(1)
  15990. return 0 /* no symbols, but wait for decoding to report error */
  15991. }
  15992. min = uint32(1)
  15993. for {
  15994. if !(min < max) {
  15995. break
  15996. }
  15997. if int32((*(*[16]uint16)(unsafe.Pointer(bp)))[min]) != 0 {
  15998. break
  15999. }
  16000. goto _8
  16001. _8:
  16002. min++
  16003. }
  16004. if root < min {
  16005. root = min
  16006. }
  16007. /* check for an over-subscribed or incomplete set of lengths */
  16008. left = int32(1)
  16009. len1 = uint32(1)
  16010. for {
  16011. if !(len1 <= uint32(m_MAXBITS)) {
  16012. break
  16013. }
  16014. left <<= int32(1)
  16015. left -= int32((*(*[16]uint16)(unsafe.Pointer(bp)))[len1])
  16016. if left < 0 {
  16017. return -int32(1)
  16018. } /* over-subscribed */
  16019. goto _9
  16020. _9:
  16021. len1++
  16022. }
  16023. if left > 0 && (type1 == int32(_CODES) || max != uint32(1)) {
  16024. return -int32(1)
  16025. } /* incomplete set */
  16026. /* generate offsets into symbol table for each length for sorting */
  16027. (*(*[16]uint16)(unsafe.Pointer(bp + 32)))[int32(1)] = uint16(0)
  16028. len1 = uint32(1)
  16029. for {
  16030. if !(len1 < uint32(m_MAXBITS)) {
  16031. break
  16032. }
  16033. (*(*[16]uint16)(unsafe.Pointer(bp + 32)))[len1+uint32(1)] = uint16(int32((*(*[16]uint16)(unsafe.Pointer(bp + 32)))[len1]) + int32((*(*[16]uint16)(unsafe.Pointer(bp)))[len1]))
  16034. goto _10
  16035. _10:
  16036. len1++
  16037. }
  16038. /* sort symbols by length, by symbol order within each length */
  16039. sym = uint32(0)
  16040. for {
  16041. if !(sym < codes) {
  16042. break
  16043. }
  16044. if int32(*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2))) != 0 {
  16045. v13 = bp + 32 + uintptr(*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2)))*2
  16046. v12 = *(*uint16)(unsafe.Pointer(v13))
  16047. *(*uint16)(unsafe.Pointer(v13))++
  16048. *(*uint16)(unsafe.Pointer(work + uintptr(v12)*2)) = uint16(sym)
  16049. }
  16050. goto _11
  16051. _11:
  16052. sym++
  16053. }
  16054. /*
  16055. Create and fill in decoding tables. In this loop, the table being
  16056. filled is at next and has curr index bits. The code being used is huff
  16057. with length len. That code is converted to an index by dropping drop
  16058. bits off of the bottom. For codes where len is less than drop + curr,
  16059. those top drop + curr - len bits are incremented through all values to
  16060. fill the table with replicated entries.
  16061. root is the number of index bits for the root table. When len exceeds
  16062. root, sub-tables are created pointed to by the root entry with an index
  16063. of the low root bits of huff. This is saved in low to check for when a
  16064. new sub-table should be started. drop is zero when the root table is
  16065. being filled, and drop is root when sub-tables are being filled.
  16066. When a new sub-table is needed, it is necessary to look ahead in the
  16067. code lengths to determine what size sub-table is needed. The length
  16068. counts are used for this, and so count[] is decremented as codes are
  16069. entered in the tables.
  16070. used keeps track of how many table entries have been allocated from the
  16071. provided *table space. It is checked for LENS and DIST tables against
  16072. the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in
  16073. the initial root table size constants. See the comments in inftrees.h
  16074. for more information.
  16075. sym increments through all symbols, and the loop terminates when
  16076. all codes of length max, i.e. all codes, have been processed. This
  16077. routine permits incomplete codes, so another loop after this one fills
  16078. in the rest of the decoding tables with invalid code markers.
  16079. */
  16080. /* set up for code type */
  16081. switch type1 {
  16082. case int32(_CODES):
  16083. v14 = work
  16084. extra = v14
  16085. base = v14 /* dummy value--not used */
  16086. match = uint32(20)
  16087. case int32(_LENS):
  16088. base = uintptr(unsafe.Pointer(&_lbase))
  16089. extra = uintptr(unsafe.Pointer(&_lext))
  16090. match = uint32(257)
  16091. default: /* DISTS */
  16092. base = uintptr(unsafe.Pointer(&_dbase))
  16093. extra = uintptr(unsafe.Pointer(&_dext))
  16094. match = uint32(0)
  16095. }
  16096. /* initialize state for loop */
  16097. huff = uint32(0) /* starting code */
  16098. sym = uint32(0) /* starting code symbol */
  16099. len1 = min /* starting code length */
  16100. next = *(*uintptr)(unsafe.Pointer(table)) /* current table to fill in */
  16101. curr = root /* current table index bits */
  16102. drop = uint32(0) /* current bits to drop from code for index */
  16103. low = uint32(-libc.Int32FromInt32(1)) /* trigger new sub-table when len > root */
  16104. used = uint32(1) << root /* use root table entries */
  16105. mask = used - uint32(1) /* mask for comparing low */
  16106. /* check available table space */
  16107. if type1 == int32(_LENS) && used > uint32(m_ENOUGH_LENS) || type1 == int32(_DISTS) && used > uint32(m_ENOUGH_DISTS) {
  16108. return int32(1)
  16109. }
  16110. /* process all codes and make table entries */
  16111. for {
  16112. /* create table entry */
  16113. here.Fbits = uint8(len1 - drop)
  16114. if uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))+uint32(1) < match {
  16115. here.Fop = libc.Uint8FromInt32(0)
  16116. here.Fval = *(*uint16)(unsafe.Pointer(work + uintptr(sym)*2))
  16117. } else {
  16118. if uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2))) >= match {
  16119. here.Fop = uint8(*(*uint16)(unsafe.Pointer(extra + uintptr(uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))-match)*2)))
  16120. here.Fval = *(*uint16)(unsafe.Pointer(base + uintptr(uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))-match)*2))
  16121. } else {
  16122. here.Fop = uint8(libc.Int32FromInt32(32) + libc.Int32FromInt32(64)) /* end of block */
  16123. here.Fval = uint16(0)
  16124. }
  16125. }
  16126. /* replicate for those indices with low len bits equal to huff */
  16127. incr = uint32(1) << (len1 - drop)
  16128. fill = uint32(1) << curr
  16129. min = fill /* save offset to next table */
  16130. for cond := true; cond; cond = fill != uint32(0) {
  16131. fill -= incr
  16132. *(*Tcode)(unsafe.Pointer(next + uintptr(huff>>drop+fill)*4)) = here
  16133. }
  16134. /* backwards increment the len-bit code huff */
  16135. incr = uint32(1) << (len1 - uint32(1))
  16136. for huff&incr != 0 {
  16137. incr >>= uint32(1)
  16138. }
  16139. if incr != uint32(0) {
  16140. huff &= incr - uint32(1)
  16141. huff += incr
  16142. } else {
  16143. huff = uint32(0)
  16144. }
  16145. /* go to next symbol, update count, len */
  16146. sym++
  16147. v17 = bp + uintptr(len1)*2
  16148. *(*uint16)(unsafe.Pointer(v17))--
  16149. v16 = *(*uint16)(unsafe.Pointer(v17))
  16150. if int32(v16) == 0 {
  16151. if len1 == max {
  16152. break
  16153. }
  16154. len1 = uint32(*(*uint16)(unsafe.Pointer(lens + uintptr(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))*2)))
  16155. }
  16156. /* create new sub-table if needed */
  16157. if len1 > root && huff&mask != low {
  16158. /* if first time, transition to sub-tables */
  16159. if drop == uint32(0) {
  16160. drop = root
  16161. }
  16162. /* increment past last table */
  16163. next += uintptr(min) * 4 /* here min is 1 << curr */
  16164. /* determine length of next table */
  16165. curr = len1 - drop
  16166. left = libc.Int32FromInt32(1) << curr
  16167. for curr+drop < max {
  16168. left -= int32((*(*[16]uint16)(unsafe.Pointer(bp)))[curr+drop])
  16169. if left <= 0 {
  16170. break
  16171. }
  16172. curr++
  16173. left <<= int32(1)
  16174. }
  16175. /* check for enough space */
  16176. used += uint32(1) << curr
  16177. if type1 == int32(_LENS) && used > uint32(m_ENOUGH_LENS) || type1 == int32(_DISTS) && used > uint32(m_ENOUGH_DISTS) {
  16178. return int32(1)
  16179. }
  16180. /* point entry in root table to sub-table */
  16181. low = huff & mask
  16182. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fop = uint8(curr)
  16183. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fbits = uint8(root)
  16184. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fval = uint16((int64(next) - int64(*(*uintptr)(unsafe.Pointer(table)))) / 4)
  16185. }
  16186. goto _15
  16187. _15:
  16188. }
  16189. /* fill in remaining table entry if code is incomplete (guaranteed to have
  16190. at most one remaining entry, since if the code is incomplete, the
  16191. maximum code length that was allowed to get this far is one bit) */
  16192. if huff != uint32(0) {
  16193. here.Fop = libc.Uint8FromInt32(64) /* invalid code marker */
  16194. here.Fbits = uint8(len1 - drop)
  16195. here.Fval = libc.Uint16FromInt32(0)
  16196. *(*Tcode)(unsafe.Pointer(next + uintptr(huff)*4)) = here
  16197. }
  16198. /* set return parameters */
  16199. *(*uintptr)(unsafe.Pointer(table)) += uintptr(used) * 4
  16200. *(*uint32)(unsafe.Pointer(bits)) = root
  16201. return 0
  16202. }
  16203. var _lbase = [31]uint16{
  16204. 0: uint16(3),
  16205. 1: uint16(4),
  16206. 2: uint16(5),
  16207. 3: uint16(6),
  16208. 4: uint16(7),
  16209. 5: uint16(8),
  16210. 6: uint16(9),
  16211. 7: uint16(10),
  16212. 8: uint16(11),
  16213. 9: uint16(13),
  16214. 10: uint16(15),
  16215. 11: uint16(17),
  16216. 12: uint16(19),
  16217. 13: uint16(23),
  16218. 14: uint16(27),
  16219. 15: uint16(31),
  16220. 16: uint16(35),
  16221. 17: uint16(43),
  16222. 18: uint16(51),
  16223. 19: uint16(59),
  16224. 20: uint16(67),
  16225. 21: uint16(83),
  16226. 22: uint16(99),
  16227. 23: uint16(115),
  16228. 24: uint16(131),
  16229. 25: uint16(163),
  16230. 26: uint16(195),
  16231. 27: uint16(227),
  16232. 28: uint16(258),
  16233. }
  16234. var _lext = [31]uint16{
  16235. 0: uint16(16),
  16236. 1: uint16(16),
  16237. 2: uint16(16),
  16238. 3: uint16(16),
  16239. 4: uint16(16),
  16240. 5: uint16(16),
  16241. 6: uint16(16),
  16242. 7: uint16(16),
  16243. 8: uint16(17),
  16244. 9: uint16(17),
  16245. 10: uint16(17),
  16246. 11: uint16(17),
  16247. 12: uint16(18),
  16248. 13: uint16(18),
  16249. 14: uint16(18),
  16250. 15: uint16(18),
  16251. 16: uint16(19),
  16252. 17: uint16(19),
  16253. 18: uint16(19),
  16254. 19: uint16(19),
  16255. 20: uint16(20),
  16256. 21: uint16(20),
  16257. 22: uint16(20),
  16258. 23: uint16(20),
  16259. 24: uint16(21),
  16260. 25: uint16(21),
  16261. 26: uint16(21),
  16262. 27: uint16(21),
  16263. 28: uint16(16),
  16264. 29: uint16(198),
  16265. 30: uint16(203),
  16266. }
  16267. var _dbase = [32]uint16{
  16268. 0: uint16(1),
  16269. 1: uint16(2),
  16270. 2: uint16(3),
  16271. 3: uint16(4),
  16272. 4: uint16(5),
  16273. 5: uint16(7),
  16274. 6: uint16(9),
  16275. 7: uint16(13),
  16276. 8: uint16(17),
  16277. 9: uint16(25),
  16278. 10: uint16(33),
  16279. 11: uint16(49),
  16280. 12: uint16(65),
  16281. 13: uint16(97),
  16282. 14: uint16(129),
  16283. 15: uint16(193),
  16284. 16: uint16(257),
  16285. 17: uint16(385),
  16286. 18: uint16(513),
  16287. 19: uint16(769),
  16288. 20: uint16(1025),
  16289. 21: uint16(1537),
  16290. 22: uint16(2049),
  16291. 23: uint16(3073),
  16292. 24: uint16(4097),
  16293. 25: uint16(6145),
  16294. 26: uint16(8193),
  16295. 27: uint16(12289),
  16296. 28: uint16(16385),
  16297. 29: uint16(24577),
  16298. }
  16299. var _dext = [32]uint16{
  16300. 0: uint16(16),
  16301. 1: uint16(16),
  16302. 2: uint16(16),
  16303. 3: uint16(16),
  16304. 4: uint16(17),
  16305. 5: uint16(17),
  16306. 6: uint16(18),
  16307. 7: uint16(18),
  16308. 8: uint16(19),
  16309. 9: uint16(19),
  16310. 10: uint16(20),
  16311. 11: uint16(20),
  16312. 12: uint16(21),
  16313. 13: uint16(21),
  16314. 14: uint16(22),
  16315. 15: uint16(22),
  16316. 16: uint16(23),
  16317. 17: uint16(23),
  16318. 18: uint16(24),
  16319. 19: uint16(24),
  16320. 20: uint16(25),
  16321. 21: uint16(25),
  16322. 22: uint16(26),
  16323. 23: uint16(26),
  16324. 24: uint16(27),
  16325. 25: uint16(27),
  16326. 26: uint16(28),
  16327. 27: uint16(28),
  16328. 28: uint16(29),
  16329. 29: uint16(29),
  16330. 30: uint16(64),
  16331. 31: uint16(64),
  16332. }
  16333. const m_DIST_CODE_LEN = 512
  16334. const m_DYN_TREES = 2
  16335. const m_END_BLOCK = 256
  16336. const m_MAX_BL_BITS = 7
  16337. const m_REPZ_11_138 = 18
  16338. const m_REPZ_3_10 = 17
  16339. const m_REP_3_6 = 16
  16340. const m_SMALLEST = 1
  16341. const m_STATIC_TREES = 1
  16342. const m_STORED_BLOCK = 0
  16343. const m_Z_BINARY = 0
  16344. const m_Z_TEXT = 1
  16345. type Tstatic_tree_desc = struct {
  16346. Fstatic_tree uintptr
  16347. Fextra_bits uintptr
  16348. Fextra_base int32
  16349. Felems int32
  16350. Fmax_length int32
  16351. }
  16352. type Tstatic_tree_desc_s = Tstatic_tree_desc
  16353. /* ===========================================================================
  16354. * Constants
  16355. */
  16356. /* Bit length codes must not exceed MAX_BL_BITS bits */
  16357. /* end of block literal code */
  16358. /* repeat previous bit length 3-6 times (2 bits of repeat count) */
  16359. /* repeat a zero length 3-10 times (3 bits of repeat count) */
  16360. /* repeat a zero length 11-138 times (7 bits of repeat count) */
  16361. var _extra_lbits = [29]int32{
  16362. 8: int32(1),
  16363. 9: int32(1),
  16364. 10: int32(1),
  16365. 11: int32(1),
  16366. 12: int32(2),
  16367. 13: int32(2),
  16368. 14: int32(2),
  16369. 15: int32(2),
  16370. 16: int32(3),
  16371. 17: int32(3),
  16372. 18: int32(3),
  16373. 19: int32(3),
  16374. 20: int32(4),
  16375. 21: int32(4),
  16376. 22: int32(4),
  16377. 23: int32(4),
  16378. 24: int32(5),
  16379. 25: int32(5),
  16380. 26: int32(5),
  16381. 27: int32(5),
  16382. }
  16383. var _extra_dbits = [30]int32{
  16384. 4: int32(1),
  16385. 5: int32(1),
  16386. 6: int32(2),
  16387. 7: int32(2),
  16388. 8: int32(3),
  16389. 9: int32(3),
  16390. 10: int32(4),
  16391. 11: int32(4),
  16392. 12: int32(5),
  16393. 13: int32(5),
  16394. 14: int32(6),
  16395. 15: int32(6),
  16396. 16: int32(7),
  16397. 17: int32(7),
  16398. 18: int32(8),
  16399. 19: int32(8),
  16400. 20: int32(9),
  16401. 21: int32(9),
  16402. 22: int32(10),
  16403. 23: int32(10),
  16404. 24: int32(11),
  16405. 25: int32(11),
  16406. 26: int32(12),
  16407. 27: int32(12),
  16408. 28: int32(13),
  16409. 29: int32(13),
  16410. }
  16411. var _extra_blbits = [19]int32{
  16412. 16: int32(2),
  16413. 17: int32(3),
  16414. 18: int32(7),
  16415. }
  16416. var _bl_order = [19]Tuch{
  16417. 0: uint8(16),
  16418. 1: uint8(17),
  16419. 2: uint8(18),
  16420. 4: uint8(8),
  16421. 5: uint8(7),
  16422. 6: uint8(9),
  16423. 7: uint8(6),
  16424. 8: uint8(10),
  16425. 9: uint8(5),
  16426. 10: uint8(11),
  16427. 11: uint8(4),
  16428. 12: uint8(12),
  16429. 13: uint8(3),
  16430. 14: uint8(13),
  16431. 15: uint8(2),
  16432. 16: uint8(14),
  16433. 17: uint8(1),
  16434. 18: uint8(15),
  16435. }
  16436. var _static_ltree = [288]Tct_data{
  16437. 0: {
  16438. Ffc: *(*struct {
  16439. Fcode [0]Tush
  16440. Ffreq Tush
  16441. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(12)})),
  16442. Fdl: *(*struct {
  16443. Flen1 [0]Tush
  16444. Fdad Tush
  16445. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16446. },
  16447. 1: {
  16448. Ffc: *(*struct {
  16449. Fcode [0]Tush
  16450. Ffreq Tush
  16451. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(140)})),
  16452. Fdl: *(*struct {
  16453. Flen1 [0]Tush
  16454. Fdad Tush
  16455. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16456. },
  16457. 2: {
  16458. Ffc: *(*struct {
  16459. Fcode [0]Tush
  16460. Ffreq Tush
  16461. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(76)})),
  16462. Fdl: *(*struct {
  16463. Flen1 [0]Tush
  16464. Fdad Tush
  16465. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16466. },
  16467. 3: {
  16468. Ffc: *(*struct {
  16469. Fcode [0]Tush
  16470. Ffreq Tush
  16471. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(204)})),
  16472. Fdl: *(*struct {
  16473. Flen1 [0]Tush
  16474. Fdad Tush
  16475. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16476. },
  16477. 4: {
  16478. Ffc: *(*struct {
  16479. Fcode [0]Tush
  16480. Ffreq Tush
  16481. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(44)})),
  16482. Fdl: *(*struct {
  16483. Flen1 [0]Tush
  16484. Fdad Tush
  16485. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16486. },
  16487. 5: {
  16488. Ffc: *(*struct {
  16489. Fcode [0]Tush
  16490. Ffreq Tush
  16491. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(172)})),
  16492. Fdl: *(*struct {
  16493. Flen1 [0]Tush
  16494. Fdad Tush
  16495. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16496. },
  16497. 6: {
  16498. Ffc: *(*struct {
  16499. Fcode [0]Tush
  16500. Ffreq Tush
  16501. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(108)})),
  16502. Fdl: *(*struct {
  16503. Flen1 [0]Tush
  16504. Fdad Tush
  16505. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16506. },
  16507. 7: {
  16508. Ffc: *(*struct {
  16509. Fcode [0]Tush
  16510. Ffreq Tush
  16511. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(236)})),
  16512. Fdl: *(*struct {
  16513. Flen1 [0]Tush
  16514. Fdad Tush
  16515. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16516. },
  16517. 8: {
  16518. Ffc: *(*struct {
  16519. Fcode [0]Tush
  16520. Ffreq Tush
  16521. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(28)})),
  16522. Fdl: *(*struct {
  16523. Flen1 [0]Tush
  16524. Fdad Tush
  16525. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16526. },
  16527. 9: {
  16528. Ffc: *(*struct {
  16529. Fcode [0]Tush
  16530. Ffreq Tush
  16531. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(156)})),
  16532. Fdl: *(*struct {
  16533. Flen1 [0]Tush
  16534. Fdad Tush
  16535. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16536. },
  16537. 10: {
  16538. Ffc: *(*struct {
  16539. Fcode [0]Tush
  16540. Ffreq Tush
  16541. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(92)})),
  16542. Fdl: *(*struct {
  16543. Flen1 [0]Tush
  16544. Fdad Tush
  16545. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16546. },
  16547. 11: {
  16548. Ffc: *(*struct {
  16549. Fcode [0]Tush
  16550. Ffreq Tush
  16551. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(220)})),
  16552. Fdl: *(*struct {
  16553. Flen1 [0]Tush
  16554. Fdad Tush
  16555. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16556. },
  16557. 12: {
  16558. Ffc: *(*struct {
  16559. Fcode [0]Tush
  16560. Ffreq Tush
  16561. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(60)})),
  16562. Fdl: *(*struct {
  16563. Flen1 [0]Tush
  16564. Fdad Tush
  16565. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16566. },
  16567. 13: {
  16568. Ffc: *(*struct {
  16569. Fcode [0]Tush
  16570. Ffreq Tush
  16571. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(188)})),
  16572. Fdl: *(*struct {
  16573. Flen1 [0]Tush
  16574. Fdad Tush
  16575. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16576. },
  16577. 14: {
  16578. Ffc: *(*struct {
  16579. Fcode [0]Tush
  16580. Ffreq Tush
  16581. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(124)})),
  16582. Fdl: *(*struct {
  16583. Flen1 [0]Tush
  16584. Fdad Tush
  16585. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16586. },
  16587. 15: {
  16588. Ffc: *(*struct {
  16589. Fcode [0]Tush
  16590. Ffreq Tush
  16591. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(252)})),
  16592. Fdl: *(*struct {
  16593. Flen1 [0]Tush
  16594. Fdad Tush
  16595. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16596. },
  16597. 16: {
  16598. Ffc: *(*struct {
  16599. Fcode [0]Tush
  16600. Ffreq Tush
  16601. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(2)})),
  16602. Fdl: *(*struct {
  16603. Flen1 [0]Tush
  16604. Fdad Tush
  16605. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16606. },
  16607. 17: {
  16608. Ffc: *(*struct {
  16609. Fcode [0]Tush
  16610. Ffreq Tush
  16611. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(130)})),
  16612. Fdl: *(*struct {
  16613. Flen1 [0]Tush
  16614. Fdad Tush
  16615. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16616. },
  16617. 18: {
  16618. Ffc: *(*struct {
  16619. Fcode [0]Tush
  16620. Ffreq Tush
  16621. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(66)})),
  16622. Fdl: *(*struct {
  16623. Flen1 [0]Tush
  16624. Fdad Tush
  16625. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16626. },
  16627. 19: {
  16628. Ffc: *(*struct {
  16629. Fcode [0]Tush
  16630. Ffreq Tush
  16631. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(194)})),
  16632. Fdl: *(*struct {
  16633. Flen1 [0]Tush
  16634. Fdad Tush
  16635. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16636. },
  16637. 20: {
  16638. Ffc: *(*struct {
  16639. Fcode [0]Tush
  16640. Ffreq Tush
  16641. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(34)})),
  16642. Fdl: *(*struct {
  16643. Flen1 [0]Tush
  16644. Fdad Tush
  16645. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16646. },
  16647. 21: {
  16648. Ffc: *(*struct {
  16649. Fcode [0]Tush
  16650. Ffreq Tush
  16651. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(162)})),
  16652. Fdl: *(*struct {
  16653. Flen1 [0]Tush
  16654. Fdad Tush
  16655. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16656. },
  16657. 22: {
  16658. Ffc: *(*struct {
  16659. Fcode [0]Tush
  16660. Ffreq Tush
  16661. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(98)})),
  16662. Fdl: *(*struct {
  16663. Flen1 [0]Tush
  16664. Fdad Tush
  16665. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16666. },
  16667. 23: {
  16668. Ffc: *(*struct {
  16669. Fcode [0]Tush
  16670. Ffreq Tush
  16671. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(226)})),
  16672. Fdl: *(*struct {
  16673. Flen1 [0]Tush
  16674. Fdad Tush
  16675. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16676. },
  16677. 24: {
  16678. Ffc: *(*struct {
  16679. Fcode [0]Tush
  16680. Ffreq Tush
  16681. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(18)})),
  16682. Fdl: *(*struct {
  16683. Flen1 [0]Tush
  16684. Fdad Tush
  16685. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16686. },
  16687. 25: {
  16688. Ffc: *(*struct {
  16689. Fcode [0]Tush
  16690. Ffreq Tush
  16691. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(146)})),
  16692. Fdl: *(*struct {
  16693. Flen1 [0]Tush
  16694. Fdad Tush
  16695. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16696. },
  16697. 26: {
  16698. Ffc: *(*struct {
  16699. Fcode [0]Tush
  16700. Ffreq Tush
  16701. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(82)})),
  16702. Fdl: *(*struct {
  16703. Flen1 [0]Tush
  16704. Fdad Tush
  16705. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16706. },
  16707. 27: {
  16708. Ffc: *(*struct {
  16709. Fcode [0]Tush
  16710. Ffreq Tush
  16711. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(210)})),
  16712. Fdl: *(*struct {
  16713. Flen1 [0]Tush
  16714. Fdad Tush
  16715. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16716. },
  16717. 28: {
  16718. Ffc: *(*struct {
  16719. Fcode [0]Tush
  16720. Ffreq Tush
  16721. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(50)})),
  16722. Fdl: *(*struct {
  16723. Flen1 [0]Tush
  16724. Fdad Tush
  16725. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16726. },
  16727. 29: {
  16728. Ffc: *(*struct {
  16729. Fcode [0]Tush
  16730. Ffreq Tush
  16731. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(178)})),
  16732. Fdl: *(*struct {
  16733. Flen1 [0]Tush
  16734. Fdad Tush
  16735. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16736. },
  16737. 30: {
  16738. Ffc: *(*struct {
  16739. Fcode [0]Tush
  16740. Ffreq Tush
  16741. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(114)})),
  16742. Fdl: *(*struct {
  16743. Flen1 [0]Tush
  16744. Fdad Tush
  16745. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16746. },
  16747. 31: {
  16748. Ffc: *(*struct {
  16749. Fcode [0]Tush
  16750. Ffreq Tush
  16751. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(242)})),
  16752. Fdl: *(*struct {
  16753. Flen1 [0]Tush
  16754. Fdad Tush
  16755. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16756. },
  16757. 32: {
  16758. Ffc: *(*struct {
  16759. Fcode [0]Tush
  16760. Ffreq Tush
  16761. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(10)})),
  16762. Fdl: *(*struct {
  16763. Flen1 [0]Tush
  16764. Fdad Tush
  16765. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16766. },
  16767. 33: {
  16768. Ffc: *(*struct {
  16769. Fcode [0]Tush
  16770. Ffreq Tush
  16771. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(138)})),
  16772. Fdl: *(*struct {
  16773. Flen1 [0]Tush
  16774. Fdad Tush
  16775. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16776. },
  16777. 34: {
  16778. Ffc: *(*struct {
  16779. Fcode [0]Tush
  16780. Ffreq Tush
  16781. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(74)})),
  16782. Fdl: *(*struct {
  16783. Flen1 [0]Tush
  16784. Fdad Tush
  16785. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16786. },
  16787. 35: {
  16788. Ffc: *(*struct {
  16789. Fcode [0]Tush
  16790. Ffreq Tush
  16791. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(202)})),
  16792. Fdl: *(*struct {
  16793. Flen1 [0]Tush
  16794. Fdad Tush
  16795. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16796. },
  16797. 36: {
  16798. Ffc: *(*struct {
  16799. Fcode [0]Tush
  16800. Ffreq Tush
  16801. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(42)})),
  16802. Fdl: *(*struct {
  16803. Flen1 [0]Tush
  16804. Fdad Tush
  16805. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16806. },
  16807. 37: {
  16808. Ffc: *(*struct {
  16809. Fcode [0]Tush
  16810. Ffreq Tush
  16811. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(170)})),
  16812. Fdl: *(*struct {
  16813. Flen1 [0]Tush
  16814. Fdad Tush
  16815. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16816. },
  16817. 38: {
  16818. Ffc: *(*struct {
  16819. Fcode [0]Tush
  16820. Ffreq Tush
  16821. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(106)})),
  16822. Fdl: *(*struct {
  16823. Flen1 [0]Tush
  16824. Fdad Tush
  16825. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16826. },
  16827. 39: {
  16828. Ffc: *(*struct {
  16829. Fcode [0]Tush
  16830. Ffreq Tush
  16831. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(234)})),
  16832. Fdl: *(*struct {
  16833. Flen1 [0]Tush
  16834. Fdad Tush
  16835. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16836. },
  16837. 40: {
  16838. Ffc: *(*struct {
  16839. Fcode [0]Tush
  16840. Ffreq Tush
  16841. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(26)})),
  16842. Fdl: *(*struct {
  16843. Flen1 [0]Tush
  16844. Fdad Tush
  16845. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16846. },
  16847. 41: {
  16848. Ffc: *(*struct {
  16849. Fcode [0]Tush
  16850. Ffreq Tush
  16851. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(154)})),
  16852. Fdl: *(*struct {
  16853. Flen1 [0]Tush
  16854. Fdad Tush
  16855. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16856. },
  16857. 42: {
  16858. Ffc: *(*struct {
  16859. Fcode [0]Tush
  16860. Ffreq Tush
  16861. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(90)})),
  16862. Fdl: *(*struct {
  16863. Flen1 [0]Tush
  16864. Fdad Tush
  16865. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16866. },
  16867. 43: {
  16868. Ffc: *(*struct {
  16869. Fcode [0]Tush
  16870. Ffreq Tush
  16871. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(218)})),
  16872. Fdl: *(*struct {
  16873. Flen1 [0]Tush
  16874. Fdad Tush
  16875. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16876. },
  16877. 44: {
  16878. Ffc: *(*struct {
  16879. Fcode [0]Tush
  16880. Ffreq Tush
  16881. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(58)})),
  16882. Fdl: *(*struct {
  16883. Flen1 [0]Tush
  16884. Fdad Tush
  16885. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16886. },
  16887. 45: {
  16888. Ffc: *(*struct {
  16889. Fcode [0]Tush
  16890. Ffreq Tush
  16891. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(186)})),
  16892. Fdl: *(*struct {
  16893. Flen1 [0]Tush
  16894. Fdad Tush
  16895. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16896. },
  16897. 46: {
  16898. Ffc: *(*struct {
  16899. Fcode [0]Tush
  16900. Ffreq Tush
  16901. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(122)})),
  16902. Fdl: *(*struct {
  16903. Flen1 [0]Tush
  16904. Fdad Tush
  16905. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16906. },
  16907. 47: {
  16908. Ffc: *(*struct {
  16909. Fcode [0]Tush
  16910. Ffreq Tush
  16911. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(250)})),
  16912. Fdl: *(*struct {
  16913. Flen1 [0]Tush
  16914. Fdad Tush
  16915. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16916. },
  16917. 48: {
  16918. Ffc: *(*struct {
  16919. Fcode [0]Tush
  16920. Ffreq Tush
  16921. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(6)})),
  16922. Fdl: *(*struct {
  16923. Flen1 [0]Tush
  16924. Fdad Tush
  16925. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16926. },
  16927. 49: {
  16928. Ffc: *(*struct {
  16929. Fcode [0]Tush
  16930. Ffreq Tush
  16931. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(134)})),
  16932. Fdl: *(*struct {
  16933. Flen1 [0]Tush
  16934. Fdad Tush
  16935. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16936. },
  16937. 50: {
  16938. Ffc: *(*struct {
  16939. Fcode [0]Tush
  16940. Ffreq Tush
  16941. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(70)})),
  16942. Fdl: *(*struct {
  16943. Flen1 [0]Tush
  16944. Fdad Tush
  16945. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16946. },
  16947. 51: {
  16948. Ffc: *(*struct {
  16949. Fcode [0]Tush
  16950. Ffreq Tush
  16951. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(198)})),
  16952. Fdl: *(*struct {
  16953. Flen1 [0]Tush
  16954. Fdad Tush
  16955. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16956. },
  16957. 52: {
  16958. Ffc: *(*struct {
  16959. Fcode [0]Tush
  16960. Ffreq Tush
  16961. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(38)})),
  16962. Fdl: *(*struct {
  16963. Flen1 [0]Tush
  16964. Fdad Tush
  16965. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16966. },
  16967. 53: {
  16968. Ffc: *(*struct {
  16969. Fcode [0]Tush
  16970. Ffreq Tush
  16971. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(166)})),
  16972. Fdl: *(*struct {
  16973. Flen1 [0]Tush
  16974. Fdad Tush
  16975. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16976. },
  16977. 54: {
  16978. Ffc: *(*struct {
  16979. Fcode [0]Tush
  16980. Ffreq Tush
  16981. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(102)})),
  16982. Fdl: *(*struct {
  16983. Flen1 [0]Tush
  16984. Fdad Tush
  16985. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16986. },
  16987. 55: {
  16988. Ffc: *(*struct {
  16989. Fcode [0]Tush
  16990. Ffreq Tush
  16991. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(230)})),
  16992. Fdl: *(*struct {
  16993. Flen1 [0]Tush
  16994. Fdad Tush
  16995. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16996. },
  16997. 56: {
  16998. Ffc: *(*struct {
  16999. Fcode [0]Tush
  17000. Ffreq Tush
  17001. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(22)})),
  17002. Fdl: *(*struct {
  17003. Flen1 [0]Tush
  17004. Fdad Tush
  17005. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17006. },
  17007. 57: {
  17008. Ffc: *(*struct {
  17009. Fcode [0]Tush
  17010. Ffreq Tush
  17011. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(150)})),
  17012. Fdl: *(*struct {
  17013. Flen1 [0]Tush
  17014. Fdad Tush
  17015. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17016. },
  17017. 58: {
  17018. Ffc: *(*struct {
  17019. Fcode [0]Tush
  17020. Ffreq Tush
  17021. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(86)})),
  17022. Fdl: *(*struct {
  17023. Flen1 [0]Tush
  17024. Fdad Tush
  17025. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17026. },
  17027. 59: {
  17028. Ffc: *(*struct {
  17029. Fcode [0]Tush
  17030. Ffreq Tush
  17031. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(214)})),
  17032. Fdl: *(*struct {
  17033. Flen1 [0]Tush
  17034. Fdad Tush
  17035. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17036. },
  17037. 60: {
  17038. Ffc: *(*struct {
  17039. Fcode [0]Tush
  17040. Ffreq Tush
  17041. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(54)})),
  17042. Fdl: *(*struct {
  17043. Flen1 [0]Tush
  17044. Fdad Tush
  17045. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17046. },
  17047. 61: {
  17048. Ffc: *(*struct {
  17049. Fcode [0]Tush
  17050. Ffreq Tush
  17051. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(182)})),
  17052. Fdl: *(*struct {
  17053. Flen1 [0]Tush
  17054. Fdad Tush
  17055. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17056. },
  17057. 62: {
  17058. Ffc: *(*struct {
  17059. Fcode [0]Tush
  17060. Ffreq Tush
  17061. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(118)})),
  17062. Fdl: *(*struct {
  17063. Flen1 [0]Tush
  17064. Fdad Tush
  17065. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17066. },
  17067. 63: {
  17068. Ffc: *(*struct {
  17069. Fcode [0]Tush
  17070. Ffreq Tush
  17071. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(246)})),
  17072. Fdl: *(*struct {
  17073. Flen1 [0]Tush
  17074. Fdad Tush
  17075. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17076. },
  17077. 64: {
  17078. Ffc: *(*struct {
  17079. Fcode [0]Tush
  17080. Ffreq Tush
  17081. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(14)})),
  17082. Fdl: *(*struct {
  17083. Flen1 [0]Tush
  17084. Fdad Tush
  17085. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17086. },
  17087. 65: {
  17088. Ffc: *(*struct {
  17089. Fcode [0]Tush
  17090. Ffreq Tush
  17091. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(142)})),
  17092. Fdl: *(*struct {
  17093. Flen1 [0]Tush
  17094. Fdad Tush
  17095. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17096. },
  17097. 66: {
  17098. Ffc: *(*struct {
  17099. Fcode [0]Tush
  17100. Ffreq Tush
  17101. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(78)})),
  17102. Fdl: *(*struct {
  17103. Flen1 [0]Tush
  17104. Fdad Tush
  17105. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17106. },
  17107. 67: {
  17108. Ffc: *(*struct {
  17109. Fcode [0]Tush
  17110. Ffreq Tush
  17111. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(206)})),
  17112. Fdl: *(*struct {
  17113. Flen1 [0]Tush
  17114. Fdad Tush
  17115. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17116. },
  17117. 68: {
  17118. Ffc: *(*struct {
  17119. Fcode [0]Tush
  17120. Ffreq Tush
  17121. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(46)})),
  17122. Fdl: *(*struct {
  17123. Flen1 [0]Tush
  17124. Fdad Tush
  17125. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17126. },
  17127. 69: {
  17128. Ffc: *(*struct {
  17129. Fcode [0]Tush
  17130. Ffreq Tush
  17131. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(174)})),
  17132. Fdl: *(*struct {
  17133. Flen1 [0]Tush
  17134. Fdad Tush
  17135. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17136. },
  17137. 70: {
  17138. Ffc: *(*struct {
  17139. Fcode [0]Tush
  17140. Ffreq Tush
  17141. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(110)})),
  17142. Fdl: *(*struct {
  17143. Flen1 [0]Tush
  17144. Fdad Tush
  17145. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17146. },
  17147. 71: {
  17148. Ffc: *(*struct {
  17149. Fcode [0]Tush
  17150. Ffreq Tush
  17151. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(238)})),
  17152. Fdl: *(*struct {
  17153. Flen1 [0]Tush
  17154. Fdad Tush
  17155. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17156. },
  17157. 72: {
  17158. Ffc: *(*struct {
  17159. Fcode [0]Tush
  17160. Ffreq Tush
  17161. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(30)})),
  17162. Fdl: *(*struct {
  17163. Flen1 [0]Tush
  17164. Fdad Tush
  17165. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17166. },
  17167. 73: {
  17168. Ffc: *(*struct {
  17169. Fcode [0]Tush
  17170. Ffreq Tush
  17171. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(158)})),
  17172. Fdl: *(*struct {
  17173. Flen1 [0]Tush
  17174. Fdad Tush
  17175. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17176. },
  17177. 74: {
  17178. Ffc: *(*struct {
  17179. Fcode [0]Tush
  17180. Ffreq Tush
  17181. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(94)})),
  17182. Fdl: *(*struct {
  17183. Flen1 [0]Tush
  17184. Fdad Tush
  17185. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17186. },
  17187. 75: {
  17188. Ffc: *(*struct {
  17189. Fcode [0]Tush
  17190. Ffreq Tush
  17191. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(222)})),
  17192. Fdl: *(*struct {
  17193. Flen1 [0]Tush
  17194. Fdad Tush
  17195. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17196. },
  17197. 76: {
  17198. Ffc: *(*struct {
  17199. Fcode [0]Tush
  17200. Ffreq Tush
  17201. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(62)})),
  17202. Fdl: *(*struct {
  17203. Flen1 [0]Tush
  17204. Fdad Tush
  17205. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17206. },
  17207. 77: {
  17208. Ffc: *(*struct {
  17209. Fcode [0]Tush
  17210. Ffreq Tush
  17211. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(190)})),
  17212. Fdl: *(*struct {
  17213. Flen1 [0]Tush
  17214. Fdad Tush
  17215. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17216. },
  17217. 78: {
  17218. Ffc: *(*struct {
  17219. Fcode [0]Tush
  17220. Ffreq Tush
  17221. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(126)})),
  17222. Fdl: *(*struct {
  17223. Flen1 [0]Tush
  17224. Fdad Tush
  17225. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17226. },
  17227. 79: {
  17228. Ffc: *(*struct {
  17229. Fcode [0]Tush
  17230. Ffreq Tush
  17231. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(254)})),
  17232. Fdl: *(*struct {
  17233. Flen1 [0]Tush
  17234. Fdad Tush
  17235. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17236. },
  17237. 80: {
  17238. Ffc: *(*struct {
  17239. Fcode [0]Tush
  17240. Ffreq Tush
  17241. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(1)})),
  17242. Fdl: *(*struct {
  17243. Flen1 [0]Tush
  17244. Fdad Tush
  17245. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17246. },
  17247. 81: {
  17248. Ffc: *(*struct {
  17249. Fcode [0]Tush
  17250. Ffreq Tush
  17251. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(129)})),
  17252. Fdl: *(*struct {
  17253. Flen1 [0]Tush
  17254. Fdad Tush
  17255. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17256. },
  17257. 82: {
  17258. Ffc: *(*struct {
  17259. Fcode [0]Tush
  17260. Ffreq Tush
  17261. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(65)})),
  17262. Fdl: *(*struct {
  17263. Flen1 [0]Tush
  17264. Fdad Tush
  17265. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17266. },
  17267. 83: {
  17268. Ffc: *(*struct {
  17269. Fcode [0]Tush
  17270. Ffreq Tush
  17271. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(193)})),
  17272. Fdl: *(*struct {
  17273. Flen1 [0]Tush
  17274. Fdad Tush
  17275. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17276. },
  17277. 84: {
  17278. Ffc: *(*struct {
  17279. Fcode [0]Tush
  17280. Ffreq Tush
  17281. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(33)})),
  17282. Fdl: *(*struct {
  17283. Flen1 [0]Tush
  17284. Fdad Tush
  17285. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17286. },
  17287. 85: {
  17288. Ffc: *(*struct {
  17289. Fcode [0]Tush
  17290. Ffreq Tush
  17291. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(161)})),
  17292. Fdl: *(*struct {
  17293. Flen1 [0]Tush
  17294. Fdad Tush
  17295. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17296. },
  17297. 86: {
  17298. Ffc: *(*struct {
  17299. Fcode [0]Tush
  17300. Ffreq Tush
  17301. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(97)})),
  17302. Fdl: *(*struct {
  17303. Flen1 [0]Tush
  17304. Fdad Tush
  17305. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17306. },
  17307. 87: {
  17308. Ffc: *(*struct {
  17309. Fcode [0]Tush
  17310. Ffreq Tush
  17311. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(225)})),
  17312. Fdl: *(*struct {
  17313. Flen1 [0]Tush
  17314. Fdad Tush
  17315. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17316. },
  17317. 88: {
  17318. Ffc: *(*struct {
  17319. Fcode [0]Tush
  17320. Ffreq Tush
  17321. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(17)})),
  17322. Fdl: *(*struct {
  17323. Flen1 [0]Tush
  17324. Fdad Tush
  17325. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17326. },
  17327. 89: {
  17328. Ffc: *(*struct {
  17329. Fcode [0]Tush
  17330. Ffreq Tush
  17331. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(145)})),
  17332. Fdl: *(*struct {
  17333. Flen1 [0]Tush
  17334. Fdad Tush
  17335. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17336. },
  17337. 90: {
  17338. Ffc: *(*struct {
  17339. Fcode [0]Tush
  17340. Ffreq Tush
  17341. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(81)})),
  17342. Fdl: *(*struct {
  17343. Flen1 [0]Tush
  17344. Fdad Tush
  17345. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17346. },
  17347. 91: {
  17348. Ffc: *(*struct {
  17349. Fcode [0]Tush
  17350. Ffreq Tush
  17351. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(209)})),
  17352. Fdl: *(*struct {
  17353. Flen1 [0]Tush
  17354. Fdad Tush
  17355. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17356. },
  17357. 92: {
  17358. Ffc: *(*struct {
  17359. Fcode [0]Tush
  17360. Ffreq Tush
  17361. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(49)})),
  17362. Fdl: *(*struct {
  17363. Flen1 [0]Tush
  17364. Fdad Tush
  17365. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17366. },
  17367. 93: {
  17368. Ffc: *(*struct {
  17369. Fcode [0]Tush
  17370. Ffreq Tush
  17371. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(177)})),
  17372. Fdl: *(*struct {
  17373. Flen1 [0]Tush
  17374. Fdad Tush
  17375. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17376. },
  17377. 94: {
  17378. Ffc: *(*struct {
  17379. Fcode [0]Tush
  17380. Ffreq Tush
  17381. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(113)})),
  17382. Fdl: *(*struct {
  17383. Flen1 [0]Tush
  17384. Fdad Tush
  17385. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17386. },
  17387. 95: {
  17388. Ffc: *(*struct {
  17389. Fcode [0]Tush
  17390. Ffreq Tush
  17391. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(241)})),
  17392. Fdl: *(*struct {
  17393. Flen1 [0]Tush
  17394. Fdad Tush
  17395. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17396. },
  17397. 96: {
  17398. Ffc: *(*struct {
  17399. Fcode [0]Tush
  17400. Ffreq Tush
  17401. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17402. Fdl: *(*struct {
  17403. Flen1 [0]Tush
  17404. Fdad Tush
  17405. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17406. },
  17407. 97: {
  17408. Ffc: *(*struct {
  17409. Fcode [0]Tush
  17410. Ffreq Tush
  17411. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(137)})),
  17412. Fdl: *(*struct {
  17413. Flen1 [0]Tush
  17414. Fdad Tush
  17415. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17416. },
  17417. 98: {
  17418. Ffc: *(*struct {
  17419. Fcode [0]Tush
  17420. Ffreq Tush
  17421. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(73)})),
  17422. Fdl: *(*struct {
  17423. Flen1 [0]Tush
  17424. Fdad Tush
  17425. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17426. },
  17427. 99: {
  17428. Ffc: *(*struct {
  17429. Fcode [0]Tush
  17430. Ffreq Tush
  17431. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(201)})),
  17432. Fdl: *(*struct {
  17433. Flen1 [0]Tush
  17434. Fdad Tush
  17435. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17436. },
  17437. 100: {
  17438. Ffc: *(*struct {
  17439. Fcode [0]Tush
  17440. Ffreq Tush
  17441. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(41)})),
  17442. Fdl: *(*struct {
  17443. Flen1 [0]Tush
  17444. Fdad Tush
  17445. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17446. },
  17447. 101: {
  17448. Ffc: *(*struct {
  17449. Fcode [0]Tush
  17450. Ffreq Tush
  17451. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(169)})),
  17452. Fdl: *(*struct {
  17453. Flen1 [0]Tush
  17454. Fdad Tush
  17455. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17456. },
  17457. 102: {
  17458. Ffc: *(*struct {
  17459. Fcode [0]Tush
  17460. Ffreq Tush
  17461. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(105)})),
  17462. Fdl: *(*struct {
  17463. Flen1 [0]Tush
  17464. Fdad Tush
  17465. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17466. },
  17467. 103: {
  17468. Ffc: *(*struct {
  17469. Fcode [0]Tush
  17470. Ffreq Tush
  17471. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(233)})),
  17472. Fdl: *(*struct {
  17473. Flen1 [0]Tush
  17474. Fdad Tush
  17475. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17476. },
  17477. 104: {
  17478. Ffc: *(*struct {
  17479. Fcode [0]Tush
  17480. Ffreq Tush
  17481. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(25)})),
  17482. Fdl: *(*struct {
  17483. Flen1 [0]Tush
  17484. Fdad Tush
  17485. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17486. },
  17487. 105: {
  17488. Ffc: *(*struct {
  17489. Fcode [0]Tush
  17490. Ffreq Tush
  17491. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(153)})),
  17492. Fdl: *(*struct {
  17493. Flen1 [0]Tush
  17494. Fdad Tush
  17495. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17496. },
  17497. 106: {
  17498. Ffc: *(*struct {
  17499. Fcode [0]Tush
  17500. Ffreq Tush
  17501. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(89)})),
  17502. Fdl: *(*struct {
  17503. Flen1 [0]Tush
  17504. Fdad Tush
  17505. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17506. },
  17507. 107: {
  17508. Ffc: *(*struct {
  17509. Fcode [0]Tush
  17510. Ffreq Tush
  17511. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(217)})),
  17512. Fdl: *(*struct {
  17513. Flen1 [0]Tush
  17514. Fdad Tush
  17515. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17516. },
  17517. 108: {
  17518. Ffc: *(*struct {
  17519. Fcode [0]Tush
  17520. Ffreq Tush
  17521. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(57)})),
  17522. Fdl: *(*struct {
  17523. Flen1 [0]Tush
  17524. Fdad Tush
  17525. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17526. },
  17527. 109: {
  17528. Ffc: *(*struct {
  17529. Fcode [0]Tush
  17530. Ffreq Tush
  17531. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(185)})),
  17532. Fdl: *(*struct {
  17533. Flen1 [0]Tush
  17534. Fdad Tush
  17535. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17536. },
  17537. 110: {
  17538. Ffc: *(*struct {
  17539. Fcode [0]Tush
  17540. Ffreq Tush
  17541. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(121)})),
  17542. Fdl: *(*struct {
  17543. Flen1 [0]Tush
  17544. Fdad Tush
  17545. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17546. },
  17547. 111: {
  17548. Ffc: *(*struct {
  17549. Fcode [0]Tush
  17550. Ffreq Tush
  17551. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(249)})),
  17552. Fdl: *(*struct {
  17553. Flen1 [0]Tush
  17554. Fdad Tush
  17555. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17556. },
  17557. 112: {
  17558. Ffc: *(*struct {
  17559. Fcode [0]Tush
  17560. Ffreq Tush
  17561. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17562. Fdl: *(*struct {
  17563. Flen1 [0]Tush
  17564. Fdad Tush
  17565. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17566. },
  17567. 113: {
  17568. Ffc: *(*struct {
  17569. Fcode [0]Tush
  17570. Ffreq Tush
  17571. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(133)})),
  17572. Fdl: *(*struct {
  17573. Flen1 [0]Tush
  17574. Fdad Tush
  17575. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17576. },
  17577. 114: {
  17578. Ffc: *(*struct {
  17579. Fcode [0]Tush
  17580. Ffreq Tush
  17581. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(69)})),
  17582. Fdl: *(*struct {
  17583. Flen1 [0]Tush
  17584. Fdad Tush
  17585. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17586. },
  17587. 115: {
  17588. Ffc: *(*struct {
  17589. Fcode [0]Tush
  17590. Ffreq Tush
  17591. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(197)})),
  17592. Fdl: *(*struct {
  17593. Flen1 [0]Tush
  17594. Fdad Tush
  17595. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17596. },
  17597. 116: {
  17598. Ffc: *(*struct {
  17599. Fcode [0]Tush
  17600. Ffreq Tush
  17601. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(37)})),
  17602. Fdl: *(*struct {
  17603. Flen1 [0]Tush
  17604. Fdad Tush
  17605. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17606. },
  17607. 117: {
  17608. Ffc: *(*struct {
  17609. Fcode [0]Tush
  17610. Ffreq Tush
  17611. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(165)})),
  17612. Fdl: *(*struct {
  17613. Flen1 [0]Tush
  17614. Fdad Tush
  17615. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17616. },
  17617. 118: {
  17618. Ffc: *(*struct {
  17619. Fcode [0]Tush
  17620. Ffreq Tush
  17621. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(101)})),
  17622. Fdl: *(*struct {
  17623. Flen1 [0]Tush
  17624. Fdad Tush
  17625. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17626. },
  17627. 119: {
  17628. Ffc: *(*struct {
  17629. Fcode [0]Tush
  17630. Ffreq Tush
  17631. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(229)})),
  17632. Fdl: *(*struct {
  17633. Flen1 [0]Tush
  17634. Fdad Tush
  17635. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17636. },
  17637. 120: {
  17638. Ffc: *(*struct {
  17639. Fcode [0]Tush
  17640. Ffreq Tush
  17641. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(21)})),
  17642. Fdl: *(*struct {
  17643. Flen1 [0]Tush
  17644. Fdad Tush
  17645. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17646. },
  17647. 121: {
  17648. Ffc: *(*struct {
  17649. Fcode [0]Tush
  17650. Ffreq Tush
  17651. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(149)})),
  17652. Fdl: *(*struct {
  17653. Flen1 [0]Tush
  17654. Fdad Tush
  17655. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17656. },
  17657. 122: {
  17658. Ffc: *(*struct {
  17659. Fcode [0]Tush
  17660. Ffreq Tush
  17661. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(85)})),
  17662. Fdl: *(*struct {
  17663. Flen1 [0]Tush
  17664. Fdad Tush
  17665. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17666. },
  17667. 123: {
  17668. Ffc: *(*struct {
  17669. Fcode [0]Tush
  17670. Ffreq Tush
  17671. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(213)})),
  17672. Fdl: *(*struct {
  17673. Flen1 [0]Tush
  17674. Fdad Tush
  17675. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17676. },
  17677. 124: {
  17678. Ffc: *(*struct {
  17679. Fcode [0]Tush
  17680. Ffreq Tush
  17681. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(53)})),
  17682. Fdl: *(*struct {
  17683. Flen1 [0]Tush
  17684. Fdad Tush
  17685. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17686. },
  17687. 125: {
  17688. Ffc: *(*struct {
  17689. Fcode [0]Tush
  17690. Ffreq Tush
  17691. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(181)})),
  17692. Fdl: *(*struct {
  17693. Flen1 [0]Tush
  17694. Fdad Tush
  17695. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17696. },
  17697. 126: {
  17698. Ffc: *(*struct {
  17699. Fcode [0]Tush
  17700. Ffreq Tush
  17701. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(117)})),
  17702. Fdl: *(*struct {
  17703. Flen1 [0]Tush
  17704. Fdad Tush
  17705. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17706. },
  17707. 127: {
  17708. Ffc: *(*struct {
  17709. Fcode [0]Tush
  17710. Ffreq Tush
  17711. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(245)})),
  17712. Fdl: *(*struct {
  17713. Flen1 [0]Tush
  17714. Fdad Tush
  17715. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17716. },
  17717. 128: {
  17718. Ffc: *(*struct {
  17719. Fcode [0]Tush
  17720. Ffreq Tush
  17721. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(13)})),
  17722. Fdl: *(*struct {
  17723. Flen1 [0]Tush
  17724. Fdad Tush
  17725. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17726. },
  17727. 129: {
  17728. Ffc: *(*struct {
  17729. Fcode [0]Tush
  17730. Ffreq Tush
  17731. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(141)})),
  17732. Fdl: *(*struct {
  17733. Flen1 [0]Tush
  17734. Fdad Tush
  17735. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17736. },
  17737. 130: {
  17738. Ffc: *(*struct {
  17739. Fcode [0]Tush
  17740. Ffreq Tush
  17741. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(77)})),
  17742. Fdl: *(*struct {
  17743. Flen1 [0]Tush
  17744. Fdad Tush
  17745. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17746. },
  17747. 131: {
  17748. Ffc: *(*struct {
  17749. Fcode [0]Tush
  17750. Ffreq Tush
  17751. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(205)})),
  17752. Fdl: *(*struct {
  17753. Flen1 [0]Tush
  17754. Fdad Tush
  17755. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17756. },
  17757. 132: {
  17758. Ffc: *(*struct {
  17759. Fcode [0]Tush
  17760. Ffreq Tush
  17761. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(45)})),
  17762. Fdl: *(*struct {
  17763. Flen1 [0]Tush
  17764. Fdad Tush
  17765. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17766. },
  17767. 133: {
  17768. Ffc: *(*struct {
  17769. Fcode [0]Tush
  17770. Ffreq Tush
  17771. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(173)})),
  17772. Fdl: *(*struct {
  17773. Flen1 [0]Tush
  17774. Fdad Tush
  17775. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17776. },
  17777. 134: {
  17778. Ffc: *(*struct {
  17779. Fcode [0]Tush
  17780. Ffreq Tush
  17781. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(109)})),
  17782. Fdl: *(*struct {
  17783. Flen1 [0]Tush
  17784. Fdad Tush
  17785. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17786. },
  17787. 135: {
  17788. Ffc: *(*struct {
  17789. Fcode [0]Tush
  17790. Ffreq Tush
  17791. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(237)})),
  17792. Fdl: *(*struct {
  17793. Flen1 [0]Tush
  17794. Fdad Tush
  17795. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17796. },
  17797. 136: {
  17798. Ffc: *(*struct {
  17799. Fcode [0]Tush
  17800. Ffreq Tush
  17801. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(29)})),
  17802. Fdl: *(*struct {
  17803. Flen1 [0]Tush
  17804. Fdad Tush
  17805. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17806. },
  17807. 137: {
  17808. Ffc: *(*struct {
  17809. Fcode [0]Tush
  17810. Ffreq Tush
  17811. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(157)})),
  17812. Fdl: *(*struct {
  17813. Flen1 [0]Tush
  17814. Fdad Tush
  17815. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17816. },
  17817. 138: {
  17818. Ffc: *(*struct {
  17819. Fcode [0]Tush
  17820. Ffreq Tush
  17821. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(93)})),
  17822. Fdl: *(*struct {
  17823. Flen1 [0]Tush
  17824. Fdad Tush
  17825. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17826. },
  17827. 139: {
  17828. Ffc: *(*struct {
  17829. Fcode [0]Tush
  17830. Ffreq Tush
  17831. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(221)})),
  17832. Fdl: *(*struct {
  17833. Flen1 [0]Tush
  17834. Fdad Tush
  17835. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17836. },
  17837. 140: {
  17838. Ffc: *(*struct {
  17839. Fcode [0]Tush
  17840. Ffreq Tush
  17841. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(61)})),
  17842. Fdl: *(*struct {
  17843. Flen1 [0]Tush
  17844. Fdad Tush
  17845. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17846. },
  17847. 141: {
  17848. Ffc: *(*struct {
  17849. Fcode [0]Tush
  17850. Ffreq Tush
  17851. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(189)})),
  17852. Fdl: *(*struct {
  17853. Flen1 [0]Tush
  17854. Fdad Tush
  17855. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17856. },
  17857. 142: {
  17858. Ffc: *(*struct {
  17859. Fcode [0]Tush
  17860. Ffreq Tush
  17861. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(125)})),
  17862. Fdl: *(*struct {
  17863. Flen1 [0]Tush
  17864. Fdad Tush
  17865. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17866. },
  17867. 143: {
  17868. Ffc: *(*struct {
  17869. Fcode [0]Tush
  17870. Ffreq Tush
  17871. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(253)})),
  17872. Fdl: *(*struct {
  17873. Flen1 [0]Tush
  17874. Fdad Tush
  17875. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17876. },
  17877. 144: {
  17878. Ffc: *(*struct {
  17879. Fcode [0]Tush
  17880. Ffreq Tush
  17881. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(19)})),
  17882. Fdl: *(*struct {
  17883. Flen1 [0]Tush
  17884. Fdad Tush
  17885. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17886. },
  17887. 145: {
  17888. Ffc: *(*struct {
  17889. Fcode [0]Tush
  17890. Ffreq Tush
  17891. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(275)})),
  17892. Fdl: *(*struct {
  17893. Flen1 [0]Tush
  17894. Fdad Tush
  17895. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17896. },
  17897. 146: {
  17898. Ffc: *(*struct {
  17899. Fcode [0]Tush
  17900. Ffreq Tush
  17901. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(147)})),
  17902. Fdl: *(*struct {
  17903. Flen1 [0]Tush
  17904. Fdad Tush
  17905. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17906. },
  17907. 147: {
  17908. Ffc: *(*struct {
  17909. Fcode [0]Tush
  17910. Ffreq Tush
  17911. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(403)})),
  17912. Fdl: *(*struct {
  17913. Flen1 [0]Tush
  17914. Fdad Tush
  17915. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17916. },
  17917. 148: {
  17918. Ffc: *(*struct {
  17919. Fcode [0]Tush
  17920. Ffreq Tush
  17921. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(83)})),
  17922. Fdl: *(*struct {
  17923. Flen1 [0]Tush
  17924. Fdad Tush
  17925. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17926. },
  17927. 149: {
  17928. Ffc: *(*struct {
  17929. Fcode [0]Tush
  17930. Ffreq Tush
  17931. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(339)})),
  17932. Fdl: *(*struct {
  17933. Flen1 [0]Tush
  17934. Fdad Tush
  17935. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17936. },
  17937. 150: {
  17938. Ffc: *(*struct {
  17939. Fcode [0]Tush
  17940. Ffreq Tush
  17941. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(211)})),
  17942. Fdl: *(*struct {
  17943. Flen1 [0]Tush
  17944. Fdad Tush
  17945. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17946. },
  17947. 151: {
  17948. Ffc: *(*struct {
  17949. Fcode [0]Tush
  17950. Ffreq Tush
  17951. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(467)})),
  17952. Fdl: *(*struct {
  17953. Flen1 [0]Tush
  17954. Fdad Tush
  17955. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17956. },
  17957. 152: {
  17958. Ffc: *(*struct {
  17959. Fcode [0]Tush
  17960. Ffreq Tush
  17961. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(51)})),
  17962. Fdl: *(*struct {
  17963. Flen1 [0]Tush
  17964. Fdad Tush
  17965. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17966. },
  17967. 153: {
  17968. Ffc: *(*struct {
  17969. Fcode [0]Tush
  17970. Ffreq Tush
  17971. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(307)})),
  17972. Fdl: *(*struct {
  17973. Flen1 [0]Tush
  17974. Fdad Tush
  17975. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17976. },
  17977. 154: {
  17978. Ffc: *(*struct {
  17979. Fcode [0]Tush
  17980. Ffreq Tush
  17981. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(179)})),
  17982. Fdl: *(*struct {
  17983. Flen1 [0]Tush
  17984. Fdad Tush
  17985. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17986. },
  17987. 155: {
  17988. Ffc: *(*struct {
  17989. Fcode [0]Tush
  17990. Ffreq Tush
  17991. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(435)})),
  17992. Fdl: *(*struct {
  17993. Flen1 [0]Tush
  17994. Fdad Tush
  17995. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17996. },
  17997. 156: {
  17998. Ffc: *(*struct {
  17999. Fcode [0]Tush
  18000. Ffreq Tush
  18001. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(115)})),
  18002. Fdl: *(*struct {
  18003. Flen1 [0]Tush
  18004. Fdad Tush
  18005. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18006. },
  18007. 157: {
  18008. Ffc: *(*struct {
  18009. Fcode [0]Tush
  18010. Ffreq Tush
  18011. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(371)})),
  18012. Fdl: *(*struct {
  18013. Flen1 [0]Tush
  18014. Fdad Tush
  18015. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18016. },
  18017. 158: {
  18018. Ffc: *(*struct {
  18019. Fcode [0]Tush
  18020. Ffreq Tush
  18021. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(243)})),
  18022. Fdl: *(*struct {
  18023. Flen1 [0]Tush
  18024. Fdad Tush
  18025. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18026. },
  18027. 159: {
  18028. Ffc: *(*struct {
  18029. Fcode [0]Tush
  18030. Ffreq Tush
  18031. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(499)})),
  18032. Fdl: *(*struct {
  18033. Flen1 [0]Tush
  18034. Fdad Tush
  18035. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18036. },
  18037. 160: {
  18038. Ffc: *(*struct {
  18039. Fcode [0]Tush
  18040. Ffreq Tush
  18041. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(11)})),
  18042. Fdl: *(*struct {
  18043. Flen1 [0]Tush
  18044. Fdad Tush
  18045. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18046. },
  18047. 161: {
  18048. Ffc: *(*struct {
  18049. Fcode [0]Tush
  18050. Ffreq Tush
  18051. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(267)})),
  18052. Fdl: *(*struct {
  18053. Flen1 [0]Tush
  18054. Fdad Tush
  18055. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18056. },
  18057. 162: {
  18058. Ffc: *(*struct {
  18059. Fcode [0]Tush
  18060. Ffreq Tush
  18061. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(139)})),
  18062. Fdl: *(*struct {
  18063. Flen1 [0]Tush
  18064. Fdad Tush
  18065. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18066. },
  18067. 163: {
  18068. Ffc: *(*struct {
  18069. Fcode [0]Tush
  18070. Ffreq Tush
  18071. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(395)})),
  18072. Fdl: *(*struct {
  18073. Flen1 [0]Tush
  18074. Fdad Tush
  18075. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18076. },
  18077. 164: {
  18078. Ffc: *(*struct {
  18079. Fcode [0]Tush
  18080. Ffreq Tush
  18081. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(75)})),
  18082. Fdl: *(*struct {
  18083. Flen1 [0]Tush
  18084. Fdad Tush
  18085. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18086. },
  18087. 165: {
  18088. Ffc: *(*struct {
  18089. Fcode [0]Tush
  18090. Ffreq Tush
  18091. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(331)})),
  18092. Fdl: *(*struct {
  18093. Flen1 [0]Tush
  18094. Fdad Tush
  18095. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18096. },
  18097. 166: {
  18098. Ffc: *(*struct {
  18099. Fcode [0]Tush
  18100. Ffreq Tush
  18101. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(203)})),
  18102. Fdl: *(*struct {
  18103. Flen1 [0]Tush
  18104. Fdad Tush
  18105. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18106. },
  18107. 167: {
  18108. Ffc: *(*struct {
  18109. Fcode [0]Tush
  18110. Ffreq Tush
  18111. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(459)})),
  18112. Fdl: *(*struct {
  18113. Flen1 [0]Tush
  18114. Fdad Tush
  18115. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18116. },
  18117. 168: {
  18118. Ffc: *(*struct {
  18119. Fcode [0]Tush
  18120. Ffreq Tush
  18121. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(43)})),
  18122. Fdl: *(*struct {
  18123. Flen1 [0]Tush
  18124. Fdad Tush
  18125. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18126. },
  18127. 169: {
  18128. Ffc: *(*struct {
  18129. Fcode [0]Tush
  18130. Ffreq Tush
  18131. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(299)})),
  18132. Fdl: *(*struct {
  18133. Flen1 [0]Tush
  18134. Fdad Tush
  18135. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18136. },
  18137. 170: {
  18138. Ffc: *(*struct {
  18139. Fcode [0]Tush
  18140. Ffreq Tush
  18141. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(171)})),
  18142. Fdl: *(*struct {
  18143. Flen1 [0]Tush
  18144. Fdad Tush
  18145. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18146. },
  18147. 171: {
  18148. Ffc: *(*struct {
  18149. Fcode [0]Tush
  18150. Ffreq Tush
  18151. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(427)})),
  18152. Fdl: *(*struct {
  18153. Flen1 [0]Tush
  18154. Fdad Tush
  18155. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18156. },
  18157. 172: {
  18158. Ffc: *(*struct {
  18159. Fcode [0]Tush
  18160. Ffreq Tush
  18161. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(107)})),
  18162. Fdl: *(*struct {
  18163. Flen1 [0]Tush
  18164. Fdad Tush
  18165. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18166. },
  18167. 173: {
  18168. Ffc: *(*struct {
  18169. Fcode [0]Tush
  18170. Ffreq Tush
  18171. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(363)})),
  18172. Fdl: *(*struct {
  18173. Flen1 [0]Tush
  18174. Fdad Tush
  18175. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18176. },
  18177. 174: {
  18178. Ffc: *(*struct {
  18179. Fcode [0]Tush
  18180. Ffreq Tush
  18181. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(235)})),
  18182. Fdl: *(*struct {
  18183. Flen1 [0]Tush
  18184. Fdad Tush
  18185. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18186. },
  18187. 175: {
  18188. Ffc: *(*struct {
  18189. Fcode [0]Tush
  18190. Ffreq Tush
  18191. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(491)})),
  18192. Fdl: *(*struct {
  18193. Flen1 [0]Tush
  18194. Fdad Tush
  18195. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18196. },
  18197. 176: {
  18198. Ffc: *(*struct {
  18199. Fcode [0]Tush
  18200. Ffreq Tush
  18201. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(27)})),
  18202. Fdl: *(*struct {
  18203. Flen1 [0]Tush
  18204. Fdad Tush
  18205. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18206. },
  18207. 177: {
  18208. Ffc: *(*struct {
  18209. Fcode [0]Tush
  18210. Ffreq Tush
  18211. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(283)})),
  18212. Fdl: *(*struct {
  18213. Flen1 [0]Tush
  18214. Fdad Tush
  18215. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18216. },
  18217. 178: {
  18218. Ffc: *(*struct {
  18219. Fcode [0]Tush
  18220. Ffreq Tush
  18221. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(155)})),
  18222. Fdl: *(*struct {
  18223. Flen1 [0]Tush
  18224. Fdad Tush
  18225. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18226. },
  18227. 179: {
  18228. Ffc: *(*struct {
  18229. Fcode [0]Tush
  18230. Ffreq Tush
  18231. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(411)})),
  18232. Fdl: *(*struct {
  18233. Flen1 [0]Tush
  18234. Fdad Tush
  18235. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18236. },
  18237. 180: {
  18238. Ffc: *(*struct {
  18239. Fcode [0]Tush
  18240. Ffreq Tush
  18241. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(91)})),
  18242. Fdl: *(*struct {
  18243. Flen1 [0]Tush
  18244. Fdad Tush
  18245. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18246. },
  18247. 181: {
  18248. Ffc: *(*struct {
  18249. Fcode [0]Tush
  18250. Ffreq Tush
  18251. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(347)})),
  18252. Fdl: *(*struct {
  18253. Flen1 [0]Tush
  18254. Fdad Tush
  18255. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18256. },
  18257. 182: {
  18258. Ffc: *(*struct {
  18259. Fcode [0]Tush
  18260. Ffreq Tush
  18261. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(219)})),
  18262. Fdl: *(*struct {
  18263. Flen1 [0]Tush
  18264. Fdad Tush
  18265. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18266. },
  18267. 183: {
  18268. Ffc: *(*struct {
  18269. Fcode [0]Tush
  18270. Ffreq Tush
  18271. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(475)})),
  18272. Fdl: *(*struct {
  18273. Flen1 [0]Tush
  18274. Fdad Tush
  18275. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18276. },
  18277. 184: {
  18278. Ffc: *(*struct {
  18279. Fcode [0]Tush
  18280. Ffreq Tush
  18281. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(59)})),
  18282. Fdl: *(*struct {
  18283. Flen1 [0]Tush
  18284. Fdad Tush
  18285. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18286. },
  18287. 185: {
  18288. Ffc: *(*struct {
  18289. Fcode [0]Tush
  18290. Ffreq Tush
  18291. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(315)})),
  18292. Fdl: *(*struct {
  18293. Flen1 [0]Tush
  18294. Fdad Tush
  18295. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18296. },
  18297. 186: {
  18298. Ffc: *(*struct {
  18299. Fcode [0]Tush
  18300. Ffreq Tush
  18301. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(187)})),
  18302. Fdl: *(*struct {
  18303. Flen1 [0]Tush
  18304. Fdad Tush
  18305. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18306. },
  18307. 187: {
  18308. Ffc: *(*struct {
  18309. Fcode [0]Tush
  18310. Ffreq Tush
  18311. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(443)})),
  18312. Fdl: *(*struct {
  18313. Flen1 [0]Tush
  18314. Fdad Tush
  18315. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18316. },
  18317. 188: {
  18318. Ffc: *(*struct {
  18319. Fcode [0]Tush
  18320. Ffreq Tush
  18321. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(123)})),
  18322. Fdl: *(*struct {
  18323. Flen1 [0]Tush
  18324. Fdad Tush
  18325. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18326. },
  18327. 189: {
  18328. Ffc: *(*struct {
  18329. Fcode [0]Tush
  18330. Ffreq Tush
  18331. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(379)})),
  18332. Fdl: *(*struct {
  18333. Flen1 [0]Tush
  18334. Fdad Tush
  18335. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18336. },
  18337. 190: {
  18338. Ffc: *(*struct {
  18339. Fcode [0]Tush
  18340. Ffreq Tush
  18341. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(251)})),
  18342. Fdl: *(*struct {
  18343. Flen1 [0]Tush
  18344. Fdad Tush
  18345. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18346. },
  18347. 191: {
  18348. Ffc: *(*struct {
  18349. Fcode [0]Tush
  18350. Ffreq Tush
  18351. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(507)})),
  18352. Fdl: *(*struct {
  18353. Flen1 [0]Tush
  18354. Fdad Tush
  18355. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18356. },
  18357. 192: {
  18358. Ffc: *(*struct {
  18359. Fcode [0]Tush
  18360. Ffreq Tush
  18361. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  18362. Fdl: *(*struct {
  18363. Flen1 [0]Tush
  18364. Fdad Tush
  18365. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18366. },
  18367. 193: {
  18368. Ffc: *(*struct {
  18369. Fcode [0]Tush
  18370. Ffreq Tush
  18371. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(263)})),
  18372. Fdl: *(*struct {
  18373. Flen1 [0]Tush
  18374. Fdad Tush
  18375. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18376. },
  18377. 194: {
  18378. Ffc: *(*struct {
  18379. Fcode [0]Tush
  18380. Ffreq Tush
  18381. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(135)})),
  18382. Fdl: *(*struct {
  18383. Flen1 [0]Tush
  18384. Fdad Tush
  18385. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18386. },
  18387. 195: {
  18388. Ffc: *(*struct {
  18389. Fcode [0]Tush
  18390. Ffreq Tush
  18391. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(391)})),
  18392. Fdl: *(*struct {
  18393. Flen1 [0]Tush
  18394. Fdad Tush
  18395. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18396. },
  18397. 196: {
  18398. Ffc: *(*struct {
  18399. Fcode [0]Tush
  18400. Ffreq Tush
  18401. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(71)})),
  18402. Fdl: *(*struct {
  18403. Flen1 [0]Tush
  18404. Fdad Tush
  18405. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18406. },
  18407. 197: {
  18408. Ffc: *(*struct {
  18409. Fcode [0]Tush
  18410. Ffreq Tush
  18411. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(327)})),
  18412. Fdl: *(*struct {
  18413. Flen1 [0]Tush
  18414. Fdad Tush
  18415. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18416. },
  18417. 198: {
  18418. Ffc: *(*struct {
  18419. Fcode [0]Tush
  18420. Ffreq Tush
  18421. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(199)})),
  18422. Fdl: *(*struct {
  18423. Flen1 [0]Tush
  18424. Fdad Tush
  18425. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18426. },
  18427. 199: {
  18428. Ffc: *(*struct {
  18429. Fcode [0]Tush
  18430. Ffreq Tush
  18431. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(455)})),
  18432. Fdl: *(*struct {
  18433. Flen1 [0]Tush
  18434. Fdad Tush
  18435. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18436. },
  18437. 200: {
  18438. Ffc: *(*struct {
  18439. Fcode [0]Tush
  18440. Ffreq Tush
  18441. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(39)})),
  18442. Fdl: *(*struct {
  18443. Flen1 [0]Tush
  18444. Fdad Tush
  18445. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18446. },
  18447. 201: {
  18448. Ffc: *(*struct {
  18449. Fcode [0]Tush
  18450. Ffreq Tush
  18451. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(295)})),
  18452. Fdl: *(*struct {
  18453. Flen1 [0]Tush
  18454. Fdad Tush
  18455. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18456. },
  18457. 202: {
  18458. Ffc: *(*struct {
  18459. Fcode [0]Tush
  18460. Ffreq Tush
  18461. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(167)})),
  18462. Fdl: *(*struct {
  18463. Flen1 [0]Tush
  18464. Fdad Tush
  18465. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18466. },
  18467. 203: {
  18468. Ffc: *(*struct {
  18469. Fcode [0]Tush
  18470. Ffreq Tush
  18471. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(423)})),
  18472. Fdl: *(*struct {
  18473. Flen1 [0]Tush
  18474. Fdad Tush
  18475. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18476. },
  18477. 204: {
  18478. Ffc: *(*struct {
  18479. Fcode [0]Tush
  18480. Ffreq Tush
  18481. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(103)})),
  18482. Fdl: *(*struct {
  18483. Flen1 [0]Tush
  18484. Fdad Tush
  18485. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18486. },
  18487. 205: {
  18488. Ffc: *(*struct {
  18489. Fcode [0]Tush
  18490. Ffreq Tush
  18491. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(359)})),
  18492. Fdl: *(*struct {
  18493. Flen1 [0]Tush
  18494. Fdad Tush
  18495. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18496. },
  18497. 206: {
  18498. Ffc: *(*struct {
  18499. Fcode [0]Tush
  18500. Ffreq Tush
  18501. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(231)})),
  18502. Fdl: *(*struct {
  18503. Flen1 [0]Tush
  18504. Fdad Tush
  18505. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18506. },
  18507. 207: {
  18508. Ffc: *(*struct {
  18509. Fcode [0]Tush
  18510. Ffreq Tush
  18511. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(487)})),
  18512. Fdl: *(*struct {
  18513. Flen1 [0]Tush
  18514. Fdad Tush
  18515. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18516. },
  18517. 208: {
  18518. Ffc: *(*struct {
  18519. Fcode [0]Tush
  18520. Ffreq Tush
  18521. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(23)})),
  18522. Fdl: *(*struct {
  18523. Flen1 [0]Tush
  18524. Fdad Tush
  18525. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18526. },
  18527. 209: {
  18528. Ffc: *(*struct {
  18529. Fcode [0]Tush
  18530. Ffreq Tush
  18531. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(279)})),
  18532. Fdl: *(*struct {
  18533. Flen1 [0]Tush
  18534. Fdad Tush
  18535. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18536. },
  18537. 210: {
  18538. Ffc: *(*struct {
  18539. Fcode [0]Tush
  18540. Ffreq Tush
  18541. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(151)})),
  18542. Fdl: *(*struct {
  18543. Flen1 [0]Tush
  18544. Fdad Tush
  18545. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18546. },
  18547. 211: {
  18548. Ffc: *(*struct {
  18549. Fcode [0]Tush
  18550. Ffreq Tush
  18551. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(407)})),
  18552. Fdl: *(*struct {
  18553. Flen1 [0]Tush
  18554. Fdad Tush
  18555. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18556. },
  18557. 212: {
  18558. Ffc: *(*struct {
  18559. Fcode [0]Tush
  18560. Ffreq Tush
  18561. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(87)})),
  18562. Fdl: *(*struct {
  18563. Flen1 [0]Tush
  18564. Fdad Tush
  18565. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18566. },
  18567. 213: {
  18568. Ffc: *(*struct {
  18569. Fcode [0]Tush
  18570. Ffreq Tush
  18571. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(343)})),
  18572. Fdl: *(*struct {
  18573. Flen1 [0]Tush
  18574. Fdad Tush
  18575. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18576. },
  18577. 214: {
  18578. Ffc: *(*struct {
  18579. Fcode [0]Tush
  18580. Ffreq Tush
  18581. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(215)})),
  18582. Fdl: *(*struct {
  18583. Flen1 [0]Tush
  18584. Fdad Tush
  18585. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18586. },
  18587. 215: {
  18588. Ffc: *(*struct {
  18589. Fcode [0]Tush
  18590. Ffreq Tush
  18591. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(471)})),
  18592. Fdl: *(*struct {
  18593. Flen1 [0]Tush
  18594. Fdad Tush
  18595. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18596. },
  18597. 216: {
  18598. Ffc: *(*struct {
  18599. Fcode [0]Tush
  18600. Ffreq Tush
  18601. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(55)})),
  18602. Fdl: *(*struct {
  18603. Flen1 [0]Tush
  18604. Fdad Tush
  18605. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18606. },
  18607. 217: {
  18608. Ffc: *(*struct {
  18609. Fcode [0]Tush
  18610. Ffreq Tush
  18611. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(311)})),
  18612. Fdl: *(*struct {
  18613. Flen1 [0]Tush
  18614. Fdad Tush
  18615. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18616. },
  18617. 218: {
  18618. Ffc: *(*struct {
  18619. Fcode [0]Tush
  18620. Ffreq Tush
  18621. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(183)})),
  18622. Fdl: *(*struct {
  18623. Flen1 [0]Tush
  18624. Fdad Tush
  18625. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18626. },
  18627. 219: {
  18628. Ffc: *(*struct {
  18629. Fcode [0]Tush
  18630. Ffreq Tush
  18631. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(439)})),
  18632. Fdl: *(*struct {
  18633. Flen1 [0]Tush
  18634. Fdad Tush
  18635. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18636. },
  18637. 220: {
  18638. Ffc: *(*struct {
  18639. Fcode [0]Tush
  18640. Ffreq Tush
  18641. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(119)})),
  18642. Fdl: *(*struct {
  18643. Flen1 [0]Tush
  18644. Fdad Tush
  18645. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18646. },
  18647. 221: {
  18648. Ffc: *(*struct {
  18649. Fcode [0]Tush
  18650. Ffreq Tush
  18651. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(375)})),
  18652. Fdl: *(*struct {
  18653. Flen1 [0]Tush
  18654. Fdad Tush
  18655. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18656. },
  18657. 222: {
  18658. Ffc: *(*struct {
  18659. Fcode [0]Tush
  18660. Ffreq Tush
  18661. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(247)})),
  18662. Fdl: *(*struct {
  18663. Flen1 [0]Tush
  18664. Fdad Tush
  18665. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18666. },
  18667. 223: {
  18668. Ffc: *(*struct {
  18669. Fcode [0]Tush
  18670. Ffreq Tush
  18671. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(503)})),
  18672. Fdl: *(*struct {
  18673. Flen1 [0]Tush
  18674. Fdad Tush
  18675. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18676. },
  18677. 224: {
  18678. Ffc: *(*struct {
  18679. Fcode [0]Tush
  18680. Ffreq Tush
  18681. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(15)})),
  18682. Fdl: *(*struct {
  18683. Flen1 [0]Tush
  18684. Fdad Tush
  18685. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18686. },
  18687. 225: {
  18688. Ffc: *(*struct {
  18689. Fcode [0]Tush
  18690. Ffreq Tush
  18691. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(271)})),
  18692. Fdl: *(*struct {
  18693. Flen1 [0]Tush
  18694. Fdad Tush
  18695. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18696. },
  18697. 226: {
  18698. Ffc: *(*struct {
  18699. Fcode [0]Tush
  18700. Ffreq Tush
  18701. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(143)})),
  18702. Fdl: *(*struct {
  18703. Flen1 [0]Tush
  18704. Fdad Tush
  18705. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18706. },
  18707. 227: {
  18708. Ffc: *(*struct {
  18709. Fcode [0]Tush
  18710. Ffreq Tush
  18711. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(399)})),
  18712. Fdl: *(*struct {
  18713. Flen1 [0]Tush
  18714. Fdad Tush
  18715. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18716. },
  18717. 228: {
  18718. Ffc: *(*struct {
  18719. Fcode [0]Tush
  18720. Ffreq Tush
  18721. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(79)})),
  18722. Fdl: *(*struct {
  18723. Flen1 [0]Tush
  18724. Fdad Tush
  18725. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18726. },
  18727. 229: {
  18728. Ffc: *(*struct {
  18729. Fcode [0]Tush
  18730. Ffreq Tush
  18731. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(335)})),
  18732. Fdl: *(*struct {
  18733. Flen1 [0]Tush
  18734. Fdad Tush
  18735. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18736. },
  18737. 230: {
  18738. Ffc: *(*struct {
  18739. Fcode [0]Tush
  18740. Ffreq Tush
  18741. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(207)})),
  18742. Fdl: *(*struct {
  18743. Flen1 [0]Tush
  18744. Fdad Tush
  18745. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18746. },
  18747. 231: {
  18748. Ffc: *(*struct {
  18749. Fcode [0]Tush
  18750. Ffreq Tush
  18751. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(463)})),
  18752. Fdl: *(*struct {
  18753. Flen1 [0]Tush
  18754. Fdad Tush
  18755. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18756. },
  18757. 232: {
  18758. Ffc: *(*struct {
  18759. Fcode [0]Tush
  18760. Ffreq Tush
  18761. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(47)})),
  18762. Fdl: *(*struct {
  18763. Flen1 [0]Tush
  18764. Fdad Tush
  18765. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18766. },
  18767. 233: {
  18768. Ffc: *(*struct {
  18769. Fcode [0]Tush
  18770. Ffreq Tush
  18771. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(303)})),
  18772. Fdl: *(*struct {
  18773. Flen1 [0]Tush
  18774. Fdad Tush
  18775. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18776. },
  18777. 234: {
  18778. Ffc: *(*struct {
  18779. Fcode [0]Tush
  18780. Ffreq Tush
  18781. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(175)})),
  18782. Fdl: *(*struct {
  18783. Flen1 [0]Tush
  18784. Fdad Tush
  18785. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18786. },
  18787. 235: {
  18788. Ffc: *(*struct {
  18789. Fcode [0]Tush
  18790. Ffreq Tush
  18791. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(431)})),
  18792. Fdl: *(*struct {
  18793. Flen1 [0]Tush
  18794. Fdad Tush
  18795. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18796. },
  18797. 236: {
  18798. Ffc: *(*struct {
  18799. Fcode [0]Tush
  18800. Ffreq Tush
  18801. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(111)})),
  18802. Fdl: *(*struct {
  18803. Flen1 [0]Tush
  18804. Fdad Tush
  18805. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18806. },
  18807. 237: {
  18808. Ffc: *(*struct {
  18809. Fcode [0]Tush
  18810. Ffreq Tush
  18811. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(367)})),
  18812. Fdl: *(*struct {
  18813. Flen1 [0]Tush
  18814. Fdad Tush
  18815. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18816. },
  18817. 238: {
  18818. Ffc: *(*struct {
  18819. Fcode [0]Tush
  18820. Ffreq Tush
  18821. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(239)})),
  18822. Fdl: *(*struct {
  18823. Flen1 [0]Tush
  18824. Fdad Tush
  18825. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18826. },
  18827. 239: {
  18828. Ffc: *(*struct {
  18829. Fcode [0]Tush
  18830. Ffreq Tush
  18831. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(495)})),
  18832. Fdl: *(*struct {
  18833. Flen1 [0]Tush
  18834. Fdad Tush
  18835. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18836. },
  18837. 240: {
  18838. Ffc: *(*struct {
  18839. Fcode [0]Tush
  18840. Ffreq Tush
  18841. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(31)})),
  18842. Fdl: *(*struct {
  18843. Flen1 [0]Tush
  18844. Fdad Tush
  18845. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18846. },
  18847. 241: {
  18848. Ffc: *(*struct {
  18849. Fcode [0]Tush
  18850. Ffreq Tush
  18851. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(287)})),
  18852. Fdl: *(*struct {
  18853. Flen1 [0]Tush
  18854. Fdad Tush
  18855. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18856. },
  18857. 242: {
  18858. Ffc: *(*struct {
  18859. Fcode [0]Tush
  18860. Ffreq Tush
  18861. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(159)})),
  18862. Fdl: *(*struct {
  18863. Flen1 [0]Tush
  18864. Fdad Tush
  18865. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18866. },
  18867. 243: {
  18868. Ffc: *(*struct {
  18869. Fcode [0]Tush
  18870. Ffreq Tush
  18871. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(415)})),
  18872. Fdl: *(*struct {
  18873. Flen1 [0]Tush
  18874. Fdad Tush
  18875. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18876. },
  18877. 244: {
  18878. Ffc: *(*struct {
  18879. Fcode [0]Tush
  18880. Ffreq Tush
  18881. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(95)})),
  18882. Fdl: *(*struct {
  18883. Flen1 [0]Tush
  18884. Fdad Tush
  18885. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18886. },
  18887. 245: {
  18888. Ffc: *(*struct {
  18889. Fcode [0]Tush
  18890. Ffreq Tush
  18891. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(351)})),
  18892. Fdl: *(*struct {
  18893. Flen1 [0]Tush
  18894. Fdad Tush
  18895. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18896. },
  18897. 246: {
  18898. Ffc: *(*struct {
  18899. Fcode [0]Tush
  18900. Ffreq Tush
  18901. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(223)})),
  18902. Fdl: *(*struct {
  18903. Flen1 [0]Tush
  18904. Fdad Tush
  18905. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18906. },
  18907. 247: {
  18908. Ffc: *(*struct {
  18909. Fcode [0]Tush
  18910. Ffreq Tush
  18911. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(479)})),
  18912. Fdl: *(*struct {
  18913. Flen1 [0]Tush
  18914. Fdad Tush
  18915. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18916. },
  18917. 248: {
  18918. Ffc: *(*struct {
  18919. Fcode [0]Tush
  18920. Ffreq Tush
  18921. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(63)})),
  18922. Fdl: *(*struct {
  18923. Flen1 [0]Tush
  18924. Fdad Tush
  18925. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18926. },
  18927. 249: {
  18928. Ffc: *(*struct {
  18929. Fcode [0]Tush
  18930. Ffreq Tush
  18931. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(319)})),
  18932. Fdl: *(*struct {
  18933. Flen1 [0]Tush
  18934. Fdad Tush
  18935. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18936. },
  18937. 250: {
  18938. Ffc: *(*struct {
  18939. Fcode [0]Tush
  18940. Ffreq Tush
  18941. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(191)})),
  18942. Fdl: *(*struct {
  18943. Flen1 [0]Tush
  18944. Fdad Tush
  18945. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18946. },
  18947. 251: {
  18948. Ffc: *(*struct {
  18949. Fcode [0]Tush
  18950. Ffreq Tush
  18951. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(447)})),
  18952. Fdl: *(*struct {
  18953. Flen1 [0]Tush
  18954. Fdad Tush
  18955. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18956. },
  18957. 252: {
  18958. Ffc: *(*struct {
  18959. Fcode [0]Tush
  18960. Ffreq Tush
  18961. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(127)})),
  18962. Fdl: *(*struct {
  18963. Flen1 [0]Tush
  18964. Fdad Tush
  18965. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18966. },
  18967. 253: {
  18968. Ffc: *(*struct {
  18969. Fcode [0]Tush
  18970. Ffreq Tush
  18971. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(383)})),
  18972. Fdl: *(*struct {
  18973. Flen1 [0]Tush
  18974. Fdad Tush
  18975. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18976. },
  18977. 254: {
  18978. Ffc: *(*struct {
  18979. Fcode [0]Tush
  18980. Ffreq Tush
  18981. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(255)})),
  18982. Fdl: *(*struct {
  18983. Flen1 [0]Tush
  18984. Fdad Tush
  18985. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18986. },
  18987. 255: {
  18988. Ffc: *(*struct {
  18989. Fcode [0]Tush
  18990. Ffreq Tush
  18991. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(511)})),
  18992. Fdl: *(*struct {
  18993. Flen1 [0]Tush
  18994. Fdad Tush
  18995. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18996. },
  18997. 256: {
  18998. Fdl: *(*struct {
  18999. Flen1 [0]Tush
  19000. Fdad Tush
  19001. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19002. },
  19003. 257: {
  19004. Ffc: *(*struct {
  19005. Fcode [0]Tush
  19006. Ffreq Tush
  19007. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(64)})),
  19008. Fdl: *(*struct {
  19009. Flen1 [0]Tush
  19010. Fdad Tush
  19011. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19012. },
  19013. 258: {
  19014. Ffc: *(*struct {
  19015. Fcode [0]Tush
  19016. Ffreq Tush
  19017. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(32)})),
  19018. Fdl: *(*struct {
  19019. Flen1 [0]Tush
  19020. Fdad Tush
  19021. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19022. },
  19023. 259: {
  19024. Ffc: *(*struct {
  19025. Fcode [0]Tush
  19026. Ffreq Tush
  19027. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(96)})),
  19028. Fdl: *(*struct {
  19029. Flen1 [0]Tush
  19030. Fdad Tush
  19031. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19032. },
  19033. 260: {
  19034. Ffc: *(*struct {
  19035. Fcode [0]Tush
  19036. Ffreq Tush
  19037. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(16)})),
  19038. Fdl: *(*struct {
  19039. Flen1 [0]Tush
  19040. Fdad Tush
  19041. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19042. },
  19043. 261: {
  19044. Ffc: *(*struct {
  19045. Fcode [0]Tush
  19046. Ffreq Tush
  19047. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(80)})),
  19048. Fdl: *(*struct {
  19049. Flen1 [0]Tush
  19050. Fdad Tush
  19051. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19052. },
  19053. 262: {
  19054. Ffc: *(*struct {
  19055. Fcode [0]Tush
  19056. Ffreq Tush
  19057. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(48)})),
  19058. Fdl: *(*struct {
  19059. Flen1 [0]Tush
  19060. Fdad Tush
  19061. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19062. },
  19063. 263: {
  19064. Ffc: *(*struct {
  19065. Fcode [0]Tush
  19066. Ffreq Tush
  19067. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(112)})),
  19068. Fdl: *(*struct {
  19069. Flen1 [0]Tush
  19070. Fdad Tush
  19071. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19072. },
  19073. 264: {
  19074. Ffc: *(*struct {
  19075. Fcode [0]Tush
  19076. Ffreq Tush
  19077. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19078. Fdl: *(*struct {
  19079. Flen1 [0]Tush
  19080. Fdad Tush
  19081. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19082. },
  19083. 265: {
  19084. Ffc: *(*struct {
  19085. Fcode [0]Tush
  19086. Ffreq Tush
  19087. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(72)})),
  19088. Fdl: *(*struct {
  19089. Flen1 [0]Tush
  19090. Fdad Tush
  19091. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19092. },
  19093. 266: {
  19094. Ffc: *(*struct {
  19095. Fcode [0]Tush
  19096. Ffreq Tush
  19097. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(40)})),
  19098. Fdl: *(*struct {
  19099. Flen1 [0]Tush
  19100. Fdad Tush
  19101. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19102. },
  19103. 267: {
  19104. Ffc: *(*struct {
  19105. Fcode [0]Tush
  19106. Ffreq Tush
  19107. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(104)})),
  19108. Fdl: *(*struct {
  19109. Flen1 [0]Tush
  19110. Fdad Tush
  19111. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19112. },
  19113. 268: {
  19114. Ffc: *(*struct {
  19115. Fcode [0]Tush
  19116. Ffreq Tush
  19117. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(24)})),
  19118. Fdl: *(*struct {
  19119. Flen1 [0]Tush
  19120. Fdad Tush
  19121. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19122. },
  19123. 269: {
  19124. Ffc: *(*struct {
  19125. Fcode [0]Tush
  19126. Ffreq Tush
  19127. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(88)})),
  19128. Fdl: *(*struct {
  19129. Flen1 [0]Tush
  19130. Fdad Tush
  19131. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19132. },
  19133. 270: {
  19134. Ffc: *(*struct {
  19135. Fcode [0]Tush
  19136. Ffreq Tush
  19137. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(56)})),
  19138. Fdl: *(*struct {
  19139. Flen1 [0]Tush
  19140. Fdad Tush
  19141. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19142. },
  19143. 271: {
  19144. Ffc: *(*struct {
  19145. Fcode [0]Tush
  19146. Ffreq Tush
  19147. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(120)})),
  19148. Fdl: *(*struct {
  19149. Flen1 [0]Tush
  19150. Fdad Tush
  19151. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19152. },
  19153. 272: {
  19154. Ffc: *(*struct {
  19155. Fcode [0]Tush
  19156. Ffreq Tush
  19157. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(4)})),
  19158. Fdl: *(*struct {
  19159. Flen1 [0]Tush
  19160. Fdad Tush
  19161. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19162. },
  19163. 273: {
  19164. Ffc: *(*struct {
  19165. Fcode [0]Tush
  19166. Ffreq Tush
  19167. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(68)})),
  19168. Fdl: *(*struct {
  19169. Flen1 [0]Tush
  19170. Fdad Tush
  19171. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19172. },
  19173. 274: {
  19174. Ffc: *(*struct {
  19175. Fcode [0]Tush
  19176. Ffreq Tush
  19177. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(36)})),
  19178. Fdl: *(*struct {
  19179. Flen1 [0]Tush
  19180. Fdad Tush
  19181. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19182. },
  19183. 275: {
  19184. Ffc: *(*struct {
  19185. Fcode [0]Tush
  19186. Ffreq Tush
  19187. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(100)})),
  19188. Fdl: *(*struct {
  19189. Flen1 [0]Tush
  19190. Fdad Tush
  19191. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19192. },
  19193. 276: {
  19194. Ffc: *(*struct {
  19195. Fcode [0]Tush
  19196. Ffreq Tush
  19197. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(20)})),
  19198. Fdl: *(*struct {
  19199. Flen1 [0]Tush
  19200. Fdad Tush
  19201. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19202. },
  19203. 277: {
  19204. Ffc: *(*struct {
  19205. Fcode [0]Tush
  19206. Ffreq Tush
  19207. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(84)})),
  19208. Fdl: *(*struct {
  19209. Flen1 [0]Tush
  19210. Fdad Tush
  19211. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19212. },
  19213. 278: {
  19214. Ffc: *(*struct {
  19215. Fcode [0]Tush
  19216. Ffreq Tush
  19217. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(52)})),
  19218. Fdl: *(*struct {
  19219. Flen1 [0]Tush
  19220. Fdad Tush
  19221. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19222. },
  19223. 279: {
  19224. Ffc: *(*struct {
  19225. Fcode [0]Tush
  19226. Ffreq Tush
  19227. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(116)})),
  19228. Fdl: *(*struct {
  19229. Flen1 [0]Tush
  19230. Fdad Tush
  19231. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19232. },
  19233. 280: {
  19234. Ffc: *(*struct {
  19235. Fcode [0]Tush
  19236. Ffreq Tush
  19237. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(3)})),
  19238. Fdl: *(*struct {
  19239. Flen1 [0]Tush
  19240. Fdad Tush
  19241. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19242. },
  19243. 281: {
  19244. Ffc: *(*struct {
  19245. Fcode [0]Tush
  19246. Ffreq Tush
  19247. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(131)})),
  19248. Fdl: *(*struct {
  19249. Flen1 [0]Tush
  19250. Fdad Tush
  19251. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19252. },
  19253. 282: {
  19254. Ffc: *(*struct {
  19255. Fcode [0]Tush
  19256. Ffreq Tush
  19257. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(67)})),
  19258. Fdl: *(*struct {
  19259. Flen1 [0]Tush
  19260. Fdad Tush
  19261. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19262. },
  19263. 283: {
  19264. Ffc: *(*struct {
  19265. Fcode [0]Tush
  19266. Ffreq Tush
  19267. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(195)})),
  19268. Fdl: *(*struct {
  19269. Flen1 [0]Tush
  19270. Fdad Tush
  19271. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19272. },
  19273. 284: {
  19274. Ffc: *(*struct {
  19275. Fcode [0]Tush
  19276. Ffreq Tush
  19277. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(35)})),
  19278. Fdl: *(*struct {
  19279. Flen1 [0]Tush
  19280. Fdad Tush
  19281. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19282. },
  19283. 285: {
  19284. Ffc: *(*struct {
  19285. Fcode [0]Tush
  19286. Ffreq Tush
  19287. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(163)})),
  19288. Fdl: *(*struct {
  19289. Flen1 [0]Tush
  19290. Fdad Tush
  19291. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19292. },
  19293. 286: {
  19294. Ffc: *(*struct {
  19295. Fcode [0]Tush
  19296. Ffreq Tush
  19297. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(99)})),
  19298. Fdl: *(*struct {
  19299. Flen1 [0]Tush
  19300. Fdad Tush
  19301. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19302. },
  19303. 287: {
  19304. Ffc: *(*struct {
  19305. Fcode [0]Tush
  19306. Ffreq Tush
  19307. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(227)})),
  19308. Fdl: *(*struct {
  19309. Flen1 [0]Tush
  19310. Fdad Tush
  19311. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19312. },
  19313. }
  19314. var _static_dtree = [30]Tct_data{
  19315. 0: {
  19316. Fdl: *(*struct {
  19317. Flen1 [0]Tush
  19318. Fdad Tush
  19319. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19320. },
  19321. 1: {
  19322. Ffc: *(*struct {
  19323. Fcode [0]Tush
  19324. Ffreq Tush
  19325. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(16)})),
  19326. Fdl: *(*struct {
  19327. Flen1 [0]Tush
  19328. Fdad Tush
  19329. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19330. },
  19331. 2: {
  19332. Ffc: *(*struct {
  19333. Fcode [0]Tush
  19334. Ffreq Tush
  19335. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19336. Fdl: *(*struct {
  19337. Flen1 [0]Tush
  19338. Fdad Tush
  19339. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19340. },
  19341. 3: {
  19342. Ffc: *(*struct {
  19343. Fcode [0]Tush
  19344. Ffreq Tush
  19345. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(24)})),
  19346. Fdl: *(*struct {
  19347. Flen1 [0]Tush
  19348. Fdad Tush
  19349. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19350. },
  19351. 4: {
  19352. Ffc: *(*struct {
  19353. Fcode [0]Tush
  19354. Ffreq Tush
  19355. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(4)})),
  19356. Fdl: *(*struct {
  19357. Flen1 [0]Tush
  19358. Fdad Tush
  19359. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19360. },
  19361. 5: {
  19362. Ffc: *(*struct {
  19363. Fcode [0]Tush
  19364. Ffreq Tush
  19365. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(20)})),
  19366. Fdl: *(*struct {
  19367. Flen1 [0]Tush
  19368. Fdad Tush
  19369. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19370. },
  19371. 6: {
  19372. Ffc: *(*struct {
  19373. Fcode [0]Tush
  19374. Ffreq Tush
  19375. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(12)})),
  19376. Fdl: *(*struct {
  19377. Flen1 [0]Tush
  19378. Fdad Tush
  19379. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19380. },
  19381. 7: {
  19382. Ffc: *(*struct {
  19383. Fcode [0]Tush
  19384. Ffreq Tush
  19385. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(28)})),
  19386. Fdl: *(*struct {
  19387. Flen1 [0]Tush
  19388. Fdad Tush
  19389. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19390. },
  19391. 8: {
  19392. Ffc: *(*struct {
  19393. Fcode [0]Tush
  19394. Ffreq Tush
  19395. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(2)})),
  19396. Fdl: *(*struct {
  19397. Flen1 [0]Tush
  19398. Fdad Tush
  19399. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19400. },
  19401. 9: {
  19402. Ffc: *(*struct {
  19403. Fcode [0]Tush
  19404. Ffreq Tush
  19405. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(18)})),
  19406. Fdl: *(*struct {
  19407. Flen1 [0]Tush
  19408. Fdad Tush
  19409. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19410. },
  19411. 10: {
  19412. Ffc: *(*struct {
  19413. Fcode [0]Tush
  19414. Ffreq Tush
  19415. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(10)})),
  19416. Fdl: *(*struct {
  19417. Flen1 [0]Tush
  19418. Fdad Tush
  19419. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19420. },
  19421. 11: {
  19422. Ffc: *(*struct {
  19423. Fcode [0]Tush
  19424. Ffreq Tush
  19425. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(26)})),
  19426. Fdl: *(*struct {
  19427. Flen1 [0]Tush
  19428. Fdad Tush
  19429. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19430. },
  19431. 12: {
  19432. Ffc: *(*struct {
  19433. Fcode [0]Tush
  19434. Ffreq Tush
  19435. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(6)})),
  19436. Fdl: *(*struct {
  19437. Flen1 [0]Tush
  19438. Fdad Tush
  19439. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19440. },
  19441. 13: {
  19442. Ffc: *(*struct {
  19443. Fcode [0]Tush
  19444. Ffreq Tush
  19445. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(22)})),
  19446. Fdl: *(*struct {
  19447. Flen1 [0]Tush
  19448. Fdad Tush
  19449. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19450. },
  19451. 14: {
  19452. Ffc: *(*struct {
  19453. Fcode [0]Tush
  19454. Ffreq Tush
  19455. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(14)})),
  19456. Fdl: *(*struct {
  19457. Flen1 [0]Tush
  19458. Fdad Tush
  19459. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19460. },
  19461. 15: {
  19462. Ffc: *(*struct {
  19463. Fcode [0]Tush
  19464. Ffreq Tush
  19465. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(30)})),
  19466. Fdl: *(*struct {
  19467. Flen1 [0]Tush
  19468. Fdad Tush
  19469. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19470. },
  19471. 16: {
  19472. Ffc: *(*struct {
  19473. Fcode [0]Tush
  19474. Ffreq Tush
  19475. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(1)})),
  19476. Fdl: *(*struct {
  19477. Flen1 [0]Tush
  19478. Fdad Tush
  19479. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19480. },
  19481. 17: {
  19482. Ffc: *(*struct {
  19483. Fcode [0]Tush
  19484. Ffreq Tush
  19485. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(17)})),
  19486. Fdl: *(*struct {
  19487. Flen1 [0]Tush
  19488. Fdad Tush
  19489. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19490. },
  19491. 18: {
  19492. Ffc: *(*struct {
  19493. Fcode [0]Tush
  19494. Ffreq Tush
  19495. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19496. Fdl: *(*struct {
  19497. Flen1 [0]Tush
  19498. Fdad Tush
  19499. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19500. },
  19501. 19: {
  19502. Ffc: *(*struct {
  19503. Fcode [0]Tush
  19504. Ffreq Tush
  19505. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(25)})),
  19506. Fdl: *(*struct {
  19507. Flen1 [0]Tush
  19508. Fdad Tush
  19509. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19510. },
  19511. 20: {
  19512. Ffc: *(*struct {
  19513. Fcode [0]Tush
  19514. Ffreq Tush
  19515. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19516. Fdl: *(*struct {
  19517. Flen1 [0]Tush
  19518. Fdad Tush
  19519. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19520. },
  19521. 21: {
  19522. Ffc: *(*struct {
  19523. Fcode [0]Tush
  19524. Ffreq Tush
  19525. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(21)})),
  19526. Fdl: *(*struct {
  19527. Flen1 [0]Tush
  19528. Fdad Tush
  19529. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19530. },
  19531. 22: {
  19532. Ffc: *(*struct {
  19533. Fcode [0]Tush
  19534. Ffreq Tush
  19535. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(13)})),
  19536. Fdl: *(*struct {
  19537. Flen1 [0]Tush
  19538. Fdad Tush
  19539. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19540. },
  19541. 23: {
  19542. Ffc: *(*struct {
  19543. Fcode [0]Tush
  19544. Ffreq Tush
  19545. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(29)})),
  19546. Fdl: *(*struct {
  19547. Flen1 [0]Tush
  19548. Fdad Tush
  19549. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19550. },
  19551. 24: {
  19552. Ffc: *(*struct {
  19553. Fcode [0]Tush
  19554. Ffreq Tush
  19555. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(3)})),
  19556. Fdl: *(*struct {
  19557. Flen1 [0]Tush
  19558. Fdad Tush
  19559. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19560. },
  19561. 25: {
  19562. Ffc: *(*struct {
  19563. Fcode [0]Tush
  19564. Ffreq Tush
  19565. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(19)})),
  19566. Fdl: *(*struct {
  19567. Flen1 [0]Tush
  19568. Fdad Tush
  19569. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19570. },
  19571. 26: {
  19572. Ffc: *(*struct {
  19573. Fcode [0]Tush
  19574. Ffreq Tush
  19575. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(11)})),
  19576. Fdl: *(*struct {
  19577. Flen1 [0]Tush
  19578. Fdad Tush
  19579. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19580. },
  19581. 27: {
  19582. Ffc: *(*struct {
  19583. Fcode [0]Tush
  19584. Ffreq Tush
  19585. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(27)})),
  19586. Fdl: *(*struct {
  19587. Flen1 [0]Tush
  19588. Fdad Tush
  19589. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19590. },
  19591. 28: {
  19592. Ffc: *(*struct {
  19593. Fcode [0]Tush
  19594. Ffreq Tush
  19595. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19596. Fdl: *(*struct {
  19597. Flen1 [0]Tush
  19598. Fdad Tush
  19599. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19600. },
  19601. 29: {
  19602. Ffc: *(*struct {
  19603. Fcode [0]Tush
  19604. Ffreq Tush
  19605. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(23)})),
  19606. Fdl: *(*struct {
  19607. Flen1 [0]Tush
  19608. Fdad Tush
  19609. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19610. },
  19611. }
  19612. var _base_length = [29]int32{
  19613. 1: int32(1),
  19614. 2: int32(2),
  19615. 3: int32(3),
  19616. 4: int32(4),
  19617. 5: int32(5),
  19618. 6: int32(6),
  19619. 7: int32(7),
  19620. 8: int32(8),
  19621. 9: int32(10),
  19622. 10: int32(12),
  19623. 11: int32(14),
  19624. 12: int32(16),
  19625. 13: int32(20),
  19626. 14: int32(24),
  19627. 15: int32(28),
  19628. 16: int32(32),
  19629. 17: int32(40),
  19630. 18: int32(48),
  19631. 19: int32(56),
  19632. 20: int32(64),
  19633. 21: int32(80),
  19634. 22: int32(96),
  19635. 23: int32(112),
  19636. 24: int32(128),
  19637. 25: int32(160),
  19638. 26: int32(192),
  19639. 27: int32(224),
  19640. }
  19641. var _base_dist = [30]int32{
  19642. 1: int32(1),
  19643. 2: int32(2),
  19644. 3: int32(3),
  19645. 4: int32(4),
  19646. 5: int32(6),
  19647. 6: int32(8),
  19648. 7: int32(12),
  19649. 8: int32(16),
  19650. 9: int32(24),
  19651. 10: int32(32),
  19652. 11: int32(48),
  19653. 12: int32(64),
  19654. 13: int32(96),
  19655. 14: int32(128),
  19656. 15: int32(192),
  19657. 16: int32(256),
  19658. 17: int32(384),
  19659. 18: int32(512),
  19660. 19: int32(768),
  19661. 20: int32(1024),
  19662. 21: int32(1536),
  19663. 22: int32(2048),
  19664. 23: int32(3072),
  19665. 24: int32(4096),
  19666. 25: int32(6144),
  19667. 26: int32(8192),
  19668. 27: int32(12288),
  19669. 28: int32(16384),
  19670. 29: int32(24576),
  19671. }
  19672. var _static_l_desc = Tstatic_tree_desc{
  19673. Fstatic_tree: uintptr(unsafe.Pointer(&_static_ltree)),
  19674. Fextra_bits: uintptr(unsafe.Pointer(&_extra_lbits)),
  19675. Fextra_base: libc.Int32FromInt32(m_LITERALS) + libc.Int32FromInt32(1),
  19676. Felems: libc.Int32FromInt32(m_LITERALS) + libc.Int32FromInt32(1) + libc.Int32FromInt32(m_LENGTH_CODES),
  19677. Fmax_length: int32(m_MAX_BITS),
  19678. }
  19679. var _static_d_desc = Tstatic_tree_desc{
  19680. Fstatic_tree: uintptr(unsafe.Pointer(&_static_dtree)),
  19681. Fextra_bits: uintptr(unsafe.Pointer(&_extra_dbits)),
  19682. Felems: int32(m_D_CODES),
  19683. Fmax_length: int32(m_MAX_BITS),
  19684. }
  19685. var _static_bl_desc = Tstatic_tree_desc{
  19686. Fextra_bits: uintptr(unsafe.Pointer(&_extra_blbits)),
  19687. Felems: int32(m_BL_CODES),
  19688. Fmax_length: int32(m_MAX_BL_BITS),
  19689. }
  19690. /* ===========================================================================
  19691. * Output a short LSB first on the stream.
  19692. * IN assertion: there is enough room in pendingBuf.
  19693. */
  19694. // C documentation
  19695. //
  19696. // /* ===========================================================================
  19697. // * Reverse the first len bits of a code, using straightforward code (a faster
  19698. // * method would use a table)
  19699. // * IN assertion: 1 <= len <= 15
  19700. // */
  19701. func _bi_reverse(tls *libc.TLS, code uint32, len1 int32) (r uint32) {
  19702. var res uint32
  19703. var v1 int32
  19704. _, _ = res, v1
  19705. res = uint32(0)
  19706. for {
  19707. res |= code & uint32(1)
  19708. code >>= uint32(1)
  19709. res <<= uint32(1)
  19710. goto _2
  19711. _2:
  19712. len1--
  19713. v1 = len1
  19714. if !(v1 > 0) {
  19715. break
  19716. }
  19717. }
  19718. return res >> int32(1)
  19719. }
  19720. // C documentation
  19721. //
  19722. // /* ===========================================================================
  19723. // * Flush the bit buffer, keeping at most 7 bits in it.
  19724. // */
  19725. func _bi_flush(tls *libc.TLS, s uintptr) {
  19726. var v1, v3, v5 Tulg
  19727. var v2, v4, v6, p7 uintptr
  19728. _, _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6, p7
  19729. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid == int32(16) {
  19730. v2 = s + 40
  19731. v1 = *(*Tulg)(unsafe.Pointer(v2))
  19732. *(*Tulg)(unsafe.Pointer(v2))++
  19733. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19734. v4 = s + 40
  19735. v3 = *(*Tulg)(unsafe.Pointer(v4))
  19736. *(*Tulg)(unsafe.Pointer(v4))++
  19737. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19738. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  19739. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  19740. } else {
  19741. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid >= int32(8) {
  19742. v6 = s + 40
  19743. v5 = *(*Tulg)(unsafe.Pointer(v6))
  19744. *(*Tulg)(unsafe.Pointer(v6))++
  19745. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf)
  19746. p7 = s + 5936
  19747. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) >> libc.Int32FromInt32(8))
  19748. *(*int32)(unsafe.Pointer(s + 5940)) -= int32(8)
  19749. }
  19750. }
  19751. }
  19752. // C documentation
  19753. //
  19754. // /* ===========================================================================
  19755. // * Flush the bit buffer and align the output on a byte boundary
  19756. // */
  19757. func _bi_windup(tls *libc.TLS, s uintptr) {
  19758. var v1, v3, v5 Tulg
  19759. var v2, v4, v6 uintptr
  19760. _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6
  19761. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > int32(8) {
  19762. v2 = s + 40
  19763. v1 = *(*Tulg)(unsafe.Pointer(v2))
  19764. *(*Tulg)(unsafe.Pointer(v2))++
  19765. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19766. v4 = s + 40
  19767. v3 = *(*Tulg)(unsafe.Pointer(v4))
  19768. *(*Tulg)(unsafe.Pointer(v4))++
  19769. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19770. } else {
  19771. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > 0 {
  19772. v6 = s + 40
  19773. v5 = *(*Tulg)(unsafe.Pointer(v6))
  19774. *(*Tulg)(unsafe.Pointer(v6))++
  19775. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf)
  19776. }
  19777. }
  19778. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  19779. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  19780. }
  19781. // C documentation
  19782. //
  19783. // /* ===========================================================================
  19784. // * Generate the codes for a given tree and bit counts (which need not be
  19785. // * optimal).
  19786. // * IN assertion: the array bl_count contains the bit length statistics for
  19787. // * the given tree and the field len is set for all tree elements.
  19788. // * OUT assertion: the field code is set for all tree elements of non
  19789. // * zero code length.
  19790. // */
  19791. func _gen_codes(tls *libc.TLS, tree uintptr, max_code int32, bl_count uintptr) {
  19792. bp := tls.Alloc(32)
  19793. defer tls.Free(32)
  19794. var bits, len1, n int32
  19795. var code uint32
  19796. var v3 Tush
  19797. var v4 uintptr
  19798. var _ /* next_code at bp+0 */ [16]Tush
  19799. _, _, _, _, _, _ = bits, code, len1, n, v3, v4 /* next code value for each bit length */
  19800. code = uint32(0) /* code index */
  19801. /* The distribution counts are first used to generate the code values
  19802. * without bit reversal.
  19803. */
  19804. bits = int32(1)
  19805. for {
  19806. if !(bits <= int32(m_MAX_BITS)) {
  19807. break
  19808. }
  19809. code = (code + uint32(*(*Tushf)(unsafe.Pointer(bl_count + uintptr(bits-int32(1))*2)))) << int32(1)
  19810. (*(*[16]Tush)(unsafe.Pointer(bp)))[bits] = uint16(code)
  19811. goto _1
  19812. _1:
  19813. bits++
  19814. }
  19815. /* Check that the bit counts in bl_count are consistent. The last code
  19816. * must be all ones.
  19817. */
  19818. n = 0
  19819. for {
  19820. if !(n <= max_code) {
  19821. break
  19822. }
  19823. len1 = int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)))
  19824. if len1 == 0 {
  19825. goto _2
  19826. }
  19827. /* Now reverse the bits */
  19828. v4 = bp + uintptr(len1)*2
  19829. v3 = *(*Tush)(unsafe.Pointer(v4))
  19830. *(*Tush)(unsafe.Pointer(v4))++
  19831. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4)) = uint16(_bi_reverse(tls, uint32(v3), len1))
  19832. goto _2
  19833. _2:
  19834. n++
  19835. }
  19836. }
  19837. /* Send a code of the given tree. c and tree must not have side effects */
  19838. /* ===========================================================================
  19839. * Send a value on a given number of bits.
  19840. * IN assertion: length <= 16 and value fits in length bits.
  19841. */
  19842. /* the arguments must not have side effects */
  19843. // C documentation
  19844. //
  19845. // /* ===========================================================================
  19846. // * Initialize the various 'constant' tables.
  19847. // */
  19848. func _tr_static_init(tls *libc.TLS) {
  19849. }
  19850. /* ===========================================================================
  19851. * Generate the file trees.h describing the static trees.
  19852. */
  19853. // C documentation
  19854. //
  19855. // /* ===========================================================================
  19856. // * Initialize a new block.
  19857. // */
  19858. func _init_block(tls *libc.TLS, s uintptr) {
  19859. var n int32
  19860. var v4 Tulg
  19861. var v5 TuInt
  19862. _, _, _ = n, v4, v5 /* iterates over tree elements */
  19863. /* Initialize the trees. */
  19864. n = 0
  19865. for {
  19866. if !(n < libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES)) {
  19867. break
  19868. }
  19869. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(n)*4)) = uint16(0)
  19870. goto _1
  19871. _1:
  19872. n++
  19873. }
  19874. n = 0
  19875. for {
  19876. if !(n < int32(m_D_CODES)) {
  19877. break
  19878. }
  19879. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(n)*4)) = uint16(0)
  19880. goto _2
  19881. _2:
  19882. n++
  19883. }
  19884. n = 0
  19885. for {
  19886. if !(n < int32(m_BL_CODES)) {
  19887. break
  19888. }
  19889. *(*Tush)(unsafe.Pointer(s + 2748 + uintptr(n)*4)) = uint16(0)
  19890. goto _3
  19891. _3:
  19892. n++
  19893. }
  19894. *(*Tush)(unsafe.Pointer(s + 212 + 256*4)) = uint16(1)
  19895. v4 = libc.Uint64FromInt64(0)
  19896. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatic_len = v4
  19897. (*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len = v4
  19898. v5 = libc.Uint32FromInt32(0)
  19899. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = v5
  19900. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next = v5
  19901. }
  19902. // C documentation
  19903. //
  19904. // /* ===========================================================================
  19905. // * Initialize the tree data structures for a new zlib stream.
  19906. // */
  19907. func x__tr_init(tls *libc.TLS, s uintptr) {
  19908. _tr_static_init(tls)
  19909. (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fdyn_tree = s + 212
  19910. (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_l_desc))
  19911. (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fdyn_tree = s + 2504
  19912. (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_d_desc))
  19913. (*Tdeflate_state)(unsafe.Pointer(s)).Fbl_desc.Fdyn_tree = s + 2748
  19914. (*Tdeflate_state)(unsafe.Pointer(s)).Fbl_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_bl_desc))
  19915. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  19916. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  19917. /* Initialize the first block of the first file: */
  19918. _init_block(tls, s)
  19919. }
  19920. /* Index within the heap array of least frequent node in the Huffman tree */
  19921. /* ===========================================================================
  19922. * Remove the smallest element from the heap and recreate the heap with
  19923. * one less element. Updates heap and heap_len.
  19924. */
  19925. /* ===========================================================================
  19926. * Compares to subtrees, using the tree depth as tie breaker when
  19927. * the subtrees have equal frequency. This minimizes the worst case length.
  19928. */
  19929. // C documentation
  19930. //
  19931. // /* ===========================================================================
  19932. // * Restore the heap property by moving down the tree starting at node k,
  19933. // * exchanging a node with the smallest of its two sons if necessary, stopping
  19934. // * when the heap property is re-established (each father smaller than its
  19935. // * two sons).
  19936. // */
  19937. func _pqdownheap(tls *libc.TLS, s uintptr, tree uintptr, k int32) {
  19938. var j, v int32
  19939. _, _ = j, v
  19940. v = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(k)*4))
  19941. j = k << int32(1) /* left son of k */
  19942. for j <= (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len {
  19943. /* Set j to the smallest of the two sons: */
  19944. if j < (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len && (int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j+int32(1))*4)))*4))) < int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) || int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j+int32(1))*4)))*4))) == int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) && int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j+int32(1))*4)))))) <= int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4))))))) {
  19945. j++
  19946. }
  19947. /* Exit if v is smaller than both sons */
  19948. if int32(*(*Tush)(unsafe.Pointer(tree + uintptr(v)*4))) < int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) || int32(*(*Tush)(unsafe.Pointer(tree + uintptr(v)*4))) == int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) && int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(v)))) <= int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))))) {
  19949. break
  19950. }
  19951. /* Exchange v with the smallest son */
  19952. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(k)*4)) = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4))
  19953. k = j
  19954. /* And continue down the tree, setting j to the left son of k */
  19955. j <<= int32(1)
  19956. }
  19957. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(k)*4)) = v
  19958. }
  19959. // C documentation
  19960. //
  19961. // /* ===========================================================================
  19962. // * Compute the optimal bit lengths for a tree and update the total bit length
  19963. // * for the current block.
  19964. // * IN assertion: the fields freq and dad are set, heap[heap_max] and
  19965. // * above are the tree nodes sorted by increasing frequency.
  19966. // * OUT assertions: the field len is set to the optimal bit length, the
  19967. // * array bl_count contains the frequencies for each bit length.
  19968. // * The length opt_len is updated; static_len is also updated if stree is
  19969. // * not null.
  19970. // */
  19971. func _gen_bitlen(tls *libc.TLS, s uintptr, desc uintptr) {
  19972. var base, bits, h, m, max_code, max_length, n, overflow, xbits, v5 int32
  19973. var extra, stree, tree, p3 uintptr
  19974. var f Tush
  19975. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = base, bits, extra, f, h, m, max_code, max_length, n, overflow, stree, tree, xbits, v5, p3
  19976. tree = (*Ttree_desc)(unsafe.Pointer(desc)).Fdyn_tree
  19977. max_code = (*Ttree_desc)(unsafe.Pointer(desc)).Fmax_code
  19978. stree = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fstatic_tree
  19979. extra = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fextra_bits
  19980. base = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fextra_base
  19981. max_length = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fmax_length /* frequency */
  19982. overflow = 0 /* number of elements with bit length too large */
  19983. bits = 0
  19984. for {
  19985. if !(bits <= int32(m_MAX_BITS)) {
  19986. break
  19987. }
  19988. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2)) = uint16(0)
  19989. goto _1
  19990. _1:
  19991. bits++
  19992. }
  19993. /* In a first pass, compute the optimal bit lengths (which may
  19994. * overflow in the case of the bit length tree).
  19995. */
  19996. *(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fheap_max)*4)))*4 + 2)) = uint16(0) /* root of the heap */
  19997. h = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_max + int32(1)
  19998. for {
  19999. if !(h < libc.Int32FromInt32(2)*(libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES))+libc.Int32FromInt32(1)) {
  20000. break
  20001. }
  20002. n = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(h)*4))
  20003. bits = int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)))*4 + 2))) + int32(1)
  20004. if bits > max_length {
  20005. bits = max_length
  20006. overflow++
  20007. }
  20008. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = uint16(bits)
  20009. /* We overwrite tree[n].Dad which is no longer needed */
  20010. if n > max_code {
  20011. goto _2
  20012. } /* not a leaf node */
  20013. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2))++
  20014. xbits = 0
  20015. if n >= base {
  20016. xbits = *(*Tintf)(unsafe.Pointer(extra + uintptr(n-base)*4))
  20017. }
  20018. f = *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))
  20019. *(*Tulg)(unsafe.Pointer(s + 5912)) += uint64(f) * uint64(uint32(bits+xbits))
  20020. if stree != 0 {
  20021. *(*Tulg)(unsafe.Pointer(s + 5920)) += uint64(f) * uint64(uint32(int32(*(*Tush)(unsafe.Pointer(stree + uintptr(n)*4 + 2)))+xbits))
  20022. }
  20023. goto _2
  20024. _2:
  20025. h++
  20026. }
  20027. if overflow == 0 {
  20028. return
  20029. }
  20030. /* This happens for example on obj2 and pic of the Calgary corpus */
  20031. /* Find the first bit length which could increase: */
  20032. for cond := true; cond; cond = overflow > 0 {
  20033. bits = max_length - int32(1)
  20034. for int32(*(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2))) == 0 {
  20035. bits--
  20036. }
  20037. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2))-- /* move one leaf down the tree */
  20038. p3 = s + 2976 + uintptr(bits+int32(1))*2
  20039. *(*Tush)(unsafe.Pointer(p3)) = Tush(int32(*(*Tush)(unsafe.Pointer(p3))) + libc.Int32FromInt32(2)) /* move one overflow item as its brother */
  20040. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(max_length)*2))--
  20041. /* The brother of the overflow item also moves one step up,
  20042. * but this does not affect bl_count[max_length]
  20043. */
  20044. overflow -= int32(2)
  20045. }
  20046. /* Now recompute all bit lengths, scanning in increasing frequency.
  20047. * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
  20048. * lengths instead of fixing only the wrong ones. This idea is taken
  20049. * from 'ar' written by Haruhiko Okumura.)
  20050. */
  20051. bits = max_length
  20052. for {
  20053. if !(bits != 0) {
  20054. break
  20055. }
  20056. n = int32(*(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2)))
  20057. for n != 0 {
  20058. h--
  20059. v5 = h
  20060. m = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v5)*4))
  20061. if m > max_code {
  20062. continue
  20063. }
  20064. if uint32(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2))) != uint32(bits) {
  20065. *(*Tulg)(unsafe.Pointer(s + 5912)) += (uint64(bits) - uint64(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)))) * uint64(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4)))
  20066. *(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)) = uint16(bits)
  20067. }
  20068. n--
  20069. }
  20070. goto _4
  20071. _4:
  20072. bits--
  20073. }
  20074. }
  20075. // C documentation
  20076. //
  20077. // /* ===========================================================================
  20078. // * Construct one Huffman tree and assigns the code bit strings and lengths.
  20079. // * Update the total bit length for the current block.
  20080. // * IN assertion: the field freq is set for all tree elements.
  20081. // * OUT assertions: the fields len and code are set to the optimal bit length
  20082. // * and corresponding code. The length opt_len is updated; static_len is
  20083. // * also updated if stree is not null. The field max_code is set.
  20084. // */
  20085. func _build_tree(tls *libc.TLS, s uintptr, desc uintptr) {
  20086. var elems, m, max_code, n, node, v11, v13, v15, v17, v19, v2, v20, v4, v5, v6, v7, v8 int32
  20087. var stree, tree, v12, v14, v16, v21, v3, v9 uintptr
  20088. var v18 Tush
  20089. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = elems, m, max_code, n, node, stree, tree, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v3, v4, v5, v6, v7, v8, v9
  20090. tree = (*Ttree_desc)(unsafe.Pointer(desc)).Fdyn_tree
  20091. stree = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fstatic_tree
  20092. elems = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Felems /* iterate over heap elements */
  20093. max_code = -int32(1) /* new node being created */
  20094. /* Construct the initial heap, with least frequent element in
  20095. * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n + 1].
  20096. * heap[0] is not used.
  20097. */
  20098. (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len = 0 /* new node being created */
  20099. /* Construct the initial heap, with least frequent element in
  20100. * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n + 1].
  20101. * heap[0] is not used.
  20102. */
  20103. (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_max = libc.Int32FromInt32(2)*(libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES)) + libc.Int32FromInt32(1)
  20104. n = 0
  20105. for {
  20106. if !(n < elems) {
  20107. break
  20108. }
  20109. if int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))) != 0 {
  20110. v3 = s + 5300
  20111. *(*int32)(unsafe.Pointer(v3))++
  20112. v2 = *(*int32)(unsafe.Pointer(v3))
  20113. v4 = n
  20114. max_code = v4
  20115. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v2)*4)) = v4
  20116. *(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(n))) = uint8(0)
  20117. } else {
  20118. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = uint16(0)
  20119. }
  20120. goto _1
  20121. _1:
  20122. n++
  20123. }
  20124. /* The pkzip format requires that at least one distance code exists,
  20125. * and that at least one bit should be sent even if there is only one
  20126. * possible code. So to avoid special checks later on we force at least
  20127. * two codes of non zero frequency.
  20128. */
  20129. for (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len < int32(2) {
  20130. if max_code < int32(2) {
  20131. max_code++
  20132. v7 = max_code
  20133. v6 = v7
  20134. } else {
  20135. v6 = 0
  20136. }
  20137. v5 = v6
  20138. v9 = s + 5300
  20139. *(*int32)(unsafe.Pointer(v9))++
  20140. v8 = *(*int32)(unsafe.Pointer(v9))
  20141. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v8)*4)) = v5
  20142. node = v5
  20143. *(*Tush)(unsafe.Pointer(tree + uintptr(node)*4)) = uint16(1)
  20144. *(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(node))) = uint8(0)
  20145. (*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len--
  20146. if stree != 0 {
  20147. *(*Tulg)(unsafe.Pointer(s + 5920)) -= uint64(*(*Tush)(unsafe.Pointer(stree + uintptr(node)*4 + 2)))
  20148. }
  20149. /* node is 0 or 1 so it does not have extra bits */
  20150. }
  20151. (*Ttree_desc)(unsafe.Pointer(desc)).Fmax_code = max_code
  20152. /* The elements heap[heap_len/2 + 1 .. heap_len] are leaves of the tree,
  20153. * establish sub-heaps of increasing lengths:
  20154. */
  20155. n = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len / int32(2)
  20156. for {
  20157. if !(n >= int32(1)) {
  20158. break
  20159. }
  20160. _pqdownheap(tls, s, tree, n)
  20161. goto _10
  20162. _10:
  20163. n--
  20164. }
  20165. /* Construct the Huffman tree by repeatedly combining the least two
  20166. * frequent nodes.
  20167. */
  20168. node = elems /* next internal node of the tree */
  20169. for cond := true; cond; cond = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len >= int32(2) {
  20170. n = *(*int32)(unsafe.Pointer(s + 3008 + 1*4))
  20171. v12 = s + 5300
  20172. v11 = *(*int32)(unsafe.Pointer(v12))
  20173. *(*int32)(unsafe.Pointer(v12))--
  20174. *(*int32)(unsafe.Pointer(s + 3008 + 1*4)) = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v11)*4))
  20175. _pqdownheap(tls, s, tree, int32(m_SMALLEST)) /* n = node of least frequency */
  20176. m = *(*int32)(unsafe.Pointer(s + 3008 + 1*4)) /* m = node of next least frequency */
  20177. v14 = s + 5304
  20178. *(*int32)(unsafe.Pointer(v14))--
  20179. v13 = *(*int32)(unsafe.Pointer(v14))
  20180. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v13)*4)) = n /* keep the nodes sorted by frequency */
  20181. v16 = s + 5304
  20182. *(*int32)(unsafe.Pointer(v16))--
  20183. v15 = *(*int32)(unsafe.Pointer(v16))
  20184. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v15)*4)) = m
  20185. /* Create a new node father of n and m */
  20186. *(*Tush)(unsafe.Pointer(tree + uintptr(node)*4)) = uint16(int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))) + int32(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4))))
  20187. if int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(n)))) >= int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(m)))) {
  20188. v17 = int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(n))))
  20189. } else {
  20190. v17 = int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(m))))
  20191. }
  20192. *(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(node))) = uint8(v17 + libc.Int32FromInt32(1))
  20193. v18 = uint16(node)
  20194. *(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)) = v18
  20195. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = v18
  20196. /* and insert the new node in the heap */
  20197. v19 = node
  20198. node++
  20199. *(*int32)(unsafe.Pointer(s + 3008 + 1*4)) = v19
  20200. _pqdownheap(tls, s, tree, int32(m_SMALLEST))
  20201. }
  20202. v21 = s + 5304
  20203. *(*int32)(unsafe.Pointer(v21))--
  20204. v20 = *(*int32)(unsafe.Pointer(v21))
  20205. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v20)*4)) = *(*int32)(unsafe.Pointer(s + 3008 + 1*4))
  20206. /* At this point, the fields freq and dad are set. We can now
  20207. * generate the bit lengths.
  20208. */
  20209. _gen_bitlen(tls, s, desc)
  20210. /* The field len is now set, we can generate the bit codes */
  20211. _gen_codes(tls, tree, max_code, s+2976)
  20212. }
  20213. // C documentation
  20214. //
  20215. // /* ===========================================================================
  20216. // * Scan a literal or distance tree to determine the frequencies of the codes
  20217. // * in the bit length tree.
  20218. // */
  20219. func _scan_tree(tls *libc.TLS, s uintptr, tree uintptr, max_code int32) {
  20220. var count, curlen, max_count, min_count, n, nextlen, prevlen, v2 int32
  20221. var p3 uintptr
  20222. _, _, _, _, _, _, _, _, _ = count, curlen, max_count, min_count, n, nextlen, prevlen, v2, p3 /* iterates over all tree elements */
  20223. prevlen = -int32(1) /* length of current code */
  20224. nextlen = int32(*(*Tush)(unsafe.Pointer(tree + 2))) /* length of next code */
  20225. count = 0 /* repeat count of the current code */
  20226. max_count = int32(7) /* max repeat count */
  20227. min_count = int32(4) /* min repeat count */
  20228. if nextlen == 0 {
  20229. max_count = int32(138)
  20230. min_count = libc.Int32FromInt32(3)
  20231. }
  20232. *(*Tush)(unsafe.Pointer(tree + uintptr(max_code+int32(1))*4 + 2)) = libc.Uint16FromInt32(0xffff) /* guard */
  20233. n = 0
  20234. for {
  20235. if !(n <= max_code) {
  20236. break
  20237. }
  20238. curlen = nextlen
  20239. nextlen = int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n+int32(1))*4 + 2)))
  20240. count++
  20241. v2 = count
  20242. if v2 < max_count && curlen == nextlen {
  20243. goto _1
  20244. } else {
  20245. if count < min_count {
  20246. p3 = s + 2748 + uintptr(curlen)*4
  20247. *(*Tush)(unsafe.Pointer(p3)) = Tush(int32(*(*Tush)(unsafe.Pointer(p3))) + count)
  20248. } else {
  20249. if curlen != 0 {
  20250. if curlen != prevlen {
  20251. *(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4))++
  20252. }
  20253. *(*Tush)(unsafe.Pointer(s + 2748 + 16*4))++
  20254. } else {
  20255. if count <= int32(10) {
  20256. *(*Tush)(unsafe.Pointer(s + 2748 + 17*4))++
  20257. } else {
  20258. *(*Tush)(unsafe.Pointer(s + 2748 + 18*4))++
  20259. }
  20260. }
  20261. }
  20262. }
  20263. count = 0
  20264. prevlen = curlen
  20265. if nextlen == 0 {
  20266. max_count = int32(138)
  20267. min_count = libc.Int32FromInt32(3)
  20268. } else {
  20269. if curlen == nextlen {
  20270. max_count = int32(6)
  20271. min_count = libc.Int32FromInt32(3)
  20272. } else {
  20273. max_count = int32(7)
  20274. min_count = libc.Int32FromInt32(4)
  20275. }
  20276. }
  20277. goto _1
  20278. _1:
  20279. n++
  20280. }
  20281. }
  20282. // C documentation
  20283. //
  20284. // /* ===========================================================================
  20285. // * Send a literal or distance tree in compressed form, using the codes in
  20286. // * bl_tree.
  20287. // */
  20288. func _send_tree(tls *libc.TLS, s uintptr, tree uintptr, max_code int32) {
  20289. var count, curlen, len1, len11, len2, len3, len4, len5, len6, len7, max_count, min_count, n, nextlen, prevlen, val, val1, val2, val3, val4, val5, val6, val7, v2, v3 int32
  20290. var v12, v14, v18, v20, v24, v26, v30, v32, v36, v38, v42, v44, v48, v50, v6, v8 Tulg
  20291. var v13, v15, v19, v21, v25, v27, v31, v33, v37, v39, v43, v45, v49, v51, v7, v9, p10, p11, p16, p17, p22, p23, p28, p29, p34, p35, p40, p41, p46, p47, p5, p52 uintptr
  20292. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = count, curlen, len1, len11, len2, len3, len4, len5, len6, len7, max_count, min_count, n, nextlen, prevlen, val, val1, val2, val3, val4, val5, val6, val7, v12, v13, v14, v15, v18, v19, v2, v20, v21, v24, v25, v26, v27, v3, v30, v31, v32, v33, v36, v37, v38, v39, v42, v43, v44, v45, v48, v49, v50, v51, v6, v7, v8, v9, p10, p11, p16, p17, p22, p23, p28, p29, p34, p35, p40, p41, p46, p47, p5, p52 /* iterates over all tree elements */
  20293. prevlen = -int32(1) /* length of current code */
  20294. nextlen = int32(*(*Tush)(unsafe.Pointer(tree + 2))) /* length of next code */
  20295. count = 0 /* repeat count of the current code */
  20296. max_count = int32(7) /* max repeat count */
  20297. min_count = int32(4) /* min repeat count */
  20298. /* tree[max_code + 1].Len = -1; */ /* guard already set */
  20299. if nextlen == 0 {
  20300. max_count = int32(138)
  20301. min_count = libc.Int32FromInt32(3)
  20302. }
  20303. n = 0
  20304. for {
  20305. if !(n <= max_code) {
  20306. break
  20307. }
  20308. curlen = nextlen
  20309. nextlen = int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n+int32(1))*4 + 2)))
  20310. count++
  20311. v2 = count
  20312. if v2 < max_count && curlen == nextlen {
  20313. goto _1
  20314. } else {
  20315. if count < min_count {
  20316. for {
  20317. len1 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4 + 2)))
  20318. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  20319. val = int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))
  20320. p5 = s + 5936
  20321. *(*Tush)(unsafe.Pointer(p5)) = Tush(int32(*(*Tush)(unsafe.Pointer(p5))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20322. v7 = s + 40
  20323. v6 = *(*Tulg)(unsafe.Pointer(v7))
  20324. *(*Tulg)(unsafe.Pointer(v7))++
  20325. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v6))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20326. v9 = s + 40
  20327. v8 = *(*Tulg)(unsafe.Pointer(v9))
  20328. *(*Tulg)(unsafe.Pointer(v9))++
  20329. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20330. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20331. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  20332. } else {
  20333. p10 = s + 5936
  20334. *(*Tush)(unsafe.Pointer(p10)) = Tush(int32(*(*Tush)(unsafe.Pointer(p10))) | int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20335. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  20336. }
  20337. goto _4
  20338. _4:
  20339. count--
  20340. v3 = count
  20341. if !(v3 != 0) {
  20342. break
  20343. }
  20344. }
  20345. } else {
  20346. if curlen != 0 {
  20347. if curlen != prevlen {
  20348. len11 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4 + 2)))
  20349. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  20350. val1 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))
  20351. p11 = s + 5936
  20352. *(*Tush)(unsafe.Pointer(p11)) = Tush(int32(*(*Tush)(unsafe.Pointer(p11))) | int32(uint16(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20353. v13 = s + 40
  20354. v12 = *(*Tulg)(unsafe.Pointer(v13))
  20355. *(*Tulg)(unsafe.Pointer(v13))++
  20356. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v12))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20357. v15 = s + 40
  20358. v14 = *(*Tulg)(unsafe.Pointer(v15))
  20359. *(*Tulg)(unsafe.Pointer(v15))++
  20360. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20361. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20362. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  20363. } else {
  20364. p16 = s + 5936
  20365. *(*Tush)(unsafe.Pointer(p16)) = Tush(int32(*(*Tush)(unsafe.Pointer(p16))) | int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20366. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  20367. }
  20368. count--
  20369. }
  20370. len2 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + 16*4 + 2)))
  20371. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  20372. val2 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + 16*4)))
  20373. p17 = s + 5936
  20374. *(*Tush)(unsafe.Pointer(p17)) = Tush(int32(*(*Tush)(unsafe.Pointer(p17))) | int32(uint16(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20375. v19 = s + 40
  20376. v18 = *(*Tulg)(unsafe.Pointer(v19))
  20377. *(*Tulg)(unsafe.Pointer(v19))++
  20378. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v18))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20379. v21 = s + 40
  20380. v20 = *(*Tulg)(unsafe.Pointer(v21))
  20381. *(*Tulg)(unsafe.Pointer(v21))++
  20382. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v20))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20383. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20384. *(*int32)(unsafe.Pointer(s + 5940)) += len2 - int32(m_Buf_size)
  20385. } else {
  20386. p22 = s + 5936
  20387. *(*Tush)(unsafe.Pointer(p22)) = Tush(int32(*(*Tush)(unsafe.Pointer(p22))) | int32(*(*Tush)(unsafe.Pointer(s + 2748 + 16*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20388. *(*int32)(unsafe.Pointer(s + 5940)) += len2
  20389. }
  20390. len3 = int32(2)
  20391. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  20392. val3 = count - int32(3)
  20393. p23 = s + 5936
  20394. *(*Tush)(unsafe.Pointer(p23)) = Tush(int32(*(*Tush)(unsafe.Pointer(p23))) | int32(uint16(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20395. v25 = s + 40
  20396. v24 = *(*Tulg)(unsafe.Pointer(v25))
  20397. *(*Tulg)(unsafe.Pointer(v25))++
  20398. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20399. v27 = s + 40
  20400. v26 = *(*Tulg)(unsafe.Pointer(v27))
  20401. *(*Tulg)(unsafe.Pointer(v27))++
  20402. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20403. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20404. *(*int32)(unsafe.Pointer(s + 5940)) += len3 - int32(m_Buf_size)
  20405. } else {
  20406. p28 = s + 5936
  20407. *(*Tush)(unsafe.Pointer(p28)) = Tush(int32(*(*Tush)(unsafe.Pointer(p28))) | int32(uint16(count-libc.Int32FromInt32(3)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20408. *(*int32)(unsafe.Pointer(s + 5940)) += len3
  20409. }
  20410. } else {
  20411. if count <= int32(10) {
  20412. len4 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + 17*4 + 2)))
  20413. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len4 {
  20414. val4 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + 17*4)))
  20415. p29 = s + 5936
  20416. *(*Tush)(unsafe.Pointer(p29)) = Tush(int32(*(*Tush)(unsafe.Pointer(p29))) | int32(uint16(val4))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20417. v31 = s + 40
  20418. v30 = *(*Tulg)(unsafe.Pointer(v31))
  20419. *(*Tulg)(unsafe.Pointer(v31))++
  20420. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v30))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20421. v33 = s + 40
  20422. v32 = *(*Tulg)(unsafe.Pointer(v33))
  20423. *(*Tulg)(unsafe.Pointer(v33))++
  20424. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v32))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20425. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val4)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20426. *(*int32)(unsafe.Pointer(s + 5940)) += len4 - int32(m_Buf_size)
  20427. } else {
  20428. p34 = s + 5936
  20429. *(*Tush)(unsafe.Pointer(p34)) = Tush(int32(*(*Tush)(unsafe.Pointer(p34))) | int32(*(*Tush)(unsafe.Pointer(s + 2748 + 17*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20430. *(*int32)(unsafe.Pointer(s + 5940)) += len4
  20431. }
  20432. len5 = int32(3)
  20433. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len5 {
  20434. val5 = count - int32(3)
  20435. p35 = s + 5936
  20436. *(*Tush)(unsafe.Pointer(p35)) = Tush(int32(*(*Tush)(unsafe.Pointer(p35))) | int32(uint16(val5))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20437. v37 = s + 40
  20438. v36 = *(*Tulg)(unsafe.Pointer(v37))
  20439. *(*Tulg)(unsafe.Pointer(v37))++
  20440. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v36))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20441. v39 = s + 40
  20442. v38 = *(*Tulg)(unsafe.Pointer(v39))
  20443. *(*Tulg)(unsafe.Pointer(v39))++
  20444. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v38))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20445. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val5)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20446. *(*int32)(unsafe.Pointer(s + 5940)) += len5 - int32(m_Buf_size)
  20447. } else {
  20448. p40 = s + 5936
  20449. *(*Tush)(unsafe.Pointer(p40)) = Tush(int32(*(*Tush)(unsafe.Pointer(p40))) | int32(uint16(count-libc.Int32FromInt32(3)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20450. *(*int32)(unsafe.Pointer(s + 5940)) += len5
  20451. }
  20452. } else {
  20453. len6 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + 18*4 + 2)))
  20454. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len6 {
  20455. val6 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + 18*4)))
  20456. p41 = s + 5936
  20457. *(*Tush)(unsafe.Pointer(p41)) = Tush(int32(*(*Tush)(unsafe.Pointer(p41))) | int32(uint16(val6))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20458. v43 = s + 40
  20459. v42 = *(*Tulg)(unsafe.Pointer(v43))
  20460. *(*Tulg)(unsafe.Pointer(v43))++
  20461. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v42))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20462. v45 = s + 40
  20463. v44 = *(*Tulg)(unsafe.Pointer(v45))
  20464. *(*Tulg)(unsafe.Pointer(v45))++
  20465. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v44))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20466. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val6)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20467. *(*int32)(unsafe.Pointer(s + 5940)) += len6 - int32(m_Buf_size)
  20468. } else {
  20469. p46 = s + 5936
  20470. *(*Tush)(unsafe.Pointer(p46)) = Tush(int32(*(*Tush)(unsafe.Pointer(p46))) | int32(*(*Tush)(unsafe.Pointer(s + 2748 + 18*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20471. *(*int32)(unsafe.Pointer(s + 5940)) += len6
  20472. }
  20473. len7 = int32(7)
  20474. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len7 {
  20475. val7 = count - int32(11)
  20476. p47 = s + 5936
  20477. *(*Tush)(unsafe.Pointer(p47)) = Tush(int32(*(*Tush)(unsafe.Pointer(p47))) | int32(uint16(val7))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20478. v49 = s + 40
  20479. v48 = *(*Tulg)(unsafe.Pointer(v49))
  20480. *(*Tulg)(unsafe.Pointer(v49))++
  20481. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v48))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20482. v51 = s + 40
  20483. v50 = *(*Tulg)(unsafe.Pointer(v51))
  20484. *(*Tulg)(unsafe.Pointer(v51))++
  20485. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v50))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20486. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val7)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20487. *(*int32)(unsafe.Pointer(s + 5940)) += len7 - int32(m_Buf_size)
  20488. } else {
  20489. p52 = s + 5936
  20490. *(*Tush)(unsafe.Pointer(p52)) = Tush(int32(*(*Tush)(unsafe.Pointer(p52))) | int32(uint16(count-libc.Int32FromInt32(11)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20491. *(*int32)(unsafe.Pointer(s + 5940)) += len7
  20492. }
  20493. }
  20494. }
  20495. }
  20496. }
  20497. count = 0
  20498. prevlen = curlen
  20499. if nextlen == 0 {
  20500. max_count = int32(138)
  20501. min_count = libc.Int32FromInt32(3)
  20502. } else {
  20503. if curlen == nextlen {
  20504. max_count = int32(6)
  20505. min_count = libc.Int32FromInt32(3)
  20506. } else {
  20507. max_count = int32(7)
  20508. min_count = libc.Int32FromInt32(4)
  20509. }
  20510. }
  20511. goto _1
  20512. _1:
  20513. n++
  20514. }
  20515. }
  20516. // C documentation
  20517. //
  20518. // /* ===========================================================================
  20519. // * Construct the Huffman tree for the bit lengths and return the index in
  20520. // * bl_order of the last bit length code to send.
  20521. // */
  20522. func _build_bl_tree(tls *libc.TLS, s uintptr) (r int32) {
  20523. var max_blindex int32
  20524. _ = max_blindex /* index of last bit length code of non zero freq */
  20525. /* Determine the bit length frequencies for literal and distance trees */
  20526. _scan_tree(tls, s, s+212, (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fmax_code)
  20527. _scan_tree(tls, s, s+2504, (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fmax_code)
  20528. /* Build the bit length tree: */
  20529. _build_tree(tls, s, s+2952)
  20530. /* opt_len now includes the length of the tree representations, except the
  20531. * lengths of the bit lengths codes and the 5 + 5 + 4 bits for the counts.
  20532. */
  20533. /* Determine the number of bit length codes to send. The pkzip format
  20534. * requires that at least 4 bit length codes be sent. (appnote.txt says
  20535. * 3 but the actual value used is 4.)
  20536. */
  20537. max_blindex = libc.Int32FromInt32(m_BL_CODES) - libc.Int32FromInt32(1)
  20538. for {
  20539. if !(max_blindex >= int32(3)) {
  20540. break
  20541. }
  20542. if int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(_bl_order[max_blindex])*4 + 2))) != 0 {
  20543. break
  20544. }
  20545. goto _1
  20546. _1:
  20547. max_blindex--
  20548. }
  20549. /* Update opt_len to include the bit length tree and counts */
  20550. *(*Tulg)(unsafe.Pointer(s + 5912)) += uint64(3)*(uint64(max_blindex)+uint64(1)) + uint64(5) + uint64(5) + uint64(4)
  20551. return max_blindex
  20552. }
  20553. // C documentation
  20554. //
  20555. // /* ===========================================================================
  20556. // * Send the header for a block using dynamic Huffman trees: the counts, the
  20557. // * lengths of the bit length codes, the literal tree and the distance tree.
  20558. // * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
  20559. // */
  20560. func _send_all_trees(tls *libc.TLS, s uintptr, lcodes int32, dcodes int32, blcodes int32) {
  20561. var len1, len11, len2, len3, rank, val, val1, val2, val3 int32
  20562. var v10, v14, v16, v2, v21, v23, v4, v8 Tulg
  20563. var v11, v15, v17, v22, v24, v3, v5, v9, p1, p12, p13, p18, p20, p25, p6, p7 uintptr
  20564. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, len11, len2, len3, rank, val, val1, val2, val3, v10, v11, v14, v15, v16, v17, v2, v21, v22, v23, v24, v3, v4, v5, v8, v9, p1, p12, p13, p18, p20, p25, p6, p7 /* index in bl_order */
  20565. len1 = int32(5)
  20566. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  20567. val = lcodes - int32(257)
  20568. p1 = s + 5936
  20569. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20570. v3 = s + 40
  20571. v2 = *(*Tulg)(unsafe.Pointer(v3))
  20572. *(*Tulg)(unsafe.Pointer(v3))++
  20573. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20574. v5 = s + 40
  20575. v4 = *(*Tulg)(unsafe.Pointer(v5))
  20576. *(*Tulg)(unsafe.Pointer(v5))++
  20577. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20578. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20579. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  20580. } else {
  20581. p6 = s + 5936
  20582. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | int32(uint16(lcodes-libc.Int32FromInt32(257)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20583. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  20584. } /* not +255 as stated in appnote.txt */
  20585. len11 = int32(5)
  20586. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  20587. val1 = dcodes - int32(1)
  20588. p7 = s + 5936
  20589. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | int32(uint16(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20590. v9 = s + 40
  20591. v8 = *(*Tulg)(unsafe.Pointer(v9))
  20592. *(*Tulg)(unsafe.Pointer(v9))++
  20593. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20594. v11 = s + 40
  20595. v10 = *(*Tulg)(unsafe.Pointer(v11))
  20596. *(*Tulg)(unsafe.Pointer(v11))++
  20597. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20598. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20599. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  20600. } else {
  20601. p12 = s + 5936
  20602. *(*Tush)(unsafe.Pointer(p12)) = Tush(int32(*(*Tush)(unsafe.Pointer(p12))) | int32(uint16(dcodes-libc.Int32FromInt32(1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20603. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  20604. }
  20605. len2 = int32(4)
  20606. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  20607. val2 = blcodes - int32(4)
  20608. p13 = s + 5936
  20609. *(*Tush)(unsafe.Pointer(p13)) = Tush(int32(*(*Tush)(unsafe.Pointer(p13))) | int32(uint16(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20610. v15 = s + 40
  20611. v14 = *(*Tulg)(unsafe.Pointer(v15))
  20612. *(*Tulg)(unsafe.Pointer(v15))++
  20613. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20614. v17 = s + 40
  20615. v16 = *(*Tulg)(unsafe.Pointer(v17))
  20616. *(*Tulg)(unsafe.Pointer(v17))++
  20617. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v16))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20618. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20619. *(*int32)(unsafe.Pointer(s + 5940)) += len2 - int32(m_Buf_size)
  20620. } else {
  20621. p18 = s + 5936
  20622. *(*Tush)(unsafe.Pointer(p18)) = Tush(int32(*(*Tush)(unsafe.Pointer(p18))) | int32(uint16(blcodes-libc.Int32FromInt32(4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20623. *(*int32)(unsafe.Pointer(s + 5940)) += len2
  20624. } /* not -3 as stated in appnote.txt */
  20625. rank = 0
  20626. for {
  20627. if !(rank < blcodes) {
  20628. break
  20629. }
  20630. len3 = int32(3)
  20631. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  20632. val3 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(_bl_order[rank])*4 + 2)))
  20633. p20 = s + 5936
  20634. *(*Tush)(unsafe.Pointer(p20)) = Tush(int32(*(*Tush)(unsafe.Pointer(p20))) | int32(uint16(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20635. v22 = s + 40
  20636. v21 = *(*Tulg)(unsafe.Pointer(v22))
  20637. *(*Tulg)(unsafe.Pointer(v22))++
  20638. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v21))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20639. v24 = s + 40
  20640. v23 = *(*Tulg)(unsafe.Pointer(v24))
  20641. *(*Tulg)(unsafe.Pointer(v24))++
  20642. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v23))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20643. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20644. *(*int32)(unsafe.Pointer(s + 5940)) += len3 - int32(m_Buf_size)
  20645. } else {
  20646. p25 = s + 5936
  20647. *(*Tush)(unsafe.Pointer(p25)) = Tush(int32(*(*Tush)(unsafe.Pointer(p25))) | int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(_bl_order[rank])*4 + 2)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20648. *(*int32)(unsafe.Pointer(s + 5940)) += len3
  20649. }
  20650. goto _19
  20651. _19:
  20652. rank++
  20653. }
  20654. _send_tree(tls, s, s+212, lcodes-int32(1)) /* literal tree */
  20655. _send_tree(tls, s, s+2504, dcodes-int32(1)) /* distance tree */
  20656. }
  20657. // C documentation
  20658. //
  20659. // /* ===========================================================================
  20660. // * Send a stored block
  20661. // */
  20662. func x__tr_stored_block(tls *libc.TLS, s uintptr, buf uintptr, stored_len Tulg, last int32) {
  20663. var len1, val int32
  20664. var v10, v12, v14, v3, v5, v8, p1, p6 uintptr
  20665. var v11, v13, v2, v4, v7, v9 Tulg
  20666. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, val, v10, v11, v12, v13, v14, v2, v3, v4, v5, v7, v8, v9, p1, p6
  20667. len1 = int32(3)
  20668. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  20669. val = libc.Int32FromInt32(m_STORED_BLOCK)<<libc.Int32FromInt32(1) + last
  20670. p1 = s + 5936
  20671. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20672. v3 = s + 40
  20673. v2 = *(*Tulg)(unsafe.Pointer(v3))
  20674. *(*Tulg)(unsafe.Pointer(v3))++
  20675. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20676. v5 = s + 40
  20677. v4 = *(*Tulg)(unsafe.Pointer(v5))
  20678. *(*Tulg)(unsafe.Pointer(v5))++
  20679. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20680. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20681. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  20682. } else {
  20683. p6 = s + 5936
  20684. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | int32(uint16(libc.Int32FromInt32(m_STORED_BLOCK)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20685. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  20686. } /* send block type */
  20687. _bi_windup(tls, s) /* align on byte boundary */
  20688. v8 = s + 40
  20689. v7 = *(*Tulg)(unsafe.Pointer(v8))
  20690. *(*Tulg)(unsafe.Pointer(v8))++
  20691. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v7))) = uint8(int32(uint16(stored_len)) & libc.Int32FromInt32(0xff))
  20692. v10 = s + 40
  20693. v9 = *(*Tulg)(unsafe.Pointer(v10))
  20694. *(*Tulg)(unsafe.Pointer(v10))++
  20695. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v9))) = uint8(int32(uint16(stored_len)) >> libc.Int32FromInt32(8))
  20696. v12 = s + 40
  20697. v11 = *(*Tulg)(unsafe.Pointer(v12))
  20698. *(*Tulg)(unsafe.Pointer(v12))++
  20699. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = uint8(int32(uint16(^stored_len)) & libc.Int32FromInt32(0xff))
  20700. v14 = s + 40
  20701. v13 = *(*Tulg)(unsafe.Pointer(v14))
  20702. *(*Tulg)(unsafe.Pointer(v14))++
  20703. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v13))) = uint8(int32(uint16(^stored_len)) >> libc.Int32FromInt32(8))
  20704. if stored_len != 0 {
  20705. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending), buf, stored_len)
  20706. }
  20707. *(*Tulg)(unsafe.Pointer(s + 40)) += stored_len
  20708. }
  20709. // C documentation
  20710. //
  20711. // /* ===========================================================================
  20712. // * Flush the bits in the bit buffer to pending output (leaves at most 7 bits)
  20713. // */
  20714. func x__tr_flush_bits(tls *libc.TLS, s uintptr) {
  20715. _bi_flush(tls, s)
  20716. }
  20717. // C documentation
  20718. //
  20719. // /* ===========================================================================
  20720. // * Send one empty static block to give enough lookahead for inflate.
  20721. // * This takes 10 bits, of which 7 may remain in the bit buffer.
  20722. // */
  20723. func x__tr_align(tls *libc.TLS, s uintptr) {
  20724. var len1, len11, val, val1 int32
  20725. var v10, v2, v4, v8 Tulg
  20726. var v11, v3, v5, v9, p1, p12, p6, p7 uintptr
  20727. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, len11, val, val1, v10, v11, v2, v3, v4, v5, v8, v9, p1, p12, p6, p7
  20728. len1 = int32(3)
  20729. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  20730. val = libc.Int32FromInt32(m_STATIC_TREES) << libc.Int32FromInt32(1)
  20731. p1 = s + 5936
  20732. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20733. v3 = s + 40
  20734. v2 = *(*Tulg)(unsafe.Pointer(v3))
  20735. *(*Tulg)(unsafe.Pointer(v3))++
  20736. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20737. v5 = s + 40
  20738. v4 = *(*Tulg)(unsafe.Pointer(v5))
  20739. *(*Tulg)(unsafe.Pointer(v5))++
  20740. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20741. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20742. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  20743. } else {
  20744. p6 = s + 5936
  20745. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | int32(uint16(libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20746. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  20747. }
  20748. len11 = int32(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4 + 2)))
  20749. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  20750. val1 = int32(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4)))
  20751. p7 = s + 5936
  20752. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | int32(uint16(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20753. v9 = s + 40
  20754. v8 = *(*Tulg)(unsafe.Pointer(v9))
  20755. *(*Tulg)(unsafe.Pointer(v9))++
  20756. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20757. v11 = s + 40
  20758. v10 = *(*Tulg)(unsafe.Pointer(v11))
  20759. *(*Tulg)(unsafe.Pointer(v11))++
  20760. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20761. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20762. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  20763. } else {
  20764. p12 = s + 5936
  20765. *(*Tush)(unsafe.Pointer(p12)) = Tush(int32(*(*Tush)(unsafe.Pointer(p12))) | int32(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20766. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  20767. }
  20768. _bi_flush(tls, s)
  20769. }
  20770. // C documentation
  20771. //
  20772. // /* ===========================================================================
  20773. // * Send the block data compressed using the given Huffman trees
  20774. // */
  20775. func _compress_block(tls *libc.TLS, s uintptr, ltree uintptr, dtree uintptr) {
  20776. var code, dist, sx, v1, v2, v3 uint32
  20777. var extra, lc, len1, len11, len2, len3, len4, len5, val, val1, val2, val3, val4, val5, v22 int32
  20778. var v11, v13, v17, v19, v24, v26, v30, v32, v36, v38, v5, v7 Tulg
  20779. var v12, v14, v18, v20, v25, v27, v31, v33, v37, v39, v6, v8, p10, p15, p16, p21, p23, p28, p29, p34, p35, p4, p40, p9 uintptr
  20780. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = code, dist, extra, lc, len1, len11, len2, len3, len4, len5, sx, val, val1, val2, val3, val4, val5, v1, v11, v12, v13, v14, v17, v18, v19, v2, v20, v22, v24, v25, v26, v27, v3, v30, v31, v32, v33, v36, v37, v38, v39, v5, v6, v7, v8, p10, p15, p16, p21, p23, p28, p29, p34, p35, p4, p40, p9 /* match length or unmatched char (if dist == 0) */
  20781. sx = uint32(0) /* number of extra bits to send */
  20782. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != uint32(0) {
  20783. for cond := true; cond; cond = sx < (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next {
  20784. v1 = sx
  20785. sx++
  20786. dist = uint32(int32(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v1)))) & int32(0xff))
  20787. v2 = sx
  20788. sx++
  20789. dist += uint32(int32(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v2))))&libc.Int32FromInt32(0xff)) << int32(8)
  20790. v3 = sx
  20791. sx++
  20792. lc = int32(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))))
  20793. if dist == uint32(0) {
  20794. len1 = int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4 + 2)))
  20795. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  20796. val = int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4)))
  20797. p4 = s + 5936
  20798. *(*Tush)(unsafe.Pointer(p4)) = Tush(int32(*(*Tush)(unsafe.Pointer(p4))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20799. v6 = s + 40
  20800. v5 = *(*Tulg)(unsafe.Pointer(v6))
  20801. *(*Tulg)(unsafe.Pointer(v6))++
  20802. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20803. v8 = s + 40
  20804. v7 = *(*Tulg)(unsafe.Pointer(v8))
  20805. *(*Tulg)(unsafe.Pointer(v8))++
  20806. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v7))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20807. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20808. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  20809. } else {
  20810. p9 = s + 5936
  20811. *(*Tush)(unsafe.Pointer(p9)) = Tush(int32(*(*Tush)(unsafe.Pointer(p9))) | int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20812. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  20813. } /* send a literal byte */
  20814. } else {
  20815. /* Here, lc is the match length - MIN_MATCH */
  20816. code = uint32(x__length_code[lc])
  20817. len11 = int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4 + 2)))
  20818. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  20819. val1 = int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4)))
  20820. p10 = s + 5936
  20821. *(*Tush)(unsafe.Pointer(p10)) = Tush(int32(*(*Tush)(unsafe.Pointer(p10))) | int32(uint16(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20822. v12 = s + 40
  20823. v11 = *(*Tulg)(unsafe.Pointer(v12))
  20824. *(*Tulg)(unsafe.Pointer(v12))++
  20825. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20826. v14 = s + 40
  20827. v13 = *(*Tulg)(unsafe.Pointer(v14))
  20828. *(*Tulg)(unsafe.Pointer(v14))++
  20829. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v13))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20830. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20831. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  20832. } else {
  20833. p15 = s + 5936
  20834. *(*Tush)(unsafe.Pointer(p15)) = Tush(int32(*(*Tush)(unsafe.Pointer(p15))) | int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20835. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  20836. } /* send length code */
  20837. extra = _extra_lbits[code]
  20838. if extra != 0 {
  20839. lc -= _base_length[code]
  20840. len2 = extra
  20841. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  20842. val2 = lc
  20843. p16 = s + 5936
  20844. *(*Tush)(unsafe.Pointer(p16)) = Tush(int32(*(*Tush)(unsafe.Pointer(p16))) | int32(uint16(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20845. v18 = s + 40
  20846. v17 = *(*Tulg)(unsafe.Pointer(v18))
  20847. *(*Tulg)(unsafe.Pointer(v18))++
  20848. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v17))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20849. v20 = s + 40
  20850. v19 = *(*Tulg)(unsafe.Pointer(v20))
  20851. *(*Tulg)(unsafe.Pointer(v20))++
  20852. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v19))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20853. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20854. *(*int32)(unsafe.Pointer(s + 5940)) += len2 - int32(m_Buf_size)
  20855. } else {
  20856. p21 = s + 5936
  20857. *(*Tush)(unsafe.Pointer(p21)) = Tush(int32(*(*Tush)(unsafe.Pointer(p21))) | int32(uint16(lc))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20858. *(*int32)(unsafe.Pointer(s + 5940)) += len2
  20859. } /* send the extra length bits */
  20860. }
  20861. dist-- /* dist is now the match distance - 1 */
  20862. if dist < uint32(256) {
  20863. v22 = int32(x__dist_code[dist])
  20864. } else {
  20865. v22 = int32(x__dist_code[uint32(256)+dist>>int32(7)])
  20866. }
  20867. code = uint32(v22)
  20868. len3 = int32(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4 + 2)))
  20869. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  20870. val3 = int32(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4)))
  20871. p23 = s + 5936
  20872. *(*Tush)(unsafe.Pointer(p23)) = Tush(int32(*(*Tush)(unsafe.Pointer(p23))) | int32(uint16(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20873. v25 = s + 40
  20874. v24 = *(*Tulg)(unsafe.Pointer(v25))
  20875. *(*Tulg)(unsafe.Pointer(v25))++
  20876. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20877. v27 = s + 40
  20878. v26 = *(*Tulg)(unsafe.Pointer(v27))
  20879. *(*Tulg)(unsafe.Pointer(v27))++
  20880. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20881. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20882. *(*int32)(unsafe.Pointer(s + 5940)) += len3 - int32(m_Buf_size)
  20883. } else {
  20884. p28 = s + 5936
  20885. *(*Tush)(unsafe.Pointer(p28)) = Tush(int32(*(*Tush)(unsafe.Pointer(p28))) | int32(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20886. *(*int32)(unsafe.Pointer(s + 5940)) += len3
  20887. } /* send the distance code */
  20888. extra = _extra_dbits[code]
  20889. if extra != 0 {
  20890. dist -= uint32(_base_dist[code])
  20891. len4 = extra
  20892. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len4 {
  20893. val4 = int32(dist)
  20894. p29 = s + 5936
  20895. *(*Tush)(unsafe.Pointer(p29)) = Tush(int32(*(*Tush)(unsafe.Pointer(p29))) | int32(uint16(val4))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20896. v31 = s + 40
  20897. v30 = *(*Tulg)(unsafe.Pointer(v31))
  20898. *(*Tulg)(unsafe.Pointer(v31))++
  20899. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v30))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20900. v33 = s + 40
  20901. v32 = *(*Tulg)(unsafe.Pointer(v33))
  20902. *(*Tulg)(unsafe.Pointer(v33))++
  20903. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v32))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20904. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val4)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20905. *(*int32)(unsafe.Pointer(s + 5940)) += len4 - int32(m_Buf_size)
  20906. } else {
  20907. p34 = s + 5936
  20908. *(*Tush)(unsafe.Pointer(p34)) = Tush(int32(*(*Tush)(unsafe.Pointer(p34))) | int32(uint16(dist))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20909. *(*int32)(unsafe.Pointer(s + 5940)) += len4
  20910. } /* send the extra distance bits */
  20911. }
  20912. } /* literal or match pair ? */
  20913. /* Check that the overlay between pending_buf and sym_buf is ok: */
  20914. }
  20915. }
  20916. len5 = int32(*(*Tush)(unsafe.Pointer(ltree + 256*4 + 2)))
  20917. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len5 {
  20918. val5 = int32(*(*Tush)(unsafe.Pointer(ltree + 256*4)))
  20919. p35 = s + 5936
  20920. *(*Tush)(unsafe.Pointer(p35)) = Tush(int32(*(*Tush)(unsafe.Pointer(p35))) | int32(uint16(val5))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20921. v37 = s + 40
  20922. v36 = *(*Tulg)(unsafe.Pointer(v37))
  20923. *(*Tulg)(unsafe.Pointer(v37))++
  20924. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v36))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20925. v39 = s + 40
  20926. v38 = *(*Tulg)(unsafe.Pointer(v39))
  20927. *(*Tulg)(unsafe.Pointer(v39))++
  20928. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v38))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20929. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val5)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20930. *(*int32)(unsafe.Pointer(s + 5940)) += len5 - int32(m_Buf_size)
  20931. } else {
  20932. p40 = s + 5936
  20933. *(*Tush)(unsafe.Pointer(p40)) = Tush(int32(*(*Tush)(unsafe.Pointer(p40))) | int32(*(*Tush)(unsafe.Pointer(ltree + 256*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20934. *(*int32)(unsafe.Pointer(s + 5940)) += len5
  20935. }
  20936. }
  20937. // C documentation
  20938. //
  20939. // /* ===========================================================================
  20940. // * Check if the data type is TEXT or BINARY, using the following algorithm:
  20941. // * - TEXT if the two conditions below are satisfied:
  20942. // * a) There are no non-portable control characters belonging to the
  20943. // * "block list" (0..6, 14..25, 28..31).
  20944. // * b) There is at least one printable character belonging to the
  20945. // * "allow list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).
  20946. // * - BINARY otherwise.
  20947. // * - The following partially-portable control characters form a
  20948. // * "gray list" that is ignored in this detection algorithm:
  20949. // * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).
  20950. // * IN assertion: the fields Freq of dyn_ltree are set.
  20951. // */
  20952. func _detect_data_type(tls *libc.TLS, s uintptr) (r int32) {
  20953. var block_mask uint64
  20954. var n int32
  20955. _, _ = block_mask, n
  20956. /* block_mask is the bit mask of block-listed bytes
  20957. * set bits 0..6, 14..25, and 28..31
  20958. * 0xf3ffc07f = binary 11110011111111111100000001111111
  20959. */
  20960. block_mask = uint64(0xf3ffc07f)
  20961. /* Check for non-textual ("block-listed") bytes. */
  20962. n = 0
  20963. for {
  20964. if !(n <= int32(31)) {
  20965. break
  20966. }
  20967. if block_mask&uint64(1) != 0 && int32(*(*Tush)(unsafe.Pointer(s + 212 + uintptr(n)*4))) != 0 {
  20968. return m_Z_BINARY
  20969. }
  20970. goto _1
  20971. _1:
  20972. n++
  20973. block_mask >>= uint64(1)
  20974. }
  20975. /* Check for textual ("allow-listed") bytes. */
  20976. if int32(*(*Tush)(unsafe.Pointer(s + 212 + 9*4))) != 0 || int32(*(*Tush)(unsafe.Pointer(s + 212 + 10*4))) != 0 || int32(*(*Tush)(unsafe.Pointer(s + 212 + 13*4))) != 0 {
  20977. return int32(m_Z_TEXT)
  20978. }
  20979. n = int32(32)
  20980. for {
  20981. if !(n < int32(m_LITERALS)) {
  20982. break
  20983. }
  20984. if int32(*(*Tush)(unsafe.Pointer(s + 212 + uintptr(n)*4))) != 0 {
  20985. return int32(m_Z_TEXT)
  20986. }
  20987. goto _2
  20988. _2:
  20989. n++
  20990. }
  20991. /* There are no "block-listed" or "allow-listed" bytes:
  20992. * this stream either is empty or has tolerated ("gray-listed") bytes only.
  20993. */
  20994. return m_Z_BINARY
  20995. }
  20996. // C documentation
  20997. //
  20998. // /* ===========================================================================
  20999. // * Determine the best encoding for the current block: dynamic trees, static
  21000. // * trees or store, and write out the encoded block.
  21001. // */
  21002. func x__tr_flush_block(tls *libc.TLS, s uintptr, buf uintptr, stored_len Tulg, last int32) {
  21003. var len1, len11, max_blindex, val, val1 int32
  21004. var opt_lenb, static_lenb, v1, v11, v3, v5, v9 Tulg
  21005. var v10, v12, v4, v6, p13, p2, p7, p8 uintptr
  21006. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, len11, max_blindex, opt_lenb, static_lenb, val, val1, v1, v10, v11, v12, v3, v4, v5, v6, v9, p13, p2, p7, p8 /* opt_len and static_len in bytes */
  21007. max_blindex = 0 /* index of last bit length code of non zero freq */
  21008. /* Build the Huffman trees unless a stored block is forced */
  21009. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel > 0 {
  21010. /* Check if the file is binary or text */
  21011. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fdata_type == int32(m_Z_UNKNOWN) {
  21012. (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fdata_type = _detect_data_type(tls, s)
  21013. }
  21014. /* Construct the literal and distance trees */
  21015. _build_tree(tls, s, s+2904)
  21016. _build_tree(tls, s, s+2928)
  21017. /* At this point, opt_len and static_len are the total bit lengths of
  21018. * the compressed block data, excluding the tree representations.
  21019. */
  21020. /* Build the bit length tree for the above two trees, and get the index
  21021. * in bl_order of the last bit length code to send.
  21022. */
  21023. max_blindex = _build_bl_tree(tls, s)
  21024. /* Determine the best encoding. Compute the block lengths in bytes. */
  21025. opt_lenb = ((*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len + uint64(3) + uint64(7)) >> int32(3)
  21026. static_lenb = ((*Tdeflate_state)(unsafe.Pointer(s)).Fstatic_len + uint64(3) + uint64(7)) >> int32(3)
  21027. if static_lenb <= opt_lenb || (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_FIXED) {
  21028. opt_lenb = static_lenb
  21029. }
  21030. } else {
  21031. v1 = stored_len + libc.Uint64FromInt32(5)
  21032. static_lenb = v1
  21033. opt_lenb = v1 /* force a stored block */
  21034. }
  21035. if stored_len+uint64(4) <= opt_lenb && buf != libc.UintptrFromInt32(0) {
  21036. /* 4: two words for the lengths */
  21037. /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
  21038. * Otherwise we can't have processed more than WSIZE input bytes since
  21039. * the last block flush, because compression would have been
  21040. * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
  21041. * transform a block into a stored block.
  21042. */
  21043. x__tr_stored_block(tls, s, buf, stored_len, last)
  21044. } else {
  21045. if static_lenb == opt_lenb {
  21046. len1 = int32(3)
  21047. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  21048. val = libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1) + last
  21049. p2 = s + 5936
  21050. *(*Tush)(unsafe.Pointer(p2)) = Tush(int32(*(*Tush)(unsafe.Pointer(p2))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21051. v4 = s + 40
  21052. v3 = *(*Tulg)(unsafe.Pointer(v4))
  21053. *(*Tulg)(unsafe.Pointer(v4))++
  21054. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21055. v6 = s + 40
  21056. v5 = *(*Tulg)(unsafe.Pointer(v6))
  21057. *(*Tulg)(unsafe.Pointer(v6))++
  21058. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21059. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21060. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  21061. } else {
  21062. p7 = s + 5936
  21063. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | int32(uint16(libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21064. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  21065. }
  21066. _compress_block(tls, s, uintptr(unsafe.Pointer(&_static_ltree)), uintptr(unsafe.Pointer(&_static_dtree)))
  21067. } else {
  21068. len11 = int32(3)
  21069. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  21070. val1 = libc.Int32FromInt32(m_DYN_TREES)<<libc.Int32FromInt32(1) + last
  21071. p8 = s + 5936
  21072. *(*Tush)(unsafe.Pointer(p8)) = Tush(int32(*(*Tush)(unsafe.Pointer(p8))) | int32(uint16(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21073. v10 = s + 40
  21074. v9 = *(*Tulg)(unsafe.Pointer(v10))
  21075. *(*Tulg)(unsafe.Pointer(v10))++
  21076. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v9))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21077. v12 = s + 40
  21078. v11 = *(*Tulg)(unsafe.Pointer(v12))
  21079. *(*Tulg)(unsafe.Pointer(v12))++
  21080. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21081. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21082. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  21083. } else {
  21084. p13 = s + 5936
  21085. *(*Tush)(unsafe.Pointer(p13)) = Tush(int32(*(*Tush)(unsafe.Pointer(p13))) | int32(uint16(libc.Int32FromInt32(m_DYN_TREES)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21086. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  21087. }
  21088. _send_all_trees(tls, s, (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fmax_code+int32(1), (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fmax_code+int32(1), max_blindex+int32(1))
  21089. _compress_block(tls, s, s+212, s+2504)
  21090. }
  21091. }
  21092. /* The above check is made mod 2^32, for files larger than 512 MB
  21093. * and uLong implemented on 32 bits.
  21094. */
  21095. _init_block(tls, s)
  21096. if last != 0 {
  21097. _bi_windup(tls, s)
  21098. }
  21099. }
  21100. // C documentation
  21101. //
  21102. // /* ===========================================================================
  21103. // * Save the match info and tally the frequency counts. Return true if
  21104. // * the current block must be flushed.
  21105. // */
  21106. func x__tr_tally(tls *libc.TLS, s uintptr, dist uint32, lc uint32) (r int32) {
  21107. var v1, v3, v5 TuInt
  21108. var v2, v4, v6 uintptr
  21109. var v7 int32
  21110. _, _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6, v7
  21111. v2 = s + 5900
  21112. v1 = *(*TuInt)(unsafe.Pointer(v2))
  21113. *(*TuInt)(unsafe.Pointer(v2))++
  21114. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v1))) = uint8(dist)
  21115. v4 = s + 5900
  21116. v3 = *(*TuInt)(unsafe.Pointer(v4))
  21117. *(*TuInt)(unsafe.Pointer(v4))++
  21118. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist >> libc.Int32FromInt32(8))
  21119. v6 = s + 5900
  21120. v5 = *(*TuInt)(unsafe.Pointer(v6))
  21121. *(*TuInt)(unsafe.Pointer(v6))++
  21122. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = uint8(lc)
  21123. if dist == uint32(0) {
  21124. /* lc is the unmatched char */
  21125. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(lc)*4))++
  21126. } else {
  21127. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  21128. /* Here, lc is the match length - MIN_MATCH */
  21129. dist-- /* dist = match distance - 1 */
  21130. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(int32(x__length_code[lc])+int32(m_LITERALS)+int32(1))*4))++
  21131. if dist < uint32(256) {
  21132. v7 = int32(x__dist_code[dist])
  21133. } else {
  21134. v7 = int32(x__dist_code[uint32(256)+dist>>int32(7)])
  21135. }
  21136. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v7)*4))++
  21137. }
  21138. return libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  21139. }
  21140. type Tfpos_t = int64
  21141. type t__sbuf = struct {
  21142. F_base uintptr
  21143. F_size int32
  21144. F__ccgo_pad2 [4]byte
  21145. }
  21146. type TFILE = struct {
  21147. F_p uintptr
  21148. F_r int32
  21149. F_w int32
  21150. F_flags int16
  21151. F_file int16
  21152. F_bf t__sbuf
  21153. F_lbfsize int32
  21154. F_cookie uintptr
  21155. F_close uintptr
  21156. F_read uintptr
  21157. F_seek uintptr
  21158. F_write uintptr
  21159. F_ext t__sbuf
  21160. F_up uintptr
  21161. F_ur int32
  21162. F_ubuf [3]uint8
  21163. F_nbuf [1]uint8
  21164. F_lb t__sbuf
  21165. F_blksize int32
  21166. F_offset Tfpos_t
  21167. }
  21168. type t__sFILE = TFILE
  21169. type Tflock = struct {
  21170. Fl_start Toff_t
  21171. Fl_len Toff_t
  21172. Fl_pid Tpid_t
  21173. Fl_type int16
  21174. Fl_whence int16
  21175. }
  21176. type Tgz_state = struct {
  21177. Fx TgzFile_s
  21178. Fmode int32
  21179. Ffd int32
  21180. Fpath uintptr
  21181. Fsize uint32
  21182. Fwant uint32
  21183. Fin uintptr
  21184. Fout uintptr
  21185. Fdirect int32
  21186. Fhow int32
  21187. Fstart Toff_t
  21188. Feof int32
  21189. Fpast int32
  21190. Flevel int32
  21191. Fstrategy int32
  21192. Freset int32
  21193. Fskip Toff_t
  21194. Fseek int32
  21195. Ferr int32
  21196. Fmsg uintptr
  21197. Fstrm Tz_stream
  21198. }
  21199. type Tgz_statep = uintptr
  21200. func XzlibVersion(tls *libc.TLS) (r uintptr) {
  21201. return __ccgo_ts
  21202. }
  21203. func XzlibCompileFlags(tls *libc.TLS) (r TuLong) {
  21204. var flags TuLong
  21205. _ = flags
  21206. flags = uint64(0)
  21207. switch int32(libc.Uint64FromInt64(4)) {
  21208. case int32(2):
  21209. case int32(4):
  21210. flags += uint64(1)
  21211. case int32(8):
  21212. flags += uint64(2)
  21213. default:
  21214. flags += uint64(3)
  21215. }
  21216. switch int32(libc.Uint64FromInt64(8)) {
  21217. case int32(2):
  21218. case int32(4):
  21219. flags += uint64(libc.Int32FromInt32(1) << libc.Int32FromInt32(2))
  21220. case int32(8):
  21221. flags += uint64(libc.Int32FromInt32(2) << libc.Int32FromInt32(2))
  21222. default:
  21223. flags += uint64(libc.Int32FromInt32(3) << libc.Int32FromInt32(2))
  21224. }
  21225. switch int32(libc.Uint64FromInt64(8)) {
  21226. case int32(2):
  21227. case int32(4):
  21228. flags += uint64(libc.Int32FromInt32(1) << libc.Int32FromInt32(4))
  21229. case int32(8):
  21230. flags += uint64(libc.Int32FromInt32(2) << libc.Int32FromInt32(4))
  21231. default:
  21232. flags += uint64(libc.Int32FromInt32(3) << libc.Int32FromInt32(4))
  21233. }
  21234. switch int32(libc.Uint64FromInt64(8)) {
  21235. case int32(2):
  21236. case int32(4):
  21237. flags += uint64(libc.Int32FromInt32(1) << libc.Int32FromInt32(6))
  21238. case int32(8):
  21239. flags += uint64(libc.Int32FromInt32(2) << libc.Int32FromInt32(6))
  21240. default:
  21241. flags += uint64(libc.Int32FromInt32(3) << libc.Int32FromInt32(6))
  21242. }
  21243. /*
  21244. #if defined(ASMV) || defined(ASMINF)
  21245. flags += 1 << 9;
  21246. #endif
  21247. */
  21248. return flags
  21249. }
  21250. // C documentation
  21251. //
  21252. // /* exported to allow conversion of error code to string for compress() and
  21253. // * uncompress()
  21254. // */
  21255. func XzError(tls *libc.TLS, err int32) (r uintptr) {
  21256. return Xz_errmsg[int32(m_Z_NEED_DICT)-err]
  21257. }
  21258. func Xzcalloc(tls *libc.TLS, opaque Tvoidpf, items uint32, size uint32) (r Tvoidpf) {
  21259. _ = opaque
  21260. return libc.Xmalloc(tls, uint64(items*size))
  21261. }
  21262. func Xzcfree(tls *libc.TLS, opaque Tvoidpf, ptr Tvoidpf) {
  21263. _ = opaque
  21264. libc.Xfree(tls, ptr)
  21265. }
  21266. // C documentation
  21267. //
  21268. // /* ===========================================================================
  21269. // Compresses the source buffer into the destination buffer. The level
  21270. // parameter has the same meaning as in deflateInit. sourceLen is the byte
  21271. // length of the source buffer. Upon entry, destLen is the total size of the
  21272. // destination buffer, which must be at least 0.1% larger than sourceLen plus
  21273. // 12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
  21274. //
  21275. // compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
  21276. // memory, Z_BUF_ERROR if there was not enough room in the output buffer,
  21277. // Z_STREAM_ERROR if the level parameter is invalid.
  21278. // */
  21279. func Xcompress2(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen TuLong, level int32) (r int32) {
  21280. bp := tls.Alloc(112)
  21281. defer tls.Free(112)
  21282. var err, v3, v4 int32
  21283. var left TuLong
  21284. var max TuInt
  21285. var v1, v2 uint32
  21286. var _ /* stream at bp+0 */ Tz_stream
  21287. _, _, _, _, _, _, _ = err, left, max, v1, v2, v3, v4
  21288. max = uint32(-libc.Int32FromInt32(1))
  21289. left = *(*TuLongf)(unsafe.Pointer(destLen))
  21290. *(*TuLongf)(unsafe.Pointer(destLen)) = uint64(0)
  21291. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzalloc = libc.UintptrFromInt32(0)
  21292. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzfree = libc.UintptrFromInt32(0)
  21293. (*(*Tz_stream)(unsafe.Pointer(bp))).Fopaque = libc.UintptrFromInt32(0)
  21294. err = XdeflateInit_(tls, bp, level, __ccgo_ts, libc.Int32FromInt64(112))
  21295. if err != m_Z_OK {
  21296. return err
  21297. }
  21298. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_out = dest
  21299. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = uint32(0)
  21300. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_in = source
  21301. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = uint32(0)
  21302. for cond := true; cond; cond = err == m_Z_OK {
  21303. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out == uint32(0) {
  21304. if left > uint64(max) {
  21305. v1 = max
  21306. } else {
  21307. v1 = uint32(left)
  21308. }
  21309. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = v1
  21310. left -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out)
  21311. }
  21312. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in == uint32(0) {
  21313. if sourceLen > uint64(max) {
  21314. v2 = max
  21315. } else {
  21316. v2 = uint32(sourceLen)
  21317. }
  21318. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = v2
  21319. sourceLen -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in)
  21320. }
  21321. if sourceLen != 0 {
  21322. v3 = m_Z_NO_FLUSH
  21323. } else {
  21324. v3 = int32(m_Z_FINISH)
  21325. }
  21326. err = Xdeflate(tls, bp, v3)
  21327. }
  21328. *(*TuLongf)(unsafe.Pointer(destLen)) = (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out
  21329. XdeflateEnd(tls, bp)
  21330. if err == int32(m_Z_STREAM_END) {
  21331. v4 = m_Z_OK
  21332. } else {
  21333. v4 = err
  21334. }
  21335. return v4
  21336. }
  21337. // C documentation
  21338. //
  21339. // /* ===========================================================================
  21340. // */
  21341. func Xcompress(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen TuLong) (r int32) {
  21342. return Xcompress2(tls, dest, destLen, source, sourceLen, -int32(1))
  21343. }
  21344. // C documentation
  21345. //
  21346. // /* ===========================================================================
  21347. // If the default memLevel or windowBits for deflateInit() is changed, then
  21348. // this function needs to be updated.
  21349. // */
  21350. func XcompressBound(tls *libc.TLS, sourceLen TuLong) (r TuLong) {
  21351. return sourceLen + sourceLen>>libc.Int32FromInt32(12) + sourceLen>>libc.Int32FromInt32(14) + sourceLen>>libc.Int32FromInt32(25) + uint64(13)
  21352. }
  21353. // C documentation
  21354. //
  21355. // /* ===========================================================================
  21356. // Decompresses the source buffer into the destination buffer. *sourceLen is
  21357. // the byte length of the source buffer. Upon entry, *destLen is the total size
  21358. // of the destination buffer, which must be large enough to hold the entire
  21359. // uncompressed data. (The size of the uncompressed data must have been saved
  21360. // previously by the compressor and transmitted to the decompressor by some
  21361. // mechanism outside the scope of this compression library.) Upon exit,
  21362. // *destLen is the size of the decompressed data and *sourceLen is the number
  21363. // of source bytes consumed. Upon return, source + *sourceLen points to the
  21364. // first unused input byte.
  21365. //
  21366. // uncompress returns Z_OK if success, Z_MEM_ERROR if there was not enough
  21367. // memory, Z_BUF_ERROR if there was not enough room in the output buffer, or
  21368. // Z_DATA_ERROR if the input data was corrupted, including if the input data is
  21369. // an incomplete zlib stream.
  21370. // */
  21371. func Xuncompress2(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen uintptr) (r int32) {
  21372. bp := tls.Alloc(128)
  21373. defer tls.Free(128)
  21374. var err, v3, v4, v5 int32
  21375. var left, len1 TuLong
  21376. var max TuInt
  21377. var v1, v2 uint32
  21378. var _ /* buf at bp+112 */ [1]TByte
  21379. var _ /* stream at bp+0 */ Tz_stream
  21380. _, _, _, _, _, _, _, _, _ = err, left, len1, max, v1, v2, v3, v4, v5
  21381. max = uint32(-libc.Int32FromInt32(1)) /* for detection of incomplete stream when *destLen == 0 */
  21382. len1 = *(*TuLong)(unsafe.Pointer(sourceLen))
  21383. if *(*TuLongf)(unsafe.Pointer(destLen)) != 0 {
  21384. left = *(*TuLongf)(unsafe.Pointer(destLen))
  21385. *(*TuLongf)(unsafe.Pointer(destLen)) = uint64(0)
  21386. } else {
  21387. left = uint64(1)
  21388. dest = bp + 112
  21389. }
  21390. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_in = source
  21391. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = uint32(0)
  21392. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzalloc = libc.UintptrFromInt32(0)
  21393. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzfree = libc.UintptrFromInt32(0)
  21394. (*(*Tz_stream)(unsafe.Pointer(bp))).Fopaque = libc.UintptrFromInt32(0)
  21395. err = XinflateInit_(tls, bp, __ccgo_ts, libc.Int32FromInt64(112))
  21396. if err != m_Z_OK {
  21397. return err
  21398. }
  21399. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_out = dest
  21400. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = uint32(0)
  21401. for cond := true; cond; cond = err == m_Z_OK {
  21402. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out == uint32(0) {
  21403. if left > uint64(max) {
  21404. v1 = max
  21405. } else {
  21406. v1 = uint32(left)
  21407. }
  21408. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = v1
  21409. left -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out)
  21410. }
  21411. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in == uint32(0) {
  21412. if len1 > uint64(max) {
  21413. v2 = max
  21414. } else {
  21415. v2 = uint32(len1)
  21416. }
  21417. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = v2
  21418. len1 -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in)
  21419. }
  21420. err = Xinflate(tls, bp, m_Z_NO_FLUSH)
  21421. }
  21422. *(*TuLong)(unsafe.Pointer(sourceLen)) -= len1 + uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in)
  21423. if dest != bp+112 {
  21424. *(*TuLongf)(unsafe.Pointer(destLen)) = (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out
  21425. } else {
  21426. if (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out != 0 && err == -int32(5) {
  21427. left = uint64(1)
  21428. }
  21429. }
  21430. XinflateEnd(tls, bp)
  21431. if err == int32(m_Z_STREAM_END) {
  21432. v3 = m_Z_OK
  21433. } else {
  21434. if err == int32(m_Z_NEED_DICT) {
  21435. v4 = -int32(3)
  21436. } else {
  21437. if err == -int32(5) && left+uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out) != 0 {
  21438. v5 = -int32(3)
  21439. } else {
  21440. v5 = err
  21441. }
  21442. v4 = v5
  21443. }
  21444. v3 = v4
  21445. }
  21446. return v3
  21447. }
  21448. func Xuncompress(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, _sourceLen TuLong) (r int32) {
  21449. bp := tls.Alloc(16)
  21450. defer tls.Free(16)
  21451. *(*TuLong)(unsafe.Pointer(bp)) = _sourceLen
  21452. return Xuncompress2(tls, dest, destLen, source, bp)
  21453. }
  21454. const m_GZ_READ = 7247
  21455. /* GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t
  21456. value -- needed when comparing unsigned to z_off64_t, which is signed
  21457. (possible z_off64_t types off_t, off64_t, and long are all signed) */
  21458. // C documentation
  21459. //
  21460. // /* gzclose() is in a separate file so that it is linked in only if it is used.
  21461. // That way the other gzclose functions can be used instead to avoid linking in
  21462. // unneeded compression or decompression routines. */
  21463. func Xgzclose(tls *libc.TLS, file TgzFile) (r int32) {
  21464. var state Tgz_statep
  21465. var v1 int32
  21466. _, _ = state, v1
  21467. if file == libc.UintptrFromInt32(0) {
  21468. return -int32(2)
  21469. }
  21470. state = file
  21471. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  21472. v1 = Xgzclose_r(tls, file)
  21473. } else {
  21474. v1 = Xgzclose_w(tls, file)
  21475. }
  21476. return v1
  21477. }
  21478. const m_COPY = 1
  21479. const m_GZBUFSIZE = 8192
  21480. const m_GZ_APPEND = 1
  21481. const m_GZ_NONE = 0
  21482. const m_GZ_WRITE = 31153
  21483. const m_INT_MAX = 2147483647
  21484. const m_LOOK = 0
  21485. const m_O_APPEND = 8
  21486. const m_O_CLOEXEC = 65536
  21487. const m_O_CREAT = 512
  21488. const m_O_EXCL = 2048
  21489. const m_O_RDONLY = 0
  21490. const m_O_TRUNC = 1024
  21491. const m_O_WRONLY = 1
  21492. const m_SEEK_CUR = 1
  21493. const m_SEEK_END = 2
  21494. const m_SEEK_SET = 0
  21495. /* GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t
  21496. value -- needed when comparing unsigned to z_off64_t, which is signed
  21497. (possible z_off64_t types off_t, off64_t, and long are all signed) */
  21498. // C documentation
  21499. //
  21500. // /* Reset gzip file state */
  21501. func _gz_reset(tls *libc.TLS, state Tgz_statep) {
  21502. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0) /* no output data available */
  21503. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) { /* for reading ... */
  21504. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0 /* not at end of file */
  21505. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0 /* have not read past end yet */
  21506. (*Tgz_state)(unsafe.Pointer(state)).Fhow = m_LOOK /* look for gzip header */
  21507. } else { /* for writing ... */
  21508. (*Tgz_state)(unsafe.Pointer(state)).Freset = 0
  21509. } /* no deflateReset pending */
  21510. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0 /* no seek request pending */
  21511. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0)) /* clear error */
  21512. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos = 0 /* no uncompressed data yet */
  21513. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0) /* no input data yet */
  21514. }
  21515. // C documentation
  21516. //
  21517. // /* Open a gzip file either by name or file descriptor. */
  21518. func _gz_open(tls *libc.TLS, path uintptr, fd int32, mode uintptr) (r TgzFile) {
  21519. bp := tls.Alloc(16)
  21520. defer tls.Free(16)
  21521. var cloexec, exclusive, oflag, v1, v2, v3, v4, v5 int32
  21522. var len1 Tz_size_t
  21523. var state Tgz_statep
  21524. _, _, _, _, _, _, _, _, _, _ = cloexec, exclusive, len1, oflag, state, v1, v2, v3, v4, v5
  21525. cloexec = 0
  21526. exclusive = 0
  21527. /* check input */
  21528. if path == libc.UintptrFromInt32(0) {
  21529. return libc.UintptrFromInt32(0)
  21530. }
  21531. /* allocate gzFile structure to return */
  21532. state = libc.Xmalloc(tls, uint64(240))
  21533. if state == libc.UintptrFromInt32(0) {
  21534. return libc.UintptrFromInt32(0)
  21535. }
  21536. (*Tgz_state)(unsafe.Pointer(state)).Fsize = uint32(0) /* no buffers allocated yet */
  21537. (*Tgz_state)(unsafe.Pointer(state)).Fwant = uint32(m_GZBUFSIZE) /* requested buffer size */
  21538. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = libc.UintptrFromInt32(0) /* no error message yet */
  21539. /* interpret mode */
  21540. (*Tgz_state)(unsafe.Pointer(state)).Fmode = m_GZ_NONE
  21541. (*Tgz_state)(unsafe.Pointer(state)).Flevel = -int32(1)
  21542. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = m_Z_DEFAULT_STRATEGY
  21543. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = 0
  21544. for *(*uint8)(unsafe.Pointer(mode)) != 0 {
  21545. if int32(*(*uint8)(unsafe.Pointer(mode))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(mode))) <= int32('9') {
  21546. (*Tgz_state)(unsafe.Pointer(state)).Flevel = int32(*(*uint8)(unsafe.Pointer(mode))) - int32('0')
  21547. } else {
  21548. switch int32(*(*uint8)(unsafe.Pointer(mode))) {
  21549. case int32('r'):
  21550. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_READ)
  21551. case int32('w'):
  21552. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_WRITE)
  21553. case int32('a'):
  21554. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_APPEND)
  21555. case int32('+'):
  21556. libc.Xfree(tls, state)
  21557. return libc.UintptrFromInt32(0)
  21558. case int32('b'):
  21559. case int32('e'):
  21560. cloexec = int32(1)
  21561. case int32('x'):
  21562. exclusive = int32(1)
  21563. case int32('f'):
  21564. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_FILTERED)
  21565. case int32('h'):
  21566. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_HUFFMAN_ONLY)
  21567. case int32('R'):
  21568. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_RLE)
  21569. case int32('F'):
  21570. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_FIXED)
  21571. case int32('T'):
  21572. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1)
  21573. default: /* could consider as an error, but just ignore */
  21574. }
  21575. }
  21576. mode++
  21577. }
  21578. /* must provide an "r", "w", or "a" */
  21579. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == m_GZ_NONE {
  21580. libc.Xfree(tls, state)
  21581. return libc.UintptrFromInt32(0)
  21582. }
  21583. /* can't force transparent read */
  21584. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  21585. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  21586. libc.Xfree(tls, state)
  21587. return libc.UintptrFromInt32(0)
  21588. }
  21589. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1) /* for empty file */
  21590. }
  21591. /* save the path name for error messages */
  21592. len1 = libc.Xstrlen(tls, path)
  21593. (*Tgz_state)(unsafe.Pointer(state)).Fpath = libc.Xmalloc(tls, len1+uint64(1))
  21594. if (*Tgz_state)(unsafe.Pointer(state)).Fpath == libc.UintptrFromInt32(0) {
  21595. libc.Xfree(tls, state)
  21596. return libc.UintptrFromInt32(0)
  21597. }
  21598. libc.X__builtin_snprintf(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath, len1+uint64(1), __ccgo_ts+582, libc.VaList(bp+8, path))
  21599. /* compute the flags for open() */
  21600. if cloexec != 0 {
  21601. v1 = int32(m_O_CLOEXEC)
  21602. } else {
  21603. v1 = 0
  21604. }
  21605. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  21606. v2 = m_O_RDONLY
  21607. } else {
  21608. if exclusive != 0 {
  21609. v3 = int32(m_O_EXCL)
  21610. } else {
  21611. v3 = 0
  21612. }
  21613. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_WRITE) {
  21614. v4 = int32(m_O_TRUNC)
  21615. } else {
  21616. v4 = int32(m_O_APPEND)
  21617. }
  21618. v2 = libc.Int32FromInt32(m_O_WRONLY) | libc.Int32FromInt32(m_O_CREAT) | v3 | v4
  21619. }
  21620. oflag = v1 | v2
  21621. /* open the file with the appropriate flags (or just use fd) */
  21622. if fd > -int32(1) {
  21623. v5 = fd
  21624. } else {
  21625. v5 = libc.Xopen(tls, path, oflag, libc.VaList(bp+8, int32(0666)))
  21626. }
  21627. (*Tgz_state)(unsafe.Pointer(state)).Ffd = v5
  21628. if (*Tgz_state)(unsafe.Pointer(state)).Ffd == -int32(1) {
  21629. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  21630. libc.Xfree(tls, state)
  21631. return libc.UintptrFromInt32(0)
  21632. }
  21633. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_APPEND) {
  21634. libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(m_SEEK_END)) /* so gzoffset() is correct */
  21635. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_WRITE) /* simplify later checks */
  21636. }
  21637. /* save the current position for rewinding (only if reading) */
  21638. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  21639. (*Tgz_state)(unsafe.Pointer(state)).Fstart = libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(m_SEEK_CUR))
  21640. if (*Tgz_state)(unsafe.Pointer(state)).Fstart == int64(-int32(1)) {
  21641. (*Tgz_state)(unsafe.Pointer(state)).Fstart = 0
  21642. }
  21643. }
  21644. /* initialize stream */
  21645. _gz_reset(tls, state)
  21646. /* return stream */
  21647. return state
  21648. }
  21649. // C documentation
  21650. //
  21651. // /* -- see zlib.h -- */
  21652. func Xgzopen(tls *libc.TLS, path uintptr, mode uintptr) (r TgzFile) {
  21653. return _gz_open(tls, path, -int32(1), mode)
  21654. }
  21655. // C documentation
  21656. //
  21657. // /* -- see zlib.h -- */
  21658. func Xgzopen64(tls *libc.TLS, path uintptr, mode uintptr) (r TgzFile) {
  21659. return _gz_open(tls, path, -int32(1), mode)
  21660. }
  21661. // C documentation
  21662. //
  21663. // /* -- see zlib.h -- */
  21664. func Xgzdopen(tls *libc.TLS, fd int32, mode uintptr) (r TgzFile) {
  21665. bp := tls.Alloc(16)
  21666. defer tls.Free(16)
  21667. var gz TgzFile
  21668. var path, v1 uintptr
  21669. var v2 bool
  21670. _, _, _, _ = gz, path, v1, v2
  21671. if v2 = fd == -int32(1); !v2 {
  21672. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(7)+libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))
  21673. path = v1
  21674. }
  21675. if v2 || v1 == libc.UintptrFromInt32(0) {
  21676. return libc.UintptrFromInt32(0)
  21677. }
  21678. libc.X__builtin_snprintf(tls, path, libc.Uint64FromInt32(7)+libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4), __ccgo_ts+585, libc.VaList(bp+8, fd))
  21679. gz = _gz_open(tls, path, fd, mode)
  21680. libc.Xfree(tls, path)
  21681. return gz
  21682. }
  21683. /* -- see zlib.h -- */
  21684. // C documentation
  21685. //
  21686. // /* -- see zlib.h -- */
  21687. func Xgzbuffer(tls *libc.TLS, file TgzFile, size uint32) (r int32) {
  21688. var state Tgz_statep
  21689. _ = state
  21690. /* get internal structure and check integrity */
  21691. if file == libc.UintptrFromInt32(0) {
  21692. return -int32(1)
  21693. }
  21694. state = file
  21695. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  21696. return -int32(1)
  21697. }
  21698. /* make sure we haven't already allocated memory */
  21699. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != uint32(0) {
  21700. return -int32(1)
  21701. }
  21702. /* check and set requested size */
  21703. if size<<int32(1) < size {
  21704. return -int32(1)
  21705. } /* need to be able to double it */
  21706. if size < uint32(8) {
  21707. size = uint32(8)
  21708. } /* needed to behave well with flushing */
  21709. (*Tgz_state)(unsafe.Pointer(state)).Fwant = size
  21710. return 0
  21711. }
  21712. // C documentation
  21713. //
  21714. // /* -- see zlib.h -- */
  21715. func Xgzrewind(tls *libc.TLS, file TgzFile) (r int32) {
  21716. var state Tgz_statep
  21717. _ = state
  21718. /* get internal structure */
  21719. if file == libc.UintptrFromInt32(0) {
  21720. return -int32(1)
  21721. }
  21722. state = file
  21723. /* check that we're reading and that there's no error */
  21724. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  21725. return -int32(1)
  21726. }
  21727. /* back up and start over */
  21728. if libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tgz_state)(unsafe.Pointer(state)).Fstart, m_SEEK_SET) == int64(-int32(1)) {
  21729. return -int32(1)
  21730. }
  21731. _gz_reset(tls, state)
  21732. return 0
  21733. }
  21734. // C documentation
  21735. //
  21736. // /* -- see zlib.h -- */
  21737. func Xgzseek64(tls *libc.TLS, file TgzFile, offset Toff_t, whence int32) (r Toff_t) {
  21738. var n, v1 uint32
  21739. var ret Toff_t
  21740. var state Tgz_statep
  21741. _, _, _, _ = n, ret, state, v1
  21742. /* get internal structure and check integrity */
  21743. if file == libc.UintptrFromInt32(0) {
  21744. return int64(-int32(1))
  21745. }
  21746. state = file
  21747. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  21748. return int64(-int32(1))
  21749. }
  21750. /* check that there's no error */
  21751. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  21752. return int64(-int32(1))
  21753. }
  21754. /* can only seek from start or relative to current position */
  21755. if whence != m_SEEK_SET && whence != int32(m_SEEK_CUR) {
  21756. return int64(-int32(1))
  21757. }
  21758. /* normalize offset to a SEEK_CUR specification */
  21759. if whence == m_SEEK_SET {
  21760. offset -= (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  21761. } else {
  21762. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21763. offset += (*Tgz_state)(unsafe.Pointer(state)).Fskip
  21764. }
  21765. }
  21766. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21767. /* if within raw area while reading, just go there */
  21768. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fhow == int32(m_COPY) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos+offset >= 0 {
  21769. ret = libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, offset-int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave), int32(m_SEEK_CUR))
  21770. if ret == int64(-int32(1)) {
  21771. return int64(-int32(1))
  21772. }
  21773. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  21774. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0
  21775. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  21776. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21777. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  21778. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0)
  21779. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += offset
  21780. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  21781. }
  21782. /* calculate skip amount, rewinding if needed for back seek when reading */
  21783. if offset < 0 {
  21784. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) { /* writing -- can't go backwards */
  21785. return int64(-int32(1))
  21786. }
  21787. offset += (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  21788. if offset < 0 { /* before start of file! */
  21789. return int64(-int32(1))
  21790. }
  21791. if Xgzrewind(tls, file) == -int32(1) { /* rewind, then skip to offset */
  21792. return int64(-int32(1))
  21793. }
  21794. }
  21795. /* if reading, skip what's in output buffer (one less gzgetc() check) */
  21796. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  21797. if libc.Bool(libc.Bool(uint64(4) == uint64(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > uint32(m_INT_MAX)) || int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave) > offset {
  21798. v1 = uint32(offset)
  21799. } else {
  21800. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  21801. }
  21802. n = v1
  21803. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  21804. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  21805. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(n)
  21806. offset -= int64(n)
  21807. }
  21808. /* request skip (if not zero) */
  21809. if offset != 0 {
  21810. (*Tgz_state)(unsafe.Pointer(state)).Fseek = int32(1)
  21811. (*Tgz_state)(unsafe.Pointer(state)).Fskip = offset
  21812. }
  21813. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos + offset
  21814. }
  21815. // C documentation
  21816. //
  21817. // /* -- see zlib.h -- */
  21818. func Xgzseek(tls *libc.TLS, file TgzFile, offset Toff_t, whence int32) (r Toff_t) {
  21819. var ret Toff_t
  21820. var v1 int64
  21821. _, _ = ret, v1
  21822. ret = Xgzseek64(tls, file, offset, whence)
  21823. if ret == ret {
  21824. v1 = ret
  21825. } else {
  21826. v1 = int64(-int32(1))
  21827. }
  21828. return v1
  21829. }
  21830. // C documentation
  21831. //
  21832. // /* -- see zlib.h -- */
  21833. func Xgztell64(tls *libc.TLS, file TgzFile) (r Toff_t) {
  21834. var state Tgz_statep
  21835. var v1 int64
  21836. _, _ = state, v1
  21837. /* get internal structure and check integrity */
  21838. if file == libc.UintptrFromInt32(0) {
  21839. return int64(-int32(1))
  21840. }
  21841. state = file
  21842. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  21843. return int64(-int32(1))
  21844. }
  21845. /* return position */
  21846. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21847. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fskip
  21848. } else {
  21849. v1 = 0
  21850. }
  21851. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos + v1
  21852. }
  21853. // C documentation
  21854. //
  21855. // /* -- see zlib.h -- */
  21856. func Xgztell(tls *libc.TLS, file TgzFile) (r Toff_t) {
  21857. var ret Toff_t
  21858. var v1 int64
  21859. _, _ = ret, v1
  21860. ret = Xgztell64(tls, file)
  21861. if ret == ret {
  21862. v1 = ret
  21863. } else {
  21864. v1 = int64(-int32(1))
  21865. }
  21866. return v1
  21867. }
  21868. // C documentation
  21869. //
  21870. // /* -- see zlib.h -- */
  21871. func Xgzoffset64(tls *libc.TLS, file TgzFile) (r Toff_t) {
  21872. var offset Toff_t
  21873. var state Tgz_statep
  21874. _, _ = offset, state
  21875. /* get internal structure and check integrity */
  21876. if file == libc.UintptrFromInt32(0) {
  21877. return int64(-int32(1))
  21878. }
  21879. state = file
  21880. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  21881. return int64(-int32(1))
  21882. }
  21883. /* compute and return effective offset in file */
  21884. offset = libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(m_SEEK_CUR))
  21885. if offset == int64(-int32(1)) {
  21886. return int64(-int32(1))
  21887. }
  21888. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) { /* reading */
  21889. offset -= int64((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in)
  21890. } /* don't count buffered input */
  21891. return offset
  21892. }
  21893. // C documentation
  21894. //
  21895. // /* -- see zlib.h -- */
  21896. func Xgzoffset(tls *libc.TLS, file TgzFile) (r Toff_t) {
  21897. var ret Toff_t
  21898. var v1 int64
  21899. _, _ = ret, v1
  21900. ret = Xgzoffset64(tls, file)
  21901. if ret == ret {
  21902. v1 = ret
  21903. } else {
  21904. v1 = int64(-int32(1))
  21905. }
  21906. return v1
  21907. }
  21908. // C documentation
  21909. //
  21910. // /* -- see zlib.h -- */
  21911. func Xgzeof(tls *libc.TLS, file TgzFile) (r int32) {
  21912. var state Tgz_statep
  21913. var v1 int32
  21914. _, _ = state, v1
  21915. /* get internal structure and check integrity */
  21916. if file == libc.UintptrFromInt32(0) {
  21917. return 0
  21918. }
  21919. state = file
  21920. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  21921. return 0
  21922. }
  21923. /* return end-of-file state */
  21924. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  21925. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fpast
  21926. } else {
  21927. v1 = 0
  21928. }
  21929. return v1
  21930. }
  21931. // C documentation
  21932. //
  21933. // /* -- see zlib.h -- */
  21934. func Xgzerror(tls *libc.TLS, file TgzFile, errnum uintptr) (r uintptr) {
  21935. var state Tgz_statep
  21936. var v1, v2 uintptr
  21937. _, _, _ = state, v1, v2
  21938. /* get internal structure and check integrity */
  21939. if file == libc.UintptrFromInt32(0) {
  21940. return libc.UintptrFromInt32(0)
  21941. }
  21942. state = file
  21943. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  21944. return libc.UintptrFromInt32(0)
  21945. }
  21946. /* return error information */
  21947. if errnum != libc.UintptrFromInt32(0) {
  21948. *(*int32)(unsafe.Pointer(errnum)) = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  21949. }
  21950. if (*Tgz_state)(unsafe.Pointer(state)).Ferr == -int32(4) {
  21951. v1 = __ccgo_ts + 593
  21952. } else {
  21953. if (*Tgz_state)(unsafe.Pointer(state)).Fmsg == libc.UintptrFromInt32(0) {
  21954. v2 = __ccgo_ts + 492
  21955. } else {
  21956. v2 = (*Tgz_state)(unsafe.Pointer(state)).Fmsg
  21957. }
  21958. v1 = v2
  21959. }
  21960. return v1
  21961. }
  21962. // C documentation
  21963. //
  21964. // /* -- see zlib.h -- */
  21965. func Xgzclearerr(tls *libc.TLS, file TgzFile) {
  21966. var state Tgz_statep
  21967. _ = state
  21968. /* get internal structure and check integrity */
  21969. if file == libc.UintptrFromInt32(0) {
  21970. return
  21971. }
  21972. state = file
  21973. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  21974. return
  21975. }
  21976. /* clear error and end-of-file */
  21977. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  21978. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0
  21979. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  21980. }
  21981. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  21982. }
  21983. // C documentation
  21984. //
  21985. // /* Create an error message in allocated memory and set state->err and
  21986. // state->msg accordingly. Free any previous error message already there. Do
  21987. // not try to free or allocate space if the error is Z_MEM_ERROR (out of
  21988. // memory). Simply save the error message as a static string. If there is an
  21989. // allocation failure constructing the error message, then convert the error to
  21990. // out of memory. */
  21991. func Xgz_error(tls *libc.TLS, state Tgz_statep, err int32, msg uintptr) {
  21992. bp := tls.Alloc(32)
  21993. defer tls.Free(32)
  21994. var v1 uintptr
  21995. _ = v1
  21996. /* free previously allocated message and clear */
  21997. if (*Tgz_state)(unsafe.Pointer(state)).Fmsg != libc.UintptrFromInt32(0) {
  21998. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(4) {
  21999. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fmsg)
  22000. }
  22001. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = libc.UintptrFromInt32(0)
  22002. }
  22003. /* if fatal, set state->x.have to 0 so that the gzgetc() macro fails */
  22004. if err != m_Z_OK && err != -int32(5) {
  22005. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  22006. }
  22007. /* set error code, and if no message, then done */
  22008. (*Tgz_state)(unsafe.Pointer(state)).Ferr = err
  22009. if msg == libc.UintptrFromInt32(0) {
  22010. return
  22011. }
  22012. /* for an out of memory error, return literal string when requested */
  22013. if err == -int32(4) {
  22014. return
  22015. }
  22016. /* construct error message with path */
  22017. v1 = libc.Xmalloc(tls, libc.Xstrlen(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)+libc.Xstrlen(tls, msg)+uint64(3))
  22018. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = v1
  22019. if v1 == libc.UintptrFromInt32(0) {
  22020. (*Tgz_state)(unsafe.Pointer(state)).Ferr = -int32(4)
  22021. return
  22022. }
  22023. libc.X__builtin_snprintf(tls, (*Tgz_state)(unsafe.Pointer(state)).Fmsg, libc.Xstrlen(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)+libc.Xstrlen(tls, msg)+uint64(3), __ccgo_ts+607, libc.VaList(bp+8, (*Tgz_state)(unsafe.Pointer(state)).Fpath, __ccgo_ts+614, msg))
  22024. }
  22025. const m_GZIP = 2
  22026. /* GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t
  22027. value -- needed when comparing unsigned to z_off64_t, which is signed
  22028. (possible z_off64_t types off_t, off64_t, and long are all signed) */
  22029. // C documentation
  22030. //
  22031. // /* Use read() to load a buffer -- return -1 on error, otherwise 0. Read from
  22032. // state->fd, and update state->eof, state->err, and state->msg as appropriate.
  22033. // This function needs to loop on read(), since read() is not guaranteed to
  22034. // read the number of bytes requested, depending on the type of descriptor. */
  22035. func _gz_load(tls *libc.TLS, state Tgz_statep, buf uintptr, len1 uint32, have uintptr) (r int32) {
  22036. var get, max uint32
  22037. var ret int32
  22038. _, _, _ = get, max, ret
  22039. max = uint32(-libc.Int32FromInt32(1))>>libc.Int32FromInt32(2) + libc.Uint32FromInt32(1)
  22040. *(*uint32)(unsafe.Pointer(have)) = uint32(0)
  22041. for cond := true; cond; cond = *(*uint32)(unsafe.Pointer(have)) < len1 {
  22042. get = len1 - *(*uint32)(unsafe.Pointer(have))
  22043. if get > max {
  22044. get = max
  22045. }
  22046. ret = int32(libc.Xread(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, buf+uintptr(*(*uint32)(unsafe.Pointer(have))), uint64(get)))
  22047. if ret <= 0 {
  22048. break
  22049. }
  22050. *(*uint32)(unsafe.Pointer(have)) += uint32(ret)
  22051. }
  22052. if ret < 0 {
  22053. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno(tls)))))
  22054. return -int32(1)
  22055. }
  22056. if ret == 0 {
  22057. (*Tgz_state)(unsafe.Pointer(state)).Feof = int32(1)
  22058. }
  22059. return 0
  22060. }
  22061. // C documentation
  22062. //
  22063. // /* Load up input buffer and set eof flag if last data loaded -- return -1 on
  22064. // error, 0 otherwise. Note that the eof flag is set when the end of the input
  22065. // file is reached, even though there may be unused data in the buffer. Once
  22066. // that data has been used, no more attempts will be made to read the file.
  22067. // If strm->avail_in != 0, then the current data is moved to the beginning of
  22068. // the input buffer, and then the remainder of the buffer is loaded with the
  22069. // available data from the input file. */
  22070. func _gz_avail(tls *libc.TLS, state Tgz_statep) (r int32) {
  22071. bp := tls.Alloc(16)
  22072. defer tls.Free(16)
  22073. var n, v1 uint32
  22074. var p, q, v3, v4 uintptr
  22075. var strm Tz_streamp
  22076. var _ /* got at bp+0 */ uint32
  22077. _, _, _, _, _, _, _ = n, p, q, strm, v1, v3, v4
  22078. strm = state + 128
  22079. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  22080. return -int32(1)
  22081. }
  22082. if (*Tgz_state)(unsafe.Pointer(state)).Feof == 0 {
  22083. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 { /* copy what's there to the start */
  22084. p = (*Tgz_state)(unsafe.Pointer(state)).Fin
  22085. q = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  22086. n = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  22087. for {
  22088. v3 = p
  22089. p++
  22090. v4 = q
  22091. q++
  22092. *(*uint8)(unsafe.Pointer(v3)) = *(*uint8)(unsafe.Pointer(v4))
  22093. goto _2
  22094. _2:
  22095. n--
  22096. v1 = n
  22097. if !(v1 != 0) {
  22098. break
  22099. }
  22100. }
  22101. }
  22102. if _gz_load(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in), (*Tgz_state)(unsafe.Pointer(state)).Fsize-(*Tz_stream)(unsafe.Pointer(strm)).Favail_in, bp) == -int32(1) {
  22103. return -int32(1)
  22104. }
  22105. *(*TuInt)(unsafe.Pointer(strm + 8)) += *(*uint32)(unsafe.Pointer(bp))
  22106. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  22107. }
  22108. return 0
  22109. }
  22110. // C documentation
  22111. //
  22112. // /* Look for gzip header, set up for inflate or copy. state->x.have must be 0.
  22113. // If this is the first time in, allocate required memory. state->how will be
  22114. // left unchanged if there is no more input data available, will be set to COPY
  22115. // if there is no gzip header and direct copying will be performed, or it will
  22116. // be set to GZIP for decompression. If direct copying, then leftover input
  22117. // data from the input buffer will be copied to the output buffer. In that
  22118. // case, all further file reads will be directly to either the output buffer or
  22119. // a user buffer. If decompressing, the inflate state will be initialized.
  22120. // gz_look() will return 0 on success or -1 on failure. */
  22121. func _gz_look(tls *libc.TLS, state Tgz_statep) (r int32) {
  22122. var strm Tz_streamp
  22123. _ = strm
  22124. strm = state + 128
  22125. /* allocate read buffers and inflate memory */
  22126. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) {
  22127. /* allocate buffers */
  22128. (*Tgz_state)(unsafe.Pointer(state)).Fin = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant))
  22129. (*Tgz_state)(unsafe.Pointer(state)).Fout = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant<<int32(1)))
  22130. if (*Tgz_state)(unsafe.Pointer(state)).Fin == libc.UintptrFromInt32(0) || (*Tgz_state)(unsafe.Pointer(state)).Fout == libc.UintptrFromInt32(0) {
  22131. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  22132. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  22133. Xgz_error(tls, state, -int32(4), __ccgo_ts+593)
  22134. return -int32(1)
  22135. }
  22136. (*Tgz_state)(unsafe.Pointer(state)).Fsize = (*Tgz_state)(unsafe.Pointer(state)).Fwant
  22137. /* allocate inflate memory */
  22138. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fzalloc = uintptr(m_Z_NULL)
  22139. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fzfree = uintptr(m_Z_NULL)
  22140. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fopaque = uintptr(m_Z_NULL)
  22141. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0)
  22142. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = uintptr(m_Z_NULL)
  22143. if XinflateInit2_(tls, state+128, libc.Int32FromInt32(15)+libc.Int32FromInt32(16), __ccgo_ts, libc.Int32FromInt64(112)) != m_Z_OK { /* gunzip */
  22144. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  22145. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  22146. (*Tgz_state)(unsafe.Pointer(state)).Fsize = uint32(0)
  22147. Xgz_error(tls, state, -int32(4), __ccgo_ts+593)
  22148. return -int32(1)
  22149. }
  22150. }
  22151. /* get at least the magic bytes in the input buffer */
  22152. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in < uint32(2) {
  22153. if _gz_avail(tls, state) == -int32(1) {
  22154. return -int32(1)
  22155. }
  22156. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  22157. return 0
  22158. }
  22159. }
  22160. /* look for gzip magic bytes -- if there, do gzip decoding (note: there is
  22161. a logical dilemma here when considering the case of a partially written
  22162. gzip file, to wit, if a single 31 byte is written, then we cannot tell
  22163. whether this is a single-byte file, or just a partially written gzip
  22164. file -- for here we assume that if a gzip file is being written, then
  22165. the header will be written in a single operation, so that reading a
  22166. single byte is sufficient indication that it is not a gzip file) */
  22167. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in > uint32(1) && int32(*(*TBytef)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in))) == int32(31) && int32(*(*TBytef)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in + 1))) == int32(139) {
  22168. XinflateReset(tls, strm)
  22169. (*Tgz_state)(unsafe.Pointer(state)).Fhow = int32(m_GZIP)
  22170. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = 0
  22171. return 0
  22172. }
  22173. /* no gzip header -- if we were decoding gzip before, then this is trailing
  22174. garbage. Ignore the trailing garbage and finish. */
  22175. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect == 0 {
  22176. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(0)
  22177. (*Tgz_state)(unsafe.Pointer(state)).Feof = int32(1)
  22178. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  22179. return 0
  22180. }
  22181. /* doing raw i/o, copy any leftover input to output -- this assumes that
  22182. the output buffer is larger than the input buffer, which also assures
  22183. space for gzungetc() */
  22184. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  22185. libc.Xmemcpy(tls, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, uint64((*Tz_stream)(unsafe.Pointer(strm)).Favail_in))
  22186. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  22187. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(0)
  22188. (*Tgz_state)(unsafe.Pointer(state)).Fhow = int32(m_COPY)
  22189. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1)
  22190. return 0
  22191. }
  22192. // C documentation
  22193. //
  22194. // /* Decompress from input to the provided next_out and avail_out in the state.
  22195. // On return, state->x.have and state->x.next point to the just decompressed
  22196. // data. If the gzip stream completes, state->how is reset to LOOK to look for
  22197. // the next gzip stream or raw data, once state->x.have is depleted. Returns 0
  22198. // on success, -1 on failure. */
  22199. func _gz_decomp(tls *libc.TLS, state Tgz_statep) (r int32) {
  22200. var had uint32
  22201. var ret int32
  22202. var strm Tz_streamp
  22203. var v1 uintptr
  22204. _, _, _, _ = had, ret, strm, v1
  22205. ret = m_Z_OK
  22206. strm = state + 128
  22207. /* fill output buffer up to end of deflate stream */
  22208. had = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  22209. for cond := true; cond; cond = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out != 0 && ret != int32(m_Z_STREAM_END) {
  22210. /* get more input for inflate() */
  22211. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) && _gz_avail(tls, state) == -int32(1) {
  22212. return -int32(1)
  22213. }
  22214. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  22215. Xgz_error(tls, state, -int32(5), __ccgo_ts+617)
  22216. break
  22217. }
  22218. /* decompress and handle errors */
  22219. ret = Xinflate(tls, strm, m_Z_NO_FLUSH)
  22220. if ret == -int32(2) || ret == int32(m_Z_NEED_DICT) {
  22221. Xgz_error(tls, state, -int32(2), __ccgo_ts+640)
  22222. return -int32(1)
  22223. }
  22224. if ret == -int32(4) {
  22225. Xgz_error(tls, state, -int32(4), __ccgo_ts+593)
  22226. return -int32(1)
  22227. }
  22228. if ret == -int32(3) { /* deflate stream invalid */
  22229. if (*Tz_stream)(unsafe.Pointer(strm)).Fmsg == libc.UintptrFromInt32(0) {
  22230. v1 = __ccgo_ts + 679
  22231. } else {
  22232. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Fmsg
  22233. }
  22234. Xgz_error(tls, state, -int32(3), v1)
  22235. return -int32(1)
  22236. }
  22237. }
  22238. /* update available output */
  22239. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = had - (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  22240. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out - uintptr((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave)
  22241. /* if the gzip stream completed successfully, look for another */
  22242. if ret == int32(m_Z_STREAM_END) {
  22243. (*Tgz_state)(unsafe.Pointer(state)).Fhow = m_LOOK
  22244. }
  22245. /* good decompression */
  22246. return 0
  22247. }
  22248. // C documentation
  22249. //
  22250. // /* Fetch data and put it in the output buffer. Assumes state->x.have is 0.
  22251. // Data is either copied from the input file or decompressed from the input
  22252. // file depending on state->how. If state->how is LOOK, then a gzip header is
  22253. // looked for to determine whether to copy or decompress. Returns -1 on error,
  22254. // otherwise 0. gz_fetch() will leave state->how as COPY or GZIP unless the
  22255. // end of the input file has been reached and all data has been processed. */
  22256. func _gz_fetch(tls *libc.TLS, state Tgz_statep) (r int32) {
  22257. var strm Tz_streamp
  22258. _ = strm
  22259. strm = state + 128
  22260. for cond := true; cond; cond = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) && (!((*Tgz_state)(unsafe.Pointer(state)).Feof != 0) || (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0) {
  22261. switch (*Tgz_state)(unsafe.Pointer(state)).Fhow {
  22262. case m_LOOK:
  22263. if _gz_look(tls, state) == -int32(1) {
  22264. return -int32(1)
  22265. }
  22266. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK {
  22267. return 0
  22268. }
  22269. case int32(m_COPY):
  22270. if _gz_load(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fout, (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1), state) == -int32(1) {
  22271. return -int32(1)
  22272. }
  22273. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  22274. return 0
  22275. case int32(m_GZIP):
  22276. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize << int32(1)
  22277. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  22278. if _gz_decomp(tls, state) == -int32(1) {
  22279. return -int32(1)
  22280. }
  22281. }
  22282. }
  22283. return 0
  22284. }
  22285. // C documentation
  22286. //
  22287. // /* Skip len uncompressed bytes of output. Return -1 on error, 0 on success. */
  22288. func _gz_skip(tls *libc.TLS, state Tgz_statep, len1 Toff_t) (r int32) {
  22289. var n, v1 uint32
  22290. _, _ = n, v1
  22291. /* skip over len bytes or reach end-of-file, whichever comes first */
  22292. for len1 != 0 {
  22293. /* skip over whatever is in output buffer */
  22294. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  22295. if libc.Bool(libc.Bool(uint64(4) == uint64(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > uint32(m_INT_MAX)) || int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave) > len1 {
  22296. v1 = uint32(len1)
  22297. } else {
  22298. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  22299. }
  22300. n = v1
  22301. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  22302. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  22303. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(n)
  22304. len1 -= int64(n)
  22305. } else {
  22306. if (*Tgz_state)(unsafe.Pointer(state)).Feof != 0 && (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  22307. break
  22308. } else {
  22309. /* get more output, looking for header if required */
  22310. if _gz_fetch(tls, state) == -int32(1) {
  22311. return -int32(1)
  22312. }
  22313. }
  22314. }
  22315. }
  22316. return 0
  22317. }
  22318. // C documentation
  22319. //
  22320. // /* Read len bytes into buf from file, or less than len up to the end of the
  22321. // input. Return the number of bytes read. If zero is returned, either the
  22322. // end of file was reached, or there was an error. state->err must be
  22323. // consulted in that case to determine which. */
  22324. func _gz_read(tls *libc.TLS, state Tgz_statep, buf Tvoidp, len1 Tz_size_t) (r Tz_size_t) {
  22325. bp := tls.Alloc(16)
  22326. defer tls.Free(16)
  22327. var got Tz_size_t
  22328. var _ /* n at bp+0 */ uint32
  22329. _ = got
  22330. /* if len is zero, avoid unnecessary operations */
  22331. if len1 == uint64(0) {
  22332. return uint64(0)
  22333. }
  22334. /* process a skip request */
  22335. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22336. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22337. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22338. return uint64(0)
  22339. }
  22340. }
  22341. /* get len bytes to buf, or less than len if at the end */
  22342. got = uint64(0)
  22343. for cond := true; cond; cond = len1 != 0 {
  22344. /* set n to the maximum amount of len that fits in an unsigned int */
  22345. *(*uint32)(unsafe.Pointer(bp)) = uint32(-libc.Int32FromInt32(1))
  22346. if uint64(*(*uint32)(unsafe.Pointer(bp))) > len1 {
  22347. *(*uint32)(unsafe.Pointer(bp)) = uint32(len1)
  22348. }
  22349. /* first just try copying data from the output buffer */
  22350. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  22351. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave < *(*uint32)(unsafe.Pointer(bp)) {
  22352. *(*uint32)(unsafe.Pointer(bp)) = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  22353. }
  22354. libc.Xmemcpy(tls, buf, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, uint64(*(*uint32)(unsafe.Pointer(bp))))
  22355. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(*(*uint32)(unsafe.Pointer(bp)))
  22356. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= *(*uint32)(unsafe.Pointer(bp))
  22357. } else {
  22358. if (*Tgz_state)(unsafe.Pointer(state)).Feof != 0 && (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  22359. (*Tgz_state)(unsafe.Pointer(state)).Fpast = int32(1) /* tried to read past end */
  22360. break
  22361. } else {
  22362. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK || *(*uint32)(unsafe.Pointer(bp)) < (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1) {
  22363. /* get more output, looking for header if required */
  22364. if _gz_fetch(tls, state) == -int32(1) {
  22365. return uint64(0)
  22366. }
  22367. continue /* no progress yet -- go back to copy above */
  22368. /* the copy above assures that we will leave with space in the
  22369. output buffer, allowing at least one gzungetc() to succeed */
  22370. } else {
  22371. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == int32(m_COPY) { /* read directly */
  22372. if _gz_load(tls, state, buf, *(*uint32)(unsafe.Pointer(bp)), bp) == -int32(1) {
  22373. return uint64(0)
  22374. }
  22375. } else { /* state->how == GZIP */
  22376. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_out = *(*uint32)(unsafe.Pointer(bp))
  22377. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_out = buf
  22378. if _gz_decomp(tls, state) == -int32(1) {
  22379. return uint64(0)
  22380. }
  22381. *(*uint32)(unsafe.Pointer(bp)) = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  22382. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  22383. }
  22384. }
  22385. }
  22386. }
  22387. /* update progress */
  22388. len1 -= uint64(*(*uint32)(unsafe.Pointer(bp)))
  22389. buf = buf + uintptr(*(*uint32)(unsafe.Pointer(bp)))
  22390. got += uint64(*(*uint32)(unsafe.Pointer(bp)))
  22391. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(*(*uint32)(unsafe.Pointer(bp)))
  22392. }
  22393. /* return number of bytes read into user buffer */
  22394. return got
  22395. }
  22396. // C documentation
  22397. //
  22398. // /* -- see zlib.h -- */
  22399. func Xgzread(tls *libc.TLS, file TgzFile, buf Tvoidp, len1 uint32) (r int32) {
  22400. var state Tgz_statep
  22401. _ = state
  22402. /* get internal structure */
  22403. if file == libc.UintptrFromInt32(0) {
  22404. return -int32(1)
  22405. }
  22406. state = file
  22407. /* check that we're reading and that there's no (serious) error */
  22408. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  22409. return -int32(1)
  22410. }
  22411. /* since an int is returned, make sure len fits in one, otherwise return
  22412. with an error (this avoids a flaw in the interface) */
  22413. if int32(len1) < 0 {
  22414. Xgz_error(tls, state, -int32(2), __ccgo_ts+701)
  22415. return -int32(1)
  22416. }
  22417. /* read len or fewer bytes to buf */
  22418. len1 = uint32(_gz_read(tls, state, buf, uint64(len1)))
  22419. /* check for an error */
  22420. if len1 == uint32(0) && (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  22421. return -int32(1)
  22422. }
  22423. /* return the number of bytes read (this is assured to fit in an int) */
  22424. return int32(len1)
  22425. }
  22426. // C documentation
  22427. //
  22428. // /* -- see zlib.h -- */
  22429. func Xgzfread(tls *libc.TLS, buf Tvoidp, size Tz_size_t, nitems Tz_size_t, file TgzFile) (r Tz_size_t) {
  22430. var len1 Tz_size_t
  22431. var state Tgz_statep
  22432. var v1 uint64
  22433. _, _, _ = len1, state, v1
  22434. /* get internal structure */
  22435. if file == libc.UintptrFromInt32(0) {
  22436. return uint64(0)
  22437. }
  22438. state = file
  22439. /* check that we're reading and that there's no (serious) error */
  22440. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  22441. return uint64(0)
  22442. }
  22443. /* compute bytes to read -- error on overflow */
  22444. len1 = nitems * size
  22445. if size != 0 && len1/size != nitems {
  22446. Xgz_error(tls, state, -int32(2), __ccgo_ts+732)
  22447. return uint64(0)
  22448. }
  22449. /* read len or fewer bytes to buf, return the number of full items read */
  22450. if len1 != 0 {
  22451. v1 = _gz_read(tls, state, buf, len1) / size
  22452. } else {
  22453. v1 = uint64(0)
  22454. }
  22455. return v1
  22456. }
  22457. // C documentation
  22458. //
  22459. // /* -- see zlib.h -- */
  22460. func Xgzgetc(tls *libc.TLS, file TgzFile) (r int32) {
  22461. bp := tls.Alloc(16)
  22462. defer tls.Free(16)
  22463. var state Tgz_statep
  22464. var v1, v2 uintptr
  22465. var v3 int32
  22466. var _ /* buf at bp+0 */ [1]uint8
  22467. _, _, _, _ = state, v1, v2, v3
  22468. /* get internal structure */
  22469. if file == libc.UintptrFromInt32(0) {
  22470. return -int32(1)
  22471. }
  22472. state = file
  22473. /* check that we're reading and that there's no (serious) error */
  22474. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  22475. return -int32(1)
  22476. }
  22477. /* try output buffer (no need to check for skip request) */
  22478. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  22479. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave--
  22480. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos++
  22481. v2 = state + 8
  22482. v1 = *(*uintptr)(unsafe.Pointer(v2))
  22483. *(*uintptr)(unsafe.Pointer(v2))++
  22484. return int32(*(*uint8)(unsafe.Pointer(v1)))
  22485. }
  22486. /* nothing there -- try gz_read() */
  22487. if _gz_read(tls, state, bp, uint64(1)) < uint64(1) {
  22488. v3 = -int32(1)
  22489. } else {
  22490. v3 = int32((*(*[1]uint8)(unsafe.Pointer(bp)))[0])
  22491. }
  22492. return v3
  22493. }
  22494. func Xgzgetc_(tls *libc.TLS, file TgzFile) (r int32) {
  22495. return Xgzgetc(tls, file)
  22496. }
  22497. // C documentation
  22498. //
  22499. // /* -- see zlib.h -- */
  22500. func Xgzungetc(tls *libc.TLS, c int32, file TgzFile) (r int32) {
  22501. var dest, src, v1, v2 uintptr
  22502. var state Tgz_statep
  22503. _, _, _, _, _ = dest, src, state, v1, v2
  22504. /* get internal structure */
  22505. if file == libc.UintptrFromInt32(0) {
  22506. return -int32(1)
  22507. }
  22508. state = file
  22509. /* in case this was just opened, set up the input buffer */
  22510. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) {
  22511. _gz_look(tls, state)
  22512. }
  22513. /* check that we're reading and that there's no (serious) error */
  22514. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  22515. return -int32(1)
  22516. }
  22517. /* process a skip request */
  22518. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22519. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22520. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22521. return -int32(1)
  22522. }
  22523. }
  22524. /* can't push EOF */
  22525. if c < 0 {
  22526. return -int32(1)
  22527. }
  22528. /* if output buffer empty, put byte at end (allows more pushing) */
  22529. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) {
  22530. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(1)
  22531. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize<<libc.Int32FromInt32(1)) - uintptr(1)
  22532. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) = uint8(c)
  22533. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos--
  22534. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  22535. return c
  22536. }
  22537. /* if no room, give up (must have already done a gzungetc()) */
  22538. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1) {
  22539. Xgz_error(tls, state, -int32(3), __ccgo_ts+765)
  22540. return -int32(1)
  22541. }
  22542. /* slide output data if needed and insert byte before existing data */
  22543. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext == (*Tgz_state)(unsafe.Pointer(state)).Fout {
  22544. src = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave)
  22545. dest = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize<<libc.Int32FromInt32(1))
  22546. for src > (*Tgz_state)(unsafe.Pointer(state)).Fout {
  22547. dest--
  22548. v1 = dest
  22549. src--
  22550. v2 = src
  22551. *(*uint8)(unsafe.Pointer(v1)) = *(*uint8)(unsafe.Pointer(v2))
  22552. }
  22553. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = dest
  22554. }
  22555. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave++
  22556. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext--
  22557. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) = uint8(c)
  22558. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos--
  22559. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  22560. return c
  22561. }
  22562. // C documentation
  22563. //
  22564. // /* -- see zlib.h -- */
  22565. func Xgzgets(tls *libc.TLS, file TgzFile, buf uintptr, len1 int32) (r uintptr) {
  22566. var eol, str uintptr
  22567. var left, n, v1 uint32
  22568. var state Tgz_statep
  22569. _, _, _, _, _, _ = eol, left, n, state, str, v1
  22570. /* check parameters and get internal structure */
  22571. if file == libc.UintptrFromInt32(0) || buf == libc.UintptrFromInt32(0) || len1 < int32(1) {
  22572. return libc.UintptrFromInt32(0)
  22573. }
  22574. state = file
  22575. /* check that we're reading and that there's no (serious) error */
  22576. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  22577. return libc.UintptrFromInt32(0)
  22578. }
  22579. /* process a skip request */
  22580. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22581. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22582. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22583. return libc.UintptrFromInt32(0)
  22584. }
  22585. }
  22586. /* copy output bytes up to new line or len - 1, whichever comes first --
  22587. append a terminating zero to the string (we don't check for a zero in
  22588. the contents, let the user worry about that) */
  22589. str = buf
  22590. left = uint32(len1) - uint32(1)
  22591. if left != 0 {
  22592. for cond := true; cond; cond = left != 0 && eol == libc.UintptrFromInt32(0) {
  22593. /* assure that something is in the output buffer */
  22594. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) && _gz_fetch(tls, state) == -int32(1) {
  22595. return libc.UintptrFromInt32(0)
  22596. } /* error */
  22597. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) { /* end of file */
  22598. (*Tgz_state)(unsafe.Pointer(state)).Fpast = int32(1) /* read past end */
  22599. break /* return what we have */
  22600. }
  22601. /* look for end-of-line in current output buffer */
  22602. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > left {
  22603. v1 = left
  22604. } else {
  22605. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  22606. }
  22607. n = v1
  22608. eol = libc.Xmemchr(tls, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, int32('\n'), uint64(n))
  22609. if eol != libc.UintptrFromInt32(0) {
  22610. n = uint32(int64(eol)-int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) + uint32(1)
  22611. }
  22612. /* copy through end-of-line, or remainder if not found */
  22613. libc.Xmemcpy(tls, buf, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, uint64(n))
  22614. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  22615. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  22616. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(n)
  22617. left -= n
  22618. buf += uintptr(n)
  22619. }
  22620. }
  22621. /* return terminated string, or if nothing, end of file */
  22622. if buf == str {
  22623. return libc.UintptrFromInt32(0)
  22624. }
  22625. *(*uint8)(unsafe.Pointer(buf)) = uint8(0)
  22626. return str
  22627. }
  22628. // C documentation
  22629. //
  22630. // /* -- see zlib.h -- */
  22631. func Xgzdirect(tls *libc.TLS, file TgzFile) (r int32) {
  22632. var state Tgz_statep
  22633. _ = state
  22634. /* get internal structure */
  22635. if file == libc.UintptrFromInt32(0) {
  22636. return 0
  22637. }
  22638. state = file
  22639. /* if the state is not known, but we can find out, then do so (this is
  22640. mainly for right after a gzopen() or gzdopen()) */
  22641. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) {
  22642. _gz_look(tls, state)
  22643. }
  22644. /* return 1 if transparent, 0 if processing a gzip stream */
  22645. return (*Tgz_state)(unsafe.Pointer(state)).Fdirect
  22646. }
  22647. // C documentation
  22648. //
  22649. // /* -- see zlib.h -- */
  22650. func Xgzclose_r(tls *libc.TLS, file TgzFile) (r int32) {
  22651. var err, ret, v1, v2 int32
  22652. var state Tgz_statep
  22653. _, _, _, _, _ = err, ret, state, v1, v2
  22654. /* get internal structure */
  22655. if file == libc.UintptrFromInt32(0) {
  22656. return -int32(2)
  22657. }
  22658. state = file
  22659. /* check that we're reading */
  22660. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) {
  22661. return -int32(2)
  22662. }
  22663. /* free memory and close file */
  22664. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  22665. XinflateEnd(tls, state+128)
  22666. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  22667. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  22668. }
  22669. if (*Tgz_state)(unsafe.Pointer(state)).Ferr == -int32(5) {
  22670. v1 = -int32(5)
  22671. } else {
  22672. v1 = m_Z_OK
  22673. }
  22674. err = v1
  22675. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  22676. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  22677. ret = libc.Xclose(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd)
  22678. libc.Xfree(tls, state)
  22679. if ret != 0 {
  22680. v2 = -int32(1)
  22681. } else {
  22682. v2 = err
  22683. }
  22684. return v2
  22685. }
  22686. /* GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t
  22687. value -- needed when comparing unsigned to z_off64_t, which is signed
  22688. (possible z_off64_t types off_t, off64_t, and long are all signed) */
  22689. // C documentation
  22690. //
  22691. // /* Initialize state for writing a gzip file. Mark initialization by setting
  22692. // state->size to non-zero. Return -1 on a memory allocation failure, or 0 on
  22693. // success. */
  22694. func _gz_init(tls *libc.TLS, state Tgz_statep) (r int32) {
  22695. var ret int32
  22696. var strm Tz_streamp
  22697. _, _ = ret, strm
  22698. strm = state + 128
  22699. /* allocate input buffer (double size for gzprintf) */
  22700. (*Tgz_state)(unsafe.Pointer(state)).Fin = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant<<int32(1)))
  22701. if (*Tgz_state)(unsafe.Pointer(state)).Fin == libc.UintptrFromInt32(0) {
  22702. Xgz_error(tls, state, -int32(4), __ccgo_ts+593)
  22703. return -int32(1)
  22704. }
  22705. /* only need output buffer and deflate state if compressing */
  22706. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  22707. /* allocate output buffer */
  22708. (*Tgz_state)(unsafe.Pointer(state)).Fout = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant))
  22709. if (*Tgz_state)(unsafe.Pointer(state)).Fout == libc.UintptrFromInt32(0) {
  22710. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  22711. Xgz_error(tls, state, -int32(4), __ccgo_ts+593)
  22712. return -int32(1)
  22713. }
  22714. /* allocate deflate memory, set up for gzip compression */
  22715. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = uintptr(m_Z_NULL)
  22716. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = uintptr(m_Z_NULL)
  22717. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = uintptr(m_Z_NULL)
  22718. ret = XdeflateInit2_(tls, strm, (*Tgz_state)(unsafe.Pointer(state)).Flevel, int32(m_Z_DEFLATED), libc.Int32FromInt32(m_MAX_WBITS)+libc.Int32FromInt32(16), int32(m_DEF_MEM_LEVEL), (*Tgz_state)(unsafe.Pointer(state)).Fstrategy, __ccgo_ts, libc.Int32FromInt64(112))
  22719. if ret != m_Z_OK {
  22720. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  22721. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  22722. Xgz_error(tls, state, -int32(4), __ccgo_ts+593)
  22723. return -int32(1)
  22724. }
  22725. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = libc.UintptrFromInt32(0)
  22726. }
  22727. /* mark state as initialized */
  22728. (*Tgz_state)(unsafe.Pointer(state)).Fsize = (*Tgz_state)(unsafe.Pointer(state)).Fwant
  22729. /* initialize write buffer if compressing */
  22730. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  22731. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  22732. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  22733. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  22734. }
  22735. return 0
  22736. }
  22737. // C documentation
  22738. //
  22739. // /* Compress whatever is at avail_in and next_in and write to the output file.
  22740. // Return -1 if there is an error writing to the output file or if gz_init()
  22741. // fails to allocate memory, otherwise 0. flush is assumed to be a valid
  22742. // deflate() flush value. If flush is Z_FINISH, then the deflate() state is
  22743. // reset to start a new gzip stream. If gz->direct is true, then simply write
  22744. // to the output file without compressing, and ignore flush. */
  22745. func _gz_comp(tls *libc.TLS, state Tgz_statep, flush int32) (r int32) {
  22746. var have, max, put, v1, v2 uint32
  22747. var ret, writ int32
  22748. var strm Tz_streamp
  22749. _, _, _, _, _, _, _, _ = have, max, put, ret, strm, writ, v1, v2
  22750. max = uint32(-libc.Int32FromInt32(1))>>libc.Int32FromInt32(2) + libc.Uint32FromInt32(1)
  22751. strm = state + 128
  22752. /* allocate memory if this is the first time through */
  22753. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  22754. return -int32(1)
  22755. }
  22756. /* write directly if requested */
  22757. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  22758. for (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 {
  22759. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in > max {
  22760. v1 = max
  22761. } else {
  22762. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  22763. }
  22764. put = v1
  22765. writ = int32(libc.Xwrite(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, uint64(put)))
  22766. if writ < 0 {
  22767. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno(tls)))))
  22768. return -int32(1)
  22769. }
  22770. *(*TuInt)(unsafe.Pointer(strm + 8)) -= uint32(writ)
  22771. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(writ)
  22772. }
  22773. return 0
  22774. }
  22775. /* check for a pending reset */
  22776. if (*Tgz_state)(unsafe.Pointer(state)).Freset != 0 {
  22777. /* don't start a new gzip member unless there is data to write */
  22778. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  22779. return 0
  22780. }
  22781. XdeflateReset(tls, strm)
  22782. (*Tgz_state)(unsafe.Pointer(state)).Freset = 0
  22783. }
  22784. /* run deflate() on provided input until it produces no more output */
  22785. ret = m_Z_OK
  22786. for cond := true; cond; cond = have != 0 {
  22787. /* write out current buffer contents if full, or if flushing, but if
  22788. doing Z_FINISH then don't write until we get to Z_STREAM_END */
  22789. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) || flush != m_Z_NO_FLUSH && (flush != int32(m_Z_FINISH) || ret == int32(m_Z_STREAM_END)) {
  22790. for (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out > (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext {
  22791. if int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_out)-int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext) > int64(int32(max)) {
  22792. v2 = max
  22793. } else {
  22794. v2 = uint32(int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_out) - int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext))
  22795. }
  22796. put = v2
  22797. writ = int32(libc.Xwrite(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, uint64(put)))
  22798. if writ < 0 {
  22799. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno(tls)))))
  22800. return -int32(1)
  22801. }
  22802. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(writ)
  22803. }
  22804. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  22805. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  22806. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  22807. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  22808. }
  22809. }
  22810. /* compress */
  22811. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  22812. ret = Xdeflate(tls, strm, flush)
  22813. if ret == -int32(2) {
  22814. Xgz_error(tls, state, -int32(2), __ccgo_ts+796)
  22815. return -int32(1)
  22816. }
  22817. have -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  22818. }
  22819. /* if that completed a deflate stream, allow another to start */
  22820. if flush == int32(m_Z_FINISH) {
  22821. (*Tgz_state)(unsafe.Pointer(state)).Freset = int32(1)
  22822. }
  22823. /* all done, no errors */
  22824. return 0
  22825. }
  22826. // C documentation
  22827. //
  22828. // /* Compress len zeros to output. Return -1 on a write error or memory
  22829. // allocation failure by gz_comp(), or 0 on success. */
  22830. func _gz_zero(tls *libc.TLS, state Tgz_statep, len1 Toff_t) (r int32) {
  22831. var first int32
  22832. var n, v1 uint32
  22833. var strm Tz_streamp
  22834. _, _, _, _ = first, n, strm, v1
  22835. strm = state + 128
  22836. /* consume whatever's left in the input buffer */
  22837. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  22838. return -int32(1)
  22839. }
  22840. /* compress len zeros (len guaranteed > 0) */
  22841. first = int32(1)
  22842. for len1 != 0 {
  22843. if libc.Bool(libc.Bool(uint64(4) == uint64(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fsize > uint32(m_INT_MAX)) || int64((*Tgz_state)(unsafe.Pointer(state)).Fsize) > len1 {
  22844. v1 = uint32(len1)
  22845. } else {
  22846. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  22847. }
  22848. n = v1
  22849. if first != 0 {
  22850. libc.Xmemset(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin, 0, uint64(n))
  22851. first = 0
  22852. }
  22853. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = n
  22854. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  22855. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(n)
  22856. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  22857. return -int32(1)
  22858. }
  22859. len1 -= int64(n)
  22860. }
  22861. return 0
  22862. }
  22863. // C documentation
  22864. //
  22865. // /* Write len bytes from buf to file. Return the number of bytes written. If
  22866. // the returned value is less than len, then there was an error. */
  22867. func _gz_write(tls *libc.TLS, state Tgz_statep, buf Tvoidpc, len1 Tz_size_t) (r Tz_size_t) {
  22868. var copy1, have, n uint32
  22869. var put Tz_size_t
  22870. _, _, _, _ = copy1, have, n, put
  22871. put = len1
  22872. /* if len is zero, avoid unnecessary operations */
  22873. if len1 == uint64(0) {
  22874. return uint64(0)
  22875. }
  22876. /* allocate memory if this is the first time through */
  22877. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  22878. return uint64(0)
  22879. }
  22880. /* check for seek request */
  22881. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22882. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22883. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22884. return uint64(0)
  22885. }
  22886. }
  22887. /* for small len, copy to input buffer, otherwise compress directly */
  22888. if len1 < uint64((*Tgz_state)(unsafe.Pointer(state)).Fsize) {
  22889. /* copy to input buffer, compress when full */
  22890. for cond := true; cond; cond = len1 != 0 {
  22891. if (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  22892. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  22893. }
  22894. have = uint32(int64((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in+uintptr((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in)) - int64((*Tgz_state)(unsafe.Pointer(state)).Fin))
  22895. copy1 = (*Tgz_state)(unsafe.Pointer(state)).Fsize - have
  22896. if uint64(copy1) > len1 {
  22897. copy1 = uint32(len1)
  22898. }
  22899. libc.Xmemcpy(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr(have), buf, uint64(copy1))
  22900. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in += copy1
  22901. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(copy1)
  22902. buf = buf + uintptr(copy1)
  22903. len1 -= uint64(copy1)
  22904. if len1 != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  22905. return uint64(0)
  22906. }
  22907. }
  22908. } else {
  22909. /* consume whatever's left in the input buffer */
  22910. if (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  22911. return uint64(0)
  22912. }
  22913. /* directly compress user buffer to file */
  22914. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = buf
  22915. for cond := true; cond; cond = len1 != 0 {
  22916. n = uint32(-libc.Int32FromInt32(1))
  22917. if uint64(n) > len1 {
  22918. n = uint32(len1)
  22919. }
  22920. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = n
  22921. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(n)
  22922. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  22923. return uint64(0)
  22924. }
  22925. len1 -= uint64(n)
  22926. }
  22927. }
  22928. /* input was all buffered or compressed */
  22929. return put
  22930. }
  22931. // C documentation
  22932. //
  22933. // /* -- see zlib.h -- */
  22934. func Xgzwrite(tls *libc.TLS, file TgzFile, buf Tvoidpc, len1 uint32) (r int32) {
  22935. var state Tgz_statep
  22936. _ = state
  22937. /* get internal structure */
  22938. if file == libc.UintptrFromInt32(0) {
  22939. return 0
  22940. }
  22941. state = file
  22942. /* check that we're writing and that there's no error */
  22943. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22944. return 0
  22945. }
  22946. /* since an int is returned, make sure len fits in one, otherwise return
  22947. with an error (this avoids a flaw in the interface) */
  22948. if int32(len1) < 0 {
  22949. Xgz_error(tls, state, -int32(3), __ccgo_ts+835)
  22950. return 0
  22951. }
  22952. /* write len bytes from buf (the return value will fit in an int) */
  22953. return int32(_gz_write(tls, state, buf, uint64(len1)))
  22954. }
  22955. // C documentation
  22956. //
  22957. // /* -- see zlib.h -- */
  22958. func Xgzfwrite(tls *libc.TLS, buf Tvoidpc, size Tz_size_t, nitems Tz_size_t, file TgzFile) (r Tz_size_t) {
  22959. var len1 Tz_size_t
  22960. var state Tgz_statep
  22961. var v1 uint64
  22962. _, _, _ = len1, state, v1
  22963. /* get internal structure */
  22964. if file == libc.UintptrFromInt32(0) {
  22965. return uint64(0)
  22966. }
  22967. state = file
  22968. /* check that we're writing and that there's no error */
  22969. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22970. return uint64(0)
  22971. }
  22972. /* compute bytes to read -- error on overflow */
  22973. len1 = nitems * size
  22974. if size != 0 && len1/size != nitems {
  22975. Xgz_error(tls, state, -int32(2), __ccgo_ts+732)
  22976. return uint64(0)
  22977. }
  22978. /* write len bytes to buf, return the number of full items written */
  22979. if len1 != 0 {
  22980. v1 = _gz_write(tls, state, buf, len1) / size
  22981. } else {
  22982. v1 = uint64(0)
  22983. }
  22984. return v1
  22985. }
  22986. // C documentation
  22987. //
  22988. // /* -- see zlib.h -- */
  22989. func Xgzputc(tls *libc.TLS, file TgzFile, c int32) (r int32) {
  22990. bp := tls.Alloc(16)
  22991. defer tls.Free(16)
  22992. var have uint32
  22993. var state Tgz_statep
  22994. var strm Tz_streamp
  22995. var _ /* buf at bp+0 */ [1]uint8
  22996. _, _, _ = have, state, strm
  22997. /* get internal structure */
  22998. if file == libc.UintptrFromInt32(0) {
  22999. return -int32(1)
  23000. }
  23001. state = file
  23002. strm = state + 128
  23003. /* check that we're writing and that there's no error */
  23004. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  23005. return -int32(1)
  23006. }
  23007. /* check for seek request */
  23008. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  23009. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  23010. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  23011. return -int32(1)
  23012. }
  23013. }
  23014. /* try writing to input buffer for speed (state->size == 0 if buffer not
  23015. initialized) */
  23016. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  23017. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  23018. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  23019. }
  23020. have = uint32(int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in+uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in)) - int64((*Tgz_state)(unsafe.Pointer(state)).Fin))
  23021. if have < (*Tgz_state)(unsafe.Pointer(state)).Fsize {
  23022. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fin + uintptr(have))) = uint8(c)
  23023. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in++
  23024. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos++
  23025. return c & int32(0xff)
  23026. }
  23027. }
  23028. /* no room in buffer or not initialized, use gz_write() */
  23029. (*(*[1]uint8)(unsafe.Pointer(bp)))[0] = uint8(c)
  23030. if _gz_write(tls, state, bp, uint64(1)) != uint64(1) {
  23031. return -int32(1)
  23032. }
  23033. return c & int32(0xff)
  23034. }
  23035. // C documentation
  23036. //
  23037. // /* -- see zlib.h -- */
  23038. func Xgzputs(tls *libc.TLS, file TgzFile, s uintptr) (r int32) {
  23039. var len1, put Tz_size_t
  23040. var state Tgz_statep
  23041. var v1 int32
  23042. _, _, _, _ = len1, put, state, v1
  23043. /* get internal structure */
  23044. if file == libc.UintptrFromInt32(0) {
  23045. return -int32(1)
  23046. }
  23047. state = file
  23048. /* check that we're writing and that there's no error */
  23049. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  23050. return -int32(1)
  23051. }
  23052. /* write string */
  23053. len1 = libc.Xstrlen(tls, s)
  23054. if int32(len1) < 0 || uint64(uint32(len1)) != len1 {
  23055. Xgz_error(tls, state, -int32(2), __ccgo_ts+872)
  23056. return -int32(1)
  23057. }
  23058. put = _gz_write(tls, state, s, len1)
  23059. if put < len1 {
  23060. v1 = -int32(1)
  23061. } else {
  23062. v1 = int32(len1)
  23063. }
  23064. return v1
  23065. }
  23066. /* $OpenBSD: stdarg.h,v 1.10 2020/07/21 23:09:00 daniel Exp $ */
  23067. /*
  23068. * Copyright (c) 2003, 2004 Marc espie <espie@openbsd.org>
  23069. *
  23070. * Permission to use, copy, modify, and distribute this software for any
  23071. * purpose with or without fee is hereby granted, provided that the above
  23072. * copyright notice and this permission notice appear in all copies.
  23073. *
  23074. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  23075. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  23076. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  23077. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  23078. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  23079. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  23080. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  23081. */
  23082. // C documentation
  23083. //
  23084. // /* -- see zlib.h -- */
  23085. func Xgzvprintf(tls *libc.TLS, file TgzFile, format uintptr, va Tva_list) (r int32) {
  23086. var left uint32
  23087. var len1 int32
  23088. var next uintptr
  23089. var state Tgz_statep
  23090. var strm Tz_streamp
  23091. _, _, _, _, _ = left, len1, next, state, strm
  23092. /* get internal structure */
  23093. if file == libc.UintptrFromInt32(0) {
  23094. return -int32(2)
  23095. }
  23096. state = file
  23097. strm = state + 128
  23098. /* check that we're writing and that there's no error */
  23099. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  23100. return -int32(2)
  23101. }
  23102. /* make sure we have some buffer space */
  23103. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  23104. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  23105. }
  23106. /* check for seek request */
  23107. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  23108. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  23109. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  23110. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  23111. }
  23112. }
  23113. /* do the printf() into the input buffer, put length in len -- the input
  23114. buffer is double-sized just for this function, so there is guaranteed to
  23115. be state->size bytes available after the current contents */
  23116. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  23117. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  23118. }
  23119. next = (*Tgz_state)(unsafe.Pointer(state)).Fin + uintptr(int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in)-int64((*Tgz_state)(unsafe.Pointer(state)).Fin)) + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in)
  23120. *(*uint8)(unsafe.Pointer(next + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize-uint32(1)))) = uint8(0)
  23121. len1 = libc.X__builtin_vsnprintf(tls, next, uint64((*Tgz_state)(unsafe.Pointer(state)).Fsize), format, va)
  23122. /* check that printf() results fit in buffer */
  23123. if len1 == 0 || uint32(len1) >= (*Tgz_state)(unsafe.Pointer(state)).Fsize || int32(*(*uint8)(unsafe.Pointer(next + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize-uint32(1))))) != 0 {
  23124. return 0
  23125. }
  23126. /* update buffer and position, compress first half if past that */
  23127. *(*TuInt)(unsafe.Pointer(strm + 8)) += uint32(len1)
  23128. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(len1)
  23129. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in >= (*Tgz_state)(unsafe.Pointer(state)).Fsize {
  23130. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in - (*Tgz_state)(unsafe.Pointer(state)).Fsize
  23131. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  23132. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  23133. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  23134. }
  23135. libc.Xmemmove(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize), uint64(left))
  23136. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  23137. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = left
  23138. }
  23139. return len1
  23140. }
  23141. func Xgzprintf(tls *libc.TLS, file TgzFile, format uintptr, va1 uintptr) (r int32) {
  23142. var ret int32
  23143. var va Tva_list
  23144. _, _ = ret, va
  23145. va = va1
  23146. ret = Xgzvprintf(tls, file, format, va)
  23147. _ = va
  23148. return ret
  23149. }
  23150. // C documentation
  23151. //
  23152. // /* -- see zlib.h -- */
  23153. func Xgzflush(tls *libc.TLS, file TgzFile, flush int32) (r int32) {
  23154. var state Tgz_statep
  23155. _ = state
  23156. /* get internal structure */
  23157. if file == libc.UintptrFromInt32(0) {
  23158. return -int32(2)
  23159. }
  23160. state = file
  23161. /* check that we're writing and that there's no error */
  23162. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  23163. return -int32(2)
  23164. }
  23165. /* check flush parameter */
  23166. if flush < 0 || flush > int32(m_Z_FINISH) {
  23167. return -int32(2)
  23168. }
  23169. /* check for seek request */
  23170. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  23171. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  23172. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  23173. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  23174. }
  23175. }
  23176. /* compress remaining data with requested flush */
  23177. _gz_comp(tls, state, flush)
  23178. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  23179. }
  23180. // C documentation
  23181. //
  23182. // /* -- see zlib.h -- */
  23183. func Xgzsetparams(tls *libc.TLS, file TgzFile, level int32, strategy int32) (r int32) {
  23184. var state Tgz_statep
  23185. var strm Tz_streamp
  23186. _, _ = state, strm
  23187. /* get internal structure */
  23188. if file == libc.UintptrFromInt32(0) {
  23189. return -int32(2)
  23190. }
  23191. state = file
  23192. strm = state + 128
  23193. /* check that we're writing and that there's no error */
  23194. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK || (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  23195. return -int32(2)
  23196. }
  23197. /* if no change is requested, then do nothing */
  23198. if level == (*Tgz_state)(unsafe.Pointer(state)).Flevel && strategy == (*Tgz_state)(unsafe.Pointer(state)).Fstrategy {
  23199. return m_Z_OK
  23200. }
  23201. /* check for seek request */
  23202. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  23203. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  23204. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  23205. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  23206. }
  23207. }
  23208. /* change compression parameters for subsequent input */
  23209. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  23210. /* flush previous input with previous parameters before changing */
  23211. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 && _gz_comp(tls, state, int32(m_Z_BLOCK)) == -int32(1) {
  23212. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  23213. }
  23214. XdeflateParams(tls, strm, level, strategy)
  23215. }
  23216. (*Tgz_state)(unsafe.Pointer(state)).Flevel = level
  23217. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = strategy
  23218. return m_Z_OK
  23219. }
  23220. // C documentation
  23221. //
  23222. // /* -- see zlib.h -- */
  23223. func Xgzclose_w(tls *libc.TLS, file TgzFile) (r int32) {
  23224. var ret int32
  23225. var state Tgz_statep
  23226. _, _ = ret, state
  23227. ret = m_Z_OK
  23228. /* get internal structure */
  23229. if file == libc.UintptrFromInt32(0) {
  23230. return -int32(2)
  23231. }
  23232. state = file
  23233. /* check that we're writing */
  23234. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  23235. return -int32(2)
  23236. }
  23237. /* check for seek request */
  23238. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  23239. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  23240. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  23241. ret = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  23242. }
  23243. }
  23244. /* flush, free memory, and close file */
  23245. if _gz_comp(tls, state, int32(m_Z_FINISH)) == -int32(1) {
  23246. ret = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  23247. }
  23248. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  23249. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  23250. XdeflateEnd(tls, state+128)
  23251. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  23252. }
  23253. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  23254. }
  23255. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  23256. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  23257. if libc.Xclose(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd) == -int32(1) {
  23258. ret = -int32(1)
  23259. }
  23260. libc.Xfree(tls, state)
  23261. return ret
  23262. }
  23263. func __ccgo_fp(f interface{}) uintptr {
  23264. type iface [2]uintptr
  23265. return (*iface)(unsafe.Pointer(&f))[1]
  23266. }
  23267. var x__dist_code = [512]Tuch{
  23268. 1: uint8(1),
  23269. 2: uint8(2),
  23270. 3: uint8(3),
  23271. 4: uint8(4),
  23272. 5: uint8(4),
  23273. 6: uint8(5),
  23274. 7: uint8(5),
  23275. 8: uint8(6),
  23276. 9: uint8(6),
  23277. 10: uint8(6),
  23278. 11: uint8(6),
  23279. 12: uint8(7),
  23280. 13: uint8(7),
  23281. 14: uint8(7),
  23282. 15: uint8(7),
  23283. 16: uint8(8),
  23284. 17: uint8(8),
  23285. 18: uint8(8),
  23286. 19: uint8(8),
  23287. 20: uint8(8),
  23288. 21: uint8(8),
  23289. 22: uint8(8),
  23290. 23: uint8(8),
  23291. 24: uint8(9),
  23292. 25: uint8(9),
  23293. 26: uint8(9),
  23294. 27: uint8(9),
  23295. 28: uint8(9),
  23296. 29: uint8(9),
  23297. 30: uint8(9),
  23298. 31: uint8(9),
  23299. 32: uint8(10),
  23300. 33: uint8(10),
  23301. 34: uint8(10),
  23302. 35: uint8(10),
  23303. 36: uint8(10),
  23304. 37: uint8(10),
  23305. 38: uint8(10),
  23306. 39: uint8(10),
  23307. 40: uint8(10),
  23308. 41: uint8(10),
  23309. 42: uint8(10),
  23310. 43: uint8(10),
  23311. 44: uint8(10),
  23312. 45: uint8(10),
  23313. 46: uint8(10),
  23314. 47: uint8(10),
  23315. 48: uint8(11),
  23316. 49: uint8(11),
  23317. 50: uint8(11),
  23318. 51: uint8(11),
  23319. 52: uint8(11),
  23320. 53: uint8(11),
  23321. 54: uint8(11),
  23322. 55: uint8(11),
  23323. 56: uint8(11),
  23324. 57: uint8(11),
  23325. 58: uint8(11),
  23326. 59: uint8(11),
  23327. 60: uint8(11),
  23328. 61: uint8(11),
  23329. 62: uint8(11),
  23330. 63: uint8(11),
  23331. 64: uint8(12),
  23332. 65: uint8(12),
  23333. 66: uint8(12),
  23334. 67: uint8(12),
  23335. 68: uint8(12),
  23336. 69: uint8(12),
  23337. 70: uint8(12),
  23338. 71: uint8(12),
  23339. 72: uint8(12),
  23340. 73: uint8(12),
  23341. 74: uint8(12),
  23342. 75: uint8(12),
  23343. 76: uint8(12),
  23344. 77: uint8(12),
  23345. 78: uint8(12),
  23346. 79: uint8(12),
  23347. 80: uint8(12),
  23348. 81: uint8(12),
  23349. 82: uint8(12),
  23350. 83: uint8(12),
  23351. 84: uint8(12),
  23352. 85: uint8(12),
  23353. 86: uint8(12),
  23354. 87: uint8(12),
  23355. 88: uint8(12),
  23356. 89: uint8(12),
  23357. 90: uint8(12),
  23358. 91: uint8(12),
  23359. 92: uint8(12),
  23360. 93: uint8(12),
  23361. 94: uint8(12),
  23362. 95: uint8(12),
  23363. 96: uint8(13),
  23364. 97: uint8(13),
  23365. 98: uint8(13),
  23366. 99: uint8(13),
  23367. 100: uint8(13),
  23368. 101: uint8(13),
  23369. 102: uint8(13),
  23370. 103: uint8(13),
  23371. 104: uint8(13),
  23372. 105: uint8(13),
  23373. 106: uint8(13),
  23374. 107: uint8(13),
  23375. 108: uint8(13),
  23376. 109: uint8(13),
  23377. 110: uint8(13),
  23378. 111: uint8(13),
  23379. 112: uint8(13),
  23380. 113: uint8(13),
  23381. 114: uint8(13),
  23382. 115: uint8(13),
  23383. 116: uint8(13),
  23384. 117: uint8(13),
  23385. 118: uint8(13),
  23386. 119: uint8(13),
  23387. 120: uint8(13),
  23388. 121: uint8(13),
  23389. 122: uint8(13),
  23390. 123: uint8(13),
  23391. 124: uint8(13),
  23392. 125: uint8(13),
  23393. 126: uint8(13),
  23394. 127: uint8(13),
  23395. 128: uint8(14),
  23396. 129: uint8(14),
  23397. 130: uint8(14),
  23398. 131: uint8(14),
  23399. 132: uint8(14),
  23400. 133: uint8(14),
  23401. 134: uint8(14),
  23402. 135: uint8(14),
  23403. 136: uint8(14),
  23404. 137: uint8(14),
  23405. 138: uint8(14),
  23406. 139: uint8(14),
  23407. 140: uint8(14),
  23408. 141: uint8(14),
  23409. 142: uint8(14),
  23410. 143: uint8(14),
  23411. 144: uint8(14),
  23412. 145: uint8(14),
  23413. 146: uint8(14),
  23414. 147: uint8(14),
  23415. 148: uint8(14),
  23416. 149: uint8(14),
  23417. 150: uint8(14),
  23418. 151: uint8(14),
  23419. 152: uint8(14),
  23420. 153: uint8(14),
  23421. 154: uint8(14),
  23422. 155: uint8(14),
  23423. 156: uint8(14),
  23424. 157: uint8(14),
  23425. 158: uint8(14),
  23426. 159: uint8(14),
  23427. 160: uint8(14),
  23428. 161: uint8(14),
  23429. 162: uint8(14),
  23430. 163: uint8(14),
  23431. 164: uint8(14),
  23432. 165: uint8(14),
  23433. 166: uint8(14),
  23434. 167: uint8(14),
  23435. 168: uint8(14),
  23436. 169: uint8(14),
  23437. 170: uint8(14),
  23438. 171: uint8(14),
  23439. 172: uint8(14),
  23440. 173: uint8(14),
  23441. 174: uint8(14),
  23442. 175: uint8(14),
  23443. 176: uint8(14),
  23444. 177: uint8(14),
  23445. 178: uint8(14),
  23446. 179: uint8(14),
  23447. 180: uint8(14),
  23448. 181: uint8(14),
  23449. 182: uint8(14),
  23450. 183: uint8(14),
  23451. 184: uint8(14),
  23452. 185: uint8(14),
  23453. 186: uint8(14),
  23454. 187: uint8(14),
  23455. 188: uint8(14),
  23456. 189: uint8(14),
  23457. 190: uint8(14),
  23458. 191: uint8(14),
  23459. 192: uint8(15),
  23460. 193: uint8(15),
  23461. 194: uint8(15),
  23462. 195: uint8(15),
  23463. 196: uint8(15),
  23464. 197: uint8(15),
  23465. 198: uint8(15),
  23466. 199: uint8(15),
  23467. 200: uint8(15),
  23468. 201: uint8(15),
  23469. 202: uint8(15),
  23470. 203: uint8(15),
  23471. 204: uint8(15),
  23472. 205: uint8(15),
  23473. 206: uint8(15),
  23474. 207: uint8(15),
  23475. 208: uint8(15),
  23476. 209: uint8(15),
  23477. 210: uint8(15),
  23478. 211: uint8(15),
  23479. 212: uint8(15),
  23480. 213: uint8(15),
  23481. 214: uint8(15),
  23482. 215: uint8(15),
  23483. 216: uint8(15),
  23484. 217: uint8(15),
  23485. 218: uint8(15),
  23486. 219: uint8(15),
  23487. 220: uint8(15),
  23488. 221: uint8(15),
  23489. 222: uint8(15),
  23490. 223: uint8(15),
  23491. 224: uint8(15),
  23492. 225: uint8(15),
  23493. 226: uint8(15),
  23494. 227: uint8(15),
  23495. 228: uint8(15),
  23496. 229: uint8(15),
  23497. 230: uint8(15),
  23498. 231: uint8(15),
  23499. 232: uint8(15),
  23500. 233: uint8(15),
  23501. 234: uint8(15),
  23502. 235: uint8(15),
  23503. 236: uint8(15),
  23504. 237: uint8(15),
  23505. 238: uint8(15),
  23506. 239: uint8(15),
  23507. 240: uint8(15),
  23508. 241: uint8(15),
  23509. 242: uint8(15),
  23510. 243: uint8(15),
  23511. 244: uint8(15),
  23512. 245: uint8(15),
  23513. 246: uint8(15),
  23514. 247: uint8(15),
  23515. 248: uint8(15),
  23516. 249: uint8(15),
  23517. 250: uint8(15),
  23518. 251: uint8(15),
  23519. 252: uint8(15),
  23520. 253: uint8(15),
  23521. 254: uint8(15),
  23522. 255: uint8(15),
  23523. 258: uint8(16),
  23524. 259: uint8(17),
  23525. 260: uint8(18),
  23526. 261: uint8(18),
  23527. 262: uint8(19),
  23528. 263: uint8(19),
  23529. 264: uint8(20),
  23530. 265: uint8(20),
  23531. 266: uint8(20),
  23532. 267: uint8(20),
  23533. 268: uint8(21),
  23534. 269: uint8(21),
  23535. 270: uint8(21),
  23536. 271: uint8(21),
  23537. 272: uint8(22),
  23538. 273: uint8(22),
  23539. 274: uint8(22),
  23540. 275: uint8(22),
  23541. 276: uint8(22),
  23542. 277: uint8(22),
  23543. 278: uint8(22),
  23544. 279: uint8(22),
  23545. 280: uint8(23),
  23546. 281: uint8(23),
  23547. 282: uint8(23),
  23548. 283: uint8(23),
  23549. 284: uint8(23),
  23550. 285: uint8(23),
  23551. 286: uint8(23),
  23552. 287: uint8(23),
  23553. 288: uint8(24),
  23554. 289: uint8(24),
  23555. 290: uint8(24),
  23556. 291: uint8(24),
  23557. 292: uint8(24),
  23558. 293: uint8(24),
  23559. 294: uint8(24),
  23560. 295: uint8(24),
  23561. 296: uint8(24),
  23562. 297: uint8(24),
  23563. 298: uint8(24),
  23564. 299: uint8(24),
  23565. 300: uint8(24),
  23566. 301: uint8(24),
  23567. 302: uint8(24),
  23568. 303: uint8(24),
  23569. 304: uint8(25),
  23570. 305: uint8(25),
  23571. 306: uint8(25),
  23572. 307: uint8(25),
  23573. 308: uint8(25),
  23574. 309: uint8(25),
  23575. 310: uint8(25),
  23576. 311: uint8(25),
  23577. 312: uint8(25),
  23578. 313: uint8(25),
  23579. 314: uint8(25),
  23580. 315: uint8(25),
  23581. 316: uint8(25),
  23582. 317: uint8(25),
  23583. 318: uint8(25),
  23584. 319: uint8(25),
  23585. 320: uint8(26),
  23586. 321: uint8(26),
  23587. 322: uint8(26),
  23588. 323: uint8(26),
  23589. 324: uint8(26),
  23590. 325: uint8(26),
  23591. 326: uint8(26),
  23592. 327: uint8(26),
  23593. 328: uint8(26),
  23594. 329: uint8(26),
  23595. 330: uint8(26),
  23596. 331: uint8(26),
  23597. 332: uint8(26),
  23598. 333: uint8(26),
  23599. 334: uint8(26),
  23600. 335: uint8(26),
  23601. 336: uint8(26),
  23602. 337: uint8(26),
  23603. 338: uint8(26),
  23604. 339: uint8(26),
  23605. 340: uint8(26),
  23606. 341: uint8(26),
  23607. 342: uint8(26),
  23608. 343: uint8(26),
  23609. 344: uint8(26),
  23610. 345: uint8(26),
  23611. 346: uint8(26),
  23612. 347: uint8(26),
  23613. 348: uint8(26),
  23614. 349: uint8(26),
  23615. 350: uint8(26),
  23616. 351: uint8(26),
  23617. 352: uint8(27),
  23618. 353: uint8(27),
  23619. 354: uint8(27),
  23620. 355: uint8(27),
  23621. 356: uint8(27),
  23622. 357: uint8(27),
  23623. 358: uint8(27),
  23624. 359: uint8(27),
  23625. 360: uint8(27),
  23626. 361: uint8(27),
  23627. 362: uint8(27),
  23628. 363: uint8(27),
  23629. 364: uint8(27),
  23630. 365: uint8(27),
  23631. 366: uint8(27),
  23632. 367: uint8(27),
  23633. 368: uint8(27),
  23634. 369: uint8(27),
  23635. 370: uint8(27),
  23636. 371: uint8(27),
  23637. 372: uint8(27),
  23638. 373: uint8(27),
  23639. 374: uint8(27),
  23640. 375: uint8(27),
  23641. 376: uint8(27),
  23642. 377: uint8(27),
  23643. 378: uint8(27),
  23644. 379: uint8(27),
  23645. 380: uint8(27),
  23646. 381: uint8(27),
  23647. 382: uint8(27),
  23648. 383: uint8(27),
  23649. 384: uint8(28),
  23650. 385: uint8(28),
  23651. 386: uint8(28),
  23652. 387: uint8(28),
  23653. 388: uint8(28),
  23654. 389: uint8(28),
  23655. 390: uint8(28),
  23656. 391: uint8(28),
  23657. 392: uint8(28),
  23658. 393: uint8(28),
  23659. 394: uint8(28),
  23660. 395: uint8(28),
  23661. 396: uint8(28),
  23662. 397: uint8(28),
  23663. 398: uint8(28),
  23664. 399: uint8(28),
  23665. 400: uint8(28),
  23666. 401: uint8(28),
  23667. 402: uint8(28),
  23668. 403: uint8(28),
  23669. 404: uint8(28),
  23670. 405: uint8(28),
  23671. 406: uint8(28),
  23672. 407: uint8(28),
  23673. 408: uint8(28),
  23674. 409: uint8(28),
  23675. 410: uint8(28),
  23676. 411: uint8(28),
  23677. 412: uint8(28),
  23678. 413: uint8(28),
  23679. 414: uint8(28),
  23680. 415: uint8(28),
  23681. 416: uint8(28),
  23682. 417: uint8(28),
  23683. 418: uint8(28),
  23684. 419: uint8(28),
  23685. 420: uint8(28),
  23686. 421: uint8(28),
  23687. 422: uint8(28),
  23688. 423: uint8(28),
  23689. 424: uint8(28),
  23690. 425: uint8(28),
  23691. 426: uint8(28),
  23692. 427: uint8(28),
  23693. 428: uint8(28),
  23694. 429: uint8(28),
  23695. 430: uint8(28),
  23696. 431: uint8(28),
  23697. 432: uint8(28),
  23698. 433: uint8(28),
  23699. 434: uint8(28),
  23700. 435: uint8(28),
  23701. 436: uint8(28),
  23702. 437: uint8(28),
  23703. 438: uint8(28),
  23704. 439: uint8(28),
  23705. 440: uint8(28),
  23706. 441: uint8(28),
  23707. 442: uint8(28),
  23708. 443: uint8(28),
  23709. 444: uint8(28),
  23710. 445: uint8(28),
  23711. 446: uint8(28),
  23712. 447: uint8(28),
  23713. 448: uint8(29),
  23714. 449: uint8(29),
  23715. 450: uint8(29),
  23716. 451: uint8(29),
  23717. 452: uint8(29),
  23718. 453: uint8(29),
  23719. 454: uint8(29),
  23720. 455: uint8(29),
  23721. 456: uint8(29),
  23722. 457: uint8(29),
  23723. 458: uint8(29),
  23724. 459: uint8(29),
  23725. 460: uint8(29),
  23726. 461: uint8(29),
  23727. 462: uint8(29),
  23728. 463: uint8(29),
  23729. 464: uint8(29),
  23730. 465: uint8(29),
  23731. 466: uint8(29),
  23732. 467: uint8(29),
  23733. 468: uint8(29),
  23734. 469: uint8(29),
  23735. 470: uint8(29),
  23736. 471: uint8(29),
  23737. 472: uint8(29),
  23738. 473: uint8(29),
  23739. 474: uint8(29),
  23740. 475: uint8(29),
  23741. 476: uint8(29),
  23742. 477: uint8(29),
  23743. 478: uint8(29),
  23744. 479: uint8(29),
  23745. 480: uint8(29),
  23746. 481: uint8(29),
  23747. 482: uint8(29),
  23748. 483: uint8(29),
  23749. 484: uint8(29),
  23750. 485: uint8(29),
  23751. 486: uint8(29),
  23752. 487: uint8(29),
  23753. 488: uint8(29),
  23754. 489: uint8(29),
  23755. 490: uint8(29),
  23756. 491: uint8(29),
  23757. 492: uint8(29),
  23758. 493: uint8(29),
  23759. 494: uint8(29),
  23760. 495: uint8(29),
  23761. 496: uint8(29),
  23762. 497: uint8(29),
  23763. 498: uint8(29),
  23764. 499: uint8(29),
  23765. 500: uint8(29),
  23766. 501: uint8(29),
  23767. 502: uint8(29),
  23768. 503: uint8(29),
  23769. 504: uint8(29),
  23770. 505: uint8(29),
  23771. 506: uint8(29),
  23772. 507: uint8(29),
  23773. 508: uint8(29),
  23774. 509: uint8(29),
  23775. 510: uint8(29),
  23776. 511: uint8(29),
  23777. }
  23778. var x__length_code = [256]Tuch{
  23779. 1: uint8(1),
  23780. 2: uint8(2),
  23781. 3: uint8(3),
  23782. 4: uint8(4),
  23783. 5: uint8(5),
  23784. 6: uint8(6),
  23785. 7: uint8(7),
  23786. 8: uint8(8),
  23787. 9: uint8(8),
  23788. 10: uint8(9),
  23789. 11: uint8(9),
  23790. 12: uint8(10),
  23791. 13: uint8(10),
  23792. 14: uint8(11),
  23793. 15: uint8(11),
  23794. 16: uint8(12),
  23795. 17: uint8(12),
  23796. 18: uint8(12),
  23797. 19: uint8(12),
  23798. 20: uint8(13),
  23799. 21: uint8(13),
  23800. 22: uint8(13),
  23801. 23: uint8(13),
  23802. 24: uint8(14),
  23803. 25: uint8(14),
  23804. 26: uint8(14),
  23805. 27: uint8(14),
  23806. 28: uint8(15),
  23807. 29: uint8(15),
  23808. 30: uint8(15),
  23809. 31: uint8(15),
  23810. 32: uint8(16),
  23811. 33: uint8(16),
  23812. 34: uint8(16),
  23813. 35: uint8(16),
  23814. 36: uint8(16),
  23815. 37: uint8(16),
  23816. 38: uint8(16),
  23817. 39: uint8(16),
  23818. 40: uint8(17),
  23819. 41: uint8(17),
  23820. 42: uint8(17),
  23821. 43: uint8(17),
  23822. 44: uint8(17),
  23823. 45: uint8(17),
  23824. 46: uint8(17),
  23825. 47: uint8(17),
  23826. 48: uint8(18),
  23827. 49: uint8(18),
  23828. 50: uint8(18),
  23829. 51: uint8(18),
  23830. 52: uint8(18),
  23831. 53: uint8(18),
  23832. 54: uint8(18),
  23833. 55: uint8(18),
  23834. 56: uint8(19),
  23835. 57: uint8(19),
  23836. 58: uint8(19),
  23837. 59: uint8(19),
  23838. 60: uint8(19),
  23839. 61: uint8(19),
  23840. 62: uint8(19),
  23841. 63: uint8(19),
  23842. 64: uint8(20),
  23843. 65: uint8(20),
  23844. 66: uint8(20),
  23845. 67: uint8(20),
  23846. 68: uint8(20),
  23847. 69: uint8(20),
  23848. 70: uint8(20),
  23849. 71: uint8(20),
  23850. 72: uint8(20),
  23851. 73: uint8(20),
  23852. 74: uint8(20),
  23853. 75: uint8(20),
  23854. 76: uint8(20),
  23855. 77: uint8(20),
  23856. 78: uint8(20),
  23857. 79: uint8(20),
  23858. 80: uint8(21),
  23859. 81: uint8(21),
  23860. 82: uint8(21),
  23861. 83: uint8(21),
  23862. 84: uint8(21),
  23863. 85: uint8(21),
  23864. 86: uint8(21),
  23865. 87: uint8(21),
  23866. 88: uint8(21),
  23867. 89: uint8(21),
  23868. 90: uint8(21),
  23869. 91: uint8(21),
  23870. 92: uint8(21),
  23871. 93: uint8(21),
  23872. 94: uint8(21),
  23873. 95: uint8(21),
  23874. 96: uint8(22),
  23875. 97: uint8(22),
  23876. 98: uint8(22),
  23877. 99: uint8(22),
  23878. 100: uint8(22),
  23879. 101: uint8(22),
  23880. 102: uint8(22),
  23881. 103: uint8(22),
  23882. 104: uint8(22),
  23883. 105: uint8(22),
  23884. 106: uint8(22),
  23885. 107: uint8(22),
  23886. 108: uint8(22),
  23887. 109: uint8(22),
  23888. 110: uint8(22),
  23889. 111: uint8(22),
  23890. 112: uint8(23),
  23891. 113: uint8(23),
  23892. 114: uint8(23),
  23893. 115: uint8(23),
  23894. 116: uint8(23),
  23895. 117: uint8(23),
  23896. 118: uint8(23),
  23897. 119: uint8(23),
  23898. 120: uint8(23),
  23899. 121: uint8(23),
  23900. 122: uint8(23),
  23901. 123: uint8(23),
  23902. 124: uint8(23),
  23903. 125: uint8(23),
  23904. 126: uint8(23),
  23905. 127: uint8(23),
  23906. 128: uint8(24),
  23907. 129: uint8(24),
  23908. 130: uint8(24),
  23909. 131: uint8(24),
  23910. 132: uint8(24),
  23911. 133: uint8(24),
  23912. 134: uint8(24),
  23913. 135: uint8(24),
  23914. 136: uint8(24),
  23915. 137: uint8(24),
  23916. 138: uint8(24),
  23917. 139: uint8(24),
  23918. 140: uint8(24),
  23919. 141: uint8(24),
  23920. 142: uint8(24),
  23921. 143: uint8(24),
  23922. 144: uint8(24),
  23923. 145: uint8(24),
  23924. 146: uint8(24),
  23925. 147: uint8(24),
  23926. 148: uint8(24),
  23927. 149: uint8(24),
  23928. 150: uint8(24),
  23929. 151: uint8(24),
  23930. 152: uint8(24),
  23931. 153: uint8(24),
  23932. 154: uint8(24),
  23933. 155: uint8(24),
  23934. 156: uint8(24),
  23935. 157: uint8(24),
  23936. 158: uint8(24),
  23937. 159: uint8(24),
  23938. 160: uint8(25),
  23939. 161: uint8(25),
  23940. 162: uint8(25),
  23941. 163: uint8(25),
  23942. 164: uint8(25),
  23943. 165: uint8(25),
  23944. 166: uint8(25),
  23945. 167: uint8(25),
  23946. 168: uint8(25),
  23947. 169: uint8(25),
  23948. 170: uint8(25),
  23949. 171: uint8(25),
  23950. 172: uint8(25),
  23951. 173: uint8(25),
  23952. 174: uint8(25),
  23953. 175: uint8(25),
  23954. 176: uint8(25),
  23955. 177: uint8(25),
  23956. 178: uint8(25),
  23957. 179: uint8(25),
  23958. 180: uint8(25),
  23959. 181: uint8(25),
  23960. 182: uint8(25),
  23961. 183: uint8(25),
  23962. 184: uint8(25),
  23963. 185: uint8(25),
  23964. 186: uint8(25),
  23965. 187: uint8(25),
  23966. 188: uint8(25),
  23967. 189: uint8(25),
  23968. 190: uint8(25),
  23969. 191: uint8(25),
  23970. 192: uint8(26),
  23971. 193: uint8(26),
  23972. 194: uint8(26),
  23973. 195: uint8(26),
  23974. 196: uint8(26),
  23975. 197: uint8(26),
  23976. 198: uint8(26),
  23977. 199: uint8(26),
  23978. 200: uint8(26),
  23979. 201: uint8(26),
  23980. 202: uint8(26),
  23981. 203: uint8(26),
  23982. 204: uint8(26),
  23983. 205: uint8(26),
  23984. 206: uint8(26),
  23985. 207: uint8(26),
  23986. 208: uint8(26),
  23987. 209: uint8(26),
  23988. 210: uint8(26),
  23989. 211: uint8(26),
  23990. 212: uint8(26),
  23991. 213: uint8(26),
  23992. 214: uint8(26),
  23993. 215: uint8(26),
  23994. 216: uint8(26),
  23995. 217: uint8(26),
  23996. 218: uint8(26),
  23997. 219: uint8(26),
  23998. 220: uint8(26),
  23999. 221: uint8(26),
  24000. 222: uint8(26),
  24001. 223: uint8(26),
  24002. 224: uint8(27),
  24003. 225: uint8(27),
  24004. 226: uint8(27),
  24005. 227: uint8(27),
  24006. 228: uint8(27),
  24007. 229: uint8(27),
  24008. 230: uint8(27),
  24009. 231: uint8(27),
  24010. 232: uint8(27),
  24011. 233: uint8(27),
  24012. 234: uint8(27),
  24013. 235: uint8(27),
  24014. 236: uint8(27),
  24015. 237: uint8(27),
  24016. 238: uint8(27),
  24017. 239: uint8(27),
  24018. 240: uint8(27),
  24019. 241: uint8(27),
  24020. 242: uint8(27),
  24021. 243: uint8(27),
  24022. 244: uint8(27),
  24023. 245: uint8(27),
  24024. 246: uint8(27),
  24025. 247: uint8(27),
  24026. 248: uint8(27),
  24027. 249: uint8(27),
  24028. 250: uint8(27),
  24029. 251: uint8(27),
  24030. 252: uint8(27),
  24031. 253: uint8(27),
  24032. 254: uint8(27),
  24033. 255: uint8(28),
  24034. }
  24035. var Xdeflate_copyright = [66]uint8{' ', 'd', 'e', 'f', 'l', 'a', 't', 'e', ' ', '1', '.', '3', ' ', 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '1', '9', '9', '5', '-', '2', '0', '2', '3', ' ', 'J', 'e', 'a', 'n', '-', 'l', 'o', 'u', 'p', ' ', 'G', 'a', 'i', 'l', 'l', 'y', ' ', 'a', 'n', 'd', ' ', 'M', 'a', 'r', 'k', ' ', 'A', 'd', 'l', 'e', 'r', ' '}
  24036. var Xinflate_copyright = [45]uint8{' ', 'i', 'n', 'f', 'l', 'a', 't', 'e', ' ', '1', '.', '3', ' ', 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '1', '9', '9', '5', '-', '2', '0', '2', '3', ' ', 'M', 'a', 'r', 'k', ' ', 'A', 'd', 'l', 'e', 'r', ' '}
  24037. /*
  24038. GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t
  24039. value -- needed when comparing unsigned to z_off64_t, which is signed
  24040. (possible z_off64_t types off_t, off64_t, and long are all signed)
  24041. */
  24042. var Xz_errmsg = [10]uintptr{
  24043. 0: __ccgo_ts + 465,
  24044. 1: __ccgo_ts + 481,
  24045. 2: __ccgo_ts + 492,
  24046. 3: __ccgo_ts + 493,
  24047. 4: __ccgo_ts + 504,
  24048. 5: __ccgo_ts + 517,
  24049. 6: __ccgo_ts + 528,
  24050. 7: __ccgo_ts + 548,
  24051. 8: __ccgo_ts + 561,
  24052. 9: __ccgo_ts + 492,
  24053. }
  24054. var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data
  24055. var __ccgo_ts1 = "1.3\x00invalid block type\x00invalid stored block lengths\x00too many length or distance symbols\x00invalid code lengths set\x00invalid bit length repeat\x00invalid code -- missing end-of-block\x00invalid literal/lengths set\x00invalid distances set\x00invalid literal/length code\x00invalid distance code\x00invalid distance too far back\x00incorrect header check\x00unknown compression method\x00invalid window size\x00unknown header flags set\x00header crc mismatch\x00incorrect data check\x00incorrect length check\x00need dictionary\x00stream end\x00\x00file error\x00stream error\x00data error\x00insufficient memory\x00buffer error\x00incompatible version\x00%s\x00<fd:%d>\x00out of memory\x00%s%s%s\x00: \x00unexpected end of file\x00internal error: inflate stream corrupt\x00compressed data error\x00request does not fit in an int\x00request does not fit in a size_t\x00out of room to push characters\x00internal error: deflate stream corrupt\x00requested length does not fit in int\x00string length does not fit in int\x00"