ccgo_linux_s390x.go 710 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924199251992619927199281992919930199311993219933199341993519936199371993819939199401994119942199431994419945199461994719948199491995019951199521995319954199551995619957199581995919960199611996219963199641996519966199671996819969199701997119972199731997419975199761997719978199791998019981199821998319984199851998619987199881998919990199911999219993199941999519996199971999819999200002000120002200032000420005200062000720008200092001020011200122001320014200152001620017200182001920020200212002220023200242002520026200272002820029200302003120032200332003420035200362003720038200392004020041200422004320044200452004620047200482004920050200512005220053200542005520056200572005820059200602006120062200632006420065200662006720068200692007020071200722007320074200752007620077200782007920080200812008220083200842008520086200872008820089200902009120092200932009420095200962009720098200992010020101201022010320104201052010620107201082010920110201112011220113201142011520116201172011820119201202012120122201232012420125201262012720128201292013020131201322013320134201352013620137201382013920140201412014220143201442014520146201472014820149201502015120152201532015420155201562015720158201592016020161201622016320164201652016620167201682016920170201712017220173201742017520176201772017820179201802018120182201832018420185201862018720188201892019020191201922019320194201952019620197201982019920200202012020220203202042020520206202072020820209202102021120212202132021420215202162021720218202192022020221202222022320224202252022620227202282022920230202312023220233202342023520236202372023820239202402024120242202432024420245202462024720248202492025020251202522025320254202552025620257202582025920260202612026220263202642026520266202672026820269202702027120272202732027420275202762027720278202792028020281202822028320284202852028620287202882028920290202912029220293202942029520296202972029820299203002030120302203032030420305203062030720308203092031020311203122031320314203152031620317203182031920320203212032220323203242032520326203272032820329203302033120332203332033420335203362033720338203392034020341203422034320344203452034620347203482034920350203512035220353203542035520356203572035820359203602036120362203632036420365203662036720368203692037020371203722037320374203752037620377203782037920380203812038220383203842038520386203872038820389203902039120392203932039420395203962039720398203992040020401204022040320404204052040620407204082040920410204112041220413204142041520416204172041820419204202042120422204232042420425204262042720428204292043020431204322043320434204352043620437204382043920440204412044220443204442044520446204472044820449204502045120452204532045420455204562045720458204592046020461204622046320464204652046620467204682046920470204712047220473204742047520476204772047820479204802048120482204832048420485204862048720488204892049020491204922049320494204952049620497204982049920500205012050220503205042050520506205072050820509205102051120512205132051420515205162051720518205192052020521205222052320524205252052620527205282052920530205312053220533205342053520536205372053820539205402054120542205432054420545205462054720548205492055020551205522055320554205552055620557205582055920560205612056220563205642056520566205672056820569205702057120572205732057420575205762057720578205792058020581205822058320584205852058620587205882058920590205912059220593205942059520596205972059820599206002060120602206032060420605206062060720608206092061020611206122061320614206152061620617206182061920620206212062220623206242062520626206272062820629206302063120632206332063420635206362063720638206392064020641206422064320644206452064620647206482064920650206512065220653206542065520656206572065820659206602066120662206632066420665206662066720668206692067020671206722067320674206752067620677206782067920680206812068220683206842068520686206872068820689206902069120692206932069420695206962069720698206992070020701207022070320704207052070620707207082070920710207112071220713207142071520716207172071820719207202072120722207232072420725207262072720728207292073020731207322073320734207352073620737207382073920740207412074220743207442074520746207472074820749207502075120752207532075420755207562075720758207592076020761207622076320764207652076620767207682076920770207712077220773207742077520776207772077820779207802078120782207832078420785207862078720788207892079020791207922079320794207952079620797207982079920800208012080220803208042080520806208072080820809208102081120812208132081420815208162081720818208192082020821208222082320824208252082620827208282082920830208312083220833208342083520836208372083820839208402084120842208432084420845208462084720848208492085020851208522085320854208552085620857208582085920860208612086220863208642086520866208672086820869208702087120872208732087420875208762087720878208792088020881208822088320884208852088620887208882088920890208912089220893208942089520896208972089820899209002090120902209032090420905209062090720908209092091020911209122091320914209152091620917209182091920920209212092220923209242092520926209272092820929209302093120932209332093420935209362093720938209392094020941209422094320944209452094620947209482094920950209512095220953209542095520956209572095820959209602096120962209632096420965209662096720968209692097020971209722097320974209752097620977209782097920980209812098220983209842098520986209872098820989209902099120992209932099420995209962099720998209992100021001210022100321004210052100621007210082100921010210112101221013210142101521016210172101821019210202102121022210232102421025210262102721028210292103021031210322103321034210352103621037210382103921040210412104221043210442104521046210472104821049210502105121052210532105421055210562105721058210592106021061210622106321064210652106621067210682106921070210712107221073210742107521076210772107821079210802108121082210832108421085210862108721088210892109021091210922109321094210952109621097210982109921100211012110221103211042110521106211072110821109211102111121112211132111421115211162111721118211192112021121211222112321124211252112621127211282112921130211312113221133211342113521136211372113821139211402114121142211432114421145211462114721148211492115021151211522115321154211552115621157211582115921160211612116221163211642116521166211672116821169211702117121172211732117421175211762117721178211792118021181211822118321184211852118621187211882118921190211912119221193211942119521196211972119821199212002120121202212032120421205212062120721208212092121021211212122121321214212152121621217212182121921220212212122221223212242122521226212272122821229212302123121232212332123421235212362123721238212392124021241212422124321244212452124621247212482124921250212512125221253212542125521256212572125821259212602126121262212632126421265212662126721268212692127021271212722127321274212752127621277212782127921280212812128221283212842128521286212872128821289212902129121292212932129421295212962129721298212992130021301213022130321304213052130621307213082130921310213112131221313213142131521316213172131821319213202132121322213232132421325213262132721328213292133021331213322133321334213352133621337213382133921340213412134221343213442134521346213472134821349213502135121352213532135421355213562135721358213592136021361213622136321364213652136621367213682136921370213712137221373213742137521376213772137821379213802138121382213832138421385213862138721388213892139021391213922139321394213952139621397213982139921400214012140221403214042140521406214072140821409214102141121412214132141421415214162141721418214192142021421214222142321424214252142621427214282142921430214312143221433214342143521436214372143821439214402144121442214432144421445214462144721448214492145021451214522145321454214552145621457214582145921460214612146221463214642146521466214672146821469214702147121472214732147421475214762147721478214792148021481214822148321484214852148621487214882148921490214912149221493214942149521496214972149821499215002150121502215032150421505215062150721508215092151021511215122151321514215152151621517215182151921520215212152221523215242152521526215272152821529215302153121532215332153421535215362153721538215392154021541215422154321544215452154621547215482154921550215512155221553215542155521556215572155821559215602156121562215632156421565215662156721568215692157021571215722157321574215752157621577215782157921580215812158221583215842158521586215872158821589215902159121592215932159421595215962159721598215992160021601216022160321604216052160621607216082160921610216112161221613216142161521616216172161821619216202162121622216232162421625216262162721628216292163021631216322163321634216352163621637216382163921640216412164221643216442164521646216472164821649216502165121652216532165421655216562165721658216592166021661216622166321664216652166621667216682166921670216712167221673216742167521676216772167821679216802168121682216832168421685216862168721688216892169021691216922169321694216952169621697216982169921700217012170221703217042170521706217072170821709217102171121712217132171421715217162171721718217192172021721217222172321724217252172621727217282172921730217312173221733217342173521736217372173821739217402174121742217432174421745217462174721748217492175021751217522175321754217552175621757217582175921760217612176221763217642176521766217672176821769217702177121772217732177421775217762177721778217792178021781217822178321784217852178621787217882178921790217912179221793217942179521796217972179821799218002180121802218032180421805218062180721808218092181021811218122181321814218152181621817218182181921820218212182221823218242182521826218272182821829218302183121832218332183421835218362183721838218392184021841218422184321844218452184621847218482184921850218512185221853218542185521856218572185821859218602186121862218632186421865218662186721868218692187021871218722187321874218752187621877218782187921880218812188221883218842188521886218872188821889218902189121892218932189421895218962189721898218992190021901219022190321904219052190621907219082190921910219112191221913219142191521916219172191821919219202192121922219232192421925219262192721928219292193021931219322193321934219352193621937219382193921940219412194221943219442194521946219472194821949219502195121952219532195421955219562195721958219592196021961219622196321964219652196621967219682196921970219712197221973219742197521976219772197821979219802198121982219832198421985219862198721988219892199021991219922199321994219952199621997219982199922000220012200222003220042200522006220072200822009220102201122012220132201422015220162201722018220192202022021220222202322024220252202622027220282202922030220312203222033220342203522036220372203822039220402204122042220432204422045220462204722048220492205022051220522205322054220552205622057220582205922060220612206222063220642206522066220672206822069220702207122072220732207422075220762207722078220792208022081220822208322084220852208622087220882208922090220912209222093220942209522096220972209822099221002210122102221032210422105221062210722108221092211022111221122211322114221152211622117221182211922120221212212222123221242212522126221272212822129221302213122132221332213422135221362213722138221392214022141221422214322144221452214622147221482214922150221512215222153221542215522156221572215822159221602216122162221632216422165221662216722168221692217022171221722217322174221752217622177221782217922180221812218222183221842218522186221872218822189221902219122192221932219422195221962219722198221992220022201222022220322204222052220622207222082220922210222112221222213222142221522216222172221822219222202222122222222232222422225222262222722228222292223022231222322223322234222352223622237222382223922240222412224222243222442224522246222472224822249222502225122252222532225422255222562225722258222592226022261222622226322264222652226622267222682226922270222712227222273222742227522276222772227822279222802228122282222832228422285222862228722288222892229022291222922229322294222952229622297222982229922300223012230222303223042230522306223072230822309223102231122312223132231422315223162231722318223192232022321223222232322324223252232622327223282232922330223312233222333223342233522336223372233822339223402234122342223432234422345223462234722348223492235022351223522235322354223552235622357223582235922360223612236222363223642236522366223672236822369223702237122372223732237422375223762237722378223792238022381223822238322384223852238622387223882238922390223912239222393223942239522396223972239822399224002240122402224032240422405224062240722408224092241022411224122241322414224152241622417224182241922420224212242222423224242242522426224272242822429224302243122432224332243422435224362243722438224392244022441224422244322444224452244622447224482244922450224512245222453224542245522456224572245822459224602246122462224632246422465224662246722468224692247022471224722247322474224752247622477224782247922480224812248222483224842248522486224872248822489224902249122492224932249422495224962249722498224992250022501225022250322504225052250622507225082250922510225112251222513225142251522516225172251822519225202252122522225232252422525225262252722528225292253022531225322253322534225352253622537225382253922540225412254222543225442254522546225472254822549225502255122552225532255422555225562255722558225592256022561225622256322564225652256622567225682256922570225712257222573225742257522576225772257822579225802258122582225832258422585225862258722588225892259022591225922259322594225952259622597225982259922600226012260222603226042260522606226072260822609226102261122612226132261422615226162261722618226192262022621226222262322624226252262622627226282262922630226312263222633226342263522636226372263822639226402264122642226432264422645226462264722648226492265022651226522265322654226552265622657226582265922660226612266222663226642266522666226672266822669226702267122672226732267422675226762267722678226792268022681226822268322684226852268622687226882268922690226912269222693226942269522696226972269822699227002270122702227032270422705227062270722708227092271022711227122271322714227152271622717227182271922720227212272222723227242272522726227272272822729227302273122732227332273422735227362273722738227392274022741227422274322744227452274622747227482274922750227512275222753227542275522756227572275822759227602276122762227632276422765227662276722768227692277022771227722277322774227752277622777227782277922780227812278222783227842278522786227872278822789227902279122792227932279422795227962279722798227992280022801228022280322804228052280622807228082280922810228112281222813228142281522816228172281822819228202282122822228232282422825228262282722828228292283022831228322283322834228352283622837228382283922840228412284222843228442284522846228472284822849228502285122852228532285422855228562285722858228592286022861228622286322864228652286622867228682286922870228712287222873228742287522876228772287822879228802288122882228832288422885228862288722888228892289022891228922289322894228952289622897228982289922900229012290222903229042290522906229072290822909229102291122912229132291422915229162291722918229192292022921229222292322924229252292622927229282292922930229312293222933229342293522936229372293822939229402294122942229432294422945229462294722948229492295022951229522295322954229552295622957229582295922960229612296222963229642296522966229672296822969229702297122972229732297422975229762297722978229792298022981229822298322984229852298622987229882298922990229912299222993229942299522996229972299822999230002300123002230032300423005230062300723008230092301023011230122301323014230152301623017230182301923020230212302223023230242302523026230272302823029230302303123032230332303423035230362303723038230392304023041230422304323044230452304623047230482304923050230512305223053230542305523056230572305823059230602306123062230632306423065230662306723068230692307023071230722307323074230752307623077230782307923080230812308223083230842308523086230872308823089230902309123092230932309423095230962309723098230992310023101231022310323104231052310623107231082310923110231112311223113231142311523116231172311823119231202312123122231232312423125231262312723128231292313023131231322313323134231352313623137231382313923140231412314223143231442314523146231472314823149231502315123152231532315423155231562315723158231592316023161231622316323164231652316623167231682316923170231712317223173231742317523176231772317823179231802318123182231832318423185231862318723188231892319023191231922319323194231952319623197231982319923200232012320223203232042320523206232072320823209232102321123212232132321423215232162321723218232192322023221232222322323224232252322623227232282322923230232312323223233232342323523236232372323823239232402324123242232432324423245232462324723248232492325023251232522325323254232552325623257232582325923260232612326223263232642326523266232672326823269232702327123272232732327423275232762327723278232792328023281232822328323284232852328623287232882328923290232912329223293232942329523296232972329823299233002330123302233032330423305233062330723308233092331023311233122331323314233152331623317233182331923320233212332223323233242332523326233272332823329233302333123332233332333423335233362333723338233392334023341233422334323344233452334623347233482334923350233512335223353233542335523356233572335823359233602336123362233632336423365233662336723368233692337023371233722337323374233752337623377233782337923380233812338223383233842338523386233872338823389233902339123392233932339423395233962339723398233992340023401234022340323404234052340623407234082340923410234112341223413234142341523416234172341823419234202342123422234232342423425234262342723428234292343023431234322343323434234352343623437
  1. // Code generated for linux/s390x 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 --libc modernc.org/libc --package-name=libz -o libz.a.go libz.a', DO NOT EDIT.
  2. //go:build linux && s390x
  3. package libz
  4. import (
  5. "reflect"
  6. "unsafe"
  7. "modernc.org/libc"
  8. )
  9. var _ reflect.Type
  10. var _ unsafe.Pointer
  11. const m_ARG_MAX = 131072
  12. const m_BASE = 65521
  13. const m_BC_BASE_MAX = 99
  14. const m_BC_DIM_MAX = 2048
  15. const m_BC_SCALE_MAX = 99
  16. const m_BC_STRING_MAX = 1000
  17. const m_BIG_ENDIAN = "__BIG_ENDIAN"
  18. const m_BYTE_ORDER = "__BYTE_ORDER"
  19. const m_CHARCLASS_NAME_MAX = 14
  20. const m_CHAR_BIT = 8
  21. const m_CHAR_MAX = 255
  22. const m_CHAR_MIN = 0
  23. const m_COLL_WEIGHTS_MAX = 2
  24. const m_DEF_MEM_LEVEL = 8
  25. const m_DEF_WBITS = "MAX_WBITS"
  26. const m_DELAYTIMER_MAX = 0x7fffffff
  27. const m_DYN_TREES = 2
  28. const m_EXIT_FAILURE = 1
  29. const m_EXIT_SUCCESS = 0
  30. const m_EXPR_NEST_MAX = 32
  31. const m_FD_SETSIZE = 1024
  32. const m_FILESIZEBITS = 64
  33. const m_F_LOCK = 1
  34. const m_F_OK = 0
  35. const m_F_TEST = 3
  36. const m_F_TLOCK = 2
  37. const m_F_ULOCK = 0
  38. const m_HAVE_HIDDEN = 1
  39. const m_HOST_NAME_MAX = 255
  40. const m_INT_MAX = 0x7fffffff
  41. const m_IOV_MAX = 1024
  42. const m_LINE_MAX = 4096
  43. const m_LITTLE_ENDIAN = "__LITTLE_ENDIAN"
  44. const m_LLONG_MAX = 0x7fffffffffffffff
  45. const m_LOGIN_NAME_MAX = 256
  46. const m_LONG_BIT = 64
  47. const m_LONG_MAX = "__LONG_MAX"
  48. const m_L_INCR = 1
  49. const m_L_SET = 0
  50. const m_L_XTND = 2
  51. const m_MAX_MATCH = 258
  52. const m_MAX_MEM_LEVEL = 9
  53. const m_MAX_WBITS = 15
  54. const m_MB_LEN_MAX = 4
  55. const m_MIN_MATCH = 3
  56. const m_MQ_PRIO_MAX = 32768
  57. const m_NAME_MAX = 255
  58. const m_NDEBUG = 1
  59. const m_NGROUPS_MAX = 32
  60. const m_NL_ARGMAX = 9
  61. const m_NL_LANGMAX = 32
  62. const m_NL_MSGMAX = 32767
  63. const m_NL_NMAX = 16
  64. const m_NL_SETMAX = 255
  65. const m_NL_TEXTMAX = 2048
  66. const m_NMAX = 5552
  67. const m_NZERO = 20
  68. const m_OS_CODE = 3
  69. const m_PAGESIZE = 4096
  70. const m_PAGE_SIZE = "PAGESIZE"
  71. const m_PATH_MAX = 4096
  72. const m_PDP_ENDIAN = "__PDP_ENDIAN"
  73. const m_PIPE_BUF = 4096
  74. const m_POSIX_CLOSE_RESTART = 0
  75. const m_PRESET_DICT = 0x20
  76. const m_PTHREAD_DESTRUCTOR_ITERATIONS = 4
  77. const m_PTHREAD_KEYS_MAX = 128
  78. const m_PTHREAD_STACK_MIN = 2048
  79. const m_RAND_MAX = 0x7fffffff
  80. const m_RE_DUP_MAX = 255
  81. const m_R_OK = 4
  82. const m_SCHAR_MAX = 127
  83. const m_SEEK_CUR = 1
  84. const m_SEEK_DATA = 3
  85. const m_SEEK_END = 2
  86. const m_SEEK_HOLE = 4
  87. const m_SEEK_SET = 0
  88. const m_SEM_NSEMS_MAX = 256
  89. const m_SEM_VALUE_MAX = 0x7fffffff
  90. const m_SHRT_MAX = 0x7fff
  91. const m_SSIZE_MAX = "LONG_MAX"
  92. const m_STATIC_TREES = 1
  93. const m_STDERR_FILENO = 2
  94. const m_STDIN_FILENO = 0
  95. const m_STDOUT_FILENO = 1
  96. const m_STORED_BLOCK = 0
  97. const m_SYMLOOP_MAX = 40
  98. const m_TTY_NAME_MAX = 32
  99. const m_TZNAME_MAX = 6
  100. const m_UCHAR_MAX = 255
  101. const m_UINT_MAX = 0xffffffff
  102. const m_USHRT_MAX = 0xffff
  103. const m_WNOHANG = 1
  104. const m_WORD_BIT = 32
  105. const m_WUNTRACED = 2
  106. const m_W_OK = 2
  107. const m_X_OK = 1
  108. const m_ZEXTERN = "extern"
  109. const m_ZLIB_VERNUM = 0x1310
  110. const m_ZLIB_VERSION = "1.3.1"
  111. const m_ZLIB_VER_MAJOR = 1
  112. const m_ZLIB_VER_MINOR = 3
  113. const m_ZLIB_VER_REVISION = 1
  114. const m_ZLIB_VER_SUBREVISION = 0
  115. const m_Z_ASCII = "Z_TEXT"
  116. const m_Z_BEST_COMPRESSION = 9
  117. const m_Z_BEST_SPEED = 1
  118. const m_Z_BINARY = 0
  119. const m_Z_BLOCK = 5
  120. const m_Z_DEFAULT_STRATEGY = 0
  121. const m_Z_DEFLATED = 8
  122. const m_Z_FILTERED = 1
  123. const m_Z_FINISH = 4
  124. const m_Z_FIXED = 4
  125. const m_Z_FULL_FLUSH = 3
  126. const m_Z_HUFFMAN_ONLY = 2
  127. const m_Z_NEED_DICT = 2
  128. const m_Z_NO_COMPRESSION = 0
  129. const m_Z_NO_FLUSH = 0
  130. const m_Z_NULL = 0
  131. const m_Z_OK = 0
  132. const m_Z_PARTIAL_FLUSH = 1
  133. const m_Z_RLE = 3
  134. const m_Z_STREAM_END = 1
  135. const m_Z_SYNC_FLUSH = 2
  136. const m_Z_TEXT = 1
  137. const m_Z_TREES = 6
  138. const m_Z_U4 = "unsigned"
  139. const m_Z_UNKNOWN = 2
  140. const m__CS_GNU_LIBC_VERSION = 2
  141. const m__CS_GNU_LIBPTHREAD_VERSION = 3
  142. const m__CS_PATH = 0
  143. const m__CS_POSIX_V5_WIDTH_RESTRICTED_ENVS = 4
  144. const m__CS_POSIX_V6_ILP32_OFF32_CFLAGS = 1116
  145. const m__CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 1117
  146. const m__CS_POSIX_V6_ILP32_OFF32_LIBS = 1118
  147. const m__CS_POSIX_V6_ILP32_OFF32_LINTFLAGS = 1119
  148. const m__CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 1120
  149. const m__CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 1121
  150. const m__CS_POSIX_V6_ILP32_OFFBIG_LIBS = 1122
  151. const m__CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS = 1123
  152. const m__CS_POSIX_V6_LP64_OFF64_CFLAGS = 1124
  153. const m__CS_POSIX_V6_LP64_OFF64_LDFLAGS = 1125
  154. const m__CS_POSIX_V6_LP64_OFF64_LIBS = 1126
  155. const m__CS_POSIX_V6_LP64_OFF64_LINTFLAGS = 1127
  156. const m__CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 1128
  157. const m__CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 1129
  158. const m__CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 1130
  159. const m__CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS = 1131
  160. const m__CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 1
  161. const m__CS_POSIX_V7_ILP32_OFF32_CFLAGS = 1132
  162. const m__CS_POSIX_V7_ILP32_OFF32_LDFLAGS = 1133
  163. const m__CS_POSIX_V7_ILP32_OFF32_LIBS = 1134
  164. const m__CS_POSIX_V7_ILP32_OFF32_LINTFLAGS = 1135
  165. const m__CS_POSIX_V7_ILP32_OFFBIG_CFLAGS = 1136
  166. const m__CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS = 1137
  167. const m__CS_POSIX_V7_ILP32_OFFBIG_LIBS = 1138
  168. const m__CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS = 1139
  169. const m__CS_POSIX_V7_LP64_OFF64_CFLAGS = 1140
  170. const m__CS_POSIX_V7_LP64_OFF64_LDFLAGS = 1141
  171. const m__CS_POSIX_V7_LP64_OFF64_LIBS = 1142
  172. const m__CS_POSIX_V7_LP64_OFF64_LINTFLAGS = 1143
  173. const m__CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS = 1144
  174. const m__CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS = 1145
  175. const m__CS_POSIX_V7_LPBIG_OFFBIG_LIBS = 1146
  176. const m__CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS = 1147
  177. const m__CS_POSIX_V7_THREADS_CFLAGS = 1150
  178. const m__CS_POSIX_V7_THREADS_LDFLAGS = 1151
  179. const m__CS_POSIX_V7_WIDTH_RESTRICTED_ENVS = 5
  180. const m__CS_V6_ENV = 1148
  181. const m__CS_V7_ENV = 1149
  182. const m__GNU_SOURCE = 1
  183. const m__LARGEFILE64_SOURCE = 1
  184. const m__LP64 = 1
  185. const m__PC_2_SYMLINKS = 20
  186. const m__PC_ALLOC_SIZE_MIN = 18
  187. const m__PC_ASYNC_IO = 10
  188. const m__PC_CHOWN_RESTRICTED = 6
  189. const m__PC_FILESIZEBITS = 13
  190. const m__PC_LINK_MAX = 0
  191. const m__PC_MAX_CANON = 1
  192. const m__PC_MAX_INPUT = 2
  193. const m__PC_NAME_MAX = 3
  194. const m__PC_NO_TRUNC = 7
  195. const m__PC_PATH_MAX = 4
  196. const m__PC_PIPE_BUF = 5
  197. const m__PC_PRIO_IO = 11
  198. const m__PC_REC_INCR_XFER_SIZE = 14
  199. const m__PC_REC_MAX_XFER_SIZE = 15
  200. const m__PC_REC_MIN_XFER_SIZE = 16
  201. const m__PC_REC_XFER_ALIGN = 17
  202. const m__PC_SOCK_MAXBUF = 12
  203. const m__PC_SYMLINK_MAX = 19
  204. const m__PC_SYNC_IO = 9
  205. const m__PC_VDISABLE = 8
  206. const m__POSIX2_BC_BASE_MAX = 99
  207. const m__POSIX2_BC_DIM_MAX = 2048
  208. const m__POSIX2_BC_SCALE_MAX = 99
  209. const m__POSIX2_BC_STRING_MAX = 1000
  210. const m__POSIX2_CHARCLASS_NAME_MAX = 14
  211. const m__POSIX2_COLL_WEIGHTS_MAX = 2
  212. const m__POSIX2_C_BIND = "_POSIX_VERSION"
  213. const m__POSIX2_EXPR_NEST_MAX = 32
  214. const m__POSIX2_LINE_MAX = 2048
  215. const m__POSIX2_RE_DUP_MAX = 255
  216. const m__POSIX2_VERSION = "_POSIX_VERSION"
  217. const m__POSIX_ADVISORY_INFO = "_POSIX_VERSION"
  218. const m__POSIX_AIO_LISTIO_MAX = 2
  219. const m__POSIX_AIO_MAX = 1
  220. const m__POSIX_ARG_MAX = 4096
  221. const m__POSIX_ASYNCHRONOUS_IO = "_POSIX_VERSION"
  222. const m__POSIX_BARRIERS = "_POSIX_VERSION"
  223. const m__POSIX_CHILD_MAX = 25
  224. const m__POSIX_CHOWN_RESTRICTED = 1
  225. const m__POSIX_CLOCKRES_MIN = 20000000
  226. const m__POSIX_CLOCK_SELECTION = "_POSIX_VERSION"
  227. const m__POSIX_CPUTIME = "_POSIX_VERSION"
  228. const m__POSIX_DELAYTIMER_MAX = 32
  229. const m__POSIX_FSYNC = "_POSIX_VERSION"
  230. const m__POSIX_HOST_NAME_MAX = 255
  231. const m__POSIX_IPV6 = "_POSIX_VERSION"
  232. const m__POSIX_JOB_CONTROL = 1
  233. const m__POSIX_LINK_MAX = 8
  234. const m__POSIX_LOGIN_NAME_MAX = 9
  235. const m__POSIX_MAPPED_FILES = "_POSIX_VERSION"
  236. const m__POSIX_MAX_CANON = 255
  237. const m__POSIX_MAX_INPUT = 255
  238. const m__POSIX_MEMLOCK = "_POSIX_VERSION"
  239. const m__POSIX_MEMLOCK_RANGE = "_POSIX_VERSION"
  240. const m__POSIX_MEMORY_PROTECTION = "_POSIX_VERSION"
  241. const m__POSIX_MESSAGE_PASSING = "_POSIX_VERSION"
  242. const m__POSIX_MONOTONIC_CLOCK = "_POSIX_VERSION"
  243. const m__POSIX_MQ_OPEN_MAX = 8
  244. const m__POSIX_MQ_PRIO_MAX = 32
  245. const m__POSIX_NAME_MAX = 14
  246. const m__POSIX_NGROUPS_MAX = 8
  247. const m__POSIX_NO_TRUNC = 1
  248. const m__POSIX_OPEN_MAX = 20
  249. const m__POSIX_PATH_MAX = 256
  250. const m__POSIX_PIPE_BUF = 512
  251. const m__POSIX_RAW_SOCKETS = "_POSIX_VERSION"
  252. const m__POSIX_READER_WRITER_LOCKS = "_POSIX_VERSION"
  253. const m__POSIX_REALTIME_SIGNALS = "_POSIX_VERSION"
  254. const m__POSIX_REGEXP = 1
  255. const m__POSIX_RE_DUP_MAX = 255
  256. const m__POSIX_RTSIG_MAX = 8
  257. const m__POSIX_SAVED_IDS = 1
  258. const m__POSIX_SEMAPHORES = "_POSIX_VERSION"
  259. const m__POSIX_SEM_NSEMS_MAX = 256
  260. const m__POSIX_SEM_VALUE_MAX = 32767
  261. const m__POSIX_SHARED_MEMORY_OBJECTS = "_POSIX_VERSION"
  262. const m__POSIX_SHELL = 1
  263. const m__POSIX_SIGQUEUE_MAX = 32
  264. const m__POSIX_SPAWN = "_POSIX_VERSION"
  265. const m__POSIX_SPIN_LOCKS = "_POSIX_VERSION"
  266. const m__POSIX_SSIZE_MAX = 32767
  267. const m__POSIX_SS_REPL_MAX = 4
  268. const m__POSIX_STREAM_MAX = 8
  269. const m__POSIX_SYMLINK_MAX = 255
  270. const m__POSIX_SYMLOOP_MAX = 8
  271. const m__POSIX_THREADS = "_POSIX_VERSION"
  272. const m__POSIX_THREAD_ATTR_STACKADDR = "_POSIX_VERSION"
  273. const m__POSIX_THREAD_ATTR_STACKSIZE = "_POSIX_VERSION"
  274. const m__POSIX_THREAD_CPUTIME = "_POSIX_VERSION"
  275. const m__POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4
  276. const m__POSIX_THREAD_KEYS_MAX = 128
  277. const m__POSIX_THREAD_PRIORITY_SCHEDULING = "_POSIX_VERSION"
  278. const m__POSIX_THREAD_PROCESS_SHARED = "_POSIX_VERSION"
  279. const m__POSIX_THREAD_SAFE_FUNCTIONS = "_POSIX_VERSION"
  280. const m__POSIX_THREAD_THREADS_MAX = 64
  281. const m__POSIX_TIMEOUTS = "_POSIX_VERSION"
  282. const m__POSIX_TIMERS = "_POSIX_VERSION"
  283. const m__POSIX_TIMER_MAX = 32
  284. const m__POSIX_TRACE_EVENT_NAME_MAX = 30
  285. const m__POSIX_TRACE_NAME_MAX = 8
  286. const m__POSIX_TRACE_SYS_MAX = 8
  287. const m__POSIX_TRACE_USER_EVENT_MAX = 32
  288. const m__POSIX_TTY_NAME_MAX = 9
  289. const m__POSIX_TZNAME_MAX = 6
  290. const m__POSIX_V6_LP64_OFF64 = 1
  291. const m__POSIX_V7_LP64_OFF64 = 1
  292. const m__POSIX_VDISABLE = 0
  293. const m__POSIX_VERSION = 200809
  294. const m__SC_2_CHAR_TERM = 95
  295. const m__SC_2_C_BIND = 47
  296. const m__SC_2_C_DEV = 48
  297. const m__SC_2_FORT_DEV = 49
  298. const m__SC_2_FORT_RUN = 50
  299. const m__SC_2_LOCALEDEF = 52
  300. const m__SC_2_PBS = 168
  301. const m__SC_2_PBS_ACCOUNTING = 169
  302. const m__SC_2_PBS_CHECKPOINT = 175
  303. const m__SC_2_PBS_LOCATE = 170
  304. const m__SC_2_PBS_MESSAGE = 171
  305. const m__SC_2_PBS_TRACK = 172
  306. const m__SC_2_SW_DEV = 51
  307. const m__SC_2_UPE = 97
  308. const m__SC_2_VERSION = 46
  309. const m__SC_ADVISORY_INFO = 132
  310. const m__SC_AIO_LISTIO_MAX = 23
  311. const m__SC_AIO_MAX = 24
  312. const m__SC_AIO_PRIO_DELTA_MAX = 25
  313. const m__SC_ARG_MAX = 0
  314. const m__SC_ASYNCHRONOUS_IO = 12
  315. const m__SC_ATEXIT_MAX = 87
  316. const m__SC_AVPHYS_PAGES = 86
  317. const m__SC_BARRIERS = 133
  318. const m__SC_BC_BASE_MAX = 36
  319. const m__SC_BC_DIM_MAX = 37
  320. const m__SC_BC_SCALE_MAX = 38
  321. const m__SC_BC_STRING_MAX = 39
  322. const m__SC_CHILD_MAX = 1
  323. const m__SC_CLK_TCK = 2
  324. const m__SC_CLOCK_SELECTION = 137
  325. const m__SC_COLL_WEIGHTS_MAX = 40
  326. const m__SC_CPUTIME = 138
  327. const m__SC_DELAYTIMER_MAX = 26
  328. const m__SC_EXPR_NEST_MAX = 42
  329. const m__SC_FSYNC = 15
  330. const m__SC_GETGR_R_SIZE_MAX = 69
  331. const m__SC_GETPW_R_SIZE_MAX = 70
  332. const m__SC_HOST_NAME_MAX = 180
  333. const m__SC_IOV_MAX = 60
  334. const m__SC_IPV6 = 235
  335. const m__SC_JOB_CONTROL = 7
  336. const m__SC_LINE_MAX = 43
  337. const m__SC_LOGIN_NAME_MAX = 71
  338. const m__SC_MAPPED_FILES = 16
  339. const m__SC_MEMLOCK = 17
  340. const m__SC_MEMLOCK_RANGE = 18
  341. const m__SC_MEMORY_PROTECTION = 19
  342. const m__SC_MESSAGE_PASSING = 20
  343. const m__SC_MINSIGSTKSZ = 249
  344. const m__SC_MONOTONIC_CLOCK = 149
  345. const m__SC_MQ_OPEN_MAX = 27
  346. const m__SC_MQ_PRIO_MAX = 28
  347. const m__SC_NGROUPS_MAX = 3
  348. const m__SC_NPROCESSORS_CONF = 83
  349. const m__SC_NPROCESSORS_ONLN = 84
  350. const m__SC_NZERO = 109
  351. const m__SC_OPEN_MAX = 4
  352. const m__SC_PAGESIZE = 30
  353. const m__SC_PAGE_SIZE = 30
  354. const m__SC_PASS_MAX = 88
  355. const m__SC_PHYS_PAGES = 85
  356. const m__SC_PRIORITIZED_IO = 13
  357. const m__SC_PRIORITY_SCHEDULING = 10
  358. const m__SC_RAW_SOCKETS = 236
  359. const m__SC_READER_WRITER_LOCKS = 153
  360. const m__SC_REALTIME_SIGNALS = 9
  361. const m__SC_REGEXP = 155
  362. const m__SC_RE_DUP_MAX = 44
  363. const m__SC_RTSIG_MAX = 31
  364. const m__SC_SAVED_IDS = 8
  365. const m__SC_SEMAPHORES = 21
  366. const m__SC_SEM_NSEMS_MAX = 32
  367. const m__SC_SEM_VALUE_MAX = 33
  368. const m__SC_SHARED_MEMORY_OBJECTS = 22
  369. const m__SC_SHELL = 157
  370. const m__SC_SIGQUEUE_MAX = 34
  371. const m__SC_SIGSTKSZ = 250
  372. const m__SC_SPAWN = 159
  373. const m__SC_SPIN_LOCKS = 154
  374. const m__SC_SPORADIC_SERVER = 160
  375. const m__SC_SS_REPL_MAX = 241
  376. const m__SC_STREAMS = 174
  377. const m__SC_STREAM_MAX = 5
  378. const m__SC_SYMLOOP_MAX = 173
  379. const m__SC_SYNCHRONIZED_IO = 14
  380. const m__SC_THREADS = 67
  381. const m__SC_THREAD_ATTR_STACKADDR = 77
  382. const m__SC_THREAD_ATTR_STACKSIZE = 78
  383. const m__SC_THREAD_CPUTIME = 139
  384. const m__SC_THREAD_DESTRUCTOR_ITERATIONS = 73
  385. const m__SC_THREAD_KEYS_MAX = 74
  386. const m__SC_THREAD_PRIORITY_SCHEDULING = 79
  387. const m__SC_THREAD_PRIO_INHERIT = 80
  388. const m__SC_THREAD_PRIO_PROTECT = 81
  389. const m__SC_THREAD_PROCESS_SHARED = 82
  390. const m__SC_THREAD_ROBUST_PRIO_INHERIT = 247
  391. const m__SC_THREAD_ROBUST_PRIO_PROTECT = 248
  392. const m__SC_THREAD_SAFE_FUNCTIONS = 68
  393. const m__SC_THREAD_SPORADIC_SERVER = 161
  394. const m__SC_THREAD_STACK_MIN = 75
  395. const m__SC_THREAD_THREADS_MAX = 76
  396. const m__SC_TIMEOUTS = 164
  397. const m__SC_TIMERS = 11
  398. const m__SC_TIMER_MAX = 35
  399. const m__SC_TRACE = 181
  400. const m__SC_TRACE_EVENT_FILTER = 182
  401. const m__SC_TRACE_EVENT_NAME_MAX = 242
  402. const m__SC_TRACE_INHERIT = 183
  403. const m__SC_TRACE_LOG = 184
  404. const m__SC_TRACE_NAME_MAX = 243
  405. const m__SC_TRACE_SYS_MAX = 244
  406. const m__SC_TRACE_USER_EVENT_MAX = 245
  407. const m__SC_TTY_NAME_MAX = 72
  408. const m__SC_TYPED_MEMORY_OBJECTS = 165
  409. const m__SC_TZNAME_MAX = 6
  410. const m__SC_UIO_MAXIOV = 60
  411. const m__SC_V6_ILP32_OFF32 = 176
  412. const m__SC_V6_ILP32_OFFBIG = 177
  413. const m__SC_V6_LP64_OFF64 = 178
  414. const m__SC_V6_LPBIG_OFFBIG = 179
  415. const m__SC_V7_ILP32_OFF32 = 237
  416. const m__SC_V7_ILP32_OFFBIG = 238
  417. const m__SC_V7_LP64_OFF64 = 239
  418. const m__SC_V7_LPBIG_OFFBIG = 240
  419. const m__SC_VERSION = 29
  420. const m__SC_XBS5_ILP32_OFF32 = 125
  421. const m__SC_XBS5_ILP32_OFFBIG = 126
  422. const m__SC_XBS5_LP64_OFF64 = 127
  423. const m__SC_XBS5_LPBIG_OFFBIG = 128
  424. const m__SC_XOPEN_CRYPT = 92
  425. const m__SC_XOPEN_ENH_I18N = 93
  426. const m__SC_XOPEN_LEGACY = 129
  427. const m__SC_XOPEN_REALTIME = 130
  428. const m__SC_XOPEN_REALTIME_THREADS = 131
  429. const m__SC_XOPEN_SHM = 94
  430. const m__SC_XOPEN_STREAMS = 246
  431. const m__SC_XOPEN_UNIX = 91
  432. const m__SC_XOPEN_VERSION = 89
  433. const m__SC_XOPEN_XCU_VERSION = 90
  434. const m__SC_XOPEN_XPG2 = 98
  435. const m__SC_XOPEN_XPG3 = 99
  436. const m__SC_XOPEN_XPG4 = 100
  437. const m__STDC_PREDEF_H = 1
  438. const m__XOPEN_ENH_I18N = 1
  439. const m__XOPEN_IOV_MAX = 16
  440. const m__XOPEN_NAME_MAX = 255
  441. const m__XOPEN_PATH_MAX = 1024
  442. const m__XOPEN_UNIX = 1
  443. const m__XOPEN_VERSION = 700
  444. const m___ARCH__ = 9
  445. const m___ATOMIC_ACQUIRE = 2
  446. const m___ATOMIC_ACQ_REL = 4
  447. const m___ATOMIC_CONSUME = 1
  448. const m___ATOMIC_RELAXED = 0
  449. const m___ATOMIC_RELEASE = 3
  450. const m___ATOMIC_SEQ_CST = 5
  451. const m___BIGGEST_ALIGNMENT__ = 8
  452. const m___BIG_ENDIAN = 4321
  453. const m___BYTE_ORDER = 4321
  454. const m___BYTE_ORDER__ = "__ORDER_BIG_ENDIAN__"
  455. const m___CCGO__ = 1
  456. const m___CHAR_BIT__ = 8
  457. const m___CHAR_UNSIGNED__ = 1
  458. const m___DBL_DECIMAL_DIG__ = 17
  459. const m___DBL_DIG__ = 15
  460. const m___DBL_HAS_DENORM__ = 1
  461. const m___DBL_HAS_INFINITY__ = 1
  462. const m___DBL_HAS_QUIET_NAN__ = 1
  463. const m___DBL_MANT_DIG__ = 53
  464. const m___DBL_MAX_10_EXP__ = 308
  465. const m___DBL_MAX_EXP__ = 1024
  466. const m___DEC128_EPSILON__ = 1e-33
  467. const m___DEC128_MANT_DIG__ = 34
  468. const m___DEC128_MAX_EXP__ = 6145
  469. const m___DEC128_MAX__ = "9.999999999999999999999999999999999E6144"
  470. const m___DEC128_MIN__ = 1e-6143
  471. const m___DEC128_SUBNORMAL_MIN__ = 0.000000000000000000000000000000001e-6143
  472. const m___DEC32_EPSILON__ = 1e-6
  473. const m___DEC32_MANT_DIG__ = 7
  474. const m___DEC32_MAX_EXP__ = 97
  475. const m___DEC32_MAX__ = 9.999999e96
  476. const m___DEC32_MIN__ = 1e-95
  477. const m___DEC32_SUBNORMAL_MIN__ = 0.000001e-95
  478. const m___DEC64_EPSILON__ = 1e-15
  479. const m___DEC64_MANT_DIG__ = 16
  480. const m___DEC64_MAX_EXP__ = 385
  481. const m___DEC64_MAX__ = "9.999999999999999E384"
  482. const m___DEC64_MIN__ = 1e-383
  483. const m___DEC64_SUBNORMAL_MIN__ = 0.000000000000001e-383
  484. const m___DECIMAL_DIG__ = 17
  485. const m___DEC_EVAL_METHOD__ = 2
  486. const m___ELF__ = 1
  487. const m___FINITE_MATH_ONLY__ = 0
  488. const m___FLOAT_WORD_ORDER__ = "__ORDER_BIG_ENDIAN__"
  489. const m___FLT32X_DECIMAL_DIG__ = 17
  490. const m___FLT32X_DENORM_MIN__ = 4.9406564584124654e-324
  491. const m___FLT32X_DIG__ = 15
  492. const m___FLT32X_EPSILON__ = 2.2204460492503131e-16
  493. const m___FLT32X_HAS_DENORM__ = 1
  494. const m___FLT32X_HAS_INFINITY__ = 1
  495. const m___FLT32X_HAS_QUIET_NAN__ = 1
  496. const m___FLT32X_MANT_DIG__ = 53
  497. const m___FLT32X_MAX_10_EXP__ = 308
  498. const m___FLT32X_MAX_EXP__ = 1024
  499. const m___FLT32X_MAX__ = 1.7976931348623157e+308
  500. const m___FLT32X_MIN__ = 2.2250738585072014e-308
  501. const m___FLT32X_NORM_MAX__ = 1.7976931348623157e+308
  502. const m___FLT32_DECIMAL_DIG__ = 9
  503. const m___FLT32_DENORM_MIN__ = 1.4012984643248171e-45
  504. const m___FLT32_DIG__ = 6
  505. const m___FLT32_EPSILON__ = 1.1920928955078125e-7
  506. const m___FLT32_HAS_DENORM__ = 1
  507. const m___FLT32_HAS_INFINITY__ = 1
  508. const m___FLT32_HAS_QUIET_NAN__ = 1
  509. const m___FLT32_MANT_DIG__ = 24
  510. const m___FLT32_MAX_10_EXP__ = 38
  511. const m___FLT32_MAX_EXP__ = 128
  512. const m___FLT32_MAX__ = 3.4028234663852886e+38
  513. const m___FLT32_MIN__ = 1.1754943508222875e-38
  514. const m___FLT32_NORM_MAX__ = 3.4028234663852886e+38
  515. const m___FLT64_DECIMAL_DIG__ = 17
  516. const m___FLT64_DENORM_MIN__ = 4.9406564584124654e-324
  517. const m___FLT64_DIG__ = 15
  518. const m___FLT64_EPSILON__ = 2.2204460492503131e-16
  519. const m___FLT64_HAS_DENORM__ = 1
  520. const m___FLT64_HAS_INFINITY__ = 1
  521. const m___FLT64_HAS_QUIET_NAN__ = 1
  522. const m___FLT64_MANT_DIG__ = 53
  523. const m___FLT64_MAX_10_EXP__ = 308
  524. const m___FLT64_MAX_EXP__ = 1024
  525. const m___FLT64_MAX__ = 1.7976931348623157e+308
  526. const m___FLT64_MIN__ = 2.2250738585072014e-308
  527. const m___FLT64_NORM_MAX__ = 1.7976931348623157e+308
  528. const m___FLT_DECIMAL_DIG__ = 9
  529. const m___FLT_DENORM_MIN__ = 1.4012984643248171e-45
  530. const m___FLT_DIG__ = 6
  531. const m___FLT_EPSILON__ = 1.1920928955078125e-7
  532. const m___FLT_EVAL_METHOD_TS_18661_3__ = 0
  533. const m___FLT_EVAL_METHOD__ = 0
  534. const m___FLT_HAS_DENORM__ = 1
  535. const m___FLT_HAS_INFINITY__ = 1
  536. const m___FLT_HAS_QUIET_NAN__ = 1
  537. const m___FLT_MANT_DIG__ = 24
  538. const m___FLT_MAX_10_EXP__ = 38
  539. const m___FLT_MAX_EXP__ = 128
  540. const m___FLT_MAX__ = 3.4028234663852886e+38
  541. const m___FLT_MIN__ = 1.1754943508222875e-38
  542. const m___FLT_NORM_MAX__ = 3.4028234663852886e+38
  543. const m___FLT_RADIX__ = 2
  544. const m___FP_FAST_FMA = 1
  545. const m___FP_FAST_FMAF = 1
  546. const m___FP_FAST_FMAF32 = 1
  547. const m___FP_FAST_FMAF32x = 1
  548. const m___FP_FAST_FMAF64 = 1
  549. const m___FP_FAST_FMAL = 1
  550. const m___FUNCTION__ = "__func__"
  551. const m___GCC_ATOMIC_BOOL_LOCK_FREE = 2
  552. const m___GCC_ATOMIC_CHAR16_T_LOCK_FREE = 2
  553. const m___GCC_ATOMIC_CHAR32_T_LOCK_FREE = 2
  554. const m___GCC_ATOMIC_CHAR_LOCK_FREE = 2
  555. const m___GCC_ATOMIC_INT_LOCK_FREE = 2
  556. const m___GCC_ATOMIC_LLONG_LOCK_FREE = 2
  557. const m___GCC_ATOMIC_LONG_LOCK_FREE = 2
  558. const m___GCC_ATOMIC_POINTER_LOCK_FREE = 2
  559. const m___GCC_ATOMIC_SHORT_LOCK_FREE = 2
  560. const m___GCC_ATOMIC_TEST_AND_SET_TRUEVAL = 1
  561. const m___GCC_ATOMIC_WCHAR_T_LOCK_FREE = 2
  562. const m___GCC_HAVE_DWARF2_CFI_ASM = 1
  563. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 = 1
  564. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 = 1
  565. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 = 1
  566. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 = 1
  567. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 = 1
  568. const m___GCC_IEC_559 = 2
  569. const m___GCC_IEC_559_COMPLEX = 2
  570. const m___GNUC_MINOR__ = 2
  571. const m___GNUC_PATCHLEVEL__ = 1
  572. const m___GNUC_STDC_INLINE__ = 1
  573. const m___GNUC__ = 10
  574. const m___GXX_ABI_VERSION = 1014
  575. const m___HAVE_SPECULATION_SAFE_VALUE = 1
  576. const m___INT16_MAX__ = 0x7fff
  577. const m___INT32_MAX__ = 0x7fffffff
  578. const m___INT32_TYPE__ = "int"
  579. const m___INT64_MAX__ = 0x7fffffffffffffff
  580. const m___INT8_MAX__ = 0x7f
  581. const m___INTMAX_MAX__ = 0x7fffffffffffffff
  582. const m___INTMAX_WIDTH__ = 64
  583. const m___INTPTR_MAX__ = 0x7fffffffffffffff
  584. const m___INTPTR_WIDTH__ = 64
  585. const m___INT_FAST16_MAX__ = 0x7fffffffffffffff
  586. const m___INT_FAST16_WIDTH__ = 64
  587. const m___INT_FAST32_MAX__ = 0x7fffffffffffffff
  588. const m___INT_FAST32_WIDTH__ = 64
  589. const m___INT_FAST64_MAX__ = 0x7fffffffffffffff
  590. const m___INT_FAST64_WIDTH__ = 64
  591. const m___INT_FAST8_MAX__ = 0x7f
  592. const m___INT_FAST8_WIDTH__ = 8
  593. const m___INT_LEAST16_MAX__ = 0x7fff
  594. const m___INT_LEAST16_WIDTH__ = 16
  595. const m___INT_LEAST32_MAX__ = 0x7fffffff
  596. const m___INT_LEAST32_TYPE__ = "int"
  597. const m___INT_LEAST32_WIDTH__ = 32
  598. const m___INT_LEAST64_MAX__ = 0x7fffffffffffffff
  599. const m___INT_LEAST64_WIDTH__ = 64
  600. const m___INT_LEAST8_MAX__ = 0x7f
  601. const m___INT_LEAST8_WIDTH__ = 8
  602. const m___INT_MAX__ = 0x7fffffff
  603. const m___INT_WIDTH__ = 32
  604. const m___LDBL_DECIMAL_DIG__ = 17
  605. const m___LDBL_DENORM_MIN__ = 4.9406564584124654e-324
  606. const m___LDBL_DIG__ = 15
  607. const m___LDBL_EPSILON__ = 2.2204460492503131e-16
  608. const m___LDBL_HAS_DENORM__ = 1
  609. const m___LDBL_HAS_INFINITY__ = 1
  610. const m___LDBL_HAS_QUIET_NAN__ = 1
  611. const m___LDBL_MANT_DIG__ = 53
  612. const m___LDBL_MAX_10_EXP__ = 308
  613. const m___LDBL_MAX_EXP__ = 1024
  614. const m___LDBL_MAX__ = 1.7976931348623157e+308
  615. const m___LDBL_MIN__ = 2.2250738585072014e-308
  616. const m___LDBL_NORM_MAX__ = 1.7976931348623157e+308
  617. const m___LITTLE_ENDIAN = 1234
  618. const m___LONG_LONG_MAX__ = 0x7fffffffffffffff
  619. const m___LONG_LONG_WIDTH__ = 64
  620. const m___LONG_MAX = 0x7fffffffffffffff
  621. const m___LONG_MAX__ = 0x7fffffffffffffff
  622. const m___LONG_WIDTH__ = 64
  623. const m___LP64__ = 1
  624. const m___NO_INLINE__ = 1
  625. const m___ORDER_BIG_ENDIAN__ = 4321
  626. const m___ORDER_LITTLE_ENDIAN__ = 1234
  627. const m___ORDER_PDP_ENDIAN__ = 3412
  628. const m___PDP_ENDIAN = 3412
  629. const m___PIC__ = 2
  630. const m___PIE__ = 2
  631. const m___PRAGMA_REDEFINE_EXTNAME = 1
  632. const m___PRETTY_FUNCTION__ = "__func__"
  633. const m___PTRDIFF_MAX__ = 0x7fffffffffffffff
  634. const m___PTRDIFF_WIDTH__ = 64
  635. const m___SCHAR_MAX__ = 0x7f
  636. const m___SCHAR_WIDTH__ = 8
  637. const m___SHRT_MAX__ = 0x7fff
  638. const m___SHRT_WIDTH__ = 16
  639. const m___SIG_ATOMIC_MAX__ = 0x7fffffff
  640. const m___SIG_ATOMIC_TYPE__ = "int"
  641. const m___SIG_ATOMIC_WIDTH__ = 32
  642. const m___SIZEOF_DOUBLE__ = 8
  643. const m___SIZEOF_FLOAT__ = 4
  644. const m___SIZEOF_INT128__ = 16
  645. const m___SIZEOF_INT__ = 4
  646. const m___SIZEOF_LONG_DOUBLE__ = 8
  647. const m___SIZEOF_LONG_LONG__ = 8
  648. const m___SIZEOF_LONG__ = 8
  649. const m___SIZEOF_POINTER__ = 8
  650. const m___SIZEOF_PTRDIFF_T__ = 8
  651. const m___SIZEOF_SHORT__ = 2
  652. const m___SIZEOF_SIZE_T__ = 8
  653. const m___SIZEOF_WCHAR_T__ = 4
  654. const m___SIZEOF_WINT_T__ = 4
  655. const m___SIZE_MAX__ = 0xffffffffffffffff
  656. const m___SIZE_WIDTH__ = 64
  657. const m___STDC_HOSTED__ = 1
  658. const m___STDC_IEC_559_COMPLEX__ = 1
  659. const m___STDC_IEC_559__ = 1
  660. const m___STDC_ISO_10646__ = 201706
  661. const m___STDC_UTF_16__ = 1
  662. const m___STDC_UTF_32__ = 1
  663. const m___STDC_VERSION__ = 201710
  664. const m___STDC__ = 1
  665. const m___UINT16_MAX__ = 0xffff
  666. const m___UINT32_MAX__ = 0xffffffff
  667. const m___UINT64_MAX__ = 0xffffffffffffffff
  668. const m___UINT8_MAX__ = 0xff
  669. const m___UINTMAX_MAX__ = 0xffffffffffffffff
  670. const m___UINTPTR_MAX__ = 0xffffffffffffffff
  671. const m___UINT_FAST16_MAX__ = 0xffffffffffffffff
  672. const m___UINT_FAST32_MAX__ = 0xffffffffffffffff
  673. const m___UINT_FAST64_MAX__ = 0xffffffffffffffff
  674. const m___UINT_FAST8_MAX__ = 0xff
  675. const m___UINT_LEAST16_MAX__ = 0xffff
  676. const m___UINT_LEAST32_MAX__ = 0xffffffff
  677. const m___UINT_LEAST64_MAX__ = 0xffffffffffffffff
  678. const m___UINT_LEAST8_MAX__ = 0xff
  679. const m___USE_TIME_BITS64 = 1
  680. const m___VERSION__ = "10.2.1 20210110"
  681. const m___WCHAR_MAX__ = 0x7fffffff
  682. const m___WCHAR_TYPE__ = "int"
  683. const m___WCHAR_WIDTH__ = 32
  684. const m___WINT_MAX__ = 0xffffffff
  685. const m___WINT_MIN__ = 0
  686. const m___WINT_WIDTH__ = 32
  687. const m___gnu_linux__ = 1
  688. const m___inline = "inline"
  689. const m___linux = 1
  690. const m___linux__ = 1
  691. const m___pic__ = 2
  692. const m___pie__ = 2
  693. const m___restrict = "restrict"
  694. const m___restrict_arr = "restrict"
  695. const m___s390__ = 1
  696. const m___s390x__ = 1
  697. const m___unix = 1
  698. const m___unix__ = 1
  699. const m___zarch__ = 1
  700. const m_alloca = "__builtin_alloca"
  701. const m_blkcnt64_t = "blkcnt_t"
  702. const m_fsblkcnt64_t = "fsblkcnt_t"
  703. const m_fsfilcnt64_t = "fsfilcnt_t"
  704. const m_ftruncate64 = "ftruncate"
  705. const m_ino64_t = "ino_t"
  706. const m_linux = 1
  707. const m_local = "static"
  708. const m_lockf64 = "lockf"
  709. const m_lseek64 = "lseek"
  710. const m_mkostemp64 = "mkostemp"
  711. const m_mkostemps64 = "mkostemps"
  712. const m_mkstemp64 = "mkstemp"
  713. const m_mkstemps64 = "mkstemps"
  714. const m_off64_t = "off_t"
  715. const m_pread64 = "pread"
  716. const m_pwrite64 = "pwrite"
  717. const m_truncate64 = "truncate"
  718. const m_unix = 1
  719. const m_z_off64_t = "z_off_t"
  720. const m_z_off_t = "off_t"
  721. const m_zmemcmp = "memcmp"
  722. const m_zmemcpy = "memcpy"
  723. type t__builtin_va_list = uintptr
  724. type t__predefined_size_t = uint64
  725. type t__predefined_wchar_t = int32
  726. type t__predefined_ptrdiff_t = int64
  727. type Twchar_t = int32
  728. type Tmax_align_t = struct {
  729. F__ll int64
  730. F__ld float64
  731. }
  732. type Tsize_t = uint64
  733. type Tptrdiff_t = int64
  734. type Tz_size_t = uint64
  735. type TByte = uint8
  736. type TuInt = uint32
  737. type TuLong = uint64
  738. type TBytef = uint8
  739. type Tcharf = uint8
  740. type Tintf = int32
  741. type TuIntf = uint32
  742. type TuLongf = uint64
  743. type Tvoidpc = uintptr
  744. type Tvoidpf = uintptr
  745. type Tvoidp = uintptr
  746. type Tz_crc_t = uint32
  747. type Tssize_t = int64
  748. type Tregister_t = int64
  749. type Ttime_t = int64
  750. type Tsuseconds_t = int64
  751. type Tint8_t = int8
  752. type Tint16_t = int16
  753. type Tint32_t = int32
  754. type Tint64_t = int64
  755. type Tu_int64_t = uint64
  756. type Tmode_t = uint32
  757. type Tnlink_t = uint64
  758. type Toff_t = int64
  759. type Tino_t = uint64
  760. type Tdev_t = uint64
  761. type Tblksize_t = int64
  762. type Tblkcnt_t = int64
  763. type Tfsblkcnt_t = uint64
  764. type Tfsfilcnt_t = uint64
  765. type Ttimer_t = uintptr
  766. type Tclockid_t = int32
  767. type Tclock_t = int64
  768. type Tpid_t = int32
  769. type Tid_t = uint32
  770. type Tuid_t = uint32
  771. type Tgid_t = uint32
  772. type Tkey_t = int32
  773. type Tuseconds_t = uint32
  774. type Tpthread_t = uintptr
  775. type Tpthread_once_t = int32
  776. type Tpthread_key_t = uint32
  777. type Tpthread_spinlock_t = int32
  778. type Tpthread_mutexattr_t = struct {
  779. F__attr uint32
  780. }
  781. type Tpthread_condattr_t = struct {
  782. F__attr uint32
  783. }
  784. type Tpthread_barrierattr_t = struct {
  785. F__attr uint32
  786. }
  787. type Tpthread_rwlockattr_t = struct {
  788. F__attr [2]uint32
  789. }
  790. type Tpthread_attr_t = struct {
  791. F__u struct {
  792. F__vi [0][14]int32
  793. F__s [0][7]uint64
  794. F__i [14]int32
  795. }
  796. }
  797. type Tpthread_mutex_t = struct {
  798. F__u struct {
  799. F__vi [0][10]int32
  800. F__p [0][5]uintptr
  801. F__i [10]int32
  802. }
  803. }
  804. type Tpthread_cond_t = struct {
  805. F__u struct {
  806. F__vi [0][12]int32
  807. F__p [0][6]uintptr
  808. F__i [12]int32
  809. }
  810. }
  811. type Tpthread_rwlock_t = struct {
  812. F__u struct {
  813. F__vi [0][14]int32
  814. F__p [0][7]uintptr
  815. F__i [14]int32
  816. }
  817. }
  818. type Tpthread_barrier_t = struct {
  819. F__u struct {
  820. F__vi [0][8]int32
  821. F__p [0][4]uintptr
  822. F__i [8]int32
  823. }
  824. }
  825. type Tu_int8_t = uint8
  826. type Tu_int16_t = uint16
  827. type Tu_int32_t = uint32
  828. type Tcaddr_t = uintptr
  829. type Tu_char = uint8
  830. type Tu_short = uint16
  831. type Tushort = uint16
  832. type Tu_int = uint32
  833. type Tuint = uint32
  834. type Tu_long = uint64
  835. type Tulong = uint64
  836. type Tquad_t = int64
  837. type Tu_quad_t = uint64
  838. type Tuint16_t = uint16
  839. type Tuint32_t = uint32
  840. type Tuint64_t = uint64
  841. type Ttimeval = struct {
  842. Ftv_sec Ttime_t
  843. Ftv_usec Tsuseconds_t
  844. }
  845. type Ttimespec = struct {
  846. Ftv_sec Ttime_t
  847. Ftv_nsec int64
  848. }
  849. type Tsigset_t = struct {
  850. F__bits [16]uint64
  851. }
  852. type t__sigset_t = Tsigset_t
  853. type Tfd_mask = uint64
  854. type Tfd_set = struct {
  855. Ffds_bits [16]uint64
  856. }
  857. type Tva_list = uintptr
  858. type Tintptr_t = int64
  859. type Talloc_func = uintptr
  860. type Tfree_func = uintptr
  861. type Tz_stream = struct {
  862. Fnext_in uintptr
  863. Favail_in TuInt
  864. Ftotal_in TuLong
  865. Fnext_out uintptr
  866. Favail_out TuInt
  867. Ftotal_out TuLong
  868. Fmsg uintptr
  869. Fstate uintptr
  870. Fzalloc Talloc_func
  871. Fzfree Tfree_func
  872. Fopaque Tvoidpf
  873. Fdata_type int32
  874. Fadler TuLong
  875. Freserved TuLong
  876. }
  877. type Tz_stream_s = Tz_stream
  878. type Tz_streamp = uintptr
  879. type Tgz_header = struct {
  880. Ftext int32
  881. Ftime TuLong
  882. Fxflags int32
  883. Fos int32
  884. Fextra uintptr
  885. Fextra_len TuInt
  886. Fextra_max TuInt
  887. Fname uintptr
  888. Fname_max TuInt
  889. Fcomment uintptr
  890. Fcomm_max TuInt
  891. Fhcrc int32
  892. Fdone int32
  893. }
  894. type Tgz_header_s = Tgz_header
  895. type Tgz_headerp = uintptr
  896. type Tin_func = uintptr
  897. type Tout_func = uintptr
  898. type TgzFile = uintptr
  899. type TgzFile_s = struct {
  900. Fhave uint32
  901. Fnext uintptr
  902. Fpos Toff_t
  903. }
  904. type Tlocale_t = uintptr
  905. type Tdiv_t = struct {
  906. Fquot int32
  907. Frem int32
  908. }
  909. type Tldiv_t = struct {
  910. Fquot int64
  911. Frem int64
  912. }
  913. type Tlldiv_t = struct {
  914. Fquot int64
  915. Frem int64
  916. }
  917. type Tuch = uint8
  918. type Tuchf = uint8
  919. type Tush = uint16
  920. type Tushf = uint16
  921. type Tulg = uint64
  922. /* Reverse the bytes in a 32-bit value */
  923. /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
  924. /* use NO_DIVIDE if your processor does not do division in hardware --
  925. try it both ways to see which is faster */
  926. // C documentation
  927. //
  928. // /* ========================================================================= */
  929. func Xadler32_z(tls *libc.TLS, adler TuLong, buf uintptr, len1 Tz_size_t) (r TuLong) {
  930. var n, v3 uint32
  931. var sum2 uint64
  932. var v1, v5 Tz_size_t
  933. var v2, v6 uintptr
  934. _, _, _, _, _, _, _ = n, sum2, v1, v2, v3, v5, v6
  935. /* split Adler-32 into component sums */
  936. sum2 = adler >> libc.Int32FromInt32(16) & uint64(0xffff)
  937. adler &= uint64(0xffff)
  938. /* in case user likes doing a byte at a time, keep it fast */
  939. if len1 == uint64(1) {
  940. adler += uint64(*(*TBytef)(unsafe.Pointer(buf)))
  941. if adler >= uint64(65521) {
  942. adler -= uint64(65521)
  943. }
  944. sum2 += adler
  945. if sum2 >= uint64(65521) {
  946. sum2 -= uint64(65521)
  947. }
  948. return adler | sum2<<int32(16)
  949. }
  950. /* initial Adler-32 value (deferred check for len == 1 speed) */
  951. if buf == uintptr(m_Z_NULL) {
  952. return uint64(1)
  953. }
  954. /* in case short lengths are provided, keep it somewhat fast */
  955. if len1 < uint64(16) {
  956. for {
  957. v1 = len1
  958. len1--
  959. if !(v1 != 0) {
  960. break
  961. }
  962. v2 = buf
  963. buf++
  964. adler += uint64(*(*TBytef)(unsafe.Pointer(v2)))
  965. sum2 += adler
  966. }
  967. if adler >= uint64(65521) {
  968. adler -= uint64(65521)
  969. }
  970. sum2 %= uint64(65521) /* only added so many BASE's */
  971. return adler | sum2<<int32(16)
  972. }
  973. /* do length NMAX blocks -- requires just one modulo operation */
  974. for len1 >= uint64(m_NMAX) {
  975. len1 -= uint64(m_NMAX)
  976. n = libc.Uint32FromInt32(libc.Int32FromInt32(m_NMAX) / libc.Int32FromInt32(16)) /* NMAX is divisible by 16 */
  977. for {
  978. adler += uint64(*(*TBytef)(unsafe.Pointer(buf)))
  979. sum2 += adler
  980. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(1)))))
  981. sum2 += adler
  982. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)))))
  983. sum2 += adler
  984. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  985. sum2 += adler
  986. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)))))
  987. sum2 += adler
  988. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  989. sum2 += adler
  990. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  991. sum2 += adler
  992. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  993. sum2 += adler
  994. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + 8)))
  995. sum2 += adler
  996. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(1)))))
  997. sum2 += adler
  998. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)))))
  999. sum2 += adler
  1000. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1001. sum2 += adler
  1002. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)))))
  1003. sum2 += adler
  1004. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  1005. sum2 += adler
  1006. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  1007. sum2 += adler
  1008. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1009. sum2 += adler /* 16 sums unrolled */
  1010. buf += uintptr(16)
  1011. goto _4
  1012. _4:
  1013. ;
  1014. n--
  1015. v3 = n
  1016. if !(v3 != 0) {
  1017. break
  1018. }
  1019. }
  1020. adler %= uint64(65521)
  1021. sum2 %= uint64(65521)
  1022. }
  1023. /* do remaining bytes (less than NMAX, still just one modulo) */
  1024. if len1 != 0 { /* avoid modulos if none remaining */
  1025. for len1 >= uint64(16) {
  1026. len1 -= uint64(16)
  1027. adler += uint64(*(*TBytef)(unsafe.Pointer(buf)))
  1028. sum2 += adler
  1029. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(1)))))
  1030. sum2 += adler
  1031. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)))))
  1032. sum2 += adler
  1033. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1034. sum2 += adler
  1035. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)))))
  1036. sum2 += adler
  1037. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  1038. sum2 += adler
  1039. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  1040. sum2 += adler
  1041. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1042. sum2 += adler
  1043. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + 8)))
  1044. sum2 += adler
  1045. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(1)))))
  1046. sum2 += adler
  1047. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)))))
  1048. sum2 += adler
  1049. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1050. sum2 += adler
  1051. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)))))
  1052. sum2 += adler
  1053. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  1054. sum2 += adler
  1055. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  1056. sum2 += adler
  1057. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1058. sum2 += adler
  1059. buf += uintptr(16)
  1060. }
  1061. for {
  1062. v5 = len1
  1063. len1--
  1064. if !(v5 != 0) {
  1065. break
  1066. }
  1067. v6 = buf
  1068. buf++
  1069. adler += uint64(*(*TBytef)(unsafe.Pointer(v6)))
  1070. sum2 += adler
  1071. }
  1072. adler %= uint64(65521)
  1073. sum2 %= uint64(65521)
  1074. }
  1075. /* return recombined sums */
  1076. return adler | sum2<<int32(16)
  1077. }
  1078. // C documentation
  1079. //
  1080. // /* ========================================================================= */
  1081. func Xadler32(tls *libc.TLS, adler TuLong, buf uintptr, len1 TuInt) (r TuLong) {
  1082. return Xadler32_z(tls, adler, buf, uint64(len1))
  1083. }
  1084. // C documentation
  1085. //
  1086. // /* ========================================================================= */
  1087. func _adler32_combine_(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff_t) (r TuLong) {
  1088. var rem uint32
  1089. var sum1, sum2 uint64
  1090. _, _, _ = rem, sum1, sum2
  1091. /* for negative len, return invalid adler32 as a clue for debugging */
  1092. if len2 < 0 {
  1093. return uint64(0xffffffff)
  1094. }
  1095. /* the derivation of this formula is left as an exercise for the reader */
  1096. len2 %= libc.Int64FromUint32(65521) /* assumes len2 >= 0 */
  1097. rem = libc.Uint32FromInt64(len2)
  1098. sum1 = adler1 & uint64(0xffff)
  1099. sum2 = uint64(rem) * sum1
  1100. sum2 %= uint64(65521)
  1101. sum1 += adler2&uint64(0xffff) + uint64(65521) - uint64(1)
  1102. sum2 += adler1>>libc.Int32FromInt32(16)&uint64(0xffff) + adler2>>libc.Int32FromInt32(16)&uint64(0xffff) + uint64(65521) - uint64(rem)
  1103. if sum1 >= uint64(65521) {
  1104. sum1 -= uint64(65521)
  1105. }
  1106. if sum1 >= uint64(65521) {
  1107. sum1 -= uint64(65521)
  1108. }
  1109. if sum2 >= libc.Uint64FromUint32(65521)<<libc.Int32FromInt32(1) {
  1110. sum2 -= libc.Uint64FromUint32(65521) << libc.Int32FromInt32(1)
  1111. }
  1112. if sum2 >= uint64(65521) {
  1113. sum2 -= uint64(65521)
  1114. }
  1115. return sum1 | sum2<<int32(16)
  1116. }
  1117. // C documentation
  1118. //
  1119. // /* ========================================================================= */
  1120. func Xadler32_combine(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff_t) (r TuLong) {
  1121. return _adler32_combine_(tls, adler1, adler2, len2)
  1122. }
  1123. func Xadler32_combine64(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff_t) (r TuLong) {
  1124. return _adler32_combine_(tls, adler1, adler2, len2)
  1125. }
  1126. const m_N = 5
  1127. const m_POLY = 3988292384
  1128. /* Reverse the bytes in a 32-bit value */
  1129. /*
  1130. A CRC of a message is computed on N braids of words in the message, where
  1131. each word consists of W bytes (4 or 8). If N is 3, for example, then three
  1132. running sparse CRCs are calculated respectively on each braid, at these
  1133. indices in the array of words: 0, 3, 6, ..., 1, 4, 7, ..., and 2, 5, 8, ...
  1134. This is done starting at a word boundary, and continues until as many blocks
  1135. of N * W bytes as are available have been processed. The results are combined
  1136. into a single CRC at the end. For this code, N must be in the range 1..6 and
  1137. W must be 4 or 8. The upper limit on N can be increased if desired by adding
  1138. more #if blocks, extending the patterns apparent in the code. In addition,
  1139. crc32.h would need to be regenerated, if the maximum N value is increased.
  1140. N and W are chosen empirically by benchmarking the execution time on a given
  1141. processor. The choices for N and W below were based on testing on Intel Kaby
  1142. Lake i7, AMD Ryzen 7, ARM Cortex-A57, Sparc64-VII, PowerPC POWER9, and MIPS64
  1143. Octeon II processors. The Intel, AMD, and ARM processors were all fastest
  1144. with N=5, W=8. The Sparc, PowerPC, and MIPS64 were all fastest at N=5, W=4.
  1145. They were all tested with either gcc or clang, all using the -O3 optimization
  1146. level. Your mileage may vary.
  1147. */
  1148. /* Define N */
  1149. /*
  1150. z_crc_t must be at least 32 bits. z_word_t must be at least as long as
  1151. z_crc_t. It is assumed here that z_word_t is either 32 bits or 64 bits, and
  1152. that bytes are eight bits.
  1153. */
  1154. // C documentation
  1155. //
  1156. // /*
  1157. // Define W and the associated z_word_t type. If W is not defined, then a
  1158. // braided calculation is not used, and the associated tables and code are not
  1159. // compiled.
  1160. // */
  1161. type Tz_word_t = uint32
  1162. /* If available, use the ARM processor CRC32 instruction. */
  1163. // C documentation
  1164. //
  1165. // /*
  1166. // Swap the bytes in a z_word_t to convert between little and big endian. Any
  1167. // self-respecting compiler will optimize this to a single machine byte-swap
  1168. // instruction, if one is available. This assumes that word_t is either 32 bits
  1169. // or 64 bits.
  1170. // */
  1171. func _byte_swap(tls *libc.TLS, word Tz_word_t) (r Tz_word_t) {
  1172. return word&uint32(0xff000000)>>int32(24) | word&uint32(0xff0000)>>int32(8) | word&uint32(0xff00)<<int32(8) | word&uint32(0xff)<<int32(24)
  1173. }
  1174. var _crc_table = [256]Tz_crc_t{
  1175. 1: uint32(0x77073096),
  1176. 2: uint32(0xee0e612c),
  1177. 3: uint32(0x990951ba),
  1178. 4: uint32(0x076dc419),
  1179. 5: uint32(0x706af48f),
  1180. 6: uint32(0xe963a535),
  1181. 7: uint32(0x9e6495a3),
  1182. 8: uint32(0x0edb8832),
  1183. 9: uint32(0x79dcb8a4),
  1184. 10: uint32(0xe0d5e91e),
  1185. 11: uint32(0x97d2d988),
  1186. 12: uint32(0x09b64c2b),
  1187. 13: uint32(0x7eb17cbd),
  1188. 14: uint32(0xe7b82d07),
  1189. 15: uint32(0x90bf1d91),
  1190. 16: uint32(0x1db71064),
  1191. 17: uint32(0x6ab020f2),
  1192. 18: uint32(0xf3b97148),
  1193. 19: uint32(0x84be41de),
  1194. 20: uint32(0x1adad47d),
  1195. 21: uint32(0x6ddde4eb),
  1196. 22: uint32(0xf4d4b551),
  1197. 23: uint32(0x83d385c7),
  1198. 24: uint32(0x136c9856),
  1199. 25: uint32(0x646ba8c0),
  1200. 26: uint32(0xfd62f97a),
  1201. 27: uint32(0x8a65c9ec),
  1202. 28: uint32(0x14015c4f),
  1203. 29: uint32(0x63066cd9),
  1204. 30: uint32(0xfa0f3d63),
  1205. 31: uint32(0x8d080df5),
  1206. 32: uint32(0x3b6e20c8),
  1207. 33: uint32(0x4c69105e),
  1208. 34: uint32(0xd56041e4),
  1209. 35: uint32(0xa2677172),
  1210. 36: uint32(0x3c03e4d1),
  1211. 37: uint32(0x4b04d447),
  1212. 38: uint32(0xd20d85fd),
  1213. 39: uint32(0xa50ab56b),
  1214. 40: uint32(0x35b5a8fa),
  1215. 41: uint32(0x42b2986c),
  1216. 42: uint32(0xdbbbc9d6),
  1217. 43: uint32(0xacbcf940),
  1218. 44: uint32(0x32d86ce3),
  1219. 45: uint32(0x45df5c75),
  1220. 46: uint32(0xdcd60dcf),
  1221. 47: uint32(0xabd13d59),
  1222. 48: uint32(0x26d930ac),
  1223. 49: uint32(0x51de003a),
  1224. 50: uint32(0xc8d75180),
  1225. 51: uint32(0xbfd06116),
  1226. 52: uint32(0x21b4f4b5),
  1227. 53: uint32(0x56b3c423),
  1228. 54: uint32(0xcfba9599),
  1229. 55: uint32(0xb8bda50f),
  1230. 56: uint32(0x2802b89e),
  1231. 57: uint32(0x5f058808),
  1232. 58: uint32(0xc60cd9b2),
  1233. 59: uint32(0xb10be924),
  1234. 60: uint32(0x2f6f7c87),
  1235. 61: uint32(0x58684c11),
  1236. 62: uint32(0xc1611dab),
  1237. 63: uint32(0xb6662d3d),
  1238. 64: uint32(0x76dc4190),
  1239. 65: uint32(0x01db7106),
  1240. 66: uint32(0x98d220bc),
  1241. 67: uint32(0xefd5102a),
  1242. 68: uint32(0x71b18589),
  1243. 69: uint32(0x06b6b51f),
  1244. 70: uint32(0x9fbfe4a5),
  1245. 71: uint32(0xe8b8d433),
  1246. 72: uint32(0x7807c9a2),
  1247. 73: uint32(0x0f00f934),
  1248. 74: uint32(0x9609a88e),
  1249. 75: uint32(0xe10e9818),
  1250. 76: uint32(0x7f6a0dbb),
  1251. 77: uint32(0x086d3d2d),
  1252. 78: uint32(0x91646c97),
  1253. 79: uint32(0xe6635c01),
  1254. 80: uint32(0x6b6b51f4),
  1255. 81: uint32(0x1c6c6162),
  1256. 82: uint32(0x856530d8),
  1257. 83: uint32(0xf262004e),
  1258. 84: uint32(0x6c0695ed),
  1259. 85: uint32(0x1b01a57b),
  1260. 86: uint32(0x8208f4c1),
  1261. 87: uint32(0xf50fc457),
  1262. 88: uint32(0x65b0d9c6),
  1263. 89: uint32(0x12b7e950),
  1264. 90: uint32(0x8bbeb8ea),
  1265. 91: uint32(0xfcb9887c),
  1266. 92: uint32(0x62dd1ddf),
  1267. 93: uint32(0x15da2d49),
  1268. 94: uint32(0x8cd37cf3),
  1269. 95: uint32(0xfbd44c65),
  1270. 96: uint32(0x4db26158),
  1271. 97: uint32(0x3ab551ce),
  1272. 98: uint32(0xa3bc0074),
  1273. 99: uint32(0xd4bb30e2),
  1274. 100: uint32(0x4adfa541),
  1275. 101: uint32(0x3dd895d7),
  1276. 102: uint32(0xa4d1c46d),
  1277. 103: uint32(0xd3d6f4fb),
  1278. 104: uint32(0x4369e96a),
  1279. 105: uint32(0x346ed9fc),
  1280. 106: uint32(0xad678846),
  1281. 107: uint32(0xda60b8d0),
  1282. 108: uint32(0x44042d73),
  1283. 109: uint32(0x33031de5),
  1284. 110: uint32(0xaa0a4c5f),
  1285. 111: uint32(0xdd0d7cc9),
  1286. 112: uint32(0x5005713c),
  1287. 113: uint32(0x270241aa),
  1288. 114: uint32(0xbe0b1010),
  1289. 115: uint32(0xc90c2086),
  1290. 116: uint32(0x5768b525),
  1291. 117: uint32(0x206f85b3),
  1292. 118: uint32(0xb966d409),
  1293. 119: uint32(0xce61e49f),
  1294. 120: uint32(0x5edef90e),
  1295. 121: uint32(0x29d9c998),
  1296. 122: uint32(0xb0d09822),
  1297. 123: uint32(0xc7d7a8b4),
  1298. 124: uint32(0x59b33d17),
  1299. 125: uint32(0x2eb40d81),
  1300. 126: uint32(0xb7bd5c3b),
  1301. 127: uint32(0xc0ba6cad),
  1302. 128: uint32(0xedb88320),
  1303. 129: uint32(0x9abfb3b6),
  1304. 130: uint32(0x03b6e20c),
  1305. 131: uint32(0x74b1d29a),
  1306. 132: uint32(0xead54739),
  1307. 133: uint32(0x9dd277af),
  1308. 134: uint32(0x04db2615),
  1309. 135: uint32(0x73dc1683),
  1310. 136: uint32(0xe3630b12),
  1311. 137: uint32(0x94643b84),
  1312. 138: uint32(0x0d6d6a3e),
  1313. 139: uint32(0x7a6a5aa8),
  1314. 140: uint32(0xe40ecf0b),
  1315. 141: uint32(0x9309ff9d),
  1316. 142: uint32(0x0a00ae27),
  1317. 143: uint32(0x7d079eb1),
  1318. 144: uint32(0xf00f9344),
  1319. 145: uint32(0x8708a3d2),
  1320. 146: uint32(0x1e01f268),
  1321. 147: uint32(0x6906c2fe),
  1322. 148: uint32(0xf762575d),
  1323. 149: uint32(0x806567cb),
  1324. 150: uint32(0x196c3671),
  1325. 151: uint32(0x6e6b06e7),
  1326. 152: uint32(0xfed41b76),
  1327. 153: uint32(0x89d32be0),
  1328. 154: uint32(0x10da7a5a),
  1329. 155: uint32(0x67dd4acc),
  1330. 156: uint32(0xf9b9df6f),
  1331. 157: uint32(0x8ebeeff9),
  1332. 158: uint32(0x17b7be43),
  1333. 159: uint32(0x60b08ed5),
  1334. 160: uint32(0xd6d6a3e8),
  1335. 161: uint32(0xa1d1937e),
  1336. 162: uint32(0x38d8c2c4),
  1337. 163: uint32(0x4fdff252),
  1338. 164: uint32(0xd1bb67f1),
  1339. 165: uint32(0xa6bc5767),
  1340. 166: uint32(0x3fb506dd),
  1341. 167: uint32(0x48b2364b),
  1342. 168: uint32(0xd80d2bda),
  1343. 169: uint32(0xaf0a1b4c),
  1344. 170: uint32(0x36034af6),
  1345. 171: uint32(0x41047a60),
  1346. 172: uint32(0xdf60efc3),
  1347. 173: uint32(0xa867df55),
  1348. 174: uint32(0x316e8eef),
  1349. 175: uint32(0x4669be79),
  1350. 176: uint32(0xcb61b38c),
  1351. 177: uint32(0xbc66831a),
  1352. 178: uint32(0x256fd2a0),
  1353. 179: uint32(0x5268e236),
  1354. 180: uint32(0xcc0c7795),
  1355. 181: uint32(0xbb0b4703),
  1356. 182: uint32(0x220216b9),
  1357. 183: uint32(0x5505262f),
  1358. 184: uint32(0xc5ba3bbe),
  1359. 185: uint32(0xb2bd0b28),
  1360. 186: uint32(0x2bb45a92),
  1361. 187: uint32(0x5cb36a04),
  1362. 188: uint32(0xc2d7ffa7),
  1363. 189: uint32(0xb5d0cf31),
  1364. 190: uint32(0x2cd99e8b),
  1365. 191: uint32(0x5bdeae1d),
  1366. 192: uint32(0x9b64c2b0),
  1367. 193: uint32(0xec63f226),
  1368. 194: uint32(0x756aa39c),
  1369. 195: uint32(0x026d930a),
  1370. 196: uint32(0x9c0906a9),
  1371. 197: uint32(0xeb0e363f),
  1372. 198: uint32(0x72076785),
  1373. 199: uint32(0x05005713),
  1374. 200: uint32(0x95bf4a82),
  1375. 201: uint32(0xe2b87a14),
  1376. 202: uint32(0x7bb12bae),
  1377. 203: uint32(0x0cb61b38),
  1378. 204: uint32(0x92d28e9b),
  1379. 205: uint32(0xe5d5be0d),
  1380. 206: uint32(0x7cdcefb7),
  1381. 207: uint32(0x0bdbdf21),
  1382. 208: uint32(0x86d3d2d4),
  1383. 209: uint32(0xf1d4e242),
  1384. 210: uint32(0x68ddb3f8),
  1385. 211: uint32(0x1fda836e),
  1386. 212: uint32(0x81be16cd),
  1387. 213: uint32(0xf6b9265b),
  1388. 214: uint32(0x6fb077e1),
  1389. 215: uint32(0x18b74777),
  1390. 216: uint32(0x88085ae6),
  1391. 217: uint32(0xff0f6a70),
  1392. 218: uint32(0x66063bca),
  1393. 219: uint32(0x11010b5c),
  1394. 220: uint32(0x8f659eff),
  1395. 221: uint32(0xf862ae69),
  1396. 222: uint32(0x616bffd3),
  1397. 223: uint32(0x166ccf45),
  1398. 224: uint32(0xa00ae278),
  1399. 225: uint32(0xd70dd2ee),
  1400. 226: uint32(0x4e048354),
  1401. 227: uint32(0x3903b3c2),
  1402. 228: uint32(0xa7672661),
  1403. 229: uint32(0xd06016f7),
  1404. 230: uint32(0x4969474d),
  1405. 231: uint32(0x3e6e77db),
  1406. 232: uint32(0xaed16a4a),
  1407. 233: uint32(0xd9d65adc),
  1408. 234: uint32(0x40df0b66),
  1409. 235: uint32(0x37d83bf0),
  1410. 236: uint32(0xa9bcae53),
  1411. 237: uint32(0xdebb9ec5),
  1412. 238: uint32(0x47b2cf7f),
  1413. 239: uint32(0x30b5ffe9),
  1414. 240: uint32(0xbdbdf21c),
  1415. 241: uint32(0xcabac28a),
  1416. 242: uint32(0x53b39330),
  1417. 243: uint32(0x24b4a3a6),
  1418. 244: uint32(0xbad03605),
  1419. 245: uint32(0xcdd70693),
  1420. 246: uint32(0x54de5729),
  1421. 247: uint32(0x23d967bf),
  1422. 248: uint32(0xb3667a2e),
  1423. 249: uint32(0xc4614ab8),
  1424. 250: uint32(0x5d681b02),
  1425. 251: uint32(0x2a6f2b94),
  1426. 252: uint32(0xb40bbe37),
  1427. 253: uint32(0xc30c8ea1),
  1428. 254: uint32(0x5a05df1b),
  1429. 255: uint32(0x2d02ef8d),
  1430. }
  1431. var _crc_big_table = [256]Tz_word_t{
  1432. 1: uint32(0x96300777),
  1433. 2: uint32(0x2c610eee),
  1434. 3: uint32(0xba510999),
  1435. 4: uint32(0x19c46d07),
  1436. 5: uint32(0x8ff46a70),
  1437. 6: uint32(0x35a563e9),
  1438. 7: uint32(0xa395649e),
  1439. 8: uint32(0x3288db0e),
  1440. 9: uint32(0xa4b8dc79),
  1441. 10: uint32(0x1ee9d5e0),
  1442. 11: uint32(0x88d9d297),
  1443. 12: uint32(0x2b4cb609),
  1444. 13: uint32(0xbd7cb17e),
  1445. 14: uint32(0x072db8e7),
  1446. 15: uint32(0x911dbf90),
  1447. 16: uint32(0x6410b71d),
  1448. 17: uint32(0xf220b06a),
  1449. 18: uint32(0x4871b9f3),
  1450. 19: uint32(0xde41be84),
  1451. 20: uint32(0x7dd4da1a),
  1452. 21: uint32(0xebe4dd6d),
  1453. 22: uint32(0x51b5d4f4),
  1454. 23: uint32(0xc785d383),
  1455. 24: uint32(0x56986c13),
  1456. 25: uint32(0xc0a86b64),
  1457. 26: uint32(0x7af962fd),
  1458. 27: uint32(0xecc9658a),
  1459. 28: uint32(0x4f5c0114),
  1460. 29: uint32(0xd96c0663),
  1461. 30: uint32(0x633d0ffa),
  1462. 31: uint32(0xf50d088d),
  1463. 32: uint32(0xc8206e3b),
  1464. 33: uint32(0x5e10694c),
  1465. 34: uint32(0xe44160d5),
  1466. 35: uint32(0x727167a2),
  1467. 36: uint32(0xd1e4033c),
  1468. 37: uint32(0x47d4044b),
  1469. 38: uint32(0xfd850dd2),
  1470. 39: uint32(0x6bb50aa5),
  1471. 40: uint32(0xfaa8b535),
  1472. 41: uint32(0x6c98b242),
  1473. 42: uint32(0xd6c9bbdb),
  1474. 43: uint32(0x40f9bcac),
  1475. 44: uint32(0xe36cd832),
  1476. 45: uint32(0x755cdf45),
  1477. 46: uint32(0xcf0dd6dc),
  1478. 47: uint32(0x593dd1ab),
  1479. 48: uint32(0xac30d926),
  1480. 49: uint32(0x3a00de51),
  1481. 50: uint32(0x8051d7c8),
  1482. 51: uint32(0x1661d0bf),
  1483. 52: uint32(0xb5f4b421),
  1484. 53: uint32(0x23c4b356),
  1485. 54: uint32(0x9995bacf),
  1486. 55: uint32(0x0fa5bdb8),
  1487. 56: uint32(0x9eb80228),
  1488. 57: uint32(0x0888055f),
  1489. 58: uint32(0xb2d90cc6),
  1490. 59: uint32(0x24e90bb1),
  1491. 60: uint32(0x877c6f2f),
  1492. 61: uint32(0x114c6858),
  1493. 62: uint32(0xab1d61c1),
  1494. 63: uint32(0x3d2d66b6),
  1495. 64: uint32(0x9041dc76),
  1496. 65: uint32(0x0671db01),
  1497. 66: uint32(0xbc20d298),
  1498. 67: uint32(0x2a10d5ef),
  1499. 68: uint32(0x8985b171),
  1500. 69: uint32(0x1fb5b606),
  1501. 70: uint32(0xa5e4bf9f),
  1502. 71: uint32(0x33d4b8e8),
  1503. 72: uint32(0xa2c90778),
  1504. 73: uint32(0x34f9000f),
  1505. 74: uint32(0x8ea80996),
  1506. 75: uint32(0x18980ee1),
  1507. 76: uint32(0xbb0d6a7f),
  1508. 77: uint32(0x2d3d6d08),
  1509. 78: uint32(0x976c6491),
  1510. 79: uint32(0x015c63e6),
  1511. 80: uint32(0xf4516b6b),
  1512. 81: uint32(0x62616c1c),
  1513. 82: uint32(0xd8306585),
  1514. 83: uint32(0x4e0062f2),
  1515. 84: uint32(0xed95066c),
  1516. 85: uint32(0x7ba5011b),
  1517. 86: uint32(0xc1f40882),
  1518. 87: uint32(0x57c40ff5),
  1519. 88: uint32(0xc6d9b065),
  1520. 89: uint32(0x50e9b712),
  1521. 90: uint32(0xeab8be8b),
  1522. 91: uint32(0x7c88b9fc),
  1523. 92: uint32(0xdf1ddd62),
  1524. 93: uint32(0x492dda15),
  1525. 94: uint32(0xf37cd38c),
  1526. 95: uint32(0x654cd4fb),
  1527. 96: uint32(0x5861b24d),
  1528. 97: uint32(0xce51b53a),
  1529. 98: uint32(0x7400bca3),
  1530. 99: uint32(0xe230bbd4),
  1531. 100: uint32(0x41a5df4a),
  1532. 101: uint32(0xd795d83d),
  1533. 102: uint32(0x6dc4d1a4),
  1534. 103: uint32(0xfbf4d6d3),
  1535. 104: uint32(0x6ae96943),
  1536. 105: uint32(0xfcd96e34),
  1537. 106: uint32(0x468867ad),
  1538. 107: uint32(0xd0b860da),
  1539. 108: uint32(0x732d0444),
  1540. 109: uint32(0xe51d0333),
  1541. 110: uint32(0x5f4c0aaa),
  1542. 111: uint32(0xc97c0ddd),
  1543. 112: uint32(0x3c710550),
  1544. 113: uint32(0xaa410227),
  1545. 114: uint32(0x10100bbe),
  1546. 115: uint32(0x86200cc9),
  1547. 116: uint32(0x25b56857),
  1548. 117: uint32(0xb3856f20),
  1549. 118: uint32(0x09d466b9),
  1550. 119: uint32(0x9fe461ce),
  1551. 120: uint32(0x0ef9de5e),
  1552. 121: uint32(0x98c9d929),
  1553. 122: uint32(0x2298d0b0),
  1554. 123: uint32(0xb4a8d7c7),
  1555. 124: uint32(0x173db359),
  1556. 125: uint32(0x810db42e),
  1557. 126: uint32(0x3b5cbdb7),
  1558. 127: uint32(0xad6cbac0),
  1559. 128: uint32(0x2083b8ed),
  1560. 129: uint32(0xb6b3bf9a),
  1561. 130: uint32(0x0ce2b603),
  1562. 131: uint32(0x9ad2b174),
  1563. 132: uint32(0x3947d5ea),
  1564. 133: uint32(0xaf77d29d),
  1565. 134: uint32(0x1526db04),
  1566. 135: uint32(0x8316dc73),
  1567. 136: uint32(0x120b63e3),
  1568. 137: uint32(0x843b6494),
  1569. 138: uint32(0x3e6a6d0d),
  1570. 139: uint32(0xa85a6a7a),
  1571. 140: uint32(0x0bcf0ee4),
  1572. 141: uint32(0x9dff0993),
  1573. 142: uint32(0x27ae000a),
  1574. 143: uint32(0xb19e077d),
  1575. 144: uint32(0x44930ff0),
  1576. 145: uint32(0xd2a30887),
  1577. 146: uint32(0x68f2011e),
  1578. 147: uint32(0xfec20669),
  1579. 148: uint32(0x5d5762f7),
  1580. 149: uint32(0xcb676580),
  1581. 150: uint32(0x71366c19),
  1582. 151: uint32(0xe7066b6e),
  1583. 152: uint32(0x761bd4fe),
  1584. 153: uint32(0xe02bd389),
  1585. 154: uint32(0x5a7ada10),
  1586. 155: uint32(0xcc4add67),
  1587. 156: uint32(0x6fdfb9f9),
  1588. 157: uint32(0xf9efbe8e),
  1589. 158: uint32(0x43beb717),
  1590. 159: uint32(0xd58eb060),
  1591. 160: uint32(0xe8a3d6d6),
  1592. 161: uint32(0x7e93d1a1),
  1593. 162: uint32(0xc4c2d838),
  1594. 163: uint32(0x52f2df4f),
  1595. 164: uint32(0xf167bbd1),
  1596. 165: uint32(0x6757bca6),
  1597. 166: uint32(0xdd06b53f),
  1598. 167: uint32(0x4b36b248),
  1599. 168: uint32(0xda2b0dd8),
  1600. 169: uint32(0x4c1b0aaf),
  1601. 170: uint32(0xf64a0336),
  1602. 171: uint32(0x607a0441),
  1603. 172: uint32(0xc3ef60df),
  1604. 173: uint32(0x55df67a8),
  1605. 174: uint32(0xef8e6e31),
  1606. 175: uint32(0x79be6946),
  1607. 176: uint32(0x8cb361cb),
  1608. 177: uint32(0x1a8366bc),
  1609. 178: uint32(0xa0d26f25),
  1610. 179: uint32(0x36e26852),
  1611. 180: uint32(0x95770ccc),
  1612. 181: uint32(0x03470bbb),
  1613. 182: uint32(0xb9160222),
  1614. 183: uint32(0x2f260555),
  1615. 184: uint32(0xbe3bbac5),
  1616. 185: uint32(0x280bbdb2),
  1617. 186: uint32(0x925ab42b),
  1618. 187: uint32(0x046ab35c),
  1619. 188: uint32(0xa7ffd7c2),
  1620. 189: uint32(0x31cfd0b5),
  1621. 190: uint32(0x8b9ed92c),
  1622. 191: uint32(0x1daede5b),
  1623. 192: uint32(0xb0c2649b),
  1624. 193: uint32(0x26f263ec),
  1625. 194: uint32(0x9ca36a75),
  1626. 195: uint32(0x0a936d02),
  1627. 196: uint32(0xa906099c),
  1628. 197: uint32(0x3f360eeb),
  1629. 198: uint32(0x85670772),
  1630. 199: uint32(0x13570005),
  1631. 200: uint32(0x824abf95),
  1632. 201: uint32(0x147ab8e2),
  1633. 202: uint32(0xae2bb17b),
  1634. 203: uint32(0x381bb60c),
  1635. 204: uint32(0x9b8ed292),
  1636. 205: uint32(0x0dbed5e5),
  1637. 206: uint32(0xb7efdc7c),
  1638. 207: uint32(0x21dfdb0b),
  1639. 208: uint32(0xd4d2d386),
  1640. 209: uint32(0x42e2d4f1),
  1641. 210: uint32(0xf8b3dd68),
  1642. 211: uint32(0x6e83da1f),
  1643. 212: uint32(0xcd16be81),
  1644. 213: uint32(0x5b26b9f6),
  1645. 214: uint32(0xe177b06f),
  1646. 215: uint32(0x7747b718),
  1647. 216: uint32(0xe65a0888),
  1648. 217: uint32(0x706a0fff),
  1649. 218: uint32(0xca3b0666),
  1650. 219: uint32(0x5c0b0111),
  1651. 220: uint32(0xff9e658f),
  1652. 221: uint32(0x69ae62f8),
  1653. 222: uint32(0xd3ff6b61),
  1654. 223: uint32(0x45cf6c16),
  1655. 224: uint32(0x78e20aa0),
  1656. 225: uint32(0xeed20dd7),
  1657. 226: uint32(0x5483044e),
  1658. 227: uint32(0xc2b30339),
  1659. 228: uint32(0x612667a7),
  1660. 229: uint32(0xf71660d0),
  1661. 230: uint32(0x4d476949),
  1662. 231: uint32(0xdb776e3e),
  1663. 232: uint32(0x4a6ad1ae),
  1664. 233: uint32(0xdc5ad6d9),
  1665. 234: uint32(0x660bdf40),
  1666. 235: uint32(0xf03bd837),
  1667. 236: uint32(0x53aebca9),
  1668. 237: uint32(0xc59ebbde),
  1669. 238: uint32(0x7fcfb247),
  1670. 239: uint32(0xe9ffb530),
  1671. 240: uint32(0x1cf2bdbd),
  1672. 241: uint32(0x8ac2baca),
  1673. 242: uint32(0x3093b353),
  1674. 243: uint32(0xa6a3b424),
  1675. 244: uint32(0x0536d0ba),
  1676. 245: uint32(0x9306d7cd),
  1677. 246: uint32(0x2957de54),
  1678. 247: uint32(0xbf67d923),
  1679. 248: uint32(0x2e7a66b3),
  1680. 249: uint32(0xb84a61c4),
  1681. 250: uint32(0x021b685d),
  1682. 251: uint32(0x942b6f2a),
  1683. 252: uint32(0x37be0bb4),
  1684. 253: uint32(0xa18e0cc3),
  1685. 254: uint32(0x1bdf055a),
  1686. 255: uint32(0x8def022d),
  1687. }
  1688. var _crc_braid_table = [4][256]Tz_crc_t{
  1689. 0: {
  1690. 1: uint32(0x65673b46),
  1691. 2: uint32(0xcace768c),
  1692. 3: uint32(0xafa94dca),
  1693. 4: uint32(0x4eedeb59),
  1694. 5: uint32(0x2b8ad01f),
  1695. 6: uint32(0x84239dd5),
  1696. 7: uint32(0xe144a693),
  1697. 8: uint32(0x9ddbd6b2),
  1698. 9: uint32(0xf8bcedf4),
  1699. 10: uint32(0x5715a03e),
  1700. 11: uint32(0x32729b78),
  1701. 12: uint32(0xd3363deb),
  1702. 13: uint32(0xb65106ad),
  1703. 14: uint32(0x19f84b67),
  1704. 15: uint32(0x7c9f7021),
  1705. 16: uint32(0xe0c6ab25),
  1706. 17: uint32(0x85a19063),
  1707. 18: uint32(0x2a08dda9),
  1708. 19: uint32(0x4f6fe6ef),
  1709. 20: uint32(0xae2b407c),
  1710. 21: uint32(0xcb4c7b3a),
  1711. 22: uint32(0x64e536f0),
  1712. 23: uint32(0x01820db6),
  1713. 24: uint32(0x7d1d7d97),
  1714. 25: uint32(0x187a46d1),
  1715. 26: uint32(0xb7d30b1b),
  1716. 27: uint32(0xd2b4305d),
  1717. 28: uint32(0x33f096ce),
  1718. 29: uint32(0x5697ad88),
  1719. 30: uint32(0xf93ee042),
  1720. 31: uint32(0x9c59db04),
  1721. 32: uint32(0x1afc500b),
  1722. 33: uint32(0x7f9b6b4d),
  1723. 34: uint32(0xd0322687),
  1724. 35: uint32(0xb5551dc1),
  1725. 36: uint32(0x5411bb52),
  1726. 37: uint32(0x31768014),
  1727. 38: uint32(0x9edfcdde),
  1728. 39: uint32(0xfbb8f698),
  1729. 40: uint32(0x872786b9),
  1730. 41: uint32(0xe240bdff),
  1731. 42: uint32(0x4de9f035),
  1732. 43: uint32(0x288ecb73),
  1733. 44: uint32(0xc9ca6de0),
  1734. 45: uint32(0xacad56a6),
  1735. 46: uint32(0x03041b6c),
  1736. 47: uint32(0x6663202a),
  1737. 48: uint32(0xfa3afb2e),
  1738. 49: uint32(0x9f5dc068),
  1739. 50: uint32(0x30f48da2),
  1740. 51: uint32(0x5593b6e4),
  1741. 52: uint32(0xb4d71077),
  1742. 53: uint32(0xd1b02b31),
  1743. 54: uint32(0x7e1966fb),
  1744. 55: uint32(0x1b7e5dbd),
  1745. 56: uint32(0x67e12d9c),
  1746. 57: uint32(0x028616da),
  1747. 58: uint32(0xad2f5b10),
  1748. 59: uint32(0xc8486056),
  1749. 60: uint32(0x290cc6c5),
  1750. 61: uint32(0x4c6bfd83),
  1751. 62: uint32(0xe3c2b049),
  1752. 63: uint32(0x86a58b0f),
  1753. 64: uint32(0x35f8a016),
  1754. 65: uint32(0x509f9b50),
  1755. 66: uint32(0xff36d69a),
  1756. 67: uint32(0x9a51eddc),
  1757. 68: uint32(0x7b154b4f),
  1758. 69: uint32(0x1e727009),
  1759. 70: uint32(0xb1db3dc3),
  1760. 71: uint32(0xd4bc0685),
  1761. 72: uint32(0xa82376a4),
  1762. 73: uint32(0xcd444de2),
  1763. 74: uint32(0x62ed0028),
  1764. 75: uint32(0x078a3b6e),
  1765. 76: uint32(0xe6ce9dfd),
  1766. 77: uint32(0x83a9a6bb),
  1767. 78: uint32(0x2c00eb71),
  1768. 79: uint32(0x4967d037),
  1769. 80: uint32(0xd53e0b33),
  1770. 81: uint32(0xb0593075),
  1771. 82: uint32(0x1ff07dbf),
  1772. 83: uint32(0x7a9746f9),
  1773. 84: uint32(0x9bd3e06a),
  1774. 85: uint32(0xfeb4db2c),
  1775. 86: uint32(0x511d96e6),
  1776. 87: uint32(0x347aada0),
  1777. 88: uint32(0x48e5dd81),
  1778. 89: uint32(0x2d82e6c7),
  1779. 90: uint32(0x822bab0d),
  1780. 91: uint32(0xe74c904b),
  1781. 92: uint32(0x060836d8),
  1782. 93: uint32(0x636f0d9e),
  1783. 94: uint32(0xccc64054),
  1784. 95: uint32(0xa9a17b12),
  1785. 96: uint32(0x2f04f01d),
  1786. 97: uint32(0x4a63cb5b),
  1787. 98: uint32(0xe5ca8691),
  1788. 99: uint32(0x80adbdd7),
  1789. 100: uint32(0x61e91b44),
  1790. 101: uint32(0x048e2002),
  1791. 102: uint32(0xab276dc8),
  1792. 103: uint32(0xce40568e),
  1793. 104: uint32(0xb2df26af),
  1794. 105: uint32(0xd7b81de9),
  1795. 106: uint32(0x78115023),
  1796. 107: uint32(0x1d766b65),
  1797. 108: uint32(0xfc32cdf6),
  1798. 109: uint32(0x9955f6b0),
  1799. 110: uint32(0x36fcbb7a),
  1800. 111: uint32(0x539b803c),
  1801. 112: uint32(0xcfc25b38),
  1802. 113: uint32(0xaaa5607e),
  1803. 114: uint32(0x050c2db4),
  1804. 115: uint32(0x606b16f2),
  1805. 116: uint32(0x812fb061),
  1806. 117: uint32(0xe4488b27),
  1807. 118: uint32(0x4be1c6ed),
  1808. 119: uint32(0x2e86fdab),
  1809. 120: uint32(0x52198d8a),
  1810. 121: uint32(0x377eb6cc),
  1811. 122: uint32(0x98d7fb06),
  1812. 123: uint32(0xfdb0c040),
  1813. 124: uint32(0x1cf466d3),
  1814. 125: uint32(0x79935d95),
  1815. 126: uint32(0xd63a105f),
  1816. 127: uint32(0xb35d2b19),
  1817. 128: uint32(0x6bf1402c),
  1818. 129: uint32(0x0e967b6a),
  1819. 130: uint32(0xa13f36a0),
  1820. 131: uint32(0xc4580de6),
  1821. 132: uint32(0x251cab75),
  1822. 133: uint32(0x407b9033),
  1823. 134: uint32(0xefd2ddf9),
  1824. 135: uint32(0x8ab5e6bf),
  1825. 136: uint32(0xf62a969e),
  1826. 137: uint32(0x934dadd8),
  1827. 138: uint32(0x3ce4e012),
  1828. 139: uint32(0x5983db54),
  1829. 140: uint32(0xb8c77dc7),
  1830. 141: uint32(0xdda04681),
  1831. 142: uint32(0x72090b4b),
  1832. 143: uint32(0x176e300d),
  1833. 144: uint32(0x8b37eb09),
  1834. 145: uint32(0xee50d04f),
  1835. 146: uint32(0x41f99d85),
  1836. 147: uint32(0x249ea6c3),
  1837. 148: uint32(0xc5da0050),
  1838. 149: uint32(0xa0bd3b16),
  1839. 150: uint32(0x0f1476dc),
  1840. 151: uint32(0x6a734d9a),
  1841. 152: uint32(0x16ec3dbb),
  1842. 153: uint32(0x738b06fd),
  1843. 154: uint32(0xdc224b37),
  1844. 155: uint32(0xb9457071),
  1845. 156: uint32(0x5801d6e2),
  1846. 157: uint32(0x3d66eda4),
  1847. 158: uint32(0x92cfa06e),
  1848. 159: uint32(0xf7a89b28),
  1849. 160: uint32(0x710d1027),
  1850. 161: uint32(0x146a2b61),
  1851. 162: uint32(0xbbc366ab),
  1852. 163: uint32(0xdea45ded),
  1853. 164: uint32(0x3fe0fb7e),
  1854. 165: uint32(0x5a87c038),
  1855. 166: uint32(0xf52e8df2),
  1856. 167: uint32(0x9049b6b4),
  1857. 168: uint32(0xecd6c695),
  1858. 169: uint32(0x89b1fdd3),
  1859. 170: uint32(0x2618b019),
  1860. 171: uint32(0x437f8b5f),
  1861. 172: uint32(0xa23b2dcc),
  1862. 173: uint32(0xc75c168a),
  1863. 174: uint32(0x68f55b40),
  1864. 175: uint32(0x0d926006),
  1865. 176: uint32(0x91cbbb02),
  1866. 177: uint32(0xf4ac8044),
  1867. 178: uint32(0x5b05cd8e),
  1868. 179: uint32(0x3e62f6c8),
  1869. 180: uint32(0xdf26505b),
  1870. 181: uint32(0xba416b1d),
  1871. 182: uint32(0x15e826d7),
  1872. 183: uint32(0x708f1d91),
  1873. 184: uint32(0x0c106db0),
  1874. 185: uint32(0x697756f6),
  1875. 186: uint32(0xc6de1b3c),
  1876. 187: uint32(0xa3b9207a),
  1877. 188: uint32(0x42fd86e9),
  1878. 189: uint32(0x279abdaf),
  1879. 190: uint32(0x8833f065),
  1880. 191: uint32(0xed54cb23),
  1881. 192: uint32(0x5e09e03a),
  1882. 193: uint32(0x3b6edb7c),
  1883. 194: uint32(0x94c796b6),
  1884. 195: uint32(0xf1a0adf0),
  1885. 196: uint32(0x10e40b63),
  1886. 197: uint32(0x75833025),
  1887. 198: uint32(0xda2a7def),
  1888. 199: uint32(0xbf4d46a9),
  1889. 200: uint32(0xc3d23688),
  1890. 201: uint32(0xa6b50dce),
  1891. 202: uint32(0x091c4004),
  1892. 203: uint32(0x6c7b7b42),
  1893. 204: uint32(0x8d3fddd1),
  1894. 205: uint32(0xe858e697),
  1895. 206: uint32(0x47f1ab5d),
  1896. 207: uint32(0x2296901b),
  1897. 208: uint32(0xbecf4b1f),
  1898. 209: uint32(0xdba87059),
  1899. 210: uint32(0x74013d93),
  1900. 211: uint32(0x116606d5),
  1901. 212: uint32(0xf022a046),
  1902. 213: uint32(0x95459b00),
  1903. 214: uint32(0x3aecd6ca),
  1904. 215: uint32(0x5f8bed8c),
  1905. 216: uint32(0x23149dad),
  1906. 217: uint32(0x4673a6eb),
  1907. 218: uint32(0xe9daeb21),
  1908. 219: uint32(0x8cbdd067),
  1909. 220: uint32(0x6df976f4),
  1910. 221: uint32(0x089e4db2),
  1911. 222: uint32(0xa7370078),
  1912. 223: uint32(0xc2503b3e),
  1913. 224: uint32(0x44f5b031),
  1914. 225: uint32(0x21928b77),
  1915. 226: uint32(0x8e3bc6bd),
  1916. 227: uint32(0xeb5cfdfb),
  1917. 228: uint32(0x0a185b68),
  1918. 229: uint32(0x6f7f602e),
  1919. 230: uint32(0xc0d62de4),
  1920. 231: uint32(0xa5b116a2),
  1921. 232: uint32(0xd92e6683),
  1922. 233: uint32(0xbc495dc5),
  1923. 234: uint32(0x13e0100f),
  1924. 235: uint32(0x76872b49),
  1925. 236: uint32(0x97c38dda),
  1926. 237: uint32(0xf2a4b69c),
  1927. 238: uint32(0x5d0dfb56),
  1928. 239: uint32(0x386ac010),
  1929. 240: uint32(0xa4331b14),
  1930. 241: uint32(0xc1542052),
  1931. 242: uint32(0x6efd6d98),
  1932. 243: uint32(0x0b9a56de),
  1933. 244: uint32(0xeadef04d),
  1934. 245: uint32(0x8fb9cb0b),
  1935. 246: uint32(0x201086c1),
  1936. 247: uint32(0x4577bd87),
  1937. 248: uint32(0x39e8cda6),
  1938. 249: uint32(0x5c8ff6e0),
  1939. 250: uint32(0xf326bb2a),
  1940. 251: uint32(0x9641806c),
  1941. 252: uint32(0x770526ff),
  1942. 253: uint32(0x12621db9),
  1943. 254: uint32(0xbdcb5073),
  1944. 255: uint32(0xd8ac6b35),
  1945. },
  1946. 1: {
  1947. 1: uint32(0xd7e28058),
  1948. 2: uint32(0x74b406f1),
  1949. 3: uint32(0xa35686a9),
  1950. 4: uint32(0xe9680de2),
  1951. 5: uint32(0x3e8a8dba),
  1952. 6: uint32(0x9ddc0b13),
  1953. 7: uint32(0x4a3e8b4b),
  1954. 8: uint32(0x09a11d85),
  1955. 9: uint32(0xde439ddd),
  1956. 10: uint32(0x7d151b74),
  1957. 11: uint32(0xaaf79b2c),
  1958. 12: uint32(0xe0c91067),
  1959. 13: uint32(0x372b903f),
  1960. 14: uint32(0x947d1696),
  1961. 15: uint32(0x439f96ce),
  1962. 16: uint32(0x13423b0a),
  1963. 17: uint32(0xc4a0bb52),
  1964. 18: uint32(0x67f63dfb),
  1965. 19: uint32(0xb014bda3),
  1966. 20: uint32(0xfa2a36e8),
  1967. 21: uint32(0x2dc8b6b0),
  1968. 22: uint32(0x8e9e3019),
  1969. 23: uint32(0x597cb041),
  1970. 24: uint32(0x1ae3268f),
  1971. 25: uint32(0xcd01a6d7),
  1972. 26: uint32(0x6e57207e),
  1973. 27: uint32(0xb9b5a026),
  1974. 28: uint32(0xf38b2b6d),
  1975. 29: uint32(0x2469ab35),
  1976. 30: uint32(0x873f2d9c),
  1977. 31: uint32(0x50ddadc4),
  1978. 32: uint32(0x26847614),
  1979. 33: uint32(0xf166f64c),
  1980. 34: uint32(0x523070e5),
  1981. 35: uint32(0x85d2f0bd),
  1982. 36: uint32(0xcfec7bf6),
  1983. 37: uint32(0x180efbae),
  1984. 38: uint32(0xbb587d07),
  1985. 39: uint32(0x6cbafd5f),
  1986. 40: uint32(0x2f256b91),
  1987. 41: uint32(0xf8c7ebc9),
  1988. 42: uint32(0x5b916d60),
  1989. 43: uint32(0x8c73ed38),
  1990. 44: uint32(0xc64d6673),
  1991. 45: uint32(0x11afe62b),
  1992. 46: uint32(0xb2f96082),
  1993. 47: uint32(0x651be0da),
  1994. 48: uint32(0x35c64d1e),
  1995. 49: uint32(0xe224cd46),
  1996. 50: uint32(0x41724bef),
  1997. 51: uint32(0x9690cbb7),
  1998. 52: uint32(0xdcae40fc),
  1999. 53: uint32(0x0b4cc0a4),
  2000. 54: uint32(0xa81a460d),
  2001. 55: uint32(0x7ff8c655),
  2002. 56: uint32(0x3c67509b),
  2003. 57: uint32(0xeb85d0c3),
  2004. 58: uint32(0x48d3566a),
  2005. 59: uint32(0x9f31d632),
  2006. 60: uint32(0xd50f5d79),
  2007. 61: uint32(0x02eddd21),
  2008. 62: uint32(0xa1bb5b88),
  2009. 63: uint32(0x7659dbd0),
  2010. 64: uint32(0x4d08ec28),
  2011. 65: uint32(0x9aea6c70),
  2012. 66: uint32(0x39bcead9),
  2013. 67: uint32(0xee5e6a81),
  2014. 68: uint32(0xa460e1ca),
  2015. 69: uint32(0x73826192),
  2016. 70: uint32(0xd0d4e73b),
  2017. 71: uint32(0x07366763),
  2018. 72: uint32(0x44a9f1ad),
  2019. 73: uint32(0x934b71f5),
  2020. 74: uint32(0x301df75c),
  2021. 75: uint32(0xe7ff7704),
  2022. 76: uint32(0xadc1fc4f),
  2023. 77: uint32(0x7a237c17),
  2024. 78: uint32(0xd975fabe),
  2025. 79: uint32(0x0e977ae6),
  2026. 80: uint32(0x5e4ad722),
  2027. 81: uint32(0x89a8577a),
  2028. 82: uint32(0x2afed1d3),
  2029. 83: uint32(0xfd1c518b),
  2030. 84: uint32(0xb722dac0),
  2031. 85: uint32(0x60c05a98),
  2032. 86: uint32(0xc396dc31),
  2033. 87: uint32(0x14745c69),
  2034. 88: uint32(0x57ebcaa7),
  2035. 89: uint32(0x80094aff),
  2036. 90: uint32(0x235fcc56),
  2037. 91: uint32(0xf4bd4c0e),
  2038. 92: uint32(0xbe83c745),
  2039. 93: uint32(0x6961471d),
  2040. 94: uint32(0xca37c1b4),
  2041. 95: uint32(0x1dd541ec),
  2042. 96: uint32(0x6b8c9a3c),
  2043. 97: uint32(0xbc6e1a64),
  2044. 98: uint32(0x1f389ccd),
  2045. 99: uint32(0xc8da1c95),
  2046. 100: uint32(0x82e497de),
  2047. 101: uint32(0x55061786),
  2048. 102: uint32(0xf650912f),
  2049. 103: uint32(0x21b21177),
  2050. 104: uint32(0x622d87b9),
  2051. 105: uint32(0xb5cf07e1),
  2052. 106: uint32(0x16998148),
  2053. 107: uint32(0xc17b0110),
  2054. 108: uint32(0x8b458a5b),
  2055. 109: uint32(0x5ca70a03),
  2056. 110: uint32(0xfff18caa),
  2057. 111: uint32(0x28130cf2),
  2058. 112: uint32(0x78cea136),
  2059. 113: uint32(0xaf2c216e),
  2060. 114: uint32(0x0c7aa7c7),
  2061. 115: uint32(0xdb98279f),
  2062. 116: uint32(0x91a6acd4),
  2063. 117: uint32(0x46442c8c),
  2064. 118: uint32(0xe512aa25),
  2065. 119: uint32(0x32f02a7d),
  2066. 120: uint32(0x716fbcb3),
  2067. 121: uint32(0xa68d3ceb),
  2068. 122: uint32(0x05dbba42),
  2069. 123: uint32(0xd2393a1a),
  2070. 124: uint32(0x9807b151),
  2071. 125: uint32(0x4fe53109),
  2072. 126: uint32(0xecb3b7a0),
  2073. 127: uint32(0x3b5137f8),
  2074. 128: uint32(0x9a11d850),
  2075. 129: uint32(0x4df35808),
  2076. 130: uint32(0xeea5dea1),
  2077. 131: uint32(0x39475ef9),
  2078. 132: uint32(0x7379d5b2),
  2079. 133: uint32(0xa49b55ea),
  2080. 134: uint32(0x07cdd343),
  2081. 135: uint32(0xd02f531b),
  2082. 136: uint32(0x93b0c5d5),
  2083. 137: uint32(0x4452458d),
  2084. 138: uint32(0xe704c324),
  2085. 139: uint32(0x30e6437c),
  2086. 140: uint32(0x7ad8c837),
  2087. 141: uint32(0xad3a486f),
  2088. 142: uint32(0x0e6ccec6),
  2089. 143: uint32(0xd98e4e9e),
  2090. 144: uint32(0x8953e35a),
  2091. 145: uint32(0x5eb16302),
  2092. 146: uint32(0xfde7e5ab),
  2093. 147: uint32(0x2a0565f3),
  2094. 148: uint32(0x603beeb8),
  2095. 149: uint32(0xb7d96ee0),
  2096. 150: uint32(0x148fe849),
  2097. 151: uint32(0xc36d6811),
  2098. 152: uint32(0x80f2fedf),
  2099. 153: uint32(0x57107e87),
  2100. 154: uint32(0xf446f82e),
  2101. 155: uint32(0x23a47876),
  2102. 156: uint32(0x699af33d),
  2103. 157: uint32(0xbe787365),
  2104. 158: uint32(0x1d2ef5cc),
  2105. 159: uint32(0xcacc7594),
  2106. 160: uint32(0xbc95ae44),
  2107. 161: uint32(0x6b772e1c),
  2108. 162: uint32(0xc821a8b5),
  2109. 163: uint32(0x1fc328ed),
  2110. 164: uint32(0x55fda3a6),
  2111. 165: uint32(0x821f23fe),
  2112. 166: uint32(0x2149a557),
  2113. 167: uint32(0xf6ab250f),
  2114. 168: uint32(0xb534b3c1),
  2115. 169: uint32(0x62d63399),
  2116. 170: uint32(0xc180b530),
  2117. 171: uint32(0x16623568),
  2118. 172: uint32(0x5c5cbe23),
  2119. 173: uint32(0x8bbe3e7b),
  2120. 174: uint32(0x28e8b8d2),
  2121. 175: uint32(0xff0a388a),
  2122. 176: uint32(0xafd7954e),
  2123. 177: uint32(0x78351516),
  2124. 178: uint32(0xdb6393bf),
  2125. 179: uint32(0x0c8113e7),
  2126. 180: uint32(0x46bf98ac),
  2127. 181: uint32(0x915d18f4),
  2128. 182: uint32(0x320b9e5d),
  2129. 183: uint32(0xe5e91e05),
  2130. 184: uint32(0xa67688cb),
  2131. 185: uint32(0x71940893),
  2132. 186: uint32(0xd2c28e3a),
  2133. 187: uint32(0x05200e62),
  2134. 188: uint32(0x4f1e8529),
  2135. 189: uint32(0x98fc0571),
  2136. 190: uint32(0x3baa83d8),
  2137. 191: uint32(0xec480380),
  2138. 192: uint32(0xd7193478),
  2139. 193: uint32(0x00fbb420),
  2140. 194: uint32(0xa3ad3289),
  2141. 195: uint32(0x744fb2d1),
  2142. 196: uint32(0x3e71399a),
  2143. 197: uint32(0xe993b9c2),
  2144. 198: uint32(0x4ac53f6b),
  2145. 199: uint32(0x9d27bf33),
  2146. 200: uint32(0xdeb829fd),
  2147. 201: uint32(0x095aa9a5),
  2148. 202: uint32(0xaa0c2f0c),
  2149. 203: uint32(0x7deeaf54),
  2150. 204: uint32(0x37d0241f),
  2151. 205: uint32(0xe032a447),
  2152. 206: uint32(0x436422ee),
  2153. 207: uint32(0x9486a2b6),
  2154. 208: uint32(0xc45b0f72),
  2155. 209: uint32(0x13b98f2a),
  2156. 210: uint32(0xb0ef0983),
  2157. 211: uint32(0x670d89db),
  2158. 212: uint32(0x2d330290),
  2159. 213: uint32(0xfad182c8),
  2160. 214: uint32(0x59870461),
  2161. 215: uint32(0x8e658439),
  2162. 216: uint32(0xcdfa12f7),
  2163. 217: uint32(0x1a1892af),
  2164. 218: uint32(0xb94e1406),
  2165. 219: uint32(0x6eac945e),
  2166. 220: uint32(0x24921f15),
  2167. 221: uint32(0xf3709f4d),
  2168. 222: uint32(0x502619e4),
  2169. 223: uint32(0x87c499bc),
  2170. 224: uint32(0xf19d426c),
  2171. 225: uint32(0x267fc234),
  2172. 226: uint32(0x8529449d),
  2173. 227: uint32(0x52cbc4c5),
  2174. 228: uint32(0x18f54f8e),
  2175. 229: uint32(0xcf17cfd6),
  2176. 230: uint32(0x6c41497f),
  2177. 231: uint32(0xbba3c927),
  2178. 232: uint32(0xf83c5fe9),
  2179. 233: uint32(0x2fdedfb1),
  2180. 234: uint32(0x8c885918),
  2181. 235: uint32(0x5b6ad940),
  2182. 236: uint32(0x1154520b),
  2183. 237: uint32(0xc6b6d253),
  2184. 238: uint32(0x65e054fa),
  2185. 239: uint32(0xb202d4a2),
  2186. 240: uint32(0xe2df7966),
  2187. 241: uint32(0x353df93e),
  2188. 242: uint32(0x966b7f97),
  2189. 243: uint32(0x4189ffcf),
  2190. 244: uint32(0x0bb77484),
  2191. 245: uint32(0xdc55f4dc),
  2192. 246: uint32(0x7f037275),
  2193. 247: uint32(0xa8e1f22d),
  2194. 248: uint32(0xeb7e64e3),
  2195. 249: uint32(0x3c9ce4bb),
  2196. 250: uint32(0x9fca6212),
  2197. 251: uint32(0x4828e24a),
  2198. 252: uint32(0x02166901),
  2199. 253: uint32(0xd5f4e959),
  2200. 254: uint32(0x76a26ff0),
  2201. 255: uint32(0xa140efa8),
  2202. },
  2203. 2: {
  2204. 1: uint32(0xef52b6e1),
  2205. 2: uint32(0x05d46b83),
  2206. 3: uint32(0xea86dd62),
  2207. 4: uint32(0x0ba8d706),
  2208. 5: uint32(0xe4fa61e7),
  2209. 6: uint32(0x0e7cbc85),
  2210. 7: uint32(0xe12e0a64),
  2211. 8: uint32(0x1751ae0c),
  2212. 9: uint32(0xf80318ed),
  2213. 10: uint32(0x1285c58f),
  2214. 11: uint32(0xfdd7736e),
  2215. 12: uint32(0x1cf9790a),
  2216. 13: uint32(0xf3abcfeb),
  2217. 14: uint32(0x192d1289),
  2218. 15: uint32(0xf67fa468),
  2219. 16: uint32(0x2ea35c18),
  2220. 17: uint32(0xc1f1eaf9),
  2221. 18: uint32(0x2b77379b),
  2222. 19: uint32(0xc425817a),
  2223. 20: uint32(0x250b8b1e),
  2224. 21: uint32(0xca593dff),
  2225. 22: uint32(0x20dfe09d),
  2226. 23: uint32(0xcf8d567c),
  2227. 24: uint32(0x39f2f214),
  2228. 25: uint32(0xd6a044f5),
  2229. 26: uint32(0x3c269997),
  2230. 27: uint32(0xd3742f76),
  2231. 28: uint32(0x325a2512),
  2232. 29: uint32(0xdd0893f3),
  2233. 30: uint32(0x378e4e91),
  2234. 31: uint32(0xd8dcf870),
  2235. 32: uint32(0x5d46b830),
  2236. 33: uint32(0xb2140ed1),
  2237. 34: uint32(0x5892d3b3),
  2238. 35: uint32(0xb7c06552),
  2239. 36: uint32(0x56ee6f36),
  2240. 37: uint32(0xb9bcd9d7),
  2241. 38: uint32(0x533a04b5),
  2242. 39: uint32(0xbc68b254),
  2243. 40: uint32(0x4a17163c),
  2244. 41: uint32(0xa545a0dd),
  2245. 42: uint32(0x4fc37dbf),
  2246. 43: uint32(0xa091cb5e),
  2247. 44: uint32(0x41bfc13a),
  2248. 45: uint32(0xaeed77db),
  2249. 46: uint32(0x446baab9),
  2250. 47: uint32(0xab391c58),
  2251. 48: uint32(0x73e5e428),
  2252. 49: uint32(0x9cb752c9),
  2253. 50: uint32(0x76318fab),
  2254. 51: uint32(0x9963394a),
  2255. 52: uint32(0x784d332e),
  2256. 53: uint32(0x971f85cf),
  2257. 54: uint32(0x7d9958ad),
  2258. 55: uint32(0x92cbee4c),
  2259. 56: uint32(0x64b44a24),
  2260. 57: uint32(0x8be6fcc5),
  2261. 58: uint32(0x616021a7),
  2262. 59: uint32(0x8e329746),
  2263. 60: uint32(0x6f1c9d22),
  2264. 61: uint32(0x804e2bc3),
  2265. 62: uint32(0x6ac8f6a1),
  2266. 63: uint32(0x859a4040),
  2267. 64: uint32(0xba8d7060),
  2268. 65: uint32(0x55dfc681),
  2269. 66: uint32(0xbf591be3),
  2270. 67: uint32(0x500bad02),
  2271. 68: uint32(0xb125a766),
  2272. 69: uint32(0x5e771187),
  2273. 70: uint32(0xb4f1cce5),
  2274. 71: uint32(0x5ba37a04),
  2275. 72: uint32(0xaddcde6c),
  2276. 73: uint32(0x428e688d),
  2277. 74: uint32(0xa808b5ef),
  2278. 75: uint32(0x475a030e),
  2279. 76: uint32(0xa674096a),
  2280. 77: uint32(0x4926bf8b),
  2281. 78: uint32(0xa3a062e9),
  2282. 79: uint32(0x4cf2d408),
  2283. 80: uint32(0x942e2c78),
  2284. 81: uint32(0x7b7c9a99),
  2285. 82: uint32(0x91fa47fb),
  2286. 83: uint32(0x7ea8f11a),
  2287. 84: uint32(0x9f86fb7e),
  2288. 85: uint32(0x70d44d9f),
  2289. 86: uint32(0x9a5290fd),
  2290. 87: uint32(0x7500261c),
  2291. 88: uint32(0x837f8274),
  2292. 89: uint32(0x6c2d3495),
  2293. 90: uint32(0x86abe9f7),
  2294. 91: uint32(0x69f95f16),
  2295. 92: uint32(0x88d75572),
  2296. 93: uint32(0x6785e393),
  2297. 94: uint32(0x8d033ef1),
  2298. 95: uint32(0x62518810),
  2299. 96: uint32(0xe7cbc850),
  2300. 97: uint32(0x08997eb1),
  2301. 98: uint32(0xe21fa3d3),
  2302. 99: uint32(0x0d4d1532),
  2303. 100: uint32(0xec631f56),
  2304. 101: uint32(0x0331a9b7),
  2305. 102: uint32(0xe9b774d5),
  2306. 103: uint32(0x06e5c234),
  2307. 104: uint32(0xf09a665c),
  2308. 105: uint32(0x1fc8d0bd),
  2309. 106: uint32(0xf54e0ddf),
  2310. 107: uint32(0x1a1cbb3e),
  2311. 108: uint32(0xfb32b15a),
  2312. 109: uint32(0x146007bb),
  2313. 110: uint32(0xfee6dad9),
  2314. 111: uint32(0x11b46c38),
  2315. 112: uint32(0xc9689448),
  2316. 113: uint32(0x263a22a9),
  2317. 114: uint32(0xccbcffcb),
  2318. 115: uint32(0x23ee492a),
  2319. 116: uint32(0xc2c0434e),
  2320. 117: uint32(0x2d92f5af),
  2321. 118: uint32(0xc71428cd),
  2322. 119: uint32(0x28469e2c),
  2323. 120: uint32(0xde393a44),
  2324. 121: uint32(0x316b8ca5),
  2325. 122: uint32(0xdbed51c7),
  2326. 123: uint32(0x34bfe726),
  2327. 124: uint32(0xd591ed42),
  2328. 125: uint32(0x3ac35ba3),
  2329. 126: uint32(0xd04586c1),
  2330. 127: uint32(0x3f173020),
  2331. 128: uint32(0xae6be681),
  2332. 129: uint32(0x41395060),
  2333. 130: uint32(0xabbf8d02),
  2334. 131: uint32(0x44ed3be3),
  2335. 132: uint32(0xa5c33187),
  2336. 133: uint32(0x4a918766),
  2337. 134: uint32(0xa0175a04),
  2338. 135: uint32(0x4f45ece5),
  2339. 136: uint32(0xb93a488d),
  2340. 137: uint32(0x5668fe6c),
  2341. 138: uint32(0xbcee230e),
  2342. 139: uint32(0x53bc95ef),
  2343. 140: uint32(0xb2929f8b),
  2344. 141: uint32(0x5dc0296a),
  2345. 142: uint32(0xb746f408),
  2346. 143: uint32(0x581442e9),
  2347. 144: uint32(0x80c8ba99),
  2348. 145: uint32(0x6f9a0c78),
  2349. 146: uint32(0x851cd11a),
  2350. 147: uint32(0x6a4e67fb),
  2351. 148: uint32(0x8b606d9f),
  2352. 149: uint32(0x6432db7e),
  2353. 150: uint32(0x8eb4061c),
  2354. 151: uint32(0x61e6b0fd),
  2355. 152: uint32(0x97991495),
  2356. 153: uint32(0x78cba274),
  2357. 154: uint32(0x924d7f16),
  2358. 155: uint32(0x7d1fc9f7),
  2359. 156: uint32(0x9c31c393),
  2360. 157: uint32(0x73637572),
  2361. 158: uint32(0x99e5a810),
  2362. 159: uint32(0x76b71ef1),
  2363. 160: uint32(0xf32d5eb1),
  2364. 161: uint32(0x1c7fe850),
  2365. 162: uint32(0xf6f93532),
  2366. 163: uint32(0x19ab83d3),
  2367. 164: uint32(0xf88589b7),
  2368. 165: uint32(0x17d73f56),
  2369. 166: uint32(0xfd51e234),
  2370. 167: uint32(0x120354d5),
  2371. 168: uint32(0xe47cf0bd),
  2372. 169: uint32(0x0b2e465c),
  2373. 170: uint32(0xe1a89b3e),
  2374. 171: uint32(0x0efa2ddf),
  2375. 172: uint32(0xefd427bb),
  2376. 173: uint32(0x0086915a),
  2377. 174: uint32(0xea004c38),
  2378. 175: uint32(0x0552fad9),
  2379. 176: uint32(0xdd8e02a9),
  2380. 177: uint32(0x32dcb448),
  2381. 178: uint32(0xd85a692a),
  2382. 179: uint32(0x3708dfcb),
  2383. 180: uint32(0xd626d5af),
  2384. 181: uint32(0x3974634e),
  2385. 182: uint32(0xd3f2be2c),
  2386. 183: uint32(0x3ca008cd),
  2387. 184: uint32(0xcadfaca5),
  2388. 185: uint32(0x258d1a44),
  2389. 186: uint32(0xcf0bc726),
  2390. 187: uint32(0x205971c7),
  2391. 188: uint32(0xc1777ba3),
  2392. 189: uint32(0x2e25cd42),
  2393. 190: uint32(0xc4a31020),
  2394. 191: uint32(0x2bf1a6c1),
  2395. 192: uint32(0x14e696e1),
  2396. 193: uint32(0xfbb42000),
  2397. 194: uint32(0x1132fd62),
  2398. 195: uint32(0xfe604b83),
  2399. 196: uint32(0x1f4e41e7),
  2400. 197: uint32(0xf01cf706),
  2401. 198: uint32(0x1a9a2a64),
  2402. 199: uint32(0xf5c89c85),
  2403. 200: uint32(0x03b738ed),
  2404. 201: uint32(0xece58e0c),
  2405. 202: uint32(0x0663536e),
  2406. 203: uint32(0xe931e58f),
  2407. 204: uint32(0x081fefeb),
  2408. 205: uint32(0xe74d590a),
  2409. 206: uint32(0x0dcb8468),
  2410. 207: uint32(0xe2993289),
  2411. 208: uint32(0x3a45caf9),
  2412. 209: uint32(0xd5177c18),
  2413. 210: uint32(0x3f91a17a),
  2414. 211: uint32(0xd0c3179b),
  2415. 212: uint32(0x31ed1dff),
  2416. 213: uint32(0xdebfab1e),
  2417. 214: uint32(0x3439767c),
  2418. 215: uint32(0xdb6bc09d),
  2419. 216: uint32(0x2d1464f5),
  2420. 217: uint32(0xc246d214),
  2421. 218: uint32(0x28c00f76),
  2422. 219: uint32(0xc792b997),
  2423. 220: uint32(0x26bcb3f3),
  2424. 221: uint32(0xc9ee0512),
  2425. 222: uint32(0x2368d870),
  2426. 223: uint32(0xcc3a6e91),
  2427. 224: uint32(0x49a02ed1),
  2428. 225: uint32(0xa6f29830),
  2429. 226: uint32(0x4c744552),
  2430. 227: uint32(0xa326f3b3),
  2431. 228: uint32(0x4208f9d7),
  2432. 229: uint32(0xad5a4f36),
  2433. 230: uint32(0x47dc9254),
  2434. 231: uint32(0xa88e24b5),
  2435. 232: uint32(0x5ef180dd),
  2436. 233: uint32(0xb1a3363c),
  2437. 234: uint32(0x5b25eb5e),
  2438. 235: uint32(0xb4775dbf),
  2439. 236: uint32(0x555957db),
  2440. 237: uint32(0xba0be13a),
  2441. 238: uint32(0x508d3c58),
  2442. 239: uint32(0xbfdf8ab9),
  2443. 240: uint32(0x670372c9),
  2444. 241: uint32(0x8851c428),
  2445. 242: uint32(0x62d7194a),
  2446. 243: uint32(0x8d85afab),
  2447. 244: uint32(0x6caba5cf),
  2448. 245: uint32(0x83f9132e),
  2449. 246: uint32(0x697fce4c),
  2450. 247: uint32(0x862d78ad),
  2451. 248: uint32(0x7052dcc5),
  2452. 249: uint32(0x9f006a24),
  2453. 250: uint32(0x7586b746),
  2454. 251: uint32(0x9ad401a7),
  2455. 252: uint32(0x7bfa0bc3),
  2456. 253: uint32(0x94a8bd22),
  2457. 254: uint32(0x7e2e6040),
  2458. 255: uint32(0x917cd6a1),
  2459. },
  2460. 3: {
  2461. 1: uint32(0x87a6cb43),
  2462. 2: uint32(0xd43c90c7),
  2463. 3: uint32(0x539a5b84),
  2464. 4: uint32(0x730827cf),
  2465. 5: uint32(0xf4aeec8c),
  2466. 6: uint32(0xa734b708),
  2467. 7: uint32(0x20927c4b),
  2468. 8: uint32(0xe6104f9e),
  2469. 9: uint32(0x61b684dd),
  2470. 10: uint32(0x322cdf59),
  2471. 11: uint32(0xb58a141a),
  2472. 12: uint32(0x95186851),
  2473. 13: uint32(0x12bea312),
  2474. 14: uint32(0x4124f896),
  2475. 15: uint32(0xc68233d5),
  2476. 16: uint32(0x1751997d),
  2477. 17: uint32(0x90f7523e),
  2478. 18: uint32(0xc36d09ba),
  2479. 19: uint32(0x44cbc2f9),
  2480. 20: uint32(0x6459beb2),
  2481. 21: uint32(0xe3ff75f1),
  2482. 22: uint32(0xb0652e75),
  2483. 23: uint32(0x37c3e536),
  2484. 24: uint32(0xf141d6e3),
  2485. 25: uint32(0x76e71da0),
  2486. 26: uint32(0x257d4624),
  2487. 27: uint32(0xa2db8d67),
  2488. 28: uint32(0x8249f12c),
  2489. 29: uint32(0x05ef3a6f),
  2490. 30: uint32(0x567561eb),
  2491. 31: uint32(0xd1d3aaa8),
  2492. 32: uint32(0x2ea332fa),
  2493. 33: uint32(0xa905f9b9),
  2494. 34: uint32(0xfa9fa23d),
  2495. 35: uint32(0x7d39697e),
  2496. 36: uint32(0x5dab1535),
  2497. 37: uint32(0xda0dde76),
  2498. 38: uint32(0x899785f2),
  2499. 39: uint32(0x0e314eb1),
  2500. 40: uint32(0xc8b37d64),
  2501. 41: uint32(0x4f15b627),
  2502. 42: uint32(0x1c8feda3),
  2503. 43: uint32(0x9b2926e0),
  2504. 44: uint32(0xbbbb5aab),
  2505. 45: uint32(0x3c1d91e8),
  2506. 46: uint32(0x6f87ca6c),
  2507. 47: uint32(0xe821012f),
  2508. 48: uint32(0x39f2ab87),
  2509. 49: uint32(0xbe5460c4),
  2510. 50: uint32(0xedce3b40),
  2511. 51: uint32(0x6a68f003),
  2512. 52: uint32(0x4afa8c48),
  2513. 53: uint32(0xcd5c470b),
  2514. 54: uint32(0x9ec61c8f),
  2515. 55: uint32(0x1960d7cc),
  2516. 56: uint32(0xdfe2e419),
  2517. 57: uint32(0x58442f5a),
  2518. 58: uint32(0x0bde74de),
  2519. 59: uint32(0x8c78bf9d),
  2520. 60: uint32(0xaceac3d6),
  2521. 61: uint32(0x2b4c0895),
  2522. 62: uint32(0x78d65311),
  2523. 63: uint32(0xff709852),
  2524. 64: uint32(0x5d4665f4),
  2525. 65: uint32(0xdae0aeb7),
  2526. 66: uint32(0x897af533),
  2527. 67: uint32(0x0edc3e70),
  2528. 68: uint32(0x2e4e423b),
  2529. 69: uint32(0xa9e88978),
  2530. 70: uint32(0xfa72d2fc),
  2531. 71: uint32(0x7dd419bf),
  2532. 72: uint32(0xbb562a6a),
  2533. 73: uint32(0x3cf0e129),
  2534. 74: uint32(0x6f6abaad),
  2535. 75: uint32(0xe8cc71ee),
  2536. 76: uint32(0xc85e0da5),
  2537. 77: uint32(0x4ff8c6e6),
  2538. 78: uint32(0x1c629d62),
  2539. 79: uint32(0x9bc45621),
  2540. 80: uint32(0x4a17fc89),
  2541. 81: uint32(0xcdb137ca),
  2542. 82: uint32(0x9e2b6c4e),
  2543. 83: uint32(0x198da70d),
  2544. 84: uint32(0x391fdb46),
  2545. 85: uint32(0xbeb91005),
  2546. 86: uint32(0xed234b81),
  2547. 87: uint32(0x6a8580c2),
  2548. 88: uint32(0xac07b317),
  2549. 89: uint32(0x2ba17854),
  2550. 90: uint32(0x783b23d0),
  2551. 91: uint32(0xff9de893),
  2552. 92: uint32(0xdf0f94d8),
  2553. 93: uint32(0x58a95f9b),
  2554. 94: uint32(0x0b33041f),
  2555. 95: uint32(0x8c95cf5c),
  2556. 96: uint32(0x73e5570e),
  2557. 97: uint32(0xf4439c4d),
  2558. 98: uint32(0xa7d9c7c9),
  2559. 99: uint32(0x207f0c8a),
  2560. 100: uint32(0x00ed70c1),
  2561. 101: uint32(0x874bbb82),
  2562. 102: uint32(0xd4d1e006),
  2563. 103: uint32(0x53772b45),
  2564. 104: uint32(0x95f51890),
  2565. 105: uint32(0x1253d3d3),
  2566. 106: uint32(0x41c98857),
  2567. 107: uint32(0xc66f4314),
  2568. 108: uint32(0xe6fd3f5f),
  2569. 109: uint32(0x615bf41c),
  2570. 110: uint32(0x32c1af98),
  2571. 111: uint32(0xb56764db),
  2572. 112: uint32(0x64b4ce73),
  2573. 113: uint32(0xe3120530),
  2574. 114: uint32(0xb0885eb4),
  2575. 115: uint32(0x372e95f7),
  2576. 116: uint32(0x17bce9bc),
  2577. 117: uint32(0x901a22ff),
  2578. 118: uint32(0xc380797b),
  2579. 119: uint32(0x4426b238),
  2580. 120: uint32(0x82a481ed),
  2581. 121: uint32(0x05024aae),
  2582. 122: uint32(0x5698112a),
  2583. 123: uint32(0xd13eda69),
  2584. 124: uint32(0xf1aca622),
  2585. 125: uint32(0x760a6d61),
  2586. 126: uint32(0x259036e5),
  2587. 127: uint32(0xa236fda6),
  2588. 128: uint32(0xba8ccbe8),
  2589. 129: uint32(0x3d2a00ab),
  2590. 130: uint32(0x6eb05b2f),
  2591. 131: uint32(0xe916906c),
  2592. 132: uint32(0xc984ec27),
  2593. 133: uint32(0x4e222764),
  2594. 134: uint32(0x1db87ce0),
  2595. 135: uint32(0x9a1eb7a3),
  2596. 136: uint32(0x5c9c8476),
  2597. 137: uint32(0xdb3a4f35),
  2598. 138: uint32(0x88a014b1),
  2599. 139: uint32(0x0f06dff2),
  2600. 140: uint32(0x2f94a3b9),
  2601. 141: uint32(0xa83268fa),
  2602. 142: uint32(0xfba8337e),
  2603. 143: uint32(0x7c0ef83d),
  2604. 144: uint32(0xaddd5295),
  2605. 145: uint32(0x2a7b99d6),
  2606. 146: uint32(0x79e1c252),
  2607. 147: uint32(0xfe470911),
  2608. 148: uint32(0xded5755a),
  2609. 149: uint32(0x5973be19),
  2610. 150: uint32(0x0ae9e59d),
  2611. 151: uint32(0x8d4f2ede),
  2612. 152: uint32(0x4bcd1d0b),
  2613. 153: uint32(0xcc6bd648),
  2614. 154: uint32(0x9ff18dcc),
  2615. 155: uint32(0x1857468f),
  2616. 156: uint32(0x38c53ac4),
  2617. 157: uint32(0xbf63f187),
  2618. 158: uint32(0xecf9aa03),
  2619. 159: uint32(0x6b5f6140),
  2620. 160: uint32(0x942ff912),
  2621. 161: uint32(0x13893251),
  2622. 162: uint32(0x401369d5),
  2623. 163: uint32(0xc7b5a296),
  2624. 164: uint32(0xe727dedd),
  2625. 165: uint32(0x6081159e),
  2626. 166: uint32(0x331b4e1a),
  2627. 167: uint32(0xb4bd8559),
  2628. 168: uint32(0x723fb68c),
  2629. 169: uint32(0xf5997dcf),
  2630. 170: uint32(0xa603264b),
  2631. 171: uint32(0x21a5ed08),
  2632. 172: uint32(0x01379143),
  2633. 173: uint32(0x86915a00),
  2634. 174: uint32(0xd50b0184),
  2635. 175: uint32(0x52adcac7),
  2636. 176: uint32(0x837e606f),
  2637. 177: uint32(0x04d8ab2c),
  2638. 178: uint32(0x5742f0a8),
  2639. 179: uint32(0xd0e43beb),
  2640. 180: uint32(0xf07647a0),
  2641. 181: uint32(0x77d08ce3),
  2642. 182: uint32(0x244ad767),
  2643. 183: uint32(0xa3ec1c24),
  2644. 184: uint32(0x656e2ff1),
  2645. 185: uint32(0xe2c8e4b2),
  2646. 186: uint32(0xb152bf36),
  2647. 187: uint32(0x36f47475),
  2648. 188: uint32(0x1666083e),
  2649. 189: uint32(0x91c0c37d),
  2650. 190: uint32(0xc25a98f9),
  2651. 191: uint32(0x45fc53ba),
  2652. 192: uint32(0xe7caae1c),
  2653. 193: uint32(0x606c655f),
  2654. 194: uint32(0x33f63edb),
  2655. 195: uint32(0xb450f598),
  2656. 196: uint32(0x94c289d3),
  2657. 197: uint32(0x13644290),
  2658. 198: uint32(0x40fe1914),
  2659. 199: uint32(0xc758d257),
  2660. 200: uint32(0x01dae182),
  2661. 201: uint32(0x867c2ac1),
  2662. 202: uint32(0xd5e67145),
  2663. 203: uint32(0x5240ba06),
  2664. 204: uint32(0x72d2c64d),
  2665. 205: uint32(0xf5740d0e),
  2666. 206: uint32(0xa6ee568a),
  2667. 207: uint32(0x21489dc9),
  2668. 208: uint32(0xf09b3761),
  2669. 209: uint32(0x773dfc22),
  2670. 210: uint32(0x24a7a7a6),
  2671. 211: uint32(0xa3016ce5),
  2672. 212: uint32(0x839310ae),
  2673. 213: uint32(0x0435dbed),
  2674. 214: uint32(0x57af8069),
  2675. 215: uint32(0xd0094b2a),
  2676. 216: uint32(0x168b78ff),
  2677. 217: uint32(0x912db3bc),
  2678. 218: uint32(0xc2b7e838),
  2679. 219: uint32(0x4511237b),
  2680. 220: uint32(0x65835f30),
  2681. 221: uint32(0xe2259473),
  2682. 222: uint32(0xb1bfcff7),
  2683. 223: uint32(0x361904b4),
  2684. 224: uint32(0xc9699ce6),
  2685. 225: uint32(0x4ecf57a5),
  2686. 226: uint32(0x1d550c21),
  2687. 227: uint32(0x9af3c762),
  2688. 228: uint32(0xba61bb29),
  2689. 229: uint32(0x3dc7706a),
  2690. 230: uint32(0x6e5d2bee),
  2691. 231: uint32(0xe9fbe0ad),
  2692. 232: uint32(0x2f79d378),
  2693. 233: uint32(0xa8df183b),
  2694. 234: uint32(0xfb4543bf),
  2695. 235: uint32(0x7ce388fc),
  2696. 236: uint32(0x5c71f4b7),
  2697. 237: uint32(0xdbd73ff4),
  2698. 238: uint32(0x884d6470),
  2699. 239: uint32(0x0febaf33),
  2700. 240: uint32(0xde38059b),
  2701. 241: uint32(0x599eced8),
  2702. 242: uint32(0x0a04955c),
  2703. 243: uint32(0x8da25e1f),
  2704. 244: uint32(0xad302254),
  2705. 245: uint32(0x2a96e917),
  2706. 246: uint32(0x790cb293),
  2707. 247: uint32(0xfeaa79d0),
  2708. 248: uint32(0x38284a05),
  2709. 249: uint32(0xbf8e8146),
  2710. 250: uint32(0xec14dac2),
  2711. 251: uint32(0x6bb21181),
  2712. 252: uint32(0x4b206dca),
  2713. 253: uint32(0xcc86a689),
  2714. 254: uint32(0x9f1cfd0d),
  2715. 255: uint32(0x18ba364e),
  2716. },
  2717. }
  2718. var _crc_braid_big_table = [4][256]Tz_word_t{
  2719. 0: {
  2720. 1: uint32(0x43cba687),
  2721. 2: uint32(0xc7903cd4),
  2722. 3: uint32(0x845b9a53),
  2723. 4: uint32(0xcf270873),
  2724. 5: uint32(0x8cecaef4),
  2725. 6: uint32(0x08b734a7),
  2726. 7: uint32(0x4b7c9220),
  2727. 8: uint32(0x9e4f10e6),
  2728. 9: uint32(0xdd84b661),
  2729. 10: uint32(0x59df2c32),
  2730. 11: uint32(0x1a148ab5),
  2731. 12: uint32(0x51681895),
  2732. 13: uint32(0x12a3be12),
  2733. 14: uint32(0x96f82441),
  2734. 15: uint32(0xd53382c6),
  2735. 16: uint32(0x7d995117),
  2736. 17: uint32(0x3e52f790),
  2737. 18: uint32(0xba096dc3),
  2738. 19: uint32(0xf9c2cb44),
  2739. 20: uint32(0xb2be5964),
  2740. 21: uint32(0xf175ffe3),
  2741. 22: uint32(0x752e65b0),
  2742. 23: uint32(0x36e5c337),
  2743. 24: uint32(0xe3d641f1),
  2744. 25: uint32(0xa01de776),
  2745. 26: uint32(0x24467d25),
  2746. 27: uint32(0x678ddba2),
  2747. 28: uint32(0x2cf14982),
  2748. 29: uint32(0x6f3aef05),
  2749. 30: uint32(0xeb617556),
  2750. 31: uint32(0xa8aad3d1),
  2751. 32: uint32(0xfa32a32e),
  2752. 33: uint32(0xb9f905a9),
  2753. 34: uint32(0x3da29ffa),
  2754. 35: uint32(0x7e69397d),
  2755. 36: uint32(0x3515ab5d),
  2756. 37: uint32(0x76de0dda),
  2757. 38: uint32(0xf2859789),
  2758. 39: uint32(0xb14e310e),
  2759. 40: uint32(0x647db3c8),
  2760. 41: uint32(0x27b6154f),
  2761. 42: uint32(0xa3ed8f1c),
  2762. 43: uint32(0xe026299b),
  2763. 44: uint32(0xab5abbbb),
  2764. 45: uint32(0xe8911d3c),
  2765. 46: uint32(0x6cca876f),
  2766. 47: uint32(0x2f0121e8),
  2767. 48: uint32(0x87abf239),
  2768. 49: uint32(0xc46054be),
  2769. 50: uint32(0x403bceed),
  2770. 51: uint32(0x03f0686a),
  2771. 52: uint32(0x488cfa4a),
  2772. 53: uint32(0x0b475ccd),
  2773. 54: uint32(0x8f1cc69e),
  2774. 55: uint32(0xccd76019),
  2775. 56: uint32(0x19e4e2df),
  2776. 57: uint32(0x5a2f4458),
  2777. 58: uint32(0xde74de0b),
  2778. 59: uint32(0x9dbf788c),
  2779. 60: uint32(0xd6c3eaac),
  2780. 61: uint32(0x95084c2b),
  2781. 62: uint32(0x1153d678),
  2782. 63: uint32(0x529870ff),
  2783. 64: uint32(0xf465465d),
  2784. 65: uint32(0xb7aee0da),
  2785. 66: uint32(0x33f57a89),
  2786. 67: uint32(0x703edc0e),
  2787. 68: uint32(0x3b424e2e),
  2788. 69: uint32(0x7889e8a9),
  2789. 70: uint32(0xfcd272fa),
  2790. 71: uint32(0xbf19d47d),
  2791. 72: uint32(0x6a2a56bb),
  2792. 73: uint32(0x29e1f03c),
  2793. 74: uint32(0xadba6a6f),
  2794. 75: uint32(0xee71cce8),
  2795. 76: uint32(0xa50d5ec8),
  2796. 77: uint32(0xe6c6f84f),
  2797. 78: uint32(0x629d621c),
  2798. 79: uint32(0x2156c49b),
  2799. 80: uint32(0x89fc174a),
  2800. 81: uint32(0xca37b1cd),
  2801. 82: uint32(0x4e6c2b9e),
  2802. 83: uint32(0x0da78d19),
  2803. 84: uint32(0x46db1f39),
  2804. 85: uint32(0x0510b9be),
  2805. 86: uint32(0x814b23ed),
  2806. 87: uint32(0xc280856a),
  2807. 88: uint32(0x17b307ac),
  2808. 89: uint32(0x5478a12b),
  2809. 90: uint32(0xd0233b78),
  2810. 91: uint32(0x93e89dff),
  2811. 92: uint32(0xd8940fdf),
  2812. 93: uint32(0x9b5fa958),
  2813. 94: uint32(0x1f04330b),
  2814. 95: uint32(0x5ccf958c),
  2815. 96: uint32(0x0e57e573),
  2816. 97: uint32(0x4d9c43f4),
  2817. 98: uint32(0xc9c7d9a7),
  2818. 99: uint32(0x8a0c7f20),
  2819. 100: uint32(0xc170ed00),
  2820. 101: uint32(0x82bb4b87),
  2821. 102: uint32(0x06e0d1d4),
  2822. 103: uint32(0x452b7753),
  2823. 104: uint32(0x9018f595),
  2824. 105: uint32(0xd3d35312),
  2825. 106: uint32(0x5788c941),
  2826. 107: uint32(0x14436fc6),
  2827. 108: uint32(0x5f3ffde6),
  2828. 109: uint32(0x1cf45b61),
  2829. 110: uint32(0x98afc132),
  2830. 111: uint32(0xdb6467b5),
  2831. 112: uint32(0x73ceb464),
  2832. 113: uint32(0x300512e3),
  2833. 114: uint32(0xb45e88b0),
  2834. 115: uint32(0xf7952e37),
  2835. 116: uint32(0xbce9bc17),
  2836. 117: uint32(0xff221a90),
  2837. 118: uint32(0x7b7980c3),
  2838. 119: uint32(0x38b22644),
  2839. 120: uint32(0xed81a482),
  2840. 121: uint32(0xae4a0205),
  2841. 122: uint32(0x2a119856),
  2842. 123: uint32(0x69da3ed1),
  2843. 124: uint32(0x22a6acf1),
  2844. 125: uint32(0x616d0a76),
  2845. 126: uint32(0xe5369025),
  2846. 127: uint32(0xa6fd36a2),
  2847. 128: uint32(0xe8cb8cba),
  2848. 129: uint32(0xab002a3d),
  2849. 130: uint32(0x2f5bb06e),
  2850. 131: uint32(0x6c9016e9),
  2851. 132: uint32(0x27ec84c9),
  2852. 133: uint32(0x6427224e),
  2853. 134: uint32(0xe07cb81d),
  2854. 135: uint32(0xa3b71e9a),
  2855. 136: uint32(0x76849c5c),
  2856. 137: uint32(0x354f3adb),
  2857. 138: uint32(0xb114a088),
  2858. 139: uint32(0xf2df060f),
  2859. 140: uint32(0xb9a3942f),
  2860. 141: uint32(0xfa6832a8),
  2861. 142: uint32(0x7e33a8fb),
  2862. 143: uint32(0x3df80e7c),
  2863. 144: uint32(0x9552ddad),
  2864. 145: uint32(0xd6997b2a),
  2865. 146: uint32(0x52c2e179),
  2866. 147: uint32(0x110947fe),
  2867. 148: uint32(0x5a75d5de),
  2868. 149: uint32(0x19be7359),
  2869. 150: uint32(0x9de5e90a),
  2870. 151: uint32(0xde2e4f8d),
  2871. 152: uint32(0x0b1dcd4b),
  2872. 153: uint32(0x48d66bcc),
  2873. 154: uint32(0xcc8df19f),
  2874. 155: uint32(0x8f465718),
  2875. 156: uint32(0xc43ac538),
  2876. 157: uint32(0x87f163bf),
  2877. 158: uint32(0x03aaf9ec),
  2878. 159: uint32(0x40615f6b),
  2879. 160: uint32(0x12f92f94),
  2880. 161: uint32(0x51328913),
  2881. 162: uint32(0xd5691340),
  2882. 163: uint32(0x96a2b5c7),
  2883. 164: uint32(0xddde27e7),
  2884. 165: uint32(0x9e158160),
  2885. 166: uint32(0x1a4e1b33),
  2886. 167: uint32(0x5985bdb4),
  2887. 168: uint32(0x8cb63f72),
  2888. 169: uint32(0xcf7d99f5),
  2889. 170: uint32(0x4b2603a6),
  2890. 171: uint32(0x08eda521),
  2891. 172: uint32(0x43913701),
  2892. 173: uint32(0x005a9186),
  2893. 174: uint32(0x84010bd5),
  2894. 175: uint32(0xc7caad52),
  2895. 176: uint32(0x6f607e83),
  2896. 177: uint32(0x2cabd804),
  2897. 178: uint32(0xa8f04257),
  2898. 179: uint32(0xeb3be4d0),
  2899. 180: uint32(0xa04776f0),
  2900. 181: uint32(0xe38cd077),
  2901. 182: uint32(0x67d74a24),
  2902. 183: uint32(0x241ceca3),
  2903. 184: uint32(0xf12f6e65),
  2904. 185: uint32(0xb2e4c8e2),
  2905. 186: uint32(0x36bf52b1),
  2906. 187: uint32(0x7574f436),
  2907. 188: uint32(0x3e086616),
  2908. 189: uint32(0x7dc3c091),
  2909. 190: uint32(0xf9985ac2),
  2910. 191: uint32(0xba53fc45),
  2911. 192: uint32(0x1caecae7),
  2912. 193: uint32(0x5f656c60),
  2913. 194: uint32(0xdb3ef633),
  2914. 195: uint32(0x98f550b4),
  2915. 196: uint32(0xd389c294),
  2916. 197: uint32(0x90426413),
  2917. 198: uint32(0x1419fe40),
  2918. 199: uint32(0x57d258c7),
  2919. 200: uint32(0x82e1da01),
  2920. 201: uint32(0xc12a7c86),
  2921. 202: uint32(0x4571e6d5),
  2922. 203: uint32(0x06ba4052),
  2923. 204: uint32(0x4dc6d272),
  2924. 205: uint32(0x0e0d74f5),
  2925. 206: uint32(0x8a56eea6),
  2926. 207: uint32(0xc99d4821),
  2927. 208: uint32(0x61379bf0),
  2928. 209: uint32(0x22fc3d77),
  2929. 210: uint32(0xa6a7a724),
  2930. 211: uint32(0xe56c01a3),
  2931. 212: uint32(0xae109383),
  2932. 213: uint32(0xeddb3504),
  2933. 214: uint32(0x6980af57),
  2934. 215: uint32(0x2a4b09d0),
  2935. 216: uint32(0xff788b16),
  2936. 217: uint32(0xbcb32d91),
  2937. 218: uint32(0x38e8b7c2),
  2938. 219: uint32(0x7b231145),
  2939. 220: uint32(0x305f8365),
  2940. 221: uint32(0x739425e2),
  2941. 222: uint32(0xf7cfbfb1),
  2942. 223: uint32(0xb4041936),
  2943. 224: uint32(0xe69c69c9),
  2944. 225: uint32(0xa557cf4e),
  2945. 226: uint32(0x210c551d),
  2946. 227: uint32(0x62c7f39a),
  2947. 228: uint32(0x29bb61ba),
  2948. 229: uint32(0x6a70c73d),
  2949. 230: uint32(0xee2b5d6e),
  2950. 231: uint32(0xade0fbe9),
  2951. 232: uint32(0x78d3792f),
  2952. 233: uint32(0x3b18dfa8),
  2953. 234: uint32(0xbf4345fb),
  2954. 235: uint32(0xfc88e37c),
  2955. 236: uint32(0xb7f4715c),
  2956. 237: uint32(0xf43fd7db),
  2957. 238: uint32(0x70644d88),
  2958. 239: uint32(0x33afeb0f),
  2959. 240: uint32(0x9b0538de),
  2960. 241: uint32(0xd8ce9e59),
  2961. 242: uint32(0x5c95040a),
  2962. 243: uint32(0x1f5ea28d),
  2963. 244: uint32(0x542230ad),
  2964. 245: uint32(0x17e9962a),
  2965. 246: uint32(0x93b20c79),
  2966. 247: uint32(0xd079aafe),
  2967. 248: uint32(0x054a2838),
  2968. 249: uint32(0x46818ebf),
  2969. 250: uint32(0xc2da14ec),
  2970. 251: uint32(0x8111b26b),
  2971. 252: uint32(0xca6d204b),
  2972. 253: uint32(0x89a686cc),
  2973. 254: uint32(0x0dfd1c9f),
  2974. 255: uint32(0x4e36ba18),
  2975. },
  2976. 1: {
  2977. 1: uint32(0xe1b652ef),
  2978. 2: uint32(0x836bd405),
  2979. 3: uint32(0x62dd86ea),
  2980. 4: uint32(0x06d7a80b),
  2981. 5: uint32(0xe761fae4),
  2982. 6: uint32(0x85bc7c0e),
  2983. 7: uint32(0x640a2ee1),
  2984. 8: uint32(0x0cae5117),
  2985. 9: uint32(0xed1803f8),
  2986. 10: uint32(0x8fc58512),
  2987. 11: uint32(0x6e73d7fd),
  2988. 12: uint32(0x0a79f91c),
  2989. 13: uint32(0xebcfabf3),
  2990. 14: uint32(0x89122d19),
  2991. 15: uint32(0x68a47ff6),
  2992. 16: uint32(0x185ca32e),
  2993. 17: uint32(0xf9eaf1c1),
  2994. 18: uint32(0x9b37772b),
  2995. 19: uint32(0x7a8125c4),
  2996. 20: uint32(0x1e8b0b25),
  2997. 21: uint32(0xff3d59ca),
  2998. 22: uint32(0x9de0df20),
  2999. 23: uint32(0x7c568dcf),
  3000. 24: uint32(0x14f2f239),
  3001. 25: uint32(0xf544a0d6),
  3002. 26: uint32(0x9799263c),
  3003. 27: uint32(0x762f74d3),
  3004. 28: uint32(0x12255a32),
  3005. 29: uint32(0xf39308dd),
  3006. 30: uint32(0x914e8e37),
  3007. 31: uint32(0x70f8dcd8),
  3008. 32: uint32(0x30b8465d),
  3009. 33: uint32(0xd10e14b2),
  3010. 34: uint32(0xb3d39258),
  3011. 35: uint32(0x5265c0b7),
  3012. 36: uint32(0x366fee56),
  3013. 37: uint32(0xd7d9bcb9),
  3014. 38: uint32(0xb5043a53),
  3015. 39: uint32(0x54b268bc),
  3016. 40: uint32(0x3c16174a),
  3017. 41: uint32(0xdda045a5),
  3018. 42: uint32(0xbf7dc34f),
  3019. 43: uint32(0x5ecb91a0),
  3020. 44: uint32(0x3ac1bf41),
  3021. 45: uint32(0xdb77edae),
  3022. 46: uint32(0xb9aa6b44),
  3023. 47: uint32(0x581c39ab),
  3024. 48: uint32(0x28e4e573),
  3025. 49: uint32(0xc952b79c),
  3026. 50: uint32(0xab8f3176),
  3027. 51: uint32(0x4a396399),
  3028. 52: uint32(0x2e334d78),
  3029. 53: uint32(0xcf851f97),
  3030. 54: uint32(0xad58997d),
  3031. 55: uint32(0x4ceecb92),
  3032. 56: uint32(0x244ab464),
  3033. 57: uint32(0xc5fce68b),
  3034. 58: uint32(0xa7216061),
  3035. 59: uint32(0x4697328e),
  3036. 60: uint32(0x229d1c6f),
  3037. 61: uint32(0xc32b4e80),
  3038. 62: uint32(0xa1f6c86a),
  3039. 63: uint32(0x40409a85),
  3040. 64: uint32(0x60708dba),
  3041. 65: uint32(0x81c6df55),
  3042. 66: uint32(0xe31b59bf),
  3043. 67: uint32(0x02ad0b50),
  3044. 68: uint32(0x66a725b1),
  3045. 69: uint32(0x8711775e),
  3046. 70: uint32(0xe5ccf1b4),
  3047. 71: uint32(0x047aa35b),
  3048. 72: uint32(0x6cdedcad),
  3049. 73: uint32(0x8d688e42),
  3050. 74: uint32(0xefb508a8),
  3051. 75: uint32(0x0e035a47),
  3052. 76: uint32(0x6a0974a6),
  3053. 77: uint32(0x8bbf2649),
  3054. 78: uint32(0xe962a0a3),
  3055. 79: uint32(0x08d4f24c),
  3056. 80: uint32(0x782c2e94),
  3057. 81: uint32(0x999a7c7b),
  3058. 82: uint32(0xfb47fa91),
  3059. 83: uint32(0x1af1a87e),
  3060. 84: uint32(0x7efb869f),
  3061. 85: uint32(0x9f4dd470),
  3062. 86: uint32(0xfd90529a),
  3063. 87: uint32(0x1c260075),
  3064. 88: uint32(0x74827f83),
  3065. 89: uint32(0x95342d6c),
  3066. 90: uint32(0xf7e9ab86),
  3067. 91: uint32(0x165ff969),
  3068. 92: uint32(0x7255d788),
  3069. 93: uint32(0x93e38567),
  3070. 94: uint32(0xf13e038d),
  3071. 95: uint32(0x10885162),
  3072. 96: uint32(0x50c8cbe7),
  3073. 97: uint32(0xb17e9908),
  3074. 98: uint32(0xd3a31fe2),
  3075. 99: uint32(0x32154d0d),
  3076. 100: uint32(0x561f63ec),
  3077. 101: uint32(0xb7a93103),
  3078. 102: uint32(0xd574b7e9),
  3079. 103: uint32(0x34c2e506),
  3080. 104: uint32(0x5c669af0),
  3081. 105: uint32(0xbdd0c81f),
  3082. 106: uint32(0xdf0d4ef5),
  3083. 107: uint32(0x3ebb1c1a),
  3084. 108: uint32(0x5ab132fb),
  3085. 109: uint32(0xbb076014),
  3086. 110: uint32(0xd9dae6fe),
  3087. 111: uint32(0x386cb411),
  3088. 112: uint32(0x489468c9),
  3089. 113: uint32(0xa9223a26),
  3090. 114: uint32(0xcbffbccc),
  3091. 115: uint32(0x2a49ee23),
  3092. 116: uint32(0x4e43c0c2),
  3093. 117: uint32(0xaff5922d),
  3094. 118: uint32(0xcd2814c7),
  3095. 119: uint32(0x2c9e4628),
  3096. 120: uint32(0x443a39de),
  3097. 121: uint32(0xa58c6b31),
  3098. 122: uint32(0xc751eddb),
  3099. 123: uint32(0x26e7bf34),
  3100. 124: uint32(0x42ed91d5),
  3101. 125: uint32(0xa35bc33a),
  3102. 126: uint32(0xc18645d0),
  3103. 127: uint32(0x2030173f),
  3104. 128: uint32(0x81e66bae),
  3105. 129: uint32(0x60503941),
  3106. 130: uint32(0x028dbfab),
  3107. 131: uint32(0xe33bed44),
  3108. 132: uint32(0x8731c3a5),
  3109. 133: uint32(0x6687914a),
  3110. 134: uint32(0x045a17a0),
  3111. 135: uint32(0xe5ec454f),
  3112. 136: uint32(0x8d483ab9),
  3113. 137: uint32(0x6cfe6856),
  3114. 138: uint32(0x0e23eebc),
  3115. 139: uint32(0xef95bc53),
  3116. 140: uint32(0x8b9f92b2),
  3117. 141: uint32(0x6a29c05d),
  3118. 142: uint32(0x08f446b7),
  3119. 143: uint32(0xe9421458),
  3120. 144: uint32(0x99bac880),
  3121. 145: uint32(0x780c9a6f),
  3122. 146: uint32(0x1ad11c85),
  3123. 147: uint32(0xfb674e6a),
  3124. 148: uint32(0x9f6d608b),
  3125. 149: uint32(0x7edb3264),
  3126. 150: uint32(0x1c06b48e),
  3127. 151: uint32(0xfdb0e661),
  3128. 152: uint32(0x95149997),
  3129. 153: uint32(0x74a2cb78),
  3130. 154: uint32(0x167f4d92),
  3131. 155: uint32(0xf7c91f7d),
  3132. 156: uint32(0x93c3319c),
  3133. 157: uint32(0x72756373),
  3134. 158: uint32(0x10a8e599),
  3135. 159: uint32(0xf11eb776),
  3136. 160: uint32(0xb15e2df3),
  3137. 161: uint32(0x50e87f1c),
  3138. 162: uint32(0x3235f9f6),
  3139. 163: uint32(0xd383ab19),
  3140. 164: uint32(0xb78985f8),
  3141. 165: uint32(0x563fd717),
  3142. 166: uint32(0x34e251fd),
  3143. 167: uint32(0xd5540312),
  3144. 168: uint32(0xbdf07ce4),
  3145. 169: uint32(0x5c462e0b),
  3146. 170: uint32(0x3e9ba8e1),
  3147. 171: uint32(0xdf2dfa0e),
  3148. 172: uint32(0xbb27d4ef),
  3149. 173: uint32(0x5a918600),
  3150. 174: uint32(0x384c00ea),
  3151. 175: uint32(0xd9fa5205),
  3152. 176: uint32(0xa9028edd),
  3153. 177: uint32(0x48b4dc32),
  3154. 178: uint32(0x2a695ad8),
  3155. 179: uint32(0xcbdf0837),
  3156. 180: uint32(0xafd526d6),
  3157. 181: uint32(0x4e637439),
  3158. 182: uint32(0x2cbef2d3),
  3159. 183: uint32(0xcd08a03c),
  3160. 184: uint32(0xa5acdfca),
  3161. 185: uint32(0x441a8d25),
  3162. 186: uint32(0x26c70bcf),
  3163. 187: uint32(0xc7715920),
  3164. 188: uint32(0xa37b77c1),
  3165. 189: uint32(0x42cd252e),
  3166. 190: uint32(0x2010a3c4),
  3167. 191: uint32(0xc1a6f12b),
  3168. 192: uint32(0xe196e614),
  3169. 193: uint32(0x0020b4fb),
  3170. 194: uint32(0x62fd3211),
  3171. 195: uint32(0x834b60fe),
  3172. 196: uint32(0xe7414e1f),
  3173. 197: uint32(0x06f71cf0),
  3174. 198: uint32(0x642a9a1a),
  3175. 199: uint32(0x859cc8f5),
  3176. 200: uint32(0xed38b703),
  3177. 201: uint32(0x0c8ee5ec),
  3178. 202: uint32(0x6e536306),
  3179. 203: uint32(0x8fe531e9),
  3180. 204: uint32(0xebef1f08),
  3181. 205: uint32(0x0a594de7),
  3182. 206: uint32(0x6884cb0d),
  3183. 207: uint32(0x893299e2),
  3184. 208: uint32(0xf9ca453a),
  3185. 209: uint32(0x187c17d5),
  3186. 210: uint32(0x7aa1913f),
  3187. 211: uint32(0x9b17c3d0),
  3188. 212: uint32(0xff1ded31),
  3189. 213: uint32(0x1eabbfde),
  3190. 214: uint32(0x7c763934),
  3191. 215: uint32(0x9dc06bdb),
  3192. 216: uint32(0xf564142d),
  3193. 217: uint32(0x14d246c2),
  3194. 218: uint32(0x760fc028),
  3195. 219: uint32(0x97b992c7),
  3196. 220: uint32(0xf3b3bc26),
  3197. 221: uint32(0x1205eec9),
  3198. 222: uint32(0x70d86823),
  3199. 223: uint32(0x916e3acc),
  3200. 224: uint32(0xd12ea049),
  3201. 225: uint32(0x3098f2a6),
  3202. 226: uint32(0x5245744c),
  3203. 227: uint32(0xb3f326a3),
  3204. 228: uint32(0xd7f90842),
  3205. 229: uint32(0x364f5aad),
  3206. 230: uint32(0x5492dc47),
  3207. 231: uint32(0xb5248ea8),
  3208. 232: uint32(0xdd80f15e),
  3209. 233: uint32(0x3c36a3b1),
  3210. 234: uint32(0x5eeb255b),
  3211. 235: uint32(0xbf5d77b4),
  3212. 236: uint32(0xdb575955),
  3213. 237: uint32(0x3ae10bba),
  3214. 238: uint32(0x583c8d50),
  3215. 239: uint32(0xb98adfbf),
  3216. 240: uint32(0xc9720367),
  3217. 241: uint32(0x28c45188),
  3218. 242: uint32(0x4a19d762),
  3219. 243: uint32(0xabaf858d),
  3220. 244: uint32(0xcfa5ab6c),
  3221. 245: uint32(0x2e13f983),
  3222. 246: uint32(0x4cce7f69),
  3223. 247: uint32(0xad782d86),
  3224. 248: uint32(0xc5dc5270),
  3225. 249: uint32(0x246a009f),
  3226. 250: uint32(0x46b78675),
  3227. 251: uint32(0xa701d49a),
  3228. 252: uint32(0xc30bfa7b),
  3229. 253: uint32(0x22bda894),
  3230. 254: uint32(0x40602e7e),
  3231. 255: uint32(0xa1d67c91),
  3232. },
  3233. 2: {
  3234. 1: uint32(0x5880e2d7),
  3235. 2: uint32(0xf106b474),
  3236. 3: uint32(0xa98656a3),
  3237. 4: uint32(0xe20d68e9),
  3238. 5: uint32(0xba8d8a3e),
  3239. 6: uint32(0x130bdc9d),
  3240. 7: uint32(0x4b8b3e4a),
  3241. 8: uint32(0x851da109),
  3242. 9: uint32(0xdd9d43de),
  3243. 10: uint32(0x741b157d),
  3244. 11: uint32(0x2c9bf7aa),
  3245. 12: uint32(0x6710c9e0),
  3246. 13: uint32(0x3f902b37),
  3247. 14: uint32(0x96167d94),
  3248. 15: uint32(0xce969f43),
  3249. 16: uint32(0x0a3b4213),
  3250. 17: uint32(0x52bba0c4),
  3251. 18: uint32(0xfb3df667),
  3252. 19: uint32(0xa3bd14b0),
  3253. 20: uint32(0xe8362afa),
  3254. 21: uint32(0xb0b6c82d),
  3255. 22: uint32(0x19309e8e),
  3256. 23: uint32(0x41b07c59),
  3257. 24: uint32(0x8f26e31a),
  3258. 25: uint32(0xd7a601cd),
  3259. 26: uint32(0x7e20576e),
  3260. 27: uint32(0x26a0b5b9),
  3261. 28: uint32(0x6d2b8bf3),
  3262. 29: uint32(0x35ab6924),
  3263. 30: uint32(0x9c2d3f87),
  3264. 31: uint32(0xc4addd50),
  3265. 32: uint32(0x14768426),
  3266. 33: uint32(0x4cf666f1),
  3267. 34: uint32(0xe5703052),
  3268. 35: uint32(0xbdf0d285),
  3269. 36: uint32(0xf67beccf),
  3270. 37: uint32(0xaefb0e18),
  3271. 38: uint32(0x077d58bb),
  3272. 39: uint32(0x5ffdba6c),
  3273. 40: uint32(0x916b252f),
  3274. 41: uint32(0xc9ebc7f8),
  3275. 42: uint32(0x606d915b),
  3276. 43: uint32(0x38ed738c),
  3277. 44: uint32(0x73664dc6),
  3278. 45: uint32(0x2be6af11),
  3279. 46: uint32(0x8260f9b2),
  3280. 47: uint32(0xdae01b65),
  3281. 48: uint32(0x1e4dc635),
  3282. 49: uint32(0x46cd24e2),
  3283. 50: uint32(0xef4b7241),
  3284. 51: uint32(0xb7cb9096),
  3285. 52: uint32(0xfc40aedc),
  3286. 53: uint32(0xa4c04c0b),
  3287. 54: uint32(0x0d461aa8),
  3288. 55: uint32(0x55c6f87f),
  3289. 56: uint32(0x9b50673c),
  3290. 57: uint32(0xc3d085eb),
  3291. 58: uint32(0x6a56d348),
  3292. 59: uint32(0x32d6319f),
  3293. 60: uint32(0x795d0fd5),
  3294. 61: uint32(0x21dded02),
  3295. 62: uint32(0x885bbba1),
  3296. 63: uint32(0xd0db5976),
  3297. 64: uint32(0x28ec084d),
  3298. 65: uint32(0x706cea9a),
  3299. 66: uint32(0xd9eabc39),
  3300. 67: uint32(0x816a5eee),
  3301. 68: uint32(0xcae160a4),
  3302. 69: uint32(0x92618273),
  3303. 70: uint32(0x3be7d4d0),
  3304. 71: uint32(0x63673607),
  3305. 72: uint32(0xadf1a944),
  3306. 73: uint32(0xf5714b93),
  3307. 74: uint32(0x5cf71d30),
  3308. 75: uint32(0x0477ffe7),
  3309. 76: uint32(0x4ffcc1ad),
  3310. 77: uint32(0x177c237a),
  3311. 78: uint32(0xbefa75d9),
  3312. 79: uint32(0xe67a970e),
  3313. 80: uint32(0x22d74a5e),
  3314. 81: uint32(0x7a57a889),
  3315. 82: uint32(0xd3d1fe2a),
  3316. 83: uint32(0x8b511cfd),
  3317. 84: uint32(0xc0da22b7),
  3318. 85: uint32(0x985ac060),
  3319. 86: uint32(0x31dc96c3),
  3320. 87: uint32(0x695c7414),
  3321. 88: uint32(0xa7caeb57),
  3322. 89: uint32(0xff4a0980),
  3323. 90: uint32(0x56cc5f23),
  3324. 91: uint32(0x0e4cbdf4),
  3325. 92: uint32(0x45c783be),
  3326. 93: uint32(0x1d476169),
  3327. 94: uint32(0xb4c137ca),
  3328. 95: uint32(0xec41d51d),
  3329. 96: uint32(0x3c9a8c6b),
  3330. 97: uint32(0x641a6ebc),
  3331. 98: uint32(0xcd9c381f),
  3332. 99: uint32(0x951cdac8),
  3333. 100: uint32(0xde97e482),
  3334. 101: uint32(0x86170655),
  3335. 102: uint32(0x2f9150f6),
  3336. 103: uint32(0x7711b221),
  3337. 104: uint32(0xb9872d62),
  3338. 105: uint32(0xe107cfb5),
  3339. 106: uint32(0x48819916),
  3340. 107: uint32(0x10017bc1),
  3341. 108: uint32(0x5b8a458b),
  3342. 109: uint32(0x030aa75c),
  3343. 110: uint32(0xaa8cf1ff),
  3344. 111: uint32(0xf20c1328),
  3345. 112: uint32(0x36a1ce78),
  3346. 113: uint32(0x6e212caf),
  3347. 114: uint32(0xc7a77a0c),
  3348. 115: uint32(0x9f2798db),
  3349. 116: uint32(0xd4aca691),
  3350. 117: uint32(0x8c2c4446),
  3351. 118: uint32(0x25aa12e5),
  3352. 119: uint32(0x7d2af032),
  3353. 120: uint32(0xb3bc6f71),
  3354. 121: uint32(0xeb3c8da6),
  3355. 122: uint32(0x42badb05),
  3356. 123: uint32(0x1a3a39d2),
  3357. 124: uint32(0x51b10798),
  3358. 125: uint32(0x0931e54f),
  3359. 126: uint32(0xa0b7b3ec),
  3360. 127: uint32(0xf837513b),
  3361. 128: uint32(0x50d8119a),
  3362. 129: uint32(0x0858f34d),
  3363. 130: uint32(0xa1dea5ee),
  3364. 131: uint32(0xf95e4739),
  3365. 132: uint32(0xb2d57973),
  3366. 133: uint32(0xea559ba4),
  3367. 134: uint32(0x43d3cd07),
  3368. 135: uint32(0x1b532fd0),
  3369. 136: uint32(0xd5c5b093),
  3370. 137: uint32(0x8d455244),
  3371. 138: uint32(0x24c304e7),
  3372. 139: uint32(0x7c43e630),
  3373. 140: uint32(0x37c8d87a),
  3374. 141: uint32(0x6f483aad),
  3375. 142: uint32(0xc6ce6c0e),
  3376. 143: uint32(0x9e4e8ed9),
  3377. 144: uint32(0x5ae35389),
  3378. 145: uint32(0x0263b15e),
  3379. 146: uint32(0xabe5e7fd),
  3380. 147: uint32(0xf365052a),
  3381. 148: uint32(0xb8ee3b60),
  3382. 149: uint32(0xe06ed9b7),
  3383. 150: uint32(0x49e88f14),
  3384. 151: uint32(0x11686dc3),
  3385. 152: uint32(0xdffef280),
  3386. 153: uint32(0x877e1057),
  3387. 154: uint32(0x2ef846f4),
  3388. 155: uint32(0x7678a423),
  3389. 156: uint32(0x3df39a69),
  3390. 157: uint32(0x657378be),
  3391. 158: uint32(0xccf52e1d),
  3392. 159: uint32(0x9475ccca),
  3393. 160: uint32(0x44ae95bc),
  3394. 161: uint32(0x1c2e776b),
  3395. 162: uint32(0xb5a821c8),
  3396. 163: uint32(0xed28c31f),
  3397. 164: uint32(0xa6a3fd55),
  3398. 165: uint32(0xfe231f82),
  3399. 166: uint32(0x57a54921),
  3400. 167: uint32(0x0f25abf6),
  3401. 168: uint32(0xc1b334b5),
  3402. 169: uint32(0x9933d662),
  3403. 170: uint32(0x30b580c1),
  3404. 171: uint32(0x68356216),
  3405. 172: uint32(0x23be5c5c),
  3406. 173: uint32(0x7b3ebe8b),
  3407. 174: uint32(0xd2b8e828),
  3408. 175: uint32(0x8a380aff),
  3409. 176: uint32(0x4e95d7af),
  3410. 177: uint32(0x16153578),
  3411. 178: uint32(0xbf9363db),
  3412. 179: uint32(0xe713810c),
  3413. 180: uint32(0xac98bf46),
  3414. 181: uint32(0xf4185d91),
  3415. 182: uint32(0x5d9e0b32),
  3416. 183: uint32(0x051ee9e5),
  3417. 184: uint32(0xcb8876a6),
  3418. 185: uint32(0x93089471),
  3419. 186: uint32(0x3a8ec2d2),
  3420. 187: uint32(0x620e2005),
  3421. 188: uint32(0x29851e4f),
  3422. 189: uint32(0x7105fc98),
  3423. 190: uint32(0xd883aa3b),
  3424. 191: uint32(0x800348ec),
  3425. 192: uint32(0x783419d7),
  3426. 193: uint32(0x20b4fb00),
  3427. 194: uint32(0x8932ada3),
  3428. 195: uint32(0xd1b24f74),
  3429. 196: uint32(0x9a39713e),
  3430. 197: uint32(0xc2b993e9),
  3431. 198: uint32(0x6b3fc54a),
  3432. 199: uint32(0x33bf279d),
  3433. 200: uint32(0xfd29b8de),
  3434. 201: uint32(0xa5a95a09),
  3435. 202: uint32(0x0c2f0caa),
  3436. 203: uint32(0x54afee7d),
  3437. 204: uint32(0x1f24d037),
  3438. 205: uint32(0x47a432e0),
  3439. 206: uint32(0xee226443),
  3440. 207: uint32(0xb6a28694),
  3441. 208: uint32(0x720f5bc4),
  3442. 209: uint32(0x2a8fb913),
  3443. 210: uint32(0x8309efb0),
  3444. 211: uint32(0xdb890d67),
  3445. 212: uint32(0x9002332d),
  3446. 213: uint32(0xc882d1fa),
  3447. 214: uint32(0x61048759),
  3448. 215: uint32(0x3984658e),
  3449. 216: uint32(0xf712facd),
  3450. 217: uint32(0xaf92181a),
  3451. 218: uint32(0x06144eb9),
  3452. 219: uint32(0x5e94ac6e),
  3453. 220: uint32(0x151f9224),
  3454. 221: uint32(0x4d9f70f3),
  3455. 222: uint32(0xe4192650),
  3456. 223: uint32(0xbc99c487),
  3457. 224: uint32(0x6c429df1),
  3458. 225: uint32(0x34c27f26),
  3459. 226: uint32(0x9d442985),
  3460. 227: uint32(0xc5c4cb52),
  3461. 228: uint32(0x8e4ff518),
  3462. 229: uint32(0xd6cf17cf),
  3463. 230: uint32(0x7f49416c),
  3464. 231: uint32(0x27c9a3bb),
  3465. 232: uint32(0xe95f3cf8),
  3466. 233: uint32(0xb1dfde2f),
  3467. 234: uint32(0x1859888c),
  3468. 235: uint32(0x40d96a5b),
  3469. 236: uint32(0x0b525411),
  3470. 237: uint32(0x53d2b6c6),
  3471. 238: uint32(0xfa54e065),
  3472. 239: uint32(0xa2d402b2),
  3473. 240: uint32(0x6679dfe2),
  3474. 241: uint32(0x3ef93d35),
  3475. 242: uint32(0x977f6b96),
  3476. 243: uint32(0xcfff8941),
  3477. 244: uint32(0x8474b70b),
  3478. 245: uint32(0xdcf455dc),
  3479. 246: uint32(0x7572037f),
  3480. 247: uint32(0x2df2e1a8),
  3481. 248: uint32(0xe3647eeb),
  3482. 249: uint32(0xbbe49c3c),
  3483. 250: uint32(0x1262ca9f),
  3484. 251: uint32(0x4ae22848),
  3485. 252: uint32(0x01691602),
  3486. 253: uint32(0x59e9f4d5),
  3487. 254: uint32(0xf06fa276),
  3488. 255: uint32(0xa8ef40a1),
  3489. },
  3490. 3: {
  3491. 1: uint32(0x463b6765),
  3492. 2: uint32(0x8c76ceca),
  3493. 3: uint32(0xca4da9af),
  3494. 4: uint32(0x59ebed4e),
  3495. 5: uint32(0x1fd08a2b),
  3496. 6: uint32(0xd59d2384),
  3497. 7: uint32(0x93a644e1),
  3498. 8: uint32(0xb2d6db9d),
  3499. 9: uint32(0xf4edbcf8),
  3500. 10: uint32(0x3ea01557),
  3501. 11: uint32(0x789b7232),
  3502. 12: uint32(0xeb3d36d3),
  3503. 13: uint32(0xad0651b6),
  3504. 14: uint32(0x674bf819),
  3505. 15: uint32(0x21709f7c),
  3506. 16: uint32(0x25abc6e0),
  3507. 17: uint32(0x6390a185),
  3508. 18: uint32(0xa9dd082a),
  3509. 19: uint32(0xefe66f4f),
  3510. 20: uint32(0x7c402bae),
  3511. 21: uint32(0x3a7b4ccb),
  3512. 22: uint32(0xf036e564),
  3513. 23: uint32(0xb60d8201),
  3514. 24: uint32(0x977d1d7d),
  3515. 25: uint32(0xd1467a18),
  3516. 26: uint32(0x1b0bd3b7),
  3517. 27: uint32(0x5d30b4d2),
  3518. 28: uint32(0xce96f033),
  3519. 29: uint32(0x88ad9756),
  3520. 30: uint32(0x42e03ef9),
  3521. 31: uint32(0x04db599c),
  3522. 32: uint32(0x0b50fc1a),
  3523. 33: uint32(0x4d6b9b7f),
  3524. 34: uint32(0x872632d0),
  3525. 35: uint32(0xc11d55b5),
  3526. 36: uint32(0x52bb1154),
  3527. 37: uint32(0x14807631),
  3528. 38: uint32(0xdecddf9e),
  3529. 39: uint32(0x98f6b8fb),
  3530. 40: uint32(0xb9862787),
  3531. 41: uint32(0xffbd40e2),
  3532. 42: uint32(0x35f0e94d),
  3533. 43: uint32(0x73cb8e28),
  3534. 44: uint32(0xe06dcac9),
  3535. 45: uint32(0xa656adac),
  3536. 46: uint32(0x6c1b0403),
  3537. 47: uint32(0x2a206366),
  3538. 48: uint32(0x2efb3afa),
  3539. 49: uint32(0x68c05d9f),
  3540. 50: uint32(0xa28df430),
  3541. 51: uint32(0xe4b69355),
  3542. 52: uint32(0x7710d7b4),
  3543. 53: uint32(0x312bb0d1),
  3544. 54: uint32(0xfb66197e),
  3545. 55: uint32(0xbd5d7e1b),
  3546. 56: uint32(0x9c2de167),
  3547. 57: uint32(0xda168602),
  3548. 58: uint32(0x105b2fad),
  3549. 59: uint32(0x566048c8),
  3550. 60: uint32(0xc5c60c29),
  3551. 61: uint32(0x83fd6b4c),
  3552. 62: uint32(0x49b0c2e3),
  3553. 63: uint32(0x0f8ba586),
  3554. 64: uint32(0x16a0f835),
  3555. 65: uint32(0x509b9f50),
  3556. 66: uint32(0x9ad636ff),
  3557. 67: uint32(0xdced519a),
  3558. 68: uint32(0x4f4b157b),
  3559. 69: uint32(0x0970721e),
  3560. 70: uint32(0xc33ddbb1),
  3561. 71: uint32(0x8506bcd4),
  3562. 72: uint32(0xa47623a8),
  3563. 73: uint32(0xe24d44cd),
  3564. 74: uint32(0x2800ed62),
  3565. 75: uint32(0x6e3b8a07),
  3566. 76: uint32(0xfd9dcee6),
  3567. 77: uint32(0xbba6a983),
  3568. 78: uint32(0x71eb002c),
  3569. 79: uint32(0x37d06749),
  3570. 80: uint32(0x330b3ed5),
  3571. 81: uint32(0x753059b0),
  3572. 82: uint32(0xbf7df01f),
  3573. 83: uint32(0xf946977a),
  3574. 84: uint32(0x6ae0d39b),
  3575. 85: uint32(0x2cdbb4fe),
  3576. 86: uint32(0xe6961d51),
  3577. 87: uint32(0xa0ad7a34),
  3578. 88: uint32(0x81dde548),
  3579. 89: uint32(0xc7e6822d),
  3580. 90: uint32(0x0dab2b82),
  3581. 91: uint32(0x4b904ce7),
  3582. 92: uint32(0xd8360806),
  3583. 93: uint32(0x9e0d6f63),
  3584. 94: uint32(0x5440c6cc),
  3585. 95: uint32(0x127ba1a9),
  3586. 96: uint32(0x1df0042f),
  3587. 97: uint32(0x5bcb634a),
  3588. 98: uint32(0x9186cae5),
  3589. 99: uint32(0xd7bdad80),
  3590. 100: uint32(0x441be961),
  3591. 101: uint32(0x02208e04),
  3592. 102: uint32(0xc86d27ab),
  3593. 103: uint32(0x8e5640ce),
  3594. 104: uint32(0xaf26dfb2),
  3595. 105: uint32(0xe91db8d7),
  3596. 106: uint32(0x23501178),
  3597. 107: uint32(0x656b761d),
  3598. 108: uint32(0xf6cd32fc),
  3599. 109: uint32(0xb0f65599),
  3600. 110: uint32(0x7abbfc36),
  3601. 111: uint32(0x3c809b53),
  3602. 112: uint32(0x385bc2cf),
  3603. 113: uint32(0x7e60a5aa),
  3604. 114: uint32(0xb42d0c05),
  3605. 115: uint32(0xf2166b60),
  3606. 116: uint32(0x61b02f81),
  3607. 117: uint32(0x278b48e4),
  3608. 118: uint32(0xedc6e14b),
  3609. 119: uint32(0xabfd862e),
  3610. 120: uint32(0x8a8d1952),
  3611. 121: uint32(0xccb67e37),
  3612. 122: uint32(0x06fbd798),
  3613. 123: uint32(0x40c0b0fd),
  3614. 124: uint32(0xd366f41c),
  3615. 125: uint32(0x955d9379),
  3616. 126: uint32(0x5f103ad6),
  3617. 127: uint32(0x192b5db3),
  3618. 128: uint32(0x2c40f16b),
  3619. 129: uint32(0x6a7b960e),
  3620. 130: uint32(0xa0363fa1),
  3621. 131: uint32(0xe60d58c4),
  3622. 132: uint32(0x75ab1c25),
  3623. 133: uint32(0x33907b40),
  3624. 134: uint32(0xf9ddd2ef),
  3625. 135: uint32(0xbfe6b58a),
  3626. 136: uint32(0x9e962af6),
  3627. 137: uint32(0xd8ad4d93),
  3628. 138: uint32(0x12e0e43c),
  3629. 139: uint32(0x54db8359),
  3630. 140: uint32(0xc77dc7b8),
  3631. 141: uint32(0x8146a0dd),
  3632. 142: uint32(0x4b0b0972),
  3633. 143: uint32(0x0d306e17),
  3634. 144: uint32(0x09eb378b),
  3635. 145: uint32(0x4fd050ee),
  3636. 146: uint32(0x859df941),
  3637. 147: uint32(0xc3a69e24),
  3638. 148: uint32(0x5000dac5),
  3639. 149: uint32(0x163bbda0),
  3640. 150: uint32(0xdc76140f),
  3641. 151: uint32(0x9a4d736a),
  3642. 152: uint32(0xbb3dec16),
  3643. 153: uint32(0xfd068b73),
  3644. 154: uint32(0x374b22dc),
  3645. 155: uint32(0x717045b9),
  3646. 156: uint32(0xe2d60158),
  3647. 157: uint32(0xa4ed663d),
  3648. 158: uint32(0x6ea0cf92),
  3649. 159: uint32(0x289ba8f7),
  3650. 160: uint32(0x27100d71),
  3651. 161: uint32(0x612b6a14),
  3652. 162: uint32(0xab66c3bb),
  3653. 163: uint32(0xed5da4de),
  3654. 164: uint32(0x7efbe03f),
  3655. 165: uint32(0x38c0875a),
  3656. 166: uint32(0xf28d2ef5),
  3657. 167: uint32(0xb4b64990),
  3658. 168: uint32(0x95c6d6ec),
  3659. 169: uint32(0xd3fdb189),
  3660. 170: uint32(0x19b01826),
  3661. 171: uint32(0x5f8b7f43),
  3662. 172: uint32(0xcc2d3ba2),
  3663. 173: uint32(0x8a165cc7),
  3664. 174: uint32(0x405bf568),
  3665. 175: uint32(0x0660920d),
  3666. 176: uint32(0x02bbcb91),
  3667. 177: uint32(0x4480acf4),
  3668. 178: uint32(0x8ecd055b),
  3669. 179: uint32(0xc8f6623e),
  3670. 180: uint32(0x5b5026df),
  3671. 181: uint32(0x1d6b41ba),
  3672. 182: uint32(0xd726e815),
  3673. 183: uint32(0x911d8f70),
  3674. 184: uint32(0xb06d100c),
  3675. 185: uint32(0xf6567769),
  3676. 186: uint32(0x3c1bdec6),
  3677. 187: uint32(0x7a20b9a3),
  3678. 188: uint32(0xe986fd42),
  3679. 189: uint32(0xafbd9a27),
  3680. 190: uint32(0x65f03388),
  3681. 191: uint32(0x23cb54ed),
  3682. 192: uint32(0x3ae0095e),
  3683. 193: uint32(0x7cdb6e3b),
  3684. 194: uint32(0xb696c794),
  3685. 195: uint32(0xf0ada0f1),
  3686. 196: uint32(0x630be410),
  3687. 197: uint32(0x25308375),
  3688. 198: uint32(0xef7d2ada),
  3689. 199: uint32(0xa9464dbf),
  3690. 200: uint32(0x8836d2c3),
  3691. 201: uint32(0xce0db5a6),
  3692. 202: uint32(0x04401c09),
  3693. 203: uint32(0x427b7b6c),
  3694. 204: uint32(0xd1dd3f8d),
  3695. 205: uint32(0x97e658e8),
  3696. 206: uint32(0x5dabf147),
  3697. 207: uint32(0x1b909622),
  3698. 208: uint32(0x1f4bcfbe),
  3699. 209: uint32(0x5970a8db),
  3700. 210: uint32(0x933d0174),
  3701. 211: uint32(0xd5066611),
  3702. 212: uint32(0x46a022f0),
  3703. 213: uint32(0x009b4595),
  3704. 214: uint32(0xcad6ec3a),
  3705. 215: uint32(0x8ced8b5f),
  3706. 216: uint32(0xad9d1423),
  3707. 217: uint32(0xeba67346),
  3708. 218: uint32(0x21ebdae9),
  3709. 219: uint32(0x67d0bd8c),
  3710. 220: uint32(0xf476f96d),
  3711. 221: uint32(0xb24d9e08),
  3712. 222: uint32(0x780037a7),
  3713. 223: uint32(0x3e3b50c2),
  3714. 224: uint32(0x31b0f544),
  3715. 225: uint32(0x778b9221),
  3716. 226: uint32(0xbdc63b8e),
  3717. 227: uint32(0xfbfd5ceb),
  3718. 228: uint32(0x685b180a),
  3719. 229: uint32(0x2e607f6f),
  3720. 230: uint32(0xe42dd6c0),
  3721. 231: uint32(0xa216b1a5),
  3722. 232: uint32(0x83662ed9),
  3723. 233: uint32(0xc55d49bc),
  3724. 234: uint32(0x0f10e013),
  3725. 235: uint32(0x492b8776),
  3726. 236: uint32(0xda8dc397),
  3727. 237: uint32(0x9cb6a4f2),
  3728. 238: uint32(0x56fb0d5d),
  3729. 239: uint32(0x10c06a38),
  3730. 240: uint32(0x141b33a4),
  3731. 241: uint32(0x522054c1),
  3732. 242: uint32(0x986dfd6e),
  3733. 243: uint32(0xde569a0b),
  3734. 244: uint32(0x4df0deea),
  3735. 245: uint32(0x0bcbb98f),
  3736. 246: uint32(0xc1861020),
  3737. 247: uint32(0x87bd7745),
  3738. 248: uint32(0xa6cde839),
  3739. 249: uint32(0xe0f68f5c),
  3740. 250: uint32(0x2abb26f3),
  3741. 251: uint32(0x6c804196),
  3742. 252: uint32(0xff260577),
  3743. 253: uint32(0xb91d6212),
  3744. 254: uint32(0x7350cbbd),
  3745. 255: uint32(0x356bacd8),
  3746. },
  3747. }
  3748. var _x2n_table = [32]Tz_crc_t{
  3749. 0: uint32(0x40000000),
  3750. 1: uint32(0x20000000),
  3751. 2: uint32(0x08000000),
  3752. 3: uint32(0x00800000),
  3753. 4: uint32(0x00008000),
  3754. 5: uint32(0xedb88320),
  3755. 6: uint32(0xb1e6b092),
  3756. 7: uint32(0xa06a2517),
  3757. 8: uint32(0xed627dae),
  3758. 9: uint32(0x88d14467),
  3759. 10: uint32(0xd7bbfe6a),
  3760. 11: uint32(0xec447f11),
  3761. 12: uint32(0x8e7ea170),
  3762. 13: uint32(0x6427800e),
  3763. 14: uint32(0x4d47bae0),
  3764. 15: uint32(0x09fe548f),
  3765. 16: uint32(0x83852d0f),
  3766. 17: uint32(0x30362f1a),
  3767. 18: uint32(0x7b5a9cc3),
  3768. 19: uint32(0x31fec169),
  3769. 20: uint32(0x9fec022a),
  3770. 21: uint32(0x6c8dedc4),
  3771. 22: uint32(0x15d6874d),
  3772. 23: uint32(0x5fde7a4e),
  3773. 24: uint32(0xbad90e37),
  3774. 25: uint32(0x2e4e5eef),
  3775. 26: uint32(0x4eaba214),
  3776. 27: uint32(0xa8a472c0),
  3777. 28: uint32(0x429a969e),
  3778. 29: uint32(0x148d302a),
  3779. 30: uint32(0xc40ba6d0),
  3780. 31: uint32(0xc4e22c3c),
  3781. }
  3782. /* CRC polynomial. */
  3783. // C documentation
  3784. //
  3785. // /*
  3786. // Return a(x) multiplied by b(x) modulo p(x), where p(x) is the CRC polynomial,
  3787. // reflected. For speed, this requires that a not be zero.
  3788. // */
  3789. func _multmodp(tls *libc.TLS, a Tz_crc_t, b Tz_crc_t) (r Tz_crc_t) {
  3790. var m, p Tz_crc_t
  3791. var v2 uint32
  3792. _, _, _ = m, p, v2
  3793. m = libc.Uint32FromInt32(1) << libc.Int32FromInt32(31)
  3794. p = uint32(0)
  3795. for {
  3796. if a&m != 0 {
  3797. p ^= b
  3798. if a&(m-uint32(1)) == uint32(0) {
  3799. break
  3800. }
  3801. }
  3802. m >>= uint32(1)
  3803. if b&uint32(1) != 0 {
  3804. v2 = b>>libc.Int32FromInt32(1) ^ uint32(m_POLY)
  3805. } else {
  3806. v2 = b >> int32(1)
  3807. }
  3808. b = v2
  3809. goto _1
  3810. _1:
  3811. }
  3812. return p
  3813. }
  3814. // C documentation
  3815. //
  3816. // /*
  3817. // Return x^(n * 2^k) modulo p(x). Requires that x2n_table[] has been
  3818. // initialized.
  3819. // */
  3820. func _x2nmodp(tls *libc.TLS, n Toff_t, k uint32) (r Tz_crc_t) {
  3821. var p Tz_crc_t
  3822. _ = p
  3823. p = libc.Uint32FromInt32(1) << libc.Int32FromInt32(31) /* x^0 == 1 */
  3824. for n != 0 {
  3825. if n&int64(1) != 0 {
  3826. p = _multmodp(tls, _x2n_table[k&uint32(31)], p)
  3827. }
  3828. n >>= int64(1)
  3829. k++
  3830. }
  3831. return p
  3832. }
  3833. // C documentation
  3834. //
  3835. // /* =========================================================================
  3836. // * This function can be used by asm versions of crc32(), and to force the
  3837. // * generation of the CRC tables in a threaded application.
  3838. // */
  3839. func Xget_crc_table(tls *libc.TLS) (r uintptr) {
  3840. return uintptr(unsafe.Pointer(&_crc_table))
  3841. }
  3842. /* =========================================================================
  3843. * Use ARM machine instructions if available. This will compute the CRC about
  3844. * ten times faster than the braided calculation. This code does not check for
  3845. * the presence of the CRC instruction at run time. __ARM_FEATURE_CRC32 will
  3846. * only be defined if the compilation specifies an ARM processor architecture
  3847. * that has the instructions. For example, compiling with -march=armv8.1-a or
  3848. * -march=armv8-a+crc, or -march=native if the compile machine has the crc32
  3849. * instructions.
  3850. */
  3851. // C documentation
  3852. //
  3853. // /*
  3854. // Return the CRC of the W bytes in the word_t data, taking the
  3855. // least-significant byte of the word as the first byte of data, without any pre
  3856. // or post conditioning. This is used to combine the CRCs of each braid.
  3857. // */
  3858. func _crc_word(tls *libc.TLS, data Tz_word_t) (r Tz_crc_t) {
  3859. var k int32
  3860. _ = k
  3861. k = 0
  3862. for {
  3863. if !(k < int32(4)) {
  3864. break
  3865. }
  3866. data = data>>libc.Int32FromInt32(8) ^ _crc_table[data&uint32(0xff)]
  3867. goto _1
  3868. _1:
  3869. ;
  3870. k++
  3871. }
  3872. return data
  3873. }
  3874. func _crc_word_big(tls *libc.TLS, data Tz_word_t) (r Tz_word_t) {
  3875. var k int32
  3876. _ = k
  3877. k = 0
  3878. for {
  3879. if !(k < int32(4)) {
  3880. break
  3881. }
  3882. data = data<<libc.Int32FromInt32(8) ^ _crc_big_table[data>>((libc.Int32FromInt32(4)-libc.Int32FromInt32(1))<<libc.Int32FromInt32(3))&uint32(0xff)]
  3883. goto _1
  3884. _1:
  3885. ;
  3886. k++
  3887. }
  3888. return data
  3889. }
  3890. // C documentation
  3891. //
  3892. // /* ========================================================================= */
  3893. func Xcrc32_z(tls *libc.TLS, crc uint64, buf uintptr, len1 Tz_size_t) (r uint64) {
  3894. bp := tls.Alloc(16)
  3895. defer tls.Free(16)
  3896. var blks, v2, v4 Tz_size_t
  3897. var comb, crc01, crc11, crc21, crc31, crc41, word0, word01, word1, word11, word2, word21, word3, word31, word4, word41 Tz_word_t
  3898. var crc0, crc1, crc2, crc3, crc4 Tz_crc_t
  3899. var k int32
  3900. var words, v1, v10, v11, v12, v13, v14, v6, v7, v8, v9 uintptr
  3901. var _ /* endian at bp+0 */ uint32
  3902. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  3903. /* Return initial CRC, if requested. */
  3904. if buf == uintptr(m_Z_NULL) {
  3905. return uint64(0)
  3906. }
  3907. /* Pre-condition the CRC */
  3908. crc = ^crc & uint64(0xffffffff)
  3909. /* If provided enough bytes, do a braided CRC calculation. */
  3910. if len1 >= libc.Uint64FromInt32(libc.Int32FromInt32(m_N)*libc.Int32FromInt32(4)+libc.Int32FromInt32(4)-libc.Int32FromInt32(1)) {
  3911. /* Compute the CRC up to a z_word_t boundary. */
  3912. for len1 != 0 && uint64(buf)&libc.Uint64FromInt32(libc.Int32FromInt32(4)-libc.Int32FromInt32(1)) != uint64(0) {
  3913. len1--
  3914. v1 = buf
  3915. buf++
  3916. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v1))))&uint64(0xff)])
  3917. }
  3918. /* Compute the CRC on as many N z_word_t blocks as are available. */
  3919. blks = len1 / libc.Uint64FromInt32(libc.Int32FromInt32(m_N)*libc.Int32FromInt32(4))
  3920. len1 -= blks * uint64(m_N) * uint64(4)
  3921. words = buf
  3922. /* Do endian check at execution time instead of compile time, since ARM
  3923. processors can change the endianness at execution time. If the
  3924. compiler knows what the endianness will be, it can optimize out the
  3925. check and the unused branch. */
  3926. *(*uint32)(unsafe.Pointer(bp)) = uint32(1)
  3927. if *(*uint8)(unsafe.Pointer(bp)) != 0 {
  3928. /* Initialize the CRC for each braid. */
  3929. crc0 = uint32(crc)
  3930. crc1 = uint32(0)
  3931. crc2 = uint32(0)
  3932. crc3 = uint32(0)
  3933. crc4 = uint32(0)
  3934. /*
  3935. Process the first blks-1 blocks, computing the CRCs on each braid
  3936. independently.
  3937. */
  3938. for {
  3939. blks--
  3940. v2 = blks
  3941. if !(v2 != 0) {
  3942. break
  3943. }
  3944. /* Load the word for each braid into registers. */
  3945. word0 = crc0 ^ *(*Tz_word_t)(unsafe.Pointer(words))
  3946. word1 = crc1 ^ *(*Tz_word_t)(unsafe.Pointer(words + 1*4))
  3947. word2 = crc2 ^ *(*Tz_word_t)(unsafe.Pointer(words + 2*4))
  3948. word3 = crc3 ^ *(*Tz_word_t)(unsafe.Pointer(words + 3*4))
  3949. word4 = crc4 ^ *(*Tz_word_t)(unsafe.Pointer(words + 4*4))
  3950. words += uintptr(m_N) * 4
  3951. /* Compute and update the CRC for each word. The loop should
  3952. get unrolled. */
  3953. crc0 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word0&uint32(0xff))*4))
  3954. crc1 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word1&uint32(0xff))*4))
  3955. crc2 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word2&uint32(0xff))*4))
  3956. crc3 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word3&uint32(0xff))*4))
  3957. crc4 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word4&uint32(0xff))*4))
  3958. k = int32(1)
  3959. for {
  3960. if !(k < int32(4)) {
  3961. break
  3962. }
  3963. crc0 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word0>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  3964. crc1 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word1>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  3965. crc2 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word2>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  3966. crc3 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word3>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  3967. crc4 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word4>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  3968. goto _3
  3969. _3:
  3970. ;
  3971. k++
  3972. }
  3973. }
  3974. /*
  3975. Process the last block, combining the CRCs of the N braids at the
  3976. same time.
  3977. */
  3978. crc = uint64(_crc_word(tls, crc0^*(*Tz_word_t)(unsafe.Pointer(words))))
  3979. crc = uint64(_crc_word(tls, uint32(uint64(crc1^*(*Tz_word_t)(unsafe.Pointer(words + 1*4)))^crc)))
  3980. crc = uint64(_crc_word(tls, uint32(uint64(crc2^*(*Tz_word_t)(unsafe.Pointer(words + 2*4)))^crc)))
  3981. crc = uint64(_crc_word(tls, uint32(uint64(crc3^*(*Tz_word_t)(unsafe.Pointer(words + 3*4)))^crc)))
  3982. crc = uint64(_crc_word(tls, uint32(uint64(crc4^*(*Tz_word_t)(unsafe.Pointer(words + 4*4)))^crc)))
  3983. words += uintptr(m_N) * 4
  3984. } else {
  3985. /* Initialize the CRC for each braid. */
  3986. crc01 = _byte_swap(tls, uint32(crc))
  3987. crc11 = uint32(0)
  3988. crc21 = uint32(0)
  3989. crc31 = uint32(0)
  3990. crc41 = uint32(0)
  3991. /*
  3992. Process the first blks-1 blocks, computing the CRCs on each braid
  3993. independently.
  3994. */
  3995. for {
  3996. blks--
  3997. v4 = blks
  3998. if !(v4 != 0) {
  3999. break
  4000. }
  4001. /* Load the word for each braid into registers. */
  4002. word01 = crc01 ^ *(*Tz_word_t)(unsafe.Pointer(words))
  4003. word11 = crc11 ^ *(*Tz_word_t)(unsafe.Pointer(words + 1*4))
  4004. word21 = crc21 ^ *(*Tz_word_t)(unsafe.Pointer(words + 2*4))
  4005. word31 = crc31 ^ *(*Tz_word_t)(unsafe.Pointer(words + 3*4))
  4006. word41 = crc41 ^ *(*Tz_word_t)(unsafe.Pointer(words + 4*4))
  4007. words += uintptr(m_N) * 4
  4008. /* Compute and update the CRC for each word. The loop should
  4009. get unrolled. */
  4010. crc01 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word01&uint32(0xff))*4))
  4011. crc11 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word11&uint32(0xff))*4))
  4012. crc21 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word21&uint32(0xff))*4))
  4013. crc31 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word31&uint32(0xff))*4))
  4014. crc41 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word41&uint32(0xff))*4))
  4015. k = int32(1)
  4016. for {
  4017. if !(k < int32(4)) {
  4018. break
  4019. }
  4020. crc01 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*1024 + uintptr(word01>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  4021. crc11 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*1024 + uintptr(word11>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  4022. crc21 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*1024 + uintptr(word21>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  4023. crc31 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*1024 + uintptr(word31>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  4024. crc41 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*1024 + uintptr(word41>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  4025. goto _5
  4026. _5:
  4027. ;
  4028. k++
  4029. }
  4030. }
  4031. /*
  4032. Process the last block, combining the CRCs of the N braids at the
  4033. same time.
  4034. */
  4035. comb = _crc_word_big(tls, crc01^*(*Tz_word_t)(unsafe.Pointer(words)))
  4036. comb = _crc_word_big(tls, crc11^*(*Tz_word_t)(unsafe.Pointer(words + 1*4))^comb)
  4037. comb = _crc_word_big(tls, crc21^*(*Tz_word_t)(unsafe.Pointer(words + 2*4))^comb)
  4038. comb = _crc_word_big(tls, crc31^*(*Tz_word_t)(unsafe.Pointer(words + 3*4))^comb)
  4039. comb = _crc_word_big(tls, crc41^*(*Tz_word_t)(unsafe.Pointer(words + 4*4))^comb)
  4040. words += uintptr(m_N) * 4
  4041. crc = uint64(_byte_swap(tls, comb))
  4042. }
  4043. /*
  4044. Update the pointer to the remaining bytes to process.
  4045. */
  4046. buf = words
  4047. }
  4048. /* Complete the computation of the CRC on any remaining bytes. */
  4049. for len1 >= uint64(8) {
  4050. len1 -= uint64(8)
  4051. v6 = buf
  4052. buf++
  4053. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v6))))&uint64(0xff)])
  4054. v7 = buf
  4055. buf++
  4056. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v7))))&uint64(0xff)])
  4057. v8 = buf
  4058. buf++
  4059. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v8))))&uint64(0xff)])
  4060. v9 = buf
  4061. buf++
  4062. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v9))))&uint64(0xff)])
  4063. v10 = buf
  4064. buf++
  4065. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v10))))&uint64(0xff)])
  4066. v11 = buf
  4067. buf++
  4068. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v11))))&uint64(0xff)])
  4069. v12 = buf
  4070. buf++
  4071. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v12))))&uint64(0xff)])
  4072. v13 = buf
  4073. buf++
  4074. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v13))))&uint64(0xff)])
  4075. }
  4076. for len1 != 0 {
  4077. len1--
  4078. v14 = buf
  4079. buf++
  4080. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v14))))&uint64(0xff)])
  4081. }
  4082. /* Return the CRC, post-conditioned. */
  4083. return crc ^ uint64(0xffffffff)
  4084. }
  4085. // C documentation
  4086. //
  4087. // /* ========================================================================= */
  4088. func Xcrc32(tls *libc.TLS, crc uint64, buf uintptr, len1 TuInt) (r uint64) {
  4089. return Xcrc32_z(tls, crc, buf, uint64(len1))
  4090. }
  4091. // C documentation
  4092. //
  4093. // /* ========================================================================= */
  4094. func Xcrc32_combine64(tls *libc.TLS, crc1 TuLong, crc2 TuLong, len2 Toff_t) (r TuLong) {
  4095. return uint64(_multmodp(tls, _x2nmodp(tls, len2, uint32(3)), uint32(crc1))) ^ crc2&uint64(0xffffffff)
  4096. }
  4097. // C documentation
  4098. //
  4099. // /* ========================================================================= */
  4100. func Xcrc32_combine(tls *libc.TLS, crc1 TuLong, crc2 TuLong, len2 Toff_t) (r TuLong) {
  4101. return Xcrc32_combine64(tls, crc1, crc2, len2)
  4102. }
  4103. // C documentation
  4104. //
  4105. // /* ========================================================================= */
  4106. func Xcrc32_combine_gen64(tls *libc.TLS, len2 Toff_t) (r TuLong) {
  4107. return uint64(_x2nmodp(tls, len2, uint32(3)))
  4108. }
  4109. // C documentation
  4110. //
  4111. // /* ========================================================================= */
  4112. func Xcrc32_combine_gen(tls *libc.TLS, len2 Toff_t) (r TuLong) {
  4113. return Xcrc32_combine_gen64(tls, len2)
  4114. }
  4115. // C documentation
  4116. //
  4117. // /* ========================================================================= */
  4118. func Xcrc32_combine_op(tls *libc.TLS, crc1 TuLong, crc2 TuLong, op TuLong) (r TuLong) {
  4119. return uint64(_multmodp(tls, uint32(op), uint32(crc1))) ^ crc2&uint64(0xffffffff)
  4120. }
  4121. const m_BL_CODES = 19
  4122. const m_BUSY_STATE = 113
  4123. const m_Buf_size = 16
  4124. const m_COMMENT_STATE = 91
  4125. const m_D_CODES = 30
  4126. const m_EXTRA_STATE = 69
  4127. const m_FINISH_STATE = 666
  4128. const m_GZIP_STATE = 57
  4129. const m_HCRC_STATE = 103
  4130. const m_INIT_STATE = 42
  4131. const m_LENGTH_CODES = 29
  4132. const m_LITERALS = 256
  4133. const m_LIT_BUFS = 4
  4134. const m_MAX_BITS = 15
  4135. const m_MAX_STORED = 65535
  4136. const m_NAME_STATE = 73
  4137. const m_NIL = 0
  4138. const m_PRESET_DICT1 = 32
  4139. const m_TOO_FAR = 4096
  4140. const m_WIN_INIT = "MAX_MATCH"
  4141. const m_max_insert_length = "max_lazy_match"
  4142. type Tinternal_state = struct {
  4143. Fstrm Tz_streamp
  4144. Fstatus int32
  4145. Fpending_buf uintptr
  4146. Fpending_buf_size Tulg
  4147. Fpending_out uintptr
  4148. Fpending Tulg
  4149. Fwrap int32
  4150. Fgzhead Tgz_headerp
  4151. Fgzindex Tulg
  4152. Fmethod TByte
  4153. Flast_flush int32
  4154. Fw_size TuInt
  4155. Fw_bits TuInt
  4156. Fw_mask TuInt
  4157. Fwindow uintptr
  4158. Fwindow_size Tulg
  4159. Fprev uintptr
  4160. Fhead uintptr
  4161. Fins_h TuInt
  4162. Fhash_size TuInt
  4163. Fhash_bits TuInt
  4164. Fhash_mask TuInt
  4165. Fhash_shift TuInt
  4166. Fblock_start int64
  4167. Fmatch_length TuInt
  4168. Fprev_match TIPos
  4169. Fmatch_available int32
  4170. Fstrstart TuInt
  4171. Fmatch_start TuInt
  4172. Flookahead TuInt
  4173. Fprev_length TuInt
  4174. Fmax_chain_length TuInt
  4175. Fmax_lazy_match TuInt
  4176. Flevel int32
  4177. Fstrategy int32
  4178. Fgood_match TuInt
  4179. Fnice_match int32
  4180. Fdyn_ltree [573]Tct_data_s
  4181. Fdyn_dtree [61]Tct_data_s
  4182. Fbl_tree [39]Tct_data_s
  4183. Fl_desc Ttree_desc_s
  4184. Fd_desc Ttree_desc_s
  4185. Fbl_desc Ttree_desc_s
  4186. Fbl_count [16]Tush
  4187. Fheap [573]int32
  4188. Fheap_len int32
  4189. Fheap_max int32
  4190. Fdepth [573]Tuch
  4191. Fsym_buf uintptr
  4192. Flit_bufsize TuInt
  4193. Fsym_next TuInt
  4194. Fsym_end TuInt
  4195. Fopt_len Tulg
  4196. Fstatic_len Tulg
  4197. Fmatches TuInt
  4198. Finsert TuInt
  4199. Fbi_buf Tush
  4200. Fbi_valid int32
  4201. Fhigh_water Tulg
  4202. }
  4203. type Tct_data = struct {
  4204. Ffc struct {
  4205. Fcode [0]Tush
  4206. Ffreq Tush
  4207. }
  4208. Fdl struct {
  4209. Flen1 [0]Tush
  4210. Fdad Tush
  4211. }
  4212. }
  4213. type Tct_data_s = Tct_data
  4214. type Ttree_desc = struct {
  4215. Fdyn_tree uintptr
  4216. Fmax_code int32
  4217. Fstat_desc uintptr
  4218. }
  4219. type Ttree_desc_s = Ttree_desc
  4220. type TPos = uint16
  4221. type TPosf = uint16
  4222. type TIPos = uint32
  4223. type Tdeflate_state = struct {
  4224. Fstrm Tz_streamp
  4225. Fstatus int32
  4226. Fpending_buf uintptr
  4227. Fpending_buf_size Tulg
  4228. Fpending_out uintptr
  4229. Fpending Tulg
  4230. Fwrap int32
  4231. Fgzhead Tgz_headerp
  4232. Fgzindex Tulg
  4233. Fmethod TByte
  4234. Flast_flush int32
  4235. Fw_size TuInt
  4236. Fw_bits TuInt
  4237. Fw_mask TuInt
  4238. Fwindow uintptr
  4239. Fwindow_size Tulg
  4240. Fprev uintptr
  4241. Fhead uintptr
  4242. Fins_h TuInt
  4243. Fhash_size TuInt
  4244. Fhash_bits TuInt
  4245. Fhash_mask TuInt
  4246. Fhash_shift TuInt
  4247. Fblock_start int64
  4248. Fmatch_length TuInt
  4249. Fprev_match TIPos
  4250. Fmatch_available int32
  4251. Fstrstart TuInt
  4252. Fmatch_start TuInt
  4253. Flookahead TuInt
  4254. Fprev_length TuInt
  4255. Fmax_chain_length TuInt
  4256. Fmax_lazy_match TuInt
  4257. Flevel int32
  4258. Fstrategy int32
  4259. Fgood_match TuInt
  4260. Fnice_match int32
  4261. Fdyn_ltree [573]Tct_data_s
  4262. Fdyn_dtree [61]Tct_data_s
  4263. Fbl_tree [39]Tct_data_s
  4264. Fl_desc Ttree_desc_s
  4265. Fd_desc Ttree_desc_s
  4266. Fbl_desc Ttree_desc_s
  4267. Fbl_count [16]Tush
  4268. Fheap [573]int32
  4269. Fheap_len int32
  4270. Fheap_max int32
  4271. Fdepth [573]Tuch
  4272. Fsym_buf uintptr
  4273. Flit_bufsize TuInt
  4274. Fsym_next TuInt
  4275. Fsym_end TuInt
  4276. Fopt_len Tulg
  4277. Fstatic_len Tulg
  4278. Fmatches TuInt
  4279. Finsert TuInt
  4280. Fbi_buf Tush
  4281. Fbi_valid int32
  4282. Fhigh_water Tulg
  4283. }
  4284. /*
  4285. If you use the zlib library in a product, an acknowledgment is welcome
  4286. in the documentation of your product. If for some reason you cannot
  4287. include such an acknowledgment, I would appreciate that you keep this
  4288. copyright string in the executable of your product.
  4289. */
  4290. type Tblock_state = int32
  4291. const _need_more = 0
  4292. const /* block not completed, need more input or more output */
  4293. _block_done = 1
  4294. const /* block flush performed */
  4295. _finish_started = 2
  4296. const /* finish started, need only more output at next deflate */
  4297. _finish_done = 3
  4298. type Tcompress_func = uintptr
  4299. /* ===========================================================================
  4300. * Local data
  4301. */
  4302. /* Tail of hash chains */
  4303. /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
  4304. // C documentation
  4305. //
  4306. // /* Values for max_lazy_match, good_match and max_chain_length, depending on
  4307. // * the desired pack level (0..9). The values given below have been tuned to
  4308. // * exclude worst case performance for pathological files. Better values may be
  4309. // * found for specific files.
  4310. // */
  4311. type Tconfig = struct {
  4312. Fgood_length Tush
  4313. Fmax_lazy Tush
  4314. Fnice_length Tush
  4315. Fmax_chain Tush
  4316. Ffunc1 Tcompress_func
  4317. }
  4318. /* ===========================================================================
  4319. * Local data
  4320. */
  4321. /* Tail of hash chains */
  4322. /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
  4323. // C documentation
  4324. //
  4325. // /* Values for max_lazy_match, good_match and max_chain_length, depending on
  4326. // * the desired pack level (0..9). The values given below have been tuned to
  4327. // * exclude worst case performance for pathological files. Better values may be
  4328. // * found for specific files.
  4329. // */
  4330. type Tconfig_s = Tconfig
  4331. var _configuration_table = [10]Tconfig{
  4332. 0: {},
  4333. 1: {
  4334. Fgood_length: uint16(4),
  4335. Fmax_lazy: uint16(4),
  4336. Fnice_length: uint16(8),
  4337. Fmax_chain: uint16(4),
  4338. },
  4339. 2: {
  4340. Fgood_length: uint16(4),
  4341. Fmax_lazy: uint16(5),
  4342. Fnice_length: uint16(16),
  4343. Fmax_chain: uint16(8),
  4344. },
  4345. 3: {
  4346. Fgood_length: uint16(4),
  4347. Fmax_lazy: uint16(6),
  4348. Fnice_length: uint16(32),
  4349. Fmax_chain: uint16(32),
  4350. },
  4351. 4: {
  4352. Fgood_length: uint16(4),
  4353. Fmax_lazy: uint16(4),
  4354. Fnice_length: uint16(16),
  4355. Fmax_chain: uint16(16),
  4356. },
  4357. 5: {
  4358. Fgood_length: uint16(8),
  4359. Fmax_lazy: uint16(16),
  4360. Fnice_length: uint16(32),
  4361. Fmax_chain: uint16(32),
  4362. },
  4363. 6: {
  4364. Fgood_length: uint16(8),
  4365. Fmax_lazy: uint16(16),
  4366. Fnice_length: uint16(128),
  4367. Fmax_chain: uint16(128),
  4368. },
  4369. 7: {
  4370. Fgood_length: uint16(8),
  4371. Fmax_lazy: uint16(32),
  4372. Fnice_length: uint16(128),
  4373. Fmax_chain: uint16(256),
  4374. },
  4375. 8: {
  4376. Fgood_length: uint16(32),
  4377. Fmax_lazy: uint16(128),
  4378. Fnice_length: uint16(258),
  4379. Fmax_chain: uint16(1024),
  4380. },
  4381. 9: {
  4382. Fgood_length: uint16(32),
  4383. Fmax_lazy: uint16(258),
  4384. Fnice_length: uint16(258),
  4385. Fmax_chain: uint16(4096),
  4386. },
  4387. }
  4388. func init() {
  4389. p := unsafe.Pointer(&_configuration_table)
  4390. *(*uintptr)(unsafe.Add(p, 8)) = __ccgo_fp(_deflate_stored)
  4391. *(*uintptr)(unsafe.Add(p, 24)) = __ccgo_fp(_deflate_fast)
  4392. *(*uintptr)(unsafe.Add(p, 40)) = __ccgo_fp(_deflate_fast)
  4393. *(*uintptr)(unsafe.Add(p, 56)) = __ccgo_fp(_deflate_fast)
  4394. *(*uintptr)(unsafe.Add(p, 72)) = __ccgo_fp(_deflate_slow)
  4395. *(*uintptr)(unsafe.Add(p, 88)) = __ccgo_fp(_deflate_slow)
  4396. *(*uintptr)(unsafe.Add(p, 104)) = __ccgo_fp(_deflate_slow)
  4397. *(*uintptr)(unsafe.Add(p, 120)) = __ccgo_fp(_deflate_slow)
  4398. *(*uintptr)(unsafe.Add(p, 136)) = __ccgo_fp(_deflate_slow)
  4399. *(*uintptr)(unsafe.Add(p, 152)) = __ccgo_fp(_deflate_slow)
  4400. }
  4401. /* max compression */
  4402. /* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4
  4403. * For deflate_fast() (levels <= 3) good is ignored and lazy has a different
  4404. * meaning.
  4405. */
  4406. /* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */
  4407. /* ===========================================================================
  4408. * Update a hash value with the given input byte
  4409. * IN assertion: all calls to UPDATE_HASH are made with consecutive input
  4410. * characters, so that a running hash key can be computed from the previous
  4411. * key instead of complete recalculation each time.
  4412. */
  4413. /* ===========================================================================
  4414. * Insert string str in the dictionary and set match_head to the previous head
  4415. * of the hash chain (the most recent string with same hash key). Return
  4416. * the previous length of the hash chain.
  4417. * If this file is compiled with -DFASTEST, the compression level is forced
  4418. * to 1, and no hash chains are maintained.
  4419. * IN assertion: all calls to INSERT_STRING are made with consecutive input
  4420. * characters and the first MIN_MATCH bytes of str are valid (except for
  4421. * the last MIN_MATCH-1 bytes of the input file).
  4422. */
  4423. /* ===========================================================================
  4424. * Initialize the hash table (avoiding 64K overflow for 16 bit systems).
  4425. * prev[] will be initialized on the fly.
  4426. */
  4427. // C documentation
  4428. //
  4429. // /* ===========================================================================
  4430. // * Slide the hash table when sliding the window down (could be avoided with 32
  4431. // * bit values at the expense of memory usage). We slide even when level == 0 to
  4432. // * keep the hash table consistent if we switch back to level > 0 later.
  4433. // */
  4434. func _slide_hash(tls *libc.TLS, s uintptr) {
  4435. var m, n, v1, v4, v5, v8 uint32
  4436. var p, v3, v7 uintptr
  4437. var wsize TuInt
  4438. _, _, _, _, _, _, _, _, _, _ = m, n, p, wsize, v1, v3, v4, v5, v7, v8
  4439. wsize = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4440. n = (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size
  4441. p = (*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr(n)*2
  4442. for {
  4443. p -= 2
  4444. v3 = p
  4445. m = uint32(*(*TPosf)(unsafe.Pointer(v3)))
  4446. if m >= wsize {
  4447. v4 = m - wsize
  4448. } else {
  4449. v4 = uint32(m_NIL)
  4450. }
  4451. *(*TPosf)(unsafe.Pointer(p)) = uint16(v4)
  4452. goto _2
  4453. _2:
  4454. ;
  4455. n--
  4456. v1 = n
  4457. if !(v1 != 0) {
  4458. break
  4459. }
  4460. }
  4461. n = wsize
  4462. p = (*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr(n)*2
  4463. for {
  4464. p -= 2
  4465. v7 = p
  4466. m = uint32(*(*TPosf)(unsafe.Pointer(v7)))
  4467. if m >= wsize {
  4468. v8 = m - wsize
  4469. } else {
  4470. v8 = uint32(m_NIL)
  4471. }
  4472. *(*TPosf)(unsafe.Pointer(p)) = uint16(v8)
  4473. /* If n is not on any hash chain, prev[n] is garbage but
  4474. * its value will never be used.
  4475. */
  4476. goto _6
  4477. _6:
  4478. ;
  4479. n--
  4480. v5 = n
  4481. if !(v5 != 0) {
  4482. break
  4483. }
  4484. }
  4485. }
  4486. // C documentation
  4487. //
  4488. // /* ===========================================================================
  4489. // * Read a new buffer from the current input stream, update the adler32
  4490. // * and total number of bytes read. All deflate() input goes through
  4491. // * this function so some applications may wish to modify it to avoid
  4492. // * allocating a large strm->next_in buffer and copying from it.
  4493. // * (See also flush_pending()).
  4494. // */
  4495. func _read_buf(tls *libc.TLS, strm Tz_streamp, buf uintptr, size uint32) (r uint32) {
  4496. var len1 uint32
  4497. _ = len1
  4498. len1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  4499. if len1 > size {
  4500. len1 = size
  4501. }
  4502. if len1 == uint32(0) {
  4503. return uint32(0)
  4504. }
  4505. *(*TuInt)(unsafe.Pointer(strm + 8)) -= len1
  4506. libc.Xmemcpy(tls, buf, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, uint64(len1))
  4507. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap == int32(1) {
  4508. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, buf, len1)
  4509. } else {
  4510. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap == int32(2) {
  4511. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, buf, len1)
  4512. }
  4513. }
  4514. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(len1)
  4515. *(*TuLong)(unsafe.Pointer(strm + 16)) += uint64(len1)
  4516. return len1
  4517. }
  4518. // C documentation
  4519. //
  4520. // /* ===========================================================================
  4521. // * Fill the window when the lookahead becomes insufficient.
  4522. // * Updates strstart and lookahead.
  4523. // *
  4524. // * IN assertion: lookahead < MIN_LOOKAHEAD
  4525. // * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
  4526. // * At least one byte has been read, or avail_in == 0; reads are
  4527. // * performed for at least two bytes (required for the zip translate_eol
  4528. // * option -- not supported here).
  4529. // */
  4530. func _fill_window(tls *libc.TLS, s uintptr) {
  4531. var curr, init1 Tulg
  4532. var more, n uint32
  4533. var str, wsize TuInt
  4534. _, _, _, _, _, _ = curr, init1, more, n, str, wsize /* Amount of free space at the end of the window. */
  4535. wsize = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4536. for cond := true; cond; cond = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < libc.Uint32FromInt32(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) {
  4537. more = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - uint64((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead) - uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  4538. /* Deal with !@#$% 64K limit: */
  4539. if uint64(4) <= uint64(2) {
  4540. if more == uint32(0) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart == uint32(0) && (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  4541. more = wsize
  4542. } else {
  4543. if more == libc.Uint32FromInt32(-libc.Int32FromInt32(1)) {
  4544. /* Very unlikely, but possible on 16 bit machine if
  4545. * strstart == 0 && lookahead == 1 (input done a byte at time)
  4546. */
  4547. more--
  4548. }
  4549. }
  4550. }
  4551. /* If the window is almost full and there is insufficient lookahead,
  4552. * move the upper half to the lower one to make room in the upper half.
  4553. */
  4554. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart >= wsize+((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1))) {
  4555. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr(wsize), uint64(wsize-more))
  4556. *(*TuInt)(unsafe.Pointer(s + 176)) -= wsize
  4557. *(*TuInt)(unsafe.Pointer(s + 172)) -= wsize /* we now have strstart >= MAX_DIST */
  4558. *(*int64)(unsafe.Pointer(s + 152)) -= libc.Int64FromUint32(wsize)
  4559. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  4560. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  4561. }
  4562. _slide_hash(tls, s)
  4563. more += wsize
  4564. }
  4565. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) {
  4566. break
  4567. }
  4568. /* If there was no sliding:
  4569. * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
  4570. * more == window_size - lookahead - strstart
  4571. * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
  4572. * => more >= window_size - 2*WSIZE + 2
  4573. * In the BIG_MEM or MMAP case (not yet supported),
  4574. * window_size == input_size + MIN_LOOKAHEAD &&
  4575. * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
  4576. * Otherwise, window_size == 2*WSIZE so more >= 2.
  4577. * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
  4578. */
  4579. 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)
  4580. *(*TuInt)(unsafe.Pointer(s + 180)) += n
  4581. /* Initialize the hash value now that we have some input: */
  4582. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead+(*Tdeflate_state)(unsafe.Pointer(s)).Finsert >= uint32(m_MIN_MATCH) {
  4583. str = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  4584. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(str))))
  4585. (*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
  4586. for (*Tdeflate_state)(unsafe.Pointer(s)).Finsert != 0 {
  4587. (*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
  4588. *(*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))
  4589. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16(str)
  4590. str++
  4591. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert--
  4592. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead+(*Tdeflate_state)(unsafe.Pointer(s)).Finsert < uint32(m_MIN_MATCH) {
  4593. break
  4594. }
  4595. }
  4596. }
  4597. /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
  4598. * but this is not important since only literal bytes will be emitted.
  4599. */
  4600. }
  4601. /* If the WIN_INIT bytes after the end of the current data have never been
  4602. * written, then zero those bytes in order to avoid memory check reports of
  4603. * the use of uninitialized (or uninitialised as Julian writes) bytes by
  4604. * the longest match routines. Update the high water mark for the next
  4605. * time through here. WIN_INIT is set to MAX_MATCH since the longest match
  4606. * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.
  4607. */
  4608. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size {
  4609. curr = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uint64((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead)
  4610. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < curr {
  4611. /* Previous high water mark below current data -- zero WIN_INIT
  4612. * bytes or up to end of window, whichever is less.
  4613. */
  4614. init1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - curr
  4615. if init1 > uint64(m_MAX_MATCH) {
  4616. init1 = uint64(m_MAX_MATCH)
  4617. }
  4618. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr(curr), 0, uint64(uint32(init1)))
  4619. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = curr + init1
  4620. } else {
  4621. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < curr+uint64(m_MAX_MATCH) {
  4622. /* High water mark at or above current data, but below current data
  4623. * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up
  4624. * to end of window, whichever is less.
  4625. */
  4626. init1 = curr + uint64(m_MAX_MATCH) - (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water
  4627. if init1 > (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size-(*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water {
  4628. init1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water
  4629. }
  4630. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water), 0, uint64(uint32(init1)))
  4631. *(*Tulg)(unsafe.Pointer(s + 5944)) += init1
  4632. }
  4633. }
  4634. }
  4635. }
  4636. // C documentation
  4637. //
  4638. // /* ========================================================================= */
  4639. func XdeflateInit_(tls *libc.TLS, strm Tz_streamp, level int32, version uintptr, stream_size int32) (r int32) {
  4640. 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)
  4641. /* To do: ignore strm->next_in if we use it as window */
  4642. }
  4643. // C documentation
  4644. //
  4645. // /* ========================================================================= */
  4646. 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) {
  4647. var s uintptr
  4648. var wrap int32
  4649. _, _ = s, wrap
  4650. wrap = int32(1)
  4651. if version == uintptr(m_Z_NULL) || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(version))) != libc.Int32FromUint8(_my_version[0]) || libc.Uint64FromInt32(stream_size) != uint64(112) {
  4652. return -int32(6)
  4653. }
  4654. if strm == uintptr(m_Z_NULL) {
  4655. return -int32(2)
  4656. }
  4657. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  4658. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  4659. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  4660. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  4661. }
  4662. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  4663. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  4664. }
  4665. if level == -int32(1) {
  4666. level = int32(6)
  4667. }
  4668. if windowBits < 0 { /* suppress zlib wrapper */
  4669. wrap = 0
  4670. if windowBits < -int32(15) {
  4671. return -int32(2)
  4672. }
  4673. windowBits = -windowBits
  4674. } else {
  4675. if windowBits > int32(15) {
  4676. wrap = int32(2) /* write gzip wrapper instead */
  4677. windowBits -= int32(16)
  4678. }
  4679. }
  4680. 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) {
  4681. return -int32(2)
  4682. }
  4683. if windowBits == int32(8) {
  4684. windowBits = int32(9)
  4685. } /* until 256-byte window bug fixed */
  4686. 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, libc.Uint32FromInt32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(5952)))
  4687. if s == uintptr(m_Z_NULL) {
  4688. return -int32(4)
  4689. }
  4690. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = s
  4691. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm = strm
  4692. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_INIT_STATE) /* to pass state test in deflateReset() */
  4693. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = wrap
  4694. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead = uintptr(m_Z_NULL)
  4695. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits = libc.Uint32FromInt32(windowBits)
  4696. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size = libc.Uint32FromInt32(int32(1) << (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits)
  4697. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - uint32(1)
  4698. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits = libc.Uint32FromInt32(memLevel) + uint32(7)
  4699. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size = libc.Uint32FromInt32(int32(1) << (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits)
  4700. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask = (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size - uint32(1)
  4701. (*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)
  4702. (*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)))
  4703. (*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)))
  4704. (*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)))
  4705. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint64(0) /* nothing written to s->window yet */
  4706. (*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize = libc.Uint32FromInt32(int32(1) << (memLevel + int32(6))) /* 16K elements by default */
  4707. /* We overlay pending_buf and sym_buf. This works since the average size
  4708. * for length/distance pairs over any compressed block is assured to be 31
  4709. * bits or less.
  4710. *
  4711. * Analysis: The longest fixed codes are a length code of 8 bits plus 5
  4712. * extra bits, for lengths 131 to 257. The longest fixed distance codes are
  4713. * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest
  4714. * possible fixed-codes length/distance pair is then 31 bits total.
  4715. *
  4716. * sym_buf starts one-fourth of the way into pending_buf. So there are
  4717. * three bytes in sym_buf for every four bytes in pending_buf. Each symbol
  4718. * in sym_buf is three bytes -- two for the distance and one for the
  4719. * literal/length. As each symbol is consumed, the pointer to the next
  4720. * sym_buf value to read moves forward three bytes. From that symbol, up to
  4721. * 31 bits are written to pending_buf. The closest the written pending_buf
  4722. * bits gets to the next sym_buf symbol to read is just before the last
  4723. * code is written. At that time, 31*(n - 2) bits have been written, just
  4724. * after 24*(n - 2) bits have been consumed from sym_buf. sym_buf starts at
  4725. * 8*n bits into pending_buf. (Note that the symbol buffer fills when n - 1
  4726. * symbols are written.) The closest the writing gets to what is unread is
  4727. * then n + 14 bits. Here n is lit_bufsize, which is 16384 by default, and
  4728. * can range from 128 to 32768.
  4729. *
  4730. * Therefore, at a minimum, there are 142 bits of space between what is
  4731. * written and what is read in the overlain buffers, so the symbols cannot
  4732. * be overwritten by the compressed data. That space is actually 139 bits,
  4733. * due to the three-bit fixed-code block header.
  4734. *
  4735. * That covers the case where either Z_FIXED is specified, forcing fixed
  4736. * codes, or when the use of fixed codes is chosen, because that choice
  4737. * results in a smaller compressed block than dynamic codes. That latter
  4738. * condition then assures that the above analysis also covers all dynamic
  4739. * blocks. A dynamic-code block will only be chosen to be emitted if it has
  4740. * fewer bits than a fixed-code block would for the same set of symbols.
  4741. * Therefore its average symbol length is assured to be less than 31. So
  4742. * the compressed data for a dynamic block also cannot overwrite the
  4743. * symbols from which it is being constructed.
  4744. */
  4745. (*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, libc.Uint32FromInt32(libc.Int32FromInt32(m_LIT_BUFS)))
  4746. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize) * uint64(4)
  4747. 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) {
  4748. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_FINISH_STATE)
  4749. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(4)]
  4750. XdeflateEnd(tls, strm)
  4751. return -int32(4)
  4752. }
  4753. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize)
  4754. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end = ((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize - uint32(1)) * uint32(3)
  4755. /* We avoid equality with lit_bufsize*3 because of wraparound at 64K
  4756. * on 16 bit machines and because stored blocks are restricted to
  4757. * 64K-1 bytes.
  4758. */
  4759. (*Tdeflate_state)(unsafe.Pointer(s)).Flevel = level
  4760. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy = strategy
  4761. (*Tdeflate_state)(unsafe.Pointer(s)).Fmethod = libc.Uint8FromInt32(method)
  4762. return XdeflateReset(tls, strm)
  4763. }
  4764. var _my_version = [6]uint8{'1', '.', '3', '.', '1'}
  4765. // C documentation
  4766. //
  4767. // /* =========================================================================
  4768. // * Check for a valid deflate stream state. Return 0 if ok, 1 if not.
  4769. // */
  4770. func _deflateStateCheck(tls *libc.TLS, strm Tz_streamp) (r int32) {
  4771. var s uintptr
  4772. _ = s
  4773. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  4774. return int32(1)
  4775. }
  4776. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4777. 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) {
  4778. return int32(1)
  4779. }
  4780. return 0
  4781. }
  4782. // C documentation
  4783. //
  4784. // /* ========================================================================= */
  4785. func XdeflateSetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength TuInt) (r int32) {
  4786. var avail uint32
  4787. var n, str, v1, v3 TuInt
  4788. var next, s uintptr
  4789. var wrap int32
  4790. _, _, _, _, _, _, _, _ = avail, n, next, s, str, wrap, v1, v3
  4791. if _deflateStateCheck(tls, strm) != 0 || dictionary == uintptr(m_Z_NULL) {
  4792. return -int32(2)
  4793. }
  4794. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4795. wrap = (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap
  4796. if wrap == int32(2) || wrap == int32(1) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_INIT_STATE) || (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead != 0 {
  4797. return -int32(2)
  4798. }
  4799. /* when using zlib wrappers, compute Adler-32 for provided dictionary */
  4800. if wrap == int32(1) {
  4801. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, dictionary, dictLength)
  4802. }
  4803. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = 0 /* avoid computing Adler-32 in read_buf */
  4804. /* if dictionary would fill window, just replace the history */
  4805. if dictLength >= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  4806. if wrap == 0 { /* already empty otherwise */
  4807. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  4808. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  4809. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  4810. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  4811. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  4812. }
  4813. dictionary += uintptr(dictLength - (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) /* use the tail */
  4814. dictLength = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4815. }
  4816. /* insert dictionary into window and hash */
  4817. avail = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  4818. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  4819. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = dictLength
  4820. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = dictionary
  4821. _fill_window(tls, s)
  4822. for (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  4823. str = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  4824. n = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))
  4825. for {
  4826. (*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
  4827. *(*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))
  4828. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16(str)
  4829. str++
  4830. goto _2
  4831. _2:
  4832. ;
  4833. n--
  4834. v1 = n
  4835. if !(v1 != 0) {
  4836. break
  4837. }
  4838. }
  4839. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = str
  4840. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  4841. _fill_window(tls, s)
  4842. }
  4843. *(*TuInt)(unsafe.Pointer(s + 172)) += (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  4844. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  4845. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  4846. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(0)
  4847. v3 = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  4848. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = v3
  4849. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = v3
  4850. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  4851. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  4852. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = avail
  4853. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = wrap
  4854. return m_Z_OK
  4855. }
  4856. // C documentation
  4857. //
  4858. // /* ========================================================================= */
  4859. func XdeflateGetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength uintptr) (r int32) {
  4860. var len1 TuInt
  4861. var s uintptr
  4862. _, _ = len1, s
  4863. if _deflateStateCheck(tls, strm) != 0 {
  4864. return -int32(2)
  4865. }
  4866. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4867. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  4868. if len1 > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  4869. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4870. }
  4871. if dictionary != uintptr(m_Z_NULL) && len1 != 0 {
  4872. 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))
  4873. }
  4874. if dictLength != uintptr(m_Z_NULL) {
  4875. *(*TuInt)(unsafe.Pointer(dictLength)) = len1
  4876. }
  4877. return m_Z_OK
  4878. }
  4879. // C documentation
  4880. //
  4881. // /* ========================================================================= */
  4882. func XdeflateResetKeep(tls *libc.TLS, strm Tz_streamp) (r int32) {
  4883. var s uintptr
  4884. var v1 TuLong
  4885. var v2 int32
  4886. var v3 uint64
  4887. _, _, _, _ = s, v1, v2, v3
  4888. if _deflateStateCheck(tls, strm) != 0 {
  4889. return -int32(2)
  4890. }
  4891. v1 = libc.Uint64FromInt32(0)
  4892. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = v1
  4893. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = v1
  4894. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* use zfree if we ever allocate msg dynamically */
  4895. (*Tz_stream)(unsafe.Pointer(strm)).Fdata_type = int32(m_Z_UNKNOWN)
  4896. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4897. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending = uint64(0)
  4898. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf
  4899. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap < 0 {
  4900. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = -(*Tdeflate_state)(unsafe.Pointer(s)).Fwrap /* was made negative by deflate(..., Z_FINISH); */
  4901. }
  4902. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  4903. v2 = int32(m_GZIP_STATE)
  4904. } else {
  4905. v2 = int32(m_INIT_STATE)
  4906. }
  4907. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = v2
  4908. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  4909. v3 = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  4910. } else {
  4911. v3 = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  4912. }
  4913. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v3
  4914. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(2)
  4915. x__tr_init(tls, s)
  4916. return m_Z_OK
  4917. }
  4918. // C documentation
  4919. //
  4920. // /* ===========================================================================
  4921. // * Initialize the "longest match" routines for a new zlib stream
  4922. // */
  4923. func _lm_init(tls *libc.TLS, s uintptr) {
  4924. var v1 TuInt
  4925. _ = v1
  4926. (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size = libc.Uint64FromInt64(2) * uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  4927. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  4928. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  4929. /* Set the default configuration parameters:
  4930. */
  4931. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fmax_lazy)
  4932. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fgood_length)
  4933. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = libc.Int32FromUint16(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fnice_length)
  4934. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fmax_chain)
  4935. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  4936. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  4937. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(0)
  4938. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  4939. v1 = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  4940. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = v1
  4941. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = v1
  4942. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  4943. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(0)
  4944. }
  4945. // C documentation
  4946. //
  4947. // /* ========================================================================= */
  4948. func XdeflateReset(tls *libc.TLS, strm Tz_streamp) (r int32) {
  4949. var ret int32
  4950. _ = ret
  4951. ret = XdeflateResetKeep(tls, strm)
  4952. if ret == m_Z_OK {
  4953. _lm_init(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fstate)
  4954. }
  4955. return ret
  4956. }
  4957. // C documentation
  4958. //
  4959. // /* ========================================================================= */
  4960. func XdeflateSetHeader(tls *libc.TLS, strm Tz_streamp, head Tgz_headerp) (r int32) {
  4961. if _deflateStateCheck(tls, strm) != 0 || (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap != int32(2) {
  4962. return -int32(2)
  4963. }
  4964. (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fgzhead = head
  4965. return m_Z_OK
  4966. }
  4967. // C documentation
  4968. //
  4969. // /* ========================================================================= */
  4970. func XdeflatePending(tls *libc.TLS, strm Tz_streamp, pending uintptr, bits uintptr) (r int32) {
  4971. if _deflateStateCheck(tls, strm) != 0 {
  4972. return -int32(2)
  4973. }
  4974. if pending != uintptr(m_Z_NULL) {
  4975. *(*uint32)(unsafe.Pointer(pending)) = uint32((*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending)
  4976. }
  4977. if bits != uintptr(m_Z_NULL) {
  4978. *(*int32)(unsafe.Pointer(bits)) = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fbi_valid
  4979. }
  4980. return m_Z_OK
  4981. }
  4982. // C documentation
  4983. //
  4984. // /* ========================================================================= */
  4985. func XdeflatePrime(tls *libc.TLS, strm Tz_streamp, bits int32, value int32) (r int32) {
  4986. var put int32
  4987. var s, p1 uintptr
  4988. _, _, _ = put, s, p1
  4989. if _deflateStateCheck(tls, strm) != 0 {
  4990. return -int32(2)
  4991. }
  4992. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4993. 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)) {
  4994. return -int32(5)
  4995. }
  4996. for cond := true; cond; cond = bits != 0 {
  4997. put = int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid
  4998. if put > bits {
  4999. put = bits
  5000. }
  5001. p1 = s + 5936
  5002. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | libc.Int32FromUint16(libc.Uint16FromInt32(value&(libc.Int32FromInt32(1)<<put-libc.Int32FromInt32(1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)))
  5003. *(*int32)(unsafe.Pointer(s + 5940)) += put
  5004. x__tr_flush_bits(tls, s)
  5005. value >>= put
  5006. bits -= put
  5007. }
  5008. return m_Z_OK
  5009. }
  5010. // C documentation
  5011. //
  5012. // /* ========================================================================= */
  5013. func XdeflateParams(tls *libc.TLS, strm Tz_streamp, level int32, strategy int32) (r int32) {
  5014. var err int32
  5015. var func1 Tcompress_func
  5016. var s uintptr
  5017. _, _, _ = err, func1, s
  5018. if _deflateStateCheck(tls, strm) != 0 {
  5019. return -int32(2)
  5020. }
  5021. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5022. if level == -int32(1) {
  5023. level = int32(6)
  5024. }
  5025. if level < 0 || level > int32(9) || strategy < 0 || strategy > int32(m_Z_FIXED) {
  5026. return -int32(2)
  5027. }
  5028. func1 = _configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Ffunc1
  5029. if (strategy != (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy || func1 != _configuration_table[level].Ffunc1) && (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush != -int32(2) {
  5030. /* Flush the last buffer: */
  5031. err = Xdeflate(tls, strm, int32(m_Z_BLOCK))
  5032. if err == -int32(2) {
  5033. return err
  5034. }
  5035. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 || libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start+libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead) != 0 {
  5036. return -int32(5)
  5037. }
  5038. }
  5039. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel != level {
  5040. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches != uint32(0) {
  5041. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches == uint32(1) {
  5042. _slide_hash(tls, s)
  5043. } else {
  5044. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  5045. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  5046. }
  5047. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = uint32(0)
  5048. }
  5049. (*Tdeflate_state)(unsafe.Pointer(s)).Flevel = level
  5050. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(_configuration_table[level].Fmax_lazy)
  5051. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(_configuration_table[level].Fgood_length)
  5052. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = libc.Int32FromUint16(_configuration_table[level].Fnice_length)
  5053. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(_configuration_table[level].Fmax_chain)
  5054. }
  5055. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy = strategy
  5056. return m_Z_OK
  5057. }
  5058. // C documentation
  5059. //
  5060. // /* ========================================================================= */
  5061. func XdeflateTune(tls *libc.TLS, strm Tz_streamp, good_length int32, max_lazy int32, nice_length int32, max_chain int32) (r int32) {
  5062. var s uintptr
  5063. _ = s
  5064. if _deflateStateCheck(tls, strm) != 0 {
  5065. return -int32(2)
  5066. }
  5067. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5068. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = libc.Uint32FromInt32(good_length)
  5069. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = libc.Uint32FromInt32(max_lazy)
  5070. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = nice_length
  5071. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = libc.Uint32FromInt32(max_chain)
  5072. return m_Z_OK
  5073. }
  5074. // C documentation
  5075. //
  5076. // /* =========================================================================
  5077. // * For the default windowBits of 15 and memLevel of 8, this function returns a
  5078. // * close to exact, as well as small, upper bound on the compressed size. This
  5079. // * is an expansion of ~0.03%, plus a small constant.
  5080. // *
  5081. // * For any setting other than those defaults for windowBits and memLevel, one
  5082. // * of two worst case bounds is returned. This is at most an expansion of ~4% or
  5083. // * ~13%, plus a small constant.
  5084. // *
  5085. // * Both the 0.03% and 4% derive from the overhead of stored blocks. The first
  5086. // * one is for stored blocks of 16383 bytes (memLevel == 8), whereas the second
  5087. // * is for stored blocks of 127 bytes (the worst case memLevel == 1). The
  5088. // * expansion results from five bytes of header for each stored block.
  5089. // *
  5090. // * The larger expansion of 13% results from a window size less than or equal to
  5091. // * the symbols buffer size (windowBits <= memLevel + 7). In that case some of
  5092. // * the data being compressed may have slid out of the sliding window, impeding
  5093. // * a stored block from being emitted. Then the only choice is a fixed or
  5094. // * dynamic block, where a fixed block limits the maximum expansion to 9 bits
  5095. // * per 8-bit byte, plus 10 bits for every block. The smallest block size for
  5096. // * which this can occur is 255 (memLevel == 2).
  5097. // *
  5098. // * Shifts are used to approximate divisions, for speed.
  5099. // */
  5100. func XdeflateBound(tls *libc.TLS, strm Tz_streamp, sourceLen TuLong) (r TuLong) {
  5101. var fixedlen, storelen, wraplen TuLong
  5102. var s, str, v3, v5 uintptr
  5103. var v1, v7 uint64
  5104. var v2 int32
  5105. _, _, _, _, _, _, _, _, _, _ = fixedlen, s, storelen, str, wraplen, v1, v2, v3, v5, v7
  5106. /* upper bound for fixed blocks with 9-bit literals and length 255
  5107. (memLevel == 2, which is the lowest that may not use stored blocks) --
  5108. ~13% overhead plus a small constant */
  5109. fixedlen = sourceLen + sourceLen>>libc.Int32FromInt32(3) + sourceLen>>libc.Int32FromInt32(8) + sourceLen>>libc.Int32FromInt32(9) + uint64(4)
  5110. /* upper bound for stored blocks with length 127 (memLevel == 1) --
  5111. ~4% overhead plus a small constant */
  5112. storelen = sourceLen + sourceLen>>libc.Int32FromInt32(5) + sourceLen>>libc.Int32FromInt32(7) + sourceLen>>libc.Int32FromInt32(11) + uint64(7)
  5113. /* if can't get parameters, return larger bound plus a zlib wrapper */
  5114. if _deflateStateCheck(tls, strm) != 0 {
  5115. if fixedlen > storelen {
  5116. v1 = fixedlen
  5117. } else {
  5118. v1 = storelen
  5119. }
  5120. return v1 + uint64(6)
  5121. }
  5122. /* compute wrapper length */
  5123. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5124. switch (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap {
  5125. case 0: /* raw deflate */
  5126. wraplen = uint64(0)
  5127. case int32(1): /* zlib wrapper */
  5128. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != 0 {
  5129. v2 = int32(4)
  5130. } else {
  5131. v2 = 0
  5132. }
  5133. wraplen = libc.Uint64FromInt32(int32(6) + v2)
  5134. case int32(2): /* gzip wrapper */
  5135. wraplen = uint64(18)
  5136. if (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead != uintptr(m_Z_NULL) {
  5137. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  5138. wraplen += uint64(uint32(2) + (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len)
  5139. }
  5140. str = (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname
  5141. if str != uintptr(m_Z_NULL) {
  5142. for {
  5143. wraplen++
  5144. goto _4
  5145. _4:
  5146. ;
  5147. v3 = str
  5148. str++
  5149. if !(*(*TBytef)(unsafe.Pointer(v3)) != 0) {
  5150. break
  5151. }
  5152. }
  5153. }
  5154. str = (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment
  5155. if str != uintptr(m_Z_NULL) {
  5156. for {
  5157. wraplen++
  5158. goto _6
  5159. _6:
  5160. ;
  5161. v5 = str
  5162. str++
  5163. if !(*(*TBytef)(unsafe.Pointer(v5)) != 0) {
  5164. break
  5165. }
  5166. }
  5167. }
  5168. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5169. wraplen += uint64(2)
  5170. }
  5171. }
  5172. default: /* for compiler happiness */
  5173. wraplen = uint64(6)
  5174. }
  5175. /* if not default parameters, return one of the conservative bounds */
  5176. if (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits != uint32(15) || (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits != libc.Uint32FromInt32(libc.Int32FromInt32(8)+libc.Int32FromInt32(7)) {
  5177. if (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits <= (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits && (*Tdeflate_state)(unsafe.Pointer(s)).Flevel != 0 {
  5178. v7 = fixedlen
  5179. } else {
  5180. v7 = storelen
  5181. }
  5182. return v7 + wraplen
  5183. }
  5184. /* default settings: return tight bound for that case -- ~0.03% overhead
  5185. plus a small constant */
  5186. return sourceLen + sourceLen>>libc.Int32FromInt32(12) + sourceLen>>libc.Int32FromInt32(14) + sourceLen>>libc.Int32FromInt32(25) + uint64(13) - uint64(6) + wraplen
  5187. }
  5188. // C documentation
  5189. //
  5190. // /* =========================================================================
  5191. // * Put a short in the pending buffer. The 16-bit value is put in MSB order.
  5192. // * IN assertion: the stream state is correct and there is enough room in
  5193. // * pending_buf.
  5194. // */
  5195. func _putShortMSB(tls *libc.TLS, s uintptr, b TuInt) {
  5196. var v1, v3 Tulg
  5197. var v2, v4 uintptr
  5198. _, _, _, _ = v1, v2, v3, v4
  5199. v2 = s + 40
  5200. v1 = *(*Tulg)(unsafe.Pointer(v2))
  5201. *(*Tulg)(unsafe.Pointer(v2))++
  5202. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = uint8(b >> libc.Int32FromInt32(8))
  5203. v4 = s + 40
  5204. v3 = *(*Tulg)(unsafe.Pointer(v4))
  5205. *(*Tulg)(unsafe.Pointer(v4))++
  5206. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(b & libc.Uint32FromInt32(0xff))
  5207. }
  5208. // C documentation
  5209. //
  5210. // /* =========================================================================
  5211. // * Flush as much pending output as possible. All deflate() output, except for
  5212. // * some deflate_stored() output, goes through this function so some
  5213. // * applications may wish to modify it to avoid allocating a large
  5214. // * strm->next_out buffer and copying into it. (See also read_buf()).
  5215. // */
  5216. func _flush_pending(tls *libc.TLS, strm Tz_streamp) {
  5217. var len1 uint32
  5218. var s uintptr
  5219. _, _ = len1, s
  5220. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5221. x__tr_flush_bits(tls, s)
  5222. len1 = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending)
  5223. if len1 > (*Tz_stream)(unsafe.Pointer(strm)).Favail_out {
  5224. len1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  5225. }
  5226. if len1 == uint32(0) {
  5227. return
  5228. }
  5229. libc.Xmemcpy(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out, uint64(len1))
  5230. *(*uintptr)(unsafe.Pointer(strm + 24)) += uintptr(len1)
  5231. *(*uintptr)(unsafe.Pointer(s + 32)) += uintptr(len1)
  5232. *(*TuLong)(unsafe.Pointer(strm + 40)) += uint64(len1)
  5233. *(*TuInt)(unsafe.Pointer(strm + 32)) -= len1
  5234. *(*Tulg)(unsafe.Pointer(s + 40)) -= uint64(len1)
  5235. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == uint64(0) {
  5236. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf
  5237. }
  5238. }
  5239. /* ===========================================================================
  5240. * Update the header CRC with the bytes s->pending_buf[beg..s->pending - 1].
  5241. */
  5242. // C documentation
  5243. //
  5244. // /* ========================================================================= */
  5245. func Xdeflate(tls *libc.TLS, strm Tz_streamp, flush int32) (r int32) {
  5246. 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
  5247. var bstate Tblock_state
  5248. var copy1, header, left, level_flags TuInt
  5249. var old_flush, val, val1, v1, v2, v22, v23, v28, v29, v30, v31, v32, v43, v44, v63, v64, v65, v82 int32
  5250. 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
  5251. var v3 bool
  5252. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  5253. if _deflateStateCheck(tls, strm) != 0 || flush > int32(m_Z_BLOCK) || flush < 0 {
  5254. return -int32(2)
  5255. }
  5256. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5257. 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) {
  5258. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(2)]
  5259. return -libc.Int32FromInt32(2)
  5260. }
  5261. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5262. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  5263. return -libc.Int32FromInt32(5)
  5264. }
  5265. old_flush = (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush
  5266. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = flush
  5267. /* Flush as much pending output as possible */
  5268. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5269. _flush_pending(tls, strm)
  5270. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5271. /* Since avail_out is 0, deflate will be called again with
  5272. * more output space, but possibly with both pending and
  5273. * avail_in equal to zero. There won't be anything to do,
  5274. * but this is not an error situation so make sure we
  5275. * return OK instead of BUF_ERROR at next call of deflate:
  5276. */
  5277. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5278. return m_Z_OK
  5279. }
  5280. /* Make sure there is something to do and avoid duplicate consecutive
  5281. * flushes. For repeated and useless calls with Z_FINISH, we keep
  5282. * returning Z_STREAM_END instead of Z_BUF_ERROR.
  5283. */
  5284. } else {
  5285. if v3 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0); v3 {
  5286. if flush > int32(4) {
  5287. v1 = int32(9)
  5288. } else {
  5289. v1 = 0
  5290. }
  5291. if old_flush > int32(4) {
  5292. v2 = int32(9)
  5293. } else {
  5294. v2 = 0
  5295. }
  5296. }
  5297. if v3 && flush*int32(2)-v1 <= old_flush*int32(2)-v2 && flush != int32(m_Z_FINISH) {
  5298. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  5299. return -libc.Int32FromInt32(5)
  5300. }
  5301. }
  5302. /* User must not provide more input after the first FINISH: */
  5303. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_FINISH_STATE) && (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != uint32(0) {
  5304. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  5305. return -libc.Int32FromInt32(5)
  5306. }
  5307. /* Write the header */
  5308. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_INIT_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == 0 {
  5309. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5310. }
  5311. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_INIT_STATE) {
  5312. /* zlib header */
  5313. header = (uint32(m_Z_DEFLATED) + ((*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits-uint32(8))<<int32(4)) << int32(8)
  5314. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  5315. level_flags = uint32(0)
  5316. } else {
  5317. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(6) {
  5318. level_flags = uint32(1)
  5319. } else {
  5320. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(6) {
  5321. level_flags = uint32(2)
  5322. } else {
  5323. level_flags = uint32(3)
  5324. }
  5325. }
  5326. }
  5327. header |= level_flags << libc.Int32FromInt32(6)
  5328. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != uint32(0) {
  5329. header |= uint32(m_PRESET_DICT1)
  5330. }
  5331. header += uint32(31) - header%uint32(31)
  5332. _putShortMSB(tls, s, header)
  5333. /* Save the adler32 of the preset dictionary: */
  5334. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != uint32(0) {
  5335. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler>>libc.Int32FromInt32(16)))
  5336. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler&libc.Uint64FromInt32(0xffff)))
  5337. }
  5338. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  5339. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5340. /* Compression must start with an empty pending buffer */
  5341. _flush_pending(tls, strm)
  5342. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5343. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5344. return m_Z_OK
  5345. }
  5346. }
  5347. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_GZIP_STATE) {
  5348. /* gzip header */
  5349. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  5350. v5 = s + 40
  5351. v4 = *(*Tulg)(unsafe.Pointer(v5))
  5352. *(*Tulg)(unsafe.Pointer(v5))++
  5353. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = libc.Uint8FromInt32(libc.Int32FromInt32(31))
  5354. v7 = s + 40
  5355. v6 = *(*Tulg)(unsafe.Pointer(v7))
  5356. *(*Tulg)(unsafe.Pointer(v7))++
  5357. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v6))) = libc.Uint8FromInt32(libc.Int32FromInt32(139))
  5358. v9 = s + 40
  5359. v8 = *(*Tulg)(unsafe.Pointer(v9))
  5360. *(*Tulg)(unsafe.Pointer(v9))++
  5361. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = libc.Uint8FromInt32(libc.Int32FromInt32(8))
  5362. if (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead == uintptr(m_Z_NULL) {
  5363. v11 = s + 40
  5364. v10 = *(*Tulg)(unsafe.Pointer(v11))
  5365. *(*Tulg)(unsafe.Pointer(v11))++
  5366. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = libc.Uint8FromInt32(libc.Int32FromInt32(0))
  5367. v13 = s + 40
  5368. v12 = *(*Tulg)(unsafe.Pointer(v13))
  5369. *(*Tulg)(unsafe.Pointer(v13))++
  5370. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v12))) = libc.Uint8FromInt32(libc.Int32FromInt32(0))
  5371. v15 = s + 40
  5372. v14 = *(*Tulg)(unsafe.Pointer(v15))
  5373. *(*Tulg)(unsafe.Pointer(v15))++
  5374. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = libc.Uint8FromInt32(libc.Int32FromInt32(0))
  5375. v17 = s + 40
  5376. v16 = *(*Tulg)(unsafe.Pointer(v17))
  5377. *(*Tulg)(unsafe.Pointer(v17))++
  5378. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v16))) = libc.Uint8FromInt32(libc.Int32FromInt32(0))
  5379. v19 = s + 40
  5380. v18 = *(*Tulg)(unsafe.Pointer(v19))
  5381. *(*Tulg)(unsafe.Pointer(v19))++
  5382. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v18))) = libc.Uint8FromInt32(libc.Int32FromInt32(0))
  5383. v21 = s + 40
  5384. v20 = *(*Tulg)(unsafe.Pointer(v21))
  5385. *(*Tulg)(unsafe.Pointer(v21))++
  5386. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(9) {
  5387. v22 = int32(2)
  5388. } else {
  5389. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  5390. v23 = int32(4)
  5391. } else {
  5392. v23 = 0
  5393. }
  5394. v22 = v23
  5395. }
  5396. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v20))) = libc.Uint8FromInt32(v22)
  5397. v25 = s + 40
  5398. v24 = *(*Tulg)(unsafe.Pointer(v25))
  5399. *(*Tulg)(unsafe.Pointer(v25))++
  5400. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = libc.Uint8FromInt32(libc.Int32FromInt32(m_OS_CODE))
  5401. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5402. /* Compression must start with an empty pending buffer */
  5403. _flush_pending(tls, strm)
  5404. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5405. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5406. return m_Z_OK
  5407. }
  5408. } else {
  5409. v27 = s + 40
  5410. v26 = *(*Tulg)(unsafe.Pointer(v27))
  5411. *(*Tulg)(unsafe.Pointer(v27))++
  5412. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftext != 0 {
  5413. v28 = int32(1)
  5414. } else {
  5415. v28 = 0
  5416. }
  5417. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5418. v29 = int32(2)
  5419. } else {
  5420. v29 = 0
  5421. }
  5422. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra == uintptr(m_Z_NULL) {
  5423. v30 = 0
  5424. } else {
  5425. v30 = int32(4)
  5426. }
  5427. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname == uintptr(m_Z_NULL) {
  5428. v31 = 0
  5429. } else {
  5430. v31 = int32(8)
  5431. }
  5432. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment == uintptr(m_Z_NULL) {
  5433. v32 = 0
  5434. } else {
  5435. v32 = int32(16)
  5436. }
  5437. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = libc.Uint8FromInt32(v28 + v29 + v30 + v31 + v32)
  5438. v34 = s + 40
  5439. v33 = *(*Tulg)(unsafe.Pointer(v34))
  5440. *(*Tulg)(unsafe.Pointer(v34))++
  5441. *(*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))
  5442. v36 = s + 40
  5443. v35 = *(*Tulg)(unsafe.Pointer(v36))
  5444. *(*Tulg)(unsafe.Pointer(v36))++
  5445. *(*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))
  5446. v38 = s + 40
  5447. v37 = *(*Tulg)(unsafe.Pointer(v38))
  5448. *(*Tulg)(unsafe.Pointer(v38))++
  5449. *(*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))
  5450. v40 = s + 40
  5451. v39 = *(*Tulg)(unsafe.Pointer(v40))
  5452. *(*Tulg)(unsafe.Pointer(v40))++
  5453. *(*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))
  5454. v42 = s + 40
  5455. v41 = *(*Tulg)(unsafe.Pointer(v42))
  5456. *(*Tulg)(unsafe.Pointer(v42))++
  5457. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(9) {
  5458. v43 = int32(2)
  5459. } else {
  5460. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  5461. v44 = int32(4)
  5462. } else {
  5463. v44 = 0
  5464. }
  5465. v43 = v44
  5466. }
  5467. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v41))) = libc.Uint8FromInt32(v43)
  5468. v46 = s + 40
  5469. v45 = *(*Tulg)(unsafe.Pointer(v46))
  5470. *(*Tulg)(unsafe.Pointer(v46))++
  5471. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v45))) = libc.Uint8FromInt32((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fos & libc.Int32FromInt32(0xff))
  5472. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  5473. v48 = s + 40
  5474. v47 = *(*Tulg)(unsafe.Pointer(v48))
  5475. *(*Tulg)(unsafe.Pointer(v48))++
  5476. *(*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))
  5477. v50 = s + 40
  5478. v49 = *(*Tulg)(unsafe.Pointer(v50))
  5479. *(*Tulg)(unsafe.Pointer(v50))++
  5480. *(*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))
  5481. }
  5482. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5483. (*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))
  5484. }
  5485. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint64(0)
  5486. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_EXTRA_STATE)
  5487. }
  5488. }
  5489. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_EXTRA_STATE) {
  5490. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  5491. beg = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending /* start of bytes to update crc */
  5492. left = uint32(uint64((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len&libc.Uint32FromInt32(0xffff)) - (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex)
  5493. for (*Tdeflate_state)(unsafe.Pointer(s)).Fpending+uint64(left) > (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5494. copy1 = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fpending)
  5495. 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))
  5496. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size
  5497. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg {
  5498. (*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))
  5499. }
  5500. *(*Tulg)(unsafe.Pointer(s + 64)) += uint64(copy1)
  5501. _flush_pending(tls, strm)
  5502. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5503. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5504. return m_Z_OK
  5505. }
  5506. beg = uint64(0)
  5507. left -= copy1
  5508. }
  5509. 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))
  5510. *(*Tulg)(unsafe.Pointer(s + 40)) += uint64(left)
  5511. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg {
  5512. (*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))
  5513. }
  5514. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint64(0)
  5515. }
  5516. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_NAME_STATE)
  5517. }
  5518. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_NAME_STATE) {
  5519. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname != uintptr(m_Z_NULL) {
  5520. beg1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  5521. for cond := true; cond; cond = val != 0 {
  5522. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5523. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg1 {
  5524. (*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))
  5525. }
  5526. _flush_pending(tls, strm)
  5527. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5528. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5529. return m_Z_OK
  5530. }
  5531. beg1 = uint64(0)
  5532. }
  5533. v52 = s + 64
  5534. v51 = *(*Tulg)(unsafe.Pointer(v52))
  5535. *(*Tulg)(unsafe.Pointer(v52))++
  5536. val = libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname + uintptr(v51))))
  5537. v54 = s + 40
  5538. v53 = *(*Tulg)(unsafe.Pointer(v54))
  5539. *(*Tulg)(unsafe.Pointer(v54))++
  5540. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v53))) = libc.Uint8FromInt32(val)
  5541. }
  5542. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg1 {
  5543. (*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))
  5544. }
  5545. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint64(0)
  5546. }
  5547. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_COMMENT_STATE)
  5548. }
  5549. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_COMMENT_STATE) {
  5550. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment != uintptr(m_Z_NULL) {
  5551. beg2 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  5552. for cond := true; cond; cond = val1 != 0 {
  5553. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5554. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg2 {
  5555. (*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))
  5556. }
  5557. _flush_pending(tls, strm)
  5558. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5559. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5560. return m_Z_OK
  5561. }
  5562. beg2 = uint64(0)
  5563. }
  5564. v56 = s + 64
  5565. v55 = *(*Tulg)(unsafe.Pointer(v56))
  5566. *(*Tulg)(unsafe.Pointer(v56))++
  5567. val1 = libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment + uintptr(v55))))
  5568. v58 = s + 40
  5569. v57 = *(*Tulg)(unsafe.Pointer(v58))
  5570. *(*Tulg)(unsafe.Pointer(v58))++
  5571. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v57))) = libc.Uint8FromInt32(val1)
  5572. }
  5573. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg2 {
  5574. (*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))
  5575. }
  5576. }
  5577. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_HCRC_STATE)
  5578. }
  5579. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_HCRC_STATE) {
  5580. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5581. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending+uint64(2) > (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5582. _flush_pending(tls, strm)
  5583. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5584. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5585. return m_Z_OK
  5586. }
  5587. }
  5588. v60 = s + 40
  5589. v59 = *(*Tulg)(unsafe.Pointer(v60))
  5590. *(*Tulg)(unsafe.Pointer(v60))++
  5591. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v59))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler & libc.Uint64FromInt32(0xff))
  5592. v62 = s + 40
  5593. v61 = *(*Tulg)(unsafe.Pointer(v62))
  5594. *(*Tulg)(unsafe.Pointer(v62))++
  5595. *(*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))
  5596. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  5597. }
  5598. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5599. /* Compression must start with an empty pending buffer */
  5600. _flush_pending(tls, strm)
  5601. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5602. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5603. return m_Z_OK
  5604. }
  5605. }
  5606. /* Start a new block or continue the current one.
  5607. */
  5608. 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) {
  5609. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == 0 {
  5610. v63 = _deflate_stored(tls, s, flush)
  5611. } else {
  5612. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_HUFFMAN_ONLY) {
  5613. v64 = _deflate_huff(tls, s, flush)
  5614. } else {
  5615. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_RLE) {
  5616. v65 = _deflate_rle(tls, s, flush)
  5617. } else {
  5618. v65 = (*(*func(*libc.TLS, uintptr, int32) Tblock_state)(unsafe.Pointer(&struct{ uintptr }{_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Ffunc1})))(tls, s, flush)
  5619. }
  5620. v64 = v65
  5621. }
  5622. v63 = v64
  5623. }
  5624. bstate = v63
  5625. if bstate == int32(_finish_started) || bstate == int32(_finish_done) {
  5626. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_FINISH_STATE)
  5627. }
  5628. if bstate == int32(_need_more) || bstate == int32(_finish_started) {
  5629. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5630. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1) /* avoid BUF_ERROR next call, see above */
  5631. }
  5632. return m_Z_OK
  5633. /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
  5634. * of deflate should use the same flush parameter to make sure
  5635. * that the flush is complete. So we don't have to output an
  5636. * empty block here, this will be done at next call. This also
  5637. * ensures that for a very small output buffer, we emit at most
  5638. * one empty block.
  5639. */
  5640. }
  5641. if bstate == int32(_block_done) {
  5642. if flush == int32(m_Z_PARTIAL_FLUSH) {
  5643. x__tr_align(tls, s)
  5644. } else {
  5645. if flush != int32(m_Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */
  5646. x__tr_stored_block(tls, s, libc.UintptrFromInt32(0), uint64(0), 0)
  5647. /* For a full flush, this empty block will be recognized
  5648. * as a special marker by inflate_sync().
  5649. */
  5650. if flush == int32(m_Z_FULL_FLUSH) {
  5651. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  5652. 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 */
  5653. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  5654. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  5655. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  5656. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  5657. }
  5658. }
  5659. }
  5660. }
  5661. _flush_pending(tls, strm)
  5662. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5663. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1) /* avoid BUF_ERROR at next call, see above */
  5664. return m_Z_OK
  5665. }
  5666. }
  5667. }
  5668. if flush != int32(m_Z_FINISH) {
  5669. return m_Z_OK
  5670. }
  5671. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap <= 0 {
  5672. return int32(m_Z_STREAM_END)
  5673. }
  5674. /* Write the trailer */
  5675. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  5676. v67 = s + 40
  5677. v66 = *(*Tulg)(unsafe.Pointer(v67))
  5678. *(*Tulg)(unsafe.Pointer(v67))++
  5679. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v66))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler & libc.Uint64FromInt32(0xff))
  5680. v69 = s + 40
  5681. v68 = *(*Tulg)(unsafe.Pointer(v69))
  5682. *(*Tulg)(unsafe.Pointer(v69))++
  5683. *(*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))
  5684. v71 = s + 40
  5685. v70 = *(*Tulg)(unsafe.Pointer(v71))
  5686. *(*Tulg)(unsafe.Pointer(v71))++
  5687. *(*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))
  5688. v73 = s + 40
  5689. v72 = *(*Tulg)(unsafe.Pointer(v73))
  5690. *(*Tulg)(unsafe.Pointer(v73))++
  5691. *(*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))
  5692. v75 = s + 40
  5693. v74 = *(*Tulg)(unsafe.Pointer(v75))
  5694. *(*Tulg)(unsafe.Pointer(v75))++
  5695. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v74))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in & libc.Uint64FromInt32(0xff))
  5696. v77 = s + 40
  5697. v76 = *(*Tulg)(unsafe.Pointer(v77))
  5698. *(*Tulg)(unsafe.Pointer(v77))++
  5699. *(*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))
  5700. v79 = s + 40
  5701. v78 = *(*Tulg)(unsafe.Pointer(v79))
  5702. *(*Tulg)(unsafe.Pointer(v79))++
  5703. *(*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))
  5704. v81 = s + 40
  5705. v80 = *(*Tulg)(unsafe.Pointer(v81))
  5706. *(*Tulg)(unsafe.Pointer(v81))++
  5707. *(*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))
  5708. } else {
  5709. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler>>libc.Int32FromInt32(16)))
  5710. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler&libc.Uint64FromInt32(0xffff)))
  5711. }
  5712. _flush_pending(tls, strm)
  5713. /* If avail_out is zero, the application will call deflate again
  5714. * to flush the rest.
  5715. */
  5716. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap > 0 {
  5717. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = -(*Tdeflate_state)(unsafe.Pointer(s)).Fwrap
  5718. } /* write the trailer only once! */
  5719. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5720. v82 = m_Z_OK
  5721. } else {
  5722. v82 = int32(m_Z_STREAM_END)
  5723. }
  5724. return v82
  5725. }
  5726. // C documentation
  5727. //
  5728. // /* ========================================================================= */
  5729. func XdeflateEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  5730. var status, v1 int32
  5731. _, _ = status, v1
  5732. if _deflateStateCheck(tls, strm) != 0 {
  5733. return -int32(2)
  5734. }
  5735. status = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fstatus
  5736. /* Deallocate in reverse order of allocations: */
  5737. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending_buf != 0 {
  5738. (*(*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)
  5739. }
  5740. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fhead != 0 {
  5741. (*(*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)
  5742. }
  5743. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fprev != 0 {
  5744. (*(*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)
  5745. }
  5746. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwindow != 0 {
  5747. (*(*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)
  5748. }
  5749. (*(*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)
  5750. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  5751. if status == int32(m_BUSY_STATE) {
  5752. v1 = -int32(3)
  5753. } else {
  5754. v1 = m_Z_OK
  5755. }
  5756. return v1
  5757. }
  5758. // C documentation
  5759. //
  5760. // /* =========================================================================
  5761. // * Copy the source state to the destination state.
  5762. // * To simplify the source, this is not supported for 16-bit MSDOS (which
  5763. // * doesn't have enough memory anyway to duplicate compression states).
  5764. // */
  5765. func XdeflateCopy(tls *libc.TLS, dest Tz_streamp, source Tz_streamp) (r int32) {
  5766. var ds, ss uintptr
  5767. _, _ = ds, ss
  5768. if _deflateStateCheck(tls, source) != 0 || dest == uintptr(m_Z_NULL) {
  5769. return -int32(2)
  5770. }
  5771. ss = (*Tz_stream)(unsafe.Pointer(source)).Fstate
  5772. libc.Xmemcpy(tls, dest, source, uint64(112))
  5773. 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, libc.Uint32FromInt32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(5952)))
  5774. if ds == uintptr(m_Z_NULL) {
  5775. return -int32(4)
  5776. }
  5777. (*Tz_stream)(unsafe.Pointer(dest)).Fstate = ds
  5778. libc.Xmemcpy(tls, ds, ss, uint64(5952))
  5779. (*Tdeflate_state)(unsafe.Pointer(ds)).Fstrm = dest
  5780. (*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)))
  5781. (*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)))
  5782. (*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)))
  5783. (*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, libc.Uint32FromInt32(libc.Int32FromInt32(m_LIT_BUFS)))
  5784. 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) {
  5785. XdeflateEnd(tls, dest)
  5786. return -int32(4)
  5787. }
  5788. /* following zmemcpy do not work for 16-bit MSDOS */
  5789. 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))
  5790. 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))
  5791. 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))
  5792. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf, (*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_buf, uint64((*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize*uint32(m_LIT_BUFS)))
  5793. (*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))
  5794. (*Tdeflate_state)(unsafe.Pointer(ds)).Fsym_buf = (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize)
  5795. (*Tdeflate_state)(unsafe.Pointer(ds)).Fl_desc.Fdyn_tree = ds + 212
  5796. (*Tdeflate_state)(unsafe.Pointer(ds)).Fd_desc.Fdyn_tree = ds + 2504
  5797. (*Tdeflate_state)(unsafe.Pointer(ds)).Fbl_desc.Fdyn_tree = ds + 2748
  5798. return m_Z_OK
  5799. }
  5800. // C documentation
  5801. //
  5802. // /* ===========================================================================
  5803. // * Set match_start to the longest match starting at the given string and
  5804. // * return its length. Matches shorter or equal to prev_length are discarded,
  5805. // * in which case the result is equal to prev_length and match_start is
  5806. // * garbage.
  5807. // * IN assertions: cur_match is the head of the hash chain for the current
  5808. // * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
  5809. // * OUT assertion: the match length is not greater than s->lookahead.
  5810. // */
  5811. func _longest_match(tls *libc.TLS, s uintptr, cur_match TIPos) (r TuInt) {
  5812. var best_len, len1, nice_match int32
  5813. var chain_length, v1, v3 uint32
  5814. var limit, v2 TIPos
  5815. var match, prev, scan, strend, v10, v11, v13, v14, v16, v17, v19, v20, v22, v23, v25, v26, v28, v29, v6, v8, v9 uintptr
  5816. var scan_end, scan_end1 TByte
  5817. var wmask TuInt
  5818. var v12, v15, v18, v21, v24, v27, v30, v4, v7 bool
  5819. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  5820. chain_length = (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length /* max hash chain length */
  5821. scan = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) /* length of current match */
  5822. best_len = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length) /* best match length so far */
  5823. nice_match = (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match
  5824. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  5825. v1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - ((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)))
  5826. } else {
  5827. v1 = uint32(m_NIL)
  5828. } /* stop if match long enough */
  5829. limit = v1
  5830. /* Stop when cur_match becomes <= limit. To simplify the code,
  5831. * we prevent matches with the string of window index 0.
  5832. */
  5833. prev = (*Tdeflate_state)(unsafe.Pointer(s)).Fprev
  5834. wmask = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask
  5835. strend = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uintptr(m_MAX_MATCH)
  5836. scan_end1 = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len-int32(1))))
  5837. scan_end = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len)))
  5838. /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
  5839. * It is easy to get rid of this optimization if necessary.
  5840. */
  5841. /* Do not waste too much time if we already have a good match: */
  5842. if (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length >= (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match {
  5843. chain_length >>= uint32(2)
  5844. }
  5845. /* Do not look for matches beyond the end of the input. This is necessary
  5846. * to make deflate deterministic.
  5847. */
  5848. if libc.Uint32FromInt32(nice_match) > (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  5849. nice_match = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead)
  5850. }
  5851. for {
  5852. match = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(cur_match)
  5853. /* Skip to next match if the match length cannot increase
  5854. * or if the match length is less than 2. Note that the checks below
  5855. * for insufficient lookahead only occur occasionally for performance
  5856. * reasons. Therefore uninitialized memory will be accessed, and
  5857. * conditional jumps will be made that depend on those values.
  5858. * However the length of the match is limited to the lookahead, so
  5859. * the output of deflate is not affected by the uninitialized values.
  5860. */
  5861. if v7 = libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(match + uintptr(best_len)))) != libc.Int32FromUint8(scan_end) || libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(match + uintptr(best_len-int32(1))))) != libc.Int32FromUint8(scan_end1) || libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(match))) != libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(scan))); !v7 {
  5862. match++
  5863. v6 = match
  5864. }
  5865. if v7 || libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v6))) != libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(scan + 1))) {
  5866. goto _5
  5867. }
  5868. /* The check at best_len - 1 can be removed because it will be made
  5869. * again later. (This heuristic is not always a win.)
  5870. * It is not necessary to compare scan[2] and match[2] since they
  5871. * are always equal when the other bytes match, given that
  5872. * the hash keys are equal and that HASH_BITS >= 8.
  5873. */
  5874. scan += uintptr(2)
  5875. /* The check at best_len - 1 can be removed because it will be made
  5876. * again later. (This heuristic is not always a win.)
  5877. * It is not necessary to compare scan[2] and match[2] since they
  5878. * are always equal when the other bytes match, given that
  5879. * the hash keys are equal and that HASH_BITS >= 8.
  5880. */
  5881. match++
  5882. /* We check for insufficient lookahead only every 8th comparison;
  5883. * the 256th check will be made at strstart + 258.
  5884. */
  5885. for {
  5886. goto _31
  5887. _31:
  5888. ;
  5889. scan++
  5890. v8 = scan
  5891. match++
  5892. v9 = match
  5893. if v12 = libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v8))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v9))); v12 {
  5894. scan++
  5895. v10 = scan
  5896. match++
  5897. v11 = match
  5898. }
  5899. if v15 = v12 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v10))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v11))); v15 {
  5900. scan++
  5901. v13 = scan
  5902. match++
  5903. v14 = match
  5904. }
  5905. if v18 = v15 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v13))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v14))); v18 {
  5906. scan++
  5907. v16 = scan
  5908. match++
  5909. v17 = match
  5910. }
  5911. if v21 = v18 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v16))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v17))); v21 {
  5912. scan++
  5913. v19 = scan
  5914. match++
  5915. v20 = match
  5916. }
  5917. if v24 = v21 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v19))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v20))); v24 {
  5918. scan++
  5919. v22 = scan
  5920. match++
  5921. v23 = match
  5922. }
  5923. if v27 = v24 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v22))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v23))); v27 {
  5924. scan++
  5925. v25 = scan
  5926. match++
  5927. v26 = match
  5928. }
  5929. if v30 = v27 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v25))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v26))); v30 {
  5930. scan++
  5931. v28 = scan
  5932. match++
  5933. v29 = match
  5934. }
  5935. if !(v30 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v28))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v29))) && scan < strend) {
  5936. break
  5937. }
  5938. }
  5939. len1 = int32(m_MAX_MATCH) - int32(int64(strend)-int64(scan))
  5940. scan = strend - uintptr(m_MAX_MATCH)
  5941. if len1 > best_len {
  5942. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start = cur_match
  5943. best_len = len1
  5944. if len1 >= nice_match {
  5945. break
  5946. }
  5947. scan_end1 = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len-int32(1))))
  5948. scan_end = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len)))
  5949. }
  5950. goto _5
  5951. _5:
  5952. ;
  5953. v2 = uint32(*(*TPosf)(unsafe.Pointer(prev + uintptr(cur_match&wmask)*2)))
  5954. cur_match = v2
  5955. if v4 = v2 > limit; v4 {
  5956. chain_length--
  5957. v3 = chain_length
  5958. }
  5959. if !(v4 && v3 != uint32(0)) {
  5960. break
  5961. }
  5962. }
  5963. if libc.Uint32FromInt32(best_len) <= (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  5964. return libc.Uint32FromInt32(best_len)
  5965. }
  5966. return (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  5967. }
  5968. /* ===========================================================================
  5969. * Flush the current block, with given end-of-file flag.
  5970. * IN assertion: strstart is set to the end of the current match.
  5971. */
  5972. /* Same but force premature exit if necessary. */
  5973. /* Maximum stored block length in deflate format (not including header). */
  5974. /* Minimum of a and b. */
  5975. // C documentation
  5976. //
  5977. // /* ===========================================================================
  5978. // * Copy without compression as much as possible from the input stream, return
  5979. // * the current block state.
  5980. // *
  5981. // * In case deflateParams() is used to later switch to a non-zero compression
  5982. // * level, s->matches (otherwise unused when storing) keeps track of the number
  5983. // * of hash table slides to perform. If s->matches is 1, then one hash table
  5984. // * slide will be done when switching. If s->matches is 2, the maximum value
  5985. // * allowed here, then the hash table will be cleared, since two or more slides
  5986. // * is the same as a clear.
  5987. // *
  5988. // * deflate_stored() is written to minimize the number of times an input byte is
  5989. // * copied. It is most efficient with large input and output buffers, which
  5990. // * maximizes the opportunities to have a single copy from next_in to next_out.
  5991. // */
  5992. func _deflate_stored(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  5993. var have, last, left, len1, min_block, used, v3, v4, v6, v7 uint32
  5994. var v1, v5 uint64
  5995. var v2, v8, v9 int32
  5996. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = have, last, left, len1, min_block, used, v1, v2, v3, v4, v5, v6, v7, v8, v9
  5997. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size-uint64(5) > uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) {
  5998. v1 = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  5999. } else {
  6000. v1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - uint64(5)
  6001. }
  6002. /* Smallest worthy block size when not flushing or finishing. By default
  6003. * this is 32K. This can be as small as 507 bytes for memLevel == 1. For
  6004. * large input and output buffers, the stored block size will be larger.
  6005. */
  6006. min_block = uint32(v1)
  6007. last = uint32(0)
  6008. used = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  6009. for cond := true; cond; cond = last == uint32(0) {
  6010. /* Set len to the maximum size block that we can copy directly with the
  6011. * available input data and output space. Set left to how much of that
  6012. * would be copied from what's left in the window.
  6013. */
  6014. len1 = uint32(m_MAX_STORED) /* maximum deflate stored block length */
  6015. have = libc.Uint32FromInt32(((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid + int32(42)) >> int32(3)) /* number of header bytes */
  6016. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out < have { /* need room for header */
  6017. break
  6018. }
  6019. /* maximum stored block length that will fit in avail_out: */
  6020. have = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out - have
  6021. left = libc.Uint32FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start) /* bytes left in window */
  6022. if uint64(len1) > uint64(left)+uint64((*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in) {
  6023. len1 = left + (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  6024. } /* limit len to the input */
  6025. if len1 > have {
  6026. len1 = have
  6027. } /* limit len to the output */
  6028. /* If the stored block would be less than min_block in length, or if
  6029. * unable to copy all of the available input when flushing, then try
  6030. * copying to the window and the pending buffer instead. Also don't
  6031. * write an empty block when flushing -- deflate() does that.
  6032. */
  6033. 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) {
  6034. break
  6035. }
  6036. /* Make a dummy stored block in pending to get the header bytes,
  6037. * including any pending bits. This also updates the debugging counts.
  6038. */
  6039. if flush == int32(m_Z_FINISH) && len1 == left+(*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  6040. v2 = int32(1)
  6041. } else {
  6042. v2 = 0
  6043. }
  6044. last = libc.Uint32FromInt32(v2)
  6045. x__tr_stored_block(tls, s, libc.UintptrFromInt32(0), uint64(0), libc.Int32FromUint32(last))
  6046. /* Replace the lengths in the dummy stored block with len. */
  6047. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(4)))) = uint8(len1)
  6048. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(3)))) = uint8(len1 >> int32(8))
  6049. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(2)))) = uint8(^len1)
  6050. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(1)))) = uint8(^len1 >> int32(8))
  6051. /* Write the stored block header bytes. */
  6052. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6053. /* Copy uncompressed bytes from the window to next_out. */
  6054. if left != 0 {
  6055. if left > len1 {
  6056. left = len1
  6057. }
  6058. 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))
  6059. *(*uintptr)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 24)) += uintptr(left)
  6060. *(*TuInt)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 32)) -= left
  6061. *(*TuLong)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 40)) += uint64(left)
  6062. *(*int64)(unsafe.Pointer(s + 152)) += libc.Int64FromUint32(left)
  6063. len1 -= left
  6064. }
  6065. /* Copy uncompressed bytes directly from next_in to next_out, updating
  6066. * the check value.
  6067. */
  6068. if len1 != 0 {
  6069. _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_out, len1)
  6070. *(*uintptr)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 24)) += uintptr(len1)
  6071. *(*TuInt)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 32)) -= len1
  6072. *(*TuLong)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 40)) += uint64(len1)
  6073. }
  6074. }
  6075. /* Update the sliding window with the last s->w_size bytes of the copied
  6076. * data, or append all of the copied data to the existing window if less
  6077. * than s->w_size bytes were copied. Also update the number of bytes to
  6078. * insert in the hash tables, in the event that deflateParams() switches to
  6079. * a non-zero compression level.
  6080. */
  6081. used -= (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in /* number of input bytes directly copied */
  6082. if used != 0 {
  6083. /* If any input was used, then no unused input remains in the window,
  6084. * therefore s->block_start == s->strstart.
  6085. */
  6086. if used >= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size { /* supplant the previous history */
  6087. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = uint32(2) /* clear hash */
  6088. 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))
  6089. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6090. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6091. } else {
  6092. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size-uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) <= uint64(used) {
  6093. /* Slide the window down. */
  6094. *(*TuInt)(unsafe.Pointer(s + 172)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6095. 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))
  6096. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches < uint32(2) {
  6097. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  6098. } /* add a pending slide_hash() */
  6099. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  6100. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6101. }
  6102. }
  6103. 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))
  6104. *(*TuInt)(unsafe.Pointer(s + 172)) += used
  6105. if used > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-(*Tdeflate_state)(unsafe.Pointer(s)).Finsert {
  6106. v3 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  6107. } else {
  6108. v3 = used
  6109. }
  6110. *(*TuInt)(unsafe.Pointer(s + 5932)) += v3
  6111. }
  6112. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6113. }
  6114. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) {
  6115. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6116. }
  6117. /* If the last block was written to next_out, then done. */
  6118. if last != 0 {
  6119. return int32(_finish_done)
  6120. }
  6121. /* If flushing and all input has been consumed, then done. */
  6122. 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) && libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) == (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start {
  6123. return int32(_block_done)
  6124. }
  6125. /* Fill the window with any remaining input. */
  6126. have = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  6127. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in > have && (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) {
  6128. /* Slide the window down. */
  6129. *(*int64)(unsafe.Pointer(s + 152)) -= libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  6130. *(*TuInt)(unsafe.Pointer(s + 172)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6131. 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))
  6132. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches < uint32(2) {
  6133. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  6134. } /* add a pending slide_hash() */
  6135. have += (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size /* more space now */
  6136. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  6137. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6138. }
  6139. }
  6140. if have > (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  6141. have = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  6142. }
  6143. if have != 0 {
  6144. _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart), have)
  6145. *(*TuInt)(unsafe.Pointer(s + 172)) += have
  6146. if have > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-(*Tdeflate_state)(unsafe.Pointer(s)).Finsert {
  6147. v4 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  6148. } else {
  6149. v4 = have
  6150. }
  6151. *(*TuInt)(unsafe.Pointer(s + 5932)) += v4
  6152. }
  6153. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) {
  6154. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6155. }
  6156. /* There was not enough avail_out to write a complete worthy or flushed
  6157. * stored block to next_out. Write a stored block to pending instead, if we
  6158. * have enough input for a worthy block, or if flushing and there is enough
  6159. * room for the remaining input as a stored block in the pending buffer.
  6160. */
  6161. have = libc.Uint32FromInt32(((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid + int32(42)) >> int32(3)) /* number of header bytes */
  6162. /* maximum stored block length that will fit in pending: */
  6163. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size-uint64(have) > libc.Uint64FromInt32(libc.Int32FromInt32(m_MAX_STORED)) {
  6164. v5 = libc.Uint64FromInt32(libc.Int32FromInt32(m_MAX_STORED))
  6165. } else {
  6166. v5 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - uint64(have)
  6167. }
  6168. have = uint32(v5)
  6169. if have > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  6170. v6 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6171. } else {
  6172. v6 = have
  6173. }
  6174. min_block = v6
  6175. left = libc.Uint32FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start)
  6176. 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 {
  6177. if left > have {
  6178. v7 = have
  6179. } else {
  6180. v7 = left
  6181. }
  6182. len1 = v7
  6183. if flush == int32(m_Z_FINISH) && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) && len1 == left {
  6184. v8 = int32(1)
  6185. } else {
  6186. v8 = 0
  6187. }
  6188. last = libc.Uint32FromInt32(v8)
  6189. x__tr_stored_block(tls, s, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), uint64(len1), libc.Int32FromUint32(last))
  6190. *(*int64)(unsafe.Pointer(s + 152)) += libc.Int64FromUint32(len1)
  6191. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6192. }
  6193. /* We've done all we can with the available input and output. */
  6194. if last != 0 {
  6195. v9 = int32(_finish_started)
  6196. } else {
  6197. v9 = int32(_need_more)
  6198. }
  6199. return v9
  6200. }
  6201. // C documentation
  6202. //
  6203. // /* ===========================================================================
  6204. // * Compress as much as possible from the input stream, return the current
  6205. // * block state.
  6206. // * This function does not perform lazy evaluation of matches and inserts
  6207. // * new strings in the dictionary only for unmatched strings or for short
  6208. // * matches. It is used only for the fast compression options.
  6209. // */
  6210. func _deflate_fast(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6211. var bflush, v9 int32
  6212. var cc, len1 Tuch
  6213. var dist Tush
  6214. var hash_head TIPos
  6215. var v10, v14, v16, v18, v3, v5, v7 TuInt
  6216. var v11, v15, v17, v19, v20, v22, v23, v4, v6, v8 uintptr
  6217. var v13, v2 TPosf
  6218. var v21 uint32
  6219. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  6220. for {
  6221. /* Make sure that we always have enough lookahead, except
  6222. * at the end of the input file. We need MAX_MATCH bytes
  6223. * for the next match, plus MIN_MATCH bytes to insert the
  6224. * string following the next match.
  6225. */
  6226. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6227. _fill_window(tls, s)
  6228. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && flush == m_Z_NO_FLUSH {
  6229. return int32(_need_more)
  6230. }
  6231. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6232. break
  6233. } /* flush the current block */
  6234. }
  6235. /* Insert the string window[strstart .. strstart + 2] in the
  6236. * dictionary, and set hash_head to the head of the hash chain:
  6237. */
  6238. hash_head = uint32(m_NIL)
  6239. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  6240. (*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+libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6241. v2 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6242. *(*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
  6243. hash_head = uint32(v2)
  6244. *(*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)
  6245. }
  6246. /* Find the longest match, discarding those <= prev_length.
  6247. * At this point we have always match_length < MIN_MATCH
  6248. */
  6249. if hash_head != uint32(m_NIL) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-hash_head <= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6250. /* To simplify the code, we prevent matches with the string
  6251. * of window index 0 (in particular we have to avoid a match
  6252. * of the string with itself at the start of the input file).
  6253. */
  6254. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = _longest_match(tls, s, hash_head)
  6255. /* longest_match() sets match_start */
  6256. }
  6257. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length >= uint32(m_MIN_MATCH) {
  6258. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length - libc.Uint32FromInt32(m_MIN_MATCH))
  6259. dist = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start)
  6260. v4 = s + 5900
  6261. v3 = *(*TuInt)(unsafe.Pointer(v4))
  6262. *(*TuInt)(unsafe.Pointer(v4))++
  6263. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist)
  6264. v6 = s + 5900
  6265. v5 = *(*TuInt)(unsafe.Pointer(v6))
  6266. *(*TuInt)(unsafe.Pointer(v6))++
  6267. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = libc.Uint8FromInt32(libc.Int32FromUint16(dist) >> libc.Int32FromInt32(8))
  6268. v8 = s + 5900
  6269. v7 = *(*TuInt)(unsafe.Pointer(v8))
  6270. *(*TuInt)(unsafe.Pointer(v8))++
  6271. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v7))) = len1
  6272. dist--
  6273. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(libc.Int32FromUint8(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  6274. if libc.Int32FromUint16(dist) < int32(256) {
  6275. v9 = libc.Int32FromUint8(x__dist_code[dist])
  6276. } else {
  6277. v9 = libc.Int32FromUint8(x__dist_code[int32(256)+libc.Int32FromUint16(dist)>>int32(7)])
  6278. }
  6279. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v9)*4))++
  6280. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6281. *(*TuInt)(unsafe.Pointer(s + 180)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6282. /* Insert new strings in the hash table only if the match length
  6283. * is not too large. This saves time but degrades compression.
  6284. */
  6285. 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) {
  6286. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length-- /* string at strstart already in table */
  6287. for {
  6288. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6289. (*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+libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6290. v13 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6291. *(*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
  6292. hash_head = uint32(v13)
  6293. *(*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)
  6294. /* strstart never exceeds WSIZE-MAX_MATCH, so there are
  6295. * always MIN_MATCH bytes ahead.
  6296. */
  6297. goto _12
  6298. _12:
  6299. ;
  6300. v11 = s + 160
  6301. *(*TuInt)(unsafe.Pointer(v11))--
  6302. v10 = *(*TuInt)(unsafe.Pointer(v11))
  6303. if !(v10 != uint32(0)) {
  6304. break
  6305. }
  6306. }
  6307. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6308. } else {
  6309. *(*TuInt)(unsafe.Pointer(s + 172)) += (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6310. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6311. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))))
  6312. (*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
  6313. /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
  6314. * matter since it will be recomputed at next deflate call.
  6315. */
  6316. }
  6317. } else {
  6318. /* No match, output a literal byte */
  6319. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  6320. v15 = s + 5900
  6321. v14 = *(*TuInt)(unsafe.Pointer(v15))
  6322. *(*TuInt)(unsafe.Pointer(v15))++
  6323. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v14))) = uint8(0)
  6324. v17 = s + 5900
  6325. v16 = *(*TuInt)(unsafe.Pointer(v17))
  6326. *(*TuInt)(unsafe.Pointer(v17))++
  6327. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v16))) = uint8(0)
  6328. v19 = s + 5900
  6329. v18 = *(*TuInt)(unsafe.Pointer(v19))
  6330. *(*TuInt)(unsafe.Pointer(v19))++
  6331. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v18))) = cc
  6332. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  6333. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6334. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6335. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6336. }
  6337. if bflush != 0 {
  6338. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6339. v20 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6340. } else {
  6341. v20 = libc.UintptrFromInt32(m_Z_NULL)
  6342. }
  6343. x__tr_flush_block(tls, s, v20, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6344. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6345. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6346. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6347. return int32(_need_more)
  6348. }
  6349. }
  6350. goto _1
  6351. _1:
  6352. }
  6353. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart < libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1)) {
  6354. v21 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6355. } else {
  6356. v21 = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6357. }
  6358. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = v21
  6359. if flush == int32(m_Z_FINISH) {
  6360. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6361. v22 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6362. } else {
  6363. v22 = libc.UintptrFromInt32(m_Z_NULL)
  6364. }
  6365. x__tr_flush_block(tls, s, v22, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6366. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6367. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6368. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6369. return int32(_finish_started)
  6370. }
  6371. return int32(_finish_done)
  6372. }
  6373. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6374. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6375. v23 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6376. } else {
  6377. v23 = libc.UintptrFromInt32(m_Z_NULL)
  6378. }
  6379. x__tr_flush_block(tls, s, v23, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6380. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6381. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6382. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6383. return int32(_need_more)
  6384. }
  6385. }
  6386. return int32(_block_done)
  6387. }
  6388. // C documentation
  6389. //
  6390. // /* ===========================================================================
  6391. // * Same as above, but achieves better compression. We use a lazy
  6392. // * evaluation for matches: a match is finally adopted only if there is
  6393. // * no better match at the next window position.
  6394. // */
  6395. func _deflate_slow(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6396. var bflush, v9 int32
  6397. var cc, cc1, len1 Tuch
  6398. var dist Tush
  6399. var hash_head TIPos
  6400. var max_insert, v10, v13, v17, v19, v21, v24, v26, v28, v3, v5, v7 TuInt
  6401. var v11, v14, v16, v18, v20, v22, v23, v25, v27, v29, v31, v32, v4, v6, v8 uintptr
  6402. var v15, v2 TPosf
  6403. var v30 uint32
  6404. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  6405. /* Process the input block. */
  6406. for {
  6407. /* Make sure that we always have enough lookahead, except
  6408. * at the end of the input file. We need MAX_MATCH bytes
  6409. * for the next match, plus MIN_MATCH bytes to insert the
  6410. * string following the next match.
  6411. */
  6412. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6413. _fill_window(tls, s)
  6414. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && flush == m_Z_NO_FLUSH {
  6415. return int32(_need_more)
  6416. }
  6417. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6418. break
  6419. } /* flush the current block */
  6420. }
  6421. /* Insert the string window[strstart .. strstart + 2] in the
  6422. * dictionary, and set hash_head to the head of the hash chain:
  6423. */
  6424. hash_head = uint32(m_NIL)
  6425. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  6426. (*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+libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6427. v2 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6428. *(*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
  6429. hash_head = uint32(v2)
  6430. *(*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)
  6431. }
  6432. /* Find the longest match, discarding those <= prev_length.
  6433. */
  6434. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6435. /* Find the longest match, discarding those <= prev_length.
  6436. */
  6437. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_match = (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start
  6438. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6439. 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-libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6440. /* To simplify the code, we prevent matches with the string
  6441. * of window index 0 (in particular we have to avoid a match
  6442. * of the string with itself at the start of the input file).
  6443. */
  6444. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = _longest_match(tls, s, hash_head)
  6445. /* longest_match() sets match_start */
  6446. 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)) {
  6447. /* If prev_match is also MIN_MATCH, match_start is garbage
  6448. * but we will ignore the current match anyway.
  6449. */
  6450. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6451. }
  6452. }
  6453. /* If there was a match at the previous step and the current
  6454. * match is not better, output the previous match:
  6455. */
  6456. 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 {
  6457. max_insert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - uint32(m_MIN_MATCH)
  6458. /* Do not insert strings in hash table beyond this. */
  6459. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length - libc.Uint32FromInt32(m_MIN_MATCH))
  6460. dist = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - libc.Uint32FromInt32(1) - (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_match)
  6461. v4 = s + 5900
  6462. v3 = *(*TuInt)(unsafe.Pointer(v4))
  6463. *(*TuInt)(unsafe.Pointer(v4))++
  6464. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist)
  6465. v6 = s + 5900
  6466. v5 = *(*TuInt)(unsafe.Pointer(v6))
  6467. *(*TuInt)(unsafe.Pointer(v6))++
  6468. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = libc.Uint8FromInt32(libc.Int32FromUint16(dist) >> libc.Int32FromInt32(8))
  6469. v8 = s + 5900
  6470. v7 = *(*TuInt)(unsafe.Pointer(v8))
  6471. *(*TuInt)(unsafe.Pointer(v8))++
  6472. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v7))) = len1
  6473. dist--
  6474. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(libc.Int32FromUint8(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  6475. if libc.Int32FromUint16(dist) < int32(256) {
  6476. v9 = libc.Int32FromUint8(x__dist_code[dist])
  6477. } else {
  6478. v9 = libc.Int32FromUint8(x__dist_code[int32(256)+libc.Int32FromUint16(dist)>>int32(7)])
  6479. }
  6480. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v9)*4))++
  6481. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6482. /* Insert in hash table all strings up to the end of the match.
  6483. * strstart - 1 and strstart are already inserted. If there is not
  6484. * enough lookahead, the last two strings are not inserted in
  6485. * the hash table.
  6486. */
  6487. *(*TuInt)(unsafe.Pointer(s + 180)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length - uint32(1)
  6488. *(*TuInt)(unsafe.Pointer(s + 184)) -= uint32(2)
  6489. for {
  6490. v14 = s + 172
  6491. *(*TuInt)(unsafe.Pointer(v14))++
  6492. v13 = *(*TuInt)(unsafe.Pointer(v14))
  6493. if v13 <= max_insert {
  6494. (*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+libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6495. v15 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6496. *(*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
  6497. hash_head = uint32(v15)
  6498. *(*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)
  6499. }
  6500. goto _12
  6501. _12:
  6502. ;
  6503. v11 = s + 184
  6504. *(*TuInt)(unsafe.Pointer(v11))--
  6505. v10 = *(*TuInt)(unsafe.Pointer(v11))
  6506. if !(v10 != uint32(0)) {
  6507. break
  6508. }
  6509. }
  6510. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  6511. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6512. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6513. if bflush != 0 {
  6514. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6515. v16 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6516. } else {
  6517. v16 = libc.UintptrFromInt32(m_Z_NULL)
  6518. }
  6519. x__tr_flush_block(tls, s, v16, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6520. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6521. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6522. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6523. return int32(_need_more)
  6524. }
  6525. }
  6526. } else {
  6527. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available != 0 {
  6528. /* If there was no match at the previous position, output a
  6529. * single literal. If there was a match but the current match
  6530. * is longer, truncate the previous match to a single literal.
  6531. */
  6532. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-uint32(1))))
  6533. v18 = s + 5900
  6534. v17 = *(*TuInt)(unsafe.Pointer(v18))
  6535. *(*TuInt)(unsafe.Pointer(v18))++
  6536. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v17))) = uint8(0)
  6537. v20 = s + 5900
  6538. v19 = *(*TuInt)(unsafe.Pointer(v20))
  6539. *(*TuInt)(unsafe.Pointer(v20))++
  6540. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v19))) = uint8(0)
  6541. v22 = s + 5900
  6542. v21 = *(*TuInt)(unsafe.Pointer(v22))
  6543. *(*TuInt)(unsafe.Pointer(v22))++
  6544. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v21))) = cc
  6545. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  6546. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6547. if bflush != 0 {
  6548. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6549. v23 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6550. } else {
  6551. v23 = libc.UintptrFromInt32(m_Z_NULL)
  6552. }
  6553. x__tr_flush_block(tls, s, v23, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6554. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6555. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6556. }
  6557. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6558. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6559. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6560. return int32(_need_more)
  6561. }
  6562. } else {
  6563. /* There is no previous match to compare with, wait for
  6564. * the next step to decide.
  6565. */
  6566. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = int32(1)
  6567. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6568. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6569. }
  6570. }
  6571. goto _1
  6572. _1:
  6573. }
  6574. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available != 0 {
  6575. cc1 = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-uint32(1))))
  6576. v25 = s + 5900
  6577. v24 = *(*TuInt)(unsafe.Pointer(v25))
  6578. *(*TuInt)(unsafe.Pointer(v25))++
  6579. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v24))) = uint8(0)
  6580. v27 = s + 5900
  6581. v26 = *(*TuInt)(unsafe.Pointer(v27))
  6582. *(*TuInt)(unsafe.Pointer(v27))++
  6583. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v26))) = uint8(0)
  6584. v29 = s + 5900
  6585. v28 = *(*TuInt)(unsafe.Pointer(v29))
  6586. *(*TuInt)(unsafe.Pointer(v29))++
  6587. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v28))) = cc1
  6588. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc1)*4))++
  6589. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6590. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  6591. }
  6592. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart < libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1)) {
  6593. v30 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6594. } else {
  6595. v30 = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6596. }
  6597. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = v30
  6598. if flush == int32(m_Z_FINISH) {
  6599. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6600. v31 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6601. } else {
  6602. v31 = libc.UintptrFromInt32(m_Z_NULL)
  6603. }
  6604. x__tr_flush_block(tls, s, v31, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6605. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6606. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6607. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6608. return int32(_finish_started)
  6609. }
  6610. return int32(_finish_done)
  6611. }
  6612. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6613. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6614. v32 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6615. } else {
  6616. v32 = libc.UintptrFromInt32(m_Z_NULL)
  6617. }
  6618. x__tr_flush_block(tls, s, v32, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6619. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6620. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6621. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6622. return int32(_need_more)
  6623. }
  6624. }
  6625. return int32(_block_done)
  6626. }
  6627. // C documentation
  6628. //
  6629. // /* ===========================================================================
  6630. // * For Z_RLE, simply look for runs of bytes, generate matches only of distance
  6631. // * one. Do not maintain a hash table. (It will be regenerated if this run of
  6632. // * deflate switches away from Z_RLE.)
  6633. // */
  6634. func _deflate_rle(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6635. var bflush, v29 int32
  6636. var cc, len1 Tuch
  6637. var dist Tush
  6638. var prev, v23, v25, v27, v30, v32, v34 TuInt
  6639. var scan, strend, v10, v12, v14, v16, v18, v2, v20, v24, v26, v28, v3, v31, v33, v35, v36, v37, v38, v5, v7, v8 uintptr
  6640. var v11, v13, v15, v17, v19, v21, v4, v6, v9 bool
  6641. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  6642. for {
  6643. /* Make sure that we always have enough lookahead, except
  6644. * at the end of the input file. We need MAX_MATCH bytes
  6645. * for the longest run, plus one for the unrolled loop.
  6646. */
  6647. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead <= uint32(m_MAX_MATCH) {
  6648. _fill_window(tls, s)
  6649. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead <= uint32(m_MAX_MATCH) && flush == m_Z_NO_FLUSH {
  6650. return int32(_need_more)
  6651. }
  6652. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6653. break
  6654. } /* flush the current block */
  6655. }
  6656. /* See how many times the previous byte repeats */
  6657. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6658. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart > uint32(0) {
  6659. scan = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - uintptr(1)
  6660. prev = uint32(*(*TBytef)(unsafe.Pointer(scan)))
  6661. scan++
  6662. v2 = scan
  6663. if v4 = prev == uint32(*(*TBytef)(unsafe.Pointer(v2))); v4 {
  6664. scan++
  6665. v3 = scan
  6666. }
  6667. if v6 = v4 && prev == uint32(*(*TBytef)(unsafe.Pointer(v3))); v6 {
  6668. scan++
  6669. v5 = scan
  6670. }
  6671. if v6 && prev == uint32(*(*TBytef)(unsafe.Pointer(v5))) {
  6672. strend = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uintptr(m_MAX_MATCH)
  6673. for {
  6674. goto _22
  6675. _22:
  6676. ;
  6677. scan++
  6678. v7 = scan
  6679. if v9 = prev == uint32(*(*TBytef)(unsafe.Pointer(v7))); v9 {
  6680. scan++
  6681. v8 = scan
  6682. }
  6683. if v11 = v9 && prev == uint32(*(*TBytef)(unsafe.Pointer(v8))); v11 {
  6684. scan++
  6685. v10 = scan
  6686. }
  6687. if v13 = v11 && prev == uint32(*(*TBytef)(unsafe.Pointer(v10))); v13 {
  6688. scan++
  6689. v12 = scan
  6690. }
  6691. if v15 = v13 && prev == uint32(*(*TBytef)(unsafe.Pointer(v12))); v15 {
  6692. scan++
  6693. v14 = scan
  6694. }
  6695. if v17 = v15 && prev == uint32(*(*TBytef)(unsafe.Pointer(v14))); v17 {
  6696. scan++
  6697. v16 = scan
  6698. }
  6699. if v19 = v17 && prev == uint32(*(*TBytef)(unsafe.Pointer(v16))); v19 {
  6700. scan++
  6701. v18 = scan
  6702. }
  6703. if v21 = v19 && prev == uint32(*(*TBytef)(unsafe.Pointer(v18))); v21 {
  6704. scan++
  6705. v20 = scan
  6706. }
  6707. if !(v21 && prev == uint32(*(*TBytef)(unsafe.Pointer(v20))) && scan < strend) {
  6708. break
  6709. }
  6710. }
  6711. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(m_MAX_MATCH) - libc.Uint32FromInt64(int64(strend)-int64(scan))
  6712. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length > (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  6713. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  6714. }
  6715. }
  6716. }
  6717. /* Emit match if have run of MIN_MATCH or longer, else emit literal */
  6718. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length >= uint32(m_MIN_MATCH) {
  6719. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length - libc.Uint32FromInt32(m_MIN_MATCH))
  6720. dist = libc.Uint16FromInt32(libc.Int32FromInt32(1))
  6721. v24 = s + 5900
  6722. v23 = *(*TuInt)(unsafe.Pointer(v24))
  6723. *(*TuInt)(unsafe.Pointer(v24))++
  6724. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v23))) = uint8(dist)
  6725. v26 = s + 5900
  6726. v25 = *(*TuInt)(unsafe.Pointer(v26))
  6727. *(*TuInt)(unsafe.Pointer(v26))++
  6728. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v25))) = libc.Uint8FromInt32(libc.Int32FromUint16(dist) >> libc.Int32FromInt32(8))
  6729. v28 = s + 5900
  6730. v27 = *(*TuInt)(unsafe.Pointer(v28))
  6731. *(*TuInt)(unsafe.Pointer(v28))++
  6732. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v27))) = len1
  6733. dist--
  6734. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(libc.Int32FromUint8(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  6735. if libc.Int32FromUint16(dist) < int32(256) {
  6736. v29 = libc.Int32FromUint8(x__dist_code[dist])
  6737. } else {
  6738. v29 = libc.Int32FromUint8(x__dist_code[int32(256)+libc.Int32FromUint16(dist)>>int32(7)])
  6739. }
  6740. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v29)*4))++
  6741. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6742. *(*TuInt)(unsafe.Pointer(s + 180)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6743. *(*TuInt)(unsafe.Pointer(s + 172)) += (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6744. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6745. } else {
  6746. /* No match, output a literal byte */
  6747. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  6748. v31 = s + 5900
  6749. v30 = *(*TuInt)(unsafe.Pointer(v31))
  6750. *(*TuInt)(unsafe.Pointer(v31))++
  6751. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v30))) = uint8(0)
  6752. v33 = s + 5900
  6753. v32 = *(*TuInt)(unsafe.Pointer(v33))
  6754. *(*TuInt)(unsafe.Pointer(v33))++
  6755. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v32))) = uint8(0)
  6756. v35 = s + 5900
  6757. v34 = *(*TuInt)(unsafe.Pointer(v35))
  6758. *(*TuInt)(unsafe.Pointer(v35))++
  6759. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v34))) = cc
  6760. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  6761. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6762. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6763. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6764. }
  6765. if bflush != 0 {
  6766. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6767. v36 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6768. } else {
  6769. v36 = libc.UintptrFromInt32(m_Z_NULL)
  6770. }
  6771. x__tr_flush_block(tls, s, v36, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6772. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6773. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6774. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6775. return int32(_need_more)
  6776. }
  6777. }
  6778. goto _1
  6779. _1:
  6780. }
  6781. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  6782. if flush == int32(m_Z_FINISH) {
  6783. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6784. v37 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6785. } else {
  6786. v37 = libc.UintptrFromInt32(m_Z_NULL)
  6787. }
  6788. x__tr_flush_block(tls, s, v37, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6789. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6790. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6791. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6792. return int32(_finish_started)
  6793. }
  6794. return int32(_finish_done)
  6795. }
  6796. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6797. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6798. v38 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6799. } else {
  6800. v38 = libc.UintptrFromInt32(m_Z_NULL)
  6801. }
  6802. x__tr_flush_block(tls, s, v38, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6803. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6804. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6805. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6806. return int32(_need_more)
  6807. }
  6808. }
  6809. return int32(_block_done)
  6810. }
  6811. // C documentation
  6812. //
  6813. // /* ===========================================================================
  6814. // * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.
  6815. // * (It will be regenerated if this run of deflate switches away from Huffman.)
  6816. // */
  6817. func _deflate_huff(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6818. var bflush int32
  6819. var cc Tuch
  6820. var v10, v3, v5, v7, v8, v9 uintptr
  6821. var v2, v4, v6 TuInt
  6822. _, _, _, _, _, _, _, _, _, _, _ = bflush, cc, v10, v2, v3, v4, v5, v6, v7, v8, v9 /* set if current block must be flushed */
  6823. for {
  6824. /* Make sure that we have a literal to write. */
  6825. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6826. _fill_window(tls, s)
  6827. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6828. if flush == m_Z_NO_FLUSH {
  6829. return int32(_need_more)
  6830. }
  6831. break /* flush the current block */
  6832. }
  6833. }
  6834. /* Output a literal byte */
  6835. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6836. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  6837. v3 = s + 5900
  6838. v2 = *(*TuInt)(unsafe.Pointer(v3))
  6839. *(*TuInt)(unsafe.Pointer(v3))++
  6840. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v2))) = uint8(0)
  6841. v5 = s + 5900
  6842. v4 = *(*TuInt)(unsafe.Pointer(v5))
  6843. *(*TuInt)(unsafe.Pointer(v5))++
  6844. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v4))) = uint8(0)
  6845. v7 = s + 5900
  6846. v6 = *(*TuInt)(unsafe.Pointer(v7))
  6847. *(*TuInt)(unsafe.Pointer(v7))++
  6848. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v6))) = cc
  6849. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  6850. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6851. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6852. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6853. if bflush != 0 {
  6854. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6855. v8 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6856. } else {
  6857. v8 = libc.UintptrFromInt32(m_Z_NULL)
  6858. }
  6859. x__tr_flush_block(tls, s, v8, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6860. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6861. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6862. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6863. return int32(_need_more)
  6864. }
  6865. }
  6866. goto _1
  6867. _1:
  6868. }
  6869. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  6870. if flush == int32(m_Z_FINISH) {
  6871. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6872. v9 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6873. } else {
  6874. v9 = libc.UintptrFromInt32(m_Z_NULL)
  6875. }
  6876. x__tr_flush_block(tls, s, v9, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6877. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6878. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6879. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6880. return int32(_finish_started)
  6881. }
  6882. return int32(_finish_done)
  6883. }
  6884. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6885. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6886. v10 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6887. } else {
  6888. v10 = libc.UintptrFromInt32(m_Z_NULL)
  6889. }
  6890. x__tr_flush_block(tls, s, v10, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6891. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6892. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6893. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6894. return int32(_need_more)
  6895. }
  6896. }
  6897. return int32(_block_done)
  6898. }
  6899. const m_ENOUGH_DISTS = 592
  6900. const m_ENOUGH_LENS = 852
  6901. const m_PRESET_DICT2 = 0x20
  6902. type Tcode = struct {
  6903. Fop uint8
  6904. Fbits uint8
  6905. Fval uint16
  6906. }
  6907. type Tcodetype = int32
  6908. const _CODES = 0
  6909. const _LENS = 1
  6910. const _DISTS = 2
  6911. type Tinflate_mode = int32
  6912. const _HEAD = 16180
  6913. const _FLAGS = 16181
  6914. const _TIME = 16182
  6915. const _OS = 16183
  6916. const _EXLEN = 16184
  6917. const _EXTRA = 16185
  6918. const _NAME = 16186
  6919. const _COMMENT = 16187
  6920. const _HCRC = 16188
  6921. const _DICTID = 16189
  6922. const _DICT = 16190
  6923. const _TYPE = 16191
  6924. const _TYPEDO = 16192
  6925. const _STORED = 16193
  6926. const _COPY_ = 16194
  6927. const _COPY = 16195
  6928. const _TABLE = 16196
  6929. const _LENLENS = 16197
  6930. const _CODELENS = 16198
  6931. const _LEN_ = 16199
  6932. const _LEN = 16200
  6933. const _LENEXT = 16201
  6934. const _DIST = 16202
  6935. const _DISTEXT = 16203
  6936. const _MATCH = 16204
  6937. const _LIT = 16205
  6938. const _CHECK = 16206
  6939. const _LENGTH = 16207
  6940. const _DONE = 16208
  6941. const _BAD = 16209
  6942. const _MEM = 16210
  6943. const _SYNC = 16211
  6944. type Tinflate_state = struct {
  6945. Fstrm Tz_streamp
  6946. Fmode Tinflate_mode
  6947. Flast int32
  6948. Fwrap int32
  6949. Fhavedict int32
  6950. Fflags int32
  6951. Fdmax uint32
  6952. Fcheck uint64
  6953. Ftotal uint64
  6954. Fhead Tgz_headerp
  6955. Fwbits uint32
  6956. Fwsize uint32
  6957. Fwhave uint32
  6958. Fwnext uint32
  6959. Fwindow uintptr
  6960. Fhold uint64
  6961. Fbits uint32
  6962. Flength uint32
  6963. Foffset uint32
  6964. Fextra uint32
  6965. Flencode uintptr
  6966. Fdistcode uintptr
  6967. Flenbits uint32
  6968. Fdistbits uint32
  6969. Fncode uint32
  6970. Fnlen uint32
  6971. Fndist uint32
  6972. Fhave uint32
  6973. Fnext uintptr
  6974. Flens [320]uint16
  6975. Fwork [288]uint16
  6976. Fcodes [1444]Tcode
  6977. Fsane int32
  6978. Fback int32
  6979. Fwas uint32
  6980. }
  6981. // C documentation
  6982. //
  6983. // /*
  6984. // strm provides memory allocation functions in zalloc and zfree, or
  6985. // Z_NULL to use the library memory allocation functions.
  6986. //
  6987. // windowBits is in the range 8..15, and window is a user-supplied
  6988. // window and output buffer that is 2**windowBits bytes.
  6989. // */
  6990. func XinflateBackInit_(tls *libc.TLS, strm Tz_streamp, windowBits int32, window uintptr, version uintptr, stream_size int32) (r int32) {
  6991. var state uintptr
  6992. _ = state
  6993. if version == uintptr(m_Z_NULL) || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(version))) != libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(__ccgo_ts))) || stream_size != libc.Int32FromUint64(libc.Uint64FromInt64(112)) {
  6994. return -int32(6)
  6995. }
  6996. if strm == uintptr(m_Z_NULL) || window == uintptr(m_Z_NULL) || windowBits < int32(8) || windowBits > int32(15) {
  6997. return -int32(2)
  6998. }
  6999. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* in case we return an error */
  7000. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  7001. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  7002. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  7003. }
  7004. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  7005. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  7006. }
  7007. 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, libc.Uint32FromInt32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(7160)))
  7008. if state == uintptr(m_Z_NULL) {
  7009. return -int32(4)
  7010. }
  7011. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = state
  7012. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(32768)
  7013. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = libc.Uint32FromInt32(windowBits)
  7014. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(1) << windowBits
  7015. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = window
  7016. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  7017. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  7018. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  7019. return m_Z_OK
  7020. }
  7021. // C documentation
  7022. //
  7023. // /*
  7024. // Return state with length and distance decoding tables and index sizes set to
  7025. // fixed code decoding. Normally this returns fixed tables from inffixed.h.
  7026. // If BUILDFIXED is defined, then instead this routine builds the tables the
  7027. // first time it's called, and returns those tables the first time and
  7028. // thereafter. This reduces the size of the code by about 2K bytes, in
  7029. // exchange for a little execution time. However, BUILDFIXED should not be
  7030. // used for threaded applications, since the rewriting of the tables and virgin
  7031. // may not be thread-safe.
  7032. // */
  7033. func _fixedtables(tls *libc.TLS, state uintptr) {
  7034. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = uintptr(unsafe.Pointer(&_lenfix))
  7035. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  7036. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = uintptr(unsafe.Pointer(&_distfix))
  7037. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(5)
  7038. }
  7039. var _lenfix = [512]Tcode{
  7040. 0: {
  7041. Fop: uint8(96),
  7042. Fbits: uint8(7),
  7043. },
  7044. 1: {
  7045. Fbits: uint8(8),
  7046. Fval: uint16(80),
  7047. },
  7048. 2: {
  7049. Fbits: uint8(8),
  7050. Fval: uint16(16),
  7051. },
  7052. 3: {
  7053. Fop: uint8(20),
  7054. Fbits: uint8(8),
  7055. Fval: uint16(115),
  7056. },
  7057. 4: {
  7058. Fop: uint8(18),
  7059. Fbits: uint8(7),
  7060. Fval: uint16(31),
  7061. },
  7062. 5: {
  7063. Fbits: uint8(8),
  7064. Fval: uint16(112),
  7065. },
  7066. 6: {
  7067. Fbits: uint8(8),
  7068. Fval: uint16(48),
  7069. },
  7070. 7: {
  7071. Fbits: uint8(9),
  7072. Fval: uint16(192),
  7073. },
  7074. 8: {
  7075. Fop: uint8(16),
  7076. Fbits: uint8(7),
  7077. Fval: uint16(10),
  7078. },
  7079. 9: {
  7080. Fbits: uint8(8),
  7081. Fval: uint16(96),
  7082. },
  7083. 10: {
  7084. Fbits: uint8(8),
  7085. Fval: uint16(32),
  7086. },
  7087. 11: {
  7088. Fbits: uint8(9),
  7089. Fval: uint16(160),
  7090. },
  7091. 12: {
  7092. Fbits: uint8(8),
  7093. },
  7094. 13: {
  7095. Fbits: uint8(8),
  7096. Fval: uint16(128),
  7097. },
  7098. 14: {
  7099. Fbits: uint8(8),
  7100. Fval: uint16(64),
  7101. },
  7102. 15: {
  7103. Fbits: uint8(9),
  7104. Fval: uint16(224),
  7105. },
  7106. 16: {
  7107. Fop: uint8(16),
  7108. Fbits: uint8(7),
  7109. Fval: uint16(6),
  7110. },
  7111. 17: {
  7112. Fbits: uint8(8),
  7113. Fval: uint16(88),
  7114. },
  7115. 18: {
  7116. Fbits: uint8(8),
  7117. Fval: uint16(24),
  7118. },
  7119. 19: {
  7120. Fbits: uint8(9),
  7121. Fval: uint16(144),
  7122. },
  7123. 20: {
  7124. Fop: uint8(19),
  7125. Fbits: uint8(7),
  7126. Fval: uint16(59),
  7127. },
  7128. 21: {
  7129. Fbits: uint8(8),
  7130. Fval: uint16(120),
  7131. },
  7132. 22: {
  7133. Fbits: uint8(8),
  7134. Fval: uint16(56),
  7135. },
  7136. 23: {
  7137. Fbits: uint8(9),
  7138. Fval: uint16(208),
  7139. },
  7140. 24: {
  7141. Fop: uint8(17),
  7142. Fbits: uint8(7),
  7143. Fval: uint16(17),
  7144. },
  7145. 25: {
  7146. Fbits: uint8(8),
  7147. Fval: uint16(104),
  7148. },
  7149. 26: {
  7150. Fbits: uint8(8),
  7151. Fval: uint16(40),
  7152. },
  7153. 27: {
  7154. Fbits: uint8(9),
  7155. Fval: uint16(176),
  7156. },
  7157. 28: {
  7158. Fbits: uint8(8),
  7159. Fval: uint16(8),
  7160. },
  7161. 29: {
  7162. Fbits: uint8(8),
  7163. Fval: uint16(136),
  7164. },
  7165. 30: {
  7166. Fbits: uint8(8),
  7167. Fval: uint16(72),
  7168. },
  7169. 31: {
  7170. Fbits: uint8(9),
  7171. Fval: uint16(240),
  7172. },
  7173. 32: {
  7174. Fop: uint8(16),
  7175. Fbits: uint8(7),
  7176. Fval: uint16(4),
  7177. },
  7178. 33: {
  7179. Fbits: uint8(8),
  7180. Fval: uint16(84),
  7181. },
  7182. 34: {
  7183. Fbits: uint8(8),
  7184. Fval: uint16(20),
  7185. },
  7186. 35: {
  7187. Fop: uint8(21),
  7188. Fbits: uint8(8),
  7189. Fval: uint16(227),
  7190. },
  7191. 36: {
  7192. Fop: uint8(19),
  7193. Fbits: uint8(7),
  7194. Fval: uint16(43),
  7195. },
  7196. 37: {
  7197. Fbits: uint8(8),
  7198. Fval: uint16(116),
  7199. },
  7200. 38: {
  7201. Fbits: uint8(8),
  7202. Fval: uint16(52),
  7203. },
  7204. 39: {
  7205. Fbits: uint8(9),
  7206. Fval: uint16(200),
  7207. },
  7208. 40: {
  7209. Fop: uint8(17),
  7210. Fbits: uint8(7),
  7211. Fval: uint16(13),
  7212. },
  7213. 41: {
  7214. Fbits: uint8(8),
  7215. Fval: uint16(100),
  7216. },
  7217. 42: {
  7218. Fbits: uint8(8),
  7219. Fval: uint16(36),
  7220. },
  7221. 43: {
  7222. Fbits: uint8(9),
  7223. Fval: uint16(168),
  7224. },
  7225. 44: {
  7226. Fbits: uint8(8),
  7227. Fval: uint16(4),
  7228. },
  7229. 45: {
  7230. Fbits: uint8(8),
  7231. Fval: uint16(132),
  7232. },
  7233. 46: {
  7234. Fbits: uint8(8),
  7235. Fval: uint16(68),
  7236. },
  7237. 47: {
  7238. Fbits: uint8(9),
  7239. Fval: uint16(232),
  7240. },
  7241. 48: {
  7242. Fop: uint8(16),
  7243. Fbits: uint8(7),
  7244. Fval: uint16(8),
  7245. },
  7246. 49: {
  7247. Fbits: uint8(8),
  7248. Fval: uint16(92),
  7249. },
  7250. 50: {
  7251. Fbits: uint8(8),
  7252. Fval: uint16(28),
  7253. },
  7254. 51: {
  7255. Fbits: uint8(9),
  7256. Fval: uint16(152),
  7257. },
  7258. 52: {
  7259. Fop: uint8(20),
  7260. Fbits: uint8(7),
  7261. Fval: uint16(83),
  7262. },
  7263. 53: {
  7264. Fbits: uint8(8),
  7265. Fval: uint16(124),
  7266. },
  7267. 54: {
  7268. Fbits: uint8(8),
  7269. Fval: uint16(60),
  7270. },
  7271. 55: {
  7272. Fbits: uint8(9),
  7273. Fval: uint16(216),
  7274. },
  7275. 56: {
  7276. Fop: uint8(18),
  7277. Fbits: uint8(7),
  7278. Fval: uint16(23),
  7279. },
  7280. 57: {
  7281. Fbits: uint8(8),
  7282. Fval: uint16(108),
  7283. },
  7284. 58: {
  7285. Fbits: uint8(8),
  7286. Fval: uint16(44),
  7287. },
  7288. 59: {
  7289. Fbits: uint8(9),
  7290. Fval: uint16(184),
  7291. },
  7292. 60: {
  7293. Fbits: uint8(8),
  7294. Fval: uint16(12),
  7295. },
  7296. 61: {
  7297. Fbits: uint8(8),
  7298. Fval: uint16(140),
  7299. },
  7300. 62: {
  7301. Fbits: uint8(8),
  7302. Fval: uint16(76),
  7303. },
  7304. 63: {
  7305. Fbits: uint8(9),
  7306. Fval: uint16(248),
  7307. },
  7308. 64: {
  7309. Fop: uint8(16),
  7310. Fbits: uint8(7),
  7311. Fval: uint16(3),
  7312. },
  7313. 65: {
  7314. Fbits: uint8(8),
  7315. Fval: uint16(82),
  7316. },
  7317. 66: {
  7318. Fbits: uint8(8),
  7319. Fval: uint16(18),
  7320. },
  7321. 67: {
  7322. Fop: uint8(21),
  7323. Fbits: uint8(8),
  7324. Fval: uint16(163),
  7325. },
  7326. 68: {
  7327. Fop: uint8(19),
  7328. Fbits: uint8(7),
  7329. Fval: uint16(35),
  7330. },
  7331. 69: {
  7332. Fbits: uint8(8),
  7333. Fval: uint16(114),
  7334. },
  7335. 70: {
  7336. Fbits: uint8(8),
  7337. Fval: uint16(50),
  7338. },
  7339. 71: {
  7340. Fbits: uint8(9),
  7341. Fval: uint16(196),
  7342. },
  7343. 72: {
  7344. Fop: uint8(17),
  7345. Fbits: uint8(7),
  7346. Fval: uint16(11),
  7347. },
  7348. 73: {
  7349. Fbits: uint8(8),
  7350. Fval: uint16(98),
  7351. },
  7352. 74: {
  7353. Fbits: uint8(8),
  7354. Fval: uint16(34),
  7355. },
  7356. 75: {
  7357. Fbits: uint8(9),
  7358. Fval: uint16(164),
  7359. },
  7360. 76: {
  7361. Fbits: uint8(8),
  7362. Fval: uint16(2),
  7363. },
  7364. 77: {
  7365. Fbits: uint8(8),
  7366. Fval: uint16(130),
  7367. },
  7368. 78: {
  7369. Fbits: uint8(8),
  7370. Fval: uint16(66),
  7371. },
  7372. 79: {
  7373. Fbits: uint8(9),
  7374. Fval: uint16(228),
  7375. },
  7376. 80: {
  7377. Fop: uint8(16),
  7378. Fbits: uint8(7),
  7379. Fval: uint16(7),
  7380. },
  7381. 81: {
  7382. Fbits: uint8(8),
  7383. Fval: uint16(90),
  7384. },
  7385. 82: {
  7386. Fbits: uint8(8),
  7387. Fval: uint16(26),
  7388. },
  7389. 83: {
  7390. Fbits: uint8(9),
  7391. Fval: uint16(148),
  7392. },
  7393. 84: {
  7394. Fop: uint8(20),
  7395. Fbits: uint8(7),
  7396. Fval: uint16(67),
  7397. },
  7398. 85: {
  7399. Fbits: uint8(8),
  7400. Fval: uint16(122),
  7401. },
  7402. 86: {
  7403. Fbits: uint8(8),
  7404. Fval: uint16(58),
  7405. },
  7406. 87: {
  7407. Fbits: uint8(9),
  7408. Fval: uint16(212),
  7409. },
  7410. 88: {
  7411. Fop: uint8(18),
  7412. Fbits: uint8(7),
  7413. Fval: uint16(19),
  7414. },
  7415. 89: {
  7416. Fbits: uint8(8),
  7417. Fval: uint16(106),
  7418. },
  7419. 90: {
  7420. Fbits: uint8(8),
  7421. Fval: uint16(42),
  7422. },
  7423. 91: {
  7424. Fbits: uint8(9),
  7425. Fval: uint16(180),
  7426. },
  7427. 92: {
  7428. Fbits: uint8(8),
  7429. Fval: uint16(10),
  7430. },
  7431. 93: {
  7432. Fbits: uint8(8),
  7433. Fval: uint16(138),
  7434. },
  7435. 94: {
  7436. Fbits: uint8(8),
  7437. Fval: uint16(74),
  7438. },
  7439. 95: {
  7440. Fbits: uint8(9),
  7441. Fval: uint16(244),
  7442. },
  7443. 96: {
  7444. Fop: uint8(16),
  7445. Fbits: uint8(7),
  7446. Fval: uint16(5),
  7447. },
  7448. 97: {
  7449. Fbits: uint8(8),
  7450. Fval: uint16(86),
  7451. },
  7452. 98: {
  7453. Fbits: uint8(8),
  7454. Fval: uint16(22),
  7455. },
  7456. 99: {
  7457. Fop: uint8(64),
  7458. Fbits: uint8(8),
  7459. },
  7460. 100: {
  7461. Fop: uint8(19),
  7462. Fbits: uint8(7),
  7463. Fval: uint16(51),
  7464. },
  7465. 101: {
  7466. Fbits: uint8(8),
  7467. Fval: uint16(118),
  7468. },
  7469. 102: {
  7470. Fbits: uint8(8),
  7471. Fval: uint16(54),
  7472. },
  7473. 103: {
  7474. Fbits: uint8(9),
  7475. Fval: uint16(204),
  7476. },
  7477. 104: {
  7478. Fop: uint8(17),
  7479. Fbits: uint8(7),
  7480. Fval: uint16(15),
  7481. },
  7482. 105: {
  7483. Fbits: uint8(8),
  7484. Fval: uint16(102),
  7485. },
  7486. 106: {
  7487. Fbits: uint8(8),
  7488. Fval: uint16(38),
  7489. },
  7490. 107: {
  7491. Fbits: uint8(9),
  7492. Fval: uint16(172),
  7493. },
  7494. 108: {
  7495. Fbits: uint8(8),
  7496. Fval: uint16(6),
  7497. },
  7498. 109: {
  7499. Fbits: uint8(8),
  7500. Fval: uint16(134),
  7501. },
  7502. 110: {
  7503. Fbits: uint8(8),
  7504. Fval: uint16(70),
  7505. },
  7506. 111: {
  7507. Fbits: uint8(9),
  7508. Fval: uint16(236),
  7509. },
  7510. 112: {
  7511. Fop: uint8(16),
  7512. Fbits: uint8(7),
  7513. Fval: uint16(9),
  7514. },
  7515. 113: {
  7516. Fbits: uint8(8),
  7517. Fval: uint16(94),
  7518. },
  7519. 114: {
  7520. Fbits: uint8(8),
  7521. Fval: uint16(30),
  7522. },
  7523. 115: {
  7524. Fbits: uint8(9),
  7525. Fval: uint16(156),
  7526. },
  7527. 116: {
  7528. Fop: uint8(20),
  7529. Fbits: uint8(7),
  7530. Fval: uint16(99),
  7531. },
  7532. 117: {
  7533. Fbits: uint8(8),
  7534. Fval: uint16(126),
  7535. },
  7536. 118: {
  7537. Fbits: uint8(8),
  7538. Fval: uint16(62),
  7539. },
  7540. 119: {
  7541. Fbits: uint8(9),
  7542. Fval: uint16(220),
  7543. },
  7544. 120: {
  7545. Fop: uint8(18),
  7546. Fbits: uint8(7),
  7547. Fval: uint16(27),
  7548. },
  7549. 121: {
  7550. Fbits: uint8(8),
  7551. Fval: uint16(110),
  7552. },
  7553. 122: {
  7554. Fbits: uint8(8),
  7555. Fval: uint16(46),
  7556. },
  7557. 123: {
  7558. Fbits: uint8(9),
  7559. Fval: uint16(188),
  7560. },
  7561. 124: {
  7562. Fbits: uint8(8),
  7563. Fval: uint16(14),
  7564. },
  7565. 125: {
  7566. Fbits: uint8(8),
  7567. Fval: uint16(142),
  7568. },
  7569. 126: {
  7570. Fbits: uint8(8),
  7571. Fval: uint16(78),
  7572. },
  7573. 127: {
  7574. Fbits: uint8(9),
  7575. Fval: uint16(252),
  7576. },
  7577. 128: {
  7578. Fop: uint8(96),
  7579. Fbits: uint8(7),
  7580. },
  7581. 129: {
  7582. Fbits: uint8(8),
  7583. Fval: uint16(81),
  7584. },
  7585. 130: {
  7586. Fbits: uint8(8),
  7587. Fval: uint16(17),
  7588. },
  7589. 131: {
  7590. Fop: uint8(21),
  7591. Fbits: uint8(8),
  7592. Fval: uint16(131),
  7593. },
  7594. 132: {
  7595. Fop: uint8(18),
  7596. Fbits: uint8(7),
  7597. Fval: uint16(31),
  7598. },
  7599. 133: {
  7600. Fbits: uint8(8),
  7601. Fval: uint16(113),
  7602. },
  7603. 134: {
  7604. Fbits: uint8(8),
  7605. Fval: uint16(49),
  7606. },
  7607. 135: {
  7608. Fbits: uint8(9),
  7609. Fval: uint16(194),
  7610. },
  7611. 136: {
  7612. Fop: uint8(16),
  7613. Fbits: uint8(7),
  7614. Fval: uint16(10),
  7615. },
  7616. 137: {
  7617. Fbits: uint8(8),
  7618. Fval: uint16(97),
  7619. },
  7620. 138: {
  7621. Fbits: uint8(8),
  7622. Fval: uint16(33),
  7623. },
  7624. 139: {
  7625. Fbits: uint8(9),
  7626. Fval: uint16(162),
  7627. },
  7628. 140: {
  7629. Fbits: uint8(8),
  7630. Fval: uint16(1),
  7631. },
  7632. 141: {
  7633. Fbits: uint8(8),
  7634. Fval: uint16(129),
  7635. },
  7636. 142: {
  7637. Fbits: uint8(8),
  7638. Fval: uint16(65),
  7639. },
  7640. 143: {
  7641. Fbits: uint8(9),
  7642. Fval: uint16(226),
  7643. },
  7644. 144: {
  7645. Fop: uint8(16),
  7646. Fbits: uint8(7),
  7647. Fval: uint16(6),
  7648. },
  7649. 145: {
  7650. Fbits: uint8(8),
  7651. Fval: uint16(89),
  7652. },
  7653. 146: {
  7654. Fbits: uint8(8),
  7655. Fval: uint16(25),
  7656. },
  7657. 147: {
  7658. Fbits: uint8(9),
  7659. Fval: uint16(146),
  7660. },
  7661. 148: {
  7662. Fop: uint8(19),
  7663. Fbits: uint8(7),
  7664. Fval: uint16(59),
  7665. },
  7666. 149: {
  7667. Fbits: uint8(8),
  7668. Fval: uint16(121),
  7669. },
  7670. 150: {
  7671. Fbits: uint8(8),
  7672. Fval: uint16(57),
  7673. },
  7674. 151: {
  7675. Fbits: uint8(9),
  7676. Fval: uint16(210),
  7677. },
  7678. 152: {
  7679. Fop: uint8(17),
  7680. Fbits: uint8(7),
  7681. Fval: uint16(17),
  7682. },
  7683. 153: {
  7684. Fbits: uint8(8),
  7685. Fval: uint16(105),
  7686. },
  7687. 154: {
  7688. Fbits: uint8(8),
  7689. Fval: uint16(41),
  7690. },
  7691. 155: {
  7692. Fbits: uint8(9),
  7693. Fval: uint16(178),
  7694. },
  7695. 156: {
  7696. Fbits: uint8(8),
  7697. Fval: uint16(9),
  7698. },
  7699. 157: {
  7700. Fbits: uint8(8),
  7701. Fval: uint16(137),
  7702. },
  7703. 158: {
  7704. Fbits: uint8(8),
  7705. Fval: uint16(73),
  7706. },
  7707. 159: {
  7708. Fbits: uint8(9),
  7709. Fval: uint16(242),
  7710. },
  7711. 160: {
  7712. Fop: uint8(16),
  7713. Fbits: uint8(7),
  7714. Fval: uint16(4),
  7715. },
  7716. 161: {
  7717. Fbits: uint8(8),
  7718. Fval: uint16(85),
  7719. },
  7720. 162: {
  7721. Fbits: uint8(8),
  7722. Fval: uint16(21),
  7723. },
  7724. 163: {
  7725. Fop: uint8(16),
  7726. Fbits: uint8(8),
  7727. Fval: uint16(258),
  7728. },
  7729. 164: {
  7730. Fop: uint8(19),
  7731. Fbits: uint8(7),
  7732. Fval: uint16(43),
  7733. },
  7734. 165: {
  7735. Fbits: uint8(8),
  7736. Fval: uint16(117),
  7737. },
  7738. 166: {
  7739. Fbits: uint8(8),
  7740. Fval: uint16(53),
  7741. },
  7742. 167: {
  7743. Fbits: uint8(9),
  7744. Fval: uint16(202),
  7745. },
  7746. 168: {
  7747. Fop: uint8(17),
  7748. Fbits: uint8(7),
  7749. Fval: uint16(13),
  7750. },
  7751. 169: {
  7752. Fbits: uint8(8),
  7753. Fval: uint16(101),
  7754. },
  7755. 170: {
  7756. Fbits: uint8(8),
  7757. Fval: uint16(37),
  7758. },
  7759. 171: {
  7760. Fbits: uint8(9),
  7761. Fval: uint16(170),
  7762. },
  7763. 172: {
  7764. Fbits: uint8(8),
  7765. Fval: uint16(5),
  7766. },
  7767. 173: {
  7768. Fbits: uint8(8),
  7769. Fval: uint16(133),
  7770. },
  7771. 174: {
  7772. Fbits: uint8(8),
  7773. Fval: uint16(69),
  7774. },
  7775. 175: {
  7776. Fbits: uint8(9),
  7777. Fval: uint16(234),
  7778. },
  7779. 176: {
  7780. Fop: uint8(16),
  7781. Fbits: uint8(7),
  7782. Fval: uint16(8),
  7783. },
  7784. 177: {
  7785. Fbits: uint8(8),
  7786. Fval: uint16(93),
  7787. },
  7788. 178: {
  7789. Fbits: uint8(8),
  7790. Fval: uint16(29),
  7791. },
  7792. 179: {
  7793. Fbits: uint8(9),
  7794. Fval: uint16(154),
  7795. },
  7796. 180: {
  7797. Fop: uint8(20),
  7798. Fbits: uint8(7),
  7799. Fval: uint16(83),
  7800. },
  7801. 181: {
  7802. Fbits: uint8(8),
  7803. Fval: uint16(125),
  7804. },
  7805. 182: {
  7806. Fbits: uint8(8),
  7807. Fval: uint16(61),
  7808. },
  7809. 183: {
  7810. Fbits: uint8(9),
  7811. Fval: uint16(218),
  7812. },
  7813. 184: {
  7814. Fop: uint8(18),
  7815. Fbits: uint8(7),
  7816. Fval: uint16(23),
  7817. },
  7818. 185: {
  7819. Fbits: uint8(8),
  7820. Fval: uint16(109),
  7821. },
  7822. 186: {
  7823. Fbits: uint8(8),
  7824. Fval: uint16(45),
  7825. },
  7826. 187: {
  7827. Fbits: uint8(9),
  7828. Fval: uint16(186),
  7829. },
  7830. 188: {
  7831. Fbits: uint8(8),
  7832. Fval: uint16(13),
  7833. },
  7834. 189: {
  7835. Fbits: uint8(8),
  7836. Fval: uint16(141),
  7837. },
  7838. 190: {
  7839. Fbits: uint8(8),
  7840. Fval: uint16(77),
  7841. },
  7842. 191: {
  7843. Fbits: uint8(9),
  7844. Fval: uint16(250),
  7845. },
  7846. 192: {
  7847. Fop: uint8(16),
  7848. Fbits: uint8(7),
  7849. Fval: uint16(3),
  7850. },
  7851. 193: {
  7852. Fbits: uint8(8),
  7853. Fval: uint16(83),
  7854. },
  7855. 194: {
  7856. Fbits: uint8(8),
  7857. Fval: uint16(19),
  7858. },
  7859. 195: {
  7860. Fop: uint8(21),
  7861. Fbits: uint8(8),
  7862. Fval: uint16(195),
  7863. },
  7864. 196: {
  7865. Fop: uint8(19),
  7866. Fbits: uint8(7),
  7867. Fval: uint16(35),
  7868. },
  7869. 197: {
  7870. Fbits: uint8(8),
  7871. Fval: uint16(115),
  7872. },
  7873. 198: {
  7874. Fbits: uint8(8),
  7875. Fval: uint16(51),
  7876. },
  7877. 199: {
  7878. Fbits: uint8(9),
  7879. Fval: uint16(198),
  7880. },
  7881. 200: {
  7882. Fop: uint8(17),
  7883. Fbits: uint8(7),
  7884. Fval: uint16(11),
  7885. },
  7886. 201: {
  7887. Fbits: uint8(8),
  7888. Fval: uint16(99),
  7889. },
  7890. 202: {
  7891. Fbits: uint8(8),
  7892. Fval: uint16(35),
  7893. },
  7894. 203: {
  7895. Fbits: uint8(9),
  7896. Fval: uint16(166),
  7897. },
  7898. 204: {
  7899. Fbits: uint8(8),
  7900. Fval: uint16(3),
  7901. },
  7902. 205: {
  7903. Fbits: uint8(8),
  7904. Fval: uint16(131),
  7905. },
  7906. 206: {
  7907. Fbits: uint8(8),
  7908. Fval: uint16(67),
  7909. },
  7910. 207: {
  7911. Fbits: uint8(9),
  7912. Fval: uint16(230),
  7913. },
  7914. 208: {
  7915. Fop: uint8(16),
  7916. Fbits: uint8(7),
  7917. Fval: uint16(7),
  7918. },
  7919. 209: {
  7920. Fbits: uint8(8),
  7921. Fval: uint16(91),
  7922. },
  7923. 210: {
  7924. Fbits: uint8(8),
  7925. Fval: uint16(27),
  7926. },
  7927. 211: {
  7928. Fbits: uint8(9),
  7929. Fval: uint16(150),
  7930. },
  7931. 212: {
  7932. Fop: uint8(20),
  7933. Fbits: uint8(7),
  7934. Fval: uint16(67),
  7935. },
  7936. 213: {
  7937. Fbits: uint8(8),
  7938. Fval: uint16(123),
  7939. },
  7940. 214: {
  7941. Fbits: uint8(8),
  7942. Fval: uint16(59),
  7943. },
  7944. 215: {
  7945. Fbits: uint8(9),
  7946. Fval: uint16(214),
  7947. },
  7948. 216: {
  7949. Fop: uint8(18),
  7950. Fbits: uint8(7),
  7951. Fval: uint16(19),
  7952. },
  7953. 217: {
  7954. Fbits: uint8(8),
  7955. Fval: uint16(107),
  7956. },
  7957. 218: {
  7958. Fbits: uint8(8),
  7959. Fval: uint16(43),
  7960. },
  7961. 219: {
  7962. Fbits: uint8(9),
  7963. Fval: uint16(182),
  7964. },
  7965. 220: {
  7966. Fbits: uint8(8),
  7967. Fval: uint16(11),
  7968. },
  7969. 221: {
  7970. Fbits: uint8(8),
  7971. Fval: uint16(139),
  7972. },
  7973. 222: {
  7974. Fbits: uint8(8),
  7975. Fval: uint16(75),
  7976. },
  7977. 223: {
  7978. Fbits: uint8(9),
  7979. Fval: uint16(246),
  7980. },
  7981. 224: {
  7982. Fop: uint8(16),
  7983. Fbits: uint8(7),
  7984. Fval: uint16(5),
  7985. },
  7986. 225: {
  7987. Fbits: uint8(8),
  7988. Fval: uint16(87),
  7989. },
  7990. 226: {
  7991. Fbits: uint8(8),
  7992. Fval: uint16(23),
  7993. },
  7994. 227: {
  7995. Fop: uint8(64),
  7996. Fbits: uint8(8),
  7997. },
  7998. 228: {
  7999. Fop: uint8(19),
  8000. Fbits: uint8(7),
  8001. Fval: uint16(51),
  8002. },
  8003. 229: {
  8004. Fbits: uint8(8),
  8005. Fval: uint16(119),
  8006. },
  8007. 230: {
  8008. Fbits: uint8(8),
  8009. Fval: uint16(55),
  8010. },
  8011. 231: {
  8012. Fbits: uint8(9),
  8013. Fval: uint16(206),
  8014. },
  8015. 232: {
  8016. Fop: uint8(17),
  8017. Fbits: uint8(7),
  8018. Fval: uint16(15),
  8019. },
  8020. 233: {
  8021. Fbits: uint8(8),
  8022. Fval: uint16(103),
  8023. },
  8024. 234: {
  8025. Fbits: uint8(8),
  8026. Fval: uint16(39),
  8027. },
  8028. 235: {
  8029. Fbits: uint8(9),
  8030. Fval: uint16(174),
  8031. },
  8032. 236: {
  8033. Fbits: uint8(8),
  8034. Fval: uint16(7),
  8035. },
  8036. 237: {
  8037. Fbits: uint8(8),
  8038. Fval: uint16(135),
  8039. },
  8040. 238: {
  8041. Fbits: uint8(8),
  8042. Fval: uint16(71),
  8043. },
  8044. 239: {
  8045. Fbits: uint8(9),
  8046. Fval: uint16(238),
  8047. },
  8048. 240: {
  8049. Fop: uint8(16),
  8050. Fbits: uint8(7),
  8051. Fval: uint16(9),
  8052. },
  8053. 241: {
  8054. Fbits: uint8(8),
  8055. Fval: uint16(95),
  8056. },
  8057. 242: {
  8058. Fbits: uint8(8),
  8059. Fval: uint16(31),
  8060. },
  8061. 243: {
  8062. Fbits: uint8(9),
  8063. Fval: uint16(158),
  8064. },
  8065. 244: {
  8066. Fop: uint8(20),
  8067. Fbits: uint8(7),
  8068. Fval: uint16(99),
  8069. },
  8070. 245: {
  8071. Fbits: uint8(8),
  8072. Fval: uint16(127),
  8073. },
  8074. 246: {
  8075. Fbits: uint8(8),
  8076. Fval: uint16(63),
  8077. },
  8078. 247: {
  8079. Fbits: uint8(9),
  8080. Fval: uint16(222),
  8081. },
  8082. 248: {
  8083. Fop: uint8(18),
  8084. Fbits: uint8(7),
  8085. Fval: uint16(27),
  8086. },
  8087. 249: {
  8088. Fbits: uint8(8),
  8089. Fval: uint16(111),
  8090. },
  8091. 250: {
  8092. Fbits: uint8(8),
  8093. Fval: uint16(47),
  8094. },
  8095. 251: {
  8096. Fbits: uint8(9),
  8097. Fval: uint16(190),
  8098. },
  8099. 252: {
  8100. Fbits: uint8(8),
  8101. Fval: uint16(15),
  8102. },
  8103. 253: {
  8104. Fbits: uint8(8),
  8105. Fval: uint16(143),
  8106. },
  8107. 254: {
  8108. Fbits: uint8(8),
  8109. Fval: uint16(79),
  8110. },
  8111. 255: {
  8112. Fbits: uint8(9),
  8113. Fval: uint16(254),
  8114. },
  8115. 256: {
  8116. Fop: uint8(96),
  8117. Fbits: uint8(7),
  8118. },
  8119. 257: {
  8120. Fbits: uint8(8),
  8121. Fval: uint16(80),
  8122. },
  8123. 258: {
  8124. Fbits: uint8(8),
  8125. Fval: uint16(16),
  8126. },
  8127. 259: {
  8128. Fop: uint8(20),
  8129. Fbits: uint8(8),
  8130. Fval: uint16(115),
  8131. },
  8132. 260: {
  8133. Fop: uint8(18),
  8134. Fbits: uint8(7),
  8135. Fval: uint16(31),
  8136. },
  8137. 261: {
  8138. Fbits: uint8(8),
  8139. Fval: uint16(112),
  8140. },
  8141. 262: {
  8142. Fbits: uint8(8),
  8143. Fval: uint16(48),
  8144. },
  8145. 263: {
  8146. Fbits: uint8(9),
  8147. Fval: uint16(193),
  8148. },
  8149. 264: {
  8150. Fop: uint8(16),
  8151. Fbits: uint8(7),
  8152. Fval: uint16(10),
  8153. },
  8154. 265: {
  8155. Fbits: uint8(8),
  8156. Fval: uint16(96),
  8157. },
  8158. 266: {
  8159. Fbits: uint8(8),
  8160. Fval: uint16(32),
  8161. },
  8162. 267: {
  8163. Fbits: uint8(9),
  8164. Fval: uint16(161),
  8165. },
  8166. 268: {
  8167. Fbits: uint8(8),
  8168. },
  8169. 269: {
  8170. Fbits: uint8(8),
  8171. Fval: uint16(128),
  8172. },
  8173. 270: {
  8174. Fbits: uint8(8),
  8175. Fval: uint16(64),
  8176. },
  8177. 271: {
  8178. Fbits: uint8(9),
  8179. Fval: uint16(225),
  8180. },
  8181. 272: {
  8182. Fop: uint8(16),
  8183. Fbits: uint8(7),
  8184. Fval: uint16(6),
  8185. },
  8186. 273: {
  8187. Fbits: uint8(8),
  8188. Fval: uint16(88),
  8189. },
  8190. 274: {
  8191. Fbits: uint8(8),
  8192. Fval: uint16(24),
  8193. },
  8194. 275: {
  8195. Fbits: uint8(9),
  8196. Fval: uint16(145),
  8197. },
  8198. 276: {
  8199. Fop: uint8(19),
  8200. Fbits: uint8(7),
  8201. Fval: uint16(59),
  8202. },
  8203. 277: {
  8204. Fbits: uint8(8),
  8205. Fval: uint16(120),
  8206. },
  8207. 278: {
  8208. Fbits: uint8(8),
  8209. Fval: uint16(56),
  8210. },
  8211. 279: {
  8212. Fbits: uint8(9),
  8213. Fval: uint16(209),
  8214. },
  8215. 280: {
  8216. Fop: uint8(17),
  8217. Fbits: uint8(7),
  8218. Fval: uint16(17),
  8219. },
  8220. 281: {
  8221. Fbits: uint8(8),
  8222. Fval: uint16(104),
  8223. },
  8224. 282: {
  8225. Fbits: uint8(8),
  8226. Fval: uint16(40),
  8227. },
  8228. 283: {
  8229. Fbits: uint8(9),
  8230. Fval: uint16(177),
  8231. },
  8232. 284: {
  8233. Fbits: uint8(8),
  8234. Fval: uint16(8),
  8235. },
  8236. 285: {
  8237. Fbits: uint8(8),
  8238. Fval: uint16(136),
  8239. },
  8240. 286: {
  8241. Fbits: uint8(8),
  8242. Fval: uint16(72),
  8243. },
  8244. 287: {
  8245. Fbits: uint8(9),
  8246. Fval: uint16(241),
  8247. },
  8248. 288: {
  8249. Fop: uint8(16),
  8250. Fbits: uint8(7),
  8251. Fval: uint16(4),
  8252. },
  8253. 289: {
  8254. Fbits: uint8(8),
  8255. Fval: uint16(84),
  8256. },
  8257. 290: {
  8258. Fbits: uint8(8),
  8259. Fval: uint16(20),
  8260. },
  8261. 291: {
  8262. Fop: uint8(21),
  8263. Fbits: uint8(8),
  8264. Fval: uint16(227),
  8265. },
  8266. 292: {
  8267. Fop: uint8(19),
  8268. Fbits: uint8(7),
  8269. Fval: uint16(43),
  8270. },
  8271. 293: {
  8272. Fbits: uint8(8),
  8273. Fval: uint16(116),
  8274. },
  8275. 294: {
  8276. Fbits: uint8(8),
  8277. Fval: uint16(52),
  8278. },
  8279. 295: {
  8280. Fbits: uint8(9),
  8281. Fval: uint16(201),
  8282. },
  8283. 296: {
  8284. Fop: uint8(17),
  8285. Fbits: uint8(7),
  8286. Fval: uint16(13),
  8287. },
  8288. 297: {
  8289. Fbits: uint8(8),
  8290. Fval: uint16(100),
  8291. },
  8292. 298: {
  8293. Fbits: uint8(8),
  8294. Fval: uint16(36),
  8295. },
  8296. 299: {
  8297. Fbits: uint8(9),
  8298. Fval: uint16(169),
  8299. },
  8300. 300: {
  8301. Fbits: uint8(8),
  8302. Fval: uint16(4),
  8303. },
  8304. 301: {
  8305. Fbits: uint8(8),
  8306. Fval: uint16(132),
  8307. },
  8308. 302: {
  8309. Fbits: uint8(8),
  8310. Fval: uint16(68),
  8311. },
  8312. 303: {
  8313. Fbits: uint8(9),
  8314. Fval: uint16(233),
  8315. },
  8316. 304: {
  8317. Fop: uint8(16),
  8318. Fbits: uint8(7),
  8319. Fval: uint16(8),
  8320. },
  8321. 305: {
  8322. Fbits: uint8(8),
  8323. Fval: uint16(92),
  8324. },
  8325. 306: {
  8326. Fbits: uint8(8),
  8327. Fval: uint16(28),
  8328. },
  8329. 307: {
  8330. Fbits: uint8(9),
  8331. Fval: uint16(153),
  8332. },
  8333. 308: {
  8334. Fop: uint8(20),
  8335. Fbits: uint8(7),
  8336. Fval: uint16(83),
  8337. },
  8338. 309: {
  8339. Fbits: uint8(8),
  8340. Fval: uint16(124),
  8341. },
  8342. 310: {
  8343. Fbits: uint8(8),
  8344. Fval: uint16(60),
  8345. },
  8346. 311: {
  8347. Fbits: uint8(9),
  8348. Fval: uint16(217),
  8349. },
  8350. 312: {
  8351. Fop: uint8(18),
  8352. Fbits: uint8(7),
  8353. Fval: uint16(23),
  8354. },
  8355. 313: {
  8356. Fbits: uint8(8),
  8357. Fval: uint16(108),
  8358. },
  8359. 314: {
  8360. Fbits: uint8(8),
  8361. Fval: uint16(44),
  8362. },
  8363. 315: {
  8364. Fbits: uint8(9),
  8365. Fval: uint16(185),
  8366. },
  8367. 316: {
  8368. Fbits: uint8(8),
  8369. Fval: uint16(12),
  8370. },
  8371. 317: {
  8372. Fbits: uint8(8),
  8373. Fval: uint16(140),
  8374. },
  8375. 318: {
  8376. Fbits: uint8(8),
  8377. Fval: uint16(76),
  8378. },
  8379. 319: {
  8380. Fbits: uint8(9),
  8381. Fval: uint16(249),
  8382. },
  8383. 320: {
  8384. Fop: uint8(16),
  8385. Fbits: uint8(7),
  8386. Fval: uint16(3),
  8387. },
  8388. 321: {
  8389. Fbits: uint8(8),
  8390. Fval: uint16(82),
  8391. },
  8392. 322: {
  8393. Fbits: uint8(8),
  8394. Fval: uint16(18),
  8395. },
  8396. 323: {
  8397. Fop: uint8(21),
  8398. Fbits: uint8(8),
  8399. Fval: uint16(163),
  8400. },
  8401. 324: {
  8402. Fop: uint8(19),
  8403. Fbits: uint8(7),
  8404. Fval: uint16(35),
  8405. },
  8406. 325: {
  8407. Fbits: uint8(8),
  8408. Fval: uint16(114),
  8409. },
  8410. 326: {
  8411. Fbits: uint8(8),
  8412. Fval: uint16(50),
  8413. },
  8414. 327: {
  8415. Fbits: uint8(9),
  8416. Fval: uint16(197),
  8417. },
  8418. 328: {
  8419. Fop: uint8(17),
  8420. Fbits: uint8(7),
  8421. Fval: uint16(11),
  8422. },
  8423. 329: {
  8424. Fbits: uint8(8),
  8425. Fval: uint16(98),
  8426. },
  8427. 330: {
  8428. Fbits: uint8(8),
  8429. Fval: uint16(34),
  8430. },
  8431. 331: {
  8432. Fbits: uint8(9),
  8433. Fval: uint16(165),
  8434. },
  8435. 332: {
  8436. Fbits: uint8(8),
  8437. Fval: uint16(2),
  8438. },
  8439. 333: {
  8440. Fbits: uint8(8),
  8441. Fval: uint16(130),
  8442. },
  8443. 334: {
  8444. Fbits: uint8(8),
  8445. Fval: uint16(66),
  8446. },
  8447. 335: {
  8448. Fbits: uint8(9),
  8449. Fval: uint16(229),
  8450. },
  8451. 336: {
  8452. Fop: uint8(16),
  8453. Fbits: uint8(7),
  8454. Fval: uint16(7),
  8455. },
  8456. 337: {
  8457. Fbits: uint8(8),
  8458. Fval: uint16(90),
  8459. },
  8460. 338: {
  8461. Fbits: uint8(8),
  8462. Fval: uint16(26),
  8463. },
  8464. 339: {
  8465. Fbits: uint8(9),
  8466. Fval: uint16(149),
  8467. },
  8468. 340: {
  8469. Fop: uint8(20),
  8470. Fbits: uint8(7),
  8471. Fval: uint16(67),
  8472. },
  8473. 341: {
  8474. Fbits: uint8(8),
  8475. Fval: uint16(122),
  8476. },
  8477. 342: {
  8478. Fbits: uint8(8),
  8479. Fval: uint16(58),
  8480. },
  8481. 343: {
  8482. Fbits: uint8(9),
  8483. Fval: uint16(213),
  8484. },
  8485. 344: {
  8486. Fop: uint8(18),
  8487. Fbits: uint8(7),
  8488. Fval: uint16(19),
  8489. },
  8490. 345: {
  8491. Fbits: uint8(8),
  8492. Fval: uint16(106),
  8493. },
  8494. 346: {
  8495. Fbits: uint8(8),
  8496. Fval: uint16(42),
  8497. },
  8498. 347: {
  8499. Fbits: uint8(9),
  8500. Fval: uint16(181),
  8501. },
  8502. 348: {
  8503. Fbits: uint8(8),
  8504. Fval: uint16(10),
  8505. },
  8506. 349: {
  8507. Fbits: uint8(8),
  8508. Fval: uint16(138),
  8509. },
  8510. 350: {
  8511. Fbits: uint8(8),
  8512. Fval: uint16(74),
  8513. },
  8514. 351: {
  8515. Fbits: uint8(9),
  8516. Fval: uint16(245),
  8517. },
  8518. 352: {
  8519. Fop: uint8(16),
  8520. Fbits: uint8(7),
  8521. Fval: uint16(5),
  8522. },
  8523. 353: {
  8524. Fbits: uint8(8),
  8525. Fval: uint16(86),
  8526. },
  8527. 354: {
  8528. Fbits: uint8(8),
  8529. Fval: uint16(22),
  8530. },
  8531. 355: {
  8532. Fop: uint8(64),
  8533. Fbits: uint8(8),
  8534. },
  8535. 356: {
  8536. Fop: uint8(19),
  8537. Fbits: uint8(7),
  8538. Fval: uint16(51),
  8539. },
  8540. 357: {
  8541. Fbits: uint8(8),
  8542. Fval: uint16(118),
  8543. },
  8544. 358: {
  8545. Fbits: uint8(8),
  8546. Fval: uint16(54),
  8547. },
  8548. 359: {
  8549. Fbits: uint8(9),
  8550. Fval: uint16(205),
  8551. },
  8552. 360: {
  8553. Fop: uint8(17),
  8554. Fbits: uint8(7),
  8555. Fval: uint16(15),
  8556. },
  8557. 361: {
  8558. Fbits: uint8(8),
  8559. Fval: uint16(102),
  8560. },
  8561. 362: {
  8562. Fbits: uint8(8),
  8563. Fval: uint16(38),
  8564. },
  8565. 363: {
  8566. Fbits: uint8(9),
  8567. Fval: uint16(173),
  8568. },
  8569. 364: {
  8570. Fbits: uint8(8),
  8571. Fval: uint16(6),
  8572. },
  8573. 365: {
  8574. Fbits: uint8(8),
  8575. Fval: uint16(134),
  8576. },
  8577. 366: {
  8578. Fbits: uint8(8),
  8579. Fval: uint16(70),
  8580. },
  8581. 367: {
  8582. Fbits: uint8(9),
  8583. Fval: uint16(237),
  8584. },
  8585. 368: {
  8586. Fop: uint8(16),
  8587. Fbits: uint8(7),
  8588. Fval: uint16(9),
  8589. },
  8590. 369: {
  8591. Fbits: uint8(8),
  8592. Fval: uint16(94),
  8593. },
  8594. 370: {
  8595. Fbits: uint8(8),
  8596. Fval: uint16(30),
  8597. },
  8598. 371: {
  8599. Fbits: uint8(9),
  8600. Fval: uint16(157),
  8601. },
  8602. 372: {
  8603. Fop: uint8(20),
  8604. Fbits: uint8(7),
  8605. Fval: uint16(99),
  8606. },
  8607. 373: {
  8608. Fbits: uint8(8),
  8609. Fval: uint16(126),
  8610. },
  8611. 374: {
  8612. Fbits: uint8(8),
  8613. Fval: uint16(62),
  8614. },
  8615. 375: {
  8616. Fbits: uint8(9),
  8617. Fval: uint16(221),
  8618. },
  8619. 376: {
  8620. Fop: uint8(18),
  8621. Fbits: uint8(7),
  8622. Fval: uint16(27),
  8623. },
  8624. 377: {
  8625. Fbits: uint8(8),
  8626. Fval: uint16(110),
  8627. },
  8628. 378: {
  8629. Fbits: uint8(8),
  8630. Fval: uint16(46),
  8631. },
  8632. 379: {
  8633. Fbits: uint8(9),
  8634. Fval: uint16(189),
  8635. },
  8636. 380: {
  8637. Fbits: uint8(8),
  8638. Fval: uint16(14),
  8639. },
  8640. 381: {
  8641. Fbits: uint8(8),
  8642. Fval: uint16(142),
  8643. },
  8644. 382: {
  8645. Fbits: uint8(8),
  8646. Fval: uint16(78),
  8647. },
  8648. 383: {
  8649. Fbits: uint8(9),
  8650. Fval: uint16(253),
  8651. },
  8652. 384: {
  8653. Fop: uint8(96),
  8654. Fbits: uint8(7),
  8655. },
  8656. 385: {
  8657. Fbits: uint8(8),
  8658. Fval: uint16(81),
  8659. },
  8660. 386: {
  8661. Fbits: uint8(8),
  8662. Fval: uint16(17),
  8663. },
  8664. 387: {
  8665. Fop: uint8(21),
  8666. Fbits: uint8(8),
  8667. Fval: uint16(131),
  8668. },
  8669. 388: {
  8670. Fop: uint8(18),
  8671. Fbits: uint8(7),
  8672. Fval: uint16(31),
  8673. },
  8674. 389: {
  8675. Fbits: uint8(8),
  8676. Fval: uint16(113),
  8677. },
  8678. 390: {
  8679. Fbits: uint8(8),
  8680. Fval: uint16(49),
  8681. },
  8682. 391: {
  8683. Fbits: uint8(9),
  8684. Fval: uint16(195),
  8685. },
  8686. 392: {
  8687. Fop: uint8(16),
  8688. Fbits: uint8(7),
  8689. Fval: uint16(10),
  8690. },
  8691. 393: {
  8692. Fbits: uint8(8),
  8693. Fval: uint16(97),
  8694. },
  8695. 394: {
  8696. Fbits: uint8(8),
  8697. Fval: uint16(33),
  8698. },
  8699. 395: {
  8700. Fbits: uint8(9),
  8701. Fval: uint16(163),
  8702. },
  8703. 396: {
  8704. Fbits: uint8(8),
  8705. Fval: uint16(1),
  8706. },
  8707. 397: {
  8708. Fbits: uint8(8),
  8709. Fval: uint16(129),
  8710. },
  8711. 398: {
  8712. Fbits: uint8(8),
  8713. Fval: uint16(65),
  8714. },
  8715. 399: {
  8716. Fbits: uint8(9),
  8717. Fval: uint16(227),
  8718. },
  8719. 400: {
  8720. Fop: uint8(16),
  8721. Fbits: uint8(7),
  8722. Fval: uint16(6),
  8723. },
  8724. 401: {
  8725. Fbits: uint8(8),
  8726. Fval: uint16(89),
  8727. },
  8728. 402: {
  8729. Fbits: uint8(8),
  8730. Fval: uint16(25),
  8731. },
  8732. 403: {
  8733. Fbits: uint8(9),
  8734. Fval: uint16(147),
  8735. },
  8736. 404: {
  8737. Fop: uint8(19),
  8738. Fbits: uint8(7),
  8739. Fval: uint16(59),
  8740. },
  8741. 405: {
  8742. Fbits: uint8(8),
  8743. Fval: uint16(121),
  8744. },
  8745. 406: {
  8746. Fbits: uint8(8),
  8747. Fval: uint16(57),
  8748. },
  8749. 407: {
  8750. Fbits: uint8(9),
  8751. Fval: uint16(211),
  8752. },
  8753. 408: {
  8754. Fop: uint8(17),
  8755. Fbits: uint8(7),
  8756. Fval: uint16(17),
  8757. },
  8758. 409: {
  8759. Fbits: uint8(8),
  8760. Fval: uint16(105),
  8761. },
  8762. 410: {
  8763. Fbits: uint8(8),
  8764. Fval: uint16(41),
  8765. },
  8766. 411: {
  8767. Fbits: uint8(9),
  8768. Fval: uint16(179),
  8769. },
  8770. 412: {
  8771. Fbits: uint8(8),
  8772. Fval: uint16(9),
  8773. },
  8774. 413: {
  8775. Fbits: uint8(8),
  8776. Fval: uint16(137),
  8777. },
  8778. 414: {
  8779. Fbits: uint8(8),
  8780. Fval: uint16(73),
  8781. },
  8782. 415: {
  8783. Fbits: uint8(9),
  8784. Fval: uint16(243),
  8785. },
  8786. 416: {
  8787. Fop: uint8(16),
  8788. Fbits: uint8(7),
  8789. Fval: uint16(4),
  8790. },
  8791. 417: {
  8792. Fbits: uint8(8),
  8793. Fval: uint16(85),
  8794. },
  8795. 418: {
  8796. Fbits: uint8(8),
  8797. Fval: uint16(21),
  8798. },
  8799. 419: {
  8800. Fop: uint8(16),
  8801. Fbits: uint8(8),
  8802. Fval: uint16(258),
  8803. },
  8804. 420: {
  8805. Fop: uint8(19),
  8806. Fbits: uint8(7),
  8807. Fval: uint16(43),
  8808. },
  8809. 421: {
  8810. Fbits: uint8(8),
  8811. Fval: uint16(117),
  8812. },
  8813. 422: {
  8814. Fbits: uint8(8),
  8815. Fval: uint16(53),
  8816. },
  8817. 423: {
  8818. Fbits: uint8(9),
  8819. Fval: uint16(203),
  8820. },
  8821. 424: {
  8822. Fop: uint8(17),
  8823. Fbits: uint8(7),
  8824. Fval: uint16(13),
  8825. },
  8826. 425: {
  8827. Fbits: uint8(8),
  8828. Fval: uint16(101),
  8829. },
  8830. 426: {
  8831. Fbits: uint8(8),
  8832. Fval: uint16(37),
  8833. },
  8834. 427: {
  8835. Fbits: uint8(9),
  8836. Fval: uint16(171),
  8837. },
  8838. 428: {
  8839. Fbits: uint8(8),
  8840. Fval: uint16(5),
  8841. },
  8842. 429: {
  8843. Fbits: uint8(8),
  8844. Fval: uint16(133),
  8845. },
  8846. 430: {
  8847. Fbits: uint8(8),
  8848. Fval: uint16(69),
  8849. },
  8850. 431: {
  8851. Fbits: uint8(9),
  8852. Fval: uint16(235),
  8853. },
  8854. 432: {
  8855. Fop: uint8(16),
  8856. Fbits: uint8(7),
  8857. Fval: uint16(8),
  8858. },
  8859. 433: {
  8860. Fbits: uint8(8),
  8861. Fval: uint16(93),
  8862. },
  8863. 434: {
  8864. Fbits: uint8(8),
  8865. Fval: uint16(29),
  8866. },
  8867. 435: {
  8868. Fbits: uint8(9),
  8869. Fval: uint16(155),
  8870. },
  8871. 436: {
  8872. Fop: uint8(20),
  8873. Fbits: uint8(7),
  8874. Fval: uint16(83),
  8875. },
  8876. 437: {
  8877. Fbits: uint8(8),
  8878. Fval: uint16(125),
  8879. },
  8880. 438: {
  8881. Fbits: uint8(8),
  8882. Fval: uint16(61),
  8883. },
  8884. 439: {
  8885. Fbits: uint8(9),
  8886. Fval: uint16(219),
  8887. },
  8888. 440: {
  8889. Fop: uint8(18),
  8890. Fbits: uint8(7),
  8891. Fval: uint16(23),
  8892. },
  8893. 441: {
  8894. Fbits: uint8(8),
  8895. Fval: uint16(109),
  8896. },
  8897. 442: {
  8898. Fbits: uint8(8),
  8899. Fval: uint16(45),
  8900. },
  8901. 443: {
  8902. Fbits: uint8(9),
  8903. Fval: uint16(187),
  8904. },
  8905. 444: {
  8906. Fbits: uint8(8),
  8907. Fval: uint16(13),
  8908. },
  8909. 445: {
  8910. Fbits: uint8(8),
  8911. Fval: uint16(141),
  8912. },
  8913. 446: {
  8914. Fbits: uint8(8),
  8915. Fval: uint16(77),
  8916. },
  8917. 447: {
  8918. Fbits: uint8(9),
  8919. Fval: uint16(251),
  8920. },
  8921. 448: {
  8922. Fop: uint8(16),
  8923. Fbits: uint8(7),
  8924. Fval: uint16(3),
  8925. },
  8926. 449: {
  8927. Fbits: uint8(8),
  8928. Fval: uint16(83),
  8929. },
  8930. 450: {
  8931. Fbits: uint8(8),
  8932. Fval: uint16(19),
  8933. },
  8934. 451: {
  8935. Fop: uint8(21),
  8936. Fbits: uint8(8),
  8937. Fval: uint16(195),
  8938. },
  8939. 452: {
  8940. Fop: uint8(19),
  8941. Fbits: uint8(7),
  8942. Fval: uint16(35),
  8943. },
  8944. 453: {
  8945. Fbits: uint8(8),
  8946. Fval: uint16(115),
  8947. },
  8948. 454: {
  8949. Fbits: uint8(8),
  8950. Fval: uint16(51),
  8951. },
  8952. 455: {
  8953. Fbits: uint8(9),
  8954. Fval: uint16(199),
  8955. },
  8956. 456: {
  8957. Fop: uint8(17),
  8958. Fbits: uint8(7),
  8959. Fval: uint16(11),
  8960. },
  8961. 457: {
  8962. Fbits: uint8(8),
  8963. Fval: uint16(99),
  8964. },
  8965. 458: {
  8966. Fbits: uint8(8),
  8967. Fval: uint16(35),
  8968. },
  8969. 459: {
  8970. Fbits: uint8(9),
  8971. Fval: uint16(167),
  8972. },
  8973. 460: {
  8974. Fbits: uint8(8),
  8975. Fval: uint16(3),
  8976. },
  8977. 461: {
  8978. Fbits: uint8(8),
  8979. Fval: uint16(131),
  8980. },
  8981. 462: {
  8982. Fbits: uint8(8),
  8983. Fval: uint16(67),
  8984. },
  8985. 463: {
  8986. Fbits: uint8(9),
  8987. Fval: uint16(231),
  8988. },
  8989. 464: {
  8990. Fop: uint8(16),
  8991. Fbits: uint8(7),
  8992. Fval: uint16(7),
  8993. },
  8994. 465: {
  8995. Fbits: uint8(8),
  8996. Fval: uint16(91),
  8997. },
  8998. 466: {
  8999. Fbits: uint8(8),
  9000. Fval: uint16(27),
  9001. },
  9002. 467: {
  9003. Fbits: uint8(9),
  9004. Fval: uint16(151),
  9005. },
  9006. 468: {
  9007. Fop: uint8(20),
  9008. Fbits: uint8(7),
  9009. Fval: uint16(67),
  9010. },
  9011. 469: {
  9012. Fbits: uint8(8),
  9013. Fval: uint16(123),
  9014. },
  9015. 470: {
  9016. Fbits: uint8(8),
  9017. Fval: uint16(59),
  9018. },
  9019. 471: {
  9020. Fbits: uint8(9),
  9021. Fval: uint16(215),
  9022. },
  9023. 472: {
  9024. Fop: uint8(18),
  9025. Fbits: uint8(7),
  9026. Fval: uint16(19),
  9027. },
  9028. 473: {
  9029. Fbits: uint8(8),
  9030. Fval: uint16(107),
  9031. },
  9032. 474: {
  9033. Fbits: uint8(8),
  9034. Fval: uint16(43),
  9035. },
  9036. 475: {
  9037. Fbits: uint8(9),
  9038. Fval: uint16(183),
  9039. },
  9040. 476: {
  9041. Fbits: uint8(8),
  9042. Fval: uint16(11),
  9043. },
  9044. 477: {
  9045. Fbits: uint8(8),
  9046. Fval: uint16(139),
  9047. },
  9048. 478: {
  9049. Fbits: uint8(8),
  9050. Fval: uint16(75),
  9051. },
  9052. 479: {
  9053. Fbits: uint8(9),
  9054. Fval: uint16(247),
  9055. },
  9056. 480: {
  9057. Fop: uint8(16),
  9058. Fbits: uint8(7),
  9059. Fval: uint16(5),
  9060. },
  9061. 481: {
  9062. Fbits: uint8(8),
  9063. Fval: uint16(87),
  9064. },
  9065. 482: {
  9066. Fbits: uint8(8),
  9067. Fval: uint16(23),
  9068. },
  9069. 483: {
  9070. Fop: uint8(64),
  9071. Fbits: uint8(8),
  9072. },
  9073. 484: {
  9074. Fop: uint8(19),
  9075. Fbits: uint8(7),
  9076. Fval: uint16(51),
  9077. },
  9078. 485: {
  9079. Fbits: uint8(8),
  9080. Fval: uint16(119),
  9081. },
  9082. 486: {
  9083. Fbits: uint8(8),
  9084. Fval: uint16(55),
  9085. },
  9086. 487: {
  9087. Fbits: uint8(9),
  9088. Fval: uint16(207),
  9089. },
  9090. 488: {
  9091. Fop: uint8(17),
  9092. Fbits: uint8(7),
  9093. Fval: uint16(15),
  9094. },
  9095. 489: {
  9096. Fbits: uint8(8),
  9097. Fval: uint16(103),
  9098. },
  9099. 490: {
  9100. Fbits: uint8(8),
  9101. Fval: uint16(39),
  9102. },
  9103. 491: {
  9104. Fbits: uint8(9),
  9105. Fval: uint16(175),
  9106. },
  9107. 492: {
  9108. Fbits: uint8(8),
  9109. Fval: uint16(7),
  9110. },
  9111. 493: {
  9112. Fbits: uint8(8),
  9113. Fval: uint16(135),
  9114. },
  9115. 494: {
  9116. Fbits: uint8(8),
  9117. Fval: uint16(71),
  9118. },
  9119. 495: {
  9120. Fbits: uint8(9),
  9121. Fval: uint16(239),
  9122. },
  9123. 496: {
  9124. Fop: uint8(16),
  9125. Fbits: uint8(7),
  9126. Fval: uint16(9),
  9127. },
  9128. 497: {
  9129. Fbits: uint8(8),
  9130. Fval: uint16(95),
  9131. },
  9132. 498: {
  9133. Fbits: uint8(8),
  9134. Fval: uint16(31),
  9135. },
  9136. 499: {
  9137. Fbits: uint8(9),
  9138. Fval: uint16(159),
  9139. },
  9140. 500: {
  9141. Fop: uint8(20),
  9142. Fbits: uint8(7),
  9143. Fval: uint16(99),
  9144. },
  9145. 501: {
  9146. Fbits: uint8(8),
  9147. Fval: uint16(127),
  9148. },
  9149. 502: {
  9150. Fbits: uint8(8),
  9151. Fval: uint16(63),
  9152. },
  9153. 503: {
  9154. Fbits: uint8(9),
  9155. Fval: uint16(223),
  9156. },
  9157. 504: {
  9158. Fop: uint8(18),
  9159. Fbits: uint8(7),
  9160. Fval: uint16(27),
  9161. },
  9162. 505: {
  9163. Fbits: uint8(8),
  9164. Fval: uint16(111),
  9165. },
  9166. 506: {
  9167. Fbits: uint8(8),
  9168. Fval: uint16(47),
  9169. },
  9170. 507: {
  9171. Fbits: uint8(9),
  9172. Fval: uint16(191),
  9173. },
  9174. 508: {
  9175. Fbits: uint8(8),
  9176. Fval: uint16(15),
  9177. },
  9178. 509: {
  9179. Fbits: uint8(8),
  9180. Fval: uint16(143),
  9181. },
  9182. 510: {
  9183. Fbits: uint8(8),
  9184. Fval: uint16(79),
  9185. },
  9186. 511: {
  9187. Fbits: uint8(9),
  9188. Fval: uint16(255),
  9189. },
  9190. }
  9191. var _distfix = [32]Tcode{
  9192. 0: {
  9193. Fop: uint8(16),
  9194. Fbits: uint8(5),
  9195. Fval: uint16(1),
  9196. },
  9197. 1: {
  9198. Fop: uint8(23),
  9199. Fbits: uint8(5),
  9200. Fval: uint16(257),
  9201. },
  9202. 2: {
  9203. Fop: uint8(19),
  9204. Fbits: uint8(5),
  9205. Fval: uint16(17),
  9206. },
  9207. 3: {
  9208. Fop: uint8(27),
  9209. Fbits: uint8(5),
  9210. Fval: uint16(4097),
  9211. },
  9212. 4: {
  9213. Fop: uint8(17),
  9214. Fbits: uint8(5),
  9215. Fval: uint16(5),
  9216. },
  9217. 5: {
  9218. Fop: uint8(25),
  9219. Fbits: uint8(5),
  9220. Fval: uint16(1025),
  9221. },
  9222. 6: {
  9223. Fop: uint8(21),
  9224. Fbits: uint8(5),
  9225. Fval: uint16(65),
  9226. },
  9227. 7: {
  9228. Fop: uint8(29),
  9229. Fbits: uint8(5),
  9230. Fval: uint16(16385),
  9231. },
  9232. 8: {
  9233. Fop: uint8(16),
  9234. Fbits: uint8(5),
  9235. Fval: uint16(3),
  9236. },
  9237. 9: {
  9238. Fop: uint8(24),
  9239. Fbits: uint8(5),
  9240. Fval: uint16(513),
  9241. },
  9242. 10: {
  9243. Fop: uint8(20),
  9244. Fbits: uint8(5),
  9245. Fval: uint16(33),
  9246. },
  9247. 11: {
  9248. Fop: uint8(28),
  9249. Fbits: uint8(5),
  9250. Fval: uint16(8193),
  9251. },
  9252. 12: {
  9253. Fop: uint8(18),
  9254. Fbits: uint8(5),
  9255. Fval: uint16(9),
  9256. },
  9257. 13: {
  9258. Fop: uint8(26),
  9259. Fbits: uint8(5),
  9260. Fval: uint16(2049),
  9261. },
  9262. 14: {
  9263. Fop: uint8(22),
  9264. Fbits: uint8(5),
  9265. Fval: uint16(129),
  9266. },
  9267. 15: {
  9268. Fop: uint8(64),
  9269. Fbits: uint8(5),
  9270. },
  9271. 16: {
  9272. Fop: uint8(16),
  9273. Fbits: uint8(5),
  9274. Fval: uint16(2),
  9275. },
  9276. 17: {
  9277. Fop: uint8(23),
  9278. Fbits: uint8(5),
  9279. Fval: uint16(385),
  9280. },
  9281. 18: {
  9282. Fop: uint8(19),
  9283. Fbits: uint8(5),
  9284. Fval: uint16(25),
  9285. },
  9286. 19: {
  9287. Fop: uint8(27),
  9288. Fbits: uint8(5),
  9289. Fval: uint16(6145),
  9290. },
  9291. 20: {
  9292. Fop: uint8(17),
  9293. Fbits: uint8(5),
  9294. Fval: uint16(7),
  9295. },
  9296. 21: {
  9297. Fop: uint8(25),
  9298. Fbits: uint8(5),
  9299. Fval: uint16(1537),
  9300. },
  9301. 22: {
  9302. Fop: uint8(21),
  9303. Fbits: uint8(5),
  9304. Fval: uint16(97),
  9305. },
  9306. 23: {
  9307. Fop: uint8(29),
  9308. Fbits: uint8(5),
  9309. Fval: uint16(24577),
  9310. },
  9311. 24: {
  9312. Fop: uint8(16),
  9313. Fbits: uint8(5),
  9314. Fval: uint16(4),
  9315. },
  9316. 25: {
  9317. Fop: uint8(24),
  9318. Fbits: uint8(5),
  9319. Fval: uint16(769),
  9320. },
  9321. 26: {
  9322. Fop: uint8(20),
  9323. Fbits: uint8(5),
  9324. Fval: uint16(49),
  9325. },
  9326. 27: {
  9327. Fop: uint8(28),
  9328. Fbits: uint8(5),
  9329. Fval: uint16(12289),
  9330. },
  9331. 28: {
  9332. Fop: uint8(18),
  9333. Fbits: uint8(5),
  9334. Fval: uint16(13),
  9335. },
  9336. 29: {
  9337. Fop: uint8(26),
  9338. Fbits: uint8(5),
  9339. Fval: uint16(3073),
  9340. },
  9341. 30: {
  9342. Fop: uint8(22),
  9343. Fbits: uint8(5),
  9344. Fval: uint16(193),
  9345. },
  9346. 31: {
  9347. Fop: uint8(64),
  9348. Fbits: uint8(5),
  9349. },
  9350. }
  9351. /* Macros for inflateBack(): */
  9352. /* Load returned state from inflate_fast() */
  9353. /* Set state from registers for inflate_fast() */
  9354. /* Clear the input bit accumulator */
  9355. /* Assure that some input is available. If input is requested, but denied,
  9356. then return a Z_BUF_ERROR from inflateBack(). */
  9357. /* Get a byte of input into the bit accumulator, or return from inflateBack()
  9358. with an error if there is no input available. */
  9359. /* Assure that there are at least n bits in the bit accumulator. If there is
  9360. not enough available input to do that, then return from inflateBack() with
  9361. an error. */
  9362. /* Return the low n bits of the bit accumulator (n < 16) */
  9363. /* Remove n bits from the bit accumulator */
  9364. /* Remove zero to seven bits as needed to go to a byte boundary */
  9365. /* Assure that some output space is available, by writing out the window
  9366. if it's full. If the write fails, return from inflateBack() with a
  9367. Z_BUF_ERROR. */
  9368. // C documentation
  9369. //
  9370. // /*
  9371. // strm provides the memory allocation functions and window buffer on input,
  9372. // and provides information on the unused input on return. For Z_DATA_ERROR
  9373. // returns, strm will also provide an error message.
  9374. //
  9375. // in() and out() are the call-back input and output functions. When
  9376. // inflateBack() needs more input, it calls in(). When inflateBack() has
  9377. // filled the window with output, or when it completes with data in the
  9378. // window, it calls out() to write out the data. The application must not
  9379. // change the provided input until in() is called again or inflateBack()
  9380. // returns. The application must not change the window/output buffer until
  9381. // inflateBack() returns.
  9382. //
  9383. // in() and out() are called with a descriptor parameter provided in the
  9384. // inflateBack() call. This parameter can be a structure that provides the
  9385. // information required to do the read or write, as well as accumulated
  9386. // information on the input and output such as totals and check values.
  9387. //
  9388. // in() should return zero on failure. out() should return non-zero on
  9389. // failure. If either in() or out() fails, than inflateBack() returns a
  9390. // Z_BUF_ERROR. strm->next_in can be checked for Z_NULL to see whether it
  9391. // was in() or out() that caused in the error. Otherwise, inflateBack()
  9392. // returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format
  9393. // error, or Z_MEM_ERROR if it could not allocate memory for the state.
  9394. // inflateBack() can also return Z_STREAM_ERROR if the input parameters
  9395. // are not correct, i.e. strm is Z_NULL or the state was not initialized.
  9396. // */
  9397. func XinflateBack(tls *libc.TLS, strm Tz_streamp, in Tin_func, in_desc uintptr, out Tout_func, out_desc uintptr) (r int32) {
  9398. bp := tls.Alloc(16)
  9399. defer tls.Free(16)
  9400. var bits, copy1, have, left, len1, v1, v18, v20, v24, v29, v30, v43, v44 uint32
  9401. 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
  9402. var here, last Tcode
  9403. var hold uint64
  9404. var ret int32
  9405. var _ /* next at bp+0 */ uintptr
  9406. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  9407. /* Check that the strm exists and that the state was initialized */
  9408. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fstate == uintptr(m_Z_NULL) {
  9409. return -int32(2)
  9410. }
  9411. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  9412. /* Reset the state */
  9413. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  9414. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  9415. (*Tinflate_state)(unsafe.Pointer(state)).Flast = 0
  9416. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  9417. *(*uintptr)(unsafe.Pointer(bp)) = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  9418. if *(*uintptr)(unsafe.Pointer(bp)) != uintptr(m_Z_NULL) {
  9419. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  9420. } else {
  9421. v1 = uint32(0)
  9422. }
  9423. have = v1
  9424. hold = uint64(0)
  9425. bits = uint32(0)
  9426. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  9427. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  9428. /* Inflate until end of block marked as last */
  9429. for {
  9430. switch (*Tinflate_state)(unsafe.Pointer(state)).Fmode {
  9431. case int32(_TYPE):
  9432. goto _3
  9433. case int32(_STORED):
  9434. goto _4
  9435. case int32(_TABLE):
  9436. goto _5
  9437. case int32(_LEN):
  9438. goto _6
  9439. case int32(_DONE):
  9440. goto _7
  9441. case int32(_BAD):
  9442. goto _8
  9443. default:
  9444. goto _9
  9445. }
  9446. goto _10
  9447. _3:
  9448. ;
  9449. /* determine and dispatch block type */
  9450. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  9451. hold >>= uint64(bits & uint32(7))
  9452. bits -= bits & uint32(7)
  9453. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DONE)
  9454. goto _10
  9455. }
  9456. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(3)) {
  9457. if have == uint32(0) {
  9458. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9459. if have == uint32(0) {
  9460. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9461. ret = -int32(5)
  9462. goto inf_leave
  9463. }
  9464. }
  9465. have--
  9466. v11 = *(*uintptr)(unsafe.Pointer(bp))
  9467. *(*uintptr)(unsafe.Pointer(bp))++
  9468. hold += uint64(*(*uint8)(unsafe.Pointer(v11))) << bits
  9469. bits += uint32(8)
  9470. }
  9471. (*Tinflate_state)(unsafe.Pointer(state)).Flast = libc.Int32FromUint32(uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(1) - libc.Uint32FromInt32(1)))
  9472. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(1))
  9473. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(1))
  9474. switch uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2) - libc.Uint32FromInt32(1)) {
  9475. case uint32(0): /* stored block */
  9476. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_STORED)
  9477. case uint32(1): /* fixed block */
  9478. _fixedtables(tls, state)
  9479. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN) /* decode codes */
  9480. case uint32(2): /* dynamic block */
  9481. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TABLE)
  9482. case uint32(3):
  9483. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 6
  9484. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9485. }
  9486. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(2))
  9487. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  9488. goto _10
  9489. _4:
  9490. ;
  9491. /* get and verify stored block length */
  9492. _14:
  9493. ;
  9494. hold >>= uint64(bits & uint32(7))
  9495. bits -= bits & uint32(7)
  9496. goto _13
  9497. _13:
  9498. ;
  9499. if 0 != 0 {
  9500. goto _14
  9501. }
  9502. goto _12
  9503. _12:
  9504. ; /* go to byte boundary */
  9505. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  9506. if have == uint32(0) {
  9507. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9508. if have == uint32(0) {
  9509. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9510. ret = -int32(5)
  9511. goto inf_leave
  9512. }
  9513. }
  9514. have--
  9515. v15 = *(*uintptr)(unsafe.Pointer(bp))
  9516. *(*uintptr)(unsafe.Pointer(bp))++
  9517. hold += uint64(*(*uint8)(unsafe.Pointer(v15))) << bits
  9518. bits += uint32(8)
  9519. }
  9520. if hold&uint64(0xffff) != hold>>int32(16)^uint64(0xffff) {
  9521. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 25
  9522. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9523. goto _10
  9524. }
  9525. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(hold) & uint32(0xffff)
  9526. hold = uint64(0)
  9527. bits = uint32(0)
  9528. /* copy stored block from input to output */
  9529. for (*Tinflate_state)(unsafe.Pointer(state)).Flength != uint32(0) {
  9530. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  9531. if have == uint32(0) {
  9532. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9533. if have == uint32(0) {
  9534. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9535. ret = -int32(5)
  9536. goto inf_leave
  9537. }
  9538. }
  9539. if left == uint32(0) {
  9540. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  9541. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  9542. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  9543. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  9544. ret = -int32(5)
  9545. goto inf_leave
  9546. }
  9547. }
  9548. if copy1 > have {
  9549. copy1 = have
  9550. }
  9551. if copy1 > left {
  9552. copy1 = left
  9553. }
  9554. libc.Xmemcpy(tls, put, *(*uintptr)(unsafe.Pointer(bp)), uint64(copy1))
  9555. have -= copy1
  9556. *(*uintptr)(unsafe.Pointer(bp)) += uintptr(copy1)
  9557. left -= copy1
  9558. put += uintptr(copy1)
  9559. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  9560. }
  9561. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  9562. goto _10
  9563. _5:
  9564. ;
  9565. /* get dynamic table entries descriptor */
  9566. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(14)) {
  9567. if have == uint32(0) {
  9568. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9569. if have == uint32(0) {
  9570. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9571. ret = -int32(5)
  9572. goto inf_leave
  9573. }
  9574. }
  9575. have--
  9576. v16 = *(*uintptr)(unsafe.Pointer(bp))
  9577. *(*uintptr)(unsafe.Pointer(bp))++
  9578. hold += uint64(*(*uint8)(unsafe.Pointer(v16))) << bits
  9579. bits += uint32(8)
  9580. }
  9581. (*Tinflate_state)(unsafe.Pointer(state)).Fnlen = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(257)
  9582. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(5))
  9583. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(5))
  9584. (*Tinflate_state)(unsafe.Pointer(state)).Fndist = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(1)
  9585. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(5))
  9586. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(5))
  9587. (*Tinflate_state)(unsafe.Pointer(state)).Fncode = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(4)
  9588. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(4))
  9589. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(4))
  9590. if (*Tinflate_state)(unsafe.Pointer(state)).Fnlen > uint32(286) || (*Tinflate_state)(unsafe.Pointer(state)).Fndist > uint32(30) {
  9591. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 54
  9592. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9593. goto _10
  9594. }
  9595. /* get code length code lengths (not a typo) */
  9596. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  9597. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fncode {
  9598. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(3)) {
  9599. if have == uint32(0) {
  9600. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9601. if have == uint32(0) {
  9602. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9603. ret = -int32(5)
  9604. goto inf_leave
  9605. }
  9606. }
  9607. have--
  9608. v17 = *(*uintptr)(unsafe.Pointer(bp))
  9609. *(*uintptr)(unsafe.Pointer(bp))++
  9610. hold += uint64(*(*uint8)(unsafe.Pointer(v17))) << bits
  9611. bits += uint32(8)
  9612. }
  9613. v19 = state + 140
  9614. v18 = *(*uint32)(unsafe.Pointer(v19))
  9615. *(*uint32)(unsafe.Pointer(v19))++
  9616. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order[v18])*2)) = uint16(uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3) - libc.Uint32FromInt32(1)))
  9617. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(3))
  9618. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(3))
  9619. }
  9620. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < uint32(19) {
  9621. v21 = state + 140
  9622. v20 = *(*uint32)(unsafe.Pointer(v21))
  9623. *(*uint32)(unsafe.Pointer(v21))++
  9624. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order[v20])*2)) = uint16(0)
  9625. }
  9626. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  9627. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  9628. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(7)
  9629. ret = Xinflate_table(tls, int32(_CODES), state+152, uint32(19), state+144, state+120, state+792)
  9630. if ret != 0 {
  9631. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 90
  9632. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9633. goto _10
  9634. }
  9635. /* get length and distance code code lengths */
  9636. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  9637. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  9638. for {
  9639. 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))
  9640. if uint32(here.Fbits) <= bits {
  9641. break
  9642. }
  9643. if have == uint32(0) {
  9644. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9645. if have == uint32(0) {
  9646. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9647. ret = -int32(5)
  9648. goto inf_leave
  9649. }
  9650. }
  9651. have--
  9652. v23 = *(*uintptr)(unsafe.Pointer(bp))
  9653. *(*uintptr)(unsafe.Pointer(bp))++
  9654. hold += uint64(*(*uint8)(unsafe.Pointer(v23))) << bits
  9655. bits += uint32(8)
  9656. goto _22
  9657. _22:
  9658. }
  9659. if libc.Int32FromUint16(here.Fval) < int32(16) {
  9660. hold >>= uint64(here.Fbits)
  9661. bits -= uint32(here.Fbits)
  9662. v25 = state + 140
  9663. v24 = *(*uint32)(unsafe.Pointer(v25))
  9664. *(*uint32)(unsafe.Pointer(v25))++
  9665. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v24)*2)) = here.Fval
  9666. } else {
  9667. if libc.Int32FromUint16(here.Fval) == int32(16) {
  9668. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(2)) {
  9669. if have == uint32(0) {
  9670. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9671. if have == uint32(0) {
  9672. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9673. ret = -int32(5)
  9674. goto inf_leave
  9675. }
  9676. }
  9677. have--
  9678. v26 = *(*uintptr)(unsafe.Pointer(bp))
  9679. *(*uintptr)(unsafe.Pointer(bp))++
  9680. hold += uint64(*(*uint8)(unsafe.Pointer(v26))) << bits
  9681. bits += uint32(8)
  9682. }
  9683. hold >>= uint64(here.Fbits)
  9684. bits -= uint32(here.Fbits)
  9685. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave == uint32(0) {
  9686. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 115
  9687. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9688. break
  9689. }
  9690. len1 = uint32(*(*uint16)(unsafe.Pointer(state + 152 + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fhave-uint32(1))*2)))
  9691. copy1 = uint32(3) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2)-libc.Uint32FromInt32(1))
  9692. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(2))
  9693. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  9694. } else {
  9695. if libc.Int32FromUint16(here.Fval) == int32(17) {
  9696. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(3)) {
  9697. if have == uint32(0) {
  9698. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9699. if have == uint32(0) {
  9700. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9701. ret = -int32(5)
  9702. goto inf_leave
  9703. }
  9704. }
  9705. have--
  9706. v27 = *(*uintptr)(unsafe.Pointer(bp))
  9707. *(*uintptr)(unsafe.Pointer(bp))++
  9708. hold += uint64(*(*uint8)(unsafe.Pointer(v27))) << bits
  9709. bits += uint32(8)
  9710. }
  9711. hold >>= uint64(here.Fbits)
  9712. bits -= uint32(here.Fbits)
  9713. len1 = uint32(0)
  9714. copy1 = uint32(3) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3)-libc.Uint32FromInt32(1))
  9715. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(3))
  9716. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(3))
  9717. } else {
  9718. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(7)) {
  9719. if have == uint32(0) {
  9720. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9721. if have == uint32(0) {
  9722. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9723. ret = -int32(5)
  9724. goto inf_leave
  9725. }
  9726. }
  9727. have--
  9728. v28 = *(*uintptr)(unsafe.Pointer(bp))
  9729. *(*uintptr)(unsafe.Pointer(bp))++
  9730. hold += uint64(*(*uint8)(unsafe.Pointer(v28))) << bits
  9731. bits += uint32(8)
  9732. }
  9733. hold >>= uint64(here.Fbits)
  9734. bits -= uint32(here.Fbits)
  9735. len1 = uint32(0)
  9736. copy1 = uint32(11) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(7)-libc.Uint32FromInt32(1))
  9737. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(7))
  9738. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(7))
  9739. }
  9740. }
  9741. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave+copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  9742. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 115
  9743. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9744. break
  9745. }
  9746. for {
  9747. v29 = copy1
  9748. copy1--
  9749. if !(v29 != 0) {
  9750. break
  9751. }
  9752. v31 = state + 140
  9753. v30 = *(*uint32)(unsafe.Pointer(v31))
  9754. *(*uint32)(unsafe.Pointer(v31))++
  9755. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v30)*2)) = uint16(len1)
  9756. }
  9757. }
  9758. }
  9759. /* handle error breaks in while */
  9760. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_BAD) {
  9761. goto _10
  9762. }
  9763. /* check for end-of-block code (better have one) */
  9764. if libc.Int32FromUint16(*(*uint16)(unsafe.Pointer(state + 152 + 256*2))) == 0 {
  9765. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 141
  9766. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9767. goto _10
  9768. }
  9769. /* build code tables -- note: do not change the lenbits or distbits
  9770. values here (9 and 6) without reading the comments in inftrees.h
  9771. concerning the ENOUGH constants, which depend on those values */
  9772. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  9773. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  9774. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  9775. ret = Xinflate_table(tls, int32(_LENS), state+152, (*Tinflate_state)(unsafe.Pointer(state)).Fnlen, state+144, state+120, state+792)
  9776. if ret != 0 {
  9777. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 178
  9778. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9779. goto _10
  9780. }
  9781. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  9782. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(6)
  9783. 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)
  9784. if ret != 0 {
  9785. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 206
  9786. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9787. goto _10
  9788. }
  9789. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  9790. /* fallthrough */
  9791. _6:
  9792. ;
  9793. /* use inflate_fast() if we have enough input and output */
  9794. if have >= uint32(6) && left >= uint32(258) {
  9795. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  9796. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  9797. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = *(*uintptr)(unsafe.Pointer(bp))
  9798. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  9799. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  9800. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  9801. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  9802. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - left
  9803. }
  9804. Xinflate_fast(tls, strm, (*Tinflate_state)(unsafe.Pointer(state)).Fwsize)
  9805. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  9806. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  9807. *(*uintptr)(unsafe.Pointer(bp)) = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  9808. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  9809. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  9810. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  9811. goto _10
  9812. }
  9813. /* get a literal, length, or end-of-block code */
  9814. for {
  9815. 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))
  9816. if uint32(here.Fbits) <= bits {
  9817. break
  9818. }
  9819. if have == uint32(0) {
  9820. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9821. if have == uint32(0) {
  9822. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9823. ret = -int32(5)
  9824. goto inf_leave
  9825. }
  9826. }
  9827. have--
  9828. v33 = *(*uintptr)(unsafe.Pointer(bp))
  9829. *(*uintptr)(unsafe.Pointer(bp))++
  9830. hold += uint64(*(*uint8)(unsafe.Pointer(v33))) << bits
  9831. bits += uint32(8)
  9832. goto _32
  9833. _32:
  9834. }
  9835. if here.Fop != 0 && libc.Int32FromUint8(here.Fop)&int32(0xf0) == 0 {
  9836. last = here
  9837. for {
  9838. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(last.Fval)+uint32(hold)&(uint32(1)<<(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(last.Fop))-uint32(1))>>last.Fbits)*4))
  9839. if libc.Uint32FromInt32(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(here.Fbits)) <= bits {
  9840. break
  9841. }
  9842. if have == uint32(0) {
  9843. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9844. if have == uint32(0) {
  9845. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9846. ret = -int32(5)
  9847. goto inf_leave
  9848. }
  9849. }
  9850. have--
  9851. v35 = *(*uintptr)(unsafe.Pointer(bp))
  9852. *(*uintptr)(unsafe.Pointer(bp))++
  9853. hold += uint64(*(*uint8)(unsafe.Pointer(v35))) << bits
  9854. bits += uint32(8)
  9855. goto _34
  9856. _34:
  9857. }
  9858. hold >>= uint64(last.Fbits)
  9859. bits -= uint32(last.Fbits)
  9860. }
  9861. hold >>= uint64(here.Fbits)
  9862. bits -= uint32(here.Fbits)
  9863. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(here.Fval)
  9864. /* process literal */
  9865. if libc.Int32FromUint8(here.Fop) == 0 {
  9866. if left == uint32(0) {
  9867. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  9868. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  9869. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  9870. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  9871. ret = -int32(5)
  9872. goto inf_leave
  9873. }
  9874. }
  9875. v36 = put
  9876. put++
  9877. *(*uint8)(unsafe.Pointer(v36)) = uint8((*Tinflate_state)(unsafe.Pointer(state)).Flength)
  9878. left--
  9879. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  9880. goto _10
  9881. }
  9882. /* process end of block */
  9883. if libc.Int32FromUint8(here.Fop)&int32(32) != 0 {
  9884. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  9885. goto _10
  9886. }
  9887. /* invalid code */
  9888. if libc.Int32FromUint8(here.Fop)&int32(64) != 0 {
  9889. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 228
  9890. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9891. goto _10
  9892. }
  9893. /* length code -- get extra bits, if any */
  9894. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  9895. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != uint32(0) {
  9896. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  9897. if have == uint32(0) {
  9898. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9899. if have == uint32(0) {
  9900. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9901. ret = -int32(5)
  9902. goto inf_leave
  9903. }
  9904. }
  9905. have--
  9906. v37 = *(*uintptr)(unsafe.Pointer(bp))
  9907. *(*uintptr)(unsafe.Pointer(bp))++
  9908. hold += uint64(*(*uint8)(unsafe.Pointer(v37))) << bits
  9909. bits += uint32(8)
  9910. }
  9911. *(*uint32)(unsafe.Pointer(state + 92)) += uint32(hold) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  9912. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  9913. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  9914. }
  9915. /* get distance code */
  9916. for {
  9917. 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))
  9918. if uint32(here.Fbits) <= bits {
  9919. break
  9920. }
  9921. if have == uint32(0) {
  9922. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9923. if have == uint32(0) {
  9924. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9925. ret = -int32(5)
  9926. goto inf_leave
  9927. }
  9928. }
  9929. have--
  9930. v39 = *(*uintptr)(unsafe.Pointer(bp))
  9931. *(*uintptr)(unsafe.Pointer(bp))++
  9932. hold += uint64(*(*uint8)(unsafe.Pointer(v39))) << bits
  9933. bits += uint32(8)
  9934. goto _38
  9935. _38:
  9936. }
  9937. if libc.Int32FromUint8(here.Fop)&int32(0xf0) == 0 {
  9938. last = here
  9939. for {
  9940. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(last.Fval)+uint32(hold)&(uint32(1)<<(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(last.Fop))-uint32(1))>>last.Fbits)*4))
  9941. if libc.Uint32FromInt32(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(here.Fbits)) <= bits {
  9942. break
  9943. }
  9944. if have == uint32(0) {
  9945. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9946. if have == uint32(0) {
  9947. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9948. ret = -int32(5)
  9949. goto inf_leave
  9950. }
  9951. }
  9952. have--
  9953. v41 = *(*uintptr)(unsafe.Pointer(bp))
  9954. *(*uintptr)(unsafe.Pointer(bp))++
  9955. hold += uint64(*(*uint8)(unsafe.Pointer(v41))) << bits
  9956. bits += uint32(8)
  9957. goto _40
  9958. _40:
  9959. }
  9960. hold >>= uint64(last.Fbits)
  9961. bits -= uint32(last.Fbits)
  9962. }
  9963. hold >>= uint64(here.Fbits)
  9964. bits -= uint32(here.Fbits)
  9965. if libc.Int32FromUint8(here.Fop)&int32(64) != 0 {
  9966. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 256
  9967. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9968. goto _10
  9969. }
  9970. (*Tinflate_state)(unsafe.Pointer(state)).Foffset = uint32(here.Fval)
  9971. /* get distance extra bits, if any */
  9972. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  9973. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != uint32(0) {
  9974. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  9975. if have == uint32(0) {
  9976. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9977. if have == uint32(0) {
  9978. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9979. ret = -int32(5)
  9980. goto inf_leave
  9981. }
  9982. }
  9983. have--
  9984. v42 = *(*uintptr)(unsafe.Pointer(bp))
  9985. *(*uintptr)(unsafe.Pointer(bp))++
  9986. hold += uint64(*(*uint8)(unsafe.Pointer(v42))) << bits
  9987. bits += uint32(8)
  9988. }
  9989. *(*uint32)(unsafe.Pointer(state + 96)) += uint32(hold) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  9990. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  9991. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  9992. }
  9993. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  9994. v43 = left
  9995. } else {
  9996. v43 = uint32(0)
  9997. }
  9998. if (*Tinflate_state)(unsafe.Pointer(state)).Foffset > (*Tinflate_state)(unsafe.Pointer(state)).Fwsize-v43 {
  9999. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 278
  10000. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10001. goto _10
  10002. }
  10003. /* copy match from window to output */
  10004. for cond := true; cond; cond = (*Tinflate_state)(unsafe.Pointer(state)).Flength != uint32(0) {
  10005. if left == uint32(0) {
  10006. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  10007. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  10008. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  10009. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  10010. ret = -int32(5)
  10011. goto inf_leave
  10012. }
  10013. }
  10014. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - (*Tinflate_state)(unsafe.Pointer(state)).Foffset
  10015. if copy1 < left {
  10016. from = put + uintptr(copy1)
  10017. copy1 = left - copy1
  10018. } else {
  10019. from = put - uintptr((*Tinflate_state)(unsafe.Pointer(state)).Foffset)
  10020. copy1 = left
  10021. }
  10022. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Flength {
  10023. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  10024. }
  10025. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  10026. left -= copy1
  10027. for {
  10028. v46 = put
  10029. put++
  10030. v47 = from
  10031. from++
  10032. *(*uint8)(unsafe.Pointer(v46)) = *(*uint8)(unsafe.Pointer(v47))
  10033. goto _45
  10034. _45:
  10035. ;
  10036. copy1--
  10037. v44 = copy1
  10038. if !(v44 != 0) {
  10039. break
  10040. }
  10041. }
  10042. }
  10043. goto _10
  10044. _7:
  10045. ;
  10046. /* inflate stream terminated properly */
  10047. ret = int32(m_Z_STREAM_END)
  10048. goto inf_leave
  10049. _8:
  10050. ;
  10051. ret = -int32(3)
  10052. goto inf_leave
  10053. _9:
  10054. ;
  10055. /* can't happen, but makes compilers happy */
  10056. ret = -int32(2)
  10057. goto inf_leave
  10058. _10:
  10059. ;
  10060. goto _2
  10061. _2:
  10062. }
  10063. /* Write leftover output and return unused input */
  10064. goto inf_leave
  10065. inf_leave:
  10066. ;
  10067. if left < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  10068. 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) {
  10069. ret = -int32(5)
  10070. }
  10071. }
  10072. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = *(*uintptr)(unsafe.Pointer(bp))
  10073. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  10074. return ret
  10075. }
  10076. var _order = [19]uint16{
  10077. 0: uint16(16),
  10078. 1: uint16(17),
  10079. 2: uint16(18),
  10080. 4: uint16(8),
  10081. 5: uint16(7),
  10082. 6: uint16(9),
  10083. 7: uint16(6),
  10084. 8: uint16(10),
  10085. 9: uint16(5),
  10086. 10: uint16(11),
  10087. 11: uint16(4),
  10088. 12: uint16(12),
  10089. 13: uint16(3),
  10090. 14: uint16(13),
  10091. 15: uint16(2),
  10092. 16: uint16(14),
  10093. 17: uint16(1),
  10094. 18: uint16(15),
  10095. }
  10096. func XinflateBackEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  10097. 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) {
  10098. return -int32(2)
  10099. }
  10100. (*(*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)
  10101. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  10102. return m_Z_OK
  10103. }
  10104. // C documentation
  10105. //
  10106. // /*
  10107. // Decode literal, length, and distance codes and write out the resulting
  10108. // literal and match bytes until either not enough input or output is
  10109. // available, an end-of-block is encountered, or a data error is encountered.
  10110. // When large enough input and output buffers are supplied to inflate(), for
  10111. // example, a 16K input buffer and a 64K output buffer, more than 95% of the
  10112. // inflate execution time is spent in this routine.
  10113. //
  10114. // Entry assumptions:
  10115. //
  10116. // state->mode == LEN
  10117. // strm->avail_in >= 6
  10118. // strm->avail_out >= 258
  10119. // start >= strm->avail_out
  10120. // state->bits < 8
  10121. //
  10122. // On return, state->mode is one of:
  10123. //
  10124. // LEN -- ran out of enough output space or enough available input
  10125. // TYPE -- reached end of block code, inflate() to interpret next block
  10126. // BAD -- error in block data
  10127. //
  10128. // Notes:
  10129. //
  10130. // - The maximum input bits used by a length/distance pair is 15 bits for the
  10131. // length code, 5 bits for the length extra, 15 bits for the distance code,
  10132. // and 13 bits for the distance extra. This totals 48 bits, or six bytes.
  10133. // Therefore if strm->avail_in >= 6, then there is enough input to avoid
  10134. // checking for available input while decoding.
  10135. //
  10136. // - The maximum bytes that a single length/distance pair can output is 258
  10137. // bytes, which is the maximum length that can be coded. inflate_fast()
  10138. // requires strm->avail_out >= 258 for each loop to avoid checking for
  10139. // output space.
  10140. // */
  10141. func Xinflate_fast(tls *libc.TLS, strm Tz_streamp, start uint32) {
  10142. 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
  10143. var bits, dist, dmask, len1, lmask, op, whave, wnext, wsize, v13, v17, v21, v9 uint32
  10144. var hold uint64
  10145. var v45, v46 int64
  10146. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  10147. /* copy state to local variables */
  10148. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10149. in = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  10150. last = in + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in-libc.Uint32FromInt32(5))
  10151. out = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  10152. beg = out - uintptr(start-(*Tz_stream)(unsafe.Pointer(strm)).Favail_out)
  10153. end = out + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_out-libc.Uint32FromInt32(257))
  10154. wsize = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  10155. whave = (*Tinflate_state)(unsafe.Pointer(state)).Fwhave
  10156. wnext = (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  10157. window = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  10158. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  10159. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  10160. lcode = (*Tinflate_state)(unsafe.Pointer(state)).Flencode
  10161. dcode = (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode
  10162. lmask = uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits - uint32(1)
  10163. dmask = uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits - uint32(1)
  10164. /* decode literals and length/distances until end-of-block or not enough
  10165. input data or output space */
  10166. for cond := true; cond; cond = in < last && out < end {
  10167. if bits < uint32(15) {
  10168. v1 = in
  10169. in++
  10170. hold += uint64(*(*uint8)(unsafe.Pointer(v1))) << bits
  10171. bits += uint32(8)
  10172. v2 = in
  10173. in++
  10174. hold += uint64(*(*uint8)(unsafe.Pointer(v2))) << bits
  10175. bits += uint32(8)
  10176. }
  10177. here = lcode + uintptr(hold&uint64(lmask))*4
  10178. goto dolen
  10179. dolen:
  10180. ;
  10181. op = uint32((*Tcode)(unsafe.Pointer(here)).Fbits)
  10182. hold >>= uint64(op)
  10183. bits -= op
  10184. op = uint32((*Tcode)(unsafe.Pointer(here)).Fop)
  10185. if op == uint32(0) { /* literal */
  10186. v3 = out
  10187. out++
  10188. *(*uint8)(unsafe.Pointer(v3)) = uint8((*Tcode)(unsafe.Pointer(here)).Fval)
  10189. } else {
  10190. if op&uint32(16) != 0 { /* length base */
  10191. len1 = uint32((*Tcode)(unsafe.Pointer(here)).Fval)
  10192. op &= uint32(15) /* number of extra bits */
  10193. if op != 0 {
  10194. if bits < op {
  10195. v4 = in
  10196. in++
  10197. hold += uint64(*(*uint8)(unsafe.Pointer(v4))) << bits
  10198. bits += uint32(8)
  10199. }
  10200. len1 += uint32(hold) & (uint32(1)<<op - uint32(1))
  10201. hold >>= uint64(op)
  10202. bits -= op
  10203. }
  10204. if bits < uint32(15) {
  10205. v5 = in
  10206. in++
  10207. hold += uint64(*(*uint8)(unsafe.Pointer(v5))) << bits
  10208. bits += uint32(8)
  10209. v6 = in
  10210. in++
  10211. hold += uint64(*(*uint8)(unsafe.Pointer(v6))) << bits
  10212. bits += uint32(8)
  10213. }
  10214. here = dcode + uintptr(hold&uint64(dmask))*4
  10215. goto dodist
  10216. dodist:
  10217. ;
  10218. op = uint32((*Tcode)(unsafe.Pointer(here)).Fbits)
  10219. hold >>= uint64(op)
  10220. bits -= op
  10221. op = uint32((*Tcode)(unsafe.Pointer(here)).Fop)
  10222. if op&uint32(16) != 0 { /* distance base */
  10223. dist = uint32((*Tcode)(unsafe.Pointer(here)).Fval)
  10224. op &= uint32(15) /* number of extra bits */
  10225. if bits < op {
  10226. v7 = in
  10227. in++
  10228. hold += uint64(*(*uint8)(unsafe.Pointer(v7))) << bits
  10229. bits += uint32(8)
  10230. if bits < op {
  10231. v8 = in
  10232. in++
  10233. hold += uint64(*(*uint8)(unsafe.Pointer(v8))) << bits
  10234. bits += uint32(8)
  10235. }
  10236. }
  10237. dist += uint32(hold) & (uint32(1)<<op - uint32(1))
  10238. hold >>= uint64(op)
  10239. bits -= op
  10240. op = libc.Uint32FromInt64(int64(out) - int64(beg)) /* max distance in output */
  10241. if dist > op { /* see if copy from window */
  10242. op = dist - op /* distance back in window */
  10243. if op > whave {
  10244. if (*Tinflate_state)(unsafe.Pointer(state)).Fsane != 0 {
  10245. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 278
  10246. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10247. break
  10248. }
  10249. }
  10250. from = window
  10251. if wnext == uint32(0) { /* very common case */
  10252. from += uintptr(wsize - op)
  10253. if op < len1 { /* some from window */
  10254. len1 -= op
  10255. for {
  10256. v11 = out
  10257. out++
  10258. v12 = from
  10259. from++
  10260. *(*uint8)(unsafe.Pointer(v11)) = *(*uint8)(unsafe.Pointer(v12))
  10261. goto _10
  10262. _10:
  10263. ;
  10264. op--
  10265. v9 = op
  10266. if !(v9 != 0) {
  10267. break
  10268. }
  10269. }
  10270. from = out - uintptr(dist) /* rest from output */
  10271. }
  10272. } else {
  10273. if wnext < op { /* wrap around window */
  10274. from += uintptr(wsize + wnext - op)
  10275. op -= wnext
  10276. if op < len1 { /* some from end of window */
  10277. len1 -= op
  10278. for {
  10279. v15 = out
  10280. out++
  10281. v16 = from
  10282. from++
  10283. *(*uint8)(unsafe.Pointer(v15)) = *(*uint8)(unsafe.Pointer(v16))
  10284. goto _14
  10285. _14:
  10286. ;
  10287. op--
  10288. v13 = op
  10289. if !(v13 != 0) {
  10290. break
  10291. }
  10292. }
  10293. from = window
  10294. if wnext < len1 { /* some from start of window */
  10295. op = wnext
  10296. len1 -= op
  10297. for {
  10298. v19 = out
  10299. out++
  10300. v20 = from
  10301. from++
  10302. *(*uint8)(unsafe.Pointer(v19)) = *(*uint8)(unsafe.Pointer(v20))
  10303. goto _18
  10304. _18:
  10305. ;
  10306. op--
  10307. v17 = op
  10308. if !(v17 != 0) {
  10309. break
  10310. }
  10311. }
  10312. from = out - uintptr(dist) /* rest from output */
  10313. }
  10314. }
  10315. } else { /* contiguous in window */
  10316. from += uintptr(wnext - op)
  10317. if op < len1 { /* some from window */
  10318. len1 -= op
  10319. for {
  10320. v23 = out
  10321. out++
  10322. v24 = from
  10323. from++
  10324. *(*uint8)(unsafe.Pointer(v23)) = *(*uint8)(unsafe.Pointer(v24))
  10325. goto _22
  10326. _22:
  10327. ;
  10328. op--
  10329. v21 = op
  10330. if !(v21 != 0) {
  10331. break
  10332. }
  10333. }
  10334. from = out - uintptr(dist) /* rest from output */
  10335. }
  10336. }
  10337. }
  10338. for len1 > uint32(2) {
  10339. v25 = out
  10340. out++
  10341. v26 = from
  10342. from++
  10343. *(*uint8)(unsafe.Pointer(v25)) = *(*uint8)(unsafe.Pointer(v26))
  10344. v27 = out
  10345. out++
  10346. v28 = from
  10347. from++
  10348. *(*uint8)(unsafe.Pointer(v27)) = *(*uint8)(unsafe.Pointer(v28))
  10349. v29 = out
  10350. out++
  10351. v30 = from
  10352. from++
  10353. *(*uint8)(unsafe.Pointer(v29)) = *(*uint8)(unsafe.Pointer(v30))
  10354. len1 -= uint32(3)
  10355. }
  10356. if len1 != 0 {
  10357. v31 = out
  10358. out++
  10359. v32 = from
  10360. from++
  10361. *(*uint8)(unsafe.Pointer(v31)) = *(*uint8)(unsafe.Pointer(v32))
  10362. if len1 > uint32(1) {
  10363. v33 = out
  10364. out++
  10365. v34 = from
  10366. from++
  10367. *(*uint8)(unsafe.Pointer(v33)) = *(*uint8)(unsafe.Pointer(v34))
  10368. }
  10369. }
  10370. } else {
  10371. from = out - uintptr(dist) /* copy direct from output */
  10372. for cond := true; cond; cond = len1 > uint32(2) { /* minimum length is three */
  10373. v35 = out
  10374. out++
  10375. v36 = from
  10376. from++
  10377. *(*uint8)(unsafe.Pointer(v35)) = *(*uint8)(unsafe.Pointer(v36))
  10378. v37 = out
  10379. out++
  10380. v38 = from
  10381. from++
  10382. *(*uint8)(unsafe.Pointer(v37)) = *(*uint8)(unsafe.Pointer(v38))
  10383. v39 = out
  10384. out++
  10385. v40 = from
  10386. from++
  10387. *(*uint8)(unsafe.Pointer(v39)) = *(*uint8)(unsafe.Pointer(v40))
  10388. len1 -= uint32(3)
  10389. }
  10390. if len1 != 0 {
  10391. v41 = out
  10392. out++
  10393. v42 = from
  10394. from++
  10395. *(*uint8)(unsafe.Pointer(v41)) = *(*uint8)(unsafe.Pointer(v42))
  10396. if len1 > uint32(1) {
  10397. v43 = out
  10398. out++
  10399. v44 = from
  10400. from++
  10401. *(*uint8)(unsafe.Pointer(v43)) = *(*uint8)(unsafe.Pointer(v44))
  10402. }
  10403. }
  10404. }
  10405. } else {
  10406. if op&uint32(64) == uint32(0) { /* 2nd level distance code */
  10407. here = dcode + uintptr((*Tcode)(unsafe.Pointer(here)).Fval)*4 + uintptr(hold&uint64(libc.Uint32FromUint32(1)<<op-libc.Uint32FromInt32(1)))*4
  10408. goto dodist
  10409. } else {
  10410. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 256
  10411. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10412. break
  10413. }
  10414. }
  10415. } else {
  10416. if op&uint32(64) == uint32(0) { /* 2nd level length code */
  10417. here = lcode + uintptr((*Tcode)(unsafe.Pointer(here)).Fval)*4 + uintptr(hold&uint64(libc.Uint32FromUint32(1)<<op-libc.Uint32FromInt32(1)))*4
  10418. goto dolen
  10419. } else {
  10420. if op&uint32(32) != 0 { /* end-of-block */
  10421. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  10422. break
  10423. } else {
  10424. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 228
  10425. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10426. break
  10427. }
  10428. }
  10429. }
  10430. }
  10431. }
  10432. /* return unused bytes (on entry, bits < 8, so in won't go too far back) */
  10433. len1 = bits >> int32(3)
  10434. in -= uintptr(len1)
  10435. bits -= len1 << int32(3)
  10436. hold &= uint64(uint32(1)<<bits - uint32(1))
  10437. /* update state and return */
  10438. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = in
  10439. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = out
  10440. if in < last {
  10441. v45 = int64(5) + (int64(last) - int64(in))
  10442. } else {
  10443. v45 = int64(5) - (int64(in) - int64(last))
  10444. }
  10445. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = libc.Uint32FromInt64(v45)
  10446. if out < end {
  10447. v46 = int64(257) + (int64(end) - int64(out))
  10448. } else {
  10449. v46 = int64(257) - (int64(out) - int64(end))
  10450. }
  10451. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = libc.Uint32FromInt64(v46)
  10452. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  10453. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  10454. return
  10455. }
  10456. func _inflateStateCheck(tls *libc.TLS, strm Tz_streamp) (r int32) {
  10457. var state uintptr
  10458. _ = state
  10459. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  10460. return int32(1)
  10461. }
  10462. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10463. 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) {
  10464. return int32(1)
  10465. }
  10466. return 0
  10467. }
  10468. func XinflateResetKeep(tls *libc.TLS, strm Tz_streamp) (r int32) {
  10469. var state, v3, v4 uintptr
  10470. var v1 TuLong
  10471. var v2 uint64
  10472. _, _, _, _, _ = state, v1, v2, v3, v4
  10473. if _inflateStateCheck(tls, strm) != 0 {
  10474. return -int32(2)
  10475. }
  10476. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10477. v2 = libc.Uint64FromInt32(0)
  10478. (*Tinflate_state)(unsafe.Pointer(state)).Ftotal = v2
  10479. v1 = v2
  10480. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = v1
  10481. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = v1
  10482. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  10483. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 { /* to support ill-conceived Java test suite */
  10484. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = libc.Uint64FromInt32((*Tinflate_state)(unsafe.Pointer(state)).Fwrap & int32(1))
  10485. }
  10486. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HEAD)
  10487. (*Tinflate_state)(unsafe.Pointer(state)).Flast = 0
  10488. (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict = 0
  10489. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = -int32(1)
  10490. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(32768)
  10491. (*Tinflate_state)(unsafe.Pointer(state)).Fhead = uintptr(m_Z_NULL)
  10492. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = uint64(0)
  10493. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = uint32(0)
  10494. v4 = state + 1368
  10495. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = v4
  10496. v3 = v4
  10497. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = v3
  10498. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = v3
  10499. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  10500. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  10501. return m_Z_OK
  10502. }
  10503. func XinflateReset(tls *libc.TLS, strm Tz_streamp) (r int32) {
  10504. var state uintptr
  10505. _ = state
  10506. if _inflateStateCheck(tls, strm) != 0 {
  10507. return -int32(2)
  10508. }
  10509. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10510. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(0)
  10511. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  10512. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  10513. return XinflateResetKeep(tls, strm)
  10514. }
  10515. func XinflateReset2(tls *libc.TLS, strm Tz_streamp, windowBits int32) (r int32) {
  10516. var state uintptr
  10517. var wrap int32
  10518. _, _ = state, wrap
  10519. /* get the state */
  10520. if _inflateStateCheck(tls, strm) != 0 {
  10521. return -int32(2)
  10522. }
  10523. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10524. /* extract wrap request from windowBits parameter */
  10525. if windowBits < 0 {
  10526. if windowBits < -int32(15) {
  10527. return -int32(2)
  10528. }
  10529. wrap = 0
  10530. windowBits = -windowBits
  10531. } else {
  10532. wrap = windowBits>>int32(4) + int32(5)
  10533. if windowBits < int32(48) {
  10534. windowBits &= int32(15)
  10535. }
  10536. }
  10537. /* set number of window bits, free window if different */
  10538. if windowBits != 0 && (windowBits < int32(8) || windowBits > int32(15)) {
  10539. return -int32(2)
  10540. }
  10541. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) && (*Tinflate_state)(unsafe.Pointer(state)).Fwbits != libc.Uint32FromInt32(windowBits) {
  10542. (*(*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)
  10543. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = uintptr(m_Z_NULL)
  10544. }
  10545. /* update state and reset the rest of it */
  10546. (*Tinflate_state)(unsafe.Pointer(state)).Fwrap = wrap
  10547. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = libc.Uint32FromInt32(windowBits)
  10548. return XinflateReset(tls, strm)
  10549. }
  10550. func XinflateInit2_(tls *libc.TLS, strm Tz_streamp, windowBits int32, version uintptr, stream_size int32) (r int32) {
  10551. var ret int32
  10552. var state uintptr
  10553. _, _ = ret, state
  10554. if version == uintptr(m_Z_NULL) || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(version))) != libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(__ccgo_ts))) || stream_size != libc.Int32FromUint64(libc.Uint64FromInt64(112)) {
  10555. return -int32(6)
  10556. }
  10557. if strm == uintptr(m_Z_NULL) {
  10558. return -int32(2)
  10559. }
  10560. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* in case we return an error */
  10561. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  10562. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  10563. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  10564. }
  10565. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  10566. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  10567. }
  10568. 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, libc.Uint32FromInt32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(7160)))
  10569. if state == uintptr(m_Z_NULL) {
  10570. return -int32(4)
  10571. }
  10572. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = state
  10573. (*Tinflate_state)(unsafe.Pointer(state)).Fstrm = strm
  10574. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = uintptr(m_Z_NULL)
  10575. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HEAD) /* to pass state test in inflateReset2() */
  10576. ret = XinflateReset2(tls, strm, windowBits)
  10577. if ret != m_Z_OK {
  10578. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, state)
  10579. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  10580. }
  10581. return ret
  10582. }
  10583. func XinflateInit_(tls *libc.TLS, strm Tz_streamp, version uintptr, stream_size int32) (r int32) {
  10584. return XinflateInit2_(tls, strm, int32(m_MAX_WBITS), version, stream_size)
  10585. }
  10586. func XinflatePrime(tls *libc.TLS, strm Tz_streamp, bits int32, value int32) (r int32) {
  10587. var state uintptr
  10588. _ = state
  10589. if _inflateStateCheck(tls, strm) != 0 {
  10590. return -int32(2)
  10591. }
  10592. if bits == 0 {
  10593. return m_Z_OK
  10594. }
  10595. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10596. if bits < 0 {
  10597. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = uint64(0)
  10598. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = uint32(0)
  10599. return m_Z_OK
  10600. }
  10601. if bits > int32(16) || (*Tinflate_state)(unsafe.Pointer(state)).Fbits+libc.Uint32FromInt32(bits) > uint32(32) {
  10602. return -int32(2)
  10603. }
  10604. value = int32(int64(value) & (libc.Int64FromInt64(1)<<bits - libc.Int64FromInt32(1)))
  10605. *(*uint64)(unsafe.Pointer(state + 80)) += uint64(libc.Uint32FromInt32(value) << (*Tinflate_state)(unsafe.Pointer(state)).Fbits)
  10606. *(*uint32)(unsafe.Pointer(state + 88)) += libc.Uint32FromInt32(bits)
  10607. return m_Z_OK
  10608. }
  10609. // C documentation
  10610. //
  10611. // /*
  10612. // Return state with length and distance decoding tables and index sizes set to
  10613. // fixed code decoding. Normally this returns fixed tables from inffixed.h.
  10614. // If BUILDFIXED is defined, then instead this routine builds the tables the
  10615. // first time it's called, and returns those tables the first time and
  10616. // thereafter. This reduces the size of the code by about 2K bytes, in
  10617. // exchange for a little execution time. However, BUILDFIXED should not be
  10618. // used for threaded applications, since the rewriting of the tables and virgin
  10619. // may not be thread-safe.
  10620. // */
  10621. func _fixedtables1(tls *libc.TLS, state uintptr) {
  10622. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = uintptr(unsafe.Pointer(&_lenfix1))
  10623. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  10624. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = uintptr(unsafe.Pointer(&_distfix1))
  10625. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(5)
  10626. }
  10627. var _lenfix1 = [512]Tcode{
  10628. 0: {
  10629. Fop: uint8(96),
  10630. Fbits: uint8(7),
  10631. },
  10632. 1: {
  10633. Fbits: uint8(8),
  10634. Fval: uint16(80),
  10635. },
  10636. 2: {
  10637. Fbits: uint8(8),
  10638. Fval: uint16(16),
  10639. },
  10640. 3: {
  10641. Fop: uint8(20),
  10642. Fbits: uint8(8),
  10643. Fval: uint16(115),
  10644. },
  10645. 4: {
  10646. Fop: uint8(18),
  10647. Fbits: uint8(7),
  10648. Fval: uint16(31),
  10649. },
  10650. 5: {
  10651. Fbits: uint8(8),
  10652. Fval: uint16(112),
  10653. },
  10654. 6: {
  10655. Fbits: uint8(8),
  10656. Fval: uint16(48),
  10657. },
  10658. 7: {
  10659. Fbits: uint8(9),
  10660. Fval: uint16(192),
  10661. },
  10662. 8: {
  10663. Fop: uint8(16),
  10664. Fbits: uint8(7),
  10665. Fval: uint16(10),
  10666. },
  10667. 9: {
  10668. Fbits: uint8(8),
  10669. Fval: uint16(96),
  10670. },
  10671. 10: {
  10672. Fbits: uint8(8),
  10673. Fval: uint16(32),
  10674. },
  10675. 11: {
  10676. Fbits: uint8(9),
  10677. Fval: uint16(160),
  10678. },
  10679. 12: {
  10680. Fbits: uint8(8),
  10681. },
  10682. 13: {
  10683. Fbits: uint8(8),
  10684. Fval: uint16(128),
  10685. },
  10686. 14: {
  10687. Fbits: uint8(8),
  10688. Fval: uint16(64),
  10689. },
  10690. 15: {
  10691. Fbits: uint8(9),
  10692. Fval: uint16(224),
  10693. },
  10694. 16: {
  10695. Fop: uint8(16),
  10696. Fbits: uint8(7),
  10697. Fval: uint16(6),
  10698. },
  10699. 17: {
  10700. Fbits: uint8(8),
  10701. Fval: uint16(88),
  10702. },
  10703. 18: {
  10704. Fbits: uint8(8),
  10705. Fval: uint16(24),
  10706. },
  10707. 19: {
  10708. Fbits: uint8(9),
  10709. Fval: uint16(144),
  10710. },
  10711. 20: {
  10712. Fop: uint8(19),
  10713. Fbits: uint8(7),
  10714. Fval: uint16(59),
  10715. },
  10716. 21: {
  10717. Fbits: uint8(8),
  10718. Fval: uint16(120),
  10719. },
  10720. 22: {
  10721. Fbits: uint8(8),
  10722. Fval: uint16(56),
  10723. },
  10724. 23: {
  10725. Fbits: uint8(9),
  10726. Fval: uint16(208),
  10727. },
  10728. 24: {
  10729. Fop: uint8(17),
  10730. Fbits: uint8(7),
  10731. Fval: uint16(17),
  10732. },
  10733. 25: {
  10734. Fbits: uint8(8),
  10735. Fval: uint16(104),
  10736. },
  10737. 26: {
  10738. Fbits: uint8(8),
  10739. Fval: uint16(40),
  10740. },
  10741. 27: {
  10742. Fbits: uint8(9),
  10743. Fval: uint16(176),
  10744. },
  10745. 28: {
  10746. Fbits: uint8(8),
  10747. Fval: uint16(8),
  10748. },
  10749. 29: {
  10750. Fbits: uint8(8),
  10751. Fval: uint16(136),
  10752. },
  10753. 30: {
  10754. Fbits: uint8(8),
  10755. Fval: uint16(72),
  10756. },
  10757. 31: {
  10758. Fbits: uint8(9),
  10759. Fval: uint16(240),
  10760. },
  10761. 32: {
  10762. Fop: uint8(16),
  10763. Fbits: uint8(7),
  10764. Fval: uint16(4),
  10765. },
  10766. 33: {
  10767. Fbits: uint8(8),
  10768. Fval: uint16(84),
  10769. },
  10770. 34: {
  10771. Fbits: uint8(8),
  10772. Fval: uint16(20),
  10773. },
  10774. 35: {
  10775. Fop: uint8(21),
  10776. Fbits: uint8(8),
  10777. Fval: uint16(227),
  10778. },
  10779. 36: {
  10780. Fop: uint8(19),
  10781. Fbits: uint8(7),
  10782. Fval: uint16(43),
  10783. },
  10784. 37: {
  10785. Fbits: uint8(8),
  10786. Fval: uint16(116),
  10787. },
  10788. 38: {
  10789. Fbits: uint8(8),
  10790. Fval: uint16(52),
  10791. },
  10792. 39: {
  10793. Fbits: uint8(9),
  10794. Fval: uint16(200),
  10795. },
  10796. 40: {
  10797. Fop: uint8(17),
  10798. Fbits: uint8(7),
  10799. Fval: uint16(13),
  10800. },
  10801. 41: {
  10802. Fbits: uint8(8),
  10803. Fval: uint16(100),
  10804. },
  10805. 42: {
  10806. Fbits: uint8(8),
  10807. Fval: uint16(36),
  10808. },
  10809. 43: {
  10810. Fbits: uint8(9),
  10811. Fval: uint16(168),
  10812. },
  10813. 44: {
  10814. Fbits: uint8(8),
  10815. Fval: uint16(4),
  10816. },
  10817. 45: {
  10818. Fbits: uint8(8),
  10819. Fval: uint16(132),
  10820. },
  10821. 46: {
  10822. Fbits: uint8(8),
  10823. Fval: uint16(68),
  10824. },
  10825. 47: {
  10826. Fbits: uint8(9),
  10827. Fval: uint16(232),
  10828. },
  10829. 48: {
  10830. Fop: uint8(16),
  10831. Fbits: uint8(7),
  10832. Fval: uint16(8),
  10833. },
  10834. 49: {
  10835. Fbits: uint8(8),
  10836. Fval: uint16(92),
  10837. },
  10838. 50: {
  10839. Fbits: uint8(8),
  10840. Fval: uint16(28),
  10841. },
  10842. 51: {
  10843. Fbits: uint8(9),
  10844. Fval: uint16(152),
  10845. },
  10846. 52: {
  10847. Fop: uint8(20),
  10848. Fbits: uint8(7),
  10849. Fval: uint16(83),
  10850. },
  10851. 53: {
  10852. Fbits: uint8(8),
  10853. Fval: uint16(124),
  10854. },
  10855. 54: {
  10856. Fbits: uint8(8),
  10857. Fval: uint16(60),
  10858. },
  10859. 55: {
  10860. Fbits: uint8(9),
  10861. Fval: uint16(216),
  10862. },
  10863. 56: {
  10864. Fop: uint8(18),
  10865. Fbits: uint8(7),
  10866. Fval: uint16(23),
  10867. },
  10868. 57: {
  10869. Fbits: uint8(8),
  10870. Fval: uint16(108),
  10871. },
  10872. 58: {
  10873. Fbits: uint8(8),
  10874. Fval: uint16(44),
  10875. },
  10876. 59: {
  10877. Fbits: uint8(9),
  10878. Fval: uint16(184),
  10879. },
  10880. 60: {
  10881. Fbits: uint8(8),
  10882. Fval: uint16(12),
  10883. },
  10884. 61: {
  10885. Fbits: uint8(8),
  10886. Fval: uint16(140),
  10887. },
  10888. 62: {
  10889. Fbits: uint8(8),
  10890. Fval: uint16(76),
  10891. },
  10892. 63: {
  10893. Fbits: uint8(9),
  10894. Fval: uint16(248),
  10895. },
  10896. 64: {
  10897. Fop: uint8(16),
  10898. Fbits: uint8(7),
  10899. Fval: uint16(3),
  10900. },
  10901. 65: {
  10902. Fbits: uint8(8),
  10903. Fval: uint16(82),
  10904. },
  10905. 66: {
  10906. Fbits: uint8(8),
  10907. Fval: uint16(18),
  10908. },
  10909. 67: {
  10910. Fop: uint8(21),
  10911. Fbits: uint8(8),
  10912. Fval: uint16(163),
  10913. },
  10914. 68: {
  10915. Fop: uint8(19),
  10916. Fbits: uint8(7),
  10917. Fval: uint16(35),
  10918. },
  10919. 69: {
  10920. Fbits: uint8(8),
  10921. Fval: uint16(114),
  10922. },
  10923. 70: {
  10924. Fbits: uint8(8),
  10925. Fval: uint16(50),
  10926. },
  10927. 71: {
  10928. Fbits: uint8(9),
  10929. Fval: uint16(196),
  10930. },
  10931. 72: {
  10932. Fop: uint8(17),
  10933. Fbits: uint8(7),
  10934. Fval: uint16(11),
  10935. },
  10936. 73: {
  10937. Fbits: uint8(8),
  10938. Fval: uint16(98),
  10939. },
  10940. 74: {
  10941. Fbits: uint8(8),
  10942. Fval: uint16(34),
  10943. },
  10944. 75: {
  10945. Fbits: uint8(9),
  10946. Fval: uint16(164),
  10947. },
  10948. 76: {
  10949. Fbits: uint8(8),
  10950. Fval: uint16(2),
  10951. },
  10952. 77: {
  10953. Fbits: uint8(8),
  10954. Fval: uint16(130),
  10955. },
  10956. 78: {
  10957. Fbits: uint8(8),
  10958. Fval: uint16(66),
  10959. },
  10960. 79: {
  10961. Fbits: uint8(9),
  10962. Fval: uint16(228),
  10963. },
  10964. 80: {
  10965. Fop: uint8(16),
  10966. Fbits: uint8(7),
  10967. Fval: uint16(7),
  10968. },
  10969. 81: {
  10970. Fbits: uint8(8),
  10971. Fval: uint16(90),
  10972. },
  10973. 82: {
  10974. Fbits: uint8(8),
  10975. Fval: uint16(26),
  10976. },
  10977. 83: {
  10978. Fbits: uint8(9),
  10979. Fval: uint16(148),
  10980. },
  10981. 84: {
  10982. Fop: uint8(20),
  10983. Fbits: uint8(7),
  10984. Fval: uint16(67),
  10985. },
  10986. 85: {
  10987. Fbits: uint8(8),
  10988. Fval: uint16(122),
  10989. },
  10990. 86: {
  10991. Fbits: uint8(8),
  10992. Fval: uint16(58),
  10993. },
  10994. 87: {
  10995. Fbits: uint8(9),
  10996. Fval: uint16(212),
  10997. },
  10998. 88: {
  10999. Fop: uint8(18),
  11000. Fbits: uint8(7),
  11001. Fval: uint16(19),
  11002. },
  11003. 89: {
  11004. Fbits: uint8(8),
  11005. Fval: uint16(106),
  11006. },
  11007. 90: {
  11008. Fbits: uint8(8),
  11009. Fval: uint16(42),
  11010. },
  11011. 91: {
  11012. Fbits: uint8(9),
  11013. Fval: uint16(180),
  11014. },
  11015. 92: {
  11016. Fbits: uint8(8),
  11017. Fval: uint16(10),
  11018. },
  11019. 93: {
  11020. Fbits: uint8(8),
  11021. Fval: uint16(138),
  11022. },
  11023. 94: {
  11024. Fbits: uint8(8),
  11025. Fval: uint16(74),
  11026. },
  11027. 95: {
  11028. Fbits: uint8(9),
  11029. Fval: uint16(244),
  11030. },
  11031. 96: {
  11032. Fop: uint8(16),
  11033. Fbits: uint8(7),
  11034. Fval: uint16(5),
  11035. },
  11036. 97: {
  11037. Fbits: uint8(8),
  11038. Fval: uint16(86),
  11039. },
  11040. 98: {
  11041. Fbits: uint8(8),
  11042. Fval: uint16(22),
  11043. },
  11044. 99: {
  11045. Fop: uint8(64),
  11046. Fbits: uint8(8),
  11047. },
  11048. 100: {
  11049. Fop: uint8(19),
  11050. Fbits: uint8(7),
  11051. Fval: uint16(51),
  11052. },
  11053. 101: {
  11054. Fbits: uint8(8),
  11055. Fval: uint16(118),
  11056. },
  11057. 102: {
  11058. Fbits: uint8(8),
  11059. Fval: uint16(54),
  11060. },
  11061. 103: {
  11062. Fbits: uint8(9),
  11063. Fval: uint16(204),
  11064. },
  11065. 104: {
  11066. Fop: uint8(17),
  11067. Fbits: uint8(7),
  11068. Fval: uint16(15),
  11069. },
  11070. 105: {
  11071. Fbits: uint8(8),
  11072. Fval: uint16(102),
  11073. },
  11074. 106: {
  11075. Fbits: uint8(8),
  11076. Fval: uint16(38),
  11077. },
  11078. 107: {
  11079. Fbits: uint8(9),
  11080. Fval: uint16(172),
  11081. },
  11082. 108: {
  11083. Fbits: uint8(8),
  11084. Fval: uint16(6),
  11085. },
  11086. 109: {
  11087. Fbits: uint8(8),
  11088. Fval: uint16(134),
  11089. },
  11090. 110: {
  11091. Fbits: uint8(8),
  11092. Fval: uint16(70),
  11093. },
  11094. 111: {
  11095. Fbits: uint8(9),
  11096. Fval: uint16(236),
  11097. },
  11098. 112: {
  11099. Fop: uint8(16),
  11100. Fbits: uint8(7),
  11101. Fval: uint16(9),
  11102. },
  11103. 113: {
  11104. Fbits: uint8(8),
  11105. Fval: uint16(94),
  11106. },
  11107. 114: {
  11108. Fbits: uint8(8),
  11109. Fval: uint16(30),
  11110. },
  11111. 115: {
  11112. Fbits: uint8(9),
  11113. Fval: uint16(156),
  11114. },
  11115. 116: {
  11116. Fop: uint8(20),
  11117. Fbits: uint8(7),
  11118. Fval: uint16(99),
  11119. },
  11120. 117: {
  11121. Fbits: uint8(8),
  11122. Fval: uint16(126),
  11123. },
  11124. 118: {
  11125. Fbits: uint8(8),
  11126. Fval: uint16(62),
  11127. },
  11128. 119: {
  11129. Fbits: uint8(9),
  11130. Fval: uint16(220),
  11131. },
  11132. 120: {
  11133. Fop: uint8(18),
  11134. Fbits: uint8(7),
  11135. Fval: uint16(27),
  11136. },
  11137. 121: {
  11138. Fbits: uint8(8),
  11139. Fval: uint16(110),
  11140. },
  11141. 122: {
  11142. Fbits: uint8(8),
  11143. Fval: uint16(46),
  11144. },
  11145. 123: {
  11146. Fbits: uint8(9),
  11147. Fval: uint16(188),
  11148. },
  11149. 124: {
  11150. Fbits: uint8(8),
  11151. Fval: uint16(14),
  11152. },
  11153. 125: {
  11154. Fbits: uint8(8),
  11155. Fval: uint16(142),
  11156. },
  11157. 126: {
  11158. Fbits: uint8(8),
  11159. Fval: uint16(78),
  11160. },
  11161. 127: {
  11162. Fbits: uint8(9),
  11163. Fval: uint16(252),
  11164. },
  11165. 128: {
  11166. Fop: uint8(96),
  11167. Fbits: uint8(7),
  11168. },
  11169. 129: {
  11170. Fbits: uint8(8),
  11171. Fval: uint16(81),
  11172. },
  11173. 130: {
  11174. Fbits: uint8(8),
  11175. Fval: uint16(17),
  11176. },
  11177. 131: {
  11178. Fop: uint8(21),
  11179. Fbits: uint8(8),
  11180. Fval: uint16(131),
  11181. },
  11182. 132: {
  11183. Fop: uint8(18),
  11184. Fbits: uint8(7),
  11185. Fval: uint16(31),
  11186. },
  11187. 133: {
  11188. Fbits: uint8(8),
  11189. Fval: uint16(113),
  11190. },
  11191. 134: {
  11192. Fbits: uint8(8),
  11193. Fval: uint16(49),
  11194. },
  11195. 135: {
  11196. Fbits: uint8(9),
  11197. Fval: uint16(194),
  11198. },
  11199. 136: {
  11200. Fop: uint8(16),
  11201. Fbits: uint8(7),
  11202. Fval: uint16(10),
  11203. },
  11204. 137: {
  11205. Fbits: uint8(8),
  11206. Fval: uint16(97),
  11207. },
  11208. 138: {
  11209. Fbits: uint8(8),
  11210. Fval: uint16(33),
  11211. },
  11212. 139: {
  11213. Fbits: uint8(9),
  11214. Fval: uint16(162),
  11215. },
  11216. 140: {
  11217. Fbits: uint8(8),
  11218. Fval: uint16(1),
  11219. },
  11220. 141: {
  11221. Fbits: uint8(8),
  11222. Fval: uint16(129),
  11223. },
  11224. 142: {
  11225. Fbits: uint8(8),
  11226. Fval: uint16(65),
  11227. },
  11228. 143: {
  11229. Fbits: uint8(9),
  11230. Fval: uint16(226),
  11231. },
  11232. 144: {
  11233. Fop: uint8(16),
  11234. Fbits: uint8(7),
  11235. Fval: uint16(6),
  11236. },
  11237. 145: {
  11238. Fbits: uint8(8),
  11239. Fval: uint16(89),
  11240. },
  11241. 146: {
  11242. Fbits: uint8(8),
  11243. Fval: uint16(25),
  11244. },
  11245. 147: {
  11246. Fbits: uint8(9),
  11247. Fval: uint16(146),
  11248. },
  11249. 148: {
  11250. Fop: uint8(19),
  11251. Fbits: uint8(7),
  11252. Fval: uint16(59),
  11253. },
  11254. 149: {
  11255. Fbits: uint8(8),
  11256. Fval: uint16(121),
  11257. },
  11258. 150: {
  11259. Fbits: uint8(8),
  11260. Fval: uint16(57),
  11261. },
  11262. 151: {
  11263. Fbits: uint8(9),
  11264. Fval: uint16(210),
  11265. },
  11266. 152: {
  11267. Fop: uint8(17),
  11268. Fbits: uint8(7),
  11269. Fval: uint16(17),
  11270. },
  11271. 153: {
  11272. Fbits: uint8(8),
  11273. Fval: uint16(105),
  11274. },
  11275. 154: {
  11276. Fbits: uint8(8),
  11277. Fval: uint16(41),
  11278. },
  11279. 155: {
  11280. Fbits: uint8(9),
  11281. Fval: uint16(178),
  11282. },
  11283. 156: {
  11284. Fbits: uint8(8),
  11285. Fval: uint16(9),
  11286. },
  11287. 157: {
  11288. Fbits: uint8(8),
  11289. Fval: uint16(137),
  11290. },
  11291. 158: {
  11292. Fbits: uint8(8),
  11293. Fval: uint16(73),
  11294. },
  11295. 159: {
  11296. Fbits: uint8(9),
  11297. Fval: uint16(242),
  11298. },
  11299. 160: {
  11300. Fop: uint8(16),
  11301. Fbits: uint8(7),
  11302. Fval: uint16(4),
  11303. },
  11304. 161: {
  11305. Fbits: uint8(8),
  11306. Fval: uint16(85),
  11307. },
  11308. 162: {
  11309. Fbits: uint8(8),
  11310. Fval: uint16(21),
  11311. },
  11312. 163: {
  11313. Fop: uint8(16),
  11314. Fbits: uint8(8),
  11315. Fval: uint16(258),
  11316. },
  11317. 164: {
  11318. Fop: uint8(19),
  11319. Fbits: uint8(7),
  11320. Fval: uint16(43),
  11321. },
  11322. 165: {
  11323. Fbits: uint8(8),
  11324. Fval: uint16(117),
  11325. },
  11326. 166: {
  11327. Fbits: uint8(8),
  11328. Fval: uint16(53),
  11329. },
  11330. 167: {
  11331. Fbits: uint8(9),
  11332. Fval: uint16(202),
  11333. },
  11334. 168: {
  11335. Fop: uint8(17),
  11336. Fbits: uint8(7),
  11337. Fval: uint16(13),
  11338. },
  11339. 169: {
  11340. Fbits: uint8(8),
  11341. Fval: uint16(101),
  11342. },
  11343. 170: {
  11344. Fbits: uint8(8),
  11345. Fval: uint16(37),
  11346. },
  11347. 171: {
  11348. Fbits: uint8(9),
  11349. Fval: uint16(170),
  11350. },
  11351. 172: {
  11352. Fbits: uint8(8),
  11353. Fval: uint16(5),
  11354. },
  11355. 173: {
  11356. Fbits: uint8(8),
  11357. Fval: uint16(133),
  11358. },
  11359. 174: {
  11360. Fbits: uint8(8),
  11361. Fval: uint16(69),
  11362. },
  11363. 175: {
  11364. Fbits: uint8(9),
  11365. Fval: uint16(234),
  11366. },
  11367. 176: {
  11368. Fop: uint8(16),
  11369. Fbits: uint8(7),
  11370. Fval: uint16(8),
  11371. },
  11372. 177: {
  11373. Fbits: uint8(8),
  11374. Fval: uint16(93),
  11375. },
  11376. 178: {
  11377. Fbits: uint8(8),
  11378. Fval: uint16(29),
  11379. },
  11380. 179: {
  11381. Fbits: uint8(9),
  11382. Fval: uint16(154),
  11383. },
  11384. 180: {
  11385. Fop: uint8(20),
  11386. Fbits: uint8(7),
  11387. Fval: uint16(83),
  11388. },
  11389. 181: {
  11390. Fbits: uint8(8),
  11391. Fval: uint16(125),
  11392. },
  11393. 182: {
  11394. Fbits: uint8(8),
  11395. Fval: uint16(61),
  11396. },
  11397. 183: {
  11398. Fbits: uint8(9),
  11399. Fval: uint16(218),
  11400. },
  11401. 184: {
  11402. Fop: uint8(18),
  11403. Fbits: uint8(7),
  11404. Fval: uint16(23),
  11405. },
  11406. 185: {
  11407. Fbits: uint8(8),
  11408. Fval: uint16(109),
  11409. },
  11410. 186: {
  11411. Fbits: uint8(8),
  11412. Fval: uint16(45),
  11413. },
  11414. 187: {
  11415. Fbits: uint8(9),
  11416. Fval: uint16(186),
  11417. },
  11418. 188: {
  11419. Fbits: uint8(8),
  11420. Fval: uint16(13),
  11421. },
  11422. 189: {
  11423. Fbits: uint8(8),
  11424. Fval: uint16(141),
  11425. },
  11426. 190: {
  11427. Fbits: uint8(8),
  11428. Fval: uint16(77),
  11429. },
  11430. 191: {
  11431. Fbits: uint8(9),
  11432. Fval: uint16(250),
  11433. },
  11434. 192: {
  11435. Fop: uint8(16),
  11436. Fbits: uint8(7),
  11437. Fval: uint16(3),
  11438. },
  11439. 193: {
  11440. Fbits: uint8(8),
  11441. Fval: uint16(83),
  11442. },
  11443. 194: {
  11444. Fbits: uint8(8),
  11445. Fval: uint16(19),
  11446. },
  11447. 195: {
  11448. Fop: uint8(21),
  11449. Fbits: uint8(8),
  11450. Fval: uint16(195),
  11451. },
  11452. 196: {
  11453. Fop: uint8(19),
  11454. Fbits: uint8(7),
  11455. Fval: uint16(35),
  11456. },
  11457. 197: {
  11458. Fbits: uint8(8),
  11459. Fval: uint16(115),
  11460. },
  11461. 198: {
  11462. Fbits: uint8(8),
  11463. Fval: uint16(51),
  11464. },
  11465. 199: {
  11466. Fbits: uint8(9),
  11467. Fval: uint16(198),
  11468. },
  11469. 200: {
  11470. Fop: uint8(17),
  11471. Fbits: uint8(7),
  11472. Fval: uint16(11),
  11473. },
  11474. 201: {
  11475. Fbits: uint8(8),
  11476. Fval: uint16(99),
  11477. },
  11478. 202: {
  11479. Fbits: uint8(8),
  11480. Fval: uint16(35),
  11481. },
  11482. 203: {
  11483. Fbits: uint8(9),
  11484. Fval: uint16(166),
  11485. },
  11486. 204: {
  11487. Fbits: uint8(8),
  11488. Fval: uint16(3),
  11489. },
  11490. 205: {
  11491. Fbits: uint8(8),
  11492. Fval: uint16(131),
  11493. },
  11494. 206: {
  11495. Fbits: uint8(8),
  11496. Fval: uint16(67),
  11497. },
  11498. 207: {
  11499. Fbits: uint8(9),
  11500. Fval: uint16(230),
  11501. },
  11502. 208: {
  11503. Fop: uint8(16),
  11504. Fbits: uint8(7),
  11505. Fval: uint16(7),
  11506. },
  11507. 209: {
  11508. Fbits: uint8(8),
  11509. Fval: uint16(91),
  11510. },
  11511. 210: {
  11512. Fbits: uint8(8),
  11513. Fval: uint16(27),
  11514. },
  11515. 211: {
  11516. Fbits: uint8(9),
  11517. Fval: uint16(150),
  11518. },
  11519. 212: {
  11520. Fop: uint8(20),
  11521. Fbits: uint8(7),
  11522. Fval: uint16(67),
  11523. },
  11524. 213: {
  11525. Fbits: uint8(8),
  11526. Fval: uint16(123),
  11527. },
  11528. 214: {
  11529. Fbits: uint8(8),
  11530. Fval: uint16(59),
  11531. },
  11532. 215: {
  11533. Fbits: uint8(9),
  11534. Fval: uint16(214),
  11535. },
  11536. 216: {
  11537. Fop: uint8(18),
  11538. Fbits: uint8(7),
  11539. Fval: uint16(19),
  11540. },
  11541. 217: {
  11542. Fbits: uint8(8),
  11543. Fval: uint16(107),
  11544. },
  11545. 218: {
  11546. Fbits: uint8(8),
  11547. Fval: uint16(43),
  11548. },
  11549. 219: {
  11550. Fbits: uint8(9),
  11551. Fval: uint16(182),
  11552. },
  11553. 220: {
  11554. Fbits: uint8(8),
  11555. Fval: uint16(11),
  11556. },
  11557. 221: {
  11558. Fbits: uint8(8),
  11559. Fval: uint16(139),
  11560. },
  11561. 222: {
  11562. Fbits: uint8(8),
  11563. Fval: uint16(75),
  11564. },
  11565. 223: {
  11566. Fbits: uint8(9),
  11567. Fval: uint16(246),
  11568. },
  11569. 224: {
  11570. Fop: uint8(16),
  11571. Fbits: uint8(7),
  11572. Fval: uint16(5),
  11573. },
  11574. 225: {
  11575. Fbits: uint8(8),
  11576. Fval: uint16(87),
  11577. },
  11578. 226: {
  11579. Fbits: uint8(8),
  11580. Fval: uint16(23),
  11581. },
  11582. 227: {
  11583. Fop: uint8(64),
  11584. Fbits: uint8(8),
  11585. },
  11586. 228: {
  11587. Fop: uint8(19),
  11588. Fbits: uint8(7),
  11589. Fval: uint16(51),
  11590. },
  11591. 229: {
  11592. Fbits: uint8(8),
  11593. Fval: uint16(119),
  11594. },
  11595. 230: {
  11596. Fbits: uint8(8),
  11597. Fval: uint16(55),
  11598. },
  11599. 231: {
  11600. Fbits: uint8(9),
  11601. Fval: uint16(206),
  11602. },
  11603. 232: {
  11604. Fop: uint8(17),
  11605. Fbits: uint8(7),
  11606. Fval: uint16(15),
  11607. },
  11608. 233: {
  11609. Fbits: uint8(8),
  11610. Fval: uint16(103),
  11611. },
  11612. 234: {
  11613. Fbits: uint8(8),
  11614. Fval: uint16(39),
  11615. },
  11616. 235: {
  11617. Fbits: uint8(9),
  11618. Fval: uint16(174),
  11619. },
  11620. 236: {
  11621. Fbits: uint8(8),
  11622. Fval: uint16(7),
  11623. },
  11624. 237: {
  11625. Fbits: uint8(8),
  11626. Fval: uint16(135),
  11627. },
  11628. 238: {
  11629. Fbits: uint8(8),
  11630. Fval: uint16(71),
  11631. },
  11632. 239: {
  11633. Fbits: uint8(9),
  11634. Fval: uint16(238),
  11635. },
  11636. 240: {
  11637. Fop: uint8(16),
  11638. Fbits: uint8(7),
  11639. Fval: uint16(9),
  11640. },
  11641. 241: {
  11642. Fbits: uint8(8),
  11643. Fval: uint16(95),
  11644. },
  11645. 242: {
  11646. Fbits: uint8(8),
  11647. Fval: uint16(31),
  11648. },
  11649. 243: {
  11650. Fbits: uint8(9),
  11651. Fval: uint16(158),
  11652. },
  11653. 244: {
  11654. Fop: uint8(20),
  11655. Fbits: uint8(7),
  11656. Fval: uint16(99),
  11657. },
  11658. 245: {
  11659. Fbits: uint8(8),
  11660. Fval: uint16(127),
  11661. },
  11662. 246: {
  11663. Fbits: uint8(8),
  11664. Fval: uint16(63),
  11665. },
  11666. 247: {
  11667. Fbits: uint8(9),
  11668. Fval: uint16(222),
  11669. },
  11670. 248: {
  11671. Fop: uint8(18),
  11672. Fbits: uint8(7),
  11673. Fval: uint16(27),
  11674. },
  11675. 249: {
  11676. Fbits: uint8(8),
  11677. Fval: uint16(111),
  11678. },
  11679. 250: {
  11680. Fbits: uint8(8),
  11681. Fval: uint16(47),
  11682. },
  11683. 251: {
  11684. Fbits: uint8(9),
  11685. Fval: uint16(190),
  11686. },
  11687. 252: {
  11688. Fbits: uint8(8),
  11689. Fval: uint16(15),
  11690. },
  11691. 253: {
  11692. Fbits: uint8(8),
  11693. Fval: uint16(143),
  11694. },
  11695. 254: {
  11696. Fbits: uint8(8),
  11697. Fval: uint16(79),
  11698. },
  11699. 255: {
  11700. Fbits: uint8(9),
  11701. Fval: uint16(254),
  11702. },
  11703. 256: {
  11704. Fop: uint8(96),
  11705. Fbits: uint8(7),
  11706. },
  11707. 257: {
  11708. Fbits: uint8(8),
  11709. Fval: uint16(80),
  11710. },
  11711. 258: {
  11712. Fbits: uint8(8),
  11713. Fval: uint16(16),
  11714. },
  11715. 259: {
  11716. Fop: uint8(20),
  11717. Fbits: uint8(8),
  11718. Fval: uint16(115),
  11719. },
  11720. 260: {
  11721. Fop: uint8(18),
  11722. Fbits: uint8(7),
  11723. Fval: uint16(31),
  11724. },
  11725. 261: {
  11726. Fbits: uint8(8),
  11727. Fval: uint16(112),
  11728. },
  11729. 262: {
  11730. Fbits: uint8(8),
  11731. Fval: uint16(48),
  11732. },
  11733. 263: {
  11734. Fbits: uint8(9),
  11735. Fval: uint16(193),
  11736. },
  11737. 264: {
  11738. Fop: uint8(16),
  11739. Fbits: uint8(7),
  11740. Fval: uint16(10),
  11741. },
  11742. 265: {
  11743. Fbits: uint8(8),
  11744. Fval: uint16(96),
  11745. },
  11746. 266: {
  11747. Fbits: uint8(8),
  11748. Fval: uint16(32),
  11749. },
  11750. 267: {
  11751. Fbits: uint8(9),
  11752. Fval: uint16(161),
  11753. },
  11754. 268: {
  11755. Fbits: uint8(8),
  11756. },
  11757. 269: {
  11758. Fbits: uint8(8),
  11759. Fval: uint16(128),
  11760. },
  11761. 270: {
  11762. Fbits: uint8(8),
  11763. Fval: uint16(64),
  11764. },
  11765. 271: {
  11766. Fbits: uint8(9),
  11767. Fval: uint16(225),
  11768. },
  11769. 272: {
  11770. Fop: uint8(16),
  11771. Fbits: uint8(7),
  11772. Fval: uint16(6),
  11773. },
  11774. 273: {
  11775. Fbits: uint8(8),
  11776. Fval: uint16(88),
  11777. },
  11778. 274: {
  11779. Fbits: uint8(8),
  11780. Fval: uint16(24),
  11781. },
  11782. 275: {
  11783. Fbits: uint8(9),
  11784. Fval: uint16(145),
  11785. },
  11786. 276: {
  11787. Fop: uint8(19),
  11788. Fbits: uint8(7),
  11789. Fval: uint16(59),
  11790. },
  11791. 277: {
  11792. Fbits: uint8(8),
  11793. Fval: uint16(120),
  11794. },
  11795. 278: {
  11796. Fbits: uint8(8),
  11797. Fval: uint16(56),
  11798. },
  11799. 279: {
  11800. Fbits: uint8(9),
  11801. Fval: uint16(209),
  11802. },
  11803. 280: {
  11804. Fop: uint8(17),
  11805. Fbits: uint8(7),
  11806. Fval: uint16(17),
  11807. },
  11808. 281: {
  11809. Fbits: uint8(8),
  11810. Fval: uint16(104),
  11811. },
  11812. 282: {
  11813. Fbits: uint8(8),
  11814. Fval: uint16(40),
  11815. },
  11816. 283: {
  11817. Fbits: uint8(9),
  11818. Fval: uint16(177),
  11819. },
  11820. 284: {
  11821. Fbits: uint8(8),
  11822. Fval: uint16(8),
  11823. },
  11824. 285: {
  11825. Fbits: uint8(8),
  11826. Fval: uint16(136),
  11827. },
  11828. 286: {
  11829. Fbits: uint8(8),
  11830. Fval: uint16(72),
  11831. },
  11832. 287: {
  11833. Fbits: uint8(9),
  11834. Fval: uint16(241),
  11835. },
  11836. 288: {
  11837. Fop: uint8(16),
  11838. Fbits: uint8(7),
  11839. Fval: uint16(4),
  11840. },
  11841. 289: {
  11842. Fbits: uint8(8),
  11843. Fval: uint16(84),
  11844. },
  11845. 290: {
  11846. Fbits: uint8(8),
  11847. Fval: uint16(20),
  11848. },
  11849. 291: {
  11850. Fop: uint8(21),
  11851. Fbits: uint8(8),
  11852. Fval: uint16(227),
  11853. },
  11854. 292: {
  11855. Fop: uint8(19),
  11856. Fbits: uint8(7),
  11857. Fval: uint16(43),
  11858. },
  11859. 293: {
  11860. Fbits: uint8(8),
  11861. Fval: uint16(116),
  11862. },
  11863. 294: {
  11864. Fbits: uint8(8),
  11865. Fval: uint16(52),
  11866. },
  11867. 295: {
  11868. Fbits: uint8(9),
  11869. Fval: uint16(201),
  11870. },
  11871. 296: {
  11872. Fop: uint8(17),
  11873. Fbits: uint8(7),
  11874. Fval: uint16(13),
  11875. },
  11876. 297: {
  11877. Fbits: uint8(8),
  11878. Fval: uint16(100),
  11879. },
  11880. 298: {
  11881. Fbits: uint8(8),
  11882. Fval: uint16(36),
  11883. },
  11884. 299: {
  11885. Fbits: uint8(9),
  11886. Fval: uint16(169),
  11887. },
  11888. 300: {
  11889. Fbits: uint8(8),
  11890. Fval: uint16(4),
  11891. },
  11892. 301: {
  11893. Fbits: uint8(8),
  11894. Fval: uint16(132),
  11895. },
  11896. 302: {
  11897. Fbits: uint8(8),
  11898. Fval: uint16(68),
  11899. },
  11900. 303: {
  11901. Fbits: uint8(9),
  11902. Fval: uint16(233),
  11903. },
  11904. 304: {
  11905. Fop: uint8(16),
  11906. Fbits: uint8(7),
  11907. Fval: uint16(8),
  11908. },
  11909. 305: {
  11910. Fbits: uint8(8),
  11911. Fval: uint16(92),
  11912. },
  11913. 306: {
  11914. Fbits: uint8(8),
  11915. Fval: uint16(28),
  11916. },
  11917. 307: {
  11918. Fbits: uint8(9),
  11919. Fval: uint16(153),
  11920. },
  11921. 308: {
  11922. Fop: uint8(20),
  11923. Fbits: uint8(7),
  11924. Fval: uint16(83),
  11925. },
  11926. 309: {
  11927. Fbits: uint8(8),
  11928. Fval: uint16(124),
  11929. },
  11930. 310: {
  11931. Fbits: uint8(8),
  11932. Fval: uint16(60),
  11933. },
  11934. 311: {
  11935. Fbits: uint8(9),
  11936. Fval: uint16(217),
  11937. },
  11938. 312: {
  11939. Fop: uint8(18),
  11940. Fbits: uint8(7),
  11941. Fval: uint16(23),
  11942. },
  11943. 313: {
  11944. Fbits: uint8(8),
  11945. Fval: uint16(108),
  11946. },
  11947. 314: {
  11948. Fbits: uint8(8),
  11949. Fval: uint16(44),
  11950. },
  11951. 315: {
  11952. Fbits: uint8(9),
  11953. Fval: uint16(185),
  11954. },
  11955. 316: {
  11956. Fbits: uint8(8),
  11957. Fval: uint16(12),
  11958. },
  11959. 317: {
  11960. Fbits: uint8(8),
  11961. Fval: uint16(140),
  11962. },
  11963. 318: {
  11964. Fbits: uint8(8),
  11965. Fval: uint16(76),
  11966. },
  11967. 319: {
  11968. Fbits: uint8(9),
  11969. Fval: uint16(249),
  11970. },
  11971. 320: {
  11972. Fop: uint8(16),
  11973. Fbits: uint8(7),
  11974. Fval: uint16(3),
  11975. },
  11976. 321: {
  11977. Fbits: uint8(8),
  11978. Fval: uint16(82),
  11979. },
  11980. 322: {
  11981. Fbits: uint8(8),
  11982. Fval: uint16(18),
  11983. },
  11984. 323: {
  11985. Fop: uint8(21),
  11986. Fbits: uint8(8),
  11987. Fval: uint16(163),
  11988. },
  11989. 324: {
  11990. Fop: uint8(19),
  11991. Fbits: uint8(7),
  11992. Fval: uint16(35),
  11993. },
  11994. 325: {
  11995. Fbits: uint8(8),
  11996. Fval: uint16(114),
  11997. },
  11998. 326: {
  11999. Fbits: uint8(8),
  12000. Fval: uint16(50),
  12001. },
  12002. 327: {
  12003. Fbits: uint8(9),
  12004. Fval: uint16(197),
  12005. },
  12006. 328: {
  12007. Fop: uint8(17),
  12008. Fbits: uint8(7),
  12009. Fval: uint16(11),
  12010. },
  12011. 329: {
  12012. Fbits: uint8(8),
  12013. Fval: uint16(98),
  12014. },
  12015. 330: {
  12016. Fbits: uint8(8),
  12017. Fval: uint16(34),
  12018. },
  12019. 331: {
  12020. Fbits: uint8(9),
  12021. Fval: uint16(165),
  12022. },
  12023. 332: {
  12024. Fbits: uint8(8),
  12025. Fval: uint16(2),
  12026. },
  12027. 333: {
  12028. Fbits: uint8(8),
  12029. Fval: uint16(130),
  12030. },
  12031. 334: {
  12032. Fbits: uint8(8),
  12033. Fval: uint16(66),
  12034. },
  12035. 335: {
  12036. Fbits: uint8(9),
  12037. Fval: uint16(229),
  12038. },
  12039. 336: {
  12040. Fop: uint8(16),
  12041. Fbits: uint8(7),
  12042. Fval: uint16(7),
  12043. },
  12044. 337: {
  12045. Fbits: uint8(8),
  12046. Fval: uint16(90),
  12047. },
  12048. 338: {
  12049. Fbits: uint8(8),
  12050. Fval: uint16(26),
  12051. },
  12052. 339: {
  12053. Fbits: uint8(9),
  12054. Fval: uint16(149),
  12055. },
  12056. 340: {
  12057. Fop: uint8(20),
  12058. Fbits: uint8(7),
  12059. Fval: uint16(67),
  12060. },
  12061. 341: {
  12062. Fbits: uint8(8),
  12063. Fval: uint16(122),
  12064. },
  12065. 342: {
  12066. Fbits: uint8(8),
  12067. Fval: uint16(58),
  12068. },
  12069. 343: {
  12070. Fbits: uint8(9),
  12071. Fval: uint16(213),
  12072. },
  12073. 344: {
  12074. Fop: uint8(18),
  12075. Fbits: uint8(7),
  12076. Fval: uint16(19),
  12077. },
  12078. 345: {
  12079. Fbits: uint8(8),
  12080. Fval: uint16(106),
  12081. },
  12082. 346: {
  12083. Fbits: uint8(8),
  12084. Fval: uint16(42),
  12085. },
  12086. 347: {
  12087. Fbits: uint8(9),
  12088. Fval: uint16(181),
  12089. },
  12090. 348: {
  12091. Fbits: uint8(8),
  12092. Fval: uint16(10),
  12093. },
  12094. 349: {
  12095. Fbits: uint8(8),
  12096. Fval: uint16(138),
  12097. },
  12098. 350: {
  12099. Fbits: uint8(8),
  12100. Fval: uint16(74),
  12101. },
  12102. 351: {
  12103. Fbits: uint8(9),
  12104. Fval: uint16(245),
  12105. },
  12106. 352: {
  12107. Fop: uint8(16),
  12108. Fbits: uint8(7),
  12109. Fval: uint16(5),
  12110. },
  12111. 353: {
  12112. Fbits: uint8(8),
  12113. Fval: uint16(86),
  12114. },
  12115. 354: {
  12116. Fbits: uint8(8),
  12117. Fval: uint16(22),
  12118. },
  12119. 355: {
  12120. Fop: uint8(64),
  12121. Fbits: uint8(8),
  12122. },
  12123. 356: {
  12124. Fop: uint8(19),
  12125. Fbits: uint8(7),
  12126. Fval: uint16(51),
  12127. },
  12128. 357: {
  12129. Fbits: uint8(8),
  12130. Fval: uint16(118),
  12131. },
  12132. 358: {
  12133. Fbits: uint8(8),
  12134. Fval: uint16(54),
  12135. },
  12136. 359: {
  12137. Fbits: uint8(9),
  12138. Fval: uint16(205),
  12139. },
  12140. 360: {
  12141. Fop: uint8(17),
  12142. Fbits: uint8(7),
  12143. Fval: uint16(15),
  12144. },
  12145. 361: {
  12146. Fbits: uint8(8),
  12147. Fval: uint16(102),
  12148. },
  12149. 362: {
  12150. Fbits: uint8(8),
  12151. Fval: uint16(38),
  12152. },
  12153. 363: {
  12154. Fbits: uint8(9),
  12155. Fval: uint16(173),
  12156. },
  12157. 364: {
  12158. Fbits: uint8(8),
  12159. Fval: uint16(6),
  12160. },
  12161. 365: {
  12162. Fbits: uint8(8),
  12163. Fval: uint16(134),
  12164. },
  12165. 366: {
  12166. Fbits: uint8(8),
  12167. Fval: uint16(70),
  12168. },
  12169. 367: {
  12170. Fbits: uint8(9),
  12171. Fval: uint16(237),
  12172. },
  12173. 368: {
  12174. Fop: uint8(16),
  12175. Fbits: uint8(7),
  12176. Fval: uint16(9),
  12177. },
  12178. 369: {
  12179. Fbits: uint8(8),
  12180. Fval: uint16(94),
  12181. },
  12182. 370: {
  12183. Fbits: uint8(8),
  12184. Fval: uint16(30),
  12185. },
  12186. 371: {
  12187. Fbits: uint8(9),
  12188. Fval: uint16(157),
  12189. },
  12190. 372: {
  12191. Fop: uint8(20),
  12192. Fbits: uint8(7),
  12193. Fval: uint16(99),
  12194. },
  12195. 373: {
  12196. Fbits: uint8(8),
  12197. Fval: uint16(126),
  12198. },
  12199. 374: {
  12200. Fbits: uint8(8),
  12201. Fval: uint16(62),
  12202. },
  12203. 375: {
  12204. Fbits: uint8(9),
  12205. Fval: uint16(221),
  12206. },
  12207. 376: {
  12208. Fop: uint8(18),
  12209. Fbits: uint8(7),
  12210. Fval: uint16(27),
  12211. },
  12212. 377: {
  12213. Fbits: uint8(8),
  12214. Fval: uint16(110),
  12215. },
  12216. 378: {
  12217. Fbits: uint8(8),
  12218. Fval: uint16(46),
  12219. },
  12220. 379: {
  12221. Fbits: uint8(9),
  12222. Fval: uint16(189),
  12223. },
  12224. 380: {
  12225. Fbits: uint8(8),
  12226. Fval: uint16(14),
  12227. },
  12228. 381: {
  12229. Fbits: uint8(8),
  12230. Fval: uint16(142),
  12231. },
  12232. 382: {
  12233. Fbits: uint8(8),
  12234. Fval: uint16(78),
  12235. },
  12236. 383: {
  12237. Fbits: uint8(9),
  12238. Fval: uint16(253),
  12239. },
  12240. 384: {
  12241. Fop: uint8(96),
  12242. Fbits: uint8(7),
  12243. },
  12244. 385: {
  12245. Fbits: uint8(8),
  12246. Fval: uint16(81),
  12247. },
  12248. 386: {
  12249. Fbits: uint8(8),
  12250. Fval: uint16(17),
  12251. },
  12252. 387: {
  12253. Fop: uint8(21),
  12254. Fbits: uint8(8),
  12255. Fval: uint16(131),
  12256. },
  12257. 388: {
  12258. Fop: uint8(18),
  12259. Fbits: uint8(7),
  12260. Fval: uint16(31),
  12261. },
  12262. 389: {
  12263. Fbits: uint8(8),
  12264. Fval: uint16(113),
  12265. },
  12266. 390: {
  12267. Fbits: uint8(8),
  12268. Fval: uint16(49),
  12269. },
  12270. 391: {
  12271. Fbits: uint8(9),
  12272. Fval: uint16(195),
  12273. },
  12274. 392: {
  12275. Fop: uint8(16),
  12276. Fbits: uint8(7),
  12277. Fval: uint16(10),
  12278. },
  12279. 393: {
  12280. Fbits: uint8(8),
  12281. Fval: uint16(97),
  12282. },
  12283. 394: {
  12284. Fbits: uint8(8),
  12285. Fval: uint16(33),
  12286. },
  12287. 395: {
  12288. Fbits: uint8(9),
  12289. Fval: uint16(163),
  12290. },
  12291. 396: {
  12292. Fbits: uint8(8),
  12293. Fval: uint16(1),
  12294. },
  12295. 397: {
  12296. Fbits: uint8(8),
  12297. Fval: uint16(129),
  12298. },
  12299. 398: {
  12300. Fbits: uint8(8),
  12301. Fval: uint16(65),
  12302. },
  12303. 399: {
  12304. Fbits: uint8(9),
  12305. Fval: uint16(227),
  12306. },
  12307. 400: {
  12308. Fop: uint8(16),
  12309. Fbits: uint8(7),
  12310. Fval: uint16(6),
  12311. },
  12312. 401: {
  12313. Fbits: uint8(8),
  12314. Fval: uint16(89),
  12315. },
  12316. 402: {
  12317. Fbits: uint8(8),
  12318. Fval: uint16(25),
  12319. },
  12320. 403: {
  12321. Fbits: uint8(9),
  12322. Fval: uint16(147),
  12323. },
  12324. 404: {
  12325. Fop: uint8(19),
  12326. Fbits: uint8(7),
  12327. Fval: uint16(59),
  12328. },
  12329. 405: {
  12330. Fbits: uint8(8),
  12331. Fval: uint16(121),
  12332. },
  12333. 406: {
  12334. Fbits: uint8(8),
  12335. Fval: uint16(57),
  12336. },
  12337. 407: {
  12338. Fbits: uint8(9),
  12339. Fval: uint16(211),
  12340. },
  12341. 408: {
  12342. Fop: uint8(17),
  12343. Fbits: uint8(7),
  12344. Fval: uint16(17),
  12345. },
  12346. 409: {
  12347. Fbits: uint8(8),
  12348. Fval: uint16(105),
  12349. },
  12350. 410: {
  12351. Fbits: uint8(8),
  12352. Fval: uint16(41),
  12353. },
  12354. 411: {
  12355. Fbits: uint8(9),
  12356. Fval: uint16(179),
  12357. },
  12358. 412: {
  12359. Fbits: uint8(8),
  12360. Fval: uint16(9),
  12361. },
  12362. 413: {
  12363. Fbits: uint8(8),
  12364. Fval: uint16(137),
  12365. },
  12366. 414: {
  12367. Fbits: uint8(8),
  12368. Fval: uint16(73),
  12369. },
  12370. 415: {
  12371. Fbits: uint8(9),
  12372. Fval: uint16(243),
  12373. },
  12374. 416: {
  12375. Fop: uint8(16),
  12376. Fbits: uint8(7),
  12377. Fval: uint16(4),
  12378. },
  12379. 417: {
  12380. Fbits: uint8(8),
  12381. Fval: uint16(85),
  12382. },
  12383. 418: {
  12384. Fbits: uint8(8),
  12385. Fval: uint16(21),
  12386. },
  12387. 419: {
  12388. Fop: uint8(16),
  12389. Fbits: uint8(8),
  12390. Fval: uint16(258),
  12391. },
  12392. 420: {
  12393. Fop: uint8(19),
  12394. Fbits: uint8(7),
  12395. Fval: uint16(43),
  12396. },
  12397. 421: {
  12398. Fbits: uint8(8),
  12399. Fval: uint16(117),
  12400. },
  12401. 422: {
  12402. Fbits: uint8(8),
  12403. Fval: uint16(53),
  12404. },
  12405. 423: {
  12406. Fbits: uint8(9),
  12407. Fval: uint16(203),
  12408. },
  12409. 424: {
  12410. Fop: uint8(17),
  12411. Fbits: uint8(7),
  12412. Fval: uint16(13),
  12413. },
  12414. 425: {
  12415. Fbits: uint8(8),
  12416. Fval: uint16(101),
  12417. },
  12418. 426: {
  12419. Fbits: uint8(8),
  12420. Fval: uint16(37),
  12421. },
  12422. 427: {
  12423. Fbits: uint8(9),
  12424. Fval: uint16(171),
  12425. },
  12426. 428: {
  12427. Fbits: uint8(8),
  12428. Fval: uint16(5),
  12429. },
  12430. 429: {
  12431. Fbits: uint8(8),
  12432. Fval: uint16(133),
  12433. },
  12434. 430: {
  12435. Fbits: uint8(8),
  12436. Fval: uint16(69),
  12437. },
  12438. 431: {
  12439. Fbits: uint8(9),
  12440. Fval: uint16(235),
  12441. },
  12442. 432: {
  12443. Fop: uint8(16),
  12444. Fbits: uint8(7),
  12445. Fval: uint16(8),
  12446. },
  12447. 433: {
  12448. Fbits: uint8(8),
  12449. Fval: uint16(93),
  12450. },
  12451. 434: {
  12452. Fbits: uint8(8),
  12453. Fval: uint16(29),
  12454. },
  12455. 435: {
  12456. Fbits: uint8(9),
  12457. Fval: uint16(155),
  12458. },
  12459. 436: {
  12460. Fop: uint8(20),
  12461. Fbits: uint8(7),
  12462. Fval: uint16(83),
  12463. },
  12464. 437: {
  12465. Fbits: uint8(8),
  12466. Fval: uint16(125),
  12467. },
  12468. 438: {
  12469. Fbits: uint8(8),
  12470. Fval: uint16(61),
  12471. },
  12472. 439: {
  12473. Fbits: uint8(9),
  12474. Fval: uint16(219),
  12475. },
  12476. 440: {
  12477. Fop: uint8(18),
  12478. Fbits: uint8(7),
  12479. Fval: uint16(23),
  12480. },
  12481. 441: {
  12482. Fbits: uint8(8),
  12483. Fval: uint16(109),
  12484. },
  12485. 442: {
  12486. Fbits: uint8(8),
  12487. Fval: uint16(45),
  12488. },
  12489. 443: {
  12490. Fbits: uint8(9),
  12491. Fval: uint16(187),
  12492. },
  12493. 444: {
  12494. Fbits: uint8(8),
  12495. Fval: uint16(13),
  12496. },
  12497. 445: {
  12498. Fbits: uint8(8),
  12499. Fval: uint16(141),
  12500. },
  12501. 446: {
  12502. Fbits: uint8(8),
  12503. Fval: uint16(77),
  12504. },
  12505. 447: {
  12506. Fbits: uint8(9),
  12507. Fval: uint16(251),
  12508. },
  12509. 448: {
  12510. Fop: uint8(16),
  12511. Fbits: uint8(7),
  12512. Fval: uint16(3),
  12513. },
  12514. 449: {
  12515. Fbits: uint8(8),
  12516. Fval: uint16(83),
  12517. },
  12518. 450: {
  12519. Fbits: uint8(8),
  12520. Fval: uint16(19),
  12521. },
  12522. 451: {
  12523. Fop: uint8(21),
  12524. Fbits: uint8(8),
  12525. Fval: uint16(195),
  12526. },
  12527. 452: {
  12528. Fop: uint8(19),
  12529. Fbits: uint8(7),
  12530. Fval: uint16(35),
  12531. },
  12532. 453: {
  12533. Fbits: uint8(8),
  12534. Fval: uint16(115),
  12535. },
  12536. 454: {
  12537. Fbits: uint8(8),
  12538. Fval: uint16(51),
  12539. },
  12540. 455: {
  12541. Fbits: uint8(9),
  12542. Fval: uint16(199),
  12543. },
  12544. 456: {
  12545. Fop: uint8(17),
  12546. Fbits: uint8(7),
  12547. Fval: uint16(11),
  12548. },
  12549. 457: {
  12550. Fbits: uint8(8),
  12551. Fval: uint16(99),
  12552. },
  12553. 458: {
  12554. Fbits: uint8(8),
  12555. Fval: uint16(35),
  12556. },
  12557. 459: {
  12558. Fbits: uint8(9),
  12559. Fval: uint16(167),
  12560. },
  12561. 460: {
  12562. Fbits: uint8(8),
  12563. Fval: uint16(3),
  12564. },
  12565. 461: {
  12566. Fbits: uint8(8),
  12567. Fval: uint16(131),
  12568. },
  12569. 462: {
  12570. Fbits: uint8(8),
  12571. Fval: uint16(67),
  12572. },
  12573. 463: {
  12574. Fbits: uint8(9),
  12575. Fval: uint16(231),
  12576. },
  12577. 464: {
  12578. Fop: uint8(16),
  12579. Fbits: uint8(7),
  12580. Fval: uint16(7),
  12581. },
  12582. 465: {
  12583. Fbits: uint8(8),
  12584. Fval: uint16(91),
  12585. },
  12586. 466: {
  12587. Fbits: uint8(8),
  12588. Fval: uint16(27),
  12589. },
  12590. 467: {
  12591. Fbits: uint8(9),
  12592. Fval: uint16(151),
  12593. },
  12594. 468: {
  12595. Fop: uint8(20),
  12596. Fbits: uint8(7),
  12597. Fval: uint16(67),
  12598. },
  12599. 469: {
  12600. Fbits: uint8(8),
  12601. Fval: uint16(123),
  12602. },
  12603. 470: {
  12604. Fbits: uint8(8),
  12605. Fval: uint16(59),
  12606. },
  12607. 471: {
  12608. Fbits: uint8(9),
  12609. Fval: uint16(215),
  12610. },
  12611. 472: {
  12612. Fop: uint8(18),
  12613. Fbits: uint8(7),
  12614. Fval: uint16(19),
  12615. },
  12616. 473: {
  12617. Fbits: uint8(8),
  12618. Fval: uint16(107),
  12619. },
  12620. 474: {
  12621. Fbits: uint8(8),
  12622. Fval: uint16(43),
  12623. },
  12624. 475: {
  12625. Fbits: uint8(9),
  12626. Fval: uint16(183),
  12627. },
  12628. 476: {
  12629. Fbits: uint8(8),
  12630. Fval: uint16(11),
  12631. },
  12632. 477: {
  12633. Fbits: uint8(8),
  12634. Fval: uint16(139),
  12635. },
  12636. 478: {
  12637. Fbits: uint8(8),
  12638. Fval: uint16(75),
  12639. },
  12640. 479: {
  12641. Fbits: uint8(9),
  12642. Fval: uint16(247),
  12643. },
  12644. 480: {
  12645. Fop: uint8(16),
  12646. Fbits: uint8(7),
  12647. Fval: uint16(5),
  12648. },
  12649. 481: {
  12650. Fbits: uint8(8),
  12651. Fval: uint16(87),
  12652. },
  12653. 482: {
  12654. Fbits: uint8(8),
  12655. Fval: uint16(23),
  12656. },
  12657. 483: {
  12658. Fop: uint8(64),
  12659. Fbits: uint8(8),
  12660. },
  12661. 484: {
  12662. Fop: uint8(19),
  12663. Fbits: uint8(7),
  12664. Fval: uint16(51),
  12665. },
  12666. 485: {
  12667. Fbits: uint8(8),
  12668. Fval: uint16(119),
  12669. },
  12670. 486: {
  12671. Fbits: uint8(8),
  12672. Fval: uint16(55),
  12673. },
  12674. 487: {
  12675. Fbits: uint8(9),
  12676. Fval: uint16(207),
  12677. },
  12678. 488: {
  12679. Fop: uint8(17),
  12680. Fbits: uint8(7),
  12681. Fval: uint16(15),
  12682. },
  12683. 489: {
  12684. Fbits: uint8(8),
  12685. Fval: uint16(103),
  12686. },
  12687. 490: {
  12688. Fbits: uint8(8),
  12689. Fval: uint16(39),
  12690. },
  12691. 491: {
  12692. Fbits: uint8(9),
  12693. Fval: uint16(175),
  12694. },
  12695. 492: {
  12696. Fbits: uint8(8),
  12697. Fval: uint16(7),
  12698. },
  12699. 493: {
  12700. Fbits: uint8(8),
  12701. Fval: uint16(135),
  12702. },
  12703. 494: {
  12704. Fbits: uint8(8),
  12705. Fval: uint16(71),
  12706. },
  12707. 495: {
  12708. Fbits: uint8(9),
  12709. Fval: uint16(239),
  12710. },
  12711. 496: {
  12712. Fop: uint8(16),
  12713. Fbits: uint8(7),
  12714. Fval: uint16(9),
  12715. },
  12716. 497: {
  12717. Fbits: uint8(8),
  12718. Fval: uint16(95),
  12719. },
  12720. 498: {
  12721. Fbits: uint8(8),
  12722. Fval: uint16(31),
  12723. },
  12724. 499: {
  12725. Fbits: uint8(9),
  12726. Fval: uint16(159),
  12727. },
  12728. 500: {
  12729. Fop: uint8(20),
  12730. Fbits: uint8(7),
  12731. Fval: uint16(99),
  12732. },
  12733. 501: {
  12734. Fbits: uint8(8),
  12735. Fval: uint16(127),
  12736. },
  12737. 502: {
  12738. Fbits: uint8(8),
  12739. Fval: uint16(63),
  12740. },
  12741. 503: {
  12742. Fbits: uint8(9),
  12743. Fval: uint16(223),
  12744. },
  12745. 504: {
  12746. Fop: uint8(18),
  12747. Fbits: uint8(7),
  12748. Fval: uint16(27),
  12749. },
  12750. 505: {
  12751. Fbits: uint8(8),
  12752. Fval: uint16(111),
  12753. },
  12754. 506: {
  12755. Fbits: uint8(8),
  12756. Fval: uint16(47),
  12757. },
  12758. 507: {
  12759. Fbits: uint8(9),
  12760. Fval: uint16(191),
  12761. },
  12762. 508: {
  12763. Fbits: uint8(8),
  12764. Fval: uint16(15),
  12765. },
  12766. 509: {
  12767. Fbits: uint8(8),
  12768. Fval: uint16(143),
  12769. },
  12770. 510: {
  12771. Fbits: uint8(8),
  12772. Fval: uint16(79),
  12773. },
  12774. 511: {
  12775. Fbits: uint8(9),
  12776. Fval: uint16(255),
  12777. },
  12778. }
  12779. var _distfix1 = [32]Tcode{
  12780. 0: {
  12781. Fop: uint8(16),
  12782. Fbits: uint8(5),
  12783. Fval: uint16(1),
  12784. },
  12785. 1: {
  12786. Fop: uint8(23),
  12787. Fbits: uint8(5),
  12788. Fval: uint16(257),
  12789. },
  12790. 2: {
  12791. Fop: uint8(19),
  12792. Fbits: uint8(5),
  12793. Fval: uint16(17),
  12794. },
  12795. 3: {
  12796. Fop: uint8(27),
  12797. Fbits: uint8(5),
  12798. Fval: uint16(4097),
  12799. },
  12800. 4: {
  12801. Fop: uint8(17),
  12802. Fbits: uint8(5),
  12803. Fval: uint16(5),
  12804. },
  12805. 5: {
  12806. Fop: uint8(25),
  12807. Fbits: uint8(5),
  12808. Fval: uint16(1025),
  12809. },
  12810. 6: {
  12811. Fop: uint8(21),
  12812. Fbits: uint8(5),
  12813. Fval: uint16(65),
  12814. },
  12815. 7: {
  12816. Fop: uint8(29),
  12817. Fbits: uint8(5),
  12818. Fval: uint16(16385),
  12819. },
  12820. 8: {
  12821. Fop: uint8(16),
  12822. Fbits: uint8(5),
  12823. Fval: uint16(3),
  12824. },
  12825. 9: {
  12826. Fop: uint8(24),
  12827. Fbits: uint8(5),
  12828. Fval: uint16(513),
  12829. },
  12830. 10: {
  12831. Fop: uint8(20),
  12832. Fbits: uint8(5),
  12833. Fval: uint16(33),
  12834. },
  12835. 11: {
  12836. Fop: uint8(28),
  12837. Fbits: uint8(5),
  12838. Fval: uint16(8193),
  12839. },
  12840. 12: {
  12841. Fop: uint8(18),
  12842. Fbits: uint8(5),
  12843. Fval: uint16(9),
  12844. },
  12845. 13: {
  12846. Fop: uint8(26),
  12847. Fbits: uint8(5),
  12848. Fval: uint16(2049),
  12849. },
  12850. 14: {
  12851. Fop: uint8(22),
  12852. Fbits: uint8(5),
  12853. Fval: uint16(129),
  12854. },
  12855. 15: {
  12856. Fop: uint8(64),
  12857. Fbits: uint8(5),
  12858. },
  12859. 16: {
  12860. Fop: uint8(16),
  12861. Fbits: uint8(5),
  12862. Fval: uint16(2),
  12863. },
  12864. 17: {
  12865. Fop: uint8(23),
  12866. Fbits: uint8(5),
  12867. Fval: uint16(385),
  12868. },
  12869. 18: {
  12870. Fop: uint8(19),
  12871. Fbits: uint8(5),
  12872. Fval: uint16(25),
  12873. },
  12874. 19: {
  12875. Fop: uint8(27),
  12876. Fbits: uint8(5),
  12877. Fval: uint16(6145),
  12878. },
  12879. 20: {
  12880. Fop: uint8(17),
  12881. Fbits: uint8(5),
  12882. Fval: uint16(7),
  12883. },
  12884. 21: {
  12885. Fop: uint8(25),
  12886. Fbits: uint8(5),
  12887. Fval: uint16(1537),
  12888. },
  12889. 22: {
  12890. Fop: uint8(21),
  12891. Fbits: uint8(5),
  12892. Fval: uint16(97),
  12893. },
  12894. 23: {
  12895. Fop: uint8(29),
  12896. Fbits: uint8(5),
  12897. Fval: uint16(24577),
  12898. },
  12899. 24: {
  12900. Fop: uint8(16),
  12901. Fbits: uint8(5),
  12902. Fval: uint16(4),
  12903. },
  12904. 25: {
  12905. Fop: uint8(24),
  12906. Fbits: uint8(5),
  12907. Fval: uint16(769),
  12908. },
  12909. 26: {
  12910. Fop: uint8(20),
  12911. Fbits: uint8(5),
  12912. Fval: uint16(49),
  12913. },
  12914. 27: {
  12915. Fop: uint8(28),
  12916. Fbits: uint8(5),
  12917. Fval: uint16(12289),
  12918. },
  12919. 28: {
  12920. Fop: uint8(18),
  12921. Fbits: uint8(5),
  12922. Fval: uint16(13),
  12923. },
  12924. 29: {
  12925. Fop: uint8(26),
  12926. Fbits: uint8(5),
  12927. Fval: uint16(3073),
  12928. },
  12929. 30: {
  12930. Fop: uint8(22),
  12931. Fbits: uint8(5),
  12932. Fval: uint16(193),
  12933. },
  12934. 31: {
  12935. Fop: uint8(64),
  12936. Fbits: uint8(5),
  12937. },
  12938. }
  12939. // C documentation
  12940. //
  12941. // /*
  12942. // Update the window with the last wsize (normally 32K) bytes written before
  12943. // returning. If window does not exist yet, create it. This is only called
  12944. // when a window is already in use, or when output has been written during this
  12945. // inflate call, but the end of the deflate stream has not been reached yet.
  12946. // It is also called to create a window for dictionary data when a dictionary
  12947. // is loaded.
  12948. //
  12949. // Providing output buffers larger than 32K to inflate() should provide a speed
  12950. // advantage, since only the last 32K of output is copied to the sliding window
  12951. // upon return from inflate(), and since all distances after the first 32K of
  12952. // output will fall in the output data, making match copies simpler and faster.
  12953. // The advantage may be dependent on the size of the processor's data caches.
  12954. // */
  12955. func _updatewindow(tls *libc.TLS, strm Tz_streamp, end uintptr, copy1 uint32) (r int32) {
  12956. var dist uint32
  12957. var state uintptr
  12958. _, _ = dist, state
  12959. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  12960. /* if it hasn't been done already, allocate space for the window */
  12961. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow == uintptr(m_Z_NULL) {
  12962. (*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)))
  12963. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow == uintptr(m_Z_NULL) {
  12964. return int32(1)
  12965. }
  12966. }
  12967. /* if window not in use yet, initialize */
  12968. if (*Tinflate_state)(unsafe.Pointer(state)).Fwsize == uint32(0) {
  12969. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(1) << (*Tinflate_state)(unsafe.Pointer(state)).Fwbits
  12970. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  12971. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  12972. }
  12973. /* copy state->wsize or less output bytes into the circular window */
  12974. if copy1 >= (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  12975. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, end-uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwsize), uint64((*Tinflate_state)(unsafe.Pointer(state)).Fwsize))
  12976. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  12977. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  12978. } else {
  12979. dist = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  12980. if dist > copy1 {
  12981. dist = copy1
  12982. }
  12983. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), end-uintptr(copy1), uint64(dist))
  12984. copy1 -= dist
  12985. if copy1 != 0 {
  12986. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, end-uintptr(copy1), uint64(copy1))
  12987. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = copy1
  12988. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  12989. } else {
  12990. *(*uint32)(unsafe.Pointer(state + 68)) += dist
  12991. if (*Tinflate_state)(unsafe.Pointer(state)).Fwnext == (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  12992. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  12993. }
  12994. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  12995. *(*uint32)(unsafe.Pointer(state + 64)) += dist
  12996. }
  12997. }
  12998. }
  12999. return 0
  13000. }
  13001. /* Macros for inflate(): */
  13002. /* check function to use adler32() for zlib or crc32() for gzip */
  13003. /* check macros for header crc */
  13004. /* Load registers with state in inflate() for speed */
  13005. /* Restore state from registers in inflate() */
  13006. /* Clear the input bit accumulator */
  13007. /* Get a byte of input into the bit accumulator, or return from inflate()
  13008. if there is no input available. */
  13009. /* Assure that there are at least n bits in the bit accumulator. If there is
  13010. not enough available input to do that, then return from inflate(). */
  13011. /* Return the low n bits of the bit accumulator (n < 16) */
  13012. /* Remove n bits from the bit accumulator */
  13013. /* Remove zero to seven bits as needed to go to a byte boundary */
  13014. /*
  13015. inflate() uses a state machine to process as much input data and generate as
  13016. much output data as possible before returning. The state machine is
  13017. structured roughly as follows:
  13018. for (;;) switch (state) {
  13019. ...
  13020. case STATEn:
  13021. if (not enough input data or output space to make progress)
  13022. return;
  13023. ... make progress ...
  13024. state = STATEm;
  13025. break;
  13026. ...
  13027. }
  13028. so when inflate() is called again, the same case is attempted again, and
  13029. if the appropriate resources are provided, the machine proceeds to the
  13030. next state. The NEEDBITS() macro is usually the way the state evaluates
  13031. whether it can proceed or should return. NEEDBITS() does the return if
  13032. the requested bits are not available. The typical use of the BITS macros
  13033. is:
  13034. NEEDBITS(n);
  13035. ... do something with BITS(n) ...
  13036. DROPBITS(n);
  13037. where NEEDBITS(n) either returns from inflate() if there isn't enough
  13038. input left to load n bits into the accumulator, or it continues. BITS(n)
  13039. gives the low n bits in the accumulator. When done, DROPBITS(n) drops
  13040. the low n bits off the accumulator. INITBITS() clears the accumulator
  13041. and sets the number of available bits to zero. BYTEBITS() discards just
  13042. enough bits to put the accumulator on a byte boundary. After BYTEBITS()
  13043. and a NEEDBITS(8), then BITS(8) would return the next byte in the stream.
  13044. NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return
  13045. if there is no input available. The decoding of variable length codes uses
  13046. PULLBYTE() directly in order to pull just enough bytes to decode the next
  13047. code, and no more.
  13048. Some states loop until they get enough input, making sure that enough
  13049. state information is maintained to continue the loop where it left off
  13050. if NEEDBITS() returns in the loop. For example, want, need, and keep
  13051. would all have to actually be part of the saved state in case NEEDBITS()
  13052. returns:
  13053. case STATEw:
  13054. while (want < need) {
  13055. NEEDBITS(n);
  13056. keep[want++] = BITS(n);
  13057. DROPBITS(n);
  13058. }
  13059. state = STATEx;
  13060. case STATEx:
  13061. As shown above, if the next state is also the next case, then the break
  13062. is omitted.
  13063. A state may also return if there is not enough output space available to
  13064. complete that state. Those states are copying stored data, writing a
  13065. literal byte, and copying a matching string.
  13066. When returning, a "goto inf_leave" is used to update the total counters,
  13067. update the check value, and determine whether any progress has been made
  13068. during that inflate() call in order to return the proper return code.
  13069. Progress is defined as a change in either strm->avail_in or strm->avail_out.
  13070. When there is a window, goto inf_leave will update the window with the last
  13071. output written. If a goto inf_leave occurs in the middle of decompression
  13072. and there is no window currently, goto inf_leave will create one and copy
  13073. output to the window for the next call of inflate().
  13074. In this implementation, the flush parameter of inflate() only affects the
  13075. return code (per zlib.h). inflate() always writes as much as possible to
  13076. strm->next_out, given the space available and the provided input--the effect
  13077. documented in zlib.h of Z_SYNC_FLUSH. Furthermore, inflate() always defers
  13078. the allocation of and copying into a sliding window until necessary, which
  13079. provides the effect documented in zlib.h for Z_FINISH when the entire input
  13080. stream available. So the only thing the flush parameter actually does is:
  13081. when flush is set to Z_FINISH, inflate() cannot return Z_OK. Instead it
  13082. will return Z_BUF_ERROR if it has not reached the end of the stream.
  13083. */
  13084. func Xinflate(tls *libc.TLS, strm Tz_streamp, flush int32) (r int32) {
  13085. bp := tls.Alloc(16)
  13086. defer tls.Free(16)
  13087. var bits, copy1, have, in, left, len1, out, v46, v48, v49, v50, v52, v53, v64, v66, v70, v75, v76, v90 uint32
  13088. 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
  13089. var here, last Tcode
  13090. var hold, v101, v102, v37, v56, v58, v59, v96, v97, v98 uint64
  13091. var ret, v103, v104, v105, v38 int32
  13092. var v47, v99 bool
  13093. var _ /* hbuf at bp+0 */ [4]uint8
  13094. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  13095. 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) {
  13096. return -int32(2)
  13097. }
  13098. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  13099. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  13100. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPEDO)
  13101. } /* skip check */
  13102. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  13103. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  13104. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  13105. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  13106. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  13107. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  13108. in = have
  13109. out = left
  13110. ret = m_Z_OK
  13111. for {
  13112. switch (*Tinflate_state)(unsafe.Pointer(state)).Fmode {
  13113. case int32(_HEAD):
  13114. goto _2
  13115. case int32(_FLAGS):
  13116. goto _3
  13117. case int32(_TIME):
  13118. goto _4
  13119. case int32(_OS):
  13120. goto _5
  13121. case int32(_EXLEN):
  13122. goto _6
  13123. case int32(_EXTRA):
  13124. goto _7
  13125. case int32(_NAME):
  13126. goto _8
  13127. case int32(_COMMENT):
  13128. goto _9
  13129. case int32(_HCRC):
  13130. goto _10
  13131. case int32(_DICTID):
  13132. goto _11
  13133. case int32(_DICT):
  13134. goto _12
  13135. case int32(_TYPE):
  13136. goto _13
  13137. case int32(_TYPEDO):
  13138. goto _14
  13139. case int32(_STORED):
  13140. goto _15
  13141. case int32(_COPY_):
  13142. goto _16
  13143. case int32(_COPY):
  13144. goto _17
  13145. case int32(_TABLE):
  13146. goto _18
  13147. case int32(_LENLENS):
  13148. goto _19
  13149. case int32(_CODELENS):
  13150. goto _20
  13151. case int32(_LEN_):
  13152. goto _21
  13153. case int32(_LEN):
  13154. goto _22
  13155. case int32(_LENEXT):
  13156. goto _23
  13157. case int32(_DIST):
  13158. goto _24
  13159. case int32(_DISTEXT):
  13160. goto _25
  13161. case int32(_MATCH):
  13162. goto _26
  13163. case int32(_LIT):
  13164. goto _27
  13165. case int32(_CHECK):
  13166. goto _28
  13167. case int32(_LENGTH):
  13168. goto _29
  13169. case int32(_DONE):
  13170. goto _30
  13171. case int32(_BAD):
  13172. goto _31
  13173. case int32(_MEM):
  13174. goto _32
  13175. default:
  13176. goto _33
  13177. case int32(_SYNC):
  13178. goto _34
  13179. }
  13180. goto _35
  13181. _2:
  13182. ;
  13183. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap == 0 {
  13184. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPEDO)
  13185. goto _35
  13186. }
  13187. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(16)) {
  13188. if have == uint32(0) {
  13189. goto inf_leave
  13190. }
  13191. have--
  13192. v36 = next
  13193. next++
  13194. hold += uint64(*(*uint8)(unsafe.Pointer(v36))) << bits
  13195. bits += uint32(8)
  13196. }
  13197. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(2) != 0 && hold == uint64(0x8b1f) { /* gzip header */
  13198. if (*Tinflate_state)(unsafe.Pointer(state)).Fwbits == uint32(0) {
  13199. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = uint32(15)
  13200. }
  13201. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  13202. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13203. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13204. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  13205. hold = uint64(0)
  13206. bits = uint32(0)
  13207. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_FLAGS)
  13208. goto _35
  13209. }
  13210. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13211. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fdone = -int32(1)
  13212. }
  13213. 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 {
  13214. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 308
  13215. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13216. goto _35
  13217. }
  13218. if uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) != uint32(m_Z_DEFLATED) {
  13219. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 331
  13220. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13221. goto _35
  13222. }
  13223. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(4))
  13224. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(4))
  13225. len1 = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(8)
  13226. if (*Tinflate_state)(unsafe.Pointer(state)).Fwbits == uint32(0) {
  13227. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = len1
  13228. }
  13229. if len1 > uint32(15) || len1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwbits {
  13230. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 358
  13231. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13232. goto _35
  13233. }
  13234. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(1) << len1
  13235. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = 0 /* indicate zlib header */
  13236. v37 = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  13237. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v37
  13238. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v37
  13239. if hold&uint64(0x200) != 0 {
  13240. v38 = int32(_DICTID)
  13241. } else {
  13242. v38 = int32(_TYPE)
  13243. }
  13244. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = v38
  13245. hold = uint64(0)
  13246. bits = uint32(0)
  13247. goto _35
  13248. _3:
  13249. ;
  13250. _41:
  13251. ;
  13252. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(16)) {
  13253. if have == uint32(0) {
  13254. goto inf_leave
  13255. }
  13256. have--
  13257. v42 = next
  13258. next++
  13259. hold += uint64(*(*uint8)(unsafe.Pointer(v42))) << bits
  13260. bits += uint32(8)
  13261. }
  13262. goto _40
  13263. _40:
  13264. ;
  13265. if 0 != 0 {
  13266. goto _41
  13267. }
  13268. goto _39
  13269. _39:
  13270. ;
  13271. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = libc.Int32FromUint64(hold)
  13272. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0xff) != int32(m_Z_DEFLATED) {
  13273. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 331
  13274. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13275. goto _35
  13276. }
  13277. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0xe000) != 0 {
  13278. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 378
  13279. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13280. goto _35
  13281. }
  13282. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13283. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Ftext = libc.Int32FromUint64(hold >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(1))
  13284. }
  13285. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13286. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13287. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13288. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  13289. }
  13290. hold = uint64(0)
  13291. bits = uint32(0)
  13292. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TIME)
  13293. /* fallthrough */
  13294. _4:
  13295. ;
  13296. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  13297. if have == uint32(0) {
  13298. goto inf_leave
  13299. }
  13300. have--
  13301. v43 = next
  13302. next++
  13303. hold += uint64(*(*uint8)(unsafe.Pointer(v43))) << bits
  13304. bits += uint32(8)
  13305. }
  13306. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13307. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Ftime = hold
  13308. }
  13309. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13310. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13311. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13312. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(2)] = uint8(hold >> libc.Int32FromInt32(16))
  13313. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(3)] = uint8(hold >> libc.Int32FromInt32(24))
  13314. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(4))
  13315. }
  13316. hold = uint64(0)
  13317. bits = uint32(0)
  13318. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_OS)
  13319. /* fallthrough */
  13320. _5:
  13321. ;
  13322. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(16)) {
  13323. if have == uint32(0) {
  13324. goto inf_leave
  13325. }
  13326. have--
  13327. v44 = next
  13328. next++
  13329. hold += uint64(*(*uint8)(unsafe.Pointer(v44))) << bits
  13330. bits += uint32(8)
  13331. }
  13332. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13333. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fxflags = libc.Int32FromUint64(hold & libc.Uint64FromInt32(0xff))
  13334. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fos = libc.Int32FromUint64(hold >> libc.Int32FromInt32(8))
  13335. }
  13336. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13337. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13338. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13339. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  13340. }
  13341. hold = uint64(0)
  13342. bits = uint32(0)
  13343. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_EXLEN)
  13344. /* fallthrough */
  13345. _6:
  13346. ;
  13347. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0400) != 0 {
  13348. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(16)) {
  13349. if have == uint32(0) {
  13350. goto inf_leave
  13351. }
  13352. have--
  13353. v45 = next
  13354. next++
  13355. hold += uint64(*(*uint8)(unsafe.Pointer(v45))) << bits
  13356. bits += uint32(8)
  13357. }
  13358. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(hold)
  13359. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13360. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_len = uint32(hold)
  13361. }
  13362. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13363. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13364. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13365. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  13366. }
  13367. hold = uint64(0)
  13368. bits = uint32(0)
  13369. } else {
  13370. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13371. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra = uintptr(m_Z_NULL)
  13372. }
  13373. }
  13374. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_EXTRA)
  13375. /* fallthrough */
  13376. _7:
  13377. ;
  13378. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0400) != 0 {
  13379. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  13380. if copy1 > have {
  13381. copy1 = have
  13382. }
  13383. if copy1 != 0 {
  13384. 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 {
  13385. v46 = (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_len - (*Tinflate_state)(unsafe.Pointer(state)).Flength
  13386. len1 = v46
  13387. }
  13388. if v47 && v46 < (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max {
  13389. if len1+copy1 > (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max {
  13390. v48 = (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max - len1
  13391. } else {
  13392. v48 = copy1
  13393. }
  13394. libc.Xmemcpy(tls, (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra+uintptr(len1), next, uint64(v48))
  13395. }
  13396. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13397. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  13398. }
  13399. have -= copy1
  13400. next += uintptr(copy1)
  13401. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  13402. }
  13403. if (*Tinflate_state)(unsafe.Pointer(state)).Flength != 0 {
  13404. goto inf_leave
  13405. }
  13406. }
  13407. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(0)
  13408. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_NAME)
  13409. /* fallthrough */
  13410. _8:
  13411. ;
  13412. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0800) != 0 {
  13413. if have == uint32(0) {
  13414. goto inf_leave
  13415. }
  13416. copy1 = uint32(0)
  13417. for cond := true; cond; cond = len1 != 0 && copy1 < have {
  13418. v49 = copy1
  13419. copy1++
  13420. len1 = uint32(*(*uint8)(unsafe.Pointer(next + uintptr(v49))))
  13421. 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 {
  13422. v51 = state + 92
  13423. v50 = *(*uint32)(unsafe.Pointer(v51))
  13424. *(*uint32)(unsafe.Pointer(v51))++
  13425. *(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname + uintptr(v50))) = uint8(len1)
  13426. }
  13427. }
  13428. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13429. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  13430. }
  13431. have -= copy1
  13432. next += uintptr(copy1)
  13433. if len1 != 0 {
  13434. goto inf_leave
  13435. }
  13436. } else {
  13437. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13438. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname = uintptr(m_Z_NULL)
  13439. }
  13440. }
  13441. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(0)
  13442. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COMMENT)
  13443. /* fallthrough */
  13444. _9:
  13445. ;
  13446. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x1000) != 0 {
  13447. if have == uint32(0) {
  13448. goto inf_leave
  13449. }
  13450. copy1 = uint32(0)
  13451. for cond := true; cond; cond = len1 != 0 && copy1 < have {
  13452. v52 = copy1
  13453. copy1++
  13454. len1 = uint32(*(*uint8)(unsafe.Pointer(next + uintptr(v52))))
  13455. 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 {
  13456. v54 = state + 92
  13457. v53 = *(*uint32)(unsafe.Pointer(v54))
  13458. *(*uint32)(unsafe.Pointer(v54))++
  13459. *(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment + uintptr(v53))) = uint8(len1)
  13460. }
  13461. }
  13462. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13463. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  13464. }
  13465. have -= copy1
  13466. next += uintptr(copy1)
  13467. if len1 != 0 {
  13468. goto inf_leave
  13469. }
  13470. } else {
  13471. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13472. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment = uintptr(m_Z_NULL)
  13473. }
  13474. }
  13475. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HCRC)
  13476. /* fallthrough */
  13477. _10:
  13478. ;
  13479. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 {
  13480. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(16)) {
  13481. if have == uint32(0) {
  13482. goto inf_leave
  13483. }
  13484. have--
  13485. v55 = next
  13486. next++
  13487. hold += uint64(*(*uint8)(unsafe.Pointer(v55))) << bits
  13488. bits += uint32(8)
  13489. }
  13490. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && hold != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck&uint64(0xffff) {
  13491. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 403
  13492. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13493. goto _35
  13494. }
  13495. hold = uint64(0)
  13496. bits = uint32(0)
  13497. }
  13498. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13499. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fhcrc = (*Tinflate_state)(unsafe.Pointer(state)).Fflags >> libc.Int32FromInt32(9) & libc.Int32FromInt32(1)
  13500. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fdone = int32(1)
  13501. }
  13502. v56 = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  13503. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v56
  13504. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v56
  13505. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  13506. goto _35
  13507. _11:
  13508. ;
  13509. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  13510. if have == uint32(0) {
  13511. goto inf_leave
  13512. }
  13513. have--
  13514. v57 = next
  13515. next++
  13516. hold += uint64(*(*uint8)(unsafe.Pointer(v57))) << bits
  13517. bits += uint32(8)
  13518. }
  13519. 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)
  13520. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v58
  13521. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v58
  13522. hold = uint64(0)
  13523. bits = uint32(0)
  13524. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DICT)
  13525. /* fallthrough */
  13526. _12:
  13527. ;
  13528. if (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict == 0 {
  13529. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  13530. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  13531. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  13532. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  13533. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  13534. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  13535. return int32(m_Z_NEED_DICT)
  13536. }
  13537. v59 = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  13538. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v59
  13539. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v59
  13540. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  13541. /* fallthrough */
  13542. _13:
  13543. ;
  13544. if flush == int32(m_Z_BLOCK) || flush == int32(m_Z_TREES) {
  13545. goto inf_leave
  13546. }
  13547. /* fallthrough */
  13548. _14:
  13549. ;
  13550. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  13551. hold >>= uint64(bits & uint32(7))
  13552. bits -= bits & uint32(7)
  13553. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_CHECK)
  13554. goto _35
  13555. }
  13556. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(3)) {
  13557. if have == uint32(0) {
  13558. goto inf_leave
  13559. }
  13560. have--
  13561. v60 = next
  13562. next++
  13563. hold += uint64(*(*uint8)(unsafe.Pointer(v60))) << bits
  13564. bits += uint32(8)
  13565. }
  13566. (*Tinflate_state)(unsafe.Pointer(state)).Flast = libc.Int32FromUint32(uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(1) - libc.Uint32FromInt32(1)))
  13567. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(1))
  13568. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(1))
  13569. switch uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2) - libc.Uint32FromInt32(1)) {
  13570. case uint32(0): /* stored block */
  13571. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_STORED)
  13572. case uint32(1): /* fixed block */
  13573. _fixedtables1(tls, state)
  13574. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN_) /* decode codes */
  13575. if flush == int32(m_Z_TREES) {
  13576. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(2))
  13577. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  13578. goto inf_leave
  13579. }
  13580. case uint32(2): /* dynamic block */
  13581. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TABLE)
  13582. case uint32(3):
  13583. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 6
  13584. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13585. }
  13586. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(2))
  13587. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  13588. goto _35
  13589. _15:
  13590. ;
  13591. hold >>= uint64(bits & uint32(7))
  13592. bits -= bits & uint32(7) /* go to byte boundary */
  13593. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  13594. if have == uint32(0) {
  13595. goto inf_leave
  13596. }
  13597. have--
  13598. v61 = next
  13599. next++
  13600. hold += uint64(*(*uint8)(unsafe.Pointer(v61))) << bits
  13601. bits += uint32(8)
  13602. }
  13603. if hold&uint64(0xffff) != hold>>int32(16)^uint64(0xffff) {
  13604. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 25
  13605. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13606. goto _35
  13607. }
  13608. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(hold) & uint32(0xffff)
  13609. hold = uint64(0)
  13610. bits = uint32(0)
  13611. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COPY_)
  13612. if flush == int32(m_Z_TREES) {
  13613. goto inf_leave
  13614. }
  13615. /* fallthrough */
  13616. _16:
  13617. ;
  13618. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COPY)
  13619. /* fallthrough */
  13620. _17:
  13621. ;
  13622. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  13623. if copy1 != 0 {
  13624. if copy1 > have {
  13625. copy1 = have
  13626. }
  13627. if copy1 > left {
  13628. copy1 = left
  13629. }
  13630. if copy1 == uint32(0) {
  13631. goto inf_leave
  13632. }
  13633. libc.Xmemcpy(tls, put, next, uint64(copy1))
  13634. have -= copy1
  13635. next += uintptr(copy1)
  13636. left -= copy1
  13637. put += uintptr(copy1)
  13638. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  13639. goto _35
  13640. }
  13641. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  13642. goto _35
  13643. _18:
  13644. ;
  13645. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(14)) {
  13646. if have == uint32(0) {
  13647. goto inf_leave
  13648. }
  13649. have--
  13650. v62 = next
  13651. next++
  13652. hold += uint64(*(*uint8)(unsafe.Pointer(v62))) << bits
  13653. bits += uint32(8)
  13654. }
  13655. (*Tinflate_state)(unsafe.Pointer(state)).Fnlen = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(257)
  13656. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(5))
  13657. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(5))
  13658. (*Tinflate_state)(unsafe.Pointer(state)).Fndist = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(1)
  13659. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(5))
  13660. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(5))
  13661. (*Tinflate_state)(unsafe.Pointer(state)).Fncode = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(4)
  13662. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(4))
  13663. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(4))
  13664. if (*Tinflate_state)(unsafe.Pointer(state)).Fnlen > uint32(286) || (*Tinflate_state)(unsafe.Pointer(state)).Fndist > uint32(30) {
  13665. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 54
  13666. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13667. goto _35
  13668. }
  13669. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  13670. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENLENS)
  13671. /* fallthrough */
  13672. _19:
  13673. ;
  13674. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fncode {
  13675. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(3)) {
  13676. if have == uint32(0) {
  13677. goto inf_leave
  13678. }
  13679. have--
  13680. v63 = next
  13681. next++
  13682. hold += uint64(*(*uint8)(unsafe.Pointer(v63))) << bits
  13683. bits += uint32(8)
  13684. }
  13685. v65 = state + 140
  13686. v64 = *(*uint32)(unsafe.Pointer(v65))
  13687. *(*uint32)(unsafe.Pointer(v65))++
  13688. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order1[v64])*2)) = uint16(uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3) - libc.Uint32FromInt32(1)))
  13689. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(3))
  13690. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(3))
  13691. }
  13692. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < uint32(19) {
  13693. v67 = state + 140
  13694. v66 = *(*uint32)(unsafe.Pointer(v67))
  13695. *(*uint32)(unsafe.Pointer(v67))++
  13696. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order1[v66])*2)) = uint16(0)
  13697. }
  13698. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  13699. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  13700. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(7)
  13701. ret = Xinflate_table(tls, int32(_CODES), state+152, uint32(19), state+144, state+120, state+792)
  13702. if ret != 0 {
  13703. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 90
  13704. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13705. goto _35
  13706. }
  13707. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  13708. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_CODELENS)
  13709. /* fallthrough */
  13710. _20:
  13711. ;
  13712. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  13713. for {
  13714. 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))
  13715. if uint32(here.Fbits) <= bits {
  13716. break
  13717. }
  13718. if have == uint32(0) {
  13719. goto inf_leave
  13720. }
  13721. have--
  13722. v69 = next
  13723. next++
  13724. hold += uint64(*(*uint8)(unsafe.Pointer(v69))) << bits
  13725. bits += uint32(8)
  13726. goto _68
  13727. _68:
  13728. }
  13729. if libc.Int32FromUint16(here.Fval) < int32(16) {
  13730. hold >>= uint64(here.Fbits)
  13731. bits -= uint32(here.Fbits)
  13732. v71 = state + 140
  13733. v70 = *(*uint32)(unsafe.Pointer(v71))
  13734. *(*uint32)(unsafe.Pointer(v71))++
  13735. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v70)*2)) = here.Fval
  13736. } else {
  13737. if libc.Int32FromUint16(here.Fval) == int32(16) {
  13738. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(2)) {
  13739. if have == uint32(0) {
  13740. goto inf_leave
  13741. }
  13742. have--
  13743. v72 = next
  13744. next++
  13745. hold += uint64(*(*uint8)(unsafe.Pointer(v72))) << bits
  13746. bits += uint32(8)
  13747. }
  13748. hold >>= uint64(here.Fbits)
  13749. bits -= uint32(here.Fbits)
  13750. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave == uint32(0) {
  13751. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 115
  13752. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13753. break
  13754. }
  13755. len1 = uint32(*(*uint16)(unsafe.Pointer(state + 152 + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fhave-uint32(1))*2)))
  13756. copy1 = uint32(3) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2)-libc.Uint32FromInt32(1))
  13757. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(2))
  13758. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  13759. } else {
  13760. if libc.Int32FromUint16(here.Fval) == int32(17) {
  13761. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(3)) {
  13762. if have == uint32(0) {
  13763. goto inf_leave
  13764. }
  13765. have--
  13766. v73 = next
  13767. next++
  13768. hold += uint64(*(*uint8)(unsafe.Pointer(v73))) << bits
  13769. bits += uint32(8)
  13770. }
  13771. hold >>= uint64(here.Fbits)
  13772. bits -= uint32(here.Fbits)
  13773. len1 = uint32(0)
  13774. copy1 = uint32(3) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3)-libc.Uint32FromInt32(1))
  13775. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(3))
  13776. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(3))
  13777. } else {
  13778. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(7)) {
  13779. if have == uint32(0) {
  13780. goto inf_leave
  13781. }
  13782. have--
  13783. v74 = next
  13784. next++
  13785. hold += uint64(*(*uint8)(unsafe.Pointer(v74))) << bits
  13786. bits += uint32(8)
  13787. }
  13788. hold >>= uint64(here.Fbits)
  13789. bits -= uint32(here.Fbits)
  13790. len1 = uint32(0)
  13791. copy1 = uint32(11) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(7)-libc.Uint32FromInt32(1))
  13792. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(7))
  13793. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(7))
  13794. }
  13795. }
  13796. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave+copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  13797. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 115
  13798. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13799. break
  13800. }
  13801. for {
  13802. v75 = copy1
  13803. copy1--
  13804. if !(v75 != 0) {
  13805. break
  13806. }
  13807. v77 = state + 140
  13808. v76 = *(*uint32)(unsafe.Pointer(v77))
  13809. *(*uint32)(unsafe.Pointer(v77))++
  13810. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v76)*2)) = uint16(len1)
  13811. }
  13812. }
  13813. }
  13814. /* handle error breaks in while */
  13815. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_BAD) {
  13816. goto _35
  13817. }
  13818. /* check for end-of-block code (better have one) */
  13819. if libc.Int32FromUint16(*(*uint16)(unsafe.Pointer(state + 152 + 256*2))) == 0 {
  13820. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 141
  13821. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13822. goto _35
  13823. }
  13824. /* build code tables -- note: do not change the lenbits or distbits
  13825. values here (9 and 6) without reading the comments in inftrees.h
  13826. concerning the ENOUGH constants, which depend on those values */
  13827. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  13828. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  13829. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  13830. ret = Xinflate_table(tls, int32(_LENS), state+152, (*Tinflate_state)(unsafe.Pointer(state)).Fnlen, state+144, state+120, state+792)
  13831. if ret != 0 {
  13832. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 178
  13833. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13834. goto _35
  13835. }
  13836. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  13837. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(6)
  13838. 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)
  13839. if ret != 0 {
  13840. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 206
  13841. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13842. goto _35
  13843. }
  13844. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN_)
  13845. if flush == int32(m_Z_TREES) {
  13846. goto inf_leave
  13847. }
  13848. /* fallthrough */
  13849. _21:
  13850. ;
  13851. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  13852. /* fallthrough */
  13853. _22:
  13854. ;
  13855. if have >= uint32(6) && left >= uint32(258) {
  13856. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  13857. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  13858. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  13859. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  13860. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  13861. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  13862. Xinflate_fast(tls, strm, out)
  13863. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  13864. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  13865. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  13866. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  13867. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  13868. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  13869. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  13870. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  13871. }
  13872. goto _35
  13873. }
  13874. (*Tinflate_state)(unsafe.Pointer(state)).Fback = 0
  13875. for {
  13876. 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))
  13877. if uint32(here.Fbits) <= bits {
  13878. break
  13879. }
  13880. if have == uint32(0) {
  13881. goto inf_leave
  13882. }
  13883. have--
  13884. v79 = next
  13885. next++
  13886. hold += uint64(*(*uint8)(unsafe.Pointer(v79))) << bits
  13887. bits += uint32(8)
  13888. goto _78
  13889. _78:
  13890. }
  13891. if here.Fop != 0 && libc.Int32FromUint8(here.Fop)&int32(0xf0) == 0 {
  13892. last = here
  13893. for {
  13894. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(last.Fval)+uint32(hold)&(uint32(1)<<(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(last.Fop))-uint32(1))>>last.Fbits)*4))
  13895. if libc.Uint32FromInt32(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(here.Fbits)) <= bits {
  13896. break
  13897. }
  13898. if have == uint32(0) {
  13899. goto inf_leave
  13900. }
  13901. have--
  13902. v81 = next
  13903. next++
  13904. hold += uint64(*(*uint8)(unsafe.Pointer(v81))) << bits
  13905. bits += uint32(8)
  13906. goto _80
  13907. _80:
  13908. }
  13909. hold >>= uint64(last.Fbits)
  13910. bits -= uint32(last.Fbits)
  13911. *(*int32)(unsafe.Pointer(state + 7148)) += libc.Int32FromUint8(last.Fbits)
  13912. }
  13913. hold >>= uint64(here.Fbits)
  13914. bits -= uint32(here.Fbits)
  13915. *(*int32)(unsafe.Pointer(state + 7148)) += libc.Int32FromUint8(here.Fbits)
  13916. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(here.Fval)
  13917. if libc.Int32FromUint8(here.Fop) == 0 {
  13918. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LIT)
  13919. goto _35
  13920. }
  13921. if libc.Int32FromUint8(here.Fop)&int32(32) != 0 {
  13922. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  13923. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  13924. goto _35
  13925. }
  13926. if libc.Int32FromUint8(here.Fop)&int32(64) != 0 {
  13927. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 228
  13928. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13929. goto _35
  13930. }
  13931. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  13932. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENEXT)
  13933. /* fallthrough */
  13934. _23:
  13935. ;
  13936. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != 0 {
  13937. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  13938. if have == uint32(0) {
  13939. goto inf_leave
  13940. }
  13941. have--
  13942. v82 = next
  13943. next++
  13944. hold += uint64(*(*uint8)(unsafe.Pointer(v82))) << bits
  13945. bits += uint32(8)
  13946. }
  13947. *(*uint32)(unsafe.Pointer(state + 92)) += uint32(hold) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  13948. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  13949. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  13950. p83 = state + 7148
  13951. *(*int32)(unsafe.Pointer(p83)) = int32(uint32(*(*int32)(unsafe.Pointer(p83))) + (*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  13952. }
  13953. (*Tinflate_state)(unsafe.Pointer(state)).Fwas = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  13954. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DIST)
  13955. /* fallthrough */
  13956. _24:
  13957. ;
  13958. for {
  13959. 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))
  13960. if uint32(here.Fbits) <= bits {
  13961. break
  13962. }
  13963. if have == uint32(0) {
  13964. goto inf_leave
  13965. }
  13966. have--
  13967. v85 = next
  13968. next++
  13969. hold += uint64(*(*uint8)(unsafe.Pointer(v85))) << bits
  13970. bits += uint32(8)
  13971. goto _84
  13972. _84:
  13973. }
  13974. if libc.Int32FromUint8(here.Fop)&int32(0xf0) == 0 {
  13975. last = here
  13976. for {
  13977. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(last.Fval)+uint32(hold)&(uint32(1)<<(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(last.Fop))-uint32(1))>>last.Fbits)*4))
  13978. if libc.Uint32FromInt32(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(here.Fbits)) <= bits {
  13979. break
  13980. }
  13981. if have == uint32(0) {
  13982. goto inf_leave
  13983. }
  13984. have--
  13985. v87 = next
  13986. next++
  13987. hold += uint64(*(*uint8)(unsafe.Pointer(v87))) << bits
  13988. bits += uint32(8)
  13989. goto _86
  13990. _86:
  13991. }
  13992. hold >>= uint64(last.Fbits)
  13993. bits -= uint32(last.Fbits)
  13994. *(*int32)(unsafe.Pointer(state + 7148)) += libc.Int32FromUint8(last.Fbits)
  13995. }
  13996. hold >>= uint64(here.Fbits)
  13997. bits -= uint32(here.Fbits)
  13998. *(*int32)(unsafe.Pointer(state + 7148)) += libc.Int32FromUint8(here.Fbits)
  13999. if libc.Int32FromUint8(here.Fop)&int32(64) != 0 {
  14000. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 256
  14001. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14002. goto _35
  14003. }
  14004. (*Tinflate_state)(unsafe.Pointer(state)).Foffset = uint32(here.Fval)
  14005. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  14006. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DISTEXT)
  14007. /* fallthrough */
  14008. _25:
  14009. ;
  14010. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != 0 {
  14011. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  14012. if have == uint32(0) {
  14013. goto inf_leave
  14014. }
  14015. have--
  14016. v88 = next
  14017. next++
  14018. hold += uint64(*(*uint8)(unsafe.Pointer(v88))) << bits
  14019. bits += uint32(8)
  14020. }
  14021. *(*uint32)(unsafe.Pointer(state + 96)) += uint32(hold) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  14022. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  14023. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  14024. p89 = state + 7148
  14025. *(*int32)(unsafe.Pointer(p89)) = int32(uint32(*(*int32)(unsafe.Pointer(p89))) + (*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  14026. }
  14027. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MATCH)
  14028. /* fallthrough */
  14029. _26:
  14030. ;
  14031. if left == uint32(0) {
  14032. goto inf_leave
  14033. }
  14034. copy1 = out - left
  14035. if (*Tinflate_state)(unsafe.Pointer(state)).Foffset > copy1 { /* copy from window */
  14036. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Foffset - copy1
  14037. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwhave {
  14038. if (*Tinflate_state)(unsafe.Pointer(state)).Fsane != 0 {
  14039. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 278
  14040. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14041. goto _35
  14042. }
  14043. }
  14044. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwnext {
  14045. copy1 -= (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  14046. from = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwsize-copy1)
  14047. } else {
  14048. from = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext-copy1)
  14049. }
  14050. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Flength {
  14051. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14052. }
  14053. } else { /* copy from output */
  14054. from = put - uintptr((*Tinflate_state)(unsafe.Pointer(state)).Foffset)
  14055. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14056. }
  14057. if copy1 > left {
  14058. copy1 = left
  14059. }
  14060. left -= copy1
  14061. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  14062. for {
  14063. v92 = put
  14064. put++
  14065. v93 = from
  14066. from++
  14067. *(*uint8)(unsafe.Pointer(v92)) = *(*uint8)(unsafe.Pointer(v93))
  14068. goto _91
  14069. _91:
  14070. ;
  14071. copy1--
  14072. v90 = copy1
  14073. if !(v90 != 0) {
  14074. break
  14075. }
  14076. }
  14077. if (*Tinflate_state)(unsafe.Pointer(state)).Flength == uint32(0) {
  14078. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  14079. }
  14080. goto _35
  14081. _27:
  14082. ;
  14083. if left == uint32(0) {
  14084. goto inf_leave
  14085. }
  14086. v94 = put
  14087. put++
  14088. *(*uint8)(unsafe.Pointer(v94)) = uint8((*Tinflate_state)(unsafe.Pointer(state)).Flength)
  14089. left--
  14090. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  14091. goto _35
  14092. _28:
  14093. ;
  14094. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 {
  14095. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  14096. if have == uint32(0) {
  14097. goto inf_leave
  14098. }
  14099. have--
  14100. v95 = next
  14101. next++
  14102. hold += uint64(*(*uint8)(unsafe.Pointer(v95))) << bits
  14103. bits += uint32(8)
  14104. }
  14105. out -= left
  14106. *(*TuLong)(unsafe.Pointer(strm + 40)) += uint64(out)
  14107. *(*uint64)(unsafe.Pointer(state + 40)) += uint64(out)
  14108. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && out != 0 {
  14109. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  14110. v97 = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, put-uintptr(out), out)
  14111. } else {
  14112. v97 = Xadler32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, put-uintptr(out), out)
  14113. }
  14114. v96 = v97
  14115. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v96
  14116. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v96
  14117. }
  14118. out = left
  14119. if v99 = (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0; v99 {
  14120. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  14121. v98 = hold
  14122. } else {
  14123. v98 = hold>>int32(24)&uint64(0xff) + hold>>int32(8)&uint64(0xff00) + hold&uint64(0xff00)<<int32(8) + hold&uint64(0xff)<<int32(24)
  14124. }
  14125. }
  14126. if v99 && v98 != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck {
  14127. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 423
  14128. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14129. goto _35
  14130. }
  14131. hold = uint64(0)
  14132. bits = uint32(0)
  14133. }
  14134. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENGTH)
  14135. /* fallthrough */
  14136. _29:
  14137. ;
  14138. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  14139. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  14140. if have == uint32(0) {
  14141. goto inf_leave
  14142. }
  14143. have--
  14144. v100 = next
  14145. next++
  14146. hold += uint64(*(*uint8)(unsafe.Pointer(v100))) << bits
  14147. bits += uint32(8)
  14148. }
  14149. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && hold != (*Tinflate_state)(unsafe.Pointer(state)).Ftotal&uint64(0xffffffff) {
  14150. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 444
  14151. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14152. goto _35
  14153. }
  14154. hold = uint64(0)
  14155. bits = uint32(0)
  14156. }
  14157. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DONE)
  14158. /* fallthrough */
  14159. _30:
  14160. ;
  14161. ret = int32(m_Z_STREAM_END)
  14162. goto inf_leave
  14163. _31:
  14164. ;
  14165. ret = -int32(3)
  14166. goto inf_leave
  14167. _32:
  14168. ;
  14169. return -int32(4)
  14170. _34:
  14171. ;
  14172. /* fallthrough */
  14173. _33:
  14174. ;
  14175. return -int32(2)
  14176. _35:
  14177. ;
  14178. goto _1
  14179. _1:
  14180. }
  14181. /*
  14182. Return from inflate(), updating the total counts and the check value.
  14183. If there was no progress during the inflate() call, return a buffer
  14184. error. Call updatewindow() to create and/or update the window state.
  14185. Note: a memory error from inflate() is non-recoverable.
  14186. */
  14187. goto inf_leave
  14188. inf_leave:
  14189. ;
  14190. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  14191. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  14192. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  14193. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  14194. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  14195. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  14196. 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)) {
  14197. if _updatewindow(tls, strm, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out, out-(*Tz_stream)(unsafe.Pointer(strm)).Favail_out) != 0 {
  14198. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MEM)
  14199. return -int32(4)
  14200. }
  14201. }
  14202. in -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  14203. out -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  14204. *(*TuLong)(unsafe.Pointer(strm + 16)) += uint64(in)
  14205. *(*TuLong)(unsafe.Pointer(strm + 40)) += uint64(out)
  14206. *(*uint64)(unsafe.Pointer(state + 40)) += uint64(out)
  14207. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && out != 0 {
  14208. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  14209. v102 = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out-uintptr(out), out)
  14210. } else {
  14211. v102 = Xadler32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out-uintptr(out), out)
  14212. }
  14213. v101 = v102
  14214. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v101
  14215. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v101
  14216. }
  14217. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  14218. v103 = int32(64)
  14219. } else {
  14220. v103 = 0
  14221. }
  14222. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  14223. v104 = int32(128)
  14224. } else {
  14225. v104 = 0
  14226. }
  14227. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_LEN_) || (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_COPY_) {
  14228. v105 = int32(256)
  14229. } else {
  14230. v105 = 0
  14231. }
  14232. (*Tz_stream)(unsafe.Pointer(strm)).Fdata_type = libc.Int32FromUint32((*Tinflate_state)(unsafe.Pointer(state)).Fbits) + v103 + v104 + v105
  14233. if (in == uint32(0) && out == uint32(0) || flush == int32(m_Z_FINISH)) && ret == m_Z_OK {
  14234. ret = -int32(5)
  14235. }
  14236. return ret
  14237. }
  14238. var _order1 = [19]uint16{
  14239. 0: uint16(16),
  14240. 1: uint16(17),
  14241. 2: uint16(18),
  14242. 4: uint16(8),
  14243. 5: uint16(7),
  14244. 6: uint16(9),
  14245. 7: uint16(6),
  14246. 8: uint16(10),
  14247. 9: uint16(5),
  14248. 10: uint16(11),
  14249. 11: uint16(4),
  14250. 12: uint16(12),
  14251. 13: uint16(3),
  14252. 14: uint16(13),
  14253. 15: uint16(2),
  14254. 16: uint16(14),
  14255. 17: uint16(1),
  14256. 18: uint16(15),
  14257. }
  14258. func XinflateEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  14259. var state uintptr
  14260. _ = state
  14261. if _inflateStateCheck(tls, strm) != 0 {
  14262. return -int32(2)
  14263. }
  14264. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14265. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) {
  14266. (*(*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)
  14267. }
  14268. (*(*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)
  14269. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  14270. return m_Z_OK
  14271. }
  14272. func XinflateGetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength uintptr) (r int32) {
  14273. var state uintptr
  14274. _ = state
  14275. /* check state */
  14276. if _inflateStateCheck(tls, strm) != 0 {
  14277. return -int32(2)
  14278. }
  14279. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14280. /* copy dictionary */
  14281. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave != 0 && dictionary != uintptr(m_Z_NULL) {
  14282. 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))
  14283. 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))
  14284. }
  14285. if dictLength != uintptr(m_Z_NULL) {
  14286. *(*TuInt)(unsafe.Pointer(dictLength)) = (*Tinflate_state)(unsafe.Pointer(state)).Fwhave
  14287. }
  14288. return m_Z_OK
  14289. }
  14290. func XinflateSetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength TuInt) (r int32) {
  14291. var dictid uint64
  14292. var ret int32
  14293. var state uintptr
  14294. _, _, _ = dictid, ret, state
  14295. /* check state */
  14296. if _inflateStateCheck(tls, strm) != 0 {
  14297. return -int32(2)
  14298. }
  14299. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14300. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fmode != int32(_DICT) {
  14301. return -int32(2)
  14302. }
  14303. /* check for correct dictionary identifier */
  14304. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_DICT) {
  14305. dictid = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  14306. dictid = Xadler32(tls, dictid, dictionary, dictLength)
  14307. if dictid != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck {
  14308. return -int32(3)
  14309. }
  14310. }
  14311. /* copy dictionary to window using updatewindow(), which will amend the
  14312. existing dictionary if appropriate */
  14313. ret = _updatewindow(tls, strm, dictionary+uintptr(dictLength), dictLength)
  14314. if ret != 0 {
  14315. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MEM)
  14316. return -int32(4)
  14317. }
  14318. (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict = int32(1)
  14319. return m_Z_OK
  14320. }
  14321. func XinflateGetHeader(tls *libc.TLS, strm Tz_streamp, head Tgz_headerp) (r int32) {
  14322. var state uintptr
  14323. _ = state
  14324. /* check state */
  14325. if _inflateStateCheck(tls, strm) != 0 {
  14326. return -int32(2)
  14327. }
  14328. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14329. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(2) == 0 {
  14330. return -int32(2)
  14331. }
  14332. /* save header structure */
  14333. (*Tinflate_state)(unsafe.Pointer(state)).Fhead = head
  14334. (*Tgz_header)(unsafe.Pointer(head)).Fdone = 0
  14335. return m_Z_OK
  14336. }
  14337. // C documentation
  14338. //
  14339. // /*
  14340. // Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff. Return when found
  14341. // or when out of input. When called, *have is the number of pattern bytes
  14342. // found in order so far, in 0..3. On return *have is updated to the new
  14343. // state. If on return *have equals four, then the pattern was found and the
  14344. // return value is how many bytes were read including the last byte of the
  14345. // pattern. If *have is less than four, then the pattern has not been found
  14346. // yet and the return value is len. In the latter case, syncsearch() can be
  14347. // called again with more data and the *have state. *have is initialized to
  14348. // zero for the first call.
  14349. // */
  14350. func _syncsearch(tls *libc.TLS, have uintptr, buf uintptr, len1 uint32) (r uint32) {
  14351. var got, next uint32
  14352. var v1 int32
  14353. _, _, _ = got, next, v1
  14354. got = *(*uint32)(unsafe.Pointer(have))
  14355. next = uint32(0)
  14356. for next < len1 && got < uint32(4) {
  14357. if got < uint32(2) {
  14358. v1 = 0
  14359. } else {
  14360. v1 = int32(0xff)
  14361. }
  14362. if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(buf + uintptr(next)))) == v1 {
  14363. got++
  14364. } else {
  14365. if *(*uint8)(unsafe.Pointer(buf + uintptr(next))) != 0 {
  14366. got = uint32(0)
  14367. } else {
  14368. got = uint32(4) - got
  14369. }
  14370. }
  14371. next++
  14372. }
  14373. *(*uint32)(unsafe.Pointer(have)) = got
  14374. return next
  14375. }
  14376. func XinflateSync(tls *libc.TLS, strm Tz_streamp) (r int32) {
  14377. bp := tls.Alloc(16)
  14378. defer tls.Free(16)
  14379. var flags int32
  14380. var in, out uint64
  14381. var len1, v1 uint32
  14382. var state uintptr
  14383. var _ /* buf at bp+0 */ [4]uint8
  14384. _, _, _, _, _, _ = flags, in, len1, out, state, v1
  14385. /* check parameters */
  14386. if _inflateStateCheck(tls, strm) != 0 {
  14387. return -int32(2)
  14388. }
  14389. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14390. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) && (*Tinflate_state)(unsafe.Pointer(state)).Fbits < uint32(8) {
  14391. return -int32(5)
  14392. }
  14393. /* if first time, start search in bit buffer */
  14394. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode != int32(_SYNC) {
  14395. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_SYNC)
  14396. *(*uint64)(unsafe.Pointer(state + 80)) >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fbits & uint32(7))
  14397. *(*uint32)(unsafe.Pointer(state + 88)) -= (*Tinflate_state)(unsafe.Pointer(state)).Fbits & uint32(7)
  14398. len1 = uint32(0)
  14399. for (*Tinflate_state)(unsafe.Pointer(state)).Fbits >= uint32(8) {
  14400. v1 = len1
  14401. len1++
  14402. (*(*[4]uint8)(unsafe.Pointer(bp)))[v1] = uint8((*Tinflate_state)(unsafe.Pointer(state)).Fhold)
  14403. *(*uint64)(unsafe.Pointer(state + 80)) >>= uint64(8)
  14404. *(*uint32)(unsafe.Pointer(state + 88)) -= uint32(8)
  14405. }
  14406. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  14407. _syncsearch(tls, state+140, bp, len1)
  14408. }
  14409. /* search available input */
  14410. len1 = _syncsearch(tls, state+140, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, (*Tz_stream)(unsafe.Pointer(strm)).Favail_in)
  14411. *(*TuInt)(unsafe.Pointer(strm + 8)) -= len1
  14412. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(len1)
  14413. *(*TuLong)(unsafe.Pointer(strm + 16)) += uint64(len1)
  14414. /* return no joy or set up to restart inflate() on a new block */
  14415. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave != uint32(4) {
  14416. return -int32(3)
  14417. }
  14418. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags == -int32(1) {
  14419. (*Tinflate_state)(unsafe.Pointer(state)).Fwrap = 0
  14420. } else {
  14421. *(*int32)(unsafe.Pointer(state + 16)) &= ^libc.Int32FromInt32(4)
  14422. } /* no point in computing a check value now */
  14423. flags = (*Tinflate_state)(unsafe.Pointer(state)).Fflags
  14424. in = (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in
  14425. out = (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out
  14426. XinflateReset(tls, strm)
  14427. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = in
  14428. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = out
  14429. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = flags
  14430. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  14431. return m_Z_OK
  14432. }
  14433. // C documentation
  14434. //
  14435. // /*
  14436. // Returns true if inflate is currently at the end of a block generated by
  14437. // Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP
  14438. // implementation to provide an additional safety check. PPP uses
  14439. // Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored
  14440. // block. When decompressing, PPP checks that at the end of input packet,
  14441. // inflate is waiting for these length bytes.
  14442. // */
  14443. func XinflateSyncPoint(tls *libc.TLS, strm Tz_streamp) (r int32) {
  14444. var state uintptr
  14445. _ = state
  14446. if _inflateStateCheck(tls, strm) != 0 {
  14447. return -int32(2)
  14448. }
  14449. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14450. return libc.BoolInt32((*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_STORED) && (*Tinflate_state)(unsafe.Pointer(state)).Fbits == uint32(0))
  14451. }
  14452. func XinflateCopy(tls *libc.TLS, dest Tz_streamp, source Tz_streamp) (r int32) {
  14453. var copy1, state, window uintptr
  14454. var wsize uint32
  14455. _, _, _, _ = copy1, state, window, wsize
  14456. /* check input */
  14457. if _inflateStateCheck(tls, source) != 0 || dest == uintptr(m_Z_NULL) {
  14458. return -int32(2)
  14459. }
  14460. state = (*Tz_stream)(unsafe.Pointer(source)).Fstate
  14461. /* allocate space */
  14462. 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, libc.Uint32FromInt32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(7160)))
  14463. if copy1 == uintptr(m_Z_NULL) {
  14464. return -int32(4)
  14465. }
  14466. window = uintptr(m_Z_NULL)
  14467. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) {
  14468. 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)))
  14469. if window == uintptr(m_Z_NULL) {
  14470. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(source)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(source)).Fopaque, copy1)
  14471. return -int32(4)
  14472. }
  14473. }
  14474. /* copy state */
  14475. libc.Xmemcpy(tls, dest, source, uint64(112))
  14476. libc.Xmemcpy(tls, copy1, state, uint64(7160))
  14477. (*Tinflate_state)(unsafe.Pointer(copy1)).Fstrm = dest
  14478. 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 {
  14479. (*Tinflate_state)(unsafe.Pointer(copy1)).Flencode = copy1 + 1368 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Flencode)-t__predefined_ptrdiff_t(state+1368))/4)*4
  14480. (*Tinflate_state)(unsafe.Pointer(copy1)).Fdistcode = copy1 + 1368 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode)-t__predefined_ptrdiff_t(state+1368))/4)*4
  14481. }
  14482. (*Tinflate_state)(unsafe.Pointer(copy1)).Fnext = copy1 + 1368 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Fnext)-t__predefined_ptrdiff_t(state+1368))/4)*4
  14483. if window != uintptr(m_Z_NULL) {
  14484. wsize = uint32(1) << (*Tinflate_state)(unsafe.Pointer(state)).Fwbits
  14485. libc.Xmemcpy(tls, window, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, uint64(wsize))
  14486. }
  14487. (*Tinflate_state)(unsafe.Pointer(copy1)).Fwindow = window
  14488. (*Tz_stream)(unsafe.Pointer(dest)).Fstate = copy1
  14489. return m_Z_OK
  14490. }
  14491. func XinflateUndermine(tls *libc.TLS, strm Tz_streamp, subvert int32) (r int32) {
  14492. var state uintptr
  14493. _ = state
  14494. if _inflateStateCheck(tls, strm) != 0 {
  14495. return -int32(2)
  14496. }
  14497. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14498. _ = subvert
  14499. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  14500. return -int32(3)
  14501. }
  14502. func XinflateValidate(tls *libc.TLS, strm Tz_streamp, check int32) (r int32) {
  14503. var state uintptr
  14504. _ = state
  14505. if _inflateStateCheck(tls, strm) != 0 {
  14506. return -int32(2)
  14507. }
  14508. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14509. if check != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 {
  14510. *(*int32)(unsafe.Pointer(state + 16)) |= int32(4)
  14511. } else {
  14512. *(*int32)(unsafe.Pointer(state + 16)) &= ^libc.Int32FromInt32(4)
  14513. }
  14514. return m_Z_OK
  14515. }
  14516. func XinflateMark(tls *libc.TLS, strm Tz_streamp) (r int64) {
  14517. var state uintptr
  14518. var v1, v2 uint32
  14519. _, _, _ = state, v1, v2
  14520. if _inflateStateCheck(tls, strm) != 0 {
  14521. return -(libc.Int64FromInt64(1) << libc.Int32FromInt32(16))
  14522. }
  14523. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14524. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_COPY) {
  14525. v1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14526. } else {
  14527. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_MATCH) {
  14528. v2 = (*Tinflate_state)(unsafe.Pointer(state)).Fwas - (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14529. } else {
  14530. v2 = uint32(0)
  14531. }
  14532. v1 = v2
  14533. }
  14534. return libc.Int64FromUint64(libc.Uint64FromInt64(int64((*Tinflate_state)(unsafe.Pointer(state)).Fback))<<libc.Int32FromInt32(16)) + libc.Int64FromUint32(v1)
  14535. }
  14536. func XinflateCodesUsed(tls *libc.TLS, strm Tz_streamp) (r uint64) {
  14537. var state uintptr
  14538. _ = state
  14539. if _inflateStateCheck(tls, strm) != 0 {
  14540. return libc.Uint64FromInt32(-libc.Int32FromInt32(1))
  14541. }
  14542. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14543. return libc.Uint64FromInt64((int64((*Tinflate_state)(unsafe.Pointer(state)).Fnext) - t__predefined_ptrdiff_t(state+1368)) / 4)
  14544. }
  14545. const m_MAXBITS = 15
  14546. /*
  14547. If you use the zlib library in a product, an acknowledgment is welcome
  14548. in the documentation of your product. If for some reason you cannot
  14549. include such an acknowledgment, I would appreciate that you keep this
  14550. copyright string in the executable of your product.
  14551. */
  14552. // C documentation
  14553. //
  14554. // /*
  14555. // Build a set of tables to decode the provided canonical Huffman code.
  14556. // The code lengths are lens[0..codes-1]. The result starts at *table,
  14557. // whose indices are 0..2^bits-1. work is a writable array of at least
  14558. // lens shorts, which is used as a work area. type is the type of code
  14559. // to be generated, CODES, LENS, or DISTS. On return, zero is success,
  14560. // -1 is an invalid code, and +1 means that ENOUGH isn't enough. table
  14561. // on return points to the next available entry's address. bits is the
  14562. // requested root table index bits, and on return it is the actual root
  14563. // table index bits. It will differ if the request is greater than the
  14564. // longest code or if it is less than the shortest code.
  14565. // */
  14566. func Xinflate_table(tls *libc.TLS, type1 Tcodetype, lens uintptr, codes uint32, table uintptr, bits uintptr, work uintptr) (r int32) {
  14567. bp := tls.Alloc(64)
  14568. defer tls.Free(64)
  14569. var base, extra, next, v13, v14, v17, v4, v5, v6, v7 uintptr
  14570. var curr, drop, fill, huff, incr, len1, low, mask, match, max, min, root, sym, used uint32
  14571. var here Tcode
  14572. var left int32
  14573. var v12, v16 uint16
  14574. var _ /* count at bp+0 */ [16]uint16
  14575. var _ /* offs at bp+32 */ [16]uint16
  14576. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  14577. /*
  14578. Process a set of code lengths to create a canonical Huffman code. The
  14579. code lengths are lens[0..codes-1]. Each length corresponds to the
  14580. symbols 0..codes-1. The Huffman code is generated by first sorting the
  14581. symbols by length from short to long, and retaining the symbol order
  14582. for codes with equal lengths. Then the code starts with all zero bits
  14583. for the first code of the shortest length, and the codes are integer
  14584. increments for the same length, and zeros are appended as the length
  14585. increases. For the deflate format, these bits are stored backwards
  14586. from their more natural integer increment ordering, and so when the
  14587. decoding tables are built in the large loop below, the integer codes
  14588. are incremented backwards.
  14589. This routine assumes, but does not check, that all of the entries in
  14590. lens[] are in the range 0..MAXBITS. The caller must assure this.
  14591. 1..MAXBITS is interpreted as that code length. zero means that that
  14592. symbol does not occur in this code.
  14593. The codes are sorted by computing a count of codes for each length,
  14594. creating from that a table of starting indices for each length in the
  14595. sorted table, and then entering the symbols in order in the sorted
  14596. table. The sorted table is work[], with that space being provided by
  14597. the caller.
  14598. The length counts are used for other purposes as well, i.e. finding
  14599. the minimum and maximum length codes, determining if there are any
  14600. codes at all, checking for a valid set of lengths, and looking ahead
  14601. at length counts to determine sub-table sizes when building the
  14602. decoding tables.
  14603. */
  14604. /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */
  14605. len1 = uint32(0)
  14606. for {
  14607. if !(len1 <= uint32(m_MAXBITS)) {
  14608. break
  14609. }
  14610. (*(*[16]uint16)(unsafe.Pointer(bp)))[len1] = uint16(0)
  14611. goto _1
  14612. _1:
  14613. ;
  14614. len1++
  14615. }
  14616. sym = uint32(0)
  14617. for {
  14618. if !(sym < codes) {
  14619. break
  14620. }
  14621. (*(*[16]uint16)(unsafe.Pointer(bp)))[*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2))]++
  14622. goto _2
  14623. _2:
  14624. ;
  14625. sym++
  14626. }
  14627. /* bound code lengths, force root to be within code lengths */
  14628. root = *(*uint32)(unsafe.Pointer(bits))
  14629. max = uint32(m_MAXBITS)
  14630. for {
  14631. if !(max >= uint32(1)) {
  14632. break
  14633. }
  14634. if libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp)))[max]) != 0 {
  14635. break
  14636. }
  14637. goto _3
  14638. _3:
  14639. ;
  14640. max--
  14641. }
  14642. if root > max {
  14643. root = max
  14644. }
  14645. if max == uint32(0) { /* no symbols to code at all */
  14646. here.Fop = libc.Uint8FromInt32(64) /* invalid code marker */
  14647. here.Fbits = libc.Uint8FromInt32(1)
  14648. here.Fval = libc.Uint16FromInt32(0)
  14649. v5 = table
  14650. v4 = *(*uintptr)(unsafe.Pointer(v5))
  14651. *(*uintptr)(unsafe.Pointer(v5)) += 4
  14652. *(*Tcode)(unsafe.Pointer(v4)) = here /* make a table to force an error */
  14653. v7 = table
  14654. v6 = *(*uintptr)(unsafe.Pointer(v7))
  14655. *(*uintptr)(unsafe.Pointer(v7)) += 4
  14656. *(*Tcode)(unsafe.Pointer(v6)) = here
  14657. *(*uint32)(unsafe.Pointer(bits)) = uint32(1)
  14658. return 0 /* no symbols, but wait for decoding to report error */
  14659. }
  14660. min = uint32(1)
  14661. for {
  14662. if !(min < max) {
  14663. break
  14664. }
  14665. if libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp)))[min]) != 0 {
  14666. break
  14667. }
  14668. goto _8
  14669. _8:
  14670. ;
  14671. min++
  14672. }
  14673. if root < min {
  14674. root = min
  14675. }
  14676. /* check for an over-subscribed or incomplete set of lengths */
  14677. left = int32(1)
  14678. len1 = uint32(1)
  14679. for {
  14680. if !(len1 <= uint32(m_MAXBITS)) {
  14681. break
  14682. }
  14683. left <<= int32(1)
  14684. left -= libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp)))[len1])
  14685. if left < 0 {
  14686. return -int32(1)
  14687. } /* over-subscribed */
  14688. goto _9
  14689. _9:
  14690. ;
  14691. len1++
  14692. }
  14693. if left > 0 && (type1 == int32(_CODES) || max != uint32(1)) {
  14694. return -int32(1)
  14695. } /* incomplete set */
  14696. /* generate offsets into symbol table for each length for sorting */
  14697. (*(*[16]uint16)(unsafe.Pointer(bp + 32)))[int32(1)] = uint16(0)
  14698. len1 = uint32(1)
  14699. for {
  14700. if !(len1 < uint32(m_MAXBITS)) {
  14701. break
  14702. }
  14703. (*(*[16]uint16)(unsafe.Pointer(bp + 32)))[len1+uint32(1)] = libc.Uint16FromInt32(libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp + 32)))[len1]) + libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp)))[len1]))
  14704. goto _10
  14705. _10:
  14706. ;
  14707. len1++
  14708. }
  14709. /* sort symbols by length, by symbol order within each length */
  14710. sym = uint32(0)
  14711. for {
  14712. if !(sym < codes) {
  14713. break
  14714. }
  14715. if libc.Int32FromUint16(*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2))) != 0 {
  14716. v13 = bp + 32 + uintptr(*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2)))*2
  14717. v12 = *(*uint16)(unsafe.Pointer(v13))
  14718. *(*uint16)(unsafe.Pointer(v13))++
  14719. *(*uint16)(unsafe.Pointer(work + uintptr(v12)*2)) = uint16(sym)
  14720. }
  14721. goto _11
  14722. _11:
  14723. ;
  14724. sym++
  14725. }
  14726. /*
  14727. Create and fill in decoding tables. In this loop, the table being
  14728. filled is at next and has curr index bits. The code being used is huff
  14729. with length len. That code is converted to an index by dropping drop
  14730. bits off of the bottom. For codes where len is less than drop + curr,
  14731. those top drop + curr - len bits are incremented through all values to
  14732. fill the table with replicated entries.
  14733. root is the number of index bits for the root table. When len exceeds
  14734. root, sub-tables are created pointed to by the root entry with an index
  14735. of the low root bits of huff. This is saved in low to check for when a
  14736. new sub-table should be started. drop is zero when the root table is
  14737. being filled, and drop is root when sub-tables are being filled.
  14738. When a new sub-table is needed, it is necessary to look ahead in the
  14739. code lengths to determine what size sub-table is needed. The length
  14740. counts are used for this, and so count[] is decremented as codes are
  14741. entered in the tables.
  14742. used keeps track of how many table entries have been allocated from the
  14743. provided *table space. It is checked for LENS and DIST tables against
  14744. the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in
  14745. the initial root table size constants. See the comments in inftrees.h
  14746. for more information.
  14747. sym increments through all symbols, and the loop terminates when
  14748. all codes of length max, i.e. all codes, have been processed. This
  14749. routine permits incomplete codes, so another loop after this one fills
  14750. in the rest of the decoding tables with invalid code markers.
  14751. */
  14752. /* set up for code type */
  14753. switch type1 {
  14754. case int32(_CODES):
  14755. v14 = work
  14756. extra = v14
  14757. base = v14 /* dummy value--not used */
  14758. match = uint32(20)
  14759. case int32(_LENS):
  14760. base = uintptr(unsafe.Pointer(&_lbase))
  14761. extra = uintptr(unsafe.Pointer(&_lext))
  14762. match = uint32(257)
  14763. default: /* DISTS */
  14764. base = uintptr(unsafe.Pointer(&_dbase))
  14765. extra = uintptr(unsafe.Pointer(&_dext))
  14766. match = uint32(0)
  14767. }
  14768. /* initialize state for loop */
  14769. huff = uint32(0) /* starting code */
  14770. sym = uint32(0) /* starting code symbol */
  14771. len1 = min /* starting code length */
  14772. next = *(*uintptr)(unsafe.Pointer(table)) /* current table to fill in */
  14773. curr = root /* current table index bits */
  14774. drop = uint32(0) /* current bits to drop from code for index */
  14775. low = libc.Uint32FromInt32(-libc.Int32FromInt32(1)) /* trigger new sub-table when len > root */
  14776. used = uint32(1) << root /* use root table entries */
  14777. mask = used - uint32(1) /* mask for comparing low */
  14778. /* check available table space */
  14779. if type1 == int32(_LENS) && used > uint32(m_ENOUGH_LENS) || type1 == int32(_DISTS) && used > uint32(m_ENOUGH_DISTS) {
  14780. return int32(1)
  14781. }
  14782. /* process all codes and make table entries */
  14783. for {
  14784. /* create table entry */
  14785. here.Fbits = uint8(len1 - drop)
  14786. if uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))+uint32(1) < match {
  14787. here.Fop = libc.Uint8FromInt32(0)
  14788. here.Fval = *(*uint16)(unsafe.Pointer(work + uintptr(sym)*2))
  14789. } else {
  14790. if uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2))) >= match {
  14791. here.Fop = uint8(*(*uint16)(unsafe.Pointer(extra + uintptr(uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))-match)*2)))
  14792. here.Fval = *(*uint16)(unsafe.Pointer(base + uintptr(uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))-match)*2))
  14793. } else {
  14794. here.Fop = libc.Uint8FromInt32(libc.Int32FromInt32(32) + libc.Int32FromInt32(64)) /* end of block */
  14795. here.Fval = uint16(0)
  14796. }
  14797. }
  14798. /* replicate for those indices with low len bits equal to huff */
  14799. incr = uint32(1) << (len1 - drop)
  14800. fill = uint32(1) << curr
  14801. min = fill /* save offset to next table */
  14802. for cond := true; cond; cond = fill != uint32(0) {
  14803. fill -= incr
  14804. *(*Tcode)(unsafe.Pointer(next + uintptr(huff>>drop+fill)*4)) = here
  14805. }
  14806. /* backwards increment the len-bit code huff */
  14807. incr = uint32(1) << (len1 - uint32(1))
  14808. for huff&incr != 0 {
  14809. incr >>= uint32(1)
  14810. }
  14811. if incr != uint32(0) {
  14812. huff &= incr - uint32(1)
  14813. huff += incr
  14814. } else {
  14815. huff = uint32(0)
  14816. }
  14817. /* go to next symbol, update count, len */
  14818. sym++
  14819. v17 = bp + uintptr(len1)*2
  14820. *(*uint16)(unsafe.Pointer(v17))--
  14821. v16 = *(*uint16)(unsafe.Pointer(v17))
  14822. if libc.Int32FromUint16(v16) == 0 {
  14823. if len1 == max {
  14824. break
  14825. }
  14826. len1 = uint32(*(*uint16)(unsafe.Pointer(lens + uintptr(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))*2)))
  14827. }
  14828. /* create new sub-table if needed */
  14829. if len1 > root && huff&mask != low {
  14830. /* if first time, transition to sub-tables */
  14831. if drop == uint32(0) {
  14832. drop = root
  14833. }
  14834. /* increment past last table */
  14835. next += uintptr(min) * 4 /* here min is 1 << curr */
  14836. /* determine length of next table */
  14837. curr = len1 - drop
  14838. left = libc.Int32FromInt32(1) << curr
  14839. for curr+drop < max {
  14840. left -= libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp)))[curr+drop])
  14841. if left <= 0 {
  14842. break
  14843. }
  14844. curr++
  14845. left <<= int32(1)
  14846. }
  14847. /* check for enough space */
  14848. used += uint32(1) << curr
  14849. if type1 == int32(_LENS) && used > uint32(m_ENOUGH_LENS) || type1 == int32(_DISTS) && used > uint32(m_ENOUGH_DISTS) {
  14850. return int32(1)
  14851. }
  14852. /* point entry in root table to sub-table */
  14853. low = huff & mask
  14854. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fop = uint8(curr)
  14855. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fbits = uint8(root)
  14856. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fval = libc.Uint16FromInt64((int64(next) - int64(*(*uintptr)(unsafe.Pointer(table)))) / 4)
  14857. }
  14858. goto _15
  14859. _15:
  14860. }
  14861. /* fill in remaining table entry if code is incomplete (guaranteed to have
  14862. at most one remaining entry, since if the code is incomplete, the
  14863. maximum code length that was allowed to get this far is one bit) */
  14864. if huff != uint32(0) {
  14865. here.Fop = libc.Uint8FromInt32(64) /* invalid code marker */
  14866. here.Fbits = uint8(len1 - drop)
  14867. here.Fval = libc.Uint16FromInt32(0)
  14868. *(*Tcode)(unsafe.Pointer(next + uintptr(huff)*4)) = here
  14869. }
  14870. /* set return parameters */
  14871. *(*uintptr)(unsafe.Pointer(table)) += uintptr(used) * 4
  14872. *(*uint32)(unsafe.Pointer(bits)) = root
  14873. return 0
  14874. }
  14875. var _lbase = [31]uint16{
  14876. 0: uint16(3),
  14877. 1: uint16(4),
  14878. 2: uint16(5),
  14879. 3: uint16(6),
  14880. 4: uint16(7),
  14881. 5: uint16(8),
  14882. 6: uint16(9),
  14883. 7: uint16(10),
  14884. 8: uint16(11),
  14885. 9: uint16(13),
  14886. 10: uint16(15),
  14887. 11: uint16(17),
  14888. 12: uint16(19),
  14889. 13: uint16(23),
  14890. 14: uint16(27),
  14891. 15: uint16(31),
  14892. 16: uint16(35),
  14893. 17: uint16(43),
  14894. 18: uint16(51),
  14895. 19: uint16(59),
  14896. 20: uint16(67),
  14897. 21: uint16(83),
  14898. 22: uint16(99),
  14899. 23: uint16(115),
  14900. 24: uint16(131),
  14901. 25: uint16(163),
  14902. 26: uint16(195),
  14903. 27: uint16(227),
  14904. 28: uint16(258),
  14905. }
  14906. var _lext = [31]uint16{
  14907. 0: uint16(16),
  14908. 1: uint16(16),
  14909. 2: uint16(16),
  14910. 3: uint16(16),
  14911. 4: uint16(16),
  14912. 5: uint16(16),
  14913. 6: uint16(16),
  14914. 7: uint16(16),
  14915. 8: uint16(17),
  14916. 9: uint16(17),
  14917. 10: uint16(17),
  14918. 11: uint16(17),
  14919. 12: uint16(18),
  14920. 13: uint16(18),
  14921. 14: uint16(18),
  14922. 15: uint16(18),
  14923. 16: uint16(19),
  14924. 17: uint16(19),
  14925. 18: uint16(19),
  14926. 19: uint16(19),
  14927. 20: uint16(20),
  14928. 21: uint16(20),
  14929. 22: uint16(20),
  14930. 23: uint16(20),
  14931. 24: uint16(21),
  14932. 25: uint16(21),
  14933. 26: uint16(21),
  14934. 27: uint16(21),
  14935. 28: uint16(16),
  14936. 29: uint16(203),
  14937. 30: uint16(77),
  14938. }
  14939. var _dbase = [32]uint16{
  14940. 0: uint16(1),
  14941. 1: uint16(2),
  14942. 2: uint16(3),
  14943. 3: uint16(4),
  14944. 4: uint16(5),
  14945. 5: uint16(7),
  14946. 6: uint16(9),
  14947. 7: uint16(13),
  14948. 8: uint16(17),
  14949. 9: uint16(25),
  14950. 10: uint16(33),
  14951. 11: uint16(49),
  14952. 12: uint16(65),
  14953. 13: uint16(97),
  14954. 14: uint16(129),
  14955. 15: uint16(193),
  14956. 16: uint16(257),
  14957. 17: uint16(385),
  14958. 18: uint16(513),
  14959. 19: uint16(769),
  14960. 20: uint16(1025),
  14961. 21: uint16(1537),
  14962. 22: uint16(2049),
  14963. 23: uint16(3073),
  14964. 24: uint16(4097),
  14965. 25: uint16(6145),
  14966. 26: uint16(8193),
  14967. 27: uint16(12289),
  14968. 28: uint16(16385),
  14969. 29: uint16(24577),
  14970. }
  14971. var _dext = [32]uint16{
  14972. 0: uint16(16),
  14973. 1: uint16(16),
  14974. 2: uint16(16),
  14975. 3: uint16(16),
  14976. 4: uint16(17),
  14977. 5: uint16(17),
  14978. 6: uint16(18),
  14979. 7: uint16(18),
  14980. 8: uint16(19),
  14981. 9: uint16(19),
  14982. 10: uint16(20),
  14983. 11: uint16(20),
  14984. 12: uint16(21),
  14985. 13: uint16(21),
  14986. 14: uint16(22),
  14987. 15: uint16(22),
  14988. 16: uint16(23),
  14989. 17: uint16(23),
  14990. 18: uint16(24),
  14991. 19: uint16(24),
  14992. 20: uint16(25),
  14993. 21: uint16(25),
  14994. 22: uint16(26),
  14995. 23: uint16(26),
  14996. 24: uint16(27),
  14997. 25: uint16(27),
  14998. 26: uint16(28),
  14999. 27: uint16(28),
  15000. 28: uint16(29),
  15001. 29: uint16(29),
  15002. 30: uint16(64),
  15003. 31: uint16(64),
  15004. }
  15005. const m_DIST_CODE_LEN = 512
  15006. const m_END_BLOCK = 256
  15007. const m_MAX_BL_BITS = 7
  15008. const m_REPZ_11_138 = 18
  15009. const m_REPZ_3_10 = 17
  15010. const m_REP_3_6 = 16
  15011. const m_SMALLEST = 1
  15012. const m_TCONST = "const"
  15013. type Tstatic_tree_desc = struct {
  15014. Fstatic_tree uintptr
  15015. Fextra_bits uintptr
  15016. Fextra_base int32
  15017. Felems int32
  15018. Fmax_length int32
  15019. }
  15020. type Tstatic_tree_desc_s = Tstatic_tree_desc
  15021. /* ===========================================================================
  15022. * Constants
  15023. */
  15024. /* Bit length codes must not exceed MAX_BL_BITS bits */
  15025. /* end of block literal code */
  15026. /* repeat previous bit length 3-6 times (2 bits of repeat count) */
  15027. /* repeat a zero length 3-10 times (3 bits of repeat count) */
  15028. /* repeat a zero length 11-138 times (7 bits of repeat count) */
  15029. var _extra_lbits = [29]int32{
  15030. 8: int32(1),
  15031. 9: int32(1),
  15032. 10: int32(1),
  15033. 11: int32(1),
  15034. 12: int32(2),
  15035. 13: int32(2),
  15036. 14: int32(2),
  15037. 15: int32(2),
  15038. 16: int32(3),
  15039. 17: int32(3),
  15040. 18: int32(3),
  15041. 19: int32(3),
  15042. 20: int32(4),
  15043. 21: int32(4),
  15044. 22: int32(4),
  15045. 23: int32(4),
  15046. 24: int32(5),
  15047. 25: int32(5),
  15048. 26: int32(5),
  15049. 27: int32(5),
  15050. }
  15051. var _extra_dbits = [30]int32{
  15052. 4: int32(1),
  15053. 5: int32(1),
  15054. 6: int32(2),
  15055. 7: int32(2),
  15056. 8: int32(3),
  15057. 9: int32(3),
  15058. 10: int32(4),
  15059. 11: int32(4),
  15060. 12: int32(5),
  15061. 13: int32(5),
  15062. 14: int32(6),
  15063. 15: int32(6),
  15064. 16: int32(7),
  15065. 17: int32(7),
  15066. 18: int32(8),
  15067. 19: int32(8),
  15068. 20: int32(9),
  15069. 21: int32(9),
  15070. 22: int32(10),
  15071. 23: int32(10),
  15072. 24: int32(11),
  15073. 25: int32(11),
  15074. 26: int32(12),
  15075. 27: int32(12),
  15076. 28: int32(13),
  15077. 29: int32(13),
  15078. }
  15079. var _extra_blbits = [19]int32{
  15080. 16: int32(2),
  15081. 17: int32(3),
  15082. 18: int32(7),
  15083. }
  15084. var _bl_order = [19]Tuch{
  15085. 0: uint8(16),
  15086. 1: uint8(17),
  15087. 2: uint8(18),
  15088. 4: uint8(8),
  15089. 5: uint8(7),
  15090. 6: uint8(9),
  15091. 7: uint8(6),
  15092. 8: uint8(10),
  15093. 9: uint8(5),
  15094. 10: uint8(11),
  15095. 11: uint8(4),
  15096. 12: uint8(12),
  15097. 13: uint8(3),
  15098. 14: uint8(13),
  15099. 15: uint8(2),
  15100. 16: uint8(14),
  15101. 17: uint8(1),
  15102. 18: uint8(15),
  15103. }
  15104. var _static_ltree = [288]Tct_data{
  15105. 0: {
  15106. Ffc: *(*struct {
  15107. Fcode [0]Tush
  15108. Ffreq Tush
  15109. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(12)})),
  15110. Fdl: *(*struct {
  15111. Flen1 [0]Tush
  15112. Fdad Tush
  15113. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15114. },
  15115. 1: {
  15116. Ffc: *(*struct {
  15117. Fcode [0]Tush
  15118. Ffreq Tush
  15119. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(140)})),
  15120. Fdl: *(*struct {
  15121. Flen1 [0]Tush
  15122. Fdad Tush
  15123. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15124. },
  15125. 2: {
  15126. Ffc: *(*struct {
  15127. Fcode [0]Tush
  15128. Ffreq Tush
  15129. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(76)})),
  15130. Fdl: *(*struct {
  15131. Flen1 [0]Tush
  15132. Fdad Tush
  15133. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15134. },
  15135. 3: {
  15136. Ffc: *(*struct {
  15137. Fcode [0]Tush
  15138. Ffreq Tush
  15139. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(204)})),
  15140. Fdl: *(*struct {
  15141. Flen1 [0]Tush
  15142. Fdad Tush
  15143. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15144. },
  15145. 4: {
  15146. Ffc: *(*struct {
  15147. Fcode [0]Tush
  15148. Ffreq Tush
  15149. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(44)})),
  15150. Fdl: *(*struct {
  15151. Flen1 [0]Tush
  15152. Fdad Tush
  15153. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15154. },
  15155. 5: {
  15156. Ffc: *(*struct {
  15157. Fcode [0]Tush
  15158. Ffreq Tush
  15159. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(172)})),
  15160. Fdl: *(*struct {
  15161. Flen1 [0]Tush
  15162. Fdad Tush
  15163. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15164. },
  15165. 6: {
  15166. Ffc: *(*struct {
  15167. Fcode [0]Tush
  15168. Ffreq Tush
  15169. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(108)})),
  15170. Fdl: *(*struct {
  15171. Flen1 [0]Tush
  15172. Fdad Tush
  15173. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15174. },
  15175. 7: {
  15176. Ffc: *(*struct {
  15177. Fcode [0]Tush
  15178. Ffreq Tush
  15179. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(236)})),
  15180. Fdl: *(*struct {
  15181. Flen1 [0]Tush
  15182. Fdad Tush
  15183. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15184. },
  15185. 8: {
  15186. Ffc: *(*struct {
  15187. Fcode [0]Tush
  15188. Ffreq Tush
  15189. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(28)})),
  15190. Fdl: *(*struct {
  15191. Flen1 [0]Tush
  15192. Fdad Tush
  15193. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15194. },
  15195. 9: {
  15196. Ffc: *(*struct {
  15197. Fcode [0]Tush
  15198. Ffreq Tush
  15199. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(156)})),
  15200. Fdl: *(*struct {
  15201. Flen1 [0]Tush
  15202. Fdad Tush
  15203. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15204. },
  15205. 10: {
  15206. Ffc: *(*struct {
  15207. Fcode [0]Tush
  15208. Ffreq Tush
  15209. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(92)})),
  15210. Fdl: *(*struct {
  15211. Flen1 [0]Tush
  15212. Fdad Tush
  15213. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15214. },
  15215. 11: {
  15216. Ffc: *(*struct {
  15217. Fcode [0]Tush
  15218. Ffreq Tush
  15219. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(220)})),
  15220. Fdl: *(*struct {
  15221. Flen1 [0]Tush
  15222. Fdad Tush
  15223. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15224. },
  15225. 12: {
  15226. Ffc: *(*struct {
  15227. Fcode [0]Tush
  15228. Ffreq Tush
  15229. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(60)})),
  15230. Fdl: *(*struct {
  15231. Flen1 [0]Tush
  15232. Fdad Tush
  15233. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15234. },
  15235. 13: {
  15236. Ffc: *(*struct {
  15237. Fcode [0]Tush
  15238. Ffreq Tush
  15239. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(188)})),
  15240. Fdl: *(*struct {
  15241. Flen1 [0]Tush
  15242. Fdad Tush
  15243. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15244. },
  15245. 14: {
  15246. Ffc: *(*struct {
  15247. Fcode [0]Tush
  15248. Ffreq Tush
  15249. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(124)})),
  15250. Fdl: *(*struct {
  15251. Flen1 [0]Tush
  15252. Fdad Tush
  15253. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15254. },
  15255. 15: {
  15256. Ffc: *(*struct {
  15257. Fcode [0]Tush
  15258. Ffreq Tush
  15259. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(252)})),
  15260. Fdl: *(*struct {
  15261. Flen1 [0]Tush
  15262. Fdad Tush
  15263. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15264. },
  15265. 16: {
  15266. Ffc: *(*struct {
  15267. Fcode [0]Tush
  15268. Ffreq Tush
  15269. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(2)})),
  15270. Fdl: *(*struct {
  15271. Flen1 [0]Tush
  15272. Fdad Tush
  15273. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15274. },
  15275. 17: {
  15276. Ffc: *(*struct {
  15277. Fcode [0]Tush
  15278. Ffreq Tush
  15279. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(130)})),
  15280. Fdl: *(*struct {
  15281. Flen1 [0]Tush
  15282. Fdad Tush
  15283. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15284. },
  15285. 18: {
  15286. Ffc: *(*struct {
  15287. Fcode [0]Tush
  15288. Ffreq Tush
  15289. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(66)})),
  15290. Fdl: *(*struct {
  15291. Flen1 [0]Tush
  15292. Fdad Tush
  15293. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15294. },
  15295. 19: {
  15296. Ffc: *(*struct {
  15297. Fcode [0]Tush
  15298. Ffreq Tush
  15299. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(194)})),
  15300. Fdl: *(*struct {
  15301. Flen1 [0]Tush
  15302. Fdad Tush
  15303. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15304. },
  15305. 20: {
  15306. Ffc: *(*struct {
  15307. Fcode [0]Tush
  15308. Ffreq Tush
  15309. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(34)})),
  15310. Fdl: *(*struct {
  15311. Flen1 [0]Tush
  15312. Fdad Tush
  15313. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15314. },
  15315. 21: {
  15316. Ffc: *(*struct {
  15317. Fcode [0]Tush
  15318. Ffreq Tush
  15319. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(162)})),
  15320. Fdl: *(*struct {
  15321. Flen1 [0]Tush
  15322. Fdad Tush
  15323. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15324. },
  15325. 22: {
  15326. Ffc: *(*struct {
  15327. Fcode [0]Tush
  15328. Ffreq Tush
  15329. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(98)})),
  15330. Fdl: *(*struct {
  15331. Flen1 [0]Tush
  15332. Fdad Tush
  15333. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15334. },
  15335. 23: {
  15336. Ffc: *(*struct {
  15337. Fcode [0]Tush
  15338. Ffreq Tush
  15339. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(226)})),
  15340. Fdl: *(*struct {
  15341. Flen1 [0]Tush
  15342. Fdad Tush
  15343. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15344. },
  15345. 24: {
  15346. Ffc: *(*struct {
  15347. Fcode [0]Tush
  15348. Ffreq Tush
  15349. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(18)})),
  15350. Fdl: *(*struct {
  15351. Flen1 [0]Tush
  15352. Fdad Tush
  15353. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15354. },
  15355. 25: {
  15356. Ffc: *(*struct {
  15357. Fcode [0]Tush
  15358. Ffreq Tush
  15359. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(146)})),
  15360. Fdl: *(*struct {
  15361. Flen1 [0]Tush
  15362. Fdad Tush
  15363. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15364. },
  15365. 26: {
  15366. Ffc: *(*struct {
  15367. Fcode [0]Tush
  15368. Ffreq Tush
  15369. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(82)})),
  15370. Fdl: *(*struct {
  15371. Flen1 [0]Tush
  15372. Fdad Tush
  15373. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15374. },
  15375. 27: {
  15376. Ffc: *(*struct {
  15377. Fcode [0]Tush
  15378. Ffreq Tush
  15379. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(210)})),
  15380. Fdl: *(*struct {
  15381. Flen1 [0]Tush
  15382. Fdad Tush
  15383. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15384. },
  15385. 28: {
  15386. Ffc: *(*struct {
  15387. Fcode [0]Tush
  15388. Ffreq Tush
  15389. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(50)})),
  15390. Fdl: *(*struct {
  15391. Flen1 [0]Tush
  15392. Fdad Tush
  15393. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15394. },
  15395. 29: {
  15396. Ffc: *(*struct {
  15397. Fcode [0]Tush
  15398. Ffreq Tush
  15399. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(178)})),
  15400. Fdl: *(*struct {
  15401. Flen1 [0]Tush
  15402. Fdad Tush
  15403. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15404. },
  15405. 30: {
  15406. Ffc: *(*struct {
  15407. Fcode [0]Tush
  15408. Ffreq Tush
  15409. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(114)})),
  15410. Fdl: *(*struct {
  15411. Flen1 [0]Tush
  15412. Fdad Tush
  15413. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15414. },
  15415. 31: {
  15416. Ffc: *(*struct {
  15417. Fcode [0]Tush
  15418. Ffreq Tush
  15419. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(242)})),
  15420. Fdl: *(*struct {
  15421. Flen1 [0]Tush
  15422. Fdad Tush
  15423. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15424. },
  15425. 32: {
  15426. Ffc: *(*struct {
  15427. Fcode [0]Tush
  15428. Ffreq Tush
  15429. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(10)})),
  15430. Fdl: *(*struct {
  15431. Flen1 [0]Tush
  15432. Fdad Tush
  15433. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15434. },
  15435. 33: {
  15436. Ffc: *(*struct {
  15437. Fcode [0]Tush
  15438. Ffreq Tush
  15439. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(138)})),
  15440. Fdl: *(*struct {
  15441. Flen1 [0]Tush
  15442. Fdad Tush
  15443. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15444. },
  15445. 34: {
  15446. Ffc: *(*struct {
  15447. Fcode [0]Tush
  15448. Ffreq Tush
  15449. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(74)})),
  15450. Fdl: *(*struct {
  15451. Flen1 [0]Tush
  15452. Fdad Tush
  15453. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15454. },
  15455. 35: {
  15456. Ffc: *(*struct {
  15457. Fcode [0]Tush
  15458. Ffreq Tush
  15459. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(202)})),
  15460. Fdl: *(*struct {
  15461. Flen1 [0]Tush
  15462. Fdad Tush
  15463. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15464. },
  15465. 36: {
  15466. Ffc: *(*struct {
  15467. Fcode [0]Tush
  15468. Ffreq Tush
  15469. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(42)})),
  15470. Fdl: *(*struct {
  15471. Flen1 [0]Tush
  15472. Fdad Tush
  15473. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15474. },
  15475. 37: {
  15476. Ffc: *(*struct {
  15477. Fcode [0]Tush
  15478. Ffreq Tush
  15479. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(170)})),
  15480. Fdl: *(*struct {
  15481. Flen1 [0]Tush
  15482. Fdad Tush
  15483. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15484. },
  15485. 38: {
  15486. Ffc: *(*struct {
  15487. Fcode [0]Tush
  15488. Ffreq Tush
  15489. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(106)})),
  15490. Fdl: *(*struct {
  15491. Flen1 [0]Tush
  15492. Fdad Tush
  15493. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15494. },
  15495. 39: {
  15496. Ffc: *(*struct {
  15497. Fcode [0]Tush
  15498. Ffreq Tush
  15499. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(234)})),
  15500. Fdl: *(*struct {
  15501. Flen1 [0]Tush
  15502. Fdad Tush
  15503. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15504. },
  15505. 40: {
  15506. Ffc: *(*struct {
  15507. Fcode [0]Tush
  15508. Ffreq Tush
  15509. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(26)})),
  15510. Fdl: *(*struct {
  15511. Flen1 [0]Tush
  15512. Fdad Tush
  15513. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15514. },
  15515. 41: {
  15516. Ffc: *(*struct {
  15517. Fcode [0]Tush
  15518. Ffreq Tush
  15519. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(154)})),
  15520. Fdl: *(*struct {
  15521. Flen1 [0]Tush
  15522. Fdad Tush
  15523. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15524. },
  15525. 42: {
  15526. Ffc: *(*struct {
  15527. Fcode [0]Tush
  15528. Ffreq Tush
  15529. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(90)})),
  15530. Fdl: *(*struct {
  15531. Flen1 [0]Tush
  15532. Fdad Tush
  15533. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15534. },
  15535. 43: {
  15536. Ffc: *(*struct {
  15537. Fcode [0]Tush
  15538. Ffreq Tush
  15539. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(218)})),
  15540. Fdl: *(*struct {
  15541. Flen1 [0]Tush
  15542. Fdad Tush
  15543. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15544. },
  15545. 44: {
  15546. Ffc: *(*struct {
  15547. Fcode [0]Tush
  15548. Ffreq Tush
  15549. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(58)})),
  15550. Fdl: *(*struct {
  15551. Flen1 [0]Tush
  15552. Fdad Tush
  15553. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15554. },
  15555. 45: {
  15556. Ffc: *(*struct {
  15557. Fcode [0]Tush
  15558. Ffreq Tush
  15559. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(186)})),
  15560. Fdl: *(*struct {
  15561. Flen1 [0]Tush
  15562. Fdad Tush
  15563. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15564. },
  15565. 46: {
  15566. Ffc: *(*struct {
  15567. Fcode [0]Tush
  15568. Ffreq Tush
  15569. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(122)})),
  15570. Fdl: *(*struct {
  15571. Flen1 [0]Tush
  15572. Fdad Tush
  15573. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15574. },
  15575. 47: {
  15576. Ffc: *(*struct {
  15577. Fcode [0]Tush
  15578. Ffreq Tush
  15579. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(250)})),
  15580. Fdl: *(*struct {
  15581. Flen1 [0]Tush
  15582. Fdad Tush
  15583. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15584. },
  15585. 48: {
  15586. Ffc: *(*struct {
  15587. Fcode [0]Tush
  15588. Ffreq Tush
  15589. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(6)})),
  15590. Fdl: *(*struct {
  15591. Flen1 [0]Tush
  15592. Fdad Tush
  15593. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15594. },
  15595. 49: {
  15596. Ffc: *(*struct {
  15597. Fcode [0]Tush
  15598. Ffreq Tush
  15599. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(134)})),
  15600. Fdl: *(*struct {
  15601. Flen1 [0]Tush
  15602. Fdad Tush
  15603. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15604. },
  15605. 50: {
  15606. Ffc: *(*struct {
  15607. Fcode [0]Tush
  15608. Ffreq Tush
  15609. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(70)})),
  15610. Fdl: *(*struct {
  15611. Flen1 [0]Tush
  15612. Fdad Tush
  15613. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15614. },
  15615. 51: {
  15616. Ffc: *(*struct {
  15617. Fcode [0]Tush
  15618. Ffreq Tush
  15619. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(198)})),
  15620. Fdl: *(*struct {
  15621. Flen1 [0]Tush
  15622. Fdad Tush
  15623. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15624. },
  15625. 52: {
  15626. Ffc: *(*struct {
  15627. Fcode [0]Tush
  15628. Ffreq Tush
  15629. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(38)})),
  15630. Fdl: *(*struct {
  15631. Flen1 [0]Tush
  15632. Fdad Tush
  15633. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15634. },
  15635. 53: {
  15636. Ffc: *(*struct {
  15637. Fcode [0]Tush
  15638. Ffreq Tush
  15639. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(166)})),
  15640. Fdl: *(*struct {
  15641. Flen1 [0]Tush
  15642. Fdad Tush
  15643. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15644. },
  15645. 54: {
  15646. Ffc: *(*struct {
  15647. Fcode [0]Tush
  15648. Ffreq Tush
  15649. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(102)})),
  15650. Fdl: *(*struct {
  15651. Flen1 [0]Tush
  15652. Fdad Tush
  15653. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15654. },
  15655. 55: {
  15656. Ffc: *(*struct {
  15657. Fcode [0]Tush
  15658. Ffreq Tush
  15659. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(230)})),
  15660. Fdl: *(*struct {
  15661. Flen1 [0]Tush
  15662. Fdad Tush
  15663. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15664. },
  15665. 56: {
  15666. Ffc: *(*struct {
  15667. Fcode [0]Tush
  15668. Ffreq Tush
  15669. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(22)})),
  15670. Fdl: *(*struct {
  15671. Flen1 [0]Tush
  15672. Fdad Tush
  15673. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15674. },
  15675. 57: {
  15676. Ffc: *(*struct {
  15677. Fcode [0]Tush
  15678. Ffreq Tush
  15679. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(150)})),
  15680. Fdl: *(*struct {
  15681. Flen1 [0]Tush
  15682. Fdad Tush
  15683. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15684. },
  15685. 58: {
  15686. Ffc: *(*struct {
  15687. Fcode [0]Tush
  15688. Ffreq Tush
  15689. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(86)})),
  15690. Fdl: *(*struct {
  15691. Flen1 [0]Tush
  15692. Fdad Tush
  15693. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15694. },
  15695. 59: {
  15696. Ffc: *(*struct {
  15697. Fcode [0]Tush
  15698. Ffreq Tush
  15699. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(214)})),
  15700. Fdl: *(*struct {
  15701. Flen1 [0]Tush
  15702. Fdad Tush
  15703. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15704. },
  15705. 60: {
  15706. Ffc: *(*struct {
  15707. Fcode [0]Tush
  15708. Ffreq Tush
  15709. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(54)})),
  15710. Fdl: *(*struct {
  15711. Flen1 [0]Tush
  15712. Fdad Tush
  15713. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15714. },
  15715. 61: {
  15716. Ffc: *(*struct {
  15717. Fcode [0]Tush
  15718. Ffreq Tush
  15719. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(182)})),
  15720. Fdl: *(*struct {
  15721. Flen1 [0]Tush
  15722. Fdad Tush
  15723. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15724. },
  15725. 62: {
  15726. Ffc: *(*struct {
  15727. Fcode [0]Tush
  15728. Ffreq Tush
  15729. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(118)})),
  15730. Fdl: *(*struct {
  15731. Flen1 [0]Tush
  15732. Fdad Tush
  15733. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15734. },
  15735. 63: {
  15736. Ffc: *(*struct {
  15737. Fcode [0]Tush
  15738. Ffreq Tush
  15739. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(246)})),
  15740. Fdl: *(*struct {
  15741. Flen1 [0]Tush
  15742. Fdad Tush
  15743. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15744. },
  15745. 64: {
  15746. Ffc: *(*struct {
  15747. Fcode [0]Tush
  15748. Ffreq Tush
  15749. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(14)})),
  15750. Fdl: *(*struct {
  15751. Flen1 [0]Tush
  15752. Fdad Tush
  15753. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15754. },
  15755. 65: {
  15756. Ffc: *(*struct {
  15757. Fcode [0]Tush
  15758. Ffreq Tush
  15759. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(142)})),
  15760. Fdl: *(*struct {
  15761. Flen1 [0]Tush
  15762. Fdad Tush
  15763. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15764. },
  15765. 66: {
  15766. Ffc: *(*struct {
  15767. Fcode [0]Tush
  15768. Ffreq Tush
  15769. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(78)})),
  15770. Fdl: *(*struct {
  15771. Flen1 [0]Tush
  15772. Fdad Tush
  15773. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15774. },
  15775. 67: {
  15776. Ffc: *(*struct {
  15777. Fcode [0]Tush
  15778. Ffreq Tush
  15779. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(206)})),
  15780. Fdl: *(*struct {
  15781. Flen1 [0]Tush
  15782. Fdad Tush
  15783. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15784. },
  15785. 68: {
  15786. Ffc: *(*struct {
  15787. Fcode [0]Tush
  15788. Ffreq Tush
  15789. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(46)})),
  15790. Fdl: *(*struct {
  15791. Flen1 [0]Tush
  15792. Fdad Tush
  15793. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15794. },
  15795. 69: {
  15796. Ffc: *(*struct {
  15797. Fcode [0]Tush
  15798. Ffreq Tush
  15799. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(174)})),
  15800. Fdl: *(*struct {
  15801. Flen1 [0]Tush
  15802. Fdad Tush
  15803. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15804. },
  15805. 70: {
  15806. Ffc: *(*struct {
  15807. Fcode [0]Tush
  15808. Ffreq Tush
  15809. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(110)})),
  15810. Fdl: *(*struct {
  15811. Flen1 [0]Tush
  15812. Fdad Tush
  15813. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15814. },
  15815. 71: {
  15816. Ffc: *(*struct {
  15817. Fcode [0]Tush
  15818. Ffreq Tush
  15819. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(238)})),
  15820. Fdl: *(*struct {
  15821. Flen1 [0]Tush
  15822. Fdad Tush
  15823. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15824. },
  15825. 72: {
  15826. Ffc: *(*struct {
  15827. Fcode [0]Tush
  15828. Ffreq Tush
  15829. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(30)})),
  15830. Fdl: *(*struct {
  15831. Flen1 [0]Tush
  15832. Fdad Tush
  15833. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15834. },
  15835. 73: {
  15836. Ffc: *(*struct {
  15837. Fcode [0]Tush
  15838. Ffreq Tush
  15839. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(158)})),
  15840. Fdl: *(*struct {
  15841. Flen1 [0]Tush
  15842. Fdad Tush
  15843. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15844. },
  15845. 74: {
  15846. Ffc: *(*struct {
  15847. Fcode [0]Tush
  15848. Ffreq Tush
  15849. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(94)})),
  15850. Fdl: *(*struct {
  15851. Flen1 [0]Tush
  15852. Fdad Tush
  15853. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15854. },
  15855. 75: {
  15856. Ffc: *(*struct {
  15857. Fcode [0]Tush
  15858. Ffreq Tush
  15859. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(222)})),
  15860. Fdl: *(*struct {
  15861. Flen1 [0]Tush
  15862. Fdad Tush
  15863. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15864. },
  15865. 76: {
  15866. Ffc: *(*struct {
  15867. Fcode [0]Tush
  15868. Ffreq Tush
  15869. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(62)})),
  15870. Fdl: *(*struct {
  15871. Flen1 [0]Tush
  15872. Fdad Tush
  15873. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15874. },
  15875. 77: {
  15876. Ffc: *(*struct {
  15877. Fcode [0]Tush
  15878. Ffreq Tush
  15879. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(190)})),
  15880. Fdl: *(*struct {
  15881. Flen1 [0]Tush
  15882. Fdad Tush
  15883. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15884. },
  15885. 78: {
  15886. Ffc: *(*struct {
  15887. Fcode [0]Tush
  15888. Ffreq Tush
  15889. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(126)})),
  15890. Fdl: *(*struct {
  15891. Flen1 [0]Tush
  15892. Fdad Tush
  15893. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15894. },
  15895. 79: {
  15896. Ffc: *(*struct {
  15897. Fcode [0]Tush
  15898. Ffreq Tush
  15899. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(254)})),
  15900. Fdl: *(*struct {
  15901. Flen1 [0]Tush
  15902. Fdad Tush
  15903. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15904. },
  15905. 80: {
  15906. Ffc: *(*struct {
  15907. Fcode [0]Tush
  15908. Ffreq Tush
  15909. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(1)})),
  15910. Fdl: *(*struct {
  15911. Flen1 [0]Tush
  15912. Fdad Tush
  15913. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15914. },
  15915. 81: {
  15916. Ffc: *(*struct {
  15917. Fcode [0]Tush
  15918. Ffreq Tush
  15919. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(129)})),
  15920. Fdl: *(*struct {
  15921. Flen1 [0]Tush
  15922. Fdad Tush
  15923. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15924. },
  15925. 82: {
  15926. Ffc: *(*struct {
  15927. Fcode [0]Tush
  15928. Ffreq Tush
  15929. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(65)})),
  15930. Fdl: *(*struct {
  15931. Flen1 [0]Tush
  15932. Fdad Tush
  15933. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15934. },
  15935. 83: {
  15936. Ffc: *(*struct {
  15937. Fcode [0]Tush
  15938. Ffreq Tush
  15939. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(193)})),
  15940. Fdl: *(*struct {
  15941. Flen1 [0]Tush
  15942. Fdad Tush
  15943. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15944. },
  15945. 84: {
  15946. Ffc: *(*struct {
  15947. Fcode [0]Tush
  15948. Ffreq Tush
  15949. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(33)})),
  15950. Fdl: *(*struct {
  15951. Flen1 [0]Tush
  15952. Fdad Tush
  15953. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15954. },
  15955. 85: {
  15956. Ffc: *(*struct {
  15957. Fcode [0]Tush
  15958. Ffreq Tush
  15959. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(161)})),
  15960. Fdl: *(*struct {
  15961. Flen1 [0]Tush
  15962. Fdad Tush
  15963. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15964. },
  15965. 86: {
  15966. Ffc: *(*struct {
  15967. Fcode [0]Tush
  15968. Ffreq Tush
  15969. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(97)})),
  15970. Fdl: *(*struct {
  15971. Flen1 [0]Tush
  15972. Fdad Tush
  15973. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15974. },
  15975. 87: {
  15976. Ffc: *(*struct {
  15977. Fcode [0]Tush
  15978. Ffreq Tush
  15979. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(225)})),
  15980. Fdl: *(*struct {
  15981. Flen1 [0]Tush
  15982. Fdad Tush
  15983. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15984. },
  15985. 88: {
  15986. Ffc: *(*struct {
  15987. Fcode [0]Tush
  15988. Ffreq Tush
  15989. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(17)})),
  15990. Fdl: *(*struct {
  15991. Flen1 [0]Tush
  15992. Fdad Tush
  15993. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15994. },
  15995. 89: {
  15996. Ffc: *(*struct {
  15997. Fcode [0]Tush
  15998. Ffreq Tush
  15999. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(145)})),
  16000. Fdl: *(*struct {
  16001. Flen1 [0]Tush
  16002. Fdad Tush
  16003. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16004. },
  16005. 90: {
  16006. Ffc: *(*struct {
  16007. Fcode [0]Tush
  16008. Ffreq Tush
  16009. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(81)})),
  16010. Fdl: *(*struct {
  16011. Flen1 [0]Tush
  16012. Fdad Tush
  16013. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16014. },
  16015. 91: {
  16016. Ffc: *(*struct {
  16017. Fcode [0]Tush
  16018. Ffreq Tush
  16019. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(209)})),
  16020. Fdl: *(*struct {
  16021. Flen1 [0]Tush
  16022. Fdad Tush
  16023. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16024. },
  16025. 92: {
  16026. Ffc: *(*struct {
  16027. Fcode [0]Tush
  16028. Ffreq Tush
  16029. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(49)})),
  16030. Fdl: *(*struct {
  16031. Flen1 [0]Tush
  16032. Fdad Tush
  16033. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16034. },
  16035. 93: {
  16036. Ffc: *(*struct {
  16037. Fcode [0]Tush
  16038. Ffreq Tush
  16039. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(177)})),
  16040. Fdl: *(*struct {
  16041. Flen1 [0]Tush
  16042. Fdad Tush
  16043. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16044. },
  16045. 94: {
  16046. Ffc: *(*struct {
  16047. Fcode [0]Tush
  16048. Ffreq Tush
  16049. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(113)})),
  16050. Fdl: *(*struct {
  16051. Flen1 [0]Tush
  16052. Fdad Tush
  16053. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16054. },
  16055. 95: {
  16056. Ffc: *(*struct {
  16057. Fcode [0]Tush
  16058. Ffreq Tush
  16059. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(241)})),
  16060. Fdl: *(*struct {
  16061. Flen1 [0]Tush
  16062. Fdad Tush
  16063. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16064. },
  16065. 96: {
  16066. Ffc: *(*struct {
  16067. Fcode [0]Tush
  16068. Ffreq Tush
  16069. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16070. Fdl: *(*struct {
  16071. Flen1 [0]Tush
  16072. Fdad Tush
  16073. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16074. },
  16075. 97: {
  16076. Ffc: *(*struct {
  16077. Fcode [0]Tush
  16078. Ffreq Tush
  16079. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(137)})),
  16080. Fdl: *(*struct {
  16081. Flen1 [0]Tush
  16082. Fdad Tush
  16083. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16084. },
  16085. 98: {
  16086. Ffc: *(*struct {
  16087. Fcode [0]Tush
  16088. Ffreq Tush
  16089. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(73)})),
  16090. Fdl: *(*struct {
  16091. Flen1 [0]Tush
  16092. Fdad Tush
  16093. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16094. },
  16095. 99: {
  16096. Ffc: *(*struct {
  16097. Fcode [0]Tush
  16098. Ffreq Tush
  16099. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(201)})),
  16100. Fdl: *(*struct {
  16101. Flen1 [0]Tush
  16102. Fdad Tush
  16103. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16104. },
  16105. 100: {
  16106. Ffc: *(*struct {
  16107. Fcode [0]Tush
  16108. Ffreq Tush
  16109. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(41)})),
  16110. Fdl: *(*struct {
  16111. Flen1 [0]Tush
  16112. Fdad Tush
  16113. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16114. },
  16115. 101: {
  16116. Ffc: *(*struct {
  16117. Fcode [0]Tush
  16118. Ffreq Tush
  16119. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(169)})),
  16120. Fdl: *(*struct {
  16121. Flen1 [0]Tush
  16122. Fdad Tush
  16123. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16124. },
  16125. 102: {
  16126. Ffc: *(*struct {
  16127. Fcode [0]Tush
  16128. Ffreq Tush
  16129. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(105)})),
  16130. Fdl: *(*struct {
  16131. Flen1 [0]Tush
  16132. Fdad Tush
  16133. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16134. },
  16135. 103: {
  16136. Ffc: *(*struct {
  16137. Fcode [0]Tush
  16138. Ffreq Tush
  16139. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(233)})),
  16140. Fdl: *(*struct {
  16141. Flen1 [0]Tush
  16142. Fdad Tush
  16143. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16144. },
  16145. 104: {
  16146. Ffc: *(*struct {
  16147. Fcode [0]Tush
  16148. Ffreq Tush
  16149. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(25)})),
  16150. Fdl: *(*struct {
  16151. Flen1 [0]Tush
  16152. Fdad Tush
  16153. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16154. },
  16155. 105: {
  16156. Ffc: *(*struct {
  16157. Fcode [0]Tush
  16158. Ffreq Tush
  16159. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(153)})),
  16160. Fdl: *(*struct {
  16161. Flen1 [0]Tush
  16162. Fdad Tush
  16163. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16164. },
  16165. 106: {
  16166. Ffc: *(*struct {
  16167. Fcode [0]Tush
  16168. Ffreq Tush
  16169. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(89)})),
  16170. Fdl: *(*struct {
  16171. Flen1 [0]Tush
  16172. Fdad Tush
  16173. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16174. },
  16175. 107: {
  16176. Ffc: *(*struct {
  16177. Fcode [0]Tush
  16178. Ffreq Tush
  16179. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(217)})),
  16180. Fdl: *(*struct {
  16181. Flen1 [0]Tush
  16182. Fdad Tush
  16183. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16184. },
  16185. 108: {
  16186. Ffc: *(*struct {
  16187. Fcode [0]Tush
  16188. Ffreq Tush
  16189. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(57)})),
  16190. Fdl: *(*struct {
  16191. Flen1 [0]Tush
  16192. Fdad Tush
  16193. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16194. },
  16195. 109: {
  16196. Ffc: *(*struct {
  16197. Fcode [0]Tush
  16198. Ffreq Tush
  16199. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(185)})),
  16200. Fdl: *(*struct {
  16201. Flen1 [0]Tush
  16202. Fdad Tush
  16203. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16204. },
  16205. 110: {
  16206. Ffc: *(*struct {
  16207. Fcode [0]Tush
  16208. Ffreq Tush
  16209. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(121)})),
  16210. Fdl: *(*struct {
  16211. Flen1 [0]Tush
  16212. Fdad Tush
  16213. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16214. },
  16215. 111: {
  16216. Ffc: *(*struct {
  16217. Fcode [0]Tush
  16218. Ffreq Tush
  16219. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(249)})),
  16220. Fdl: *(*struct {
  16221. Flen1 [0]Tush
  16222. Fdad Tush
  16223. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16224. },
  16225. 112: {
  16226. Ffc: *(*struct {
  16227. Fcode [0]Tush
  16228. Ffreq Tush
  16229. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  16230. Fdl: *(*struct {
  16231. Flen1 [0]Tush
  16232. Fdad Tush
  16233. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16234. },
  16235. 113: {
  16236. Ffc: *(*struct {
  16237. Fcode [0]Tush
  16238. Ffreq Tush
  16239. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(133)})),
  16240. Fdl: *(*struct {
  16241. Flen1 [0]Tush
  16242. Fdad Tush
  16243. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16244. },
  16245. 114: {
  16246. Ffc: *(*struct {
  16247. Fcode [0]Tush
  16248. Ffreq Tush
  16249. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(69)})),
  16250. Fdl: *(*struct {
  16251. Flen1 [0]Tush
  16252. Fdad Tush
  16253. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16254. },
  16255. 115: {
  16256. Ffc: *(*struct {
  16257. Fcode [0]Tush
  16258. Ffreq Tush
  16259. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(197)})),
  16260. Fdl: *(*struct {
  16261. Flen1 [0]Tush
  16262. Fdad Tush
  16263. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16264. },
  16265. 116: {
  16266. Ffc: *(*struct {
  16267. Fcode [0]Tush
  16268. Ffreq Tush
  16269. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(37)})),
  16270. Fdl: *(*struct {
  16271. Flen1 [0]Tush
  16272. Fdad Tush
  16273. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16274. },
  16275. 117: {
  16276. Ffc: *(*struct {
  16277. Fcode [0]Tush
  16278. Ffreq Tush
  16279. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(165)})),
  16280. Fdl: *(*struct {
  16281. Flen1 [0]Tush
  16282. Fdad Tush
  16283. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16284. },
  16285. 118: {
  16286. Ffc: *(*struct {
  16287. Fcode [0]Tush
  16288. Ffreq Tush
  16289. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(101)})),
  16290. Fdl: *(*struct {
  16291. Flen1 [0]Tush
  16292. Fdad Tush
  16293. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16294. },
  16295. 119: {
  16296. Ffc: *(*struct {
  16297. Fcode [0]Tush
  16298. Ffreq Tush
  16299. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(229)})),
  16300. Fdl: *(*struct {
  16301. Flen1 [0]Tush
  16302. Fdad Tush
  16303. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16304. },
  16305. 120: {
  16306. Ffc: *(*struct {
  16307. Fcode [0]Tush
  16308. Ffreq Tush
  16309. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(21)})),
  16310. Fdl: *(*struct {
  16311. Flen1 [0]Tush
  16312. Fdad Tush
  16313. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16314. },
  16315. 121: {
  16316. Ffc: *(*struct {
  16317. Fcode [0]Tush
  16318. Ffreq Tush
  16319. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(149)})),
  16320. Fdl: *(*struct {
  16321. Flen1 [0]Tush
  16322. Fdad Tush
  16323. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16324. },
  16325. 122: {
  16326. Ffc: *(*struct {
  16327. Fcode [0]Tush
  16328. Ffreq Tush
  16329. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(85)})),
  16330. Fdl: *(*struct {
  16331. Flen1 [0]Tush
  16332. Fdad Tush
  16333. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16334. },
  16335. 123: {
  16336. Ffc: *(*struct {
  16337. Fcode [0]Tush
  16338. Ffreq Tush
  16339. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(213)})),
  16340. Fdl: *(*struct {
  16341. Flen1 [0]Tush
  16342. Fdad Tush
  16343. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16344. },
  16345. 124: {
  16346. Ffc: *(*struct {
  16347. Fcode [0]Tush
  16348. Ffreq Tush
  16349. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(53)})),
  16350. Fdl: *(*struct {
  16351. Flen1 [0]Tush
  16352. Fdad Tush
  16353. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16354. },
  16355. 125: {
  16356. Ffc: *(*struct {
  16357. Fcode [0]Tush
  16358. Ffreq Tush
  16359. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(181)})),
  16360. Fdl: *(*struct {
  16361. Flen1 [0]Tush
  16362. Fdad Tush
  16363. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16364. },
  16365. 126: {
  16366. Ffc: *(*struct {
  16367. Fcode [0]Tush
  16368. Ffreq Tush
  16369. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(117)})),
  16370. Fdl: *(*struct {
  16371. Flen1 [0]Tush
  16372. Fdad Tush
  16373. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16374. },
  16375. 127: {
  16376. Ffc: *(*struct {
  16377. Fcode [0]Tush
  16378. Ffreq Tush
  16379. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(245)})),
  16380. Fdl: *(*struct {
  16381. Flen1 [0]Tush
  16382. Fdad Tush
  16383. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16384. },
  16385. 128: {
  16386. Ffc: *(*struct {
  16387. Fcode [0]Tush
  16388. Ffreq Tush
  16389. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(13)})),
  16390. Fdl: *(*struct {
  16391. Flen1 [0]Tush
  16392. Fdad Tush
  16393. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16394. },
  16395. 129: {
  16396. Ffc: *(*struct {
  16397. Fcode [0]Tush
  16398. Ffreq Tush
  16399. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(141)})),
  16400. Fdl: *(*struct {
  16401. Flen1 [0]Tush
  16402. Fdad Tush
  16403. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16404. },
  16405. 130: {
  16406. Ffc: *(*struct {
  16407. Fcode [0]Tush
  16408. Ffreq Tush
  16409. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(77)})),
  16410. Fdl: *(*struct {
  16411. Flen1 [0]Tush
  16412. Fdad Tush
  16413. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16414. },
  16415. 131: {
  16416. Ffc: *(*struct {
  16417. Fcode [0]Tush
  16418. Ffreq Tush
  16419. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(205)})),
  16420. Fdl: *(*struct {
  16421. Flen1 [0]Tush
  16422. Fdad Tush
  16423. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16424. },
  16425. 132: {
  16426. Ffc: *(*struct {
  16427. Fcode [0]Tush
  16428. Ffreq Tush
  16429. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(45)})),
  16430. Fdl: *(*struct {
  16431. Flen1 [0]Tush
  16432. Fdad Tush
  16433. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16434. },
  16435. 133: {
  16436. Ffc: *(*struct {
  16437. Fcode [0]Tush
  16438. Ffreq Tush
  16439. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(173)})),
  16440. Fdl: *(*struct {
  16441. Flen1 [0]Tush
  16442. Fdad Tush
  16443. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16444. },
  16445. 134: {
  16446. Ffc: *(*struct {
  16447. Fcode [0]Tush
  16448. Ffreq Tush
  16449. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(109)})),
  16450. Fdl: *(*struct {
  16451. Flen1 [0]Tush
  16452. Fdad Tush
  16453. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16454. },
  16455. 135: {
  16456. Ffc: *(*struct {
  16457. Fcode [0]Tush
  16458. Ffreq Tush
  16459. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(237)})),
  16460. Fdl: *(*struct {
  16461. Flen1 [0]Tush
  16462. Fdad Tush
  16463. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16464. },
  16465. 136: {
  16466. Ffc: *(*struct {
  16467. Fcode [0]Tush
  16468. Ffreq Tush
  16469. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(29)})),
  16470. Fdl: *(*struct {
  16471. Flen1 [0]Tush
  16472. Fdad Tush
  16473. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16474. },
  16475. 137: {
  16476. Ffc: *(*struct {
  16477. Fcode [0]Tush
  16478. Ffreq Tush
  16479. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(157)})),
  16480. Fdl: *(*struct {
  16481. Flen1 [0]Tush
  16482. Fdad Tush
  16483. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16484. },
  16485. 138: {
  16486. Ffc: *(*struct {
  16487. Fcode [0]Tush
  16488. Ffreq Tush
  16489. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(93)})),
  16490. Fdl: *(*struct {
  16491. Flen1 [0]Tush
  16492. Fdad Tush
  16493. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16494. },
  16495. 139: {
  16496. Ffc: *(*struct {
  16497. Fcode [0]Tush
  16498. Ffreq Tush
  16499. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(221)})),
  16500. Fdl: *(*struct {
  16501. Flen1 [0]Tush
  16502. Fdad Tush
  16503. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16504. },
  16505. 140: {
  16506. Ffc: *(*struct {
  16507. Fcode [0]Tush
  16508. Ffreq Tush
  16509. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(61)})),
  16510. Fdl: *(*struct {
  16511. Flen1 [0]Tush
  16512. Fdad Tush
  16513. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16514. },
  16515. 141: {
  16516. Ffc: *(*struct {
  16517. Fcode [0]Tush
  16518. Ffreq Tush
  16519. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(189)})),
  16520. Fdl: *(*struct {
  16521. Flen1 [0]Tush
  16522. Fdad Tush
  16523. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16524. },
  16525. 142: {
  16526. Ffc: *(*struct {
  16527. Fcode [0]Tush
  16528. Ffreq Tush
  16529. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(125)})),
  16530. Fdl: *(*struct {
  16531. Flen1 [0]Tush
  16532. Fdad Tush
  16533. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16534. },
  16535. 143: {
  16536. Ffc: *(*struct {
  16537. Fcode [0]Tush
  16538. Ffreq Tush
  16539. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(253)})),
  16540. Fdl: *(*struct {
  16541. Flen1 [0]Tush
  16542. Fdad Tush
  16543. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16544. },
  16545. 144: {
  16546. Ffc: *(*struct {
  16547. Fcode [0]Tush
  16548. Ffreq Tush
  16549. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(19)})),
  16550. Fdl: *(*struct {
  16551. Flen1 [0]Tush
  16552. Fdad Tush
  16553. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16554. },
  16555. 145: {
  16556. Ffc: *(*struct {
  16557. Fcode [0]Tush
  16558. Ffreq Tush
  16559. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(275)})),
  16560. Fdl: *(*struct {
  16561. Flen1 [0]Tush
  16562. Fdad Tush
  16563. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16564. },
  16565. 146: {
  16566. Ffc: *(*struct {
  16567. Fcode [0]Tush
  16568. Ffreq Tush
  16569. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(147)})),
  16570. Fdl: *(*struct {
  16571. Flen1 [0]Tush
  16572. Fdad Tush
  16573. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16574. },
  16575. 147: {
  16576. Ffc: *(*struct {
  16577. Fcode [0]Tush
  16578. Ffreq Tush
  16579. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(403)})),
  16580. Fdl: *(*struct {
  16581. Flen1 [0]Tush
  16582. Fdad Tush
  16583. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16584. },
  16585. 148: {
  16586. Ffc: *(*struct {
  16587. Fcode [0]Tush
  16588. Ffreq Tush
  16589. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(83)})),
  16590. Fdl: *(*struct {
  16591. Flen1 [0]Tush
  16592. Fdad Tush
  16593. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16594. },
  16595. 149: {
  16596. Ffc: *(*struct {
  16597. Fcode [0]Tush
  16598. Ffreq Tush
  16599. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(339)})),
  16600. Fdl: *(*struct {
  16601. Flen1 [0]Tush
  16602. Fdad Tush
  16603. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16604. },
  16605. 150: {
  16606. Ffc: *(*struct {
  16607. Fcode [0]Tush
  16608. Ffreq Tush
  16609. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(211)})),
  16610. Fdl: *(*struct {
  16611. Flen1 [0]Tush
  16612. Fdad Tush
  16613. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16614. },
  16615. 151: {
  16616. Ffc: *(*struct {
  16617. Fcode [0]Tush
  16618. Ffreq Tush
  16619. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(467)})),
  16620. Fdl: *(*struct {
  16621. Flen1 [0]Tush
  16622. Fdad Tush
  16623. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16624. },
  16625. 152: {
  16626. Ffc: *(*struct {
  16627. Fcode [0]Tush
  16628. Ffreq Tush
  16629. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(51)})),
  16630. Fdl: *(*struct {
  16631. Flen1 [0]Tush
  16632. Fdad Tush
  16633. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16634. },
  16635. 153: {
  16636. Ffc: *(*struct {
  16637. Fcode [0]Tush
  16638. Ffreq Tush
  16639. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(307)})),
  16640. Fdl: *(*struct {
  16641. Flen1 [0]Tush
  16642. Fdad Tush
  16643. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16644. },
  16645. 154: {
  16646. Ffc: *(*struct {
  16647. Fcode [0]Tush
  16648. Ffreq Tush
  16649. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(179)})),
  16650. Fdl: *(*struct {
  16651. Flen1 [0]Tush
  16652. Fdad Tush
  16653. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16654. },
  16655. 155: {
  16656. Ffc: *(*struct {
  16657. Fcode [0]Tush
  16658. Ffreq Tush
  16659. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(435)})),
  16660. Fdl: *(*struct {
  16661. Flen1 [0]Tush
  16662. Fdad Tush
  16663. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16664. },
  16665. 156: {
  16666. Ffc: *(*struct {
  16667. Fcode [0]Tush
  16668. Ffreq Tush
  16669. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(115)})),
  16670. Fdl: *(*struct {
  16671. Flen1 [0]Tush
  16672. Fdad Tush
  16673. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16674. },
  16675. 157: {
  16676. Ffc: *(*struct {
  16677. Fcode [0]Tush
  16678. Ffreq Tush
  16679. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(371)})),
  16680. Fdl: *(*struct {
  16681. Flen1 [0]Tush
  16682. Fdad Tush
  16683. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16684. },
  16685. 158: {
  16686. Ffc: *(*struct {
  16687. Fcode [0]Tush
  16688. Ffreq Tush
  16689. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(243)})),
  16690. Fdl: *(*struct {
  16691. Flen1 [0]Tush
  16692. Fdad Tush
  16693. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16694. },
  16695. 159: {
  16696. Ffc: *(*struct {
  16697. Fcode [0]Tush
  16698. Ffreq Tush
  16699. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(499)})),
  16700. Fdl: *(*struct {
  16701. Flen1 [0]Tush
  16702. Fdad Tush
  16703. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16704. },
  16705. 160: {
  16706. Ffc: *(*struct {
  16707. Fcode [0]Tush
  16708. Ffreq Tush
  16709. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(11)})),
  16710. Fdl: *(*struct {
  16711. Flen1 [0]Tush
  16712. Fdad Tush
  16713. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16714. },
  16715. 161: {
  16716. Ffc: *(*struct {
  16717. Fcode [0]Tush
  16718. Ffreq Tush
  16719. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(267)})),
  16720. Fdl: *(*struct {
  16721. Flen1 [0]Tush
  16722. Fdad Tush
  16723. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16724. },
  16725. 162: {
  16726. Ffc: *(*struct {
  16727. Fcode [0]Tush
  16728. Ffreq Tush
  16729. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(139)})),
  16730. Fdl: *(*struct {
  16731. Flen1 [0]Tush
  16732. Fdad Tush
  16733. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16734. },
  16735. 163: {
  16736. Ffc: *(*struct {
  16737. Fcode [0]Tush
  16738. Ffreq Tush
  16739. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(395)})),
  16740. Fdl: *(*struct {
  16741. Flen1 [0]Tush
  16742. Fdad Tush
  16743. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16744. },
  16745. 164: {
  16746. Ffc: *(*struct {
  16747. Fcode [0]Tush
  16748. Ffreq Tush
  16749. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(75)})),
  16750. Fdl: *(*struct {
  16751. Flen1 [0]Tush
  16752. Fdad Tush
  16753. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16754. },
  16755. 165: {
  16756. Ffc: *(*struct {
  16757. Fcode [0]Tush
  16758. Ffreq Tush
  16759. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(331)})),
  16760. Fdl: *(*struct {
  16761. Flen1 [0]Tush
  16762. Fdad Tush
  16763. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16764. },
  16765. 166: {
  16766. Ffc: *(*struct {
  16767. Fcode [0]Tush
  16768. Ffreq Tush
  16769. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(203)})),
  16770. Fdl: *(*struct {
  16771. Flen1 [0]Tush
  16772. Fdad Tush
  16773. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16774. },
  16775. 167: {
  16776. Ffc: *(*struct {
  16777. Fcode [0]Tush
  16778. Ffreq Tush
  16779. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(459)})),
  16780. Fdl: *(*struct {
  16781. Flen1 [0]Tush
  16782. Fdad Tush
  16783. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16784. },
  16785. 168: {
  16786. Ffc: *(*struct {
  16787. Fcode [0]Tush
  16788. Ffreq Tush
  16789. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(43)})),
  16790. Fdl: *(*struct {
  16791. Flen1 [0]Tush
  16792. Fdad Tush
  16793. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16794. },
  16795. 169: {
  16796. Ffc: *(*struct {
  16797. Fcode [0]Tush
  16798. Ffreq Tush
  16799. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(299)})),
  16800. Fdl: *(*struct {
  16801. Flen1 [0]Tush
  16802. Fdad Tush
  16803. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16804. },
  16805. 170: {
  16806. Ffc: *(*struct {
  16807. Fcode [0]Tush
  16808. Ffreq Tush
  16809. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(171)})),
  16810. Fdl: *(*struct {
  16811. Flen1 [0]Tush
  16812. Fdad Tush
  16813. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16814. },
  16815. 171: {
  16816. Ffc: *(*struct {
  16817. Fcode [0]Tush
  16818. Ffreq Tush
  16819. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(427)})),
  16820. Fdl: *(*struct {
  16821. Flen1 [0]Tush
  16822. Fdad Tush
  16823. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16824. },
  16825. 172: {
  16826. Ffc: *(*struct {
  16827. Fcode [0]Tush
  16828. Ffreq Tush
  16829. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(107)})),
  16830. Fdl: *(*struct {
  16831. Flen1 [0]Tush
  16832. Fdad Tush
  16833. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16834. },
  16835. 173: {
  16836. Ffc: *(*struct {
  16837. Fcode [0]Tush
  16838. Ffreq Tush
  16839. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(363)})),
  16840. Fdl: *(*struct {
  16841. Flen1 [0]Tush
  16842. Fdad Tush
  16843. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16844. },
  16845. 174: {
  16846. Ffc: *(*struct {
  16847. Fcode [0]Tush
  16848. Ffreq Tush
  16849. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(235)})),
  16850. Fdl: *(*struct {
  16851. Flen1 [0]Tush
  16852. Fdad Tush
  16853. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16854. },
  16855. 175: {
  16856. Ffc: *(*struct {
  16857. Fcode [0]Tush
  16858. Ffreq Tush
  16859. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(491)})),
  16860. Fdl: *(*struct {
  16861. Flen1 [0]Tush
  16862. Fdad Tush
  16863. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16864. },
  16865. 176: {
  16866. Ffc: *(*struct {
  16867. Fcode [0]Tush
  16868. Ffreq Tush
  16869. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(27)})),
  16870. Fdl: *(*struct {
  16871. Flen1 [0]Tush
  16872. Fdad Tush
  16873. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16874. },
  16875. 177: {
  16876. Ffc: *(*struct {
  16877. Fcode [0]Tush
  16878. Ffreq Tush
  16879. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(283)})),
  16880. Fdl: *(*struct {
  16881. Flen1 [0]Tush
  16882. Fdad Tush
  16883. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16884. },
  16885. 178: {
  16886. Ffc: *(*struct {
  16887. Fcode [0]Tush
  16888. Ffreq Tush
  16889. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(155)})),
  16890. Fdl: *(*struct {
  16891. Flen1 [0]Tush
  16892. Fdad Tush
  16893. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16894. },
  16895. 179: {
  16896. Ffc: *(*struct {
  16897. Fcode [0]Tush
  16898. Ffreq Tush
  16899. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(411)})),
  16900. Fdl: *(*struct {
  16901. Flen1 [0]Tush
  16902. Fdad Tush
  16903. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16904. },
  16905. 180: {
  16906. Ffc: *(*struct {
  16907. Fcode [0]Tush
  16908. Ffreq Tush
  16909. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(91)})),
  16910. Fdl: *(*struct {
  16911. Flen1 [0]Tush
  16912. Fdad Tush
  16913. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16914. },
  16915. 181: {
  16916. Ffc: *(*struct {
  16917. Fcode [0]Tush
  16918. Ffreq Tush
  16919. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(347)})),
  16920. Fdl: *(*struct {
  16921. Flen1 [0]Tush
  16922. Fdad Tush
  16923. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16924. },
  16925. 182: {
  16926. Ffc: *(*struct {
  16927. Fcode [0]Tush
  16928. Ffreq Tush
  16929. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(219)})),
  16930. Fdl: *(*struct {
  16931. Flen1 [0]Tush
  16932. Fdad Tush
  16933. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16934. },
  16935. 183: {
  16936. Ffc: *(*struct {
  16937. Fcode [0]Tush
  16938. Ffreq Tush
  16939. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(475)})),
  16940. Fdl: *(*struct {
  16941. Flen1 [0]Tush
  16942. Fdad Tush
  16943. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16944. },
  16945. 184: {
  16946. Ffc: *(*struct {
  16947. Fcode [0]Tush
  16948. Ffreq Tush
  16949. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(59)})),
  16950. Fdl: *(*struct {
  16951. Flen1 [0]Tush
  16952. Fdad Tush
  16953. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16954. },
  16955. 185: {
  16956. Ffc: *(*struct {
  16957. Fcode [0]Tush
  16958. Ffreq Tush
  16959. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(315)})),
  16960. Fdl: *(*struct {
  16961. Flen1 [0]Tush
  16962. Fdad Tush
  16963. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16964. },
  16965. 186: {
  16966. Ffc: *(*struct {
  16967. Fcode [0]Tush
  16968. Ffreq Tush
  16969. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(187)})),
  16970. Fdl: *(*struct {
  16971. Flen1 [0]Tush
  16972. Fdad Tush
  16973. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16974. },
  16975. 187: {
  16976. Ffc: *(*struct {
  16977. Fcode [0]Tush
  16978. Ffreq Tush
  16979. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(443)})),
  16980. Fdl: *(*struct {
  16981. Flen1 [0]Tush
  16982. Fdad Tush
  16983. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16984. },
  16985. 188: {
  16986. Ffc: *(*struct {
  16987. Fcode [0]Tush
  16988. Ffreq Tush
  16989. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(123)})),
  16990. Fdl: *(*struct {
  16991. Flen1 [0]Tush
  16992. Fdad Tush
  16993. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16994. },
  16995. 189: {
  16996. Ffc: *(*struct {
  16997. Fcode [0]Tush
  16998. Ffreq Tush
  16999. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(379)})),
  17000. Fdl: *(*struct {
  17001. Flen1 [0]Tush
  17002. Fdad Tush
  17003. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17004. },
  17005. 190: {
  17006. Ffc: *(*struct {
  17007. Fcode [0]Tush
  17008. Ffreq Tush
  17009. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(251)})),
  17010. Fdl: *(*struct {
  17011. Flen1 [0]Tush
  17012. Fdad Tush
  17013. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17014. },
  17015. 191: {
  17016. Ffc: *(*struct {
  17017. Fcode [0]Tush
  17018. Ffreq Tush
  17019. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(507)})),
  17020. Fdl: *(*struct {
  17021. Flen1 [0]Tush
  17022. Fdad Tush
  17023. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17024. },
  17025. 192: {
  17026. Ffc: *(*struct {
  17027. Fcode [0]Tush
  17028. Ffreq Tush
  17029. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17030. Fdl: *(*struct {
  17031. Flen1 [0]Tush
  17032. Fdad Tush
  17033. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17034. },
  17035. 193: {
  17036. Ffc: *(*struct {
  17037. Fcode [0]Tush
  17038. Ffreq Tush
  17039. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(263)})),
  17040. Fdl: *(*struct {
  17041. Flen1 [0]Tush
  17042. Fdad Tush
  17043. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17044. },
  17045. 194: {
  17046. Ffc: *(*struct {
  17047. Fcode [0]Tush
  17048. Ffreq Tush
  17049. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(135)})),
  17050. Fdl: *(*struct {
  17051. Flen1 [0]Tush
  17052. Fdad Tush
  17053. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17054. },
  17055. 195: {
  17056. Ffc: *(*struct {
  17057. Fcode [0]Tush
  17058. Ffreq Tush
  17059. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(391)})),
  17060. Fdl: *(*struct {
  17061. Flen1 [0]Tush
  17062. Fdad Tush
  17063. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17064. },
  17065. 196: {
  17066. Ffc: *(*struct {
  17067. Fcode [0]Tush
  17068. Ffreq Tush
  17069. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(71)})),
  17070. Fdl: *(*struct {
  17071. Flen1 [0]Tush
  17072. Fdad Tush
  17073. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17074. },
  17075. 197: {
  17076. Ffc: *(*struct {
  17077. Fcode [0]Tush
  17078. Ffreq Tush
  17079. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(327)})),
  17080. Fdl: *(*struct {
  17081. Flen1 [0]Tush
  17082. Fdad Tush
  17083. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17084. },
  17085. 198: {
  17086. Ffc: *(*struct {
  17087. Fcode [0]Tush
  17088. Ffreq Tush
  17089. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(199)})),
  17090. Fdl: *(*struct {
  17091. Flen1 [0]Tush
  17092. Fdad Tush
  17093. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17094. },
  17095. 199: {
  17096. Ffc: *(*struct {
  17097. Fcode [0]Tush
  17098. Ffreq Tush
  17099. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(455)})),
  17100. Fdl: *(*struct {
  17101. Flen1 [0]Tush
  17102. Fdad Tush
  17103. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17104. },
  17105. 200: {
  17106. Ffc: *(*struct {
  17107. Fcode [0]Tush
  17108. Ffreq Tush
  17109. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(39)})),
  17110. Fdl: *(*struct {
  17111. Flen1 [0]Tush
  17112. Fdad Tush
  17113. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17114. },
  17115. 201: {
  17116. Ffc: *(*struct {
  17117. Fcode [0]Tush
  17118. Ffreq Tush
  17119. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(295)})),
  17120. Fdl: *(*struct {
  17121. Flen1 [0]Tush
  17122. Fdad Tush
  17123. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17124. },
  17125. 202: {
  17126. Ffc: *(*struct {
  17127. Fcode [0]Tush
  17128. Ffreq Tush
  17129. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(167)})),
  17130. Fdl: *(*struct {
  17131. Flen1 [0]Tush
  17132. Fdad Tush
  17133. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17134. },
  17135. 203: {
  17136. Ffc: *(*struct {
  17137. Fcode [0]Tush
  17138. Ffreq Tush
  17139. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(423)})),
  17140. Fdl: *(*struct {
  17141. Flen1 [0]Tush
  17142. Fdad Tush
  17143. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17144. },
  17145. 204: {
  17146. Ffc: *(*struct {
  17147. Fcode [0]Tush
  17148. Ffreq Tush
  17149. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(103)})),
  17150. Fdl: *(*struct {
  17151. Flen1 [0]Tush
  17152. Fdad Tush
  17153. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17154. },
  17155. 205: {
  17156. Ffc: *(*struct {
  17157. Fcode [0]Tush
  17158. Ffreq Tush
  17159. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(359)})),
  17160. Fdl: *(*struct {
  17161. Flen1 [0]Tush
  17162. Fdad Tush
  17163. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17164. },
  17165. 206: {
  17166. Ffc: *(*struct {
  17167. Fcode [0]Tush
  17168. Ffreq Tush
  17169. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(231)})),
  17170. Fdl: *(*struct {
  17171. Flen1 [0]Tush
  17172. Fdad Tush
  17173. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17174. },
  17175. 207: {
  17176. Ffc: *(*struct {
  17177. Fcode [0]Tush
  17178. Ffreq Tush
  17179. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(487)})),
  17180. Fdl: *(*struct {
  17181. Flen1 [0]Tush
  17182. Fdad Tush
  17183. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17184. },
  17185. 208: {
  17186. Ffc: *(*struct {
  17187. Fcode [0]Tush
  17188. Ffreq Tush
  17189. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(23)})),
  17190. Fdl: *(*struct {
  17191. Flen1 [0]Tush
  17192. Fdad Tush
  17193. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17194. },
  17195. 209: {
  17196. Ffc: *(*struct {
  17197. Fcode [0]Tush
  17198. Ffreq Tush
  17199. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(279)})),
  17200. Fdl: *(*struct {
  17201. Flen1 [0]Tush
  17202. Fdad Tush
  17203. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17204. },
  17205. 210: {
  17206. Ffc: *(*struct {
  17207. Fcode [0]Tush
  17208. Ffreq Tush
  17209. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(151)})),
  17210. Fdl: *(*struct {
  17211. Flen1 [0]Tush
  17212. Fdad Tush
  17213. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17214. },
  17215. 211: {
  17216. Ffc: *(*struct {
  17217. Fcode [0]Tush
  17218. Ffreq Tush
  17219. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(407)})),
  17220. Fdl: *(*struct {
  17221. Flen1 [0]Tush
  17222. Fdad Tush
  17223. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17224. },
  17225. 212: {
  17226. Ffc: *(*struct {
  17227. Fcode [0]Tush
  17228. Ffreq Tush
  17229. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(87)})),
  17230. Fdl: *(*struct {
  17231. Flen1 [0]Tush
  17232. Fdad Tush
  17233. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17234. },
  17235. 213: {
  17236. Ffc: *(*struct {
  17237. Fcode [0]Tush
  17238. Ffreq Tush
  17239. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(343)})),
  17240. Fdl: *(*struct {
  17241. Flen1 [0]Tush
  17242. Fdad Tush
  17243. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17244. },
  17245. 214: {
  17246. Ffc: *(*struct {
  17247. Fcode [0]Tush
  17248. Ffreq Tush
  17249. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(215)})),
  17250. Fdl: *(*struct {
  17251. Flen1 [0]Tush
  17252. Fdad Tush
  17253. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17254. },
  17255. 215: {
  17256. Ffc: *(*struct {
  17257. Fcode [0]Tush
  17258. Ffreq Tush
  17259. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(471)})),
  17260. Fdl: *(*struct {
  17261. Flen1 [0]Tush
  17262. Fdad Tush
  17263. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17264. },
  17265. 216: {
  17266. Ffc: *(*struct {
  17267. Fcode [0]Tush
  17268. Ffreq Tush
  17269. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(55)})),
  17270. Fdl: *(*struct {
  17271. Flen1 [0]Tush
  17272. Fdad Tush
  17273. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17274. },
  17275. 217: {
  17276. Ffc: *(*struct {
  17277. Fcode [0]Tush
  17278. Ffreq Tush
  17279. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(311)})),
  17280. Fdl: *(*struct {
  17281. Flen1 [0]Tush
  17282. Fdad Tush
  17283. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17284. },
  17285. 218: {
  17286. Ffc: *(*struct {
  17287. Fcode [0]Tush
  17288. Ffreq Tush
  17289. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(183)})),
  17290. Fdl: *(*struct {
  17291. Flen1 [0]Tush
  17292. Fdad Tush
  17293. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17294. },
  17295. 219: {
  17296. Ffc: *(*struct {
  17297. Fcode [0]Tush
  17298. Ffreq Tush
  17299. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(439)})),
  17300. Fdl: *(*struct {
  17301. Flen1 [0]Tush
  17302. Fdad Tush
  17303. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17304. },
  17305. 220: {
  17306. Ffc: *(*struct {
  17307. Fcode [0]Tush
  17308. Ffreq Tush
  17309. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(119)})),
  17310. Fdl: *(*struct {
  17311. Flen1 [0]Tush
  17312. Fdad Tush
  17313. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17314. },
  17315. 221: {
  17316. Ffc: *(*struct {
  17317. Fcode [0]Tush
  17318. Ffreq Tush
  17319. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(375)})),
  17320. Fdl: *(*struct {
  17321. Flen1 [0]Tush
  17322. Fdad Tush
  17323. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17324. },
  17325. 222: {
  17326. Ffc: *(*struct {
  17327. Fcode [0]Tush
  17328. Ffreq Tush
  17329. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(247)})),
  17330. Fdl: *(*struct {
  17331. Flen1 [0]Tush
  17332. Fdad Tush
  17333. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17334. },
  17335. 223: {
  17336. Ffc: *(*struct {
  17337. Fcode [0]Tush
  17338. Ffreq Tush
  17339. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(503)})),
  17340. Fdl: *(*struct {
  17341. Flen1 [0]Tush
  17342. Fdad Tush
  17343. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17344. },
  17345. 224: {
  17346. Ffc: *(*struct {
  17347. Fcode [0]Tush
  17348. Ffreq Tush
  17349. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(15)})),
  17350. Fdl: *(*struct {
  17351. Flen1 [0]Tush
  17352. Fdad Tush
  17353. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17354. },
  17355. 225: {
  17356. Ffc: *(*struct {
  17357. Fcode [0]Tush
  17358. Ffreq Tush
  17359. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(271)})),
  17360. Fdl: *(*struct {
  17361. Flen1 [0]Tush
  17362. Fdad Tush
  17363. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17364. },
  17365. 226: {
  17366. Ffc: *(*struct {
  17367. Fcode [0]Tush
  17368. Ffreq Tush
  17369. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(143)})),
  17370. Fdl: *(*struct {
  17371. Flen1 [0]Tush
  17372. Fdad Tush
  17373. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17374. },
  17375. 227: {
  17376. Ffc: *(*struct {
  17377. Fcode [0]Tush
  17378. Ffreq Tush
  17379. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(399)})),
  17380. Fdl: *(*struct {
  17381. Flen1 [0]Tush
  17382. Fdad Tush
  17383. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17384. },
  17385. 228: {
  17386. Ffc: *(*struct {
  17387. Fcode [0]Tush
  17388. Ffreq Tush
  17389. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(79)})),
  17390. Fdl: *(*struct {
  17391. Flen1 [0]Tush
  17392. Fdad Tush
  17393. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17394. },
  17395. 229: {
  17396. Ffc: *(*struct {
  17397. Fcode [0]Tush
  17398. Ffreq Tush
  17399. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(335)})),
  17400. Fdl: *(*struct {
  17401. Flen1 [0]Tush
  17402. Fdad Tush
  17403. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17404. },
  17405. 230: {
  17406. Ffc: *(*struct {
  17407. Fcode [0]Tush
  17408. Ffreq Tush
  17409. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(207)})),
  17410. Fdl: *(*struct {
  17411. Flen1 [0]Tush
  17412. Fdad Tush
  17413. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17414. },
  17415. 231: {
  17416. Ffc: *(*struct {
  17417. Fcode [0]Tush
  17418. Ffreq Tush
  17419. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(463)})),
  17420. Fdl: *(*struct {
  17421. Flen1 [0]Tush
  17422. Fdad Tush
  17423. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17424. },
  17425. 232: {
  17426. Ffc: *(*struct {
  17427. Fcode [0]Tush
  17428. Ffreq Tush
  17429. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(47)})),
  17430. Fdl: *(*struct {
  17431. Flen1 [0]Tush
  17432. Fdad Tush
  17433. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17434. },
  17435. 233: {
  17436. Ffc: *(*struct {
  17437. Fcode [0]Tush
  17438. Ffreq Tush
  17439. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(303)})),
  17440. Fdl: *(*struct {
  17441. Flen1 [0]Tush
  17442. Fdad Tush
  17443. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17444. },
  17445. 234: {
  17446. Ffc: *(*struct {
  17447. Fcode [0]Tush
  17448. Ffreq Tush
  17449. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(175)})),
  17450. Fdl: *(*struct {
  17451. Flen1 [0]Tush
  17452. Fdad Tush
  17453. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17454. },
  17455. 235: {
  17456. Ffc: *(*struct {
  17457. Fcode [0]Tush
  17458. Ffreq Tush
  17459. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(431)})),
  17460. Fdl: *(*struct {
  17461. Flen1 [0]Tush
  17462. Fdad Tush
  17463. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17464. },
  17465. 236: {
  17466. Ffc: *(*struct {
  17467. Fcode [0]Tush
  17468. Ffreq Tush
  17469. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(111)})),
  17470. Fdl: *(*struct {
  17471. Flen1 [0]Tush
  17472. Fdad Tush
  17473. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17474. },
  17475. 237: {
  17476. Ffc: *(*struct {
  17477. Fcode [0]Tush
  17478. Ffreq Tush
  17479. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(367)})),
  17480. Fdl: *(*struct {
  17481. Flen1 [0]Tush
  17482. Fdad Tush
  17483. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17484. },
  17485. 238: {
  17486. Ffc: *(*struct {
  17487. Fcode [0]Tush
  17488. Ffreq Tush
  17489. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(239)})),
  17490. Fdl: *(*struct {
  17491. Flen1 [0]Tush
  17492. Fdad Tush
  17493. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17494. },
  17495. 239: {
  17496. Ffc: *(*struct {
  17497. Fcode [0]Tush
  17498. Ffreq Tush
  17499. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(495)})),
  17500. Fdl: *(*struct {
  17501. Flen1 [0]Tush
  17502. Fdad Tush
  17503. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17504. },
  17505. 240: {
  17506. Ffc: *(*struct {
  17507. Fcode [0]Tush
  17508. Ffreq Tush
  17509. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(31)})),
  17510. Fdl: *(*struct {
  17511. Flen1 [0]Tush
  17512. Fdad Tush
  17513. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17514. },
  17515. 241: {
  17516. Ffc: *(*struct {
  17517. Fcode [0]Tush
  17518. Ffreq Tush
  17519. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(287)})),
  17520. Fdl: *(*struct {
  17521. Flen1 [0]Tush
  17522. Fdad Tush
  17523. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17524. },
  17525. 242: {
  17526. Ffc: *(*struct {
  17527. Fcode [0]Tush
  17528. Ffreq Tush
  17529. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(159)})),
  17530. Fdl: *(*struct {
  17531. Flen1 [0]Tush
  17532. Fdad Tush
  17533. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17534. },
  17535. 243: {
  17536. Ffc: *(*struct {
  17537. Fcode [0]Tush
  17538. Ffreq Tush
  17539. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(415)})),
  17540. Fdl: *(*struct {
  17541. Flen1 [0]Tush
  17542. Fdad Tush
  17543. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17544. },
  17545. 244: {
  17546. Ffc: *(*struct {
  17547. Fcode [0]Tush
  17548. Ffreq Tush
  17549. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(95)})),
  17550. Fdl: *(*struct {
  17551. Flen1 [0]Tush
  17552. Fdad Tush
  17553. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17554. },
  17555. 245: {
  17556. Ffc: *(*struct {
  17557. Fcode [0]Tush
  17558. Ffreq Tush
  17559. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(351)})),
  17560. Fdl: *(*struct {
  17561. Flen1 [0]Tush
  17562. Fdad Tush
  17563. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17564. },
  17565. 246: {
  17566. Ffc: *(*struct {
  17567. Fcode [0]Tush
  17568. Ffreq Tush
  17569. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(223)})),
  17570. Fdl: *(*struct {
  17571. Flen1 [0]Tush
  17572. Fdad Tush
  17573. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17574. },
  17575. 247: {
  17576. Ffc: *(*struct {
  17577. Fcode [0]Tush
  17578. Ffreq Tush
  17579. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(479)})),
  17580. Fdl: *(*struct {
  17581. Flen1 [0]Tush
  17582. Fdad Tush
  17583. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17584. },
  17585. 248: {
  17586. Ffc: *(*struct {
  17587. Fcode [0]Tush
  17588. Ffreq Tush
  17589. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(63)})),
  17590. Fdl: *(*struct {
  17591. Flen1 [0]Tush
  17592. Fdad Tush
  17593. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17594. },
  17595. 249: {
  17596. Ffc: *(*struct {
  17597. Fcode [0]Tush
  17598. Ffreq Tush
  17599. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(319)})),
  17600. Fdl: *(*struct {
  17601. Flen1 [0]Tush
  17602. Fdad Tush
  17603. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17604. },
  17605. 250: {
  17606. Ffc: *(*struct {
  17607. Fcode [0]Tush
  17608. Ffreq Tush
  17609. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(191)})),
  17610. Fdl: *(*struct {
  17611. Flen1 [0]Tush
  17612. Fdad Tush
  17613. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17614. },
  17615. 251: {
  17616. Ffc: *(*struct {
  17617. Fcode [0]Tush
  17618. Ffreq Tush
  17619. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(447)})),
  17620. Fdl: *(*struct {
  17621. Flen1 [0]Tush
  17622. Fdad Tush
  17623. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17624. },
  17625. 252: {
  17626. Ffc: *(*struct {
  17627. Fcode [0]Tush
  17628. Ffreq Tush
  17629. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(127)})),
  17630. Fdl: *(*struct {
  17631. Flen1 [0]Tush
  17632. Fdad Tush
  17633. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17634. },
  17635. 253: {
  17636. Ffc: *(*struct {
  17637. Fcode [0]Tush
  17638. Ffreq Tush
  17639. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(383)})),
  17640. Fdl: *(*struct {
  17641. Flen1 [0]Tush
  17642. Fdad Tush
  17643. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17644. },
  17645. 254: {
  17646. Ffc: *(*struct {
  17647. Fcode [0]Tush
  17648. Ffreq Tush
  17649. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(255)})),
  17650. Fdl: *(*struct {
  17651. Flen1 [0]Tush
  17652. Fdad Tush
  17653. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17654. },
  17655. 255: {
  17656. Ffc: *(*struct {
  17657. Fcode [0]Tush
  17658. Ffreq Tush
  17659. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(511)})),
  17660. Fdl: *(*struct {
  17661. Flen1 [0]Tush
  17662. Fdad Tush
  17663. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17664. },
  17665. 256: {
  17666. Fdl: *(*struct {
  17667. Flen1 [0]Tush
  17668. Fdad Tush
  17669. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17670. },
  17671. 257: {
  17672. Ffc: *(*struct {
  17673. Fcode [0]Tush
  17674. Ffreq Tush
  17675. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(64)})),
  17676. Fdl: *(*struct {
  17677. Flen1 [0]Tush
  17678. Fdad Tush
  17679. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17680. },
  17681. 258: {
  17682. Ffc: *(*struct {
  17683. Fcode [0]Tush
  17684. Ffreq Tush
  17685. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(32)})),
  17686. Fdl: *(*struct {
  17687. Flen1 [0]Tush
  17688. Fdad Tush
  17689. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17690. },
  17691. 259: {
  17692. Ffc: *(*struct {
  17693. Fcode [0]Tush
  17694. Ffreq Tush
  17695. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(96)})),
  17696. Fdl: *(*struct {
  17697. Flen1 [0]Tush
  17698. Fdad Tush
  17699. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17700. },
  17701. 260: {
  17702. Ffc: *(*struct {
  17703. Fcode [0]Tush
  17704. Ffreq Tush
  17705. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(16)})),
  17706. Fdl: *(*struct {
  17707. Flen1 [0]Tush
  17708. Fdad Tush
  17709. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17710. },
  17711. 261: {
  17712. Ffc: *(*struct {
  17713. Fcode [0]Tush
  17714. Ffreq Tush
  17715. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(80)})),
  17716. Fdl: *(*struct {
  17717. Flen1 [0]Tush
  17718. Fdad Tush
  17719. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17720. },
  17721. 262: {
  17722. Ffc: *(*struct {
  17723. Fcode [0]Tush
  17724. Ffreq Tush
  17725. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(48)})),
  17726. Fdl: *(*struct {
  17727. Flen1 [0]Tush
  17728. Fdad Tush
  17729. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17730. },
  17731. 263: {
  17732. Ffc: *(*struct {
  17733. Fcode [0]Tush
  17734. Ffreq Tush
  17735. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(112)})),
  17736. Fdl: *(*struct {
  17737. Flen1 [0]Tush
  17738. Fdad Tush
  17739. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17740. },
  17741. 264: {
  17742. Ffc: *(*struct {
  17743. Fcode [0]Tush
  17744. Ffreq Tush
  17745. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17746. Fdl: *(*struct {
  17747. Flen1 [0]Tush
  17748. Fdad Tush
  17749. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17750. },
  17751. 265: {
  17752. Ffc: *(*struct {
  17753. Fcode [0]Tush
  17754. Ffreq Tush
  17755. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(72)})),
  17756. Fdl: *(*struct {
  17757. Flen1 [0]Tush
  17758. Fdad Tush
  17759. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17760. },
  17761. 266: {
  17762. Ffc: *(*struct {
  17763. Fcode [0]Tush
  17764. Ffreq Tush
  17765. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(40)})),
  17766. Fdl: *(*struct {
  17767. Flen1 [0]Tush
  17768. Fdad Tush
  17769. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17770. },
  17771. 267: {
  17772. Ffc: *(*struct {
  17773. Fcode [0]Tush
  17774. Ffreq Tush
  17775. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(104)})),
  17776. Fdl: *(*struct {
  17777. Flen1 [0]Tush
  17778. Fdad Tush
  17779. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17780. },
  17781. 268: {
  17782. Ffc: *(*struct {
  17783. Fcode [0]Tush
  17784. Ffreq Tush
  17785. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(24)})),
  17786. Fdl: *(*struct {
  17787. Flen1 [0]Tush
  17788. Fdad Tush
  17789. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17790. },
  17791. 269: {
  17792. Ffc: *(*struct {
  17793. Fcode [0]Tush
  17794. Ffreq Tush
  17795. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(88)})),
  17796. Fdl: *(*struct {
  17797. Flen1 [0]Tush
  17798. Fdad Tush
  17799. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17800. },
  17801. 270: {
  17802. Ffc: *(*struct {
  17803. Fcode [0]Tush
  17804. Ffreq Tush
  17805. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(56)})),
  17806. Fdl: *(*struct {
  17807. Flen1 [0]Tush
  17808. Fdad Tush
  17809. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17810. },
  17811. 271: {
  17812. Ffc: *(*struct {
  17813. Fcode [0]Tush
  17814. Ffreq Tush
  17815. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(120)})),
  17816. Fdl: *(*struct {
  17817. Flen1 [0]Tush
  17818. Fdad Tush
  17819. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17820. },
  17821. 272: {
  17822. Ffc: *(*struct {
  17823. Fcode [0]Tush
  17824. Ffreq Tush
  17825. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(4)})),
  17826. Fdl: *(*struct {
  17827. Flen1 [0]Tush
  17828. Fdad Tush
  17829. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17830. },
  17831. 273: {
  17832. Ffc: *(*struct {
  17833. Fcode [0]Tush
  17834. Ffreq Tush
  17835. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(68)})),
  17836. Fdl: *(*struct {
  17837. Flen1 [0]Tush
  17838. Fdad Tush
  17839. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17840. },
  17841. 274: {
  17842. Ffc: *(*struct {
  17843. Fcode [0]Tush
  17844. Ffreq Tush
  17845. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(36)})),
  17846. Fdl: *(*struct {
  17847. Flen1 [0]Tush
  17848. Fdad Tush
  17849. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17850. },
  17851. 275: {
  17852. Ffc: *(*struct {
  17853. Fcode [0]Tush
  17854. Ffreq Tush
  17855. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(100)})),
  17856. Fdl: *(*struct {
  17857. Flen1 [0]Tush
  17858. Fdad Tush
  17859. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17860. },
  17861. 276: {
  17862. Ffc: *(*struct {
  17863. Fcode [0]Tush
  17864. Ffreq Tush
  17865. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(20)})),
  17866. Fdl: *(*struct {
  17867. Flen1 [0]Tush
  17868. Fdad Tush
  17869. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17870. },
  17871. 277: {
  17872. Ffc: *(*struct {
  17873. Fcode [0]Tush
  17874. Ffreq Tush
  17875. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(84)})),
  17876. Fdl: *(*struct {
  17877. Flen1 [0]Tush
  17878. Fdad Tush
  17879. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17880. },
  17881. 278: {
  17882. Ffc: *(*struct {
  17883. Fcode [0]Tush
  17884. Ffreq Tush
  17885. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(52)})),
  17886. Fdl: *(*struct {
  17887. Flen1 [0]Tush
  17888. Fdad Tush
  17889. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17890. },
  17891. 279: {
  17892. Ffc: *(*struct {
  17893. Fcode [0]Tush
  17894. Ffreq Tush
  17895. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(116)})),
  17896. Fdl: *(*struct {
  17897. Flen1 [0]Tush
  17898. Fdad Tush
  17899. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17900. },
  17901. 280: {
  17902. Ffc: *(*struct {
  17903. Fcode [0]Tush
  17904. Ffreq Tush
  17905. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(3)})),
  17906. Fdl: *(*struct {
  17907. Flen1 [0]Tush
  17908. Fdad Tush
  17909. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17910. },
  17911. 281: {
  17912. Ffc: *(*struct {
  17913. Fcode [0]Tush
  17914. Ffreq Tush
  17915. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(131)})),
  17916. Fdl: *(*struct {
  17917. Flen1 [0]Tush
  17918. Fdad Tush
  17919. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17920. },
  17921. 282: {
  17922. Ffc: *(*struct {
  17923. Fcode [0]Tush
  17924. Ffreq Tush
  17925. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(67)})),
  17926. Fdl: *(*struct {
  17927. Flen1 [0]Tush
  17928. Fdad Tush
  17929. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17930. },
  17931. 283: {
  17932. Ffc: *(*struct {
  17933. Fcode [0]Tush
  17934. Ffreq Tush
  17935. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(195)})),
  17936. Fdl: *(*struct {
  17937. Flen1 [0]Tush
  17938. Fdad Tush
  17939. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17940. },
  17941. 284: {
  17942. Ffc: *(*struct {
  17943. Fcode [0]Tush
  17944. Ffreq Tush
  17945. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(35)})),
  17946. Fdl: *(*struct {
  17947. Flen1 [0]Tush
  17948. Fdad Tush
  17949. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17950. },
  17951. 285: {
  17952. Ffc: *(*struct {
  17953. Fcode [0]Tush
  17954. Ffreq Tush
  17955. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(163)})),
  17956. Fdl: *(*struct {
  17957. Flen1 [0]Tush
  17958. Fdad Tush
  17959. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17960. },
  17961. 286: {
  17962. Ffc: *(*struct {
  17963. Fcode [0]Tush
  17964. Ffreq Tush
  17965. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(99)})),
  17966. Fdl: *(*struct {
  17967. Flen1 [0]Tush
  17968. Fdad Tush
  17969. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17970. },
  17971. 287: {
  17972. Ffc: *(*struct {
  17973. Fcode [0]Tush
  17974. Ffreq Tush
  17975. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(227)})),
  17976. Fdl: *(*struct {
  17977. Flen1 [0]Tush
  17978. Fdad Tush
  17979. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17980. },
  17981. }
  17982. var _static_dtree = [30]Tct_data{
  17983. 0: {
  17984. Fdl: *(*struct {
  17985. Flen1 [0]Tush
  17986. Fdad Tush
  17987. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17988. },
  17989. 1: {
  17990. Ffc: *(*struct {
  17991. Fcode [0]Tush
  17992. Ffreq Tush
  17993. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(16)})),
  17994. Fdl: *(*struct {
  17995. Flen1 [0]Tush
  17996. Fdad Tush
  17997. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17998. },
  17999. 2: {
  18000. Ffc: *(*struct {
  18001. Fcode [0]Tush
  18002. Ffreq Tush
  18003. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18004. Fdl: *(*struct {
  18005. Flen1 [0]Tush
  18006. Fdad Tush
  18007. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18008. },
  18009. 3: {
  18010. Ffc: *(*struct {
  18011. Fcode [0]Tush
  18012. Ffreq Tush
  18013. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(24)})),
  18014. Fdl: *(*struct {
  18015. Flen1 [0]Tush
  18016. Fdad Tush
  18017. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18018. },
  18019. 4: {
  18020. Ffc: *(*struct {
  18021. Fcode [0]Tush
  18022. Ffreq Tush
  18023. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(4)})),
  18024. Fdl: *(*struct {
  18025. Flen1 [0]Tush
  18026. Fdad Tush
  18027. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18028. },
  18029. 5: {
  18030. Ffc: *(*struct {
  18031. Fcode [0]Tush
  18032. Ffreq Tush
  18033. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(20)})),
  18034. Fdl: *(*struct {
  18035. Flen1 [0]Tush
  18036. Fdad Tush
  18037. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18038. },
  18039. 6: {
  18040. Ffc: *(*struct {
  18041. Fcode [0]Tush
  18042. Ffreq Tush
  18043. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(12)})),
  18044. Fdl: *(*struct {
  18045. Flen1 [0]Tush
  18046. Fdad Tush
  18047. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18048. },
  18049. 7: {
  18050. Ffc: *(*struct {
  18051. Fcode [0]Tush
  18052. Ffreq Tush
  18053. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(28)})),
  18054. Fdl: *(*struct {
  18055. Flen1 [0]Tush
  18056. Fdad Tush
  18057. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18058. },
  18059. 8: {
  18060. Ffc: *(*struct {
  18061. Fcode [0]Tush
  18062. Ffreq Tush
  18063. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(2)})),
  18064. Fdl: *(*struct {
  18065. Flen1 [0]Tush
  18066. Fdad Tush
  18067. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18068. },
  18069. 9: {
  18070. Ffc: *(*struct {
  18071. Fcode [0]Tush
  18072. Ffreq Tush
  18073. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(18)})),
  18074. Fdl: *(*struct {
  18075. Flen1 [0]Tush
  18076. Fdad Tush
  18077. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18078. },
  18079. 10: {
  18080. Ffc: *(*struct {
  18081. Fcode [0]Tush
  18082. Ffreq Tush
  18083. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(10)})),
  18084. Fdl: *(*struct {
  18085. Flen1 [0]Tush
  18086. Fdad Tush
  18087. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18088. },
  18089. 11: {
  18090. Ffc: *(*struct {
  18091. Fcode [0]Tush
  18092. Ffreq Tush
  18093. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(26)})),
  18094. Fdl: *(*struct {
  18095. Flen1 [0]Tush
  18096. Fdad Tush
  18097. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18098. },
  18099. 12: {
  18100. Ffc: *(*struct {
  18101. Fcode [0]Tush
  18102. Ffreq Tush
  18103. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(6)})),
  18104. Fdl: *(*struct {
  18105. Flen1 [0]Tush
  18106. Fdad Tush
  18107. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18108. },
  18109. 13: {
  18110. Ffc: *(*struct {
  18111. Fcode [0]Tush
  18112. Ffreq Tush
  18113. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(22)})),
  18114. Fdl: *(*struct {
  18115. Flen1 [0]Tush
  18116. Fdad Tush
  18117. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18118. },
  18119. 14: {
  18120. Ffc: *(*struct {
  18121. Fcode [0]Tush
  18122. Ffreq Tush
  18123. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(14)})),
  18124. Fdl: *(*struct {
  18125. Flen1 [0]Tush
  18126. Fdad Tush
  18127. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18128. },
  18129. 15: {
  18130. Ffc: *(*struct {
  18131. Fcode [0]Tush
  18132. Ffreq Tush
  18133. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(30)})),
  18134. Fdl: *(*struct {
  18135. Flen1 [0]Tush
  18136. Fdad Tush
  18137. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18138. },
  18139. 16: {
  18140. Ffc: *(*struct {
  18141. Fcode [0]Tush
  18142. Ffreq Tush
  18143. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(1)})),
  18144. Fdl: *(*struct {
  18145. Flen1 [0]Tush
  18146. Fdad Tush
  18147. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18148. },
  18149. 17: {
  18150. Ffc: *(*struct {
  18151. Fcode [0]Tush
  18152. Ffreq Tush
  18153. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(17)})),
  18154. Fdl: *(*struct {
  18155. Flen1 [0]Tush
  18156. Fdad Tush
  18157. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18158. },
  18159. 18: {
  18160. Ffc: *(*struct {
  18161. Fcode [0]Tush
  18162. Ffreq Tush
  18163. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18164. Fdl: *(*struct {
  18165. Flen1 [0]Tush
  18166. Fdad Tush
  18167. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18168. },
  18169. 19: {
  18170. Ffc: *(*struct {
  18171. Fcode [0]Tush
  18172. Ffreq Tush
  18173. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(25)})),
  18174. Fdl: *(*struct {
  18175. Flen1 [0]Tush
  18176. Fdad Tush
  18177. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18178. },
  18179. 20: {
  18180. Ffc: *(*struct {
  18181. Fcode [0]Tush
  18182. Ffreq Tush
  18183. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18184. Fdl: *(*struct {
  18185. Flen1 [0]Tush
  18186. Fdad Tush
  18187. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18188. },
  18189. 21: {
  18190. Ffc: *(*struct {
  18191. Fcode [0]Tush
  18192. Ffreq Tush
  18193. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(21)})),
  18194. Fdl: *(*struct {
  18195. Flen1 [0]Tush
  18196. Fdad Tush
  18197. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18198. },
  18199. 22: {
  18200. Ffc: *(*struct {
  18201. Fcode [0]Tush
  18202. Ffreq Tush
  18203. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(13)})),
  18204. Fdl: *(*struct {
  18205. Flen1 [0]Tush
  18206. Fdad Tush
  18207. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18208. },
  18209. 23: {
  18210. Ffc: *(*struct {
  18211. Fcode [0]Tush
  18212. Ffreq Tush
  18213. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(29)})),
  18214. Fdl: *(*struct {
  18215. Flen1 [0]Tush
  18216. Fdad Tush
  18217. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18218. },
  18219. 24: {
  18220. Ffc: *(*struct {
  18221. Fcode [0]Tush
  18222. Ffreq Tush
  18223. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(3)})),
  18224. Fdl: *(*struct {
  18225. Flen1 [0]Tush
  18226. Fdad Tush
  18227. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18228. },
  18229. 25: {
  18230. Ffc: *(*struct {
  18231. Fcode [0]Tush
  18232. Ffreq Tush
  18233. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(19)})),
  18234. Fdl: *(*struct {
  18235. Flen1 [0]Tush
  18236. Fdad Tush
  18237. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18238. },
  18239. 26: {
  18240. Ffc: *(*struct {
  18241. Fcode [0]Tush
  18242. Ffreq Tush
  18243. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(11)})),
  18244. Fdl: *(*struct {
  18245. Flen1 [0]Tush
  18246. Fdad Tush
  18247. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18248. },
  18249. 27: {
  18250. Ffc: *(*struct {
  18251. Fcode [0]Tush
  18252. Ffreq Tush
  18253. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(27)})),
  18254. Fdl: *(*struct {
  18255. Flen1 [0]Tush
  18256. Fdad Tush
  18257. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18258. },
  18259. 28: {
  18260. Ffc: *(*struct {
  18261. Fcode [0]Tush
  18262. Ffreq Tush
  18263. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  18264. Fdl: *(*struct {
  18265. Flen1 [0]Tush
  18266. Fdad Tush
  18267. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18268. },
  18269. 29: {
  18270. Ffc: *(*struct {
  18271. Fcode [0]Tush
  18272. Ffreq Tush
  18273. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(23)})),
  18274. Fdl: *(*struct {
  18275. Flen1 [0]Tush
  18276. Fdad Tush
  18277. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18278. },
  18279. }
  18280. var _base_length = [29]int32{
  18281. 1: int32(1),
  18282. 2: int32(2),
  18283. 3: int32(3),
  18284. 4: int32(4),
  18285. 5: int32(5),
  18286. 6: int32(6),
  18287. 7: int32(7),
  18288. 8: int32(8),
  18289. 9: int32(10),
  18290. 10: int32(12),
  18291. 11: int32(14),
  18292. 12: int32(16),
  18293. 13: int32(20),
  18294. 14: int32(24),
  18295. 15: int32(28),
  18296. 16: int32(32),
  18297. 17: int32(40),
  18298. 18: int32(48),
  18299. 19: int32(56),
  18300. 20: int32(64),
  18301. 21: int32(80),
  18302. 22: int32(96),
  18303. 23: int32(112),
  18304. 24: int32(128),
  18305. 25: int32(160),
  18306. 26: int32(192),
  18307. 27: int32(224),
  18308. }
  18309. var _base_dist = [30]int32{
  18310. 1: int32(1),
  18311. 2: int32(2),
  18312. 3: int32(3),
  18313. 4: int32(4),
  18314. 5: int32(6),
  18315. 6: int32(8),
  18316. 7: int32(12),
  18317. 8: int32(16),
  18318. 9: int32(24),
  18319. 10: int32(32),
  18320. 11: int32(48),
  18321. 12: int32(64),
  18322. 13: int32(96),
  18323. 14: int32(128),
  18324. 15: int32(192),
  18325. 16: int32(256),
  18326. 17: int32(384),
  18327. 18: int32(512),
  18328. 19: int32(768),
  18329. 20: int32(1024),
  18330. 21: int32(1536),
  18331. 22: int32(2048),
  18332. 23: int32(3072),
  18333. 24: int32(4096),
  18334. 25: int32(6144),
  18335. 26: int32(8192),
  18336. 27: int32(12288),
  18337. 28: int32(16384),
  18338. 29: int32(24576),
  18339. }
  18340. var _static_l_desc = Tstatic_tree_desc{
  18341. Fstatic_tree: uintptr(unsafe.Pointer(&_static_ltree)),
  18342. Fextra_bits: uintptr(unsafe.Pointer(&_extra_lbits)),
  18343. Fextra_base: libc.Int32FromInt32(m_LITERALS) + libc.Int32FromInt32(1),
  18344. Felems: libc.Int32FromInt32(m_LITERALS) + libc.Int32FromInt32(1) + libc.Int32FromInt32(m_LENGTH_CODES),
  18345. Fmax_length: int32(m_MAX_BITS),
  18346. }
  18347. var _static_d_desc = Tstatic_tree_desc{
  18348. Fstatic_tree: uintptr(unsafe.Pointer(&_static_dtree)),
  18349. Fextra_bits: uintptr(unsafe.Pointer(&_extra_dbits)),
  18350. Felems: int32(m_D_CODES),
  18351. Fmax_length: int32(m_MAX_BITS),
  18352. }
  18353. var _static_bl_desc = Tstatic_tree_desc{
  18354. Fextra_bits: uintptr(unsafe.Pointer(&_extra_blbits)),
  18355. Felems: int32(m_BL_CODES),
  18356. Fmax_length: int32(m_MAX_BL_BITS),
  18357. }
  18358. /* ===========================================================================
  18359. * Output a short LSB first on the stream.
  18360. * IN assertion: there is enough room in pendingBuf.
  18361. */
  18362. // C documentation
  18363. //
  18364. // /* ===========================================================================
  18365. // * Reverse the first len bits of a code, using straightforward code (a faster
  18366. // * method would use a table)
  18367. // * IN assertion: 1 <= len <= 15
  18368. // */
  18369. func _bi_reverse(tls *libc.TLS, code uint32, len1 int32) (r uint32) {
  18370. var res uint32
  18371. var v1 int32
  18372. _, _ = res, v1
  18373. res = uint32(0)
  18374. for {
  18375. res |= code & uint32(1)
  18376. code >>= uint32(1)
  18377. res <<= uint32(1)
  18378. goto _2
  18379. _2:
  18380. ;
  18381. len1--
  18382. v1 = len1
  18383. if !(v1 > 0) {
  18384. break
  18385. }
  18386. }
  18387. return res >> int32(1)
  18388. }
  18389. // C documentation
  18390. //
  18391. // /* ===========================================================================
  18392. // * Flush the bit buffer, keeping at most 7 bits in it.
  18393. // */
  18394. func _bi_flush(tls *libc.TLS, s uintptr) {
  18395. var v1, v3, v5 Tulg
  18396. var v2, v4, v6, p7 uintptr
  18397. _, _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6, p7
  18398. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid == int32(16) {
  18399. v2 = s + 40
  18400. v1 = *(*Tulg)(unsafe.Pointer(v2))
  18401. *(*Tulg)(unsafe.Pointer(v2))++
  18402. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  18403. v4 = s + 40
  18404. v3 = *(*Tulg)(unsafe.Pointer(v4))
  18405. *(*Tulg)(unsafe.Pointer(v4))++
  18406. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  18407. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  18408. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  18409. } else {
  18410. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid >= int32(8) {
  18411. v6 = s + 40
  18412. v5 = *(*Tulg)(unsafe.Pointer(v6))
  18413. *(*Tulg)(unsafe.Pointer(v6))++
  18414. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf)
  18415. p7 = s + 5936
  18416. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) >> libc.Int32FromInt32(8))
  18417. *(*int32)(unsafe.Pointer(s + 5940)) -= int32(8)
  18418. }
  18419. }
  18420. }
  18421. // C documentation
  18422. //
  18423. // /* ===========================================================================
  18424. // * Flush the bit buffer and align the output on a byte boundary
  18425. // */
  18426. func _bi_windup(tls *libc.TLS, s uintptr) {
  18427. var v1, v3, v5 Tulg
  18428. var v2, v4, v6 uintptr
  18429. _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6
  18430. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > int32(8) {
  18431. v2 = s + 40
  18432. v1 = *(*Tulg)(unsafe.Pointer(v2))
  18433. *(*Tulg)(unsafe.Pointer(v2))++
  18434. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  18435. v4 = s + 40
  18436. v3 = *(*Tulg)(unsafe.Pointer(v4))
  18437. *(*Tulg)(unsafe.Pointer(v4))++
  18438. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  18439. } else {
  18440. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > 0 {
  18441. v6 = s + 40
  18442. v5 = *(*Tulg)(unsafe.Pointer(v6))
  18443. *(*Tulg)(unsafe.Pointer(v6))++
  18444. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf)
  18445. }
  18446. }
  18447. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  18448. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  18449. }
  18450. // C documentation
  18451. //
  18452. // /* ===========================================================================
  18453. // * Generate the codes for a given tree and bit counts (which need not be
  18454. // * optimal).
  18455. // * IN assertion: the array bl_count contains the bit length statistics for
  18456. // * the given tree and the field len is set for all tree elements.
  18457. // * OUT assertion: the field code is set for all tree elements of non
  18458. // * zero code length.
  18459. // */
  18460. func _gen_codes(tls *libc.TLS, tree uintptr, max_code int32, bl_count uintptr) {
  18461. bp := tls.Alloc(32)
  18462. defer tls.Free(32)
  18463. var bits, len1, n int32
  18464. var code uint32
  18465. var v3 Tush
  18466. var v4 uintptr
  18467. var _ /* next_code at bp+0 */ [16]Tush
  18468. _, _, _, _, _, _ = bits, code, len1, n, v3, v4 /* next code value for each bit length */
  18469. code = uint32(0) /* code index */
  18470. /* The distribution counts are first used to generate the code values
  18471. * without bit reversal.
  18472. */
  18473. bits = int32(1)
  18474. for {
  18475. if !(bits <= int32(m_MAX_BITS)) {
  18476. break
  18477. }
  18478. code = (code + uint32(*(*Tushf)(unsafe.Pointer(bl_count + uintptr(bits-int32(1))*2)))) << int32(1)
  18479. (*(*[16]Tush)(unsafe.Pointer(bp)))[bits] = uint16(code)
  18480. goto _1
  18481. _1:
  18482. ;
  18483. bits++
  18484. }
  18485. /* Check that the bit counts in bl_count are consistent. The last code
  18486. * must be all ones.
  18487. */
  18488. n = 0
  18489. for {
  18490. if !(n <= max_code) {
  18491. break
  18492. }
  18493. len1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)))
  18494. if len1 == 0 {
  18495. goto _2
  18496. }
  18497. /* Now reverse the bits */
  18498. v4 = bp + uintptr(len1)*2
  18499. v3 = *(*Tush)(unsafe.Pointer(v4))
  18500. *(*Tush)(unsafe.Pointer(v4))++
  18501. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4)) = uint16(_bi_reverse(tls, uint32(v3), len1))
  18502. goto _2
  18503. _2:
  18504. ;
  18505. n++
  18506. }
  18507. }
  18508. /* Send a code of the given tree. c and tree must not have side effects */
  18509. /* ===========================================================================
  18510. * Send a value on a given number of bits.
  18511. * IN assertion: length <= 16 and value fits in length bits.
  18512. */
  18513. /* the arguments must not have side effects */
  18514. // C documentation
  18515. //
  18516. // /* ===========================================================================
  18517. // * Initialize the various 'constant' tables.
  18518. // */
  18519. func _tr_static_init(tls *libc.TLS) {
  18520. }
  18521. /* ===========================================================================
  18522. * Generate the file trees.h describing the static trees.
  18523. */
  18524. // C documentation
  18525. //
  18526. // /* ===========================================================================
  18527. // * Initialize a new block.
  18528. // */
  18529. func _init_block(tls *libc.TLS, s uintptr) {
  18530. var n int32
  18531. var v4 Tulg
  18532. var v5 TuInt
  18533. _, _, _ = n, v4, v5 /* iterates over tree elements */
  18534. /* Initialize the trees. */
  18535. n = 0
  18536. for {
  18537. if !(n < libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES)) {
  18538. break
  18539. }
  18540. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(n)*4)) = uint16(0)
  18541. goto _1
  18542. _1:
  18543. ;
  18544. n++
  18545. }
  18546. n = 0
  18547. for {
  18548. if !(n < int32(m_D_CODES)) {
  18549. break
  18550. }
  18551. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(n)*4)) = uint16(0)
  18552. goto _2
  18553. _2:
  18554. ;
  18555. n++
  18556. }
  18557. n = 0
  18558. for {
  18559. if !(n < int32(m_BL_CODES)) {
  18560. break
  18561. }
  18562. *(*Tush)(unsafe.Pointer(s + 2748 + uintptr(n)*4)) = uint16(0)
  18563. goto _3
  18564. _3:
  18565. ;
  18566. n++
  18567. }
  18568. *(*Tush)(unsafe.Pointer(s + 212 + 256*4)) = uint16(1)
  18569. v4 = libc.Uint64FromInt64(0)
  18570. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatic_len = v4
  18571. (*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len = v4
  18572. v5 = libc.Uint32FromInt32(0)
  18573. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = v5
  18574. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next = v5
  18575. }
  18576. // C documentation
  18577. //
  18578. // /* ===========================================================================
  18579. // * Initialize the tree data structures for a new zlib stream.
  18580. // */
  18581. func x__tr_init(tls *libc.TLS, s uintptr) {
  18582. _tr_static_init(tls)
  18583. (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fdyn_tree = s + 212
  18584. (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_l_desc))
  18585. (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fdyn_tree = s + 2504
  18586. (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_d_desc))
  18587. (*Tdeflate_state)(unsafe.Pointer(s)).Fbl_desc.Fdyn_tree = s + 2748
  18588. (*Tdeflate_state)(unsafe.Pointer(s)).Fbl_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_bl_desc))
  18589. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  18590. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  18591. /* Initialize the first block of the first file: */
  18592. _init_block(tls, s)
  18593. }
  18594. /* Index within the heap array of least frequent node in the Huffman tree */
  18595. /* ===========================================================================
  18596. * Remove the smallest element from the heap and recreate the heap with
  18597. * one less element. Updates heap and heap_len.
  18598. */
  18599. /* ===========================================================================
  18600. * Compares to subtrees, using the tree depth as tie breaker when
  18601. * the subtrees have equal frequency. This minimizes the worst case length.
  18602. */
  18603. // C documentation
  18604. //
  18605. // /* ===========================================================================
  18606. // * Restore the heap property by moving down the tree starting at node k,
  18607. // * exchanging a node with the smallest of its two sons if necessary, stopping
  18608. // * when the heap property is re-established (each father smaller than its
  18609. // * two sons).
  18610. // */
  18611. func _pqdownheap(tls *libc.TLS, s uintptr, tree uintptr, k int32) {
  18612. var j, v int32
  18613. _, _ = j, v
  18614. v = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(k)*4))
  18615. j = k << int32(1) /* left son of k */
  18616. for j <= (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len {
  18617. /* Set j to the smallest of the two sons: */
  18618. if j < (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len && (libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j+int32(1))*4)))*4))) < libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) || libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j+int32(1))*4)))*4))) == libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) && libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j+int32(1))*4)))))) <= libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4))))))) {
  18619. j++
  18620. }
  18621. /* Exit if v is smaller than both sons */
  18622. if libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(v)*4))) < libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) || libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(v)*4))) == libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) && libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(v)))) <= libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))))) {
  18623. break
  18624. }
  18625. /* Exchange v with the smallest son */
  18626. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(k)*4)) = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4))
  18627. k = j
  18628. /* And continue down the tree, setting j to the left son of k */
  18629. j <<= int32(1)
  18630. }
  18631. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(k)*4)) = v
  18632. }
  18633. // C documentation
  18634. //
  18635. // /* ===========================================================================
  18636. // * Compute the optimal bit lengths for a tree and update the total bit length
  18637. // * for the current block.
  18638. // * IN assertion: the fields freq and dad are set, heap[heap_max] and
  18639. // * above are the tree nodes sorted by increasing frequency.
  18640. // * OUT assertions: the field len is set to the optimal bit length, the
  18641. // * array bl_count contains the frequencies for each bit length.
  18642. // * The length opt_len is updated; static_len is also updated if stree is
  18643. // * not null.
  18644. // */
  18645. func _gen_bitlen(tls *libc.TLS, s uintptr, desc uintptr) {
  18646. var base, bits, h, m, max_code, max_length, n, overflow, xbits, v5 int32
  18647. var extra, stree, tree, p3 uintptr
  18648. var f Tush
  18649. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = base, bits, extra, f, h, m, max_code, max_length, n, overflow, stree, tree, xbits, v5, p3
  18650. tree = (*Ttree_desc)(unsafe.Pointer(desc)).Fdyn_tree
  18651. max_code = (*Ttree_desc)(unsafe.Pointer(desc)).Fmax_code
  18652. stree = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fstatic_tree
  18653. extra = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fextra_bits
  18654. base = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fextra_base
  18655. max_length = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fmax_length /* frequency */
  18656. overflow = 0 /* number of elements with bit length too large */
  18657. bits = 0
  18658. for {
  18659. if !(bits <= int32(m_MAX_BITS)) {
  18660. break
  18661. }
  18662. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2)) = uint16(0)
  18663. goto _1
  18664. _1:
  18665. ;
  18666. bits++
  18667. }
  18668. /* In a first pass, compute the optimal bit lengths (which may
  18669. * overflow in the case of the bit length tree).
  18670. */
  18671. *(*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 */
  18672. h = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_max + int32(1)
  18673. for {
  18674. if !(h < libc.Int32FromInt32(2)*(libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES))+libc.Int32FromInt32(1)) {
  18675. break
  18676. }
  18677. n = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(h)*4))
  18678. bits = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)))*4 + 2))) + int32(1)
  18679. if bits > max_length {
  18680. bits = max_length
  18681. overflow++
  18682. }
  18683. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = libc.Uint16FromInt32(bits)
  18684. /* We overwrite tree[n].Dad which is no longer needed */
  18685. if n > max_code {
  18686. goto _2
  18687. } /* not a leaf node */
  18688. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2))++
  18689. xbits = 0
  18690. if n >= base {
  18691. xbits = *(*Tintf)(unsafe.Pointer(extra + uintptr(n-base)*4))
  18692. }
  18693. f = *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))
  18694. *(*Tulg)(unsafe.Pointer(s + 5912)) += uint64(f) * uint64(libc.Uint32FromInt32(bits+xbits))
  18695. if stree != 0 {
  18696. *(*Tulg)(unsafe.Pointer(s + 5920)) += uint64(f) * uint64(libc.Uint32FromInt32(libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(stree + uintptr(n)*4 + 2)))+xbits))
  18697. }
  18698. goto _2
  18699. _2:
  18700. ;
  18701. h++
  18702. }
  18703. if overflow == 0 {
  18704. return
  18705. }
  18706. /* This happens for example on obj2 and pic of the Calgary corpus */
  18707. /* Find the first bit length which could increase: */
  18708. for cond := true; cond; cond = overflow > 0 {
  18709. bits = max_length - int32(1)
  18710. for libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2))) == 0 {
  18711. bits--
  18712. }
  18713. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2))-- /* move one leaf down the tree */
  18714. p3 = s + 2976 + uintptr(bits+int32(1))*2
  18715. *(*Tush)(unsafe.Pointer(p3)) = Tush(int32(*(*Tush)(unsafe.Pointer(p3))) + libc.Int32FromInt32(2)) /* move one overflow item as its brother */
  18716. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(max_length)*2))--
  18717. /* The brother of the overflow item also moves one step up,
  18718. * but this does not affect bl_count[max_length]
  18719. */
  18720. overflow -= int32(2)
  18721. }
  18722. /* Now recompute all bit lengths, scanning in increasing frequency.
  18723. * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
  18724. * lengths instead of fixing only the wrong ones. This idea is taken
  18725. * from 'ar' written by Haruhiko Okumura.)
  18726. */
  18727. bits = max_length
  18728. for {
  18729. if !(bits != 0) {
  18730. break
  18731. }
  18732. n = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2)))
  18733. for n != 0 {
  18734. h--
  18735. v5 = h
  18736. m = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v5)*4))
  18737. if m > max_code {
  18738. continue
  18739. }
  18740. if uint32(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2))) != libc.Uint32FromInt32(bits) {
  18741. *(*Tulg)(unsafe.Pointer(s + 5912)) += (libc.Uint64FromInt32(bits) - uint64(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)))) * uint64(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4)))
  18742. *(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)) = libc.Uint16FromInt32(bits)
  18743. }
  18744. n--
  18745. }
  18746. goto _4
  18747. _4:
  18748. ;
  18749. bits--
  18750. }
  18751. }
  18752. // C documentation
  18753. //
  18754. // /* ===========================================================================
  18755. // * Construct one Huffman tree and assigns the code bit strings and lengths.
  18756. // * Update the total bit length for the current block.
  18757. // * IN assertion: the field freq is set for all tree elements.
  18758. // * OUT assertions: the fields len and code are set to the optimal bit length
  18759. // * and corresponding code. The length opt_len is updated; static_len is
  18760. // * also updated if stree is not null. The field max_code is set.
  18761. // */
  18762. func _build_tree(tls *libc.TLS, s uintptr, desc uintptr) {
  18763. var elems, m, max_code, n, node, v11, v13, v15, v17, v19, v2, v20, v4, v5, v6, v7, v8 int32
  18764. var stree, tree, v12, v14, v16, v21, v3, v9 uintptr
  18765. var v18 Tush
  18766. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  18767. tree = (*Ttree_desc)(unsafe.Pointer(desc)).Fdyn_tree
  18768. stree = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fstatic_tree
  18769. elems = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Felems /* iterate over heap elements */
  18770. max_code = -int32(1) /* new node being created */
  18771. /* Construct the initial heap, with least frequent element in
  18772. * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n + 1].
  18773. * heap[0] is not used.
  18774. */
  18775. (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len = 0 /* new node being created */
  18776. /* Construct the initial heap, with least frequent element in
  18777. * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n + 1].
  18778. * heap[0] is not used.
  18779. */
  18780. (*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)
  18781. n = 0
  18782. for {
  18783. if !(n < elems) {
  18784. break
  18785. }
  18786. if libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))) != 0 {
  18787. v3 = s + 5300
  18788. *(*int32)(unsafe.Pointer(v3))++
  18789. v2 = *(*int32)(unsafe.Pointer(v3))
  18790. v4 = n
  18791. max_code = v4
  18792. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v2)*4)) = v4
  18793. *(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(n))) = uint8(0)
  18794. } else {
  18795. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = uint16(0)
  18796. }
  18797. goto _1
  18798. _1:
  18799. ;
  18800. n++
  18801. }
  18802. /* The pkzip format requires that at least one distance code exists,
  18803. * and that at least one bit should be sent even if there is only one
  18804. * possible code. So to avoid special checks later on we force at least
  18805. * two codes of non zero frequency.
  18806. */
  18807. for (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len < int32(2) {
  18808. if max_code < int32(2) {
  18809. max_code++
  18810. v7 = max_code
  18811. v6 = v7
  18812. } else {
  18813. v6 = 0
  18814. }
  18815. v5 = v6
  18816. v9 = s + 5300
  18817. *(*int32)(unsafe.Pointer(v9))++
  18818. v8 = *(*int32)(unsafe.Pointer(v9))
  18819. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v8)*4)) = v5
  18820. node = v5
  18821. *(*Tush)(unsafe.Pointer(tree + uintptr(node)*4)) = uint16(1)
  18822. *(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(node))) = uint8(0)
  18823. (*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len--
  18824. if stree != 0 {
  18825. *(*Tulg)(unsafe.Pointer(s + 5920)) -= uint64(*(*Tush)(unsafe.Pointer(stree + uintptr(node)*4 + 2)))
  18826. }
  18827. /* node is 0 or 1 so it does not have extra bits */
  18828. }
  18829. (*Ttree_desc)(unsafe.Pointer(desc)).Fmax_code = max_code
  18830. /* The elements heap[heap_len/2 + 1 .. heap_len] are leaves of the tree,
  18831. * establish sub-heaps of increasing lengths:
  18832. */
  18833. n = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len / int32(2)
  18834. for {
  18835. if !(n >= int32(1)) {
  18836. break
  18837. }
  18838. _pqdownheap(tls, s, tree, n)
  18839. goto _10
  18840. _10:
  18841. ;
  18842. n--
  18843. }
  18844. /* Construct the Huffman tree by repeatedly combining the least two
  18845. * frequent nodes.
  18846. */
  18847. node = elems /* next internal node of the tree */
  18848. for cond := true; cond; cond = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len >= int32(2) {
  18849. n = *(*int32)(unsafe.Pointer(s + 3008 + 1*4))
  18850. v12 = s + 5300
  18851. v11 = *(*int32)(unsafe.Pointer(v12))
  18852. *(*int32)(unsafe.Pointer(v12))--
  18853. *(*int32)(unsafe.Pointer(s + 3008 + 1*4)) = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v11)*4))
  18854. _pqdownheap(tls, s, tree, int32(m_SMALLEST)) /* n = node of least frequency */
  18855. m = *(*int32)(unsafe.Pointer(s + 3008 + 1*4)) /* m = node of next least frequency */
  18856. v14 = s + 5304
  18857. *(*int32)(unsafe.Pointer(v14))--
  18858. v13 = *(*int32)(unsafe.Pointer(v14))
  18859. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v13)*4)) = n /* keep the nodes sorted by frequency */
  18860. v16 = s + 5304
  18861. *(*int32)(unsafe.Pointer(v16))--
  18862. v15 = *(*int32)(unsafe.Pointer(v16))
  18863. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v15)*4)) = m
  18864. /* Create a new node father of n and m */
  18865. *(*Tush)(unsafe.Pointer(tree + uintptr(node)*4)) = libc.Uint16FromInt32(libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))) + libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4))))
  18866. if libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(n)))) >= libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(m)))) {
  18867. v17 = libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(n))))
  18868. } else {
  18869. v17 = libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(m))))
  18870. }
  18871. *(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(node))) = libc.Uint8FromInt32(v17 + libc.Int32FromInt32(1))
  18872. v18 = libc.Uint16FromInt32(node)
  18873. *(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)) = v18
  18874. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = v18
  18875. /* and insert the new node in the heap */
  18876. v19 = node
  18877. node++
  18878. *(*int32)(unsafe.Pointer(s + 3008 + 1*4)) = v19
  18879. _pqdownheap(tls, s, tree, int32(m_SMALLEST))
  18880. }
  18881. v21 = s + 5304
  18882. *(*int32)(unsafe.Pointer(v21))--
  18883. v20 = *(*int32)(unsafe.Pointer(v21))
  18884. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v20)*4)) = *(*int32)(unsafe.Pointer(s + 3008 + 1*4))
  18885. /* At this point, the fields freq and dad are set. We can now
  18886. * generate the bit lengths.
  18887. */
  18888. _gen_bitlen(tls, s, desc)
  18889. /* The field len is now set, we can generate the bit codes */
  18890. _gen_codes(tls, tree, max_code, s+2976)
  18891. }
  18892. // C documentation
  18893. //
  18894. // /* ===========================================================================
  18895. // * Scan a literal or distance tree to determine the frequencies of the codes
  18896. // * in the bit length tree.
  18897. // */
  18898. func _scan_tree(tls *libc.TLS, s uintptr, tree uintptr, max_code int32) {
  18899. var count, curlen, max_count, min_count, n, nextlen, prevlen, v2 int32
  18900. var p3 uintptr
  18901. _, _, _, _, _, _, _, _, _ = count, curlen, max_count, min_count, n, nextlen, prevlen, v2, p3 /* iterates over all tree elements */
  18902. prevlen = -int32(1) /* length of current code */
  18903. nextlen = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + 2))) /* length of next code */
  18904. count = 0 /* repeat count of the current code */
  18905. max_count = int32(7) /* max repeat count */
  18906. min_count = int32(4) /* min repeat count */
  18907. if nextlen == 0 {
  18908. max_count = int32(138)
  18909. min_count = libc.Int32FromInt32(3)
  18910. }
  18911. *(*Tush)(unsafe.Pointer(tree + uintptr(max_code+int32(1))*4 + 2)) = libc.Uint16FromInt32(0xffff) /* guard */
  18912. n = 0
  18913. for {
  18914. if !(n <= max_code) {
  18915. break
  18916. }
  18917. curlen = nextlen
  18918. nextlen = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(n+int32(1))*4 + 2)))
  18919. count++
  18920. v2 = count
  18921. if v2 < max_count && curlen == nextlen {
  18922. goto _1
  18923. } else {
  18924. if count < min_count {
  18925. p3 = s + 2748 + uintptr(curlen)*4
  18926. *(*Tush)(unsafe.Pointer(p3)) = Tush(int32(*(*Tush)(unsafe.Pointer(p3))) + count)
  18927. } else {
  18928. if curlen != 0 {
  18929. if curlen != prevlen {
  18930. *(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4))++
  18931. }
  18932. *(*Tush)(unsafe.Pointer(s + 2748 + 16*4))++
  18933. } else {
  18934. if count <= int32(10) {
  18935. *(*Tush)(unsafe.Pointer(s + 2748 + 17*4))++
  18936. } else {
  18937. *(*Tush)(unsafe.Pointer(s + 2748 + 18*4))++
  18938. }
  18939. }
  18940. }
  18941. }
  18942. count = 0
  18943. prevlen = curlen
  18944. if nextlen == 0 {
  18945. max_count = int32(138)
  18946. min_count = libc.Int32FromInt32(3)
  18947. } else {
  18948. if curlen == nextlen {
  18949. max_count = int32(6)
  18950. min_count = libc.Int32FromInt32(3)
  18951. } else {
  18952. max_count = int32(7)
  18953. min_count = libc.Int32FromInt32(4)
  18954. }
  18955. }
  18956. goto _1
  18957. _1:
  18958. ;
  18959. n++
  18960. }
  18961. }
  18962. // C documentation
  18963. //
  18964. // /* ===========================================================================
  18965. // * Send a literal or distance tree in compressed form, using the codes in
  18966. // * bl_tree.
  18967. // */
  18968. func _send_tree(tls *libc.TLS, s uintptr, tree uintptr, max_code int32) {
  18969. 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
  18970. var v12, v14, v18, v20, v24, v26, v30, v32, v36, v38, v42, v44, v48, v50, v6, v8 Tulg
  18971. 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
  18972. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  18973. prevlen = -int32(1) /* length of current code */
  18974. nextlen = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + 2))) /* length of next code */
  18975. count = 0 /* repeat count of the current code */
  18976. max_count = int32(7) /* max repeat count */
  18977. min_count = int32(4) /* min repeat count */
  18978. /* tree[max_code + 1].Len = -1; */ /* guard already set */
  18979. if nextlen == 0 {
  18980. max_count = int32(138)
  18981. min_count = libc.Int32FromInt32(3)
  18982. }
  18983. n = 0
  18984. for {
  18985. if !(n <= max_code) {
  18986. break
  18987. }
  18988. curlen = nextlen
  18989. nextlen = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(n+int32(1))*4 + 2)))
  18990. count++
  18991. v2 = count
  18992. if v2 < max_count && curlen == nextlen {
  18993. goto _1
  18994. } else {
  18995. if count < min_count {
  18996. for {
  18997. len1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4 + 2)))
  18998. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  18999. val = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))
  19000. p5 = s + 5936
  19001. *(*Tush)(unsafe.Pointer(p5)) = Tush(int32(*(*Tush)(unsafe.Pointer(p5))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19002. v7 = s + 40
  19003. v6 = *(*Tulg)(unsafe.Pointer(v7))
  19004. *(*Tulg)(unsafe.Pointer(v7))++
  19005. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v6))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19006. v9 = s + 40
  19007. v8 = *(*Tulg)(unsafe.Pointer(v9))
  19008. *(*Tulg)(unsafe.Pointer(v9))++
  19009. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19010. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19011. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19012. } else {
  19013. p10 = s + 5936
  19014. *(*Tush)(unsafe.Pointer(p10)) = Tush(int32(*(*Tush)(unsafe.Pointer(p10))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19015. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19016. }
  19017. goto _4
  19018. _4:
  19019. ;
  19020. count--
  19021. v3 = count
  19022. if !(v3 != 0) {
  19023. break
  19024. }
  19025. }
  19026. } else {
  19027. if curlen != 0 {
  19028. if curlen != prevlen {
  19029. len11 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4 + 2)))
  19030. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19031. val1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))
  19032. p11 = s + 5936
  19033. *(*Tush)(unsafe.Pointer(p11)) = Tush(int32(*(*Tush)(unsafe.Pointer(p11))) | libc.Int32FromUint16(libc.Uint16FromInt32(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19034. v13 = s + 40
  19035. v12 = *(*Tulg)(unsafe.Pointer(v13))
  19036. *(*Tulg)(unsafe.Pointer(v13))++
  19037. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v12))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19038. v15 = s + 40
  19039. v14 = *(*Tulg)(unsafe.Pointer(v15))
  19040. *(*Tulg)(unsafe.Pointer(v15))++
  19041. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19042. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19043. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  19044. } else {
  19045. p16 = s + 5936
  19046. *(*Tush)(unsafe.Pointer(p16)) = Tush(int32(*(*Tush)(unsafe.Pointer(p16))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19047. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  19048. }
  19049. count--
  19050. }
  19051. len2 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 16*4 + 2)))
  19052. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  19053. val2 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 16*4)))
  19054. p17 = s + 5936
  19055. *(*Tush)(unsafe.Pointer(p17)) = Tush(int32(*(*Tush)(unsafe.Pointer(p17))) | libc.Int32FromUint16(libc.Uint16FromInt32(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19056. v19 = s + 40
  19057. v18 = *(*Tulg)(unsafe.Pointer(v19))
  19058. *(*Tulg)(unsafe.Pointer(v19))++
  19059. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v18))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19060. v21 = s + 40
  19061. v20 = *(*Tulg)(unsafe.Pointer(v21))
  19062. *(*Tulg)(unsafe.Pointer(v21))++
  19063. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v20))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19064. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19065. *(*int32)(unsafe.Pointer(s + 5940)) += len2 - int32(m_Buf_size)
  19066. } else {
  19067. p22 = s + 5936
  19068. *(*Tush)(unsafe.Pointer(p22)) = Tush(int32(*(*Tush)(unsafe.Pointer(p22))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 16*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19069. *(*int32)(unsafe.Pointer(s + 5940)) += len2
  19070. }
  19071. len3 = int32(2)
  19072. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  19073. val3 = count - int32(3)
  19074. p23 = s + 5936
  19075. *(*Tush)(unsafe.Pointer(p23)) = Tush(int32(*(*Tush)(unsafe.Pointer(p23))) | libc.Int32FromUint16(libc.Uint16FromInt32(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19076. v25 = s + 40
  19077. v24 = *(*Tulg)(unsafe.Pointer(v25))
  19078. *(*Tulg)(unsafe.Pointer(v25))++
  19079. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19080. v27 = s + 40
  19081. v26 = *(*Tulg)(unsafe.Pointer(v27))
  19082. *(*Tulg)(unsafe.Pointer(v27))++
  19083. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19084. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19085. *(*int32)(unsafe.Pointer(s + 5940)) += len3 - int32(m_Buf_size)
  19086. } else {
  19087. p28 = s + 5936
  19088. *(*Tush)(unsafe.Pointer(p28)) = Tush(int32(*(*Tush)(unsafe.Pointer(p28))) | libc.Int32FromUint16(libc.Uint16FromInt32(count-libc.Int32FromInt32(3)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19089. *(*int32)(unsafe.Pointer(s + 5940)) += len3
  19090. }
  19091. } else {
  19092. if count <= int32(10) {
  19093. len4 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 17*4 + 2)))
  19094. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len4 {
  19095. val4 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 17*4)))
  19096. p29 = s + 5936
  19097. *(*Tush)(unsafe.Pointer(p29)) = Tush(int32(*(*Tush)(unsafe.Pointer(p29))) | libc.Int32FromUint16(libc.Uint16FromInt32(val4))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19098. v31 = s + 40
  19099. v30 = *(*Tulg)(unsafe.Pointer(v31))
  19100. *(*Tulg)(unsafe.Pointer(v31))++
  19101. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v30))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19102. v33 = s + 40
  19103. v32 = *(*Tulg)(unsafe.Pointer(v33))
  19104. *(*Tulg)(unsafe.Pointer(v33))++
  19105. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v32))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19106. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val4)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19107. *(*int32)(unsafe.Pointer(s + 5940)) += len4 - int32(m_Buf_size)
  19108. } else {
  19109. p34 = s + 5936
  19110. *(*Tush)(unsafe.Pointer(p34)) = Tush(int32(*(*Tush)(unsafe.Pointer(p34))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 17*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19111. *(*int32)(unsafe.Pointer(s + 5940)) += len4
  19112. }
  19113. len5 = int32(3)
  19114. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len5 {
  19115. val5 = count - int32(3)
  19116. p35 = s + 5936
  19117. *(*Tush)(unsafe.Pointer(p35)) = Tush(int32(*(*Tush)(unsafe.Pointer(p35))) | libc.Int32FromUint16(libc.Uint16FromInt32(val5))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19118. v37 = s + 40
  19119. v36 = *(*Tulg)(unsafe.Pointer(v37))
  19120. *(*Tulg)(unsafe.Pointer(v37))++
  19121. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v36))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19122. v39 = s + 40
  19123. v38 = *(*Tulg)(unsafe.Pointer(v39))
  19124. *(*Tulg)(unsafe.Pointer(v39))++
  19125. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v38))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19126. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val5)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19127. *(*int32)(unsafe.Pointer(s + 5940)) += len5 - int32(m_Buf_size)
  19128. } else {
  19129. p40 = s + 5936
  19130. *(*Tush)(unsafe.Pointer(p40)) = Tush(int32(*(*Tush)(unsafe.Pointer(p40))) | libc.Int32FromUint16(libc.Uint16FromInt32(count-libc.Int32FromInt32(3)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19131. *(*int32)(unsafe.Pointer(s + 5940)) += len5
  19132. }
  19133. } else {
  19134. len6 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 18*4 + 2)))
  19135. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len6 {
  19136. val6 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 18*4)))
  19137. p41 = s + 5936
  19138. *(*Tush)(unsafe.Pointer(p41)) = Tush(int32(*(*Tush)(unsafe.Pointer(p41))) | libc.Int32FromUint16(libc.Uint16FromInt32(val6))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19139. v43 = s + 40
  19140. v42 = *(*Tulg)(unsafe.Pointer(v43))
  19141. *(*Tulg)(unsafe.Pointer(v43))++
  19142. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v42))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19143. v45 = s + 40
  19144. v44 = *(*Tulg)(unsafe.Pointer(v45))
  19145. *(*Tulg)(unsafe.Pointer(v45))++
  19146. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v44))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19147. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val6)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19148. *(*int32)(unsafe.Pointer(s + 5940)) += len6 - int32(m_Buf_size)
  19149. } else {
  19150. p46 = s + 5936
  19151. *(*Tush)(unsafe.Pointer(p46)) = Tush(int32(*(*Tush)(unsafe.Pointer(p46))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 18*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19152. *(*int32)(unsafe.Pointer(s + 5940)) += len6
  19153. }
  19154. len7 = int32(7)
  19155. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len7 {
  19156. val7 = count - int32(11)
  19157. p47 = s + 5936
  19158. *(*Tush)(unsafe.Pointer(p47)) = Tush(int32(*(*Tush)(unsafe.Pointer(p47))) | libc.Int32FromUint16(libc.Uint16FromInt32(val7))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19159. v49 = s + 40
  19160. v48 = *(*Tulg)(unsafe.Pointer(v49))
  19161. *(*Tulg)(unsafe.Pointer(v49))++
  19162. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v48))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19163. v51 = s + 40
  19164. v50 = *(*Tulg)(unsafe.Pointer(v51))
  19165. *(*Tulg)(unsafe.Pointer(v51))++
  19166. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v50))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19167. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val7)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19168. *(*int32)(unsafe.Pointer(s + 5940)) += len7 - int32(m_Buf_size)
  19169. } else {
  19170. p52 = s + 5936
  19171. *(*Tush)(unsafe.Pointer(p52)) = Tush(int32(*(*Tush)(unsafe.Pointer(p52))) | libc.Int32FromUint16(libc.Uint16FromInt32(count-libc.Int32FromInt32(11)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19172. *(*int32)(unsafe.Pointer(s + 5940)) += len7
  19173. }
  19174. }
  19175. }
  19176. }
  19177. }
  19178. count = 0
  19179. prevlen = curlen
  19180. if nextlen == 0 {
  19181. max_count = int32(138)
  19182. min_count = libc.Int32FromInt32(3)
  19183. } else {
  19184. if curlen == nextlen {
  19185. max_count = int32(6)
  19186. min_count = libc.Int32FromInt32(3)
  19187. } else {
  19188. max_count = int32(7)
  19189. min_count = libc.Int32FromInt32(4)
  19190. }
  19191. }
  19192. goto _1
  19193. _1:
  19194. ;
  19195. n++
  19196. }
  19197. }
  19198. // C documentation
  19199. //
  19200. // /* ===========================================================================
  19201. // * Construct the Huffman tree for the bit lengths and return the index in
  19202. // * bl_order of the last bit length code to send.
  19203. // */
  19204. func _build_bl_tree(tls *libc.TLS, s uintptr) (r int32) {
  19205. var max_blindex int32
  19206. _ = max_blindex /* index of last bit length code of non zero freq */
  19207. /* Determine the bit length frequencies for literal and distance trees */
  19208. _scan_tree(tls, s, s+212, (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fmax_code)
  19209. _scan_tree(tls, s, s+2504, (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fmax_code)
  19210. /* Build the bit length tree: */
  19211. _build_tree(tls, s, s+2952)
  19212. /* opt_len now includes the length of the tree representations, except the
  19213. * lengths of the bit lengths codes and the 5 + 5 + 4 bits for the counts.
  19214. */
  19215. /* Determine the number of bit length codes to send. The pkzip format
  19216. * requires that at least 4 bit length codes be sent. (appnote.txt says
  19217. * 3 but the actual value used is 4.)
  19218. */
  19219. max_blindex = libc.Int32FromInt32(m_BL_CODES) - libc.Int32FromInt32(1)
  19220. for {
  19221. if !(max_blindex >= int32(3)) {
  19222. break
  19223. }
  19224. if libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(_bl_order[max_blindex])*4 + 2))) != 0 {
  19225. break
  19226. }
  19227. goto _1
  19228. _1:
  19229. ;
  19230. max_blindex--
  19231. }
  19232. /* Update opt_len to include the bit length tree and counts */
  19233. *(*Tulg)(unsafe.Pointer(s + 5912)) += uint64(3)*(libc.Uint64FromInt32(max_blindex)+uint64(1)) + uint64(5) + uint64(5) + uint64(4)
  19234. return max_blindex
  19235. }
  19236. // C documentation
  19237. //
  19238. // /* ===========================================================================
  19239. // * Send the header for a block using dynamic Huffman trees: the counts, the
  19240. // * lengths of the bit length codes, the literal tree and the distance tree.
  19241. // * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
  19242. // */
  19243. func _send_all_trees(tls *libc.TLS, s uintptr, lcodes int32, dcodes int32, blcodes int32) {
  19244. var len1, len11, len2, len3, rank, val, val1, val2, val3 int32
  19245. var v10, v14, v16, v2, v21, v23, v4, v8 Tulg
  19246. var v11, v15, v17, v22, v24, v3, v5, v9, p1, p12, p13, p18, p20, p25, p6, p7 uintptr
  19247. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  19248. len1 = int32(5)
  19249. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19250. val = lcodes - int32(257)
  19251. p1 = s + 5936
  19252. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19253. v3 = s + 40
  19254. v2 = *(*Tulg)(unsafe.Pointer(v3))
  19255. *(*Tulg)(unsafe.Pointer(v3))++
  19256. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19257. v5 = s + 40
  19258. v4 = *(*Tulg)(unsafe.Pointer(v5))
  19259. *(*Tulg)(unsafe.Pointer(v5))++
  19260. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19261. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19262. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19263. } else {
  19264. p6 = s + 5936
  19265. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | libc.Int32FromUint16(libc.Uint16FromInt32(lcodes-libc.Int32FromInt32(257)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19266. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19267. } /* not +255 as stated in appnote.txt */
  19268. len11 = int32(5)
  19269. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19270. val1 = dcodes - int32(1)
  19271. p7 = s + 5936
  19272. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | libc.Int32FromUint16(libc.Uint16FromInt32(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19273. v9 = s + 40
  19274. v8 = *(*Tulg)(unsafe.Pointer(v9))
  19275. *(*Tulg)(unsafe.Pointer(v9))++
  19276. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19277. v11 = s + 40
  19278. v10 = *(*Tulg)(unsafe.Pointer(v11))
  19279. *(*Tulg)(unsafe.Pointer(v11))++
  19280. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19281. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19282. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  19283. } else {
  19284. p12 = s + 5936
  19285. *(*Tush)(unsafe.Pointer(p12)) = Tush(int32(*(*Tush)(unsafe.Pointer(p12))) | libc.Int32FromUint16(libc.Uint16FromInt32(dcodes-libc.Int32FromInt32(1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19286. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  19287. }
  19288. len2 = int32(4)
  19289. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  19290. val2 = blcodes - int32(4)
  19291. p13 = s + 5936
  19292. *(*Tush)(unsafe.Pointer(p13)) = Tush(int32(*(*Tush)(unsafe.Pointer(p13))) | libc.Int32FromUint16(libc.Uint16FromInt32(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19293. v15 = s + 40
  19294. v14 = *(*Tulg)(unsafe.Pointer(v15))
  19295. *(*Tulg)(unsafe.Pointer(v15))++
  19296. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19297. v17 = s + 40
  19298. v16 = *(*Tulg)(unsafe.Pointer(v17))
  19299. *(*Tulg)(unsafe.Pointer(v17))++
  19300. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v16))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19301. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19302. *(*int32)(unsafe.Pointer(s + 5940)) += len2 - int32(m_Buf_size)
  19303. } else {
  19304. p18 = s + 5936
  19305. *(*Tush)(unsafe.Pointer(p18)) = Tush(int32(*(*Tush)(unsafe.Pointer(p18))) | libc.Int32FromUint16(libc.Uint16FromInt32(blcodes-libc.Int32FromInt32(4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19306. *(*int32)(unsafe.Pointer(s + 5940)) += len2
  19307. } /* not -3 as stated in appnote.txt */
  19308. rank = 0
  19309. for {
  19310. if !(rank < blcodes) {
  19311. break
  19312. }
  19313. len3 = int32(3)
  19314. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  19315. val3 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(_bl_order[rank])*4 + 2)))
  19316. p20 = s + 5936
  19317. *(*Tush)(unsafe.Pointer(p20)) = Tush(int32(*(*Tush)(unsafe.Pointer(p20))) | libc.Int32FromUint16(libc.Uint16FromInt32(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19318. v22 = s + 40
  19319. v21 = *(*Tulg)(unsafe.Pointer(v22))
  19320. *(*Tulg)(unsafe.Pointer(v22))++
  19321. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v21))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19322. v24 = s + 40
  19323. v23 = *(*Tulg)(unsafe.Pointer(v24))
  19324. *(*Tulg)(unsafe.Pointer(v24))++
  19325. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v23))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19326. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19327. *(*int32)(unsafe.Pointer(s + 5940)) += len3 - int32(m_Buf_size)
  19328. } else {
  19329. p25 = s + 5936
  19330. *(*Tush)(unsafe.Pointer(p25)) = Tush(int32(*(*Tush)(unsafe.Pointer(p25))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(_bl_order[rank])*4 + 2)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19331. *(*int32)(unsafe.Pointer(s + 5940)) += len3
  19332. }
  19333. goto _19
  19334. _19:
  19335. ;
  19336. rank++
  19337. }
  19338. _send_tree(tls, s, s+212, lcodes-int32(1)) /* literal tree */
  19339. _send_tree(tls, s, s+2504, dcodes-int32(1)) /* distance tree */
  19340. }
  19341. // C documentation
  19342. //
  19343. // /* ===========================================================================
  19344. // * Send a stored block
  19345. // */
  19346. func x__tr_stored_block(tls *libc.TLS, s uintptr, buf uintptr, stored_len Tulg, last int32) {
  19347. var len1, val int32
  19348. var v10, v12, v14, v3, v5, v8, p1, p6 uintptr
  19349. var v11, v13, v2, v4, v7, v9 Tulg
  19350. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, val, v10, v11, v12, v13, v14, v2, v3, v4, v5, v7, v8, v9, p1, p6
  19351. len1 = int32(3)
  19352. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19353. val = libc.Int32FromInt32(m_STORED_BLOCK)<<libc.Int32FromInt32(1) + last
  19354. p1 = s + 5936
  19355. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19356. v3 = s + 40
  19357. v2 = *(*Tulg)(unsafe.Pointer(v3))
  19358. *(*Tulg)(unsafe.Pointer(v3))++
  19359. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19360. v5 = s + 40
  19361. v4 = *(*Tulg)(unsafe.Pointer(v5))
  19362. *(*Tulg)(unsafe.Pointer(v5))++
  19363. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19364. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19365. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19366. } else {
  19367. p6 = s + 5936
  19368. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | libc.Int32FromUint16(libc.Uint16FromInt32(libc.Int32FromInt32(m_STORED_BLOCK)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19369. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19370. } /* send block type */
  19371. _bi_windup(tls, s) /* align on byte boundary */
  19372. v8 = s + 40
  19373. v7 = *(*Tulg)(unsafe.Pointer(v8))
  19374. *(*Tulg)(unsafe.Pointer(v8))++
  19375. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v7))) = libc.Uint8FromInt32(libc.Int32FromUint16(uint16(stored_len)) & libc.Int32FromInt32(0xff))
  19376. v10 = s + 40
  19377. v9 = *(*Tulg)(unsafe.Pointer(v10))
  19378. *(*Tulg)(unsafe.Pointer(v10))++
  19379. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v9))) = libc.Uint8FromInt32(libc.Int32FromUint16(uint16(stored_len)) >> libc.Int32FromInt32(8))
  19380. v12 = s + 40
  19381. v11 = *(*Tulg)(unsafe.Pointer(v12))
  19382. *(*Tulg)(unsafe.Pointer(v12))++
  19383. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = libc.Uint8FromInt32(libc.Int32FromUint16(uint16(^stored_len)) & libc.Int32FromInt32(0xff))
  19384. v14 = s + 40
  19385. v13 = *(*Tulg)(unsafe.Pointer(v14))
  19386. *(*Tulg)(unsafe.Pointer(v14))++
  19387. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v13))) = libc.Uint8FromInt32(libc.Int32FromUint16(uint16(^stored_len)) >> libc.Int32FromInt32(8))
  19388. if stored_len != 0 {
  19389. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending), buf, stored_len)
  19390. }
  19391. *(*Tulg)(unsafe.Pointer(s + 40)) += stored_len
  19392. }
  19393. // C documentation
  19394. //
  19395. // /* ===========================================================================
  19396. // * Flush the bits in the bit buffer to pending output (leaves at most 7 bits)
  19397. // */
  19398. func x__tr_flush_bits(tls *libc.TLS, s uintptr) {
  19399. _bi_flush(tls, s)
  19400. }
  19401. // C documentation
  19402. //
  19403. // /* ===========================================================================
  19404. // * Send one empty static block to give enough lookahead for inflate.
  19405. // * This takes 10 bits, of which 7 may remain in the bit buffer.
  19406. // */
  19407. func x__tr_align(tls *libc.TLS, s uintptr) {
  19408. var len1, len11, val, val1 int32
  19409. var v10, v2, v4, v8 Tulg
  19410. var v11, v3, v5, v9, p1, p12, p6, p7 uintptr
  19411. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, len11, val, val1, v10, v11, v2, v3, v4, v5, v8, v9, p1, p12, p6, p7
  19412. len1 = int32(3)
  19413. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19414. val = libc.Int32FromInt32(m_STATIC_TREES) << libc.Int32FromInt32(1)
  19415. p1 = s + 5936
  19416. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19417. v3 = s + 40
  19418. v2 = *(*Tulg)(unsafe.Pointer(v3))
  19419. *(*Tulg)(unsafe.Pointer(v3))++
  19420. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19421. v5 = s + 40
  19422. v4 = *(*Tulg)(unsafe.Pointer(v5))
  19423. *(*Tulg)(unsafe.Pointer(v5))++
  19424. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19425. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19426. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19427. } else {
  19428. p6 = s + 5936
  19429. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | libc.Int32FromUint16(libc.Uint16FromInt32(libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19430. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19431. }
  19432. len11 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4 + 2)))
  19433. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19434. val1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4)))
  19435. p7 = s + 5936
  19436. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | libc.Int32FromUint16(libc.Uint16FromInt32(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19437. v9 = s + 40
  19438. v8 = *(*Tulg)(unsafe.Pointer(v9))
  19439. *(*Tulg)(unsafe.Pointer(v9))++
  19440. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19441. v11 = s + 40
  19442. v10 = *(*Tulg)(unsafe.Pointer(v11))
  19443. *(*Tulg)(unsafe.Pointer(v11))++
  19444. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19445. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19446. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  19447. } else {
  19448. p12 = s + 5936
  19449. *(*Tush)(unsafe.Pointer(p12)) = Tush(int32(*(*Tush)(unsafe.Pointer(p12))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19450. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  19451. }
  19452. _bi_flush(tls, s)
  19453. }
  19454. // C documentation
  19455. //
  19456. // /* ===========================================================================
  19457. // * Send the block data compressed using the given Huffman trees
  19458. // */
  19459. func _compress_block(tls *libc.TLS, s uintptr, ltree uintptr, dtree uintptr) {
  19460. var code, dist, sx, v1, v2, v3 uint32
  19461. var extra, lc, len1, len11, len2, len3, len4, len5, val, val1, val2, val3, val4, val5, v22 int32
  19462. var v11, v13, v17, v19, v24, v26, v30, v32, v36, v38, v5, v7 Tulg
  19463. 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
  19464. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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) */
  19465. sx = uint32(0) /* number of extra bits to send */
  19466. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != uint32(0) {
  19467. for cond := true; cond; cond = sx < (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next {
  19468. v1 = sx
  19469. sx++
  19470. dist = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v1)))) & int32(0xff))
  19471. v2 = sx
  19472. sx++
  19473. dist += libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v2))))&libc.Int32FromInt32(0xff)) << int32(8)
  19474. v3 = sx
  19475. sx++
  19476. lc = libc.Int32FromUint8(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))))
  19477. if dist == uint32(0) {
  19478. len1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4 + 2)))
  19479. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19480. val = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4)))
  19481. p4 = s + 5936
  19482. *(*Tush)(unsafe.Pointer(p4)) = Tush(int32(*(*Tush)(unsafe.Pointer(p4))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19483. v6 = s + 40
  19484. v5 = *(*Tulg)(unsafe.Pointer(v6))
  19485. *(*Tulg)(unsafe.Pointer(v6))++
  19486. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19487. v8 = s + 40
  19488. v7 = *(*Tulg)(unsafe.Pointer(v8))
  19489. *(*Tulg)(unsafe.Pointer(v8))++
  19490. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v7))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19491. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19492. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19493. } else {
  19494. p9 = s + 5936
  19495. *(*Tush)(unsafe.Pointer(p9)) = Tush(int32(*(*Tush)(unsafe.Pointer(p9))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19496. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19497. } /* send a literal byte */
  19498. } else {
  19499. /* Here, lc is the match length - MIN_MATCH */
  19500. code = uint32(x__length_code[lc])
  19501. len11 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4 + 2)))
  19502. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19503. val1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4)))
  19504. p10 = s + 5936
  19505. *(*Tush)(unsafe.Pointer(p10)) = Tush(int32(*(*Tush)(unsafe.Pointer(p10))) | libc.Int32FromUint16(libc.Uint16FromInt32(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19506. v12 = s + 40
  19507. v11 = *(*Tulg)(unsafe.Pointer(v12))
  19508. *(*Tulg)(unsafe.Pointer(v12))++
  19509. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19510. v14 = s + 40
  19511. v13 = *(*Tulg)(unsafe.Pointer(v14))
  19512. *(*Tulg)(unsafe.Pointer(v14))++
  19513. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v13))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19514. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19515. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  19516. } else {
  19517. p15 = s + 5936
  19518. *(*Tush)(unsafe.Pointer(p15)) = Tush(int32(*(*Tush)(unsafe.Pointer(p15))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19519. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  19520. } /* send length code */
  19521. extra = _extra_lbits[code]
  19522. if extra != 0 {
  19523. lc -= _base_length[code]
  19524. len2 = extra
  19525. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  19526. val2 = lc
  19527. p16 = s + 5936
  19528. *(*Tush)(unsafe.Pointer(p16)) = Tush(int32(*(*Tush)(unsafe.Pointer(p16))) | libc.Int32FromUint16(libc.Uint16FromInt32(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19529. v18 = s + 40
  19530. v17 = *(*Tulg)(unsafe.Pointer(v18))
  19531. *(*Tulg)(unsafe.Pointer(v18))++
  19532. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v17))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19533. v20 = s + 40
  19534. v19 = *(*Tulg)(unsafe.Pointer(v20))
  19535. *(*Tulg)(unsafe.Pointer(v20))++
  19536. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v19))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19537. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19538. *(*int32)(unsafe.Pointer(s + 5940)) += len2 - int32(m_Buf_size)
  19539. } else {
  19540. p21 = s + 5936
  19541. *(*Tush)(unsafe.Pointer(p21)) = Tush(int32(*(*Tush)(unsafe.Pointer(p21))) | libc.Int32FromUint16(libc.Uint16FromInt32(lc))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19542. *(*int32)(unsafe.Pointer(s + 5940)) += len2
  19543. } /* send the extra length bits */
  19544. }
  19545. dist-- /* dist is now the match distance - 1 */
  19546. if dist < uint32(256) {
  19547. v22 = libc.Int32FromUint8(x__dist_code[dist])
  19548. } else {
  19549. v22 = libc.Int32FromUint8(x__dist_code[uint32(256)+dist>>int32(7)])
  19550. }
  19551. code = libc.Uint32FromInt32(v22)
  19552. len3 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4 + 2)))
  19553. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  19554. val3 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4)))
  19555. p23 = s + 5936
  19556. *(*Tush)(unsafe.Pointer(p23)) = Tush(int32(*(*Tush)(unsafe.Pointer(p23))) | libc.Int32FromUint16(libc.Uint16FromInt32(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19557. v25 = s + 40
  19558. v24 = *(*Tulg)(unsafe.Pointer(v25))
  19559. *(*Tulg)(unsafe.Pointer(v25))++
  19560. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19561. v27 = s + 40
  19562. v26 = *(*Tulg)(unsafe.Pointer(v27))
  19563. *(*Tulg)(unsafe.Pointer(v27))++
  19564. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19565. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19566. *(*int32)(unsafe.Pointer(s + 5940)) += len3 - int32(m_Buf_size)
  19567. } else {
  19568. p28 = s + 5936
  19569. *(*Tush)(unsafe.Pointer(p28)) = Tush(int32(*(*Tush)(unsafe.Pointer(p28))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19570. *(*int32)(unsafe.Pointer(s + 5940)) += len3
  19571. } /* send the distance code */
  19572. extra = _extra_dbits[code]
  19573. if extra != 0 {
  19574. dist -= libc.Uint32FromInt32(_base_dist[code])
  19575. len4 = extra
  19576. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len4 {
  19577. val4 = libc.Int32FromUint32(dist)
  19578. p29 = s + 5936
  19579. *(*Tush)(unsafe.Pointer(p29)) = Tush(int32(*(*Tush)(unsafe.Pointer(p29))) | libc.Int32FromUint16(libc.Uint16FromInt32(val4))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19580. v31 = s + 40
  19581. v30 = *(*Tulg)(unsafe.Pointer(v31))
  19582. *(*Tulg)(unsafe.Pointer(v31))++
  19583. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v30))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19584. v33 = s + 40
  19585. v32 = *(*Tulg)(unsafe.Pointer(v33))
  19586. *(*Tulg)(unsafe.Pointer(v33))++
  19587. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v32))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19588. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val4)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19589. *(*int32)(unsafe.Pointer(s + 5940)) += len4 - int32(m_Buf_size)
  19590. } else {
  19591. p34 = s + 5936
  19592. *(*Tush)(unsafe.Pointer(p34)) = Tush(int32(*(*Tush)(unsafe.Pointer(p34))) | libc.Int32FromUint16(uint16(dist))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19593. *(*int32)(unsafe.Pointer(s + 5940)) += len4
  19594. } /* send the extra distance bits */
  19595. }
  19596. } /* literal or match pair ? */
  19597. /* Check for no overlay of pending_buf on needed symbols */
  19598. }
  19599. }
  19600. len5 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + 256*4 + 2)))
  19601. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len5 {
  19602. val5 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + 256*4)))
  19603. p35 = s + 5936
  19604. *(*Tush)(unsafe.Pointer(p35)) = Tush(int32(*(*Tush)(unsafe.Pointer(p35))) | libc.Int32FromUint16(libc.Uint16FromInt32(val5))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19605. v37 = s + 40
  19606. v36 = *(*Tulg)(unsafe.Pointer(v37))
  19607. *(*Tulg)(unsafe.Pointer(v37))++
  19608. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v36))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19609. v39 = s + 40
  19610. v38 = *(*Tulg)(unsafe.Pointer(v39))
  19611. *(*Tulg)(unsafe.Pointer(v39))++
  19612. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v38))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19613. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val5)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19614. *(*int32)(unsafe.Pointer(s + 5940)) += len5 - int32(m_Buf_size)
  19615. } else {
  19616. p40 = s + 5936
  19617. *(*Tush)(unsafe.Pointer(p40)) = Tush(int32(*(*Tush)(unsafe.Pointer(p40))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + 256*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19618. *(*int32)(unsafe.Pointer(s + 5940)) += len5
  19619. }
  19620. }
  19621. // C documentation
  19622. //
  19623. // /* ===========================================================================
  19624. // * Check if the data type is TEXT or BINARY, using the following algorithm:
  19625. // * - TEXT if the two conditions below are satisfied:
  19626. // * a) There are no non-portable control characters belonging to the
  19627. // * "block list" (0..6, 14..25, 28..31).
  19628. // * b) There is at least one printable character belonging to the
  19629. // * "allow list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).
  19630. // * - BINARY otherwise.
  19631. // * - The following partially-portable control characters form a
  19632. // * "gray list" that is ignored in this detection algorithm:
  19633. // * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).
  19634. // * IN assertion: the fields Freq of dyn_ltree are set.
  19635. // */
  19636. func _detect_data_type(tls *libc.TLS, s uintptr) (r int32) {
  19637. var block_mask uint64
  19638. var n int32
  19639. _, _ = block_mask, n
  19640. /* block_mask is the bit mask of block-listed bytes
  19641. * set bits 0..6, 14..25, and 28..31
  19642. * 0xf3ffc07f = binary 11110011111111111100000001111111
  19643. */
  19644. block_mask = uint64(0xf3ffc07f)
  19645. /* Check for non-textual ("block-listed") bytes. */
  19646. n = 0
  19647. for {
  19648. if !(n <= int32(31)) {
  19649. break
  19650. }
  19651. if block_mask&uint64(1) != 0 && libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 212 + uintptr(n)*4))) != 0 {
  19652. return m_Z_BINARY
  19653. }
  19654. goto _1
  19655. _1:
  19656. ;
  19657. n++
  19658. block_mask >>= uint64(1)
  19659. }
  19660. /* Check for textual ("allow-listed") bytes. */
  19661. if libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 212 + 9*4))) != 0 || libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 212 + 10*4))) != 0 || libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 212 + 13*4))) != 0 {
  19662. return int32(m_Z_TEXT)
  19663. }
  19664. n = int32(32)
  19665. for {
  19666. if !(n < int32(m_LITERALS)) {
  19667. break
  19668. }
  19669. if libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 212 + uintptr(n)*4))) != 0 {
  19670. return int32(m_Z_TEXT)
  19671. }
  19672. goto _2
  19673. _2:
  19674. ;
  19675. n++
  19676. }
  19677. /* There are no "block-listed" or "allow-listed" bytes:
  19678. * this stream either is empty or has tolerated ("gray-listed") bytes only.
  19679. */
  19680. return m_Z_BINARY
  19681. }
  19682. // C documentation
  19683. //
  19684. // /* ===========================================================================
  19685. // * Determine the best encoding for the current block: dynamic trees, static
  19686. // * trees or store, and write out the encoded block.
  19687. // */
  19688. func x__tr_flush_block(tls *libc.TLS, s uintptr, buf uintptr, stored_len Tulg, last int32) {
  19689. var len1, len11, max_blindex, val, val1 int32
  19690. var opt_lenb, static_lenb, v1, v11, v3, v5, v9 Tulg
  19691. var v10, v12, v4, v6, p13, p2, p7, p8 uintptr
  19692. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  19693. max_blindex = 0 /* index of last bit length code of non zero freq */
  19694. /* Build the Huffman trees unless a stored block is forced */
  19695. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel > 0 {
  19696. /* Check if the file is binary or text */
  19697. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fdata_type == int32(m_Z_UNKNOWN) {
  19698. (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fdata_type = _detect_data_type(tls, s)
  19699. }
  19700. /* Construct the literal and distance trees */
  19701. _build_tree(tls, s, s+2904)
  19702. _build_tree(tls, s, s+2928)
  19703. /* At this point, opt_len and static_len are the total bit lengths of
  19704. * the compressed block data, excluding the tree representations.
  19705. */
  19706. /* Build the bit length tree for the above two trees, and get the index
  19707. * in bl_order of the last bit length code to send.
  19708. */
  19709. max_blindex = _build_bl_tree(tls, s)
  19710. /* Determine the best encoding. Compute the block lengths in bytes. */
  19711. opt_lenb = ((*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len + uint64(3) + uint64(7)) >> int32(3)
  19712. static_lenb = ((*Tdeflate_state)(unsafe.Pointer(s)).Fstatic_len + uint64(3) + uint64(7)) >> int32(3)
  19713. if static_lenb <= opt_lenb || (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_FIXED) {
  19714. opt_lenb = static_lenb
  19715. }
  19716. } else {
  19717. v1 = stored_len + libc.Uint64FromInt32(5)
  19718. static_lenb = v1
  19719. opt_lenb = v1 /* force a stored block */
  19720. }
  19721. if stored_len+uint64(4) <= opt_lenb && buf != libc.UintptrFromInt32(0) {
  19722. /* 4: two words for the lengths */
  19723. /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
  19724. * Otherwise we can't have processed more than WSIZE input bytes since
  19725. * the last block flush, because compression would have been
  19726. * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
  19727. * transform a block into a stored block.
  19728. */
  19729. x__tr_stored_block(tls, s, buf, stored_len, last)
  19730. } else {
  19731. if static_lenb == opt_lenb {
  19732. len1 = int32(3)
  19733. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19734. val = libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1) + last
  19735. p2 = s + 5936
  19736. *(*Tush)(unsafe.Pointer(p2)) = Tush(int32(*(*Tush)(unsafe.Pointer(p2))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19737. v4 = s + 40
  19738. v3 = *(*Tulg)(unsafe.Pointer(v4))
  19739. *(*Tulg)(unsafe.Pointer(v4))++
  19740. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19741. v6 = s + 40
  19742. v5 = *(*Tulg)(unsafe.Pointer(v6))
  19743. *(*Tulg)(unsafe.Pointer(v6))++
  19744. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19745. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19746. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19747. } else {
  19748. p7 = s + 5936
  19749. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | libc.Int32FromUint16(libc.Uint16FromInt32(libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19750. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19751. }
  19752. _compress_block(tls, s, uintptr(unsafe.Pointer(&_static_ltree)), uintptr(unsafe.Pointer(&_static_dtree)))
  19753. } else {
  19754. len11 = int32(3)
  19755. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19756. val1 = libc.Int32FromInt32(m_DYN_TREES)<<libc.Int32FromInt32(1) + last
  19757. p8 = s + 5936
  19758. *(*Tush)(unsafe.Pointer(p8)) = Tush(int32(*(*Tush)(unsafe.Pointer(p8))) | libc.Int32FromUint16(libc.Uint16FromInt32(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19759. v10 = s + 40
  19760. v9 = *(*Tulg)(unsafe.Pointer(v10))
  19761. *(*Tulg)(unsafe.Pointer(v10))++
  19762. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v9))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19763. v12 = s + 40
  19764. v11 = *(*Tulg)(unsafe.Pointer(v12))
  19765. *(*Tulg)(unsafe.Pointer(v12))++
  19766. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19767. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19768. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  19769. } else {
  19770. p13 = s + 5936
  19771. *(*Tush)(unsafe.Pointer(p13)) = Tush(int32(*(*Tush)(unsafe.Pointer(p13))) | libc.Int32FromUint16(libc.Uint16FromInt32(libc.Int32FromInt32(m_DYN_TREES)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19772. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  19773. }
  19774. _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))
  19775. _compress_block(tls, s, s+212, s+2504)
  19776. }
  19777. }
  19778. /* The above check is made mod 2^32, for files larger than 512 MB
  19779. * and uLong implemented on 32 bits.
  19780. */
  19781. _init_block(tls, s)
  19782. if last != 0 {
  19783. _bi_windup(tls, s)
  19784. }
  19785. }
  19786. // C documentation
  19787. //
  19788. // /* ===========================================================================
  19789. // * Save the match info and tally the frequency counts. Return true if
  19790. // * the current block must be flushed.
  19791. // */
  19792. func x__tr_tally(tls *libc.TLS, s uintptr, dist uint32, lc uint32) (r int32) {
  19793. var v1, v3, v5 TuInt
  19794. var v2, v4, v6 uintptr
  19795. var v7 int32
  19796. _, _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6, v7
  19797. v2 = s + 5900
  19798. v1 = *(*TuInt)(unsafe.Pointer(v2))
  19799. *(*TuInt)(unsafe.Pointer(v2))++
  19800. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v1))) = uint8(dist)
  19801. v4 = s + 5900
  19802. v3 = *(*TuInt)(unsafe.Pointer(v4))
  19803. *(*TuInt)(unsafe.Pointer(v4))++
  19804. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist >> libc.Int32FromInt32(8))
  19805. v6 = s + 5900
  19806. v5 = *(*TuInt)(unsafe.Pointer(v6))
  19807. *(*TuInt)(unsafe.Pointer(v6))++
  19808. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = uint8(lc)
  19809. if dist == uint32(0) {
  19810. /* lc is the unmatched char */
  19811. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(lc)*4))++
  19812. } else {
  19813. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  19814. /* Here, lc is the match length - MIN_MATCH */
  19815. dist-- /* dist = match distance - 1 */
  19816. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(libc.Int32FromUint8(x__length_code[lc])+int32(m_LITERALS)+int32(1))*4))++
  19817. if dist < uint32(256) {
  19818. v7 = libc.Int32FromUint8(x__dist_code[dist])
  19819. } else {
  19820. v7 = libc.Int32FromUint8(x__dist_code[uint32(256)+dist>>int32(7)])
  19821. }
  19822. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v7)*4))++
  19823. }
  19824. return libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  19825. }
  19826. const m_AT_EACCESS = 0x200
  19827. const m_AT_EMPTY_PATH = 0x1000
  19828. const m_AT_NO_AUTOMOUNT = 0x800
  19829. const m_AT_RECURSIVE = 0x8000
  19830. const m_AT_REMOVEDIR = 0x200
  19831. const m_AT_STATX_DONT_SYNC = 0x4000
  19832. const m_AT_STATX_FORCE_SYNC = 0x2000
  19833. const m_AT_STATX_SYNC_AS_STAT = 0x0000
  19834. const m_AT_STATX_SYNC_TYPE = 0x6000
  19835. const m_AT_SYMLINK_FOLLOW = 0x400
  19836. const m_AT_SYMLINK_NOFOLLOW = 0x100
  19837. const m_BUFSIZ = 1024
  19838. const m_COPY = 1
  19839. const m_DN_ACCESS = 0x00000001
  19840. const m_DN_ATTRIB = 0x00000020
  19841. const m_DN_CREATE = 0x00000004
  19842. const m_DN_DELETE = 0x00000008
  19843. const m_DN_MODIFY = 0x00000002
  19844. const m_DN_MULTISHOT = 0x80000000
  19845. const m_DN_RENAME = 0x00000010
  19846. const m_E2BIG = 7
  19847. const m_EACCES = 13
  19848. const m_EADDRINUSE = 98
  19849. const m_EADDRNOTAVAIL = 99
  19850. const m_EADV = 68
  19851. const m_EAFNOSUPPORT = 97
  19852. const m_EAGAIN = 11
  19853. const m_EALREADY = 114
  19854. const m_EBADE = 52
  19855. const m_EBADF = 9
  19856. const m_EBADFD = 77
  19857. const m_EBADMSG = 74
  19858. const m_EBADR = 53
  19859. const m_EBADRQC = 56
  19860. const m_EBADSLT = 57
  19861. const m_EBFONT = 59
  19862. const m_EBUSY = 16
  19863. const m_ECANCELED = 125
  19864. const m_ECHILD = 10
  19865. const m_ECHRNG = 44
  19866. const m_ECOMM = 70
  19867. const m_ECONNABORTED = 103
  19868. const m_ECONNREFUSED = 111
  19869. const m_ECONNRESET = 104
  19870. const m_EDEADLK = 35
  19871. const m_EDEADLOCK = "EDEADLK"
  19872. const m_EDESTADDRREQ = 89
  19873. const m_EDOM = 33
  19874. const m_EDOTDOT = 73
  19875. const m_EDQUOT = 122
  19876. const m_EEXIST = 17
  19877. const m_EFAULT = 14
  19878. const m_EFBIG = 27
  19879. const m_EHOSTDOWN = 112
  19880. const m_EHOSTUNREACH = 113
  19881. const m_EHWPOISON = 133
  19882. const m_EIDRM = 43
  19883. const m_EILSEQ = 84
  19884. const m_EINPROGRESS = 115
  19885. const m_EINTR = 4
  19886. const m_EINVAL = 22
  19887. const m_EIO = 5
  19888. const m_EISCONN = 106
  19889. const m_EISDIR = 21
  19890. const m_EISNAM = 120
  19891. const m_EKEYEXPIRED = 127
  19892. const m_EKEYREJECTED = 129
  19893. const m_EKEYREVOKED = 128
  19894. const m_EL2HLT = 51
  19895. const m_EL2NSYNC = 45
  19896. const m_EL3HLT = 46
  19897. const m_EL3RST = 47
  19898. const m_ELIBACC = 79
  19899. const m_ELIBBAD = 80
  19900. const m_ELIBEXEC = 83
  19901. const m_ELIBMAX = 82
  19902. const m_ELIBSCN = 81
  19903. const m_ELNRNG = 48
  19904. const m_ELOOP = 40
  19905. const m_EMEDIUMTYPE = 124
  19906. const m_EMFILE = 24
  19907. const m_EMLINK = 31
  19908. const m_EMSGSIZE = 90
  19909. const m_EMULTIHOP = 72
  19910. const m_ENAMETOOLONG = 36
  19911. const m_ENAVAIL = 119
  19912. const m_ENETDOWN = 100
  19913. const m_ENETRESET = 102
  19914. const m_ENETUNREACH = 101
  19915. const m_ENFILE = 23
  19916. const m_ENOANO = 55
  19917. const m_ENOBUFS = 105
  19918. const m_ENOCSI = 50
  19919. const m_ENODATA = 61
  19920. const m_ENODEV = 19
  19921. const m_ENOENT = 2
  19922. const m_ENOEXEC = 8
  19923. const m_ENOKEY = 126
  19924. const m_ENOLCK = 37
  19925. const m_ENOLINK = 67
  19926. const m_ENOMEDIUM = 123
  19927. const m_ENOMEM = 12
  19928. const m_ENOMSG = 42
  19929. const m_ENONET = 64
  19930. const m_ENOPKG = 65
  19931. const m_ENOPROTOOPT = 92
  19932. const m_ENOSPC = 28
  19933. const m_ENOSR = 63
  19934. const m_ENOSTR = 60
  19935. const m_ENOSYS = 38
  19936. const m_ENOTBLK = 15
  19937. const m_ENOTCONN = 107
  19938. const m_ENOTDIR = 20
  19939. const m_ENOTEMPTY = 39
  19940. const m_ENOTNAM = 118
  19941. const m_ENOTRECOVERABLE = 131
  19942. const m_ENOTSOCK = 88
  19943. const m_ENOTSUP = "EOPNOTSUPP"
  19944. const m_ENOTTY = 25
  19945. const m_ENOTUNIQ = 76
  19946. const m_ENXIO = 6
  19947. const m_EOPNOTSUPP = 95
  19948. const m_EOVERFLOW = 75
  19949. const m_EOWNERDEAD = 130
  19950. const m_EPERM = 1
  19951. const m_EPFNOSUPPORT = 96
  19952. const m_EPIPE = 32
  19953. const m_EPROTO = 71
  19954. const m_EPROTONOSUPPORT = 93
  19955. const m_EPROTOTYPE = 91
  19956. const m_ERANGE = 34
  19957. const m_EREMCHG = 78
  19958. const m_EREMOTE = 66
  19959. const m_EREMOTEIO = 121
  19960. const m_ERESTART = 85
  19961. const m_ERFKILL = 132
  19962. const m_EROFS = 30
  19963. const m_ESHUTDOWN = 108
  19964. const m_ESOCKTNOSUPPORT = 94
  19965. const m_ESPIPE = 29
  19966. const m_ESRCH = 3
  19967. const m_ESRMNT = 69
  19968. const m_ESTALE = 116
  19969. const m_ESTRPIPE = 86
  19970. const m_ETIME = 62
  19971. const m_ETIMEDOUT = 110
  19972. const m_ETOOMANYREFS = 109
  19973. const m_ETXTBSY = 26
  19974. const m_EUCLEAN = 117
  19975. const m_EUNATCH = 49
  19976. const m_EUSERS = 87
  19977. const m_EWOULDBLOCK = "EAGAIN"
  19978. const m_EXDEV = 18
  19979. const m_EXFULL = 54
  19980. const m_FALLOC_FL_KEEP_SIZE = 1
  19981. const m_FALLOC_FL_PUNCH_HOLE = 2
  19982. const m_FAPPEND = "O_APPEND"
  19983. const m_FASYNC = "O_ASYNC"
  19984. const m_FD_CLOEXEC = 1
  19985. const m_FFSYNC = "O_SYNC"
  19986. const m_FILENAME_MAX = 4096
  19987. const m_FNDELAY = "O_NDELAY"
  19988. const m_FNONBLOCK = "O_NONBLOCK"
  19989. const m_FOPEN_MAX = 1000
  19990. const m_F_ADD_SEALS = 1033
  19991. const m_F_CANCELLK = 1029
  19992. const m_F_DUPFD = 0
  19993. const m_F_DUPFD_CLOEXEC = 1030
  19994. const m_F_GETFD = 1
  19995. const m_F_GETFL = 3
  19996. const m_F_GETLEASE = 1025
  19997. const m_F_GETLK = 5
  19998. const m_F_GETLK64 = "F_GETLK"
  19999. const m_F_GETOWN = 9
  20000. const m_F_GETOWNER_UIDS = 17
  20001. const m_F_GETOWN_EX = 16
  20002. const m_F_GETPIPE_SZ = 1032
  20003. const m_F_GETSIG = 11
  20004. const m_F_GET_FILE_RW_HINT = 1037
  20005. const m_F_GET_RW_HINT = 1035
  20006. const m_F_GET_SEALS = 1034
  20007. const m_F_NOTIFY = 1026
  20008. const m_F_OFD_GETLK = 36
  20009. const m_F_OFD_SETLK = 37
  20010. const m_F_OFD_SETLKW = 38
  20011. const m_F_OWNER_GID = 2
  20012. const m_F_OWNER_PGRP = 2
  20013. const m_F_OWNER_PID = 1
  20014. const m_F_OWNER_TID = 0
  20015. const m_F_RDLCK = 0
  20016. const m_F_SEAL_FUTURE_WRITE = 0x0010
  20017. const m_F_SEAL_GROW = 0x0004
  20018. const m_F_SEAL_SEAL = 0x0001
  20019. const m_F_SEAL_SHRINK = 0x0002
  20020. const m_F_SEAL_WRITE = 0x0008
  20021. const m_F_SETFD = 2
  20022. const m_F_SETFL = 4
  20023. const m_F_SETLEASE = 1024
  20024. const m_F_SETLK = 6
  20025. const m_F_SETLK64 = "F_SETLK"
  20026. const m_F_SETLKW = 7
  20027. const m_F_SETLKW64 = "F_SETLKW"
  20028. const m_F_SETOWN = 8
  20029. const m_F_SETOWN_EX = 15
  20030. const m_F_SETPIPE_SZ = 1031
  20031. const m_F_SETSIG = 10
  20032. const m_F_SET_FILE_RW_HINT = 1038
  20033. const m_F_SET_RW_HINT = 1036
  20034. const m_F_UNLCK = 2
  20035. const m_F_WRLCK = 1
  20036. const m_GZBUFSIZE = 8192
  20037. const m_GZIP = 2
  20038. const m_GZ_APPEND = 1
  20039. const m_GZ_NONE = 0
  20040. const m_GZ_READ = 7247
  20041. const m_GZ_WRITE = 31153
  20042. const m_LOOK = 0
  20043. const m_L_ctermid = 20
  20044. const m_L_cuserid = 20
  20045. const m_L_tmpnam = 20
  20046. const m_MAX_HANDLE_SZ = 128
  20047. const m_O_APPEND = 02000
  20048. const m_O_ASYNC = 020000
  20049. const m_O_CLOEXEC = 02000000
  20050. const m_O_CREAT = 0100
  20051. const m_O_DIRECT = 040000
  20052. const m_O_DIRECTORY = 0200000
  20053. const m_O_DSYNC = 010000
  20054. const m_O_EXCL = 0200
  20055. const m_O_EXEC = "O_PATH"
  20056. const m_O_LARGEFILE = 0100000
  20057. const m_O_NDELAY = "O_NONBLOCK"
  20058. const m_O_NOATIME = 01000000
  20059. const m_O_NOCTTY = 0400
  20060. const m_O_NOFOLLOW = 0400000
  20061. const m_O_NONBLOCK = 04000
  20062. const m_O_PATH = 010000000
  20063. const m_O_RDONLY = 00
  20064. const m_O_RDWR = 02
  20065. const m_O_RSYNC = 04010000
  20066. const m_O_SEARCH = "O_PATH"
  20067. const m_O_SYNC = 04010000
  20068. const m_O_TMPFILE = 020200000
  20069. const m_O_TRUNC = 01000
  20070. const m_O_TTY_INIT = 0
  20071. const m_O_WRONLY = 01
  20072. const m_POSIX_FADV_DONTNEED = 6
  20073. const m_POSIX_FADV_NOREUSE = 7
  20074. const m_POSIX_FADV_NORMAL = 0
  20075. const m_POSIX_FADV_RANDOM = 1
  20076. const m_POSIX_FADV_SEQUENTIAL = 2
  20077. const m_POSIX_FADV_WILLNEED = 3
  20078. const m_P_tmpdir = "/tmp"
  20079. const m_RWF_WRITE_LIFE_NOT_SET = 0
  20080. const m_RWH_WRITE_LIFE_EXTREME = 5
  20081. const m_RWH_WRITE_LIFE_LONG = 4
  20082. const m_RWH_WRITE_LIFE_MEDIUM = 3
  20083. const m_RWH_WRITE_LIFE_NONE = 1
  20084. const m_RWH_WRITE_LIFE_SHORT = 2
  20085. const m_SPLICE_F_GIFT = 8
  20086. const m_SPLICE_F_MORE = 4
  20087. const m_SPLICE_F_MOVE = 1
  20088. const m_SPLICE_F_NONBLOCK = 2
  20089. const m_SYNC_FILE_RANGE_WAIT_AFTER = 4
  20090. const m_SYNC_FILE_RANGE_WAIT_BEFORE = 1
  20091. const m_SYNC_FILE_RANGE_WRITE = 2
  20092. const m_S_IRGRP = 0040
  20093. const m_S_IROTH = 0004
  20094. const m_S_IRUSR = 0400
  20095. const m_S_IRWXG = 0070
  20096. const m_S_IRWXO = 0007
  20097. const m_S_IRWXU = 0700
  20098. const m_S_ISGID = 02000
  20099. const m_S_ISUID = 04000
  20100. const m_S_ISVTX = 01000
  20101. const m_S_IWGRP = 0020
  20102. const m_S_IWOTH = 0002
  20103. const m_S_IWUSR = 0200
  20104. const m_S_IXGRP = 0010
  20105. const m_S_IXOTH = 0001
  20106. const m_S_IXUSR = 0100
  20107. const m_TMP_MAX = 10000
  20108. const m__IOFBF = 0
  20109. const m__IOLBF = 1
  20110. const m__IONBF = 2
  20111. const m__LARGEFILE_SOURCE = 1
  20112. const m_creat64 = "creat"
  20113. const m_fallocate64 = "fallocate"
  20114. const m_fgetpos64 = "fgetpos"
  20115. const m_flock64 = "flock"
  20116. const m_fopen64 = "fopen"
  20117. const m_fpos64_t = "fpos_t"
  20118. const m_freopen64 = "freopen"
  20119. const m_fseeko64 = "fseeko"
  20120. const m_fsetpos64 = "fsetpos"
  20121. const m_ftello64 = "ftello"
  20122. const m_loff_t = "off_t"
  20123. const m_open64 = "open"
  20124. const m_openat64 = "openat"
  20125. const m_posix_fadvise64 = "posix_fadvise"
  20126. const m_posix_fallocate64 = "posix_fallocate"
  20127. const m_tmpfile64 = "tmpfile"
  20128. type t__isoc_va_list = uintptr
  20129. type Tfpos_t = struct {
  20130. F__lldata [0]int64
  20131. F__align [0]float64
  20132. F__opaque [16]uint8
  20133. }
  20134. type T_G_fpos64_t = Tfpos_t
  20135. type Tcookie_io_functions_t = struct {
  20136. Fread uintptr
  20137. Fwrite uintptr
  20138. Fseek uintptr
  20139. Fclose1 uintptr
  20140. }
  20141. type T_IO_cookie_io_functions_t = Tcookie_io_functions_t
  20142. type Tiovec = struct {
  20143. Fiov_base uintptr
  20144. Fiov_len Tsize_t
  20145. }
  20146. type Tflock = struct {
  20147. Fl_type int16
  20148. Fl_whence int16
  20149. Fl_start Toff_t
  20150. Fl_len Toff_t
  20151. Fl_pid Tpid_t
  20152. }
  20153. type Tfile_handle = struct {
  20154. Fhandle_bytes uint32
  20155. Fhandle_type int32
  20156. }
  20157. type Tf_owner_ex = struct {
  20158. Ftype1 int32
  20159. Fpid Tpid_t
  20160. }
  20161. type Tgz_state = struct {
  20162. Fx TgzFile_s
  20163. Fmode int32
  20164. Ffd int32
  20165. Fpath uintptr
  20166. Fsize uint32
  20167. Fwant uint32
  20168. Fin uintptr
  20169. Fout uintptr
  20170. Fdirect int32
  20171. Fhow int32
  20172. Fstart Toff_t
  20173. Feof int32
  20174. Fpast int32
  20175. Flevel int32
  20176. Fstrategy int32
  20177. Freset int32
  20178. Fskip Toff_t
  20179. Fseek int32
  20180. Ferr int32
  20181. Fmsg uintptr
  20182. Fstrm Tz_stream
  20183. }
  20184. type Tgz_statep = uintptr
  20185. func XzlibVersion(tls *libc.TLS) (r uintptr) {
  20186. return __ccgo_ts
  20187. }
  20188. func XzlibCompileFlags(tls *libc.TLS) (r TuLong) {
  20189. var flags TuLong
  20190. _ = flags
  20191. flags = uint64(0)
  20192. switch libc.Int32FromUint64(libc.Uint64FromInt64(4)) {
  20193. case int32(2):
  20194. case int32(4):
  20195. flags += uint64(1)
  20196. case int32(8):
  20197. flags += uint64(2)
  20198. default:
  20199. flags += uint64(3)
  20200. }
  20201. switch libc.Int32FromUint64(libc.Uint64FromInt64(8)) {
  20202. case int32(2):
  20203. case int32(4):
  20204. flags += libc.Uint64FromInt32(libc.Int32FromInt32(1) << libc.Int32FromInt32(2))
  20205. case int32(8):
  20206. flags += libc.Uint64FromInt32(libc.Int32FromInt32(2) << libc.Int32FromInt32(2))
  20207. default:
  20208. flags += libc.Uint64FromInt32(libc.Int32FromInt32(3) << libc.Int32FromInt32(2))
  20209. }
  20210. switch libc.Int32FromUint64(libc.Uint64FromInt64(8)) {
  20211. case int32(2):
  20212. case int32(4):
  20213. flags += libc.Uint64FromInt32(libc.Int32FromInt32(1) << libc.Int32FromInt32(4))
  20214. case int32(8):
  20215. flags += libc.Uint64FromInt32(libc.Int32FromInt32(2) << libc.Int32FromInt32(4))
  20216. default:
  20217. flags += libc.Uint64FromInt32(libc.Int32FromInt32(3) << libc.Int32FromInt32(4))
  20218. }
  20219. switch libc.Int32FromUint64(libc.Uint64FromInt64(8)) {
  20220. case int32(2):
  20221. case int32(4):
  20222. flags += libc.Uint64FromInt32(libc.Int32FromInt32(1) << libc.Int32FromInt32(6))
  20223. case int32(8):
  20224. flags += libc.Uint64FromInt32(libc.Int32FromInt32(2) << libc.Int32FromInt32(6))
  20225. default:
  20226. flags += libc.Uint64FromInt32(libc.Int32FromInt32(3) << libc.Int32FromInt32(6))
  20227. }
  20228. /*
  20229. #if defined(ASMV) || defined(ASMINF)
  20230. flags += 1 << 9;
  20231. #endif
  20232. */
  20233. return flags
  20234. }
  20235. // C documentation
  20236. //
  20237. // /* exported to allow conversion of error code to string for compress() and
  20238. // * uncompress()
  20239. // */
  20240. func XzError(tls *libc.TLS, err int32) (r uintptr) {
  20241. var v1 int32
  20242. _ = v1
  20243. if err < -int32(6) || err > int32(2) {
  20244. v1 = int32(9)
  20245. } else {
  20246. v1 = int32(2) - err
  20247. }
  20248. return Xz_errmsg[v1]
  20249. }
  20250. func Xzcalloc(tls *libc.TLS, opaque Tvoidpf, items uint32, size uint32) (r Tvoidpf) {
  20251. _ = opaque
  20252. return libc.Xmalloc(tls, uint64(items*size))
  20253. }
  20254. func Xzcfree(tls *libc.TLS, opaque Tvoidpf, ptr Tvoidpf) {
  20255. _ = opaque
  20256. libc.Xfree(tls, ptr)
  20257. }
  20258. // C documentation
  20259. //
  20260. // /* ===========================================================================
  20261. // Compresses the source buffer into the destination buffer. The level
  20262. // parameter has the same meaning as in deflateInit. sourceLen is the byte
  20263. // length of the source buffer. Upon entry, destLen is the total size of the
  20264. // destination buffer, which must be at least 0.1% larger than sourceLen plus
  20265. // 12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
  20266. //
  20267. // compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
  20268. // memory, Z_BUF_ERROR if there was not enough room in the output buffer,
  20269. // Z_STREAM_ERROR if the level parameter is invalid.
  20270. // */
  20271. func Xcompress2(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen TuLong, level int32) (r int32) {
  20272. bp := tls.Alloc(112)
  20273. defer tls.Free(112)
  20274. var err, v3, v4 int32
  20275. var left TuLong
  20276. var max TuInt
  20277. var v1, v2 uint32
  20278. var _ /* stream at bp+0 */ Tz_stream
  20279. _, _, _, _, _, _, _ = err, left, max, v1, v2, v3, v4
  20280. max = libc.Uint32FromInt32(-libc.Int32FromInt32(1))
  20281. left = *(*TuLongf)(unsafe.Pointer(destLen))
  20282. *(*TuLongf)(unsafe.Pointer(destLen)) = uint64(0)
  20283. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzalloc = libc.UintptrFromInt32(0)
  20284. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzfree = libc.UintptrFromInt32(0)
  20285. (*(*Tz_stream)(unsafe.Pointer(bp))).Fopaque = libc.UintptrFromInt32(0)
  20286. err = XdeflateInit_(tls, bp, level, __ccgo_ts, libc.Int32FromInt64(112))
  20287. if err != m_Z_OK {
  20288. return err
  20289. }
  20290. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_out = dest
  20291. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = uint32(0)
  20292. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_in = source
  20293. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = uint32(0)
  20294. for cond := true; cond; cond = err == m_Z_OK {
  20295. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out == uint32(0) {
  20296. if left > uint64(max) {
  20297. v1 = max
  20298. } else {
  20299. v1 = uint32(left)
  20300. }
  20301. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = v1
  20302. left -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out)
  20303. }
  20304. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in == uint32(0) {
  20305. if sourceLen > uint64(max) {
  20306. v2 = max
  20307. } else {
  20308. v2 = uint32(sourceLen)
  20309. }
  20310. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = v2
  20311. sourceLen -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in)
  20312. }
  20313. if sourceLen != 0 {
  20314. v3 = m_Z_NO_FLUSH
  20315. } else {
  20316. v3 = int32(m_Z_FINISH)
  20317. }
  20318. err = Xdeflate(tls, bp, v3)
  20319. }
  20320. *(*TuLongf)(unsafe.Pointer(destLen)) = (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out
  20321. XdeflateEnd(tls, bp)
  20322. if err == int32(m_Z_STREAM_END) {
  20323. v4 = m_Z_OK
  20324. } else {
  20325. v4 = err
  20326. }
  20327. return v4
  20328. }
  20329. // C documentation
  20330. //
  20331. // /* ===========================================================================
  20332. // */
  20333. func Xcompress(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen TuLong) (r int32) {
  20334. return Xcompress2(tls, dest, destLen, source, sourceLen, -int32(1))
  20335. }
  20336. // C documentation
  20337. //
  20338. // /* ===========================================================================
  20339. // If the default memLevel or windowBits for deflateInit() is changed, then
  20340. // this function needs to be updated.
  20341. // */
  20342. func XcompressBound(tls *libc.TLS, sourceLen TuLong) (r TuLong) {
  20343. return sourceLen + sourceLen>>libc.Int32FromInt32(12) + sourceLen>>libc.Int32FromInt32(14) + sourceLen>>libc.Int32FromInt32(25) + uint64(13)
  20344. }
  20345. // C documentation
  20346. //
  20347. // /* ===========================================================================
  20348. // Decompresses the source buffer into the destination buffer. *sourceLen is
  20349. // the byte length of the source buffer. Upon entry, *destLen is the total size
  20350. // of the destination buffer, which must be large enough to hold the entire
  20351. // uncompressed data. (The size of the uncompressed data must have been saved
  20352. // previously by the compressor and transmitted to the decompressor by some
  20353. // mechanism outside the scope of this compression library.) Upon exit,
  20354. // *destLen is the size of the decompressed data and *sourceLen is the number
  20355. // of source bytes consumed. Upon return, source + *sourceLen points to the
  20356. // first unused input byte.
  20357. //
  20358. // uncompress returns Z_OK if success, Z_MEM_ERROR if there was not enough
  20359. // memory, Z_BUF_ERROR if there was not enough room in the output buffer, or
  20360. // Z_DATA_ERROR if the input data was corrupted, including if the input data is
  20361. // an incomplete zlib stream.
  20362. // */
  20363. func Xuncompress2(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen uintptr) (r int32) {
  20364. bp := tls.Alloc(128)
  20365. defer tls.Free(128)
  20366. var err, v3, v4, v5 int32
  20367. var left, len1 TuLong
  20368. var max TuInt
  20369. var v1, v2 uint32
  20370. var _ /* buf at bp+112 */ [1]TByte
  20371. var _ /* stream at bp+0 */ Tz_stream
  20372. _, _, _, _, _, _, _, _, _ = err, left, len1, max, v1, v2, v3, v4, v5
  20373. max = libc.Uint32FromInt32(-libc.Int32FromInt32(1)) /* for detection of incomplete stream when *destLen == 0 */
  20374. len1 = *(*TuLong)(unsafe.Pointer(sourceLen))
  20375. if *(*TuLongf)(unsafe.Pointer(destLen)) != 0 {
  20376. left = *(*TuLongf)(unsafe.Pointer(destLen))
  20377. *(*TuLongf)(unsafe.Pointer(destLen)) = uint64(0)
  20378. } else {
  20379. left = uint64(1)
  20380. dest = bp + 112
  20381. }
  20382. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_in = source
  20383. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = uint32(0)
  20384. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzalloc = libc.UintptrFromInt32(0)
  20385. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzfree = libc.UintptrFromInt32(0)
  20386. (*(*Tz_stream)(unsafe.Pointer(bp))).Fopaque = libc.UintptrFromInt32(0)
  20387. err = XinflateInit_(tls, bp, __ccgo_ts, libc.Int32FromInt64(112))
  20388. if err != m_Z_OK {
  20389. return err
  20390. }
  20391. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_out = dest
  20392. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = uint32(0)
  20393. for cond := true; cond; cond = err == m_Z_OK {
  20394. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out == uint32(0) {
  20395. if left > uint64(max) {
  20396. v1 = max
  20397. } else {
  20398. v1 = uint32(left)
  20399. }
  20400. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = v1
  20401. left -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out)
  20402. }
  20403. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in == uint32(0) {
  20404. if len1 > uint64(max) {
  20405. v2 = max
  20406. } else {
  20407. v2 = uint32(len1)
  20408. }
  20409. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = v2
  20410. len1 -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in)
  20411. }
  20412. err = Xinflate(tls, bp, m_Z_NO_FLUSH)
  20413. }
  20414. *(*TuLong)(unsafe.Pointer(sourceLen)) -= len1 + uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in)
  20415. if dest != bp+112 {
  20416. *(*TuLongf)(unsafe.Pointer(destLen)) = (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out
  20417. } else {
  20418. if (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out != 0 && err == -int32(5) {
  20419. left = uint64(1)
  20420. }
  20421. }
  20422. XinflateEnd(tls, bp)
  20423. if err == int32(m_Z_STREAM_END) {
  20424. v3 = m_Z_OK
  20425. } else {
  20426. if err == int32(m_Z_NEED_DICT) {
  20427. v4 = -int32(3)
  20428. } else {
  20429. if err == -int32(5) && left+uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out) != 0 {
  20430. v5 = -int32(3)
  20431. } else {
  20432. v5 = err
  20433. }
  20434. v4 = v5
  20435. }
  20436. v3 = v4
  20437. }
  20438. return v3
  20439. }
  20440. func Xuncompress(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, _sourceLen TuLong) (r int32) {
  20441. bp := tls.Alloc(16)
  20442. defer tls.Free(16)
  20443. *(*TuLong)(unsafe.Pointer(bp)) = _sourceLen
  20444. return Xuncompress2(tls, dest, destLen, source, bp)
  20445. }
  20446. // C documentation
  20447. //
  20448. // /* gzclose() is in a separate file so that it is linked in only if it is used.
  20449. // That way the other gzclose functions can be used instead to avoid linking in
  20450. // unneeded compression or decompression routines. */
  20451. func Xgzclose(tls *libc.TLS, file TgzFile) (r int32) {
  20452. var state Tgz_statep
  20453. var v1 int32
  20454. _, _ = state, v1
  20455. if file == libc.UintptrFromInt32(0) {
  20456. return -int32(2)
  20457. }
  20458. state = file
  20459. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20460. v1 = Xgzclose_r(tls, file)
  20461. } else {
  20462. v1 = Xgzclose_w(tls, file)
  20463. }
  20464. return v1
  20465. }
  20466. const m_INT_MAX1 = 2147483647
  20467. const m_LSEEK = "lseek"
  20468. const m_O_APPEND1 = 1024
  20469. const m_O_CLOEXEC1 = 524288
  20470. const m_O_CREAT1 = 64
  20471. const m_O_EXCL1 = 128
  20472. const m_O_LARGEFILE1 = 32768
  20473. const m_O_RDONLY1 = 0
  20474. const m_O_TRUNC1 = 512
  20475. const m_O_WRONLY1 = 1
  20476. // C documentation
  20477. //
  20478. // /* Reset gzip file state */
  20479. func _gz_reset(tls *libc.TLS, state Tgz_statep) {
  20480. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0) /* no output data available */
  20481. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) { /* for reading ... */
  20482. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0 /* not at end of file */
  20483. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0 /* have not read past end yet */
  20484. (*Tgz_state)(unsafe.Pointer(state)).Fhow = m_LOOK /* look for gzip header */
  20485. } else { /* for writing ... */
  20486. (*Tgz_state)(unsafe.Pointer(state)).Freset = 0
  20487. } /* no deflateReset pending */
  20488. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0 /* no seek request pending */
  20489. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0)) /* clear error */
  20490. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos = 0 /* no uncompressed data yet */
  20491. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0) /* no input data yet */
  20492. }
  20493. // C documentation
  20494. //
  20495. // /* Open a gzip file either by name or file descriptor. */
  20496. func _gz_open(tls *libc.TLS, path uintptr, fd int32, mode uintptr) (r TgzFile) {
  20497. bp := tls.Alloc(16)
  20498. defer tls.Free(16)
  20499. var cloexec, exclusive, oflag, v1, v2, v3, v4, v5 int32
  20500. var len1 Tz_size_t
  20501. var state Tgz_statep
  20502. _, _, _, _, _, _, _, _, _, _ = cloexec, exclusive, len1, oflag, state, v1, v2, v3, v4, v5
  20503. cloexec = 0
  20504. exclusive = 0
  20505. /* check input */
  20506. if path == libc.UintptrFromInt32(0) {
  20507. return libc.UintptrFromInt32(0)
  20508. }
  20509. /* allocate gzFile structure to return */
  20510. state = libc.Xmalloc(tls, uint64(240))
  20511. if state == libc.UintptrFromInt32(0) {
  20512. return libc.UintptrFromInt32(0)
  20513. }
  20514. (*Tgz_state)(unsafe.Pointer(state)).Fsize = uint32(0) /* no buffers allocated yet */
  20515. (*Tgz_state)(unsafe.Pointer(state)).Fwant = uint32(m_GZBUFSIZE) /* requested buffer size */
  20516. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = libc.UintptrFromInt32(0) /* no error message yet */
  20517. /* interpret mode */
  20518. (*Tgz_state)(unsafe.Pointer(state)).Fmode = m_GZ_NONE
  20519. (*Tgz_state)(unsafe.Pointer(state)).Flevel = -int32(1)
  20520. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = m_Z_DEFAULT_STRATEGY
  20521. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = 0
  20522. for *(*uint8)(unsafe.Pointer(mode)) != 0 {
  20523. if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(mode))) >= int32('0') && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(mode))) <= int32('9') {
  20524. (*Tgz_state)(unsafe.Pointer(state)).Flevel = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(mode))) - int32('0')
  20525. } else {
  20526. switch libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(mode))) {
  20527. case int32('r'):
  20528. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_READ)
  20529. case int32('w'):
  20530. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_WRITE)
  20531. case int32('a'):
  20532. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_APPEND)
  20533. case int32('+'): /* can't read and write at the same time */
  20534. libc.Xfree(tls, state)
  20535. return libc.UintptrFromInt32(0)
  20536. case int32('b'): /* ignore -- will request binary anyway */
  20537. case int32('e'):
  20538. cloexec = int32(1)
  20539. case int32('x'):
  20540. exclusive = int32(1)
  20541. case int32('f'):
  20542. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_FILTERED)
  20543. case int32('h'):
  20544. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_HUFFMAN_ONLY)
  20545. case int32('R'):
  20546. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_RLE)
  20547. case int32('F'):
  20548. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_FIXED)
  20549. case int32('T'):
  20550. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1)
  20551. default: /* could consider as an error, but just ignore */
  20552. }
  20553. }
  20554. mode++
  20555. }
  20556. /* must provide an "r", "w", or "a" */
  20557. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == m_GZ_NONE {
  20558. libc.Xfree(tls, state)
  20559. return libc.UintptrFromInt32(0)
  20560. }
  20561. /* can't force transparent read */
  20562. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20563. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  20564. libc.Xfree(tls, state)
  20565. return libc.UintptrFromInt32(0)
  20566. }
  20567. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1) /* for empty file */
  20568. }
  20569. /* save the path name for error messages */
  20570. len1 = libc.Xstrlen(tls, path)
  20571. (*Tgz_state)(unsafe.Pointer(state)).Fpath = libc.Xmalloc(tls, len1+uint64(1))
  20572. if (*Tgz_state)(unsafe.Pointer(state)).Fpath == libc.UintptrFromInt32(0) {
  20573. libc.Xfree(tls, state)
  20574. return libc.UintptrFromInt32(0)
  20575. }
  20576. libc.X__builtin_snprintf(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath, len1+uint64(1), __ccgo_ts+584, libc.VaList(bp+8, path))
  20577. /* compute the flags for open() */
  20578. if cloexec != 0 {
  20579. v1 = int32(m_O_CLOEXEC1)
  20580. } else {
  20581. v1 = 0
  20582. }
  20583. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20584. v2 = m_O_RDONLY1
  20585. } else {
  20586. if exclusive != 0 {
  20587. v3 = int32(m_O_EXCL1)
  20588. } else {
  20589. v3 = 0
  20590. }
  20591. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_WRITE) {
  20592. v4 = int32(m_O_TRUNC1)
  20593. } else {
  20594. v4 = int32(m_O_APPEND1)
  20595. }
  20596. v2 = libc.Int32FromInt32(m_O_WRONLY1) | libc.Int32FromInt32(m_O_CREAT1) | v3 | v4
  20597. }
  20598. oflag = int32(m_O_LARGEFILE1) | v1 | v2
  20599. /* open the file with the appropriate flags (or just use fd) */
  20600. if fd > -int32(1) {
  20601. v5 = fd
  20602. } else {
  20603. v5 = libc.Xopen(tls, path, oflag, libc.VaList(bp+8, int32(0666)))
  20604. }
  20605. (*Tgz_state)(unsafe.Pointer(state)).Ffd = v5
  20606. if (*Tgz_state)(unsafe.Pointer(state)).Ffd == -int32(1) {
  20607. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  20608. libc.Xfree(tls, state)
  20609. return libc.UintptrFromInt32(0)
  20610. }
  20611. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_APPEND) {
  20612. libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(2)) /* so gzoffset() is correct */
  20613. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_WRITE) /* simplify later checks */
  20614. }
  20615. /* save the current position for rewinding (only if reading) */
  20616. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20617. (*Tgz_state)(unsafe.Pointer(state)).Fstart = libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(1))
  20618. if (*Tgz_state)(unsafe.Pointer(state)).Fstart == int64(-int32(1)) {
  20619. (*Tgz_state)(unsafe.Pointer(state)).Fstart = 0
  20620. }
  20621. }
  20622. /* initialize stream */
  20623. _gz_reset(tls, state)
  20624. /* return stream */
  20625. return state
  20626. }
  20627. // C documentation
  20628. //
  20629. // /* -- see zlib.h -- */
  20630. func Xgzopen(tls *libc.TLS, path uintptr, mode uintptr) (r TgzFile) {
  20631. return _gz_open(tls, path, -int32(1), mode)
  20632. }
  20633. // C documentation
  20634. //
  20635. // /* -- see zlib.h -- */
  20636. func Xgzopen64(tls *libc.TLS, path uintptr, mode uintptr) (r TgzFile) {
  20637. return _gz_open(tls, path, -int32(1), mode)
  20638. }
  20639. // C documentation
  20640. //
  20641. // /* -- see zlib.h -- */
  20642. func Xgzdopen(tls *libc.TLS, fd int32, mode uintptr) (r TgzFile) {
  20643. bp := tls.Alloc(16)
  20644. defer tls.Free(16)
  20645. var gz TgzFile
  20646. var path, v1 uintptr
  20647. var v2 bool
  20648. _, _, _, _ = gz, path, v1, v2
  20649. if v2 = fd == -int32(1); !v2 {
  20650. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(7)+libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))
  20651. path = v1
  20652. }
  20653. if v2 || v1 == libc.UintptrFromInt32(0) {
  20654. return libc.UintptrFromInt32(0)
  20655. }
  20656. libc.X__builtin_snprintf(tls, path, libc.Uint64FromInt32(7)+libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4), __ccgo_ts+587, libc.VaList(bp+8, fd))
  20657. gz = _gz_open(tls, path, fd, mode)
  20658. libc.Xfree(tls, path)
  20659. return gz
  20660. }
  20661. /* -- see zlib.h -- */
  20662. // C documentation
  20663. //
  20664. // /* -- see zlib.h -- */
  20665. func Xgzbuffer(tls *libc.TLS, file TgzFile, size uint32) (r int32) {
  20666. var state Tgz_statep
  20667. _ = state
  20668. /* get internal structure and check integrity */
  20669. if file == libc.UintptrFromInt32(0) {
  20670. return -int32(1)
  20671. }
  20672. state = file
  20673. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20674. return -int32(1)
  20675. }
  20676. /* make sure we haven't already allocated memory */
  20677. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != uint32(0) {
  20678. return -int32(1)
  20679. }
  20680. /* check and set requested size */
  20681. if size<<int32(1) < size {
  20682. return -int32(1)
  20683. } /* need to be able to double it */
  20684. if size < uint32(8) {
  20685. size = uint32(8)
  20686. } /* needed to behave well with flushing */
  20687. (*Tgz_state)(unsafe.Pointer(state)).Fwant = size
  20688. return 0
  20689. }
  20690. // C documentation
  20691. //
  20692. // /* -- see zlib.h -- */
  20693. func Xgzrewind(tls *libc.TLS, file TgzFile) (r int32) {
  20694. var state Tgz_statep
  20695. _ = state
  20696. /* get internal structure */
  20697. if file == libc.UintptrFromInt32(0) {
  20698. return -int32(1)
  20699. }
  20700. state = file
  20701. /* check that we're reading and that there's no error */
  20702. 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) {
  20703. return -int32(1)
  20704. }
  20705. /* back up and start over */
  20706. if libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tgz_state)(unsafe.Pointer(state)).Fstart, 0) == int64(-int32(1)) {
  20707. return -int32(1)
  20708. }
  20709. _gz_reset(tls, state)
  20710. return 0
  20711. }
  20712. // C documentation
  20713. //
  20714. // /* -- see zlib.h -- */
  20715. func Xgzseek64(tls *libc.TLS, file TgzFile, offset Toff_t, whence int32) (r Toff_t) {
  20716. var n, v1 uint32
  20717. var ret Toff_t
  20718. var state Tgz_statep
  20719. _, _, _, _ = n, ret, state, v1
  20720. /* get internal structure and check integrity */
  20721. if file == libc.UintptrFromInt32(0) {
  20722. return int64(-int32(1))
  20723. }
  20724. state = file
  20725. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20726. return int64(-int32(1))
  20727. }
  20728. /* check that there's no error */
  20729. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  20730. return int64(-int32(1))
  20731. }
  20732. /* can only seek from start or relative to current position */
  20733. if whence != 0 && whence != int32(1) {
  20734. return int64(-int32(1))
  20735. }
  20736. /* normalize offset to a SEEK_CUR specification */
  20737. if whence == 0 {
  20738. offset -= (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  20739. } else {
  20740. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  20741. offset += (*Tgz_state)(unsafe.Pointer(state)).Fskip
  20742. }
  20743. }
  20744. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  20745. /* if within raw area while reading, just go there */
  20746. 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 {
  20747. ret = libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, offset-libc.Int64FromUint32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave), int32(1))
  20748. if ret == int64(-int32(1)) {
  20749. return int64(-int32(1))
  20750. }
  20751. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  20752. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0
  20753. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  20754. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  20755. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  20756. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0)
  20757. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += offset
  20758. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  20759. }
  20760. /* calculate skip amount, rewinding if needed for back seek when reading */
  20761. if offset < 0 {
  20762. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) { /* writing -- can't go backwards */
  20763. return int64(-int32(1))
  20764. }
  20765. offset += (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  20766. if offset < 0 { /* before start of file! */
  20767. return int64(-int32(1))
  20768. }
  20769. if Xgzrewind(tls, file) == -int32(1) { /* rewind, then skip to offset */
  20770. return int64(-int32(1))
  20771. }
  20772. }
  20773. /* if reading, skip what's in output buffer (one less gzgetc() check) */
  20774. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20775. if libc.Bool(libc.Bool(uint64(4) == uint64(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > Xgz_intmax(tls)) || libc.Int64FromUint32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave) > offset {
  20776. v1 = libc.Uint32FromInt64(offset)
  20777. } else {
  20778. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  20779. }
  20780. n = v1
  20781. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  20782. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  20783. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(n)
  20784. offset -= libc.Int64FromUint32(n)
  20785. }
  20786. /* request skip (if not zero) */
  20787. if offset != 0 {
  20788. (*Tgz_state)(unsafe.Pointer(state)).Fseek = int32(1)
  20789. (*Tgz_state)(unsafe.Pointer(state)).Fskip = offset
  20790. }
  20791. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos + offset
  20792. }
  20793. // C documentation
  20794. //
  20795. // /* -- see zlib.h -- */
  20796. func Xgzseek(tls *libc.TLS, file TgzFile, offset Toff_t, whence int32) (r Toff_t) {
  20797. var ret Toff_t
  20798. var v1 int64
  20799. _, _ = ret, v1
  20800. ret = Xgzseek64(tls, file, offset, whence)
  20801. if ret == ret {
  20802. v1 = ret
  20803. } else {
  20804. v1 = int64(-int32(1))
  20805. }
  20806. return v1
  20807. }
  20808. // C documentation
  20809. //
  20810. // /* -- see zlib.h -- */
  20811. func Xgztell64(tls *libc.TLS, file TgzFile) (r Toff_t) {
  20812. var state Tgz_statep
  20813. var v1 int64
  20814. _, _ = state, v1
  20815. /* get internal structure and check integrity */
  20816. if file == libc.UintptrFromInt32(0) {
  20817. return int64(-int32(1))
  20818. }
  20819. state = file
  20820. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20821. return int64(-int32(1))
  20822. }
  20823. /* return position */
  20824. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  20825. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fskip
  20826. } else {
  20827. v1 = 0
  20828. }
  20829. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos + v1
  20830. }
  20831. // C documentation
  20832. //
  20833. // /* -- see zlib.h -- */
  20834. func Xgztell(tls *libc.TLS, file TgzFile) (r Toff_t) {
  20835. var ret Toff_t
  20836. var v1 int64
  20837. _, _ = ret, v1
  20838. ret = Xgztell64(tls, file)
  20839. if ret == ret {
  20840. v1 = ret
  20841. } else {
  20842. v1 = int64(-int32(1))
  20843. }
  20844. return v1
  20845. }
  20846. // C documentation
  20847. //
  20848. // /* -- see zlib.h -- */
  20849. func Xgzoffset64(tls *libc.TLS, file TgzFile) (r Toff_t) {
  20850. var offset Toff_t
  20851. var state Tgz_statep
  20852. _, _ = offset, state
  20853. /* get internal structure and check integrity */
  20854. if file == libc.UintptrFromInt32(0) {
  20855. return int64(-int32(1))
  20856. }
  20857. state = file
  20858. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20859. return int64(-int32(1))
  20860. }
  20861. /* compute and return effective offset in file */
  20862. offset = libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(1))
  20863. if offset == int64(-int32(1)) {
  20864. return int64(-int32(1))
  20865. }
  20866. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) { /* reading */
  20867. offset -= libc.Int64FromUint32((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in)
  20868. } /* don't count buffered input */
  20869. return offset
  20870. }
  20871. // C documentation
  20872. //
  20873. // /* -- see zlib.h -- */
  20874. func Xgzoffset(tls *libc.TLS, file TgzFile) (r Toff_t) {
  20875. var ret Toff_t
  20876. var v1 int64
  20877. _, _ = ret, v1
  20878. ret = Xgzoffset64(tls, file)
  20879. if ret == ret {
  20880. v1 = ret
  20881. } else {
  20882. v1 = int64(-int32(1))
  20883. }
  20884. return v1
  20885. }
  20886. // C documentation
  20887. //
  20888. // /* -- see zlib.h -- */
  20889. func Xgzeof(tls *libc.TLS, file TgzFile) (r int32) {
  20890. var state Tgz_statep
  20891. var v1 int32
  20892. _, _ = state, v1
  20893. /* get internal structure and check integrity */
  20894. if file == libc.UintptrFromInt32(0) {
  20895. return 0
  20896. }
  20897. state = file
  20898. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20899. return 0
  20900. }
  20901. /* return end-of-file state */
  20902. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20903. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fpast
  20904. } else {
  20905. v1 = 0
  20906. }
  20907. return v1
  20908. }
  20909. // C documentation
  20910. //
  20911. // /* -- see zlib.h -- */
  20912. func Xgzerror(tls *libc.TLS, file TgzFile, errnum uintptr) (r uintptr) {
  20913. var state Tgz_statep
  20914. var v1, v2 uintptr
  20915. _, _, _ = state, v1, v2
  20916. /* get internal structure and check integrity */
  20917. if file == libc.UintptrFromInt32(0) {
  20918. return libc.UintptrFromInt32(0)
  20919. }
  20920. state = file
  20921. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20922. return libc.UintptrFromInt32(0)
  20923. }
  20924. /* return error information */
  20925. if errnum != libc.UintptrFromInt32(0) {
  20926. *(*int32)(unsafe.Pointer(errnum)) = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  20927. }
  20928. if (*Tgz_state)(unsafe.Pointer(state)).Ferr == -int32(4) {
  20929. v1 = __ccgo_ts + 595
  20930. } else {
  20931. if (*Tgz_state)(unsafe.Pointer(state)).Fmsg == libc.UintptrFromInt32(0) {
  20932. v2 = __ccgo_ts + 494
  20933. } else {
  20934. v2 = (*Tgz_state)(unsafe.Pointer(state)).Fmsg
  20935. }
  20936. v1 = v2
  20937. }
  20938. return v1
  20939. }
  20940. // C documentation
  20941. //
  20942. // /* -- see zlib.h -- */
  20943. func Xgzclearerr(tls *libc.TLS, file TgzFile) {
  20944. var state Tgz_statep
  20945. _ = state
  20946. /* get internal structure and check integrity */
  20947. if file == libc.UintptrFromInt32(0) {
  20948. return
  20949. }
  20950. state = file
  20951. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20952. return
  20953. }
  20954. /* clear error and end-of-file */
  20955. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20956. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0
  20957. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  20958. }
  20959. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  20960. }
  20961. // C documentation
  20962. //
  20963. // /* Create an error message in allocated memory and set state->err and
  20964. // state->msg accordingly. Free any previous error message already there. Do
  20965. // not try to free or allocate space if the error is Z_MEM_ERROR (out of
  20966. // memory). Simply save the error message as a static string. If there is an
  20967. // allocation failure constructing the error message, then convert the error to
  20968. // out of memory. */
  20969. func Xgz_error(tls *libc.TLS, state Tgz_statep, err int32, msg uintptr) {
  20970. bp := tls.Alloc(32)
  20971. defer tls.Free(32)
  20972. var v1 uintptr
  20973. _ = v1
  20974. /* free previously allocated message and clear */
  20975. if (*Tgz_state)(unsafe.Pointer(state)).Fmsg != libc.UintptrFromInt32(0) {
  20976. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(4) {
  20977. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fmsg)
  20978. }
  20979. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = libc.UintptrFromInt32(0)
  20980. }
  20981. /* if fatal, set state->x.have to 0 so that the gzgetc() macro fails */
  20982. if err != m_Z_OK && err != -int32(5) {
  20983. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  20984. }
  20985. /* set error code, and if no message, then done */
  20986. (*Tgz_state)(unsafe.Pointer(state)).Ferr = err
  20987. if msg == libc.UintptrFromInt32(0) {
  20988. return
  20989. }
  20990. /* for an out of memory error, return literal string when requested */
  20991. if err == -int32(4) {
  20992. return
  20993. }
  20994. /* construct error message with path */
  20995. v1 = libc.Xmalloc(tls, libc.Xstrlen(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)+libc.Xstrlen(tls, msg)+uint64(3))
  20996. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = v1
  20997. if v1 == libc.UintptrFromInt32(0) {
  20998. (*Tgz_state)(unsafe.Pointer(state)).Ferr = -int32(4)
  20999. return
  21000. }
  21001. 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+609, libc.VaList(bp+8, (*Tgz_state)(unsafe.Pointer(state)).Fpath, __ccgo_ts+616, msg))
  21002. }
  21003. // C documentation
  21004. //
  21005. // /* portably return maximum value for an int (when limits.h presumed not
  21006. // available) -- we need to do this to cover cases where 2's complement not
  21007. // used, since C standard permits 1's complement and sign-bit representations,
  21008. // otherwise we could just use ((unsigned)-1) >> 1 */
  21009. func Xgz_intmax(tls *libc.TLS) (r uint32) {
  21010. return uint32(m_INT_MAX1)
  21011. }
  21012. const m_INT_MAX2 = 0x7fffffff
  21013. const m_O_APPEND2 = 02000
  21014. const m_O_CLOEXEC2 = 02000000
  21015. const m_O_CREAT2 = 0100
  21016. const m_O_EXCL2 = 0200
  21017. const m_O_LARGEFILE2 = 0100000
  21018. const m_O_RDONLY2 = 00
  21019. const m_O_TRUNC2 = 01000
  21020. const m_O_WRONLY2 = 01
  21021. // C documentation
  21022. //
  21023. // /* Use read() to load a buffer -- return -1 on error, otherwise 0. Read from
  21024. // state->fd, and update state->eof, state->err, and state->msg as appropriate.
  21025. // This function needs to loop on read(), since read() is not guaranteed to
  21026. // read the number of bytes requested, depending on the type of descriptor. */
  21027. func _gz_load(tls *libc.TLS, state Tgz_statep, buf uintptr, len1 uint32, have uintptr) (r int32) {
  21028. var get, max uint32
  21029. var ret int32
  21030. _, _, _ = get, max, ret
  21031. max = libc.Uint32FromInt32(-libc.Int32FromInt32(1))>>libc.Int32FromInt32(2) + libc.Uint32FromInt32(1)
  21032. *(*uint32)(unsafe.Pointer(have)) = uint32(0)
  21033. for cond := true; cond; cond = *(*uint32)(unsafe.Pointer(have)) < len1 {
  21034. get = len1 - *(*uint32)(unsafe.Pointer(have))
  21035. if get > max {
  21036. get = max
  21037. }
  21038. ret = int32(libc.Xread(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, buf+uintptr(*(*uint32)(unsafe.Pointer(have))), uint64(get)))
  21039. if ret <= 0 {
  21040. break
  21041. }
  21042. *(*uint32)(unsafe.Pointer(have)) += libc.Uint32FromInt32(ret)
  21043. }
  21044. if ret < 0 {
  21045. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))))
  21046. return -int32(1)
  21047. }
  21048. if ret == 0 {
  21049. (*Tgz_state)(unsafe.Pointer(state)).Feof = int32(1)
  21050. }
  21051. return 0
  21052. }
  21053. // C documentation
  21054. //
  21055. // /* Load up input buffer and set eof flag if last data loaded -- return -1 on
  21056. // error, 0 otherwise. Note that the eof flag is set when the end of the input
  21057. // file is reached, even though there may be unused data in the buffer. Once
  21058. // that data has been used, no more attempts will be made to read the file.
  21059. // If strm->avail_in != 0, then the current data is moved to the beginning of
  21060. // the input buffer, and then the remainder of the buffer is loaded with the
  21061. // available data from the input file. */
  21062. func _gz_avail(tls *libc.TLS, state Tgz_statep) (r int32) {
  21063. bp := tls.Alloc(16)
  21064. defer tls.Free(16)
  21065. var n, v1 uint32
  21066. var p, q, v3, v4 uintptr
  21067. var strm Tz_streamp
  21068. var _ /* got at bp+0 */ uint32
  21069. _, _, _, _, _, _, _ = n, p, q, strm, v1, v3, v4
  21070. strm = state + 128
  21071. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  21072. return -int32(1)
  21073. }
  21074. if (*Tgz_state)(unsafe.Pointer(state)).Feof == 0 {
  21075. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 { /* copy what's there to the start */
  21076. p = (*Tgz_state)(unsafe.Pointer(state)).Fin
  21077. q = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  21078. n = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  21079. for {
  21080. v3 = p
  21081. p++
  21082. v4 = q
  21083. q++
  21084. *(*uint8)(unsafe.Pointer(v3)) = *(*uint8)(unsafe.Pointer(v4))
  21085. goto _2
  21086. _2:
  21087. ;
  21088. n--
  21089. v1 = n
  21090. if !(v1 != 0) {
  21091. break
  21092. }
  21093. }
  21094. }
  21095. 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) {
  21096. return -int32(1)
  21097. }
  21098. *(*TuInt)(unsafe.Pointer(strm + 8)) += *(*uint32)(unsafe.Pointer(bp))
  21099. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  21100. }
  21101. return 0
  21102. }
  21103. // C documentation
  21104. //
  21105. // /* Look for gzip header, set up for inflate or copy. state->x.have must be 0.
  21106. // If this is the first time in, allocate required memory. state->how will be
  21107. // left unchanged if there is no more input data available, will be set to COPY
  21108. // if there is no gzip header and direct copying will be performed, or it will
  21109. // be set to GZIP for decompression. If direct copying, then leftover input
  21110. // data from the input buffer will be copied to the output buffer. In that
  21111. // case, all further file reads will be directly to either the output buffer or
  21112. // a user buffer. If decompressing, the inflate state will be initialized.
  21113. // gz_look() will return 0 on success or -1 on failure. */
  21114. func _gz_look(tls *libc.TLS, state Tgz_statep) (r int32) {
  21115. var strm Tz_streamp
  21116. _ = strm
  21117. strm = state + 128
  21118. /* allocate read buffers and inflate memory */
  21119. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) {
  21120. /* allocate buffers */
  21121. (*Tgz_state)(unsafe.Pointer(state)).Fin = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant))
  21122. (*Tgz_state)(unsafe.Pointer(state)).Fout = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant<<int32(1)))
  21123. if (*Tgz_state)(unsafe.Pointer(state)).Fin == libc.UintptrFromInt32(0) || (*Tgz_state)(unsafe.Pointer(state)).Fout == libc.UintptrFromInt32(0) {
  21124. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  21125. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21126. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21127. return -int32(1)
  21128. }
  21129. (*Tgz_state)(unsafe.Pointer(state)).Fsize = (*Tgz_state)(unsafe.Pointer(state)).Fwant
  21130. /* allocate inflate memory */
  21131. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fzalloc = uintptr(m_Z_NULL)
  21132. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fzfree = uintptr(m_Z_NULL)
  21133. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fopaque = uintptr(m_Z_NULL)
  21134. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0)
  21135. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = uintptr(m_Z_NULL)
  21136. if XinflateInit2_(tls, state+128, libc.Int32FromInt32(15)+libc.Int32FromInt32(16), __ccgo_ts, libc.Int32FromInt64(112)) != m_Z_OK { /* gunzip */
  21137. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  21138. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21139. (*Tgz_state)(unsafe.Pointer(state)).Fsize = uint32(0)
  21140. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21141. return -int32(1)
  21142. }
  21143. }
  21144. /* get at least the magic bytes in the input buffer */
  21145. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in < uint32(2) {
  21146. if _gz_avail(tls, state) == -int32(1) {
  21147. return -int32(1)
  21148. }
  21149. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  21150. return 0
  21151. }
  21152. }
  21153. /* look for gzip magic bytes -- if there, do gzip decoding (note: there is
  21154. a logical dilemma here when considering the case of a partially written
  21155. gzip file, to wit, if a single 31 byte is written, then we cannot tell
  21156. whether this is a single-byte file, or just a partially written gzip
  21157. file -- for here we assume that if a gzip file is being written, then
  21158. the header will be written in a single operation, so that reading a
  21159. single byte is sufficient indication that it is not a gzip file) */
  21160. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in > uint32(1) && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in))) == int32(31) && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in + 1))) == int32(139) {
  21161. XinflateReset(tls, strm)
  21162. (*Tgz_state)(unsafe.Pointer(state)).Fhow = int32(m_GZIP)
  21163. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = 0
  21164. return 0
  21165. }
  21166. /* no gzip header -- if we were decoding gzip before, then this is trailing
  21167. garbage. Ignore the trailing garbage and finish. */
  21168. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect == 0 {
  21169. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(0)
  21170. (*Tgz_state)(unsafe.Pointer(state)).Feof = int32(1)
  21171. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  21172. return 0
  21173. }
  21174. /* doing raw i/o, copy any leftover input to output -- this assumes that
  21175. the output buffer is larger than the input buffer, which also assures
  21176. space for gzungetc() */
  21177. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21178. 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))
  21179. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  21180. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(0)
  21181. (*Tgz_state)(unsafe.Pointer(state)).Fhow = int32(m_COPY)
  21182. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1)
  21183. return 0
  21184. }
  21185. // C documentation
  21186. //
  21187. // /* Decompress from input to the provided next_out and avail_out in the state.
  21188. // On return, state->x.have and state->x.next point to the just decompressed
  21189. // data. If the gzip stream completes, state->how is reset to LOOK to look for
  21190. // the next gzip stream or raw data, once state->x.have is depleted. Returns 0
  21191. // on success, -1 on failure. */
  21192. func _gz_decomp(tls *libc.TLS, state Tgz_statep) (r int32) {
  21193. var had uint32
  21194. var ret int32
  21195. var strm Tz_streamp
  21196. var v1 uintptr
  21197. _, _, _, _ = had, ret, strm, v1
  21198. ret = m_Z_OK
  21199. strm = state + 128
  21200. /* fill output buffer up to end of deflate stream */
  21201. had = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  21202. for cond := true; cond; cond = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out != 0 && ret != int32(m_Z_STREAM_END) {
  21203. /* get more input for inflate() */
  21204. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) && _gz_avail(tls, state) == -int32(1) {
  21205. return -int32(1)
  21206. }
  21207. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  21208. Xgz_error(tls, state, -int32(5), __ccgo_ts+619)
  21209. break
  21210. }
  21211. /* decompress and handle errors */
  21212. ret = Xinflate(tls, strm, m_Z_NO_FLUSH)
  21213. if ret == -int32(2) || ret == int32(m_Z_NEED_DICT) {
  21214. Xgz_error(tls, state, -int32(2), __ccgo_ts+642)
  21215. return -int32(1)
  21216. }
  21217. if ret == -int32(4) {
  21218. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21219. return -int32(1)
  21220. }
  21221. if ret == -int32(3) { /* deflate stream invalid */
  21222. if (*Tz_stream)(unsafe.Pointer(strm)).Fmsg == libc.UintptrFromInt32(0) {
  21223. v1 = __ccgo_ts + 681
  21224. } else {
  21225. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Fmsg
  21226. }
  21227. Xgz_error(tls, state, -int32(3), v1)
  21228. return -int32(1)
  21229. }
  21230. }
  21231. /* update available output */
  21232. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = had - (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  21233. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out - uintptr((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave)
  21234. /* if the gzip stream completed successfully, look for another */
  21235. if ret == int32(m_Z_STREAM_END) {
  21236. (*Tgz_state)(unsafe.Pointer(state)).Fhow = m_LOOK
  21237. }
  21238. /* good decompression */
  21239. return 0
  21240. }
  21241. // C documentation
  21242. //
  21243. // /* Fetch data and put it in the output buffer. Assumes state->x.have is 0.
  21244. // Data is either copied from the input file or decompressed from the input
  21245. // file depending on state->how. If state->how is LOOK, then a gzip header is
  21246. // looked for to determine whether to copy or decompress. Returns -1 on error,
  21247. // otherwise 0. gz_fetch() will leave state->how as COPY or GZIP unless the
  21248. // end of the input file has been reached and all data has been processed. */
  21249. func _gz_fetch(tls *libc.TLS, state Tgz_statep) (r int32) {
  21250. var strm Tz_streamp
  21251. _ = strm
  21252. strm = state + 128
  21253. 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) {
  21254. switch (*Tgz_state)(unsafe.Pointer(state)).Fhow {
  21255. case m_LOOK: /* -> LOOK, COPY (only if never GZIP), or GZIP */
  21256. if _gz_look(tls, state) == -int32(1) {
  21257. return -int32(1)
  21258. }
  21259. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK {
  21260. return 0
  21261. }
  21262. case int32(m_COPY): /* -> COPY */
  21263. if _gz_load(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fout, (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1), state) == -int32(1) {
  21264. return -int32(1)
  21265. }
  21266. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21267. return 0
  21268. case int32(m_GZIP): /* -> GZIP or LOOK (if end of gzip stream) */
  21269. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize << int32(1)
  21270. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21271. if _gz_decomp(tls, state) == -int32(1) {
  21272. return -int32(1)
  21273. }
  21274. }
  21275. }
  21276. return 0
  21277. }
  21278. // C documentation
  21279. //
  21280. // /* Skip len uncompressed bytes of output. Return -1 on error, 0 on success. */
  21281. func _gz_skip(tls *libc.TLS, state Tgz_statep, len1 Toff_t) (r int32) {
  21282. var n, v1 uint32
  21283. _, _ = n, v1
  21284. /* skip over len bytes or reach end-of-file, whichever comes first */
  21285. for len1 != 0 {
  21286. /* skip over whatever is in output buffer */
  21287. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  21288. if libc.Bool(libc.Bool(uint64(4) == uint64(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > Xgz_intmax(tls)) || libc.Int64FromUint32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave) > len1 {
  21289. v1 = libc.Uint32FromInt64(len1)
  21290. } else {
  21291. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  21292. }
  21293. n = v1
  21294. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  21295. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  21296. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(n)
  21297. len1 -= libc.Int64FromUint32(n)
  21298. } else {
  21299. if (*Tgz_state)(unsafe.Pointer(state)).Feof != 0 && (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  21300. break
  21301. } else {
  21302. /* get more output, looking for header if required */
  21303. if _gz_fetch(tls, state) == -int32(1) {
  21304. return -int32(1)
  21305. }
  21306. }
  21307. }
  21308. }
  21309. return 0
  21310. }
  21311. // C documentation
  21312. //
  21313. // /* Read len bytes into buf from file, or less than len up to the end of the
  21314. // input. Return the number of bytes read. If zero is returned, either the
  21315. // end of file was reached, or there was an error. state->err must be
  21316. // consulted in that case to determine which. */
  21317. func _gz_read(tls *libc.TLS, state Tgz_statep, buf Tvoidp, len1 Tz_size_t) (r Tz_size_t) {
  21318. bp := tls.Alloc(16)
  21319. defer tls.Free(16)
  21320. var got Tz_size_t
  21321. var _ /* n at bp+0 */ uint32
  21322. _ = got
  21323. /* if len is zero, avoid unnecessary operations */
  21324. if len1 == uint64(0) {
  21325. return uint64(0)
  21326. }
  21327. /* process a skip request */
  21328. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21329. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21330. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21331. return uint64(0)
  21332. }
  21333. }
  21334. /* get len bytes to buf, or less than len if at the end */
  21335. got = uint64(0)
  21336. for cond := true; cond; cond = len1 != 0 {
  21337. /* set n to the maximum amount of len that fits in an unsigned int */
  21338. *(*uint32)(unsafe.Pointer(bp)) = libc.Uint32FromInt32(-libc.Int32FromInt32(1))
  21339. if uint64(*(*uint32)(unsafe.Pointer(bp))) > len1 {
  21340. *(*uint32)(unsafe.Pointer(bp)) = uint32(len1)
  21341. }
  21342. /* first just try copying data from the output buffer */
  21343. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  21344. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave < *(*uint32)(unsafe.Pointer(bp)) {
  21345. *(*uint32)(unsafe.Pointer(bp)) = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  21346. }
  21347. libc.Xmemcpy(tls, buf, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, uint64(*(*uint32)(unsafe.Pointer(bp))))
  21348. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(*(*uint32)(unsafe.Pointer(bp)))
  21349. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= *(*uint32)(unsafe.Pointer(bp))
  21350. } else {
  21351. if (*Tgz_state)(unsafe.Pointer(state)).Feof != 0 && (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  21352. (*Tgz_state)(unsafe.Pointer(state)).Fpast = int32(1) /* tried to read past end */
  21353. break
  21354. } else {
  21355. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK || *(*uint32)(unsafe.Pointer(bp)) < (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1) {
  21356. /* get more output, looking for header if required */
  21357. if _gz_fetch(tls, state) == -int32(1) {
  21358. return uint64(0)
  21359. }
  21360. continue /* no progress yet -- go back to copy above */
  21361. /* the copy above assures that we will leave with space in the
  21362. output buffer, allowing at least one gzungetc() to succeed */
  21363. } else {
  21364. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == int32(m_COPY) { /* read directly */
  21365. if _gz_load(tls, state, buf, *(*uint32)(unsafe.Pointer(bp)), bp) == -int32(1) {
  21366. return uint64(0)
  21367. }
  21368. } else { /* state->how == GZIP */
  21369. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_out = *(*uint32)(unsafe.Pointer(bp))
  21370. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_out = buf
  21371. if _gz_decomp(tls, state) == -int32(1) {
  21372. return uint64(0)
  21373. }
  21374. *(*uint32)(unsafe.Pointer(bp)) = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  21375. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  21376. }
  21377. }
  21378. }
  21379. }
  21380. /* update progress */
  21381. len1 -= uint64(*(*uint32)(unsafe.Pointer(bp)))
  21382. buf = buf + uintptr(*(*uint32)(unsafe.Pointer(bp)))
  21383. got += uint64(*(*uint32)(unsafe.Pointer(bp)))
  21384. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(*(*uint32)(unsafe.Pointer(bp)))
  21385. }
  21386. /* return number of bytes read into user buffer */
  21387. return got
  21388. }
  21389. // C documentation
  21390. //
  21391. // /* -- see zlib.h -- */
  21392. func Xgzread(tls *libc.TLS, file TgzFile, buf Tvoidp, len1 uint32) (r int32) {
  21393. var state Tgz_statep
  21394. _ = state
  21395. /* get internal structure */
  21396. if file == libc.UintptrFromInt32(0) {
  21397. return -int32(1)
  21398. }
  21399. state = file
  21400. /* check that we're reading and that there's no (serious) error */
  21401. 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) {
  21402. return -int32(1)
  21403. }
  21404. /* since an int is returned, make sure len fits in one, otherwise return
  21405. with an error (this avoids a flaw in the interface) */
  21406. if libc.Int32FromUint32(len1) < 0 {
  21407. Xgz_error(tls, state, -int32(2), __ccgo_ts+703)
  21408. return -int32(1)
  21409. }
  21410. /* read len or fewer bytes to buf */
  21411. len1 = uint32(_gz_read(tls, state, buf, uint64(len1)))
  21412. /* check for an error */
  21413. if len1 == uint32(0) && (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  21414. return -int32(1)
  21415. }
  21416. /* return the number of bytes read (this is assured to fit in an int) */
  21417. return libc.Int32FromUint32(len1)
  21418. }
  21419. // C documentation
  21420. //
  21421. // /* -- see zlib.h -- */
  21422. func Xgzfread(tls *libc.TLS, buf Tvoidp, size Tz_size_t, nitems Tz_size_t, file TgzFile) (r Tz_size_t) {
  21423. var len1 Tz_size_t
  21424. var state Tgz_statep
  21425. var v1 uint64
  21426. _, _, _ = len1, state, v1
  21427. /* get internal structure */
  21428. if file == libc.UintptrFromInt32(0) {
  21429. return uint64(0)
  21430. }
  21431. state = file
  21432. /* check that we're reading and that there's no (serious) error */
  21433. 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) {
  21434. return uint64(0)
  21435. }
  21436. /* compute bytes to read -- error on overflow */
  21437. len1 = nitems * size
  21438. if size != 0 && len1/size != nitems {
  21439. Xgz_error(tls, state, -int32(2), __ccgo_ts+734)
  21440. return uint64(0)
  21441. }
  21442. /* read len or fewer bytes to buf, return the number of full items read */
  21443. if len1 != 0 {
  21444. v1 = _gz_read(tls, state, buf, len1) / size
  21445. } else {
  21446. v1 = uint64(0)
  21447. }
  21448. return v1
  21449. }
  21450. // C documentation
  21451. //
  21452. // /* -- see zlib.h -- */
  21453. func Xgzgetc(tls *libc.TLS, file TgzFile) (r int32) {
  21454. bp := tls.Alloc(16)
  21455. defer tls.Free(16)
  21456. var state Tgz_statep
  21457. var v1, v2 uintptr
  21458. var v3 int32
  21459. var _ /* buf at bp+0 */ [1]uint8
  21460. _, _, _, _ = state, v1, v2, v3
  21461. /* get internal structure */
  21462. if file == libc.UintptrFromInt32(0) {
  21463. return -int32(1)
  21464. }
  21465. state = file
  21466. /* check that we're reading and that there's no (serious) error */
  21467. 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) {
  21468. return -int32(1)
  21469. }
  21470. /* try output buffer (no need to check for skip request) */
  21471. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  21472. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave--
  21473. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos++
  21474. v2 = state + 8
  21475. v1 = *(*uintptr)(unsafe.Pointer(v2))
  21476. *(*uintptr)(unsafe.Pointer(v2))++
  21477. return libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(v1)))
  21478. }
  21479. /* nothing there -- try gz_read() */
  21480. if _gz_read(tls, state, bp, uint64(1)) < uint64(1) {
  21481. v3 = -int32(1)
  21482. } else {
  21483. v3 = libc.Int32FromUint8((*(*[1]uint8)(unsafe.Pointer(bp)))[0])
  21484. }
  21485. return v3
  21486. }
  21487. func Xgzgetc_(tls *libc.TLS, file TgzFile) (r int32) {
  21488. return Xgzgetc(tls, file)
  21489. }
  21490. // C documentation
  21491. //
  21492. // /* -- see zlib.h -- */
  21493. func Xgzungetc(tls *libc.TLS, c int32, file TgzFile) (r int32) {
  21494. var dest, src, v1, v2 uintptr
  21495. var state Tgz_statep
  21496. _, _, _, _, _ = dest, src, state, v1, v2
  21497. /* get internal structure */
  21498. if file == libc.UintptrFromInt32(0) {
  21499. return -int32(1)
  21500. }
  21501. state = file
  21502. /* in case this was just opened, set up the input buffer */
  21503. 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) {
  21504. _gz_look(tls, state)
  21505. }
  21506. /* check that we're reading and that there's no (serious) error */
  21507. 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) {
  21508. return -int32(1)
  21509. }
  21510. /* process a skip request */
  21511. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21512. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21513. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21514. return -int32(1)
  21515. }
  21516. }
  21517. /* can't push EOF */
  21518. if c < 0 {
  21519. return -int32(1)
  21520. }
  21521. /* if output buffer empty, put byte at end (allows more pushing) */
  21522. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) {
  21523. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(1)
  21524. (*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)
  21525. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) = libc.Uint8FromInt32(c)
  21526. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos--
  21527. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  21528. return c
  21529. }
  21530. /* if no room, give up (must have already done a gzungetc()) */
  21531. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1) {
  21532. Xgz_error(tls, state, -int32(3), __ccgo_ts+767)
  21533. return -int32(1)
  21534. }
  21535. /* slide output data if needed and insert byte before existing data */
  21536. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext == (*Tgz_state)(unsafe.Pointer(state)).Fout {
  21537. src = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave)
  21538. dest = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize<<libc.Int32FromInt32(1))
  21539. for src > (*Tgz_state)(unsafe.Pointer(state)).Fout {
  21540. dest--
  21541. v1 = dest
  21542. src--
  21543. v2 = src
  21544. *(*uint8)(unsafe.Pointer(v1)) = *(*uint8)(unsafe.Pointer(v2))
  21545. }
  21546. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = dest
  21547. }
  21548. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave++
  21549. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext--
  21550. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) = libc.Uint8FromInt32(c)
  21551. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos--
  21552. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  21553. return c
  21554. }
  21555. // C documentation
  21556. //
  21557. // /* -- see zlib.h -- */
  21558. func Xgzgets(tls *libc.TLS, file TgzFile, buf uintptr, len1 int32) (r uintptr) {
  21559. var eol, str uintptr
  21560. var left, n, v1 uint32
  21561. var state Tgz_statep
  21562. _, _, _, _, _, _ = eol, left, n, state, str, v1
  21563. /* check parameters and get internal structure */
  21564. if file == libc.UintptrFromInt32(0) || buf == libc.UintptrFromInt32(0) || len1 < int32(1) {
  21565. return libc.UintptrFromInt32(0)
  21566. }
  21567. state = file
  21568. /* check that we're reading and that there's no (serious) error */
  21569. 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) {
  21570. return libc.UintptrFromInt32(0)
  21571. }
  21572. /* process a skip request */
  21573. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21574. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21575. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21576. return libc.UintptrFromInt32(0)
  21577. }
  21578. }
  21579. /* copy output bytes up to new line or len - 1, whichever comes first --
  21580. append a terminating zero to the string (we don't check for a zero in
  21581. the contents, let the user worry about that) */
  21582. str = buf
  21583. left = libc.Uint32FromInt32(len1) - uint32(1)
  21584. if left != 0 {
  21585. for cond := true; cond; cond = left != 0 && eol == libc.UintptrFromInt32(0) {
  21586. /* assure that something is in the output buffer */
  21587. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) && _gz_fetch(tls, state) == -int32(1) {
  21588. return libc.UintptrFromInt32(0)
  21589. } /* error */
  21590. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) { /* end of file */
  21591. (*Tgz_state)(unsafe.Pointer(state)).Fpast = int32(1) /* read past end */
  21592. break /* return what we have */
  21593. }
  21594. /* look for end-of-line in current output buffer */
  21595. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > left {
  21596. v1 = left
  21597. } else {
  21598. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  21599. }
  21600. n = v1
  21601. eol = libc.Xmemchr(tls, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, int32('\n'), uint64(n))
  21602. if eol != libc.UintptrFromInt32(0) {
  21603. n = libc.Uint32FromInt64(int64(eol)-int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) + uint32(1)
  21604. }
  21605. /* copy through end-of-line, or remainder if not found */
  21606. libc.Xmemcpy(tls, buf, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, uint64(n))
  21607. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  21608. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  21609. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(n)
  21610. left -= n
  21611. buf += uintptr(n)
  21612. }
  21613. }
  21614. /* return terminated string, or if nothing, end of file */
  21615. if buf == str {
  21616. return libc.UintptrFromInt32(0)
  21617. }
  21618. *(*uint8)(unsafe.Pointer(buf)) = uint8(0)
  21619. return str
  21620. }
  21621. // C documentation
  21622. //
  21623. // /* -- see zlib.h -- */
  21624. func Xgzdirect(tls *libc.TLS, file TgzFile) (r int32) {
  21625. var state Tgz_statep
  21626. _ = state
  21627. /* get internal structure */
  21628. if file == libc.UintptrFromInt32(0) {
  21629. return 0
  21630. }
  21631. state = file
  21632. /* if the state is not known, but we can find out, then do so (this is
  21633. mainly for right after a gzopen() or gzdopen()) */
  21634. 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) {
  21635. _gz_look(tls, state)
  21636. }
  21637. /* return 1 if transparent, 0 if processing a gzip stream */
  21638. return (*Tgz_state)(unsafe.Pointer(state)).Fdirect
  21639. }
  21640. // C documentation
  21641. //
  21642. // /* -- see zlib.h -- */
  21643. func Xgzclose_r(tls *libc.TLS, file TgzFile) (r int32) {
  21644. var err, ret, v1, v2 int32
  21645. var state Tgz_statep
  21646. _, _, _, _, _ = err, ret, state, v1, v2
  21647. /* get internal structure */
  21648. if file == libc.UintptrFromInt32(0) {
  21649. return -int32(2)
  21650. }
  21651. state = file
  21652. /* check that we're reading */
  21653. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) {
  21654. return -int32(2)
  21655. }
  21656. /* free memory and close file */
  21657. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  21658. XinflateEnd(tls, state+128)
  21659. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  21660. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21661. }
  21662. if (*Tgz_state)(unsafe.Pointer(state)).Ferr == -int32(5) {
  21663. v1 = -int32(5)
  21664. } else {
  21665. v1 = m_Z_OK
  21666. }
  21667. err = v1
  21668. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  21669. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  21670. ret = libc.Xclose(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd)
  21671. libc.Xfree(tls, state)
  21672. if ret != 0 {
  21673. v2 = -int32(1)
  21674. } else {
  21675. v2 = err
  21676. }
  21677. return v2
  21678. }
  21679. // C documentation
  21680. //
  21681. // /* Initialize state for writing a gzip file. Mark initialization by setting
  21682. // state->size to non-zero. Return -1 on a memory allocation failure, or 0 on
  21683. // success. */
  21684. func _gz_init(tls *libc.TLS, state Tgz_statep) (r int32) {
  21685. var ret int32
  21686. var strm Tz_streamp
  21687. _, _ = ret, strm
  21688. strm = state + 128
  21689. /* allocate input buffer (double size for gzprintf) */
  21690. (*Tgz_state)(unsafe.Pointer(state)).Fin = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant<<int32(1)))
  21691. if (*Tgz_state)(unsafe.Pointer(state)).Fin == libc.UintptrFromInt32(0) {
  21692. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21693. return -int32(1)
  21694. }
  21695. /* only need output buffer and deflate state if compressing */
  21696. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  21697. /* allocate output buffer */
  21698. (*Tgz_state)(unsafe.Pointer(state)).Fout = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant))
  21699. if (*Tgz_state)(unsafe.Pointer(state)).Fout == libc.UintptrFromInt32(0) {
  21700. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21701. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21702. return -int32(1)
  21703. }
  21704. /* allocate deflate memory, set up for gzip compression */
  21705. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = uintptr(m_Z_NULL)
  21706. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = uintptr(m_Z_NULL)
  21707. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = uintptr(m_Z_NULL)
  21708. 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))
  21709. if ret != m_Z_OK {
  21710. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  21711. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21712. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21713. return -int32(1)
  21714. }
  21715. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = libc.UintptrFromInt32(0)
  21716. }
  21717. /* mark state as initialized */
  21718. (*Tgz_state)(unsafe.Pointer(state)).Fsize = (*Tgz_state)(unsafe.Pointer(state)).Fwant
  21719. /* initialize write buffer if compressing */
  21720. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  21721. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  21722. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21723. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  21724. }
  21725. return 0
  21726. }
  21727. // C documentation
  21728. //
  21729. // /* Compress whatever is at avail_in and next_in and write to the output file.
  21730. // Return -1 if there is an error writing to the output file or if gz_init()
  21731. // fails to allocate memory, otherwise 0. flush is assumed to be a valid
  21732. // deflate() flush value. If flush is Z_FINISH, then the deflate() state is
  21733. // reset to start a new gzip stream. If gz->direct is true, then simply write
  21734. // to the output file without compressing, and ignore flush. */
  21735. func _gz_comp(tls *libc.TLS, state Tgz_statep, flush int32) (r int32) {
  21736. var have, max, put, v1, v2 uint32
  21737. var ret, writ int32
  21738. var strm Tz_streamp
  21739. _, _, _, _, _, _, _, _ = have, max, put, ret, strm, writ, v1, v2
  21740. max = libc.Uint32FromInt32(-libc.Int32FromInt32(1))>>libc.Int32FromInt32(2) + libc.Uint32FromInt32(1)
  21741. strm = state + 128
  21742. /* allocate memory if this is the first time through */
  21743. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  21744. return -int32(1)
  21745. }
  21746. /* write directly if requested */
  21747. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  21748. for (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 {
  21749. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in > max {
  21750. v1 = max
  21751. } else {
  21752. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  21753. }
  21754. put = v1
  21755. writ = int32(libc.Xwrite(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, uint64(put)))
  21756. if writ < 0 {
  21757. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))))
  21758. return -int32(1)
  21759. }
  21760. *(*TuInt)(unsafe.Pointer(strm + 8)) -= libc.Uint32FromInt32(writ)
  21761. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(writ)
  21762. }
  21763. return 0
  21764. }
  21765. /* check for a pending reset */
  21766. if (*Tgz_state)(unsafe.Pointer(state)).Freset != 0 {
  21767. /* don't start a new gzip member unless there is data to write */
  21768. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  21769. return 0
  21770. }
  21771. XdeflateReset(tls, strm)
  21772. (*Tgz_state)(unsafe.Pointer(state)).Freset = 0
  21773. }
  21774. /* run deflate() on provided input until it produces no more output */
  21775. ret = m_Z_OK
  21776. for cond := true; cond; cond = have != 0 {
  21777. /* write out current buffer contents if full, or if flushing, but if
  21778. doing Z_FINISH then don't write until we get to Z_STREAM_END */
  21779. 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)) {
  21780. for (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out > (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext {
  21781. if int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_out)-int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext) > int64(libc.Int32FromUint32(max)) {
  21782. v2 = max
  21783. } else {
  21784. v2 = libc.Uint32FromInt64(int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_out) - int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext))
  21785. }
  21786. put = v2
  21787. writ = int32(libc.Xwrite(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, uint64(put)))
  21788. if writ < 0 {
  21789. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))))
  21790. return -int32(1)
  21791. }
  21792. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(writ)
  21793. }
  21794. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  21795. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  21796. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21797. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21798. }
  21799. }
  21800. /* compress */
  21801. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  21802. ret = Xdeflate(tls, strm, flush)
  21803. if ret == -int32(2) {
  21804. Xgz_error(tls, state, -int32(2), __ccgo_ts+798)
  21805. return -int32(1)
  21806. }
  21807. have -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  21808. }
  21809. /* if that completed a deflate stream, allow another to start */
  21810. if flush == int32(m_Z_FINISH) {
  21811. (*Tgz_state)(unsafe.Pointer(state)).Freset = int32(1)
  21812. }
  21813. /* all done, no errors */
  21814. return 0
  21815. }
  21816. // C documentation
  21817. //
  21818. // /* Compress len zeros to output. Return -1 on a write error or memory
  21819. // allocation failure by gz_comp(), or 0 on success. */
  21820. func _gz_zero(tls *libc.TLS, state Tgz_statep, len1 Toff_t) (r int32) {
  21821. var first int32
  21822. var n, v1 uint32
  21823. var strm Tz_streamp
  21824. _, _, _, _ = first, n, strm, v1
  21825. strm = state + 128
  21826. /* consume whatever's left in the input buffer */
  21827. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21828. return -int32(1)
  21829. }
  21830. /* compress len zeros (len guaranteed > 0) */
  21831. first = int32(1)
  21832. for len1 != 0 {
  21833. if libc.Bool(libc.Bool(uint64(4) == uint64(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fsize > Xgz_intmax(tls)) || libc.Int64FromUint32((*Tgz_state)(unsafe.Pointer(state)).Fsize) > len1 {
  21834. v1 = libc.Uint32FromInt64(len1)
  21835. } else {
  21836. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  21837. }
  21838. n = v1
  21839. if first != 0 {
  21840. libc.Xmemset(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin, 0, uint64(n))
  21841. first = 0
  21842. }
  21843. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = n
  21844. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  21845. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(n)
  21846. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21847. return -int32(1)
  21848. }
  21849. len1 -= libc.Int64FromUint32(n)
  21850. }
  21851. return 0
  21852. }
  21853. // C documentation
  21854. //
  21855. // /* Write len bytes from buf to file. Return the number of bytes written. If
  21856. // the returned value is less than len, then there was an error. */
  21857. func _gz_write(tls *libc.TLS, state Tgz_statep, buf Tvoidpc, len1 Tz_size_t) (r Tz_size_t) {
  21858. var copy1, have, n uint32
  21859. var put Tz_size_t
  21860. _, _, _, _ = copy1, have, n, put
  21861. put = len1
  21862. /* if len is zero, avoid unnecessary operations */
  21863. if len1 == uint64(0) {
  21864. return uint64(0)
  21865. }
  21866. /* allocate memory if this is the first time through */
  21867. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  21868. return uint64(0)
  21869. }
  21870. /* check for seek request */
  21871. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21872. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21873. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21874. return uint64(0)
  21875. }
  21876. }
  21877. /* for small len, copy to input buffer, otherwise compress directly */
  21878. if len1 < uint64((*Tgz_state)(unsafe.Pointer(state)).Fsize) {
  21879. /* copy to input buffer, compress when full */
  21880. for cond := true; cond; cond = len1 != 0 {
  21881. if (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  21882. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  21883. }
  21884. have = libc.Uint32FromInt64(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))
  21885. copy1 = (*Tgz_state)(unsafe.Pointer(state)).Fsize - have
  21886. if uint64(copy1) > len1 {
  21887. copy1 = uint32(len1)
  21888. }
  21889. libc.Xmemcpy(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr(have), buf, uint64(copy1))
  21890. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in += copy1
  21891. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(copy1)
  21892. buf = buf + uintptr(copy1)
  21893. len1 -= uint64(copy1)
  21894. if len1 != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21895. return uint64(0)
  21896. }
  21897. }
  21898. } else {
  21899. /* consume whatever's left in the input buffer */
  21900. if (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21901. return uint64(0)
  21902. }
  21903. /* directly compress user buffer to file */
  21904. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = buf
  21905. for cond := true; cond; cond = len1 != 0 {
  21906. n = libc.Uint32FromInt32(-libc.Int32FromInt32(1))
  21907. if uint64(n) > len1 {
  21908. n = uint32(len1)
  21909. }
  21910. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = n
  21911. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(n)
  21912. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21913. return uint64(0)
  21914. }
  21915. len1 -= uint64(n)
  21916. }
  21917. }
  21918. /* input was all buffered or compressed */
  21919. return put
  21920. }
  21921. // C documentation
  21922. //
  21923. // /* -- see zlib.h -- */
  21924. func Xgzwrite(tls *libc.TLS, file TgzFile, buf Tvoidpc, len1 uint32) (r int32) {
  21925. var state Tgz_statep
  21926. _ = state
  21927. /* get internal structure */
  21928. if file == libc.UintptrFromInt32(0) {
  21929. return 0
  21930. }
  21931. state = file
  21932. /* check that we're writing and that there's no error */
  21933. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  21934. return 0
  21935. }
  21936. /* since an int is returned, make sure len fits in one, otherwise return
  21937. with an error (this avoids a flaw in the interface) */
  21938. if libc.Int32FromUint32(len1) < 0 {
  21939. Xgz_error(tls, state, -int32(3), __ccgo_ts+837)
  21940. return 0
  21941. }
  21942. /* write len bytes from buf (the return value will fit in an int) */
  21943. return libc.Int32FromUint64(_gz_write(tls, state, buf, uint64(len1)))
  21944. }
  21945. // C documentation
  21946. //
  21947. // /* -- see zlib.h -- */
  21948. func Xgzfwrite(tls *libc.TLS, buf Tvoidpc, size Tz_size_t, nitems Tz_size_t, file TgzFile) (r Tz_size_t) {
  21949. var len1 Tz_size_t
  21950. var state Tgz_statep
  21951. var v1 uint64
  21952. _, _, _ = len1, state, v1
  21953. /* get internal structure */
  21954. if file == libc.UintptrFromInt32(0) {
  21955. return uint64(0)
  21956. }
  21957. state = file
  21958. /* check that we're writing and that there's no error */
  21959. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  21960. return uint64(0)
  21961. }
  21962. /* compute bytes to read -- error on overflow */
  21963. len1 = nitems * size
  21964. if size != 0 && len1/size != nitems {
  21965. Xgz_error(tls, state, -int32(2), __ccgo_ts+734)
  21966. return uint64(0)
  21967. }
  21968. /* write len bytes to buf, return the number of full items written */
  21969. if len1 != 0 {
  21970. v1 = _gz_write(tls, state, buf, len1) / size
  21971. } else {
  21972. v1 = uint64(0)
  21973. }
  21974. return v1
  21975. }
  21976. // C documentation
  21977. //
  21978. // /* -- see zlib.h -- */
  21979. func Xgzputc(tls *libc.TLS, file TgzFile, c int32) (r int32) {
  21980. bp := tls.Alloc(16)
  21981. defer tls.Free(16)
  21982. var have uint32
  21983. var state Tgz_statep
  21984. var strm Tz_streamp
  21985. var _ /* buf at bp+0 */ [1]uint8
  21986. _, _, _ = have, state, strm
  21987. /* get internal structure */
  21988. if file == libc.UintptrFromInt32(0) {
  21989. return -int32(1)
  21990. }
  21991. state = file
  21992. strm = state + 128
  21993. /* check that we're writing and that there's no error */
  21994. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  21995. return -int32(1)
  21996. }
  21997. /* check for seek request */
  21998. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21999. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22000. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22001. return -int32(1)
  22002. }
  22003. }
  22004. /* try writing to input buffer for speed (state->size == 0 if buffer not
  22005. initialized) */
  22006. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  22007. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  22008. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  22009. }
  22010. have = libc.Uint32FromInt64(int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in+uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in)) - int64((*Tgz_state)(unsafe.Pointer(state)).Fin))
  22011. if have < (*Tgz_state)(unsafe.Pointer(state)).Fsize {
  22012. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fin + uintptr(have))) = libc.Uint8FromInt32(c)
  22013. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in++
  22014. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos++
  22015. return c & int32(0xff)
  22016. }
  22017. }
  22018. /* no room in buffer or not initialized, use gz_write() */
  22019. (*(*[1]uint8)(unsafe.Pointer(bp)))[0] = libc.Uint8FromInt32(c)
  22020. if _gz_write(tls, state, bp, uint64(1)) != uint64(1) {
  22021. return -int32(1)
  22022. }
  22023. return c & int32(0xff)
  22024. }
  22025. // C documentation
  22026. //
  22027. // /* -- see zlib.h -- */
  22028. func Xgzputs(tls *libc.TLS, file TgzFile, s uintptr) (r int32) {
  22029. var len1, put Tz_size_t
  22030. var state Tgz_statep
  22031. var v1 int32
  22032. _, _, _, _ = len1, put, state, v1
  22033. /* get internal structure */
  22034. if file == libc.UintptrFromInt32(0) {
  22035. return -int32(1)
  22036. }
  22037. state = file
  22038. /* check that we're writing and that there's no error */
  22039. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22040. return -int32(1)
  22041. }
  22042. /* write string */
  22043. len1 = libc.Xstrlen(tls, s)
  22044. if libc.Int32FromUint64(len1) < 0 || uint64(uint32(len1)) != len1 {
  22045. Xgz_error(tls, state, -int32(2), __ccgo_ts+874)
  22046. return -int32(1)
  22047. }
  22048. put = _gz_write(tls, state, s, len1)
  22049. if put < len1 {
  22050. v1 = -int32(1)
  22051. } else {
  22052. v1 = libc.Int32FromUint64(len1)
  22053. }
  22054. return v1
  22055. }
  22056. // C documentation
  22057. //
  22058. // /* -- see zlib.h -- */
  22059. func Xgzvprintf(tls *libc.TLS, file TgzFile, format uintptr, va Tva_list) (r int32) {
  22060. var left uint32
  22061. var len1 int32
  22062. var next uintptr
  22063. var state Tgz_statep
  22064. var strm Tz_streamp
  22065. _, _, _, _, _ = left, len1, next, state, strm
  22066. /* get internal structure */
  22067. if file == libc.UintptrFromInt32(0) {
  22068. return -int32(2)
  22069. }
  22070. state = file
  22071. strm = state + 128
  22072. /* check that we're writing and that there's no error */
  22073. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22074. return -int32(2)
  22075. }
  22076. /* make sure we have some buffer space */
  22077. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  22078. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22079. }
  22080. /* check for seek request */
  22081. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22082. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22083. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22084. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22085. }
  22086. }
  22087. /* do the printf() into the input buffer, put length in len -- the input
  22088. buffer is double-sized just for this function, so there is guaranteed to
  22089. be state->size bytes available after the current contents */
  22090. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  22091. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  22092. }
  22093. 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)
  22094. *(*uint8)(unsafe.Pointer(next + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize-uint32(1)))) = uint8(0)
  22095. len1 = libc.X__builtin_vsnprintf(tls, next, uint64((*Tgz_state)(unsafe.Pointer(state)).Fsize), format, va)
  22096. /* check that printf() results fit in buffer */
  22097. if len1 == 0 || libc.Uint32FromInt32(len1) >= (*Tgz_state)(unsafe.Pointer(state)).Fsize || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(next + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize-uint32(1))))) != 0 {
  22098. return 0
  22099. }
  22100. /* update buffer and position, compress first half if past that */
  22101. *(*TuInt)(unsafe.Pointer(strm + 8)) += libc.Uint32FromInt32(len1)
  22102. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(len1)
  22103. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in >= (*Tgz_state)(unsafe.Pointer(state)).Fsize {
  22104. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in - (*Tgz_state)(unsafe.Pointer(state)).Fsize
  22105. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  22106. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  22107. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22108. }
  22109. libc.Xmemmove(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize), uint64(left))
  22110. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  22111. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = left
  22112. }
  22113. return len1
  22114. }
  22115. func Xgzprintf(tls *libc.TLS, file TgzFile, format uintptr, va1 uintptr) (r int32) {
  22116. var ret int32
  22117. var va Tva_list
  22118. _, _ = ret, va
  22119. va = va1
  22120. ret = Xgzvprintf(tls, file, format, va)
  22121. _ = va
  22122. return ret
  22123. }
  22124. // C documentation
  22125. //
  22126. // /* -- see zlib.h -- */
  22127. func Xgzflush(tls *libc.TLS, file TgzFile, flush int32) (r int32) {
  22128. var state Tgz_statep
  22129. _ = state
  22130. /* get internal structure */
  22131. if file == libc.UintptrFromInt32(0) {
  22132. return -int32(2)
  22133. }
  22134. state = file
  22135. /* check that we're writing and that there's no error */
  22136. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22137. return -int32(2)
  22138. }
  22139. /* check flush parameter */
  22140. if flush < 0 || flush > int32(m_Z_FINISH) {
  22141. return -int32(2)
  22142. }
  22143. /* check for seek request */
  22144. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22145. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22146. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22147. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22148. }
  22149. }
  22150. /* compress remaining data with requested flush */
  22151. _gz_comp(tls, state, flush)
  22152. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22153. }
  22154. // C documentation
  22155. //
  22156. // /* -- see zlib.h -- */
  22157. func Xgzsetparams(tls *libc.TLS, file TgzFile, level int32, strategy int32) (r int32) {
  22158. var state Tgz_statep
  22159. var strm Tz_streamp
  22160. _, _ = state, strm
  22161. /* get internal structure */
  22162. if file == libc.UintptrFromInt32(0) {
  22163. return -int32(2)
  22164. }
  22165. state = file
  22166. strm = state + 128
  22167. /* check that we're writing and that there's no error */
  22168. 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 {
  22169. return -int32(2)
  22170. }
  22171. /* if no change is requested, then do nothing */
  22172. if level == (*Tgz_state)(unsafe.Pointer(state)).Flevel && strategy == (*Tgz_state)(unsafe.Pointer(state)).Fstrategy {
  22173. return m_Z_OK
  22174. }
  22175. /* check for seek request */
  22176. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22177. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22178. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22179. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22180. }
  22181. }
  22182. /* change compression parameters for subsequent input */
  22183. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  22184. /* flush previous input with previous parameters before changing */
  22185. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 && _gz_comp(tls, state, int32(m_Z_BLOCK)) == -int32(1) {
  22186. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22187. }
  22188. XdeflateParams(tls, strm, level, strategy)
  22189. }
  22190. (*Tgz_state)(unsafe.Pointer(state)).Flevel = level
  22191. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = strategy
  22192. return m_Z_OK
  22193. }
  22194. // C documentation
  22195. //
  22196. // /* -- see zlib.h -- */
  22197. func Xgzclose_w(tls *libc.TLS, file TgzFile) (r int32) {
  22198. var ret int32
  22199. var state Tgz_statep
  22200. _, _ = ret, state
  22201. ret = m_Z_OK
  22202. /* get internal structure */
  22203. if file == libc.UintptrFromInt32(0) {
  22204. return -int32(2)
  22205. }
  22206. state = file
  22207. /* check that we're writing */
  22208. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  22209. return -int32(2)
  22210. }
  22211. /* check for seek request */
  22212. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22213. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22214. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22215. ret = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22216. }
  22217. }
  22218. /* flush, free memory, and close file */
  22219. if _gz_comp(tls, state, int32(m_Z_FINISH)) == -int32(1) {
  22220. ret = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22221. }
  22222. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  22223. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  22224. XdeflateEnd(tls, state+128)
  22225. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  22226. }
  22227. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  22228. }
  22229. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  22230. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  22231. if libc.Xclose(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd) == -int32(1) {
  22232. ret = -int32(1)
  22233. }
  22234. libc.Xfree(tls, state)
  22235. return ret
  22236. }
  22237. func __ccgo_fp(f interface{}) uintptr {
  22238. type iface [2]uintptr
  22239. return (*iface)(unsafe.Pointer(&f))[1]
  22240. }
  22241. var x__dist_code = [512]Tuch{
  22242. 1: uint8(1),
  22243. 2: uint8(2),
  22244. 3: uint8(3),
  22245. 4: uint8(4),
  22246. 5: uint8(4),
  22247. 6: uint8(5),
  22248. 7: uint8(5),
  22249. 8: uint8(6),
  22250. 9: uint8(6),
  22251. 10: uint8(6),
  22252. 11: uint8(6),
  22253. 12: uint8(7),
  22254. 13: uint8(7),
  22255. 14: uint8(7),
  22256. 15: uint8(7),
  22257. 16: uint8(8),
  22258. 17: uint8(8),
  22259. 18: uint8(8),
  22260. 19: uint8(8),
  22261. 20: uint8(8),
  22262. 21: uint8(8),
  22263. 22: uint8(8),
  22264. 23: uint8(8),
  22265. 24: uint8(9),
  22266. 25: uint8(9),
  22267. 26: uint8(9),
  22268. 27: uint8(9),
  22269. 28: uint8(9),
  22270. 29: uint8(9),
  22271. 30: uint8(9),
  22272. 31: uint8(9),
  22273. 32: uint8(10),
  22274. 33: uint8(10),
  22275. 34: uint8(10),
  22276. 35: uint8(10),
  22277. 36: uint8(10),
  22278. 37: uint8(10),
  22279. 38: uint8(10),
  22280. 39: uint8(10),
  22281. 40: uint8(10),
  22282. 41: uint8(10),
  22283. 42: uint8(10),
  22284. 43: uint8(10),
  22285. 44: uint8(10),
  22286. 45: uint8(10),
  22287. 46: uint8(10),
  22288. 47: uint8(10),
  22289. 48: uint8(11),
  22290. 49: uint8(11),
  22291. 50: uint8(11),
  22292. 51: uint8(11),
  22293. 52: uint8(11),
  22294. 53: uint8(11),
  22295. 54: uint8(11),
  22296. 55: uint8(11),
  22297. 56: uint8(11),
  22298. 57: uint8(11),
  22299. 58: uint8(11),
  22300. 59: uint8(11),
  22301. 60: uint8(11),
  22302. 61: uint8(11),
  22303. 62: uint8(11),
  22304. 63: uint8(11),
  22305. 64: uint8(12),
  22306. 65: uint8(12),
  22307. 66: uint8(12),
  22308. 67: uint8(12),
  22309. 68: uint8(12),
  22310. 69: uint8(12),
  22311. 70: uint8(12),
  22312. 71: uint8(12),
  22313. 72: uint8(12),
  22314. 73: uint8(12),
  22315. 74: uint8(12),
  22316. 75: uint8(12),
  22317. 76: uint8(12),
  22318. 77: uint8(12),
  22319. 78: uint8(12),
  22320. 79: uint8(12),
  22321. 80: uint8(12),
  22322. 81: uint8(12),
  22323. 82: uint8(12),
  22324. 83: uint8(12),
  22325. 84: uint8(12),
  22326. 85: uint8(12),
  22327. 86: uint8(12),
  22328. 87: uint8(12),
  22329. 88: uint8(12),
  22330. 89: uint8(12),
  22331. 90: uint8(12),
  22332. 91: uint8(12),
  22333. 92: uint8(12),
  22334. 93: uint8(12),
  22335. 94: uint8(12),
  22336. 95: uint8(12),
  22337. 96: uint8(13),
  22338. 97: uint8(13),
  22339. 98: uint8(13),
  22340. 99: uint8(13),
  22341. 100: uint8(13),
  22342. 101: uint8(13),
  22343. 102: uint8(13),
  22344. 103: uint8(13),
  22345. 104: uint8(13),
  22346. 105: uint8(13),
  22347. 106: uint8(13),
  22348. 107: uint8(13),
  22349. 108: uint8(13),
  22350. 109: uint8(13),
  22351. 110: uint8(13),
  22352. 111: uint8(13),
  22353. 112: uint8(13),
  22354. 113: uint8(13),
  22355. 114: uint8(13),
  22356. 115: uint8(13),
  22357. 116: uint8(13),
  22358. 117: uint8(13),
  22359. 118: uint8(13),
  22360. 119: uint8(13),
  22361. 120: uint8(13),
  22362. 121: uint8(13),
  22363. 122: uint8(13),
  22364. 123: uint8(13),
  22365. 124: uint8(13),
  22366. 125: uint8(13),
  22367. 126: uint8(13),
  22368. 127: uint8(13),
  22369. 128: uint8(14),
  22370. 129: uint8(14),
  22371. 130: uint8(14),
  22372. 131: uint8(14),
  22373. 132: uint8(14),
  22374. 133: uint8(14),
  22375. 134: uint8(14),
  22376. 135: uint8(14),
  22377. 136: uint8(14),
  22378. 137: uint8(14),
  22379. 138: uint8(14),
  22380. 139: uint8(14),
  22381. 140: uint8(14),
  22382. 141: uint8(14),
  22383. 142: uint8(14),
  22384. 143: uint8(14),
  22385. 144: uint8(14),
  22386. 145: uint8(14),
  22387. 146: uint8(14),
  22388. 147: uint8(14),
  22389. 148: uint8(14),
  22390. 149: uint8(14),
  22391. 150: uint8(14),
  22392. 151: uint8(14),
  22393. 152: uint8(14),
  22394. 153: uint8(14),
  22395. 154: uint8(14),
  22396. 155: uint8(14),
  22397. 156: uint8(14),
  22398. 157: uint8(14),
  22399. 158: uint8(14),
  22400. 159: uint8(14),
  22401. 160: uint8(14),
  22402. 161: uint8(14),
  22403. 162: uint8(14),
  22404. 163: uint8(14),
  22405. 164: uint8(14),
  22406. 165: uint8(14),
  22407. 166: uint8(14),
  22408. 167: uint8(14),
  22409. 168: uint8(14),
  22410. 169: uint8(14),
  22411. 170: uint8(14),
  22412. 171: uint8(14),
  22413. 172: uint8(14),
  22414. 173: uint8(14),
  22415. 174: uint8(14),
  22416. 175: uint8(14),
  22417. 176: uint8(14),
  22418. 177: uint8(14),
  22419. 178: uint8(14),
  22420. 179: uint8(14),
  22421. 180: uint8(14),
  22422. 181: uint8(14),
  22423. 182: uint8(14),
  22424. 183: uint8(14),
  22425. 184: uint8(14),
  22426. 185: uint8(14),
  22427. 186: uint8(14),
  22428. 187: uint8(14),
  22429. 188: uint8(14),
  22430. 189: uint8(14),
  22431. 190: uint8(14),
  22432. 191: uint8(14),
  22433. 192: uint8(15),
  22434. 193: uint8(15),
  22435. 194: uint8(15),
  22436. 195: uint8(15),
  22437. 196: uint8(15),
  22438. 197: uint8(15),
  22439. 198: uint8(15),
  22440. 199: uint8(15),
  22441. 200: uint8(15),
  22442. 201: uint8(15),
  22443. 202: uint8(15),
  22444. 203: uint8(15),
  22445. 204: uint8(15),
  22446. 205: uint8(15),
  22447. 206: uint8(15),
  22448. 207: uint8(15),
  22449. 208: uint8(15),
  22450. 209: uint8(15),
  22451. 210: uint8(15),
  22452. 211: uint8(15),
  22453. 212: uint8(15),
  22454. 213: uint8(15),
  22455. 214: uint8(15),
  22456. 215: uint8(15),
  22457. 216: uint8(15),
  22458. 217: uint8(15),
  22459. 218: uint8(15),
  22460. 219: uint8(15),
  22461. 220: uint8(15),
  22462. 221: uint8(15),
  22463. 222: uint8(15),
  22464. 223: uint8(15),
  22465. 224: uint8(15),
  22466. 225: uint8(15),
  22467. 226: uint8(15),
  22468. 227: uint8(15),
  22469. 228: uint8(15),
  22470. 229: uint8(15),
  22471. 230: uint8(15),
  22472. 231: uint8(15),
  22473. 232: uint8(15),
  22474. 233: uint8(15),
  22475. 234: uint8(15),
  22476. 235: uint8(15),
  22477. 236: uint8(15),
  22478. 237: uint8(15),
  22479. 238: uint8(15),
  22480. 239: uint8(15),
  22481. 240: uint8(15),
  22482. 241: uint8(15),
  22483. 242: uint8(15),
  22484. 243: uint8(15),
  22485. 244: uint8(15),
  22486. 245: uint8(15),
  22487. 246: uint8(15),
  22488. 247: uint8(15),
  22489. 248: uint8(15),
  22490. 249: uint8(15),
  22491. 250: uint8(15),
  22492. 251: uint8(15),
  22493. 252: uint8(15),
  22494. 253: uint8(15),
  22495. 254: uint8(15),
  22496. 255: uint8(15),
  22497. 258: uint8(16),
  22498. 259: uint8(17),
  22499. 260: uint8(18),
  22500. 261: uint8(18),
  22501. 262: uint8(19),
  22502. 263: uint8(19),
  22503. 264: uint8(20),
  22504. 265: uint8(20),
  22505. 266: uint8(20),
  22506. 267: uint8(20),
  22507. 268: uint8(21),
  22508. 269: uint8(21),
  22509. 270: uint8(21),
  22510. 271: uint8(21),
  22511. 272: uint8(22),
  22512. 273: uint8(22),
  22513. 274: uint8(22),
  22514. 275: uint8(22),
  22515. 276: uint8(22),
  22516. 277: uint8(22),
  22517. 278: uint8(22),
  22518. 279: uint8(22),
  22519. 280: uint8(23),
  22520. 281: uint8(23),
  22521. 282: uint8(23),
  22522. 283: uint8(23),
  22523. 284: uint8(23),
  22524. 285: uint8(23),
  22525. 286: uint8(23),
  22526. 287: uint8(23),
  22527. 288: uint8(24),
  22528. 289: uint8(24),
  22529. 290: uint8(24),
  22530. 291: uint8(24),
  22531. 292: uint8(24),
  22532. 293: uint8(24),
  22533. 294: uint8(24),
  22534. 295: uint8(24),
  22535. 296: uint8(24),
  22536. 297: uint8(24),
  22537. 298: uint8(24),
  22538. 299: uint8(24),
  22539. 300: uint8(24),
  22540. 301: uint8(24),
  22541. 302: uint8(24),
  22542. 303: uint8(24),
  22543. 304: uint8(25),
  22544. 305: uint8(25),
  22545. 306: uint8(25),
  22546. 307: uint8(25),
  22547. 308: uint8(25),
  22548. 309: uint8(25),
  22549. 310: uint8(25),
  22550. 311: uint8(25),
  22551. 312: uint8(25),
  22552. 313: uint8(25),
  22553. 314: uint8(25),
  22554. 315: uint8(25),
  22555. 316: uint8(25),
  22556. 317: uint8(25),
  22557. 318: uint8(25),
  22558. 319: uint8(25),
  22559. 320: uint8(26),
  22560. 321: uint8(26),
  22561. 322: uint8(26),
  22562. 323: uint8(26),
  22563. 324: uint8(26),
  22564. 325: uint8(26),
  22565. 326: uint8(26),
  22566. 327: uint8(26),
  22567. 328: uint8(26),
  22568. 329: uint8(26),
  22569. 330: uint8(26),
  22570. 331: uint8(26),
  22571. 332: uint8(26),
  22572. 333: uint8(26),
  22573. 334: uint8(26),
  22574. 335: uint8(26),
  22575. 336: uint8(26),
  22576. 337: uint8(26),
  22577. 338: uint8(26),
  22578. 339: uint8(26),
  22579. 340: uint8(26),
  22580. 341: uint8(26),
  22581. 342: uint8(26),
  22582. 343: uint8(26),
  22583. 344: uint8(26),
  22584. 345: uint8(26),
  22585. 346: uint8(26),
  22586. 347: uint8(26),
  22587. 348: uint8(26),
  22588. 349: uint8(26),
  22589. 350: uint8(26),
  22590. 351: uint8(26),
  22591. 352: uint8(27),
  22592. 353: uint8(27),
  22593. 354: uint8(27),
  22594. 355: uint8(27),
  22595. 356: uint8(27),
  22596. 357: uint8(27),
  22597. 358: uint8(27),
  22598. 359: uint8(27),
  22599. 360: uint8(27),
  22600. 361: uint8(27),
  22601. 362: uint8(27),
  22602. 363: uint8(27),
  22603. 364: uint8(27),
  22604. 365: uint8(27),
  22605. 366: uint8(27),
  22606. 367: uint8(27),
  22607. 368: uint8(27),
  22608. 369: uint8(27),
  22609. 370: uint8(27),
  22610. 371: uint8(27),
  22611. 372: uint8(27),
  22612. 373: uint8(27),
  22613. 374: uint8(27),
  22614. 375: uint8(27),
  22615. 376: uint8(27),
  22616. 377: uint8(27),
  22617. 378: uint8(27),
  22618. 379: uint8(27),
  22619. 380: uint8(27),
  22620. 381: uint8(27),
  22621. 382: uint8(27),
  22622. 383: uint8(27),
  22623. 384: uint8(28),
  22624. 385: uint8(28),
  22625. 386: uint8(28),
  22626. 387: uint8(28),
  22627. 388: uint8(28),
  22628. 389: uint8(28),
  22629. 390: uint8(28),
  22630. 391: uint8(28),
  22631. 392: uint8(28),
  22632. 393: uint8(28),
  22633. 394: uint8(28),
  22634. 395: uint8(28),
  22635. 396: uint8(28),
  22636. 397: uint8(28),
  22637. 398: uint8(28),
  22638. 399: uint8(28),
  22639. 400: uint8(28),
  22640. 401: uint8(28),
  22641. 402: uint8(28),
  22642. 403: uint8(28),
  22643. 404: uint8(28),
  22644. 405: uint8(28),
  22645. 406: uint8(28),
  22646. 407: uint8(28),
  22647. 408: uint8(28),
  22648. 409: uint8(28),
  22649. 410: uint8(28),
  22650. 411: uint8(28),
  22651. 412: uint8(28),
  22652. 413: uint8(28),
  22653. 414: uint8(28),
  22654. 415: uint8(28),
  22655. 416: uint8(28),
  22656. 417: uint8(28),
  22657. 418: uint8(28),
  22658. 419: uint8(28),
  22659. 420: uint8(28),
  22660. 421: uint8(28),
  22661. 422: uint8(28),
  22662. 423: uint8(28),
  22663. 424: uint8(28),
  22664. 425: uint8(28),
  22665. 426: uint8(28),
  22666. 427: uint8(28),
  22667. 428: uint8(28),
  22668. 429: uint8(28),
  22669. 430: uint8(28),
  22670. 431: uint8(28),
  22671. 432: uint8(28),
  22672. 433: uint8(28),
  22673. 434: uint8(28),
  22674. 435: uint8(28),
  22675. 436: uint8(28),
  22676. 437: uint8(28),
  22677. 438: uint8(28),
  22678. 439: uint8(28),
  22679. 440: uint8(28),
  22680. 441: uint8(28),
  22681. 442: uint8(28),
  22682. 443: uint8(28),
  22683. 444: uint8(28),
  22684. 445: uint8(28),
  22685. 446: uint8(28),
  22686. 447: uint8(28),
  22687. 448: uint8(29),
  22688. 449: uint8(29),
  22689. 450: uint8(29),
  22690. 451: uint8(29),
  22691. 452: uint8(29),
  22692. 453: uint8(29),
  22693. 454: uint8(29),
  22694. 455: uint8(29),
  22695. 456: uint8(29),
  22696. 457: uint8(29),
  22697. 458: uint8(29),
  22698. 459: uint8(29),
  22699. 460: uint8(29),
  22700. 461: uint8(29),
  22701. 462: uint8(29),
  22702. 463: uint8(29),
  22703. 464: uint8(29),
  22704. 465: uint8(29),
  22705. 466: uint8(29),
  22706. 467: uint8(29),
  22707. 468: uint8(29),
  22708. 469: uint8(29),
  22709. 470: uint8(29),
  22710. 471: uint8(29),
  22711. 472: uint8(29),
  22712. 473: uint8(29),
  22713. 474: uint8(29),
  22714. 475: uint8(29),
  22715. 476: uint8(29),
  22716. 477: uint8(29),
  22717. 478: uint8(29),
  22718. 479: uint8(29),
  22719. 480: uint8(29),
  22720. 481: uint8(29),
  22721. 482: uint8(29),
  22722. 483: uint8(29),
  22723. 484: uint8(29),
  22724. 485: uint8(29),
  22725. 486: uint8(29),
  22726. 487: uint8(29),
  22727. 488: uint8(29),
  22728. 489: uint8(29),
  22729. 490: uint8(29),
  22730. 491: uint8(29),
  22731. 492: uint8(29),
  22732. 493: uint8(29),
  22733. 494: uint8(29),
  22734. 495: uint8(29),
  22735. 496: uint8(29),
  22736. 497: uint8(29),
  22737. 498: uint8(29),
  22738. 499: uint8(29),
  22739. 500: uint8(29),
  22740. 501: uint8(29),
  22741. 502: uint8(29),
  22742. 503: uint8(29),
  22743. 504: uint8(29),
  22744. 505: uint8(29),
  22745. 506: uint8(29),
  22746. 507: uint8(29),
  22747. 508: uint8(29),
  22748. 509: uint8(29),
  22749. 510: uint8(29),
  22750. 511: uint8(29),
  22751. }
  22752. var x__length_code = [256]Tuch{
  22753. 1: uint8(1),
  22754. 2: uint8(2),
  22755. 3: uint8(3),
  22756. 4: uint8(4),
  22757. 5: uint8(5),
  22758. 6: uint8(6),
  22759. 7: uint8(7),
  22760. 8: uint8(8),
  22761. 9: uint8(8),
  22762. 10: uint8(9),
  22763. 11: uint8(9),
  22764. 12: uint8(10),
  22765. 13: uint8(10),
  22766. 14: uint8(11),
  22767. 15: uint8(11),
  22768. 16: uint8(12),
  22769. 17: uint8(12),
  22770. 18: uint8(12),
  22771. 19: uint8(12),
  22772. 20: uint8(13),
  22773. 21: uint8(13),
  22774. 22: uint8(13),
  22775. 23: uint8(13),
  22776. 24: uint8(14),
  22777. 25: uint8(14),
  22778. 26: uint8(14),
  22779. 27: uint8(14),
  22780. 28: uint8(15),
  22781. 29: uint8(15),
  22782. 30: uint8(15),
  22783. 31: uint8(15),
  22784. 32: uint8(16),
  22785. 33: uint8(16),
  22786. 34: uint8(16),
  22787. 35: uint8(16),
  22788. 36: uint8(16),
  22789. 37: uint8(16),
  22790. 38: uint8(16),
  22791. 39: uint8(16),
  22792. 40: uint8(17),
  22793. 41: uint8(17),
  22794. 42: uint8(17),
  22795. 43: uint8(17),
  22796. 44: uint8(17),
  22797. 45: uint8(17),
  22798. 46: uint8(17),
  22799. 47: uint8(17),
  22800. 48: uint8(18),
  22801. 49: uint8(18),
  22802. 50: uint8(18),
  22803. 51: uint8(18),
  22804. 52: uint8(18),
  22805. 53: uint8(18),
  22806. 54: uint8(18),
  22807. 55: uint8(18),
  22808. 56: uint8(19),
  22809. 57: uint8(19),
  22810. 58: uint8(19),
  22811. 59: uint8(19),
  22812. 60: uint8(19),
  22813. 61: uint8(19),
  22814. 62: uint8(19),
  22815. 63: uint8(19),
  22816. 64: uint8(20),
  22817. 65: uint8(20),
  22818. 66: uint8(20),
  22819. 67: uint8(20),
  22820. 68: uint8(20),
  22821. 69: uint8(20),
  22822. 70: uint8(20),
  22823. 71: uint8(20),
  22824. 72: uint8(20),
  22825. 73: uint8(20),
  22826. 74: uint8(20),
  22827. 75: uint8(20),
  22828. 76: uint8(20),
  22829. 77: uint8(20),
  22830. 78: uint8(20),
  22831. 79: uint8(20),
  22832. 80: uint8(21),
  22833. 81: uint8(21),
  22834. 82: uint8(21),
  22835. 83: uint8(21),
  22836. 84: uint8(21),
  22837. 85: uint8(21),
  22838. 86: uint8(21),
  22839. 87: uint8(21),
  22840. 88: uint8(21),
  22841. 89: uint8(21),
  22842. 90: uint8(21),
  22843. 91: uint8(21),
  22844. 92: uint8(21),
  22845. 93: uint8(21),
  22846. 94: uint8(21),
  22847. 95: uint8(21),
  22848. 96: uint8(22),
  22849. 97: uint8(22),
  22850. 98: uint8(22),
  22851. 99: uint8(22),
  22852. 100: uint8(22),
  22853. 101: uint8(22),
  22854. 102: uint8(22),
  22855. 103: uint8(22),
  22856. 104: uint8(22),
  22857. 105: uint8(22),
  22858. 106: uint8(22),
  22859. 107: uint8(22),
  22860. 108: uint8(22),
  22861. 109: uint8(22),
  22862. 110: uint8(22),
  22863. 111: uint8(22),
  22864. 112: uint8(23),
  22865. 113: uint8(23),
  22866. 114: uint8(23),
  22867. 115: uint8(23),
  22868. 116: uint8(23),
  22869. 117: uint8(23),
  22870. 118: uint8(23),
  22871. 119: uint8(23),
  22872. 120: uint8(23),
  22873. 121: uint8(23),
  22874. 122: uint8(23),
  22875. 123: uint8(23),
  22876. 124: uint8(23),
  22877. 125: uint8(23),
  22878. 126: uint8(23),
  22879. 127: uint8(23),
  22880. 128: uint8(24),
  22881. 129: uint8(24),
  22882. 130: uint8(24),
  22883. 131: uint8(24),
  22884. 132: uint8(24),
  22885. 133: uint8(24),
  22886. 134: uint8(24),
  22887. 135: uint8(24),
  22888. 136: uint8(24),
  22889. 137: uint8(24),
  22890. 138: uint8(24),
  22891. 139: uint8(24),
  22892. 140: uint8(24),
  22893. 141: uint8(24),
  22894. 142: uint8(24),
  22895. 143: uint8(24),
  22896. 144: uint8(24),
  22897. 145: uint8(24),
  22898. 146: uint8(24),
  22899. 147: uint8(24),
  22900. 148: uint8(24),
  22901. 149: uint8(24),
  22902. 150: uint8(24),
  22903. 151: uint8(24),
  22904. 152: uint8(24),
  22905. 153: uint8(24),
  22906. 154: uint8(24),
  22907. 155: uint8(24),
  22908. 156: uint8(24),
  22909. 157: uint8(24),
  22910. 158: uint8(24),
  22911. 159: uint8(24),
  22912. 160: uint8(25),
  22913. 161: uint8(25),
  22914. 162: uint8(25),
  22915. 163: uint8(25),
  22916. 164: uint8(25),
  22917. 165: uint8(25),
  22918. 166: uint8(25),
  22919. 167: uint8(25),
  22920. 168: uint8(25),
  22921. 169: uint8(25),
  22922. 170: uint8(25),
  22923. 171: uint8(25),
  22924. 172: uint8(25),
  22925. 173: uint8(25),
  22926. 174: uint8(25),
  22927. 175: uint8(25),
  22928. 176: uint8(25),
  22929. 177: uint8(25),
  22930. 178: uint8(25),
  22931. 179: uint8(25),
  22932. 180: uint8(25),
  22933. 181: uint8(25),
  22934. 182: uint8(25),
  22935. 183: uint8(25),
  22936. 184: uint8(25),
  22937. 185: uint8(25),
  22938. 186: uint8(25),
  22939. 187: uint8(25),
  22940. 188: uint8(25),
  22941. 189: uint8(25),
  22942. 190: uint8(25),
  22943. 191: uint8(25),
  22944. 192: uint8(26),
  22945. 193: uint8(26),
  22946. 194: uint8(26),
  22947. 195: uint8(26),
  22948. 196: uint8(26),
  22949. 197: uint8(26),
  22950. 198: uint8(26),
  22951. 199: uint8(26),
  22952. 200: uint8(26),
  22953. 201: uint8(26),
  22954. 202: uint8(26),
  22955. 203: uint8(26),
  22956. 204: uint8(26),
  22957. 205: uint8(26),
  22958. 206: uint8(26),
  22959. 207: uint8(26),
  22960. 208: uint8(26),
  22961. 209: uint8(26),
  22962. 210: uint8(26),
  22963. 211: uint8(26),
  22964. 212: uint8(26),
  22965. 213: uint8(26),
  22966. 214: uint8(26),
  22967. 215: uint8(26),
  22968. 216: uint8(26),
  22969. 217: uint8(26),
  22970. 218: uint8(26),
  22971. 219: uint8(26),
  22972. 220: uint8(26),
  22973. 221: uint8(26),
  22974. 222: uint8(26),
  22975. 223: uint8(26),
  22976. 224: uint8(27),
  22977. 225: uint8(27),
  22978. 226: uint8(27),
  22979. 227: uint8(27),
  22980. 228: uint8(27),
  22981. 229: uint8(27),
  22982. 230: uint8(27),
  22983. 231: uint8(27),
  22984. 232: uint8(27),
  22985. 233: uint8(27),
  22986. 234: uint8(27),
  22987. 235: uint8(27),
  22988. 236: uint8(27),
  22989. 237: uint8(27),
  22990. 238: uint8(27),
  22991. 239: uint8(27),
  22992. 240: uint8(27),
  22993. 241: uint8(27),
  22994. 242: uint8(27),
  22995. 243: uint8(27),
  22996. 244: uint8(27),
  22997. 245: uint8(27),
  22998. 246: uint8(27),
  22999. 247: uint8(27),
  23000. 248: uint8(27),
  23001. 249: uint8(27),
  23002. 250: uint8(27),
  23003. 251: uint8(27),
  23004. 252: uint8(27),
  23005. 253: uint8(27),
  23006. 254: uint8(27),
  23007. 255: uint8(28),
  23008. }
  23009. var Xdeflate_copyright = [68]uint8{' ', 'd', 'e', 'f', 'l', 'a', 't', 'e', ' ', '1', '.', '3', '.', '1', ' ', 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '1', '9', '9', '5', '-', '2', '0', '2', '4', ' ', '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', ' '}
  23010. var Xinflate_copyright = [47]uint8{' ', 'i', 'n', 'f', 'l', 'a', 't', 'e', ' ', '1', '.', '3', '.', '1', ' ', 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '1', '9', '9', '5', '-', '2', '0', '2', '4', ' ', 'M', 'a', 'r', 'k', ' ', 'A', 'd', 'l', 'e', 'r', ' '}
  23011. var Xz_errmsg = [10]uintptr{
  23012. 0: __ccgo_ts + 467,
  23013. 1: __ccgo_ts + 483,
  23014. 2: __ccgo_ts + 494,
  23015. 3: __ccgo_ts + 495,
  23016. 4: __ccgo_ts + 506,
  23017. 5: __ccgo_ts + 519,
  23018. 6: __ccgo_ts + 530,
  23019. 7: __ccgo_ts + 550,
  23020. 8: __ccgo_ts + 563,
  23021. 9: __ccgo_ts + 494,
  23022. }
  23023. var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data
  23024. var __ccgo_ts1 = "1.3.1\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"