ccgo_windows_386.go 692 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154
  1. // Code generated for windows/386 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 -D_UCRT --package-name=libz -o libz.a.go libz.a', DO NOT EDIT.
  2. //go:build windows && 386
  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_BASE = 65521
  12. const m_DEF_MEM_LEVEL = 8
  13. const m_DEF_WBITS = "MAX_WBITS"
  14. const m_DYN_TREES = 2
  15. const m_E2BIG = 7
  16. const m_EACCES = 13
  17. const m_EADDRINUSE = 100
  18. const m_EADDRNOTAVAIL = 101
  19. const m_EAFNOSUPPORT = 102
  20. const m_EAGAIN = 11
  21. const m_EALREADY = 103
  22. const m_EBADF = 9
  23. const m_EBADMSG = 104
  24. const m_EBUSY = 16
  25. const m_ECANCELED = 105
  26. const m_ECHILD = 10
  27. const m_ECONNABORTED = 106
  28. const m_ECONNREFUSED = 107
  29. const m_ECONNRESET = 108
  30. const m_EDEADLK = 36
  31. const m_EDEADLOCK = "EDEADLK"
  32. const m_EDESTADDRREQ = 109
  33. const m_EDOM = 33
  34. const m_EEXIST = 17
  35. const m_EFAULT = 14
  36. const m_EFBIG = 27
  37. const m_EHOSTUNREACH = 110
  38. const m_EIDRM = 111
  39. const m_EILSEQ = 42
  40. const m_EINPROGRESS = 112
  41. const m_EINTR = 4
  42. const m_EINVAL = 22
  43. const m_EIO = 5
  44. const m_EISCONN = 113
  45. const m_EISDIR = 21
  46. const m_ELOOP = 114
  47. const m_EMFILE = 24
  48. const m_EMLINK = 31
  49. const m_EMSGSIZE = 115
  50. const m_ENAMETOOLONG = 38
  51. const m_ENETDOWN = 116
  52. const m_ENETRESET = 117
  53. const m_ENETUNREACH = 118
  54. const m_ENFILE = 23
  55. const m_ENOBUFS = 119
  56. const m_ENODATA = 120
  57. const m_ENODEV = 19
  58. const m_ENOENT = 2
  59. const m_ENOEXEC = 8
  60. const m_ENOFILE = "ENOENT"
  61. const m_ENOLCK = 39
  62. const m_ENOLINK = 121
  63. const m_ENOMEM = 12
  64. const m_ENOMSG = 122
  65. const m_ENOPROTOOPT = 123
  66. const m_ENOSPC = 28
  67. const m_ENOSR = 124
  68. const m_ENOSTR = 125
  69. const m_ENOSYS = 40
  70. const m_ENOTCONN = 126
  71. const m_ENOTDIR = 20
  72. const m_ENOTEMPTY = 41
  73. const m_ENOTRECOVERABLE = 127
  74. const m_ENOTSOCK = 128
  75. const m_ENOTSUP = 129
  76. const m_ENOTTY = 25
  77. const m_ENXIO = 6
  78. const m_EOPNOTSUPP = 130
  79. const m_EOVERFLOW = 132
  80. const m_EOWNERDEAD = 133
  81. const m_EPERM = 1
  82. const m_EPIPE = 32
  83. const m_EPROTO = 134
  84. const m_EPROTONOSUPPORT = 135
  85. const m_EPROTOTYPE = 136
  86. const m_ERANGE = 34
  87. const m_EROFS = 30
  88. const m_ESPIPE = 29
  89. const m_ESRCH = 3
  90. const m_ETIME = 137
  91. const m_ETIMEDOUT = 138
  92. const m_ETXTBSY = 139
  93. const m_EWOULDBLOCK = 140
  94. const m_EXDEV = 18
  95. const m_EXIT_FAILURE = 1
  96. const m_EXIT_SUCCESS = 0
  97. const m_MAX_MATCH = 258
  98. const m_MAX_MEM_LEVEL = 9
  99. const m_MAX_WBITS = 15
  100. const m_MB_LEN_MAX = 5
  101. const m_MINGW_HAS_DDK_H = 1
  102. const m_MINGW_HAS_SECURE_API = 1
  103. const m_MIN_MATCH = 3
  104. const m_NMAX = 5552
  105. const m_OS_CODE = 10
  106. const m_PATH_MAX = 260
  107. const m_PRESET_DICT = 0x20
  108. const m_RAND_MAX = 0x7fff
  109. const m_SEEK_CUR = 1
  110. const m_SEEK_END = 2
  111. const m_SEEK_SET = 0
  112. const m_SIZE_MAX = "UINT_MAX"
  113. const m_SSIZE_MAX = "INT_MAX"
  114. const m_STATIC_TREES = 1
  115. const m_STORED_BLOCK = 0
  116. const m_STRUNCATE = 80
  117. const m_USE___UUIDOF = 0
  118. const m_WIN32 = 1
  119. const m_WINNT = 1
  120. const m_ZEXTERN = "extern"
  121. const m_ZLIB_VERNUM = 0x1310
  122. const m_ZLIB_VERSION = "1.3.1"
  123. const m_ZLIB_VER_MAJOR = 1
  124. const m_ZLIB_VER_MINOR = 3
  125. const m_ZLIB_VER_REVISION = 1
  126. const m_ZLIB_VER_SUBREVISION = 0
  127. const m_Z_ASCII = "Z_TEXT"
  128. const m_Z_BEST_COMPRESSION = 9
  129. const m_Z_BEST_SPEED = 1
  130. const m_Z_BINARY = 0
  131. const m_Z_BLOCK = 5
  132. const m_Z_DEFAULT_STRATEGY = 0
  133. const m_Z_DEFLATED = 8
  134. const m_Z_FILTERED = 1
  135. const m_Z_FINISH = 4
  136. const m_Z_FIXED = 4
  137. const m_Z_FULL_FLUSH = 3
  138. const m_Z_HUFFMAN_ONLY = 2
  139. const m_Z_NEED_DICT = 2
  140. const m_Z_NO_COMPRESSION = 0
  141. const m_Z_NO_FLUSH = 0
  142. const m_Z_NULL = 0
  143. const m_Z_OK = 0
  144. const m_Z_PARTIAL_FLUSH = 1
  145. const m_Z_RLE = 3
  146. const m_Z_STREAM_END = 1
  147. const m_Z_SYNC_FLUSH = 2
  148. const m_Z_TEXT = 1
  149. const m_Z_TREES = 6
  150. const m_Z_U4 = "unsigned"
  151. const m_Z_UNKNOWN = 2
  152. const m__ALLOCA_S_HEAP_MARKER = 56797
  153. const m__ALLOCA_S_MARKER_SIZE = 8
  154. const m__ALLOCA_S_STACK_MARKER = 0xCCCC
  155. const m__ALLOCA_S_THRESHOLD = 1024
  156. const m__ANONYMOUS_STRUCT = "__MINGW_EXTENSION"
  157. const m__ANONYMOUS_UNION = "__MINGW_EXTENSION"
  158. const m__ARGMAX = 100
  159. const m__CALL_REPORTFAULT = 0x2
  160. const m__CRTIMP2 = "_CRTIMP"
  161. const m__CRTIMP_ALTERNATIVE = "_CRTIMP"
  162. const m__CRTIMP_NOIA64 = "_CRTIMP"
  163. const m__CRTIMP_PURE = "_CRTIMP"
  164. const m__FILE_OFFSET_BITS = 64
  165. const m__FREEENTRY = 0
  166. const m__HEAP_MAXREQ = 0xFFFFFFE0
  167. const m__I16_MAX = 32767
  168. const m__I32_MAX = 2147483647
  169. const m__I64_MAX = "9223372036854775807ll"
  170. const m__I8_MAX = 127
  171. const m__ILP32 = 1
  172. const m__INTEGRAL_MAX_BITS = 64
  173. const m__MAX_DIR = 256
  174. const m__MAX_DRIVE = 3
  175. const m__MAX_ENV = 32767
  176. const m__MAX_EXT = 256
  177. const m__MAX_FNAME = 256
  178. const m__MAX_PATH = 260
  179. const m__MAX_WAIT_MALLOC_CRT = 60000
  180. const m__MCRTIMP = "_CRTIMP"
  181. const m__MRTIMP2 = "_CRTIMP"
  182. const m__M_IX86 = 600
  183. const m__NLSCMPERROR = 2147483647
  184. const m__OUT_TO_DEFAULT = 0
  185. const m__OUT_TO_MSGBOX = 2
  186. const m__OUT_TO_STDERR = 1
  187. const m__REPORT_ERRMODE = 3
  188. const m__SECURECRT_FILL_BUFFER_PATTERN = 0xFD
  189. const m__UCRT = 1
  190. const m__UI16_MAX = "0xffffu"
  191. const m__UI32_MAX = "0xffffffffu"
  192. const m__UI64_MAX = "0xffffffffffffffffull"
  193. const m__UI8_MAX = "0xffu"
  194. const m__USEDENTRY = 1
  195. const m__WConst_return = "_CONST_RETURN"
  196. const m__WIN32 = 1
  197. const m__WIN32_WINNT = 0xa00
  198. const m__WRITE_ABORT_MSG = 0x1
  199. const m__X86_ = 1
  200. const m___ATOMIC_ACQUIRE = 2
  201. const m___ATOMIC_ACQ_REL = 4
  202. const m___ATOMIC_CONSUME = 1
  203. const m___ATOMIC_HLE_ACQUIRE = 65536
  204. const m___ATOMIC_HLE_RELEASE = 131072
  205. const m___ATOMIC_RELAXED = 0
  206. const m___ATOMIC_RELEASE = 3
  207. const m___ATOMIC_SEQ_CST = 5
  208. const m___BIGGEST_ALIGNMENT__ = 16
  209. const m___BYTE_ORDER__ = "__ORDER_LITTLE_ENDIAN__"
  210. const m___C89_NAMELESS = "__MINGW_EXTENSION"
  211. const m___CCGO__ = 1
  212. const m___CHAR_BIT__ = 8
  213. const m___CRTDECL = "__cdecl"
  214. const m___DBL_DECIMAL_DIG__ = 17
  215. const m___DBL_DIG__ = 15
  216. const m___DBL_HAS_DENORM__ = 1
  217. const m___DBL_HAS_INFINITY__ = 1
  218. const m___DBL_HAS_QUIET_NAN__ = 1
  219. const m___DBL_IS_IEC_60559__ = 2
  220. const m___DBL_MANT_DIG__ = 53
  221. const m___DBL_MAX_10_EXP__ = 308
  222. const m___DBL_MAX_EXP__ = 1024
  223. const m___DEC128_EPSILON__ = 1e-33
  224. const m___DEC128_MANT_DIG__ = 34
  225. const m___DEC128_MAX_EXP__ = 6145
  226. const m___DEC128_MAX__ = "9.999999999999999999999999999999999E6144"
  227. const m___DEC128_MIN__ = 1e-6143
  228. const m___DEC128_SUBNORMAL_MIN__ = 0.000000000000000000000000000000001e-6143
  229. const m___DEC32_EPSILON__ = 1e-6
  230. const m___DEC32_MANT_DIG__ = 7
  231. const m___DEC32_MAX_EXP__ = 97
  232. const m___DEC32_MAX__ = 9.999999e96
  233. const m___DEC32_MIN__ = 1e-95
  234. const m___DEC32_SUBNORMAL_MIN__ = 0.000001e-95
  235. const m___DEC64_EPSILON__ = 1e-15
  236. const m___DEC64_MANT_DIG__ = 16
  237. const m___DEC64_MAX_EXP__ = 385
  238. const m___DEC64_MAX__ = "9.999999999999999E384"
  239. const m___DEC64_MIN__ = 1e-383
  240. const m___DEC64_SUBNORMAL_MIN__ = 0.000000000000001e-383
  241. const m___DECIMAL_BID_FORMAT__ = 1
  242. const m___DECIMAL_DIG__ = 17
  243. const m___DEC_EVAL_METHOD__ = 2
  244. const m___FINITE_MATH_ONLY__ = 0
  245. const m___FLOAT_WORD_ORDER__ = "__ORDER_LITTLE_ENDIAN__"
  246. const m___FLT128_DECIMAL_DIG__ = 36
  247. const m___FLT128_DENORM_MIN__ = 6.47517511943802511092443895822764655e-4966
  248. const m___FLT128_DIG__ = 33
  249. const m___FLT128_EPSILON__ = 1.92592994438723585305597794258492732e-34
  250. const m___FLT128_HAS_DENORM__ = 1
  251. const m___FLT128_HAS_INFINITY__ = 1
  252. const m___FLT128_HAS_QUIET_NAN__ = 1
  253. const m___FLT128_IS_IEC_60559__ = 2
  254. const m___FLT128_MANT_DIG__ = 113
  255. const m___FLT128_MAX_10_EXP__ = 4932
  256. const m___FLT128_MAX_EXP__ = 16384
  257. const m___FLT128_MAX__ = "1.18973149535723176508575932662800702e+4932"
  258. const m___FLT128_MIN__ = 3.36210314311209350626267781732175260e-4932
  259. const m___FLT128_NORM_MAX__ = "1.18973149535723176508575932662800702e+4932"
  260. const m___FLT32X_DECIMAL_DIG__ = 17
  261. const m___FLT32X_DENORM_MIN__ = 4.94065645841246544176568792868221372e-324
  262. const m___FLT32X_DIG__ = 15
  263. const m___FLT32X_EPSILON__ = 2.22044604925031308084726333618164062e-16
  264. const m___FLT32X_HAS_DENORM__ = 1
  265. const m___FLT32X_HAS_INFINITY__ = 1
  266. const m___FLT32X_HAS_QUIET_NAN__ = 1
  267. const m___FLT32X_IS_IEC_60559__ = 2
  268. const m___FLT32X_MANT_DIG__ = 53
  269. const m___FLT32X_MAX_10_EXP__ = 308
  270. const m___FLT32X_MAX_EXP__ = 1024
  271. const m___FLT32X_MAX__ = 1.79769313486231570814527423731704357e+308
  272. const m___FLT32X_MIN__ = 2.22507385850720138309023271733240406e-308
  273. const m___FLT32X_NORM_MAX__ = 1.79769313486231570814527423731704357e+308
  274. const m___FLT32_DECIMAL_DIG__ = 9
  275. const m___FLT32_DENORM_MIN__ = 1.40129846432481707092372958328991613e-45
  276. const m___FLT32_DIG__ = 6
  277. const m___FLT32_EPSILON__ = 1.19209289550781250000000000000000000e-7
  278. const m___FLT32_HAS_DENORM__ = 1
  279. const m___FLT32_HAS_INFINITY__ = 1
  280. const m___FLT32_HAS_QUIET_NAN__ = 1
  281. const m___FLT32_IS_IEC_60559__ = 2
  282. const m___FLT32_MANT_DIG__ = 24
  283. const m___FLT32_MAX_10_EXP__ = 38
  284. const m___FLT32_MAX_EXP__ = 128
  285. const m___FLT32_MAX__ = 3.40282346638528859811704183484516925e+38
  286. const m___FLT32_MIN__ = 1.17549435082228750796873653722224568e-38
  287. const m___FLT32_NORM_MAX__ = 3.40282346638528859811704183484516925e+38
  288. const m___FLT64X_DECIMAL_DIG__ = 36
  289. const m___FLT64X_DENORM_MIN__ = 6.47517511943802511092443895822764655e-4966
  290. const m___FLT64X_DIG__ = 33
  291. const m___FLT64X_EPSILON__ = 1.92592994438723585305597794258492732e-34
  292. const m___FLT64X_HAS_DENORM__ = 1
  293. const m___FLT64X_HAS_INFINITY__ = 1
  294. const m___FLT64X_HAS_QUIET_NAN__ = 1
  295. const m___FLT64X_IS_IEC_60559__ = 2
  296. const m___FLT64X_MANT_DIG__ = 113
  297. const m___FLT64X_MAX_10_EXP__ = 4932
  298. const m___FLT64X_MAX_EXP__ = 16384
  299. const m___FLT64X_MAX__ = "1.18973149535723176508575932662800702e+4932"
  300. const m___FLT64X_MIN__ = 3.36210314311209350626267781732175260e-4932
  301. const m___FLT64X_NORM_MAX__ = "1.18973149535723176508575932662800702e+4932"
  302. const m___FLT64_DECIMAL_DIG__ = 17
  303. const m___FLT64_DENORM_MIN__ = 4.94065645841246544176568792868221372e-324
  304. const m___FLT64_DIG__ = 15
  305. const m___FLT64_EPSILON__ = 2.22044604925031308084726333618164062e-16
  306. const m___FLT64_HAS_DENORM__ = 1
  307. const m___FLT64_HAS_INFINITY__ = 1
  308. const m___FLT64_HAS_QUIET_NAN__ = 1
  309. const m___FLT64_IS_IEC_60559__ = 2
  310. const m___FLT64_MANT_DIG__ = 53
  311. const m___FLT64_MAX_10_EXP__ = 308
  312. const m___FLT64_MAX_EXP__ = 1024
  313. const m___FLT64_MAX__ = 1.79769313486231570814527423731704357e+308
  314. const m___FLT64_MIN__ = 2.22507385850720138309023271733240406e-308
  315. const m___FLT64_NORM_MAX__ = 1.79769313486231570814527423731704357e+308
  316. const m___FLT_DECIMAL_DIG__ = 9
  317. const m___FLT_DENORM_MIN__ = 1.40129846432481707092372958328991613e-45
  318. const m___FLT_DIG__ = 6
  319. const m___FLT_EPSILON__ = 1.19209289550781250000000000000000000e-7
  320. const m___FLT_EVAL_METHOD_TS_18661_3__ = 2
  321. const m___FLT_EVAL_METHOD__ = 2
  322. const m___FLT_HAS_DENORM__ = 1
  323. const m___FLT_HAS_INFINITY__ = 1
  324. const m___FLT_HAS_QUIET_NAN__ = 1
  325. const m___FLT_IS_IEC_60559__ = 2
  326. const m___FLT_MANT_DIG__ = 24
  327. const m___FLT_MAX_10_EXP__ = 38
  328. const m___FLT_MAX_EXP__ = 128
  329. const m___FLT_MAX__ = 3.40282346638528859811704183484516925e+38
  330. const m___FLT_MIN__ = 1.17549435082228750796873653722224568e-38
  331. const m___FLT_NORM_MAX__ = 3.40282346638528859811704183484516925e+38
  332. const m___FLT_RADIX__ = 2
  333. const m___FUNCTION__ = "__func__"
  334. const m___GCC_ASM_FLAG_OUTPUTS__ = 1
  335. const m___GCC_ATOMIC_BOOL_LOCK_FREE = 2
  336. const m___GCC_ATOMIC_CHAR16_T_LOCK_FREE = 2
  337. const m___GCC_ATOMIC_CHAR32_T_LOCK_FREE = 2
  338. const m___GCC_ATOMIC_CHAR_LOCK_FREE = 2
  339. const m___GCC_ATOMIC_INT_LOCK_FREE = 2
  340. const m___GCC_ATOMIC_LLONG_LOCK_FREE = 2
  341. const m___GCC_ATOMIC_LONG_LOCK_FREE = 2
  342. const m___GCC_ATOMIC_POINTER_LOCK_FREE = 2
  343. const m___GCC_ATOMIC_SHORT_LOCK_FREE = 2
  344. const m___GCC_ATOMIC_TEST_AND_SET_TRUEVAL = 1
  345. const m___GCC_ATOMIC_WCHAR_T_LOCK_FREE = 2
  346. const m___GCC_CONSTRUCTIVE_SIZE = 64
  347. const m___GCC_DESTRUCTIVE_SIZE = 64
  348. const m___GCC_HAVE_DWARF2_CFI_ASM = 1
  349. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 = 1
  350. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 = 1
  351. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 = 1
  352. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 = 1
  353. const m___GCC_IEC_559 = 2
  354. const m___GCC_IEC_559_COMPLEX = 2
  355. const m___GNUC_EXECUTION_CHARSET_NAME = "UTF-8"
  356. const m___GNUC_MINOR__ = 0
  357. const m___GNUC_PATCHLEVEL__ = 0
  358. const m___GNUC_STDC_INLINE__ = 1
  359. const m___GNUC_WIDE_EXECUTION_CHARSET_NAME = "UTF-16LE"
  360. const m___GNUC__ = 12
  361. const m___GNU_EXTENSION = "__MINGW_EXTENSION"
  362. const m___GOT_SECURE_LIB__ = "__STDC_SECURE_LIB__"
  363. const m___GXX_ABI_VERSION = 1017
  364. const m___GXX_MERGED_TYPEINFO_NAMES = 0
  365. const m___GXX_TYPEINFO_EQUALITY_INLINE = 0
  366. const m___HAVE_SPECULATION_SAFE_VALUE = 1
  367. const m___ILP32__ = 1
  368. const m___INT16_MAX__ = 0x7fff
  369. const m___INT32_MAX__ = 0x7fffffff
  370. const m___INT32_TYPE__ = "int"
  371. const m___INT64_MAX__ = 0x7fffffffffffffff
  372. const m___INT8_MAX__ = 0x7f
  373. const m___INTMAX_MAX__ = 0x7fffffffffffffff
  374. const m___INTMAX_WIDTH__ = 64
  375. const m___INTPTR_MAX__ = 0x7fffffff
  376. const m___INTPTR_TYPE__ = "int"
  377. const m___INTPTR_WIDTH__ = 32
  378. const m___INT_FAST16_MAX__ = 0x7fff
  379. const m___INT_FAST16_WIDTH__ = 16
  380. const m___INT_FAST32_MAX__ = 0x7fffffff
  381. const m___INT_FAST32_TYPE__ = "int"
  382. const m___INT_FAST32_WIDTH__ = 32
  383. const m___INT_FAST64_MAX__ = 0x7fffffffffffffff
  384. const m___INT_FAST64_WIDTH__ = 64
  385. const m___INT_FAST8_MAX__ = 0x7f
  386. const m___INT_FAST8_WIDTH__ = 8
  387. const m___INT_LEAST16_MAX__ = 0x7fff
  388. const m___INT_LEAST16_WIDTH__ = 16
  389. const m___INT_LEAST32_MAX__ = 0x7fffffff
  390. const m___INT_LEAST32_TYPE__ = "int"
  391. const m___INT_LEAST32_WIDTH__ = 32
  392. const m___INT_LEAST64_MAX__ = 0x7fffffffffffffff
  393. const m___INT_LEAST64_WIDTH__ = 64
  394. const m___INT_LEAST8_MAX__ = 0x7f
  395. const m___INT_LEAST8_WIDTH__ = 8
  396. const m___INT_MAX__ = 0x7fffffff
  397. const m___INT_WIDTH__ = 32
  398. const m___LAHF_SAHF__ = 1
  399. const m___LDBL_DECIMAL_DIG__ = 17
  400. const m___LDBL_DENORM_MIN__ = 4.94065645841246544176568792868221372e-324
  401. const m___LDBL_DIG__ = 15
  402. const m___LDBL_EPSILON__ = 2.22044604925031308084726333618164062e-16
  403. const m___LDBL_HAS_DENORM__ = 1
  404. const m___LDBL_HAS_INFINITY__ = 1
  405. const m___LDBL_HAS_QUIET_NAN__ = 1
  406. const m___LDBL_IS_IEC_60559__ = 2
  407. const m___LDBL_MANT_DIG__ = 53
  408. const m___LDBL_MAX_10_EXP__ = 308
  409. const m___LDBL_MAX_EXP__ = 1024
  410. const m___LDBL_MAX__ = 1.79769313486231570814527423731704357e+308
  411. const m___LDBL_MIN__ = 2.22507385850720138309023271733240406e-308
  412. const m___LDBL_NORM_MAX__ = 1.79769313486231570814527423731704357e+308
  413. const m___LONG32 = "long"
  414. const m___LONG_DOUBLE_64__ = 1
  415. const m___LONG_LONG_MAX__ = 0x7fffffffffffffff
  416. const m___LONG_LONG_WIDTH__ = 64
  417. const m___LONG_MAX__ = 0x7fffffff
  418. const m___LONG_WIDTH__ = 32
  419. const m___MINGW32_MAJOR_VERSION = 3
  420. const m___MINGW32_MINOR_VERSION = 11
  421. const m___MINGW32__ = 1
  422. const m___MINGW64_VERSION_BUGFIX = 0
  423. const m___MINGW64_VERSION_MAJOR = 10
  424. const m___MINGW64_VERSION_MINOR = 0
  425. const m___MINGW64_VERSION_RC = 0
  426. const m___MINGW64_VERSION_STATE = "alpha"
  427. const m___MINGW_DEBUGBREAK_IMPL = 1
  428. const m___MINGW_FORTIFY_LEVEL = 0
  429. const m___MINGW_FORTIFY_VA_ARG = 0
  430. const m___MINGW_HAVE_ANSI_C99_PRINTF = 1
  431. const m___MINGW_HAVE_ANSI_C99_SCANF = 1
  432. const m___MINGW_HAVE_WIDE_C99_PRINTF = 1
  433. const m___MINGW_HAVE_WIDE_C99_SCANF = 1
  434. const m___MINGW_MSVC2005_DEPREC_STR = "This POSIX function is deprecated beginning in Visual C++ 2005, use _CRT_NONSTDC_NO_DEPRECATE to disable deprecation"
  435. const m___MINGW_SEC_WARN_STR = "This function or variable may be unsafe, use _CRT_SECURE_NO_WARNINGS to disable deprecation"
  436. const m___MSVCRT_VERSION__ = 0xE00
  437. const m___MSVCRT__ = 1
  438. const m___OPTIMIZE__ = 1
  439. const m___ORDER_BIG_ENDIAN__ = 4321
  440. const m___ORDER_LITTLE_ENDIAN__ = 1234
  441. const m___ORDER_PDP_ENDIAN__ = 3412
  442. const m___PRAGMA_REDEFINE_EXTNAME = 1
  443. const m___PRETTY_FUNCTION__ = "__func__"
  444. const m___PTRDIFF_MAX__ = 0x7fffffff
  445. const m___PTRDIFF_TYPE__ = "int"
  446. const m___PTRDIFF_WIDTH__ = 32
  447. const m___SCHAR_MAX__ = 0x7f
  448. const m___SCHAR_WIDTH__ = 8
  449. const m___SEG_FS = 1
  450. const m___SEG_GS = 1
  451. const m___SHRT_MAX__ = 0x7fff
  452. const m___SHRT_WIDTH__ = 16
  453. const m___SIG_ATOMIC_MAX__ = 0x7fffffff
  454. const m___SIG_ATOMIC_TYPE__ = "int"
  455. const m___SIG_ATOMIC_WIDTH__ = 32
  456. const m___SIZEOF_DOUBLE__ = 8
  457. const m___SIZEOF_FLOAT128__ = 16
  458. const m___SIZEOF_FLOAT80__ = 12
  459. const m___SIZEOF_FLOAT__ = 4
  460. const m___SIZEOF_INT__ = 4
  461. const m___SIZEOF_LONG_DOUBLE__ = 8
  462. const m___SIZEOF_LONG_LONG__ = 8
  463. const m___SIZEOF_LONG__ = 4
  464. const m___SIZEOF_POINTER__ = 4
  465. const m___SIZEOF_PTRDIFF_T__ = 4
  466. const m___SIZEOF_SHORT__ = 2
  467. const m___SIZEOF_SIZE_T__ = 4
  468. const m___SIZEOF_WCHAR_T__ = 2
  469. const m___SIZEOF_WINT_T__ = 2
  470. const m___SIZE_MAX__ = 0xffffffff
  471. const m___SIZE_WIDTH__ = 32
  472. const m___STDC_HOSTED__ = 1
  473. const m___STDC_SECURE_LIB__ = 200411
  474. const m___STDC_UTF_16__ = 1
  475. const m___STDC_UTF_32__ = 1
  476. const m___STDC_VERSION__ = 201710
  477. const m___STDC__ = 1
  478. const m___UINT16_MAX__ = 0xffff
  479. const m___UINT32_MAX__ = 0xffffffff
  480. const m___UINT64_MAX__ = "0xffffffffffffffffU"
  481. const m___UINT8_MAX__ = 0xff
  482. const m___UINTMAX_MAX__ = "0xffffffffffffffffU"
  483. const m___UINTPTR_MAX__ = 0xffffffff
  484. const m___UINT_FAST16_MAX__ = 0xffff
  485. const m___UINT_FAST32_MAX__ = 0xffffffff
  486. const m___UINT_FAST64_MAX__ = "0xffffffffffffffffU"
  487. const m___UINT_FAST8_MAX__ = 0xff
  488. const m___UINT_LEAST16_MAX__ = 0xffff
  489. const m___UINT_LEAST32_MAX__ = 0xffffffff
  490. const m___UINT_LEAST64_MAX__ = "0xffffffffffffffffU"
  491. const m___UINT_LEAST8_MAX__ = 0xff
  492. const m___USER_LABEL_PREFIX__ = "_"
  493. const m___USE_MINGW_ANSI_STDIO = 0
  494. const m___VERSION__ = "12-win32"
  495. const m___WCHAR_MAX__ = 0xffff
  496. const m___WCHAR_MIN__ = 0
  497. const m___WCHAR_WIDTH__ = 16
  498. const m___WIN32 = 1
  499. const m___WIN32__ = 1
  500. const m___WINNT = 1
  501. const m___WINNT__ = 1
  502. const m___WINT_MAX__ = 0xffff
  503. const m___WINT_MIN__ = 0
  504. const m___WINT_WIDTH__ = 16
  505. const m___code_model_32__ = 1
  506. const m___i386 = 1
  507. const m___i386__ = 1
  508. const m___i686 = 1
  509. const m___i686__ = 1
  510. const m___int16 = "short"
  511. const m___int32 = "int"
  512. const m___int8 = "char"
  513. const m___mingw_bos_ovr = "__mingw_ovr"
  514. const m___pentiumpro = 1
  515. const m___pentiumpro__ = 1
  516. const m__inline = "__inline"
  517. const m_environ = "_environ"
  518. const m_i386 = 1
  519. const m_local = "static"
  520. const m_onexit_t = "_onexit_t"
  521. const m_sys_errlist = "_sys_errlist"
  522. const m_sys_nerr = "_sys_nerr"
  523. const m_wcswcs = "wcsstr"
  524. const m_z_off64_t = "z_off_t"
  525. const m_z_off_t = "long"
  526. const m_zmemcmp = "memcmp"
  527. const m_zmemcpy = "memcpy"
  528. type t__builtin_va_list = uintptr
  529. type t__predefined_size_t = uint32
  530. type t__predefined_wchar_t = uint16
  531. type t__predefined_ptrdiff_t = int32
  532. type t__gnuc_va_list = uintptr
  533. type Tva_list = uintptr
  534. type Tsize_t = uint32
  535. type Tssize_t = int32
  536. type Trsize_t = uint32
  537. type Tintptr_t = int32
  538. type Tuintptr_t = uint32
  539. type Tptrdiff_t = int32
  540. type Twchar_t = uint16
  541. type Twint_t = uint16
  542. type Twctype_t = uint16
  543. type Terrno_t = int32
  544. type t__time32_t = int32
  545. type t__time64_t = int64
  546. type Ttime_t = int64
  547. type Tthreadlocaleinfostruct = struct {
  548. F_locale_pctype uintptr
  549. F_locale_mb_cur_max int32
  550. F_locale_lc_codepage uint32
  551. }
  552. type Tpthreadlocinfo = uintptr
  553. type Tpthreadmbcinfo = uintptr
  554. type T_locale_tstruct = struct {
  555. Flocinfo Tpthreadlocinfo
  556. Fmbcinfo Tpthreadmbcinfo
  557. }
  558. type Tlocaleinfo_struct = T_locale_tstruct
  559. type T_locale_t = uintptr
  560. type TLC_ID = struct {
  561. FwLanguage uint16
  562. FwCountry uint16
  563. FwCodePage uint16
  564. }
  565. type TtagLC_ID = TLC_ID
  566. type TLPLC_ID = uintptr
  567. type Tthreadlocinfo = struct {
  568. F_locale_pctype uintptr
  569. F_locale_mb_cur_max int32
  570. F_locale_lc_codepage uint32
  571. }
  572. type Tmax_align_t = struct {
  573. F__ccgo_align [0]uint32
  574. F__max_align_ll int64
  575. F__max_align_ld float64
  576. }
  577. type Tz_size_t = uint32
  578. type TByte = uint8
  579. type TuInt = uint32
  580. type TuLong = uint32
  581. type TBytef = uint8
  582. type Tcharf = int8
  583. type Tintf = int32
  584. type TuIntf = uint32
  585. type TuLongf = uint32
  586. type Tvoidpc = uintptr
  587. type Tvoidpf = uintptr
  588. type Tvoidp = uintptr
  589. type Tz_crc_t = uint32
  590. type T_ino_t = uint16
  591. type Tino_t = uint16
  592. type T_dev_t = uint32
  593. type Tdev_t = uint32
  594. type T_pid_t = int32
  595. type Tpid_t = int32
  596. type T_mode_t = uint16
  597. type Tmode_t = uint16
  598. type T_off_t = int32
  599. type Toff32_t = int32
  600. type T_off64_t = int64
  601. type Toff64_t = int64
  602. type Toff_t = int64
  603. type Tuseconds_t = uint32
  604. type Ttimespec = struct {
  605. F__ccgo_align [0]uint32
  606. Ftv_sec Ttime_t
  607. Ftv_nsec int32
  608. F__ccgo_pad2 [4]byte
  609. }
  610. type Titimerspec = struct {
  611. F__ccgo_align [0]uint32
  612. Fit_interval Ttimespec
  613. Fit_value Ttimespec
  614. }
  615. type T_sigset_t = uint32
  616. type Talloc_func = uintptr
  617. type Tfree_func = uintptr
  618. type Tz_stream = struct {
  619. Fnext_in uintptr
  620. Favail_in TuInt
  621. Ftotal_in TuLong
  622. Fnext_out uintptr
  623. Favail_out TuInt
  624. Ftotal_out TuLong
  625. Fmsg uintptr
  626. Fstate uintptr
  627. Fzalloc Talloc_func
  628. Fzfree Tfree_func
  629. Fopaque Tvoidpf
  630. Fdata_type int32
  631. Fadler TuLong
  632. Freserved TuLong
  633. }
  634. type Tz_stream_s = Tz_stream
  635. type Tz_streamp = uintptr
  636. type Tgz_header = struct {
  637. Ftext int32
  638. Ftime TuLong
  639. Fxflags int32
  640. Fos int32
  641. Fextra uintptr
  642. Fextra_len TuInt
  643. Fextra_max TuInt
  644. Fname uintptr
  645. Fname_max TuInt
  646. Fcomment uintptr
  647. Fcomm_max TuInt
  648. Fhcrc int32
  649. Fdone int32
  650. }
  651. type Tgz_header_s = Tgz_header
  652. type Tgz_headerp = uintptr
  653. type Tin_func = uintptr
  654. type Tout_func = uintptr
  655. type TgzFile = uintptr
  656. type TgzFile_s = struct {
  657. Fhave uint32
  658. Fnext uintptr
  659. Fpos int32
  660. }
  661. type T_onexit_t = uintptr
  662. type Tdiv_t = struct {
  663. Fquot int32
  664. Frem int32
  665. }
  666. type T_div_t = Tdiv_t
  667. type Tldiv_t = struct {
  668. Fquot int32
  669. Frem int32
  670. }
  671. type T_ldiv_t = Tldiv_t
  672. type T_LDOUBLE = struct {
  673. Fld [10]uint8
  674. }
  675. type T_CRT_DOUBLE = struct {
  676. F__ccgo_align [0]uint32
  677. Fx float64
  678. }
  679. type T_CRT_FLOAT = struct {
  680. Ff float32
  681. }
  682. type T_LONGDOUBLE = struct {
  683. F__ccgo_align [0]uint32
  684. Fx float64
  685. }
  686. type T_LDBL12 = struct {
  687. Fld12 [12]uint8
  688. }
  689. type T_purecall_handler = uintptr
  690. type T_invalid_parameter_handler = uintptr
  691. type Tlldiv_t = struct {
  692. F__ccgo_align [0]uint32
  693. Fquot int64
  694. Frem int64
  695. }
  696. type T_HEAPINFO = struct {
  697. F_pentry uintptr
  698. F_size Tsize_t
  699. F_useflag int32
  700. }
  701. type T_heapinfo = T_HEAPINFO
  702. type Tuch = uint8
  703. type Tuchf = uint8
  704. type Tush = uint16
  705. type Tushf = uint16
  706. type Tulg = uint32
  707. /* Reverse the bytes in a 32-bit value */
  708. /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
  709. /* use NO_DIVIDE if your processor does not do division in hardware --
  710. try it both ways to see which is faster */
  711. // C documentation
  712. //
  713. // /* ========================================================================= */
  714. func Xadler32_z(tls *libc.TLS, adler TuLong, buf uintptr, len1 Tz_size_t) (r TuLong) {
  715. var n, sum2, v3 uint32
  716. var v1, v5 Tz_size_t
  717. var v2, v6 uintptr
  718. _, _, _, _, _, _, _ = n, sum2, v1, v2, v3, v5, v6
  719. /* split Adler-32 into component sums */
  720. sum2 = adler >> libc.Int32FromInt32(16) & uint32(0xffff)
  721. adler &= uint32(0xffff)
  722. /* in case user likes doing a byte at a time, keep it fast */
  723. if len1 == uint32(1) {
  724. adler += uint32(*(*TBytef)(unsafe.Pointer(buf)))
  725. if adler >= uint32(65521) {
  726. adler -= uint32(65521)
  727. }
  728. sum2 += adler
  729. if sum2 >= uint32(65521) {
  730. sum2 -= uint32(65521)
  731. }
  732. return adler | sum2<<int32(16)
  733. }
  734. /* initial Adler-32 value (deferred check for len == 1 speed) */
  735. if buf == uintptr(m_Z_NULL) {
  736. return uint32(1)
  737. }
  738. /* in case short lengths are provided, keep it somewhat fast */
  739. if len1 < uint32(16) {
  740. for {
  741. v1 = len1
  742. len1--
  743. if !(v1 != 0) {
  744. break
  745. }
  746. v2 = buf
  747. buf++
  748. adler += uint32(*(*TBytef)(unsafe.Pointer(v2)))
  749. sum2 += adler
  750. }
  751. if adler >= uint32(65521) {
  752. adler -= uint32(65521)
  753. }
  754. sum2 %= uint32(65521) /* only added so many BASE's */
  755. return adler | sum2<<int32(16)
  756. }
  757. /* do length NMAX blocks -- requires just one modulo operation */
  758. for len1 >= uint32(m_NMAX) {
  759. len1 -= uint32(m_NMAX)
  760. n = uint32(libc.Int32FromInt32(m_NMAX) / libc.Int32FromInt32(16)) /* NMAX is divisible by 16 */
  761. for {
  762. adler += uint32(*(*TBytef)(unsafe.Pointer(buf)))
  763. sum2 += adler
  764. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(1)))))
  765. sum2 += adler
  766. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)))))
  767. sum2 += adler
  768. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  769. sum2 += adler
  770. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)))))
  771. sum2 += adler
  772. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  773. sum2 += adler
  774. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  775. sum2 += adler
  776. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  777. sum2 += adler
  778. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + 8)))
  779. sum2 += adler
  780. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(1)))))
  781. sum2 += adler
  782. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)))))
  783. sum2 += adler
  784. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  785. sum2 += adler
  786. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)))))
  787. sum2 += adler
  788. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  789. sum2 += adler
  790. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  791. sum2 += adler
  792. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  793. sum2 += adler /* 16 sums unrolled */
  794. buf += uintptr(16)
  795. goto _4
  796. _4:
  797. ;
  798. n--
  799. v3 = n
  800. if !(v3 != 0) {
  801. break
  802. }
  803. }
  804. adler %= uint32(65521)
  805. sum2 %= uint32(65521)
  806. }
  807. /* do remaining bytes (less than NMAX, still just one modulo) */
  808. if len1 != 0 { /* avoid modulos if none remaining */
  809. for len1 >= uint32(16) {
  810. len1 -= uint32(16)
  811. adler += uint32(*(*TBytef)(unsafe.Pointer(buf)))
  812. sum2 += adler
  813. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(1)))))
  814. sum2 += adler
  815. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)))))
  816. sum2 += adler
  817. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  818. sum2 += adler
  819. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)))))
  820. sum2 += adler
  821. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  822. sum2 += adler
  823. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  824. sum2 += adler
  825. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  826. sum2 += adler
  827. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + 8)))
  828. sum2 += adler
  829. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(1)))))
  830. sum2 += adler
  831. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)))))
  832. sum2 += adler
  833. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  834. sum2 += adler
  835. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)))))
  836. sum2 += adler
  837. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  838. sum2 += adler
  839. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  840. sum2 += adler
  841. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  842. sum2 += adler
  843. buf += uintptr(16)
  844. }
  845. for {
  846. v5 = len1
  847. len1--
  848. if !(v5 != 0) {
  849. break
  850. }
  851. v6 = buf
  852. buf++
  853. adler += uint32(*(*TBytef)(unsafe.Pointer(v6)))
  854. sum2 += adler
  855. }
  856. adler %= uint32(65521)
  857. sum2 %= uint32(65521)
  858. }
  859. /* return recombined sums */
  860. return adler | sum2<<int32(16)
  861. }
  862. // C documentation
  863. //
  864. // /* ========================================================================= */
  865. func Xadler32(tls *libc.TLS, adler TuLong, buf uintptr, len1 TuInt) (r TuLong) {
  866. return Xadler32_z(tls, adler, buf, len1)
  867. }
  868. // C documentation
  869. //
  870. // /* ========================================================================= */
  871. func _adler32_combine_(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 int32) (r TuLong) {
  872. var rem, sum1, sum2 uint32
  873. _, _, _ = rem, sum1, sum2
  874. /* for negative len, return invalid adler32 as a clue for debugging */
  875. if len2 < 0 {
  876. return uint32(0xffffffff)
  877. }
  878. /* the derivation of this formula is left as an exercise for the reader */
  879. len2 = int32(uint32(len2) % libc.Uint32FromUint32(65521)) /* assumes len2 >= 0 */
  880. rem = uint32(len2)
  881. sum1 = adler1 & uint32(0xffff)
  882. sum2 = rem * sum1
  883. sum2 %= uint32(65521)
  884. sum1 += adler2&uint32(0xffff) + uint32(65521) - uint32(1)
  885. sum2 += adler1>>libc.Int32FromInt32(16)&uint32(0xffff) + adler2>>libc.Int32FromInt32(16)&uint32(0xffff) + uint32(65521) - rem
  886. if sum1 >= uint32(65521) {
  887. sum1 -= uint32(65521)
  888. }
  889. if sum1 >= uint32(65521) {
  890. sum1 -= uint32(65521)
  891. }
  892. if sum2 >= libc.Uint32FromUint32(65521)<<libc.Int32FromInt32(1) {
  893. sum2 -= libc.Uint32FromUint32(65521) << libc.Int32FromInt32(1)
  894. }
  895. if sum2 >= uint32(65521) {
  896. sum2 -= uint32(65521)
  897. }
  898. return sum1 | sum2<<int32(16)
  899. }
  900. // C documentation
  901. //
  902. // /* ========================================================================= */
  903. func Xadler32_combine(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 int32) (r TuLong) {
  904. return _adler32_combine_(tls, adler1, adler2, len2)
  905. }
  906. func Xadler32_combine64(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 int32) (r TuLong) {
  907. return _adler32_combine_(tls, adler1, adler2, len2)
  908. }
  909. // C documentation
  910. //
  911. // /* ===========================================================================
  912. // Compresses the source buffer into the destination buffer. The level
  913. // parameter has the same meaning as in deflateInit. sourceLen is the byte
  914. // length of the source buffer. Upon entry, destLen is the total size of the
  915. // destination buffer, which must be at least 0.1% larger than sourceLen plus
  916. // 12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
  917. //
  918. // compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
  919. // memory, Z_BUF_ERROR if there was not enough room in the output buffer,
  920. // Z_STREAM_ERROR if the level parameter is invalid.
  921. // */
  922. func Xcompress2(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen TuLong, level int32) (r int32) {
  923. bp := tls.Alloc(64)
  924. defer tls.Free(64)
  925. var err, v3, v4 int32
  926. var left TuLong
  927. var max TuInt
  928. var v1, v2 uint32
  929. var _ /* stream at bp+0 */ Tz_stream
  930. _, _, _, _, _, _, _ = err, left, max, v1, v2, v3, v4
  931. max = uint32(-libc.Int32FromInt32(1))
  932. left = *(*TuLongf)(unsafe.Pointer(destLen))
  933. *(*TuLongf)(unsafe.Pointer(destLen)) = uint32(0)
  934. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzalloc = libc.UintptrFromInt32(0)
  935. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzfree = libc.UintptrFromInt32(0)
  936. (*(*Tz_stream)(unsafe.Pointer(bp))).Fopaque = libc.UintptrFromInt32(0)
  937. err = XdeflateInit_(tls, bp, level, __ccgo_ts, libc.Int32FromInt64(56))
  938. if err != m_Z_OK {
  939. return err
  940. }
  941. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_out = dest
  942. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = uint32(0)
  943. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_in = source
  944. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = uint32(0)
  945. for cond := true; cond; cond = err == m_Z_OK {
  946. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out == uint32(0) {
  947. if left > max {
  948. v1 = max
  949. } else {
  950. v1 = left
  951. }
  952. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = v1
  953. left -= (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out
  954. }
  955. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in == uint32(0) {
  956. if sourceLen > max {
  957. v2 = max
  958. } else {
  959. v2 = sourceLen
  960. }
  961. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = v2
  962. sourceLen -= (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in
  963. }
  964. if sourceLen != 0 {
  965. v3 = m_Z_NO_FLUSH
  966. } else {
  967. v3 = int32(m_Z_FINISH)
  968. }
  969. err = Xdeflate(tls, bp, v3)
  970. }
  971. *(*TuLongf)(unsafe.Pointer(destLen)) = (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out
  972. XdeflateEnd(tls, bp)
  973. if err == int32(m_Z_STREAM_END) {
  974. v4 = m_Z_OK
  975. } else {
  976. v4 = err
  977. }
  978. return v4
  979. }
  980. // C documentation
  981. //
  982. // /* ===========================================================================
  983. // */
  984. func Xcompress(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen TuLong) (r int32) {
  985. return Xcompress2(tls, dest, destLen, source, sourceLen, -int32(1))
  986. }
  987. // C documentation
  988. //
  989. // /* ===========================================================================
  990. // If the default memLevel or windowBits for deflateInit() is changed, then
  991. // this function needs to be updated.
  992. // */
  993. func XcompressBound(tls *libc.TLS, sourceLen TuLong) (r TuLong) {
  994. return sourceLen + sourceLen>>libc.Int32FromInt32(12) + sourceLen>>libc.Int32FromInt32(14) + sourceLen>>libc.Int32FromInt32(25) + uint32(13)
  995. }
  996. const m_N = 5
  997. const m_POLY = 3988292384
  998. /* Reverse the bytes in a 32-bit value */
  999. /*
  1000. A CRC of a message is computed on N braids of words in the message, where
  1001. each word consists of W bytes (4 or 8). If N is 3, for example, then three
  1002. running sparse CRCs are calculated respectively on each braid, at these
  1003. indices in the array of words: 0, 3, 6, ..., 1, 4, 7, ..., and 2, 5, 8, ...
  1004. This is done starting at a word boundary, and continues until as many blocks
  1005. of N * W bytes as are available have been processed. The results are combined
  1006. into a single CRC at the end. For this code, N must be in the range 1..6 and
  1007. W must be 4 or 8. The upper limit on N can be increased if desired by adding
  1008. more #if blocks, extending the patterns apparent in the code. In addition,
  1009. crc32.h would need to be regenerated, if the maximum N value is increased.
  1010. N and W are chosen empirically by benchmarking the execution time on a given
  1011. processor. The choices for N and W below were based on testing on Intel Kaby
  1012. Lake i7, AMD Ryzen 7, ARM Cortex-A57, Sparc64-VII, PowerPC POWER9, and MIPS64
  1013. Octeon II processors. The Intel, AMD, and ARM processors were all fastest
  1014. with N=5, W=8. The Sparc, PowerPC, and MIPS64 were all fastest at N=5, W=4.
  1015. They were all tested with either gcc or clang, all using the -O3 optimization
  1016. level. Your mileage may vary.
  1017. */
  1018. /* Define N */
  1019. /*
  1020. z_crc_t must be at least 32 bits. z_word_t must be at least as long as
  1021. z_crc_t. It is assumed here that z_word_t is either 32 bits or 64 bits, and
  1022. that bytes are eight bits.
  1023. */
  1024. // C documentation
  1025. //
  1026. // /*
  1027. // Define W and the associated z_word_t type. If W is not defined, then a
  1028. // braided calculation is not used, and the associated tables and code are not
  1029. // compiled.
  1030. // */
  1031. type Tz_word_t = uint32
  1032. /* If available, use the ARM processor CRC32 instruction. */
  1033. // C documentation
  1034. //
  1035. // /*
  1036. // Swap the bytes in a z_word_t to convert between little and big endian. Any
  1037. // self-respecting compiler will optimize this to a single machine byte-swap
  1038. // instruction, if one is available. This assumes that word_t is either 32 bits
  1039. // or 64 bits.
  1040. // */
  1041. func _byte_swap(tls *libc.TLS, word Tz_word_t) (r Tz_word_t) {
  1042. return word&uint32(0xff000000)>>int32(24) | word&uint32(0xff0000)>>int32(8) | word&uint32(0xff00)<<int32(8) | word&uint32(0xff)<<int32(24)
  1043. }
  1044. var _crc_table = [256]Tz_crc_t{
  1045. 1: uint32(0x77073096),
  1046. 2: uint32(0xee0e612c),
  1047. 3: uint32(0x990951ba),
  1048. 4: uint32(0x076dc419),
  1049. 5: uint32(0x706af48f),
  1050. 6: uint32(0xe963a535),
  1051. 7: uint32(0x9e6495a3),
  1052. 8: uint32(0x0edb8832),
  1053. 9: uint32(0x79dcb8a4),
  1054. 10: uint32(0xe0d5e91e),
  1055. 11: uint32(0x97d2d988),
  1056. 12: uint32(0x09b64c2b),
  1057. 13: uint32(0x7eb17cbd),
  1058. 14: uint32(0xe7b82d07),
  1059. 15: uint32(0x90bf1d91),
  1060. 16: uint32(0x1db71064),
  1061. 17: uint32(0x6ab020f2),
  1062. 18: uint32(0xf3b97148),
  1063. 19: uint32(0x84be41de),
  1064. 20: uint32(0x1adad47d),
  1065. 21: uint32(0x6ddde4eb),
  1066. 22: uint32(0xf4d4b551),
  1067. 23: uint32(0x83d385c7),
  1068. 24: uint32(0x136c9856),
  1069. 25: uint32(0x646ba8c0),
  1070. 26: uint32(0xfd62f97a),
  1071. 27: uint32(0x8a65c9ec),
  1072. 28: uint32(0x14015c4f),
  1073. 29: uint32(0x63066cd9),
  1074. 30: uint32(0xfa0f3d63),
  1075. 31: uint32(0x8d080df5),
  1076. 32: uint32(0x3b6e20c8),
  1077. 33: uint32(0x4c69105e),
  1078. 34: uint32(0xd56041e4),
  1079. 35: uint32(0xa2677172),
  1080. 36: uint32(0x3c03e4d1),
  1081. 37: uint32(0x4b04d447),
  1082. 38: uint32(0xd20d85fd),
  1083. 39: uint32(0xa50ab56b),
  1084. 40: uint32(0x35b5a8fa),
  1085. 41: uint32(0x42b2986c),
  1086. 42: uint32(0xdbbbc9d6),
  1087. 43: uint32(0xacbcf940),
  1088. 44: uint32(0x32d86ce3),
  1089. 45: uint32(0x45df5c75),
  1090. 46: uint32(0xdcd60dcf),
  1091. 47: uint32(0xabd13d59),
  1092. 48: uint32(0x26d930ac),
  1093. 49: uint32(0x51de003a),
  1094. 50: uint32(0xc8d75180),
  1095. 51: uint32(0xbfd06116),
  1096. 52: uint32(0x21b4f4b5),
  1097. 53: uint32(0x56b3c423),
  1098. 54: uint32(0xcfba9599),
  1099. 55: uint32(0xb8bda50f),
  1100. 56: uint32(0x2802b89e),
  1101. 57: uint32(0x5f058808),
  1102. 58: uint32(0xc60cd9b2),
  1103. 59: uint32(0xb10be924),
  1104. 60: uint32(0x2f6f7c87),
  1105. 61: uint32(0x58684c11),
  1106. 62: uint32(0xc1611dab),
  1107. 63: uint32(0xb6662d3d),
  1108. 64: uint32(0x76dc4190),
  1109. 65: uint32(0x01db7106),
  1110. 66: uint32(0x98d220bc),
  1111. 67: uint32(0xefd5102a),
  1112. 68: uint32(0x71b18589),
  1113. 69: uint32(0x06b6b51f),
  1114. 70: uint32(0x9fbfe4a5),
  1115. 71: uint32(0xe8b8d433),
  1116. 72: uint32(0x7807c9a2),
  1117. 73: uint32(0x0f00f934),
  1118. 74: uint32(0x9609a88e),
  1119. 75: uint32(0xe10e9818),
  1120. 76: uint32(0x7f6a0dbb),
  1121. 77: uint32(0x086d3d2d),
  1122. 78: uint32(0x91646c97),
  1123. 79: uint32(0xe6635c01),
  1124. 80: uint32(0x6b6b51f4),
  1125. 81: uint32(0x1c6c6162),
  1126. 82: uint32(0x856530d8),
  1127. 83: uint32(0xf262004e),
  1128. 84: uint32(0x6c0695ed),
  1129. 85: uint32(0x1b01a57b),
  1130. 86: uint32(0x8208f4c1),
  1131. 87: uint32(0xf50fc457),
  1132. 88: uint32(0x65b0d9c6),
  1133. 89: uint32(0x12b7e950),
  1134. 90: uint32(0x8bbeb8ea),
  1135. 91: uint32(0xfcb9887c),
  1136. 92: uint32(0x62dd1ddf),
  1137. 93: uint32(0x15da2d49),
  1138. 94: uint32(0x8cd37cf3),
  1139. 95: uint32(0xfbd44c65),
  1140. 96: uint32(0x4db26158),
  1141. 97: uint32(0x3ab551ce),
  1142. 98: uint32(0xa3bc0074),
  1143. 99: uint32(0xd4bb30e2),
  1144. 100: uint32(0x4adfa541),
  1145. 101: uint32(0x3dd895d7),
  1146. 102: uint32(0xa4d1c46d),
  1147. 103: uint32(0xd3d6f4fb),
  1148. 104: uint32(0x4369e96a),
  1149. 105: uint32(0x346ed9fc),
  1150. 106: uint32(0xad678846),
  1151. 107: uint32(0xda60b8d0),
  1152. 108: uint32(0x44042d73),
  1153. 109: uint32(0x33031de5),
  1154. 110: uint32(0xaa0a4c5f),
  1155. 111: uint32(0xdd0d7cc9),
  1156. 112: uint32(0x5005713c),
  1157. 113: uint32(0x270241aa),
  1158. 114: uint32(0xbe0b1010),
  1159. 115: uint32(0xc90c2086),
  1160. 116: uint32(0x5768b525),
  1161. 117: uint32(0x206f85b3),
  1162. 118: uint32(0xb966d409),
  1163. 119: uint32(0xce61e49f),
  1164. 120: uint32(0x5edef90e),
  1165. 121: uint32(0x29d9c998),
  1166. 122: uint32(0xb0d09822),
  1167. 123: uint32(0xc7d7a8b4),
  1168. 124: uint32(0x59b33d17),
  1169. 125: uint32(0x2eb40d81),
  1170. 126: uint32(0xb7bd5c3b),
  1171. 127: uint32(0xc0ba6cad),
  1172. 128: uint32(0xedb88320),
  1173. 129: uint32(0x9abfb3b6),
  1174. 130: uint32(0x03b6e20c),
  1175. 131: uint32(0x74b1d29a),
  1176. 132: uint32(0xead54739),
  1177. 133: uint32(0x9dd277af),
  1178. 134: uint32(0x04db2615),
  1179. 135: uint32(0x73dc1683),
  1180. 136: uint32(0xe3630b12),
  1181. 137: uint32(0x94643b84),
  1182. 138: uint32(0x0d6d6a3e),
  1183. 139: uint32(0x7a6a5aa8),
  1184. 140: uint32(0xe40ecf0b),
  1185. 141: uint32(0x9309ff9d),
  1186. 142: uint32(0x0a00ae27),
  1187. 143: uint32(0x7d079eb1),
  1188. 144: uint32(0xf00f9344),
  1189. 145: uint32(0x8708a3d2),
  1190. 146: uint32(0x1e01f268),
  1191. 147: uint32(0x6906c2fe),
  1192. 148: uint32(0xf762575d),
  1193. 149: uint32(0x806567cb),
  1194. 150: uint32(0x196c3671),
  1195. 151: uint32(0x6e6b06e7),
  1196. 152: uint32(0xfed41b76),
  1197. 153: uint32(0x89d32be0),
  1198. 154: uint32(0x10da7a5a),
  1199. 155: uint32(0x67dd4acc),
  1200. 156: uint32(0xf9b9df6f),
  1201. 157: uint32(0x8ebeeff9),
  1202. 158: uint32(0x17b7be43),
  1203. 159: uint32(0x60b08ed5),
  1204. 160: uint32(0xd6d6a3e8),
  1205. 161: uint32(0xa1d1937e),
  1206. 162: uint32(0x38d8c2c4),
  1207. 163: uint32(0x4fdff252),
  1208. 164: uint32(0xd1bb67f1),
  1209. 165: uint32(0xa6bc5767),
  1210. 166: uint32(0x3fb506dd),
  1211. 167: uint32(0x48b2364b),
  1212. 168: uint32(0xd80d2bda),
  1213. 169: uint32(0xaf0a1b4c),
  1214. 170: uint32(0x36034af6),
  1215. 171: uint32(0x41047a60),
  1216. 172: uint32(0xdf60efc3),
  1217. 173: uint32(0xa867df55),
  1218. 174: uint32(0x316e8eef),
  1219. 175: uint32(0x4669be79),
  1220. 176: uint32(0xcb61b38c),
  1221. 177: uint32(0xbc66831a),
  1222. 178: uint32(0x256fd2a0),
  1223. 179: uint32(0x5268e236),
  1224. 180: uint32(0xcc0c7795),
  1225. 181: uint32(0xbb0b4703),
  1226. 182: uint32(0x220216b9),
  1227. 183: uint32(0x5505262f),
  1228. 184: uint32(0xc5ba3bbe),
  1229. 185: uint32(0xb2bd0b28),
  1230. 186: uint32(0x2bb45a92),
  1231. 187: uint32(0x5cb36a04),
  1232. 188: uint32(0xc2d7ffa7),
  1233. 189: uint32(0xb5d0cf31),
  1234. 190: uint32(0x2cd99e8b),
  1235. 191: uint32(0x5bdeae1d),
  1236. 192: uint32(0x9b64c2b0),
  1237. 193: uint32(0xec63f226),
  1238. 194: uint32(0x756aa39c),
  1239. 195: uint32(0x026d930a),
  1240. 196: uint32(0x9c0906a9),
  1241. 197: uint32(0xeb0e363f),
  1242. 198: uint32(0x72076785),
  1243. 199: uint32(0x05005713),
  1244. 200: uint32(0x95bf4a82),
  1245. 201: uint32(0xe2b87a14),
  1246. 202: uint32(0x7bb12bae),
  1247. 203: uint32(0x0cb61b38),
  1248. 204: uint32(0x92d28e9b),
  1249. 205: uint32(0xe5d5be0d),
  1250. 206: uint32(0x7cdcefb7),
  1251. 207: uint32(0x0bdbdf21),
  1252. 208: uint32(0x86d3d2d4),
  1253. 209: uint32(0xf1d4e242),
  1254. 210: uint32(0x68ddb3f8),
  1255. 211: uint32(0x1fda836e),
  1256. 212: uint32(0x81be16cd),
  1257. 213: uint32(0xf6b9265b),
  1258. 214: uint32(0x6fb077e1),
  1259. 215: uint32(0x18b74777),
  1260. 216: uint32(0x88085ae6),
  1261. 217: uint32(0xff0f6a70),
  1262. 218: uint32(0x66063bca),
  1263. 219: uint32(0x11010b5c),
  1264. 220: uint32(0x8f659eff),
  1265. 221: uint32(0xf862ae69),
  1266. 222: uint32(0x616bffd3),
  1267. 223: uint32(0x166ccf45),
  1268. 224: uint32(0xa00ae278),
  1269. 225: uint32(0xd70dd2ee),
  1270. 226: uint32(0x4e048354),
  1271. 227: uint32(0x3903b3c2),
  1272. 228: uint32(0xa7672661),
  1273. 229: uint32(0xd06016f7),
  1274. 230: uint32(0x4969474d),
  1275. 231: uint32(0x3e6e77db),
  1276. 232: uint32(0xaed16a4a),
  1277. 233: uint32(0xd9d65adc),
  1278. 234: uint32(0x40df0b66),
  1279. 235: uint32(0x37d83bf0),
  1280. 236: uint32(0xa9bcae53),
  1281. 237: uint32(0xdebb9ec5),
  1282. 238: uint32(0x47b2cf7f),
  1283. 239: uint32(0x30b5ffe9),
  1284. 240: uint32(0xbdbdf21c),
  1285. 241: uint32(0xcabac28a),
  1286. 242: uint32(0x53b39330),
  1287. 243: uint32(0x24b4a3a6),
  1288. 244: uint32(0xbad03605),
  1289. 245: uint32(0xcdd70693),
  1290. 246: uint32(0x54de5729),
  1291. 247: uint32(0x23d967bf),
  1292. 248: uint32(0xb3667a2e),
  1293. 249: uint32(0xc4614ab8),
  1294. 250: uint32(0x5d681b02),
  1295. 251: uint32(0x2a6f2b94),
  1296. 252: uint32(0xb40bbe37),
  1297. 253: uint32(0xc30c8ea1),
  1298. 254: uint32(0x5a05df1b),
  1299. 255: uint32(0x2d02ef8d),
  1300. }
  1301. var _crc_big_table = [256]Tz_word_t{
  1302. 1: uint32(0x96300777),
  1303. 2: uint32(0x2c610eee),
  1304. 3: uint32(0xba510999),
  1305. 4: uint32(0x19c46d07),
  1306. 5: uint32(0x8ff46a70),
  1307. 6: uint32(0x35a563e9),
  1308. 7: uint32(0xa395649e),
  1309. 8: uint32(0x3288db0e),
  1310. 9: uint32(0xa4b8dc79),
  1311. 10: uint32(0x1ee9d5e0),
  1312. 11: uint32(0x88d9d297),
  1313. 12: uint32(0x2b4cb609),
  1314. 13: uint32(0xbd7cb17e),
  1315. 14: uint32(0x072db8e7),
  1316. 15: uint32(0x911dbf90),
  1317. 16: uint32(0x6410b71d),
  1318. 17: uint32(0xf220b06a),
  1319. 18: uint32(0x4871b9f3),
  1320. 19: uint32(0xde41be84),
  1321. 20: uint32(0x7dd4da1a),
  1322. 21: uint32(0xebe4dd6d),
  1323. 22: uint32(0x51b5d4f4),
  1324. 23: uint32(0xc785d383),
  1325. 24: uint32(0x56986c13),
  1326. 25: uint32(0xc0a86b64),
  1327. 26: uint32(0x7af962fd),
  1328. 27: uint32(0xecc9658a),
  1329. 28: uint32(0x4f5c0114),
  1330. 29: uint32(0xd96c0663),
  1331. 30: uint32(0x633d0ffa),
  1332. 31: uint32(0xf50d088d),
  1333. 32: uint32(0xc8206e3b),
  1334. 33: uint32(0x5e10694c),
  1335. 34: uint32(0xe44160d5),
  1336. 35: uint32(0x727167a2),
  1337. 36: uint32(0xd1e4033c),
  1338. 37: uint32(0x47d4044b),
  1339. 38: uint32(0xfd850dd2),
  1340. 39: uint32(0x6bb50aa5),
  1341. 40: uint32(0xfaa8b535),
  1342. 41: uint32(0x6c98b242),
  1343. 42: uint32(0xd6c9bbdb),
  1344. 43: uint32(0x40f9bcac),
  1345. 44: uint32(0xe36cd832),
  1346. 45: uint32(0x755cdf45),
  1347. 46: uint32(0xcf0dd6dc),
  1348. 47: uint32(0x593dd1ab),
  1349. 48: uint32(0xac30d926),
  1350. 49: uint32(0x3a00de51),
  1351. 50: uint32(0x8051d7c8),
  1352. 51: uint32(0x1661d0bf),
  1353. 52: uint32(0xb5f4b421),
  1354. 53: uint32(0x23c4b356),
  1355. 54: uint32(0x9995bacf),
  1356. 55: uint32(0x0fa5bdb8),
  1357. 56: uint32(0x9eb80228),
  1358. 57: uint32(0x0888055f),
  1359. 58: uint32(0xb2d90cc6),
  1360. 59: uint32(0x24e90bb1),
  1361. 60: uint32(0x877c6f2f),
  1362. 61: uint32(0x114c6858),
  1363. 62: uint32(0xab1d61c1),
  1364. 63: uint32(0x3d2d66b6),
  1365. 64: uint32(0x9041dc76),
  1366. 65: uint32(0x0671db01),
  1367. 66: uint32(0xbc20d298),
  1368. 67: uint32(0x2a10d5ef),
  1369. 68: uint32(0x8985b171),
  1370. 69: uint32(0x1fb5b606),
  1371. 70: uint32(0xa5e4bf9f),
  1372. 71: uint32(0x33d4b8e8),
  1373. 72: uint32(0xa2c90778),
  1374. 73: uint32(0x34f9000f),
  1375. 74: uint32(0x8ea80996),
  1376. 75: uint32(0x18980ee1),
  1377. 76: uint32(0xbb0d6a7f),
  1378. 77: uint32(0x2d3d6d08),
  1379. 78: uint32(0x976c6491),
  1380. 79: uint32(0x015c63e6),
  1381. 80: uint32(0xf4516b6b),
  1382. 81: uint32(0x62616c1c),
  1383. 82: uint32(0xd8306585),
  1384. 83: uint32(0x4e0062f2),
  1385. 84: uint32(0xed95066c),
  1386. 85: uint32(0x7ba5011b),
  1387. 86: uint32(0xc1f40882),
  1388. 87: uint32(0x57c40ff5),
  1389. 88: uint32(0xc6d9b065),
  1390. 89: uint32(0x50e9b712),
  1391. 90: uint32(0xeab8be8b),
  1392. 91: uint32(0x7c88b9fc),
  1393. 92: uint32(0xdf1ddd62),
  1394. 93: uint32(0x492dda15),
  1395. 94: uint32(0xf37cd38c),
  1396. 95: uint32(0x654cd4fb),
  1397. 96: uint32(0x5861b24d),
  1398. 97: uint32(0xce51b53a),
  1399. 98: uint32(0x7400bca3),
  1400. 99: uint32(0xe230bbd4),
  1401. 100: uint32(0x41a5df4a),
  1402. 101: uint32(0xd795d83d),
  1403. 102: uint32(0x6dc4d1a4),
  1404. 103: uint32(0xfbf4d6d3),
  1405. 104: uint32(0x6ae96943),
  1406. 105: uint32(0xfcd96e34),
  1407. 106: uint32(0x468867ad),
  1408. 107: uint32(0xd0b860da),
  1409. 108: uint32(0x732d0444),
  1410. 109: uint32(0xe51d0333),
  1411. 110: uint32(0x5f4c0aaa),
  1412. 111: uint32(0xc97c0ddd),
  1413. 112: uint32(0x3c710550),
  1414. 113: uint32(0xaa410227),
  1415. 114: uint32(0x10100bbe),
  1416. 115: uint32(0x86200cc9),
  1417. 116: uint32(0x25b56857),
  1418. 117: uint32(0xb3856f20),
  1419. 118: uint32(0x09d466b9),
  1420. 119: uint32(0x9fe461ce),
  1421. 120: uint32(0x0ef9de5e),
  1422. 121: uint32(0x98c9d929),
  1423. 122: uint32(0x2298d0b0),
  1424. 123: uint32(0xb4a8d7c7),
  1425. 124: uint32(0x173db359),
  1426. 125: uint32(0x810db42e),
  1427. 126: uint32(0x3b5cbdb7),
  1428. 127: uint32(0xad6cbac0),
  1429. 128: uint32(0x2083b8ed),
  1430. 129: uint32(0xb6b3bf9a),
  1431. 130: uint32(0x0ce2b603),
  1432. 131: uint32(0x9ad2b174),
  1433. 132: uint32(0x3947d5ea),
  1434. 133: uint32(0xaf77d29d),
  1435. 134: uint32(0x1526db04),
  1436. 135: uint32(0x8316dc73),
  1437. 136: uint32(0x120b63e3),
  1438. 137: uint32(0x843b6494),
  1439. 138: uint32(0x3e6a6d0d),
  1440. 139: uint32(0xa85a6a7a),
  1441. 140: uint32(0x0bcf0ee4),
  1442. 141: uint32(0x9dff0993),
  1443. 142: uint32(0x27ae000a),
  1444. 143: uint32(0xb19e077d),
  1445. 144: uint32(0x44930ff0),
  1446. 145: uint32(0xd2a30887),
  1447. 146: uint32(0x68f2011e),
  1448. 147: uint32(0xfec20669),
  1449. 148: uint32(0x5d5762f7),
  1450. 149: uint32(0xcb676580),
  1451. 150: uint32(0x71366c19),
  1452. 151: uint32(0xe7066b6e),
  1453. 152: uint32(0x761bd4fe),
  1454. 153: uint32(0xe02bd389),
  1455. 154: uint32(0x5a7ada10),
  1456. 155: uint32(0xcc4add67),
  1457. 156: uint32(0x6fdfb9f9),
  1458. 157: uint32(0xf9efbe8e),
  1459. 158: uint32(0x43beb717),
  1460. 159: uint32(0xd58eb060),
  1461. 160: uint32(0xe8a3d6d6),
  1462. 161: uint32(0x7e93d1a1),
  1463. 162: uint32(0xc4c2d838),
  1464. 163: uint32(0x52f2df4f),
  1465. 164: uint32(0xf167bbd1),
  1466. 165: uint32(0x6757bca6),
  1467. 166: uint32(0xdd06b53f),
  1468. 167: uint32(0x4b36b248),
  1469. 168: uint32(0xda2b0dd8),
  1470. 169: uint32(0x4c1b0aaf),
  1471. 170: uint32(0xf64a0336),
  1472. 171: uint32(0x607a0441),
  1473. 172: uint32(0xc3ef60df),
  1474. 173: uint32(0x55df67a8),
  1475. 174: uint32(0xef8e6e31),
  1476. 175: uint32(0x79be6946),
  1477. 176: uint32(0x8cb361cb),
  1478. 177: uint32(0x1a8366bc),
  1479. 178: uint32(0xa0d26f25),
  1480. 179: uint32(0x36e26852),
  1481. 180: uint32(0x95770ccc),
  1482. 181: uint32(0x03470bbb),
  1483. 182: uint32(0xb9160222),
  1484. 183: uint32(0x2f260555),
  1485. 184: uint32(0xbe3bbac5),
  1486. 185: uint32(0x280bbdb2),
  1487. 186: uint32(0x925ab42b),
  1488. 187: uint32(0x046ab35c),
  1489. 188: uint32(0xa7ffd7c2),
  1490. 189: uint32(0x31cfd0b5),
  1491. 190: uint32(0x8b9ed92c),
  1492. 191: uint32(0x1daede5b),
  1493. 192: uint32(0xb0c2649b),
  1494. 193: uint32(0x26f263ec),
  1495. 194: uint32(0x9ca36a75),
  1496. 195: uint32(0x0a936d02),
  1497. 196: uint32(0xa906099c),
  1498. 197: uint32(0x3f360eeb),
  1499. 198: uint32(0x85670772),
  1500. 199: uint32(0x13570005),
  1501. 200: uint32(0x824abf95),
  1502. 201: uint32(0x147ab8e2),
  1503. 202: uint32(0xae2bb17b),
  1504. 203: uint32(0x381bb60c),
  1505. 204: uint32(0x9b8ed292),
  1506. 205: uint32(0x0dbed5e5),
  1507. 206: uint32(0xb7efdc7c),
  1508. 207: uint32(0x21dfdb0b),
  1509. 208: uint32(0xd4d2d386),
  1510. 209: uint32(0x42e2d4f1),
  1511. 210: uint32(0xf8b3dd68),
  1512. 211: uint32(0x6e83da1f),
  1513. 212: uint32(0xcd16be81),
  1514. 213: uint32(0x5b26b9f6),
  1515. 214: uint32(0xe177b06f),
  1516. 215: uint32(0x7747b718),
  1517. 216: uint32(0xe65a0888),
  1518. 217: uint32(0x706a0fff),
  1519. 218: uint32(0xca3b0666),
  1520. 219: uint32(0x5c0b0111),
  1521. 220: uint32(0xff9e658f),
  1522. 221: uint32(0x69ae62f8),
  1523. 222: uint32(0xd3ff6b61),
  1524. 223: uint32(0x45cf6c16),
  1525. 224: uint32(0x78e20aa0),
  1526. 225: uint32(0xeed20dd7),
  1527. 226: uint32(0x5483044e),
  1528. 227: uint32(0xc2b30339),
  1529. 228: uint32(0x612667a7),
  1530. 229: uint32(0xf71660d0),
  1531. 230: uint32(0x4d476949),
  1532. 231: uint32(0xdb776e3e),
  1533. 232: uint32(0x4a6ad1ae),
  1534. 233: uint32(0xdc5ad6d9),
  1535. 234: uint32(0x660bdf40),
  1536. 235: uint32(0xf03bd837),
  1537. 236: uint32(0x53aebca9),
  1538. 237: uint32(0xc59ebbde),
  1539. 238: uint32(0x7fcfb247),
  1540. 239: uint32(0xe9ffb530),
  1541. 240: uint32(0x1cf2bdbd),
  1542. 241: uint32(0x8ac2baca),
  1543. 242: uint32(0x3093b353),
  1544. 243: uint32(0xa6a3b424),
  1545. 244: uint32(0x0536d0ba),
  1546. 245: uint32(0x9306d7cd),
  1547. 246: uint32(0x2957de54),
  1548. 247: uint32(0xbf67d923),
  1549. 248: uint32(0x2e7a66b3),
  1550. 249: uint32(0xb84a61c4),
  1551. 250: uint32(0x021b685d),
  1552. 251: uint32(0x942b6f2a),
  1553. 252: uint32(0x37be0bb4),
  1554. 253: uint32(0xa18e0cc3),
  1555. 254: uint32(0x1bdf055a),
  1556. 255: uint32(0x8def022d),
  1557. }
  1558. var _crc_braid_table = [4][256]Tz_crc_t{
  1559. 0: {
  1560. 1: uint32(0x65673b46),
  1561. 2: uint32(0xcace768c),
  1562. 3: uint32(0xafa94dca),
  1563. 4: uint32(0x4eedeb59),
  1564. 5: uint32(0x2b8ad01f),
  1565. 6: uint32(0x84239dd5),
  1566. 7: uint32(0xe144a693),
  1567. 8: uint32(0x9ddbd6b2),
  1568. 9: uint32(0xf8bcedf4),
  1569. 10: uint32(0x5715a03e),
  1570. 11: uint32(0x32729b78),
  1571. 12: uint32(0xd3363deb),
  1572. 13: uint32(0xb65106ad),
  1573. 14: uint32(0x19f84b67),
  1574. 15: uint32(0x7c9f7021),
  1575. 16: uint32(0xe0c6ab25),
  1576. 17: uint32(0x85a19063),
  1577. 18: uint32(0x2a08dda9),
  1578. 19: uint32(0x4f6fe6ef),
  1579. 20: uint32(0xae2b407c),
  1580. 21: uint32(0xcb4c7b3a),
  1581. 22: uint32(0x64e536f0),
  1582. 23: uint32(0x01820db6),
  1583. 24: uint32(0x7d1d7d97),
  1584. 25: uint32(0x187a46d1),
  1585. 26: uint32(0xb7d30b1b),
  1586. 27: uint32(0xd2b4305d),
  1587. 28: uint32(0x33f096ce),
  1588. 29: uint32(0x5697ad88),
  1589. 30: uint32(0xf93ee042),
  1590. 31: uint32(0x9c59db04),
  1591. 32: uint32(0x1afc500b),
  1592. 33: uint32(0x7f9b6b4d),
  1593. 34: uint32(0xd0322687),
  1594. 35: uint32(0xb5551dc1),
  1595. 36: uint32(0x5411bb52),
  1596. 37: uint32(0x31768014),
  1597. 38: uint32(0x9edfcdde),
  1598. 39: uint32(0xfbb8f698),
  1599. 40: uint32(0x872786b9),
  1600. 41: uint32(0xe240bdff),
  1601. 42: uint32(0x4de9f035),
  1602. 43: uint32(0x288ecb73),
  1603. 44: uint32(0xc9ca6de0),
  1604. 45: uint32(0xacad56a6),
  1605. 46: uint32(0x03041b6c),
  1606. 47: uint32(0x6663202a),
  1607. 48: uint32(0xfa3afb2e),
  1608. 49: uint32(0x9f5dc068),
  1609. 50: uint32(0x30f48da2),
  1610. 51: uint32(0x5593b6e4),
  1611. 52: uint32(0xb4d71077),
  1612. 53: uint32(0xd1b02b31),
  1613. 54: uint32(0x7e1966fb),
  1614. 55: uint32(0x1b7e5dbd),
  1615. 56: uint32(0x67e12d9c),
  1616. 57: uint32(0x028616da),
  1617. 58: uint32(0xad2f5b10),
  1618. 59: uint32(0xc8486056),
  1619. 60: uint32(0x290cc6c5),
  1620. 61: uint32(0x4c6bfd83),
  1621. 62: uint32(0xe3c2b049),
  1622. 63: uint32(0x86a58b0f),
  1623. 64: uint32(0x35f8a016),
  1624. 65: uint32(0x509f9b50),
  1625. 66: uint32(0xff36d69a),
  1626. 67: uint32(0x9a51eddc),
  1627. 68: uint32(0x7b154b4f),
  1628. 69: uint32(0x1e727009),
  1629. 70: uint32(0xb1db3dc3),
  1630. 71: uint32(0xd4bc0685),
  1631. 72: uint32(0xa82376a4),
  1632. 73: uint32(0xcd444de2),
  1633. 74: uint32(0x62ed0028),
  1634. 75: uint32(0x078a3b6e),
  1635. 76: uint32(0xe6ce9dfd),
  1636. 77: uint32(0x83a9a6bb),
  1637. 78: uint32(0x2c00eb71),
  1638. 79: uint32(0x4967d037),
  1639. 80: uint32(0xd53e0b33),
  1640. 81: uint32(0xb0593075),
  1641. 82: uint32(0x1ff07dbf),
  1642. 83: uint32(0x7a9746f9),
  1643. 84: uint32(0x9bd3e06a),
  1644. 85: uint32(0xfeb4db2c),
  1645. 86: uint32(0x511d96e6),
  1646. 87: uint32(0x347aada0),
  1647. 88: uint32(0x48e5dd81),
  1648. 89: uint32(0x2d82e6c7),
  1649. 90: uint32(0x822bab0d),
  1650. 91: uint32(0xe74c904b),
  1651. 92: uint32(0x060836d8),
  1652. 93: uint32(0x636f0d9e),
  1653. 94: uint32(0xccc64054),
  1654. 95: uint32(0xa9a17b12),
  1655. 96: uint32(0x2f04f01d),
  1656. 97: uint32(0x4a63cb5b),
  1657. 98: uint32(0xe5ca8691),
  1658. 99: uint32(0x80adbdd7),
  1659. 100: uint32(0x61e91b44),
  1660. 101: uint32(0x048e2002),
  1661. 102: uint32(0xab276dc8),
  1662. 103: uint32(0xce40568e),
  1663. 104: uint32(0xb2df26af),
  1664. 105: uint32(0xd7b81de9),
  1665. 106: uint32(0x78115023),
  1666. 107: uint32(0x1d766b65),
  1667. 108: uint32(0xfc32cdf6),
  1668. 109: uint32(0x9955f6b0),
  1669. 110: uint32(0x36fcbb7a),
  1670. 111: uint32(0x539b803c),
  1671. 112: uint32(0xcfc25b38),
  1672. 113: uint32(0xaaa5607e),
  1673. 114: uint32(0x050c2db4),
  1674. 115: uint32(0x606b16f2),
  1675. 116: uint32(0x812fb061),
  1676. 117: uint32(0xe4488b27),
  1677. 118: uint32(0x4be1c6ed),
  1678. 119: uint32(0x2e86fdab),
  1679. 120: uint32(0x52198d8a),
  1680. 121: uint32(0x377eb6cc),
  1681. 122: uint32(0x98d7fb06),
  1682. 123: uint32(0xfdb0c040),
  1683. 124: uint32(0x1cf466d3),
  1684. 125: uint32(0x79935d95),
  1685. 126: uint32(0xd63a105f),
  1686. 127: uint32(0xb35d2b19),
  1687. 128: uint32(0x6bf1402c),
  1688. 129: uint32(0x0e967b6a),
  1689. 130: uint32(0xa13f36a0),
  1690. 131: uint32(0xc4580de6),
  1691. 132: uint32(0x251cab75),
  1692. 133: uint32(0x407b9033),
  1693. 134: uint32(0xefd2ddf9),
  1694. 135: uint32(0x8ab5e6bf),
  1695. 136: uint32(0xf62a969e),
  1696. 137: uint32(0x934dadd8),
  1697. 138: uint32(0x3ce4e012),
  1698. 139: uint32(0x5983db54),
  1699. 140: uint32(0xb8c77dc7),
  1700. 141: uint32(0xdda04681),
  1701. 142: uint32(0x72090b4b),
  1702. 143: uint32(0x176e300d),
  1703. 144: uint32(0x8b37eb09),
  1704. 145: uint32(0xee50d04f),
  1705. 146: uint32(0x41f99d85),
  1706. 147: uint32(0x249ea6c3),
  1707. 148: uint32(0xc5da0050),
  1708. 149: uint32(0xa0bd3b16),
  1709. 150: uint32(0x0f1476dc),
  1710. 151: uint32(0x6a734d9a),
  1711. 152: uint32(0x16ec3dbb),
  1712. 153: uint32(0x738b06fd),
  1713. 154: uint32(0xdc224b37),
  1714. 155: uint32(0xb9457071),
  1715. 156: uint32(0x5801d6e2),
  1716. 157: uint32(0x3d66eda4),
  1717. 158: uint32(0x92cfa06e),
  1718. 159: uint32(0xf7a89b28),
  1719. 160: uint32(0x710d1027),
  1720. 161: uint32(0x146a2b61),
  1721. 162: uint32(0xbbc366ab),
  1722. 163: uint32(0xdea45ded),
  1723. 164: uint32(0x3fe0fb7e),
  1724. 165: uint32(0x5a87c038),
  1725. 166: uint32(0xf52e8df2),
  1726. 167: uint32(0x9049b6b4),
  1727. 168: uint32(0xecd6c695),
  1728. 169: uint32(0x89b1fdd3),
  1729. 170: uint32(0x2618b019),
  1730. 171: uint32(0x437f8b5f),
  1731. 172: uint32(0xa23b2dcc),
  1732. 173: uint32(0xc75c168a),
  1733. 174: uint32(0x68f55b40),
  1734. 175: uint32(0x0d926006),
  1735. 176: uint32(0x91cbbb02),
  1736. 177: uint32(0xf4ac8044),
  1737. 178: uint32(0x5b05cd8e),
  1738. 179: uint32(0x3e62f6c8),
  1739. 180: uint32(0xdf26505b),
  1740. 181: uint32(0xba416b1d),
  1741. 182: uint32(0x15e826d7),
  1742. 183: uint32(0x708f1d91),
  1743. 184: uint32(0x0c106db0),
  1744. 185: uint32(0x697756f6),
  1745. 186: uint32(0xc6de1b3c),
  1746. 187: uint32(0xa3b9207a),
  1747. 188: uint32(0x42fd86e9),
  1748. 189: uint32(0x279abdaf),
  1749. 190: uint32(0x8833f065),
  1750. 191: uint32(0xed54cb23),
  1751. 192: uint32(0x5e09e03a),
  1752. 193: uint32(0x3b6edb7c),
  1753. 194: uint32(0x94c796b6),
  1754. 195: uint32(0xf1a0adf0),
  1755. 196: uint32(0x10e40b63),
  1756. 197: uint32(0x75833025),
  1757. 198: uint32(0xda2a7def),
  1758. 199: uint32(0xbf4d46a9),
  1759. 200: uint32(0xc3d23688),
  1760. 201: uint32(0xa6b50dce),
  1761. 202: uint32(0x091c4004),
  1762. 203: uint32(0x6c7b7b42),
  1763. 204: uint32(0x8d3fddd1),
  1764. 205: uint32(0xe858e697),
  1765. 206: uint32(0x47f1ab5d),
  1766. 207: uint32(0x2296901b),
  1767. 208: uint32(0xbecf4b1f),
  1768. 209: uint32(0xdba87059),
  1769. 210: uint32(0x74013d93),
  1770. 211: uint32(0x116606d5),
  1771. 212: uint32(0xf022a046),
  1772. 213: uint32(0x95459b00),
  1773. 214: uint32(0x3aecd6ca),
  1774. 215: uint32(0x5f8bed8c),
  1775. 216: uint32(0x23149dad),
  1776. 217: uint32(0x4673a6eb),
  1777. 218: uint32(0xe9daeb21),
  1778. 219: uint32(0x8cbdd067),
  1779. 220: uint32(0x6df976f4),
  1780. 221: uint32(0x089e4db2),
  1781. 222: uint32(0xa7370078),
  1782. 223: uint32(0xc2503b3e),
  1783. 224: uint32(0x44f5b031),
  1784. 225: uint32(0x21928b77),
  1785. 226: uint32(0x8e3bc6bd),
  1786. 227: uint32(0xeb5cfdfb),
  1787. 228: uint32(0x0a185b68),
  1788. 229: uint32(0x6f7f602e),
  1789. 230: uint32(0xc0d62de4),
  1790. 231: uint32(0xa5b116a2),
  1791. 232: uint32(0xd92e6683),
  1792. 233: uint32(0xbc495dc5),
  1793. 234: uint32(0x13e0100f),
  1794. 235: uint32(0x76872b49),
  1795. 236: uint32(0x97c38dda),
  1796. 237: uint32(0xf2a4b69c),
  1797. 238: uint32(0x5d0dfb56),
  1798. 239: uint32(0x386ac010),
  1799. 240: uint32(0xa4331b14),
  1800. 241: uint32(0xc1542052),
  1801. 242: uint32(0x6efd6d98),
  1802. 243: uint32(0x0b9a56de),
  1803. 244: uint32(0xeadef04d),
  1804. 245: uint32(0x8fb9cb0b),
  1805. 246: uint32(0x201086c1),
  1806. 247: uint32(0x4577bd87),
  1807. 248: uint32(0x39e8cda6),
  1808. 249: uint32(0x5c8ff6e0),
  1809. 250: uint32(0xf326bb2a),
  1810. 251: uint32(0x9641806c),
  1811. 252: uint32(0x770526ff),
  1812. 253: uint32(0x12621db9),
  1813. 254: uint32(0xbdcb5073),
  1814. 255: uint32(0xd8ac6b35),
  1815. },
  1816. 1: {
  1817. 1: uint32(0xd7e28058),
  1818. 2: uint32(0x74b406f1),
  1819. 3: uint32(0xa35686a9),
  1820. 4: uint32(0xe9680de2),
  1821. 5: uint32(0x3e8a8dba),
  1822. 6: uint32(0x9ddc0b13),
  1823. 7: uint32(0x4a3e8b4b),
  1824. 8: uint32(0x09a11d85),
  1825. 9: uint32(0xde439ddd),
  1826. 10: uint32(0x7d151b74),
  1827. 11: uint32(0xaaf79b2c),
  1828. 12: uint32(0xe0c91067),
  1829. 13: uint32(0x372b903f),
  1830. 14: uint32(0x947d1696),
  1831. 15: uint32(0x439f96ce),
  1832. 16: uint32(0x13423b0a),
  1833. 17: uint32(0xc4a0bb52),
  1834. 18: uint32(0x67f63dfb),
  1835. 19: uint32(0xb014bda3),
  1836. 20: uint32(0xfa2a36e8),
  1837. 21: uint32(0x2dc8b6b0),
  1838. 22: uint32(0x8e9e3019),
  1839. 23: uint32(0x597cb041),
  1840. 24: uint32(0x1ae3268f),
  1841. 25: uint32(0xcd01a6d7),
  1842. 26: uint32(0x6e57207e),
  1843. 27: uint32(0xb9b5a026),
  1844. 28: uint32(0xf38b2b6d),
  1845. 29: uint32(0x2469ab35),
  1846. 30: uint32(0x873f2d9c),
  1847. 31: uint32(0x50ddadc4),
  1848. 32: uint32(0x26847614),
  1849. 33: uint32(0xf166f64c),
  1850. 34: uint32(0x523070e5),
  1851. 35: uint32(0x85d2f0bd),
  1852. 36: uint32(0xcfec7bf6),
  1853. 37: uint32(0x180efbae),
  1854. 38: uint32(0xbb587d07),
  1855. 39: uint32(0x6cbafd5f),
  1856. 40: uint32(0x2f256b91),
  1857. 41: uint32(0xf8c7ebc9),
  1858. 42: uint32(0x5b916d60),
  1859. 43: uint32(0x8c73ed38),
  1860. 44: uint32(0xc64d6673),
  1861. 45: uint32(0x11afe62b),
  1862. 46: uint32(0xb2f96082),
  1863. 47: uint32(0x651be0da),
  1864. 48: uint32(0x35c64d1e),
  1865. 49: uint32(0xe224cd46),
  1866. 50: uint32(0x41724bef),
  1867. 51: uint32(0x9690cbb7),
  1868. 52: uint32(0xdcae40fc),
  1869. 53: uint32(0x0b4cc0a4),
  1870. 54: uint32(0xa81a460d),
  1871. 55: uint32(0x7ff8c655),
  1872. 56: uint32(0x3c67509b),
  1873. 57: uint32(0xeb85d0c3),
  1874. 58: uint32(0x48d3566a),
  1875. 59: uint32(0x9f31d632),
  1876. 60: uint32(0xd50f5d79),
  1877. 61: uint32(0x02eddd21),
  1878. 62: uint32(0xa1bb5b88),
  1879. 63: uint32(0x7659dbd0),
  1880. 64: uint32(0x4d08ec28),
  1881. 65: uint32(0x9aea6c70),
  1882. 66: uint32(0x39bcead9),
  1883. 67: uint32(0xee5e6a81),
  1884. 68: uint32(0xa460e1ca),
  1885. 69: uint32(0x73826192),
  1886. 70: uint32(0xd0d4e73b),
  1887. 71: uint32(0x07366763),
  1888. 72: uint32(0x44a9f1ad),
  1889. 73: uint32(0x934b71f5),
  1890. 74: uint32(0x301df75c),
  1891. 75: uint32(0xe7ff7704),
  1892. 76: uint32(0xadc1fc4f),
  1893. 77: uint32(0x7a237c17),
  1894. 78: uint32(0xd975fabe),
  1895. 79: uint32(0x0e977ae6),
  1896. 80: uint32(0x5e4ad722),
  1897. 81: uint32(0x89a8577a),
  1898. 82: uint32(0x2afed1d3),
  1899. 83: uint32(0xfd1c518b),
  1900. 84: uint32(0xb722dac0),
  1901. 85: uint32(0x60c05a98),
  1902. 86: uint32(0xc396dc31),
  1903. 87: uint32(0x14745c69),
  1904. 88: uint32(0x57ebcaa7),
  1905. 89: uint32(0x80094aff),
  1906. 90: uint32(0x235fcc56),
  1907. 91: uint32(0xf4bd4c0e),
  1908. 92: uint32(0xbe83c745),
  1909. 93: uint32(0x6961471d),
  1910. 94: uint32(0xca37c1b4),
  1911. 95: uint32(0x1dd541ec),
  1912. 96: uint32(0x6b8c9a3c),
  1913. 97: uint32(0xbc6e1a64),
  1914. 98: uint32(0x1f389ccd),
  1915. 99: uint32(0xc8da1c95),
  1916. 100: uint32(0x82e497de),
  1917. 101: uint32(0x55061786),
  1918. 102: uint32(0xf650912f),
  1919. 103: uint32(0x21b21177),
  1920. 104: uint32(0x622d87b9),
  1921. 105: uint32(0xb5cf07e1),
  1922. 106: uint32(0x16998148),
  1923. 107: uint32(0xc17b0110),
  1924. 108: uint32(0x8b458a5b),
  1925. 109: uint32(0x5ca70a03),
  1926. 110: uint32(0xfff18caa),
  1927. 111: uint32(0x28130cf2),
  1928. 112: uint32(0x78cea136),
  1929. 113: uint32(0xaf2c216e),
  1930. 114: uint32(0x0c7aa7c7),
  1931. 115: uint32(0xdb98279f),
  1932. 116: uint32(0x91a6acd4),
  1933. 117: uint32(0x46442c8c),
  1934. 118: uint32(0xe512aa25),
  1935. 119: uint32(0x32f02a7d),
  1936. 120: uint32(0x716fbcb3),
  1937. 121: uint32(0xa68d3ceb),
  1938. 122: uint32(0x05dbba42),
  1939. 123: uint32(0xd2393a1a),
  1940. 124: uint32(0x9807b151),
  1941. 125: uint32(0x4fe53109),
  1942. 126: uint32(0xecb3b7a0),
  1943. 127: uint32(0x3b5137f8),
  1944. 128: uint32(0x9a11d850),
  1945. 129: uint32(0x4df35808),
  1946. 130: uint32(0xeea5dea1),
  1947. 131: uint32(0x39475ef9),
  1948. 132: uint32(0x7379d5b2),
  1949. 133: uint32(0xa49b55ea),
  1950. 134: uint32(0x07cdd343),
  1951. 135: uint32(0xd02f531b),
  1952. 136: uint32(0x93b0c5d5),
  1953. 137: uint32(0x4452458d),
  1954. 138: uint32(0xe704c324),
  1955. 139: uint32(0x30e6437c),
  1956. 140: uint32(0x7ad8c837),
  1957. 141: uint32(0xad3a486f),
  1958. 142: uint32(0x0e6ccec6),
  1959. 143: uint32(0xd98e4e9e),
  1960. 144: uint32(0x8953e35a),
  1961. 145: uint32(0x5eb16302),
  1962. 146: uint32(0xfde7e5ab),
  1963. 147: uint32(0x2a0565f3),
  1964. 148: uint32(0x603beeb8),
  1965. 149: uint32(0xb7d96ee0),
  1966. 150: uint32(0x148fe849),
  1967. 151: uint32(0xc36d6811),
  1968. 152: uint32(0x80f2fedf),
  1969. 153: uint32(0x57107e87),
  1970. 154: uint32(0xf446f82e),
  1971. 155: uint32(0x23a47876),
  1972. 156: uint32(0x699af33d),
  1973. 157: uint32(0xbe787365),
  1974. 158: uint32(0x1d2ef5cc),
  1975. 159: uint32(0xcacc7594),
  1976. 160: uint32(0xbc95ae44),
  1977. 161: uint32(0x6b772e1c),
  1978. 162: uint32(0xc821a8b5),
  1979. 163: uint32(0x1fc328ed),
  1980. 164: uint32(0x55fda3a6),
  1981. 165: uint32(0x821f23fe),
  1982. 166: uint32(0x2149a557),
  1983. 167: uint32(0xf6ab250f),
  1984. 168: uint32(0xb534b3c1),
  1985. 169: uint32(0x62d63399),
  1986. 170: uint32(0xc180b530),
  1987. 171: uint32(0x16623568),
  1988. 172: uint32(0x5c5cbe23),
  1989. 173: uint32(0x8bbe3e7b),
  1990. 174: uint32(0x28e8b8d2),
  1991. 175: uint32(0xff0a388a),
  1992. 176: uint32(0xafd7954e),
  1993. 177: uint32(0x78351516),
  1994. 178: uint32(0xdb6393bf),
  1995. 179: uint32(0x0c8113e7),
  1996. 180: uint32(0x46bf98ac),
  1997. 181: uint32(0x915d18f4),
  1998. 182: uint32(0x320b9e5d),
  1999. 183: uint32(0xe5e91e05),
  2000. 184: uint32(0xa67688cb),
  2001. 185: uint32(0x71940893),
  2002. 186: uint32(0xd2c28e3a),
  2003. 187: uint32(0x05200e62),
  2004. 188: uint32(0x4f1e8529),
  2005. 189: uint32(0x98fc0571),
  2006. 190: uint32(0x3baa83d8),
  2007. 191: uint32(0xec480380),
  2008. 192: uint32(0xd7193478),
  2009. 193: uint32(0x00fbb420),
  2010. 194: uint32(0xa3ad3289),
  2011. 195: uint32(0x744fb2d1),
  2012. 196: uint32(0x3e71399a),
  2013. 197: uint32(0xe993b9c2),
  2014. 198: uint32(0x4ac53f6b),
  2015. 199: uint32(0x9d27bf33),
  2016. 200: uint32(0xdeb829fd),
  2017. 201: uint32(0x095aa9a5),
  2018. 202: uint32(0xaa0c2f0c),
  2019. 203: uint32(0x7deeaf54),
  2020. 204: uint32(0x37d0241f),
  2021. 205: uint32(0xe032a447),
  2022. 206: uint32(0x436422ee),
  2023. 207: uint32(0x9486a2b6),
  2024. 208: uint32(0xc45b0f72),
  2025. 209: uint32(0x13b98f2a),
  2026. 210: uint32(0xb0ef0983),
  2027. 211: uint32(0x670d89db),
  2028. 212: uint32(0x2d330290),
  2029. 213: uint32(0xfad182c8),
  2030. 214: uint32(0x59870461),
  2031. 215: uint32(0x8e658439),
  2032. 216: uint32(0xcdfa12f7),
  2033. 217: uint32(0x1a1892af),
  2034. 218: uint32(0xb94e1406),
  2035. 219: uint32(0x6eac945e),
  2036. 220: uint32(0x24921f15),
  2037. 221: uint32(0xf3709f4d),
  2038. 222: uint32(0x502619e4),
  2039. 223: uint32(0x87c499bc),
  2040. 224: uint32(0xf19d426c),
  2041. 225: uint32(0x267fc234),
  2042. 226: uint32(0x8529449d),
  2043. 227: uint32(0x52cbc4c5),
  2044. 228: uint32(0x18f54f8e),
  2045. 229: uint32(0xcf17cfd6),
  2046. 230: uint32(0x6c41497f),
  2047. 231: uint32(0xbba3c927),
  2048. 232: uint32(0xf83c5fe9),
  2049. 233: uint32(0x2fdedfb1),
  2050. 234: uint32(0x8c885918),
  2051. 235: uint32(0x5b6ad940),
  2052. 236: uint32(0x1154520b),
  2053. 237: uint32(0xc6b6d253),
  2054. 238: uint32(0x65e054fa),
  2055. 239: uint32(0xb202d4a2),
  2056. 240: uint32(0xe2df7966),
  2057. 241: uint32(0x353df93e),
  2058. 242: uint32(0x966b7f97),
  2059. 243: uint32(0x4189ffcf),
  2060. 244: uint32(0x0bb77484),
  2061. 245: uint32(0xdc55f4dc),
  2062. 246: uint32(0x7f037275),
  2063. 247: uint32(0xa8e1f22d),
  2064. 248: uint32(0xeb7e64e3),
  2065. 249: uint32(0x3c9ce4bb),
  2066. 250: uint32(0x9fca6212),
  2067. 251: uint32(0x4828e24a),
  2068. 252: uint32(0x02166901),
  2069. 253: uint32(0xd5f4e959),
  2070. 254: uint32(0x76a26ff0),
  2071. 255: uint32(0xa140efa8),
  2072. },
  2073. 2: {
  2074. 1: uint32(0xef52b6e1),
  2075. 2: uint32(0x05d46b83),
  2076. 3: uint32(0xea86dd62),
  2077. 4: uint32(0x0ba8d706),
  2078. 5: uint32(0xe4fa61e7),
  2079. 6: uint32(0x0e7cbc85),
  2080. 7: uint32(0xe12e0a64),
  2081. 8: uint32(0x1751ae0c),
  2082. 9: uint32(0xf80318ed),
  2083. 10: uint32(0x1285c58f),
  2084. 11: uint32(0xfdd7736e),
  2085. 12: uint32(0x1cf9790a),
  2086. 13: uint32(0xf3abcfeb),
  2087. 14: uint32(0x192d1289),
  2088. 15: uint32(0xf67fa468),
  2089. 16: uint32(0x2ea35c18),
  2090. 17: uint32(0xc1f1eaf9),
  2091. 18: uint32(0x2b77379b),
  2092. 19: uint32(0xc425817a),
  2093. 20: uint32(0x250b8b1e),
  2094. 21: uint32(0xca593dff),
  2095. 22: uint32(0x20dfe09d),
  2096. 23: uint32(0xcf8d567c),
  2097. 24: uint32(0x39f2f214),
  2098. 25: uint32(0xd6a044f5),
  2099. 26: uint32(0x3c269997),
  2100. 27: uint32(0xd3742f76),
  2101. 28: uint32(0x325a2512),
  2102. 29: uint32(0xdd0893f3),
  2103. 30: uint32(0x378e4e91),
  2104. 31: uint32(0xd8dcf870),
  2105. 32: uint32(0x5d46b830),
  2106. 33: uint32(0xb2140ed1),
  2107. 34: uint32(0x5892d3b3),
  2108. 35: uint32(0xb7c06552),
  2109. 36: uint32(0x56ee6f36),
  2110. 37: uint32(0xb9bcd9d7),
  2111. 38: uint32(0x533a04b5),
  2112. 39: uint32(0xbc68b254),
  2113. 40: uint32(0x4a17163c),
  2114. 41: uint32(0xa545a0dd),
  2115. 42: uint32(0x4fc37dbf),
  2116. 43: uint32(0xa091cb5e),
  2117. 44: uint32(0x41bfc13a),
  2118. 45: uint32(0xaeed77db),
  2119. 46: uint32(0x446baab9),
  2120. 47: uint32(0xab391c58),
  2121. 48: uint32(0x73e5e428),
  2122. 49: uint32(0x9cb752c9),
  2123. 50: uint32(0x76318fab),
  2124. 51: uint32(0x9963394a),
  2125. 52: uint32(0x784d332e),
  2126. 53: uint32(0x971f85cf),
  2127. 54: uint32(0x7d9958ad),
  2128. 55: uint32(0x92cbee4c),
  2129. 56: uint32(0x64b44a24),
  2130. 57: uint32(0x8be6fcc5),
  2131. 58: uint32(0x616021a7),
  2132. 59: uint32(0x8e329746),
  2133. 60: uint32(0x6f1c9d22),
  2134. 61: uint32(0x804e2bc3),
  2135. 62: uint32(0x6ac8f6a1),
  2136. 63: uint32(0x859a4040),
  2137. 64: uint32(0xba8d7060),
  2138. 65: uint32(0x55dfc681),
  2139. 66: uint32(0xbf591be3),
  2140. 67: uint32(0x500bad02),
  2141. 68: uint32(0xb125a766),
  2142. 69: uint32(0x5e771187),
  2143. 70: uint32(0xb4f1cce5),
  2144. 71: uint32(0x5ba37a04),
  2145. 72: uint32(0xaddcde6c),
  2146. 73: uint32(0x428e688d),
  2147. 74: uint32(0xa808b5ef),
  2148. 75: uint32(0x475a030e),
  2149. 76: uint32(0xa674096a),
  2150. 77: uint32(0x4926bf8b),
  2151. 78: uint32(0xa3a062e9),
  2152. 79: uint32(0x4cf2d408),
  2153. 80: uint32(0x942e2c78),
  2154. 81: uint32(0x7b7c9a99),
  2155. 82: uint32(0x91fa47fb),
  2156. 83: uint32(0x7ea8f11a),
  2157. 84: uint32(0x9f86fb7e),
  2158. 85: uint32(0x70d44d9f),
  2159. 86: uint32(0x9a5290fd),
  2160. 87: uint32(0x7500261c),
  2161. 88: uint32(0x837f8274),
  2162. 89: uint32(0x6c2d3495),
  2163. 90: uint32(0x86abe9f7),
  2164. 91: uint32(0x69f95f16),
  2165. 92: uint32(0x88d75572),
  2166. 93: uint32(0x6785e393),
  2167. 94: uint32(0x8d033ef1),
  2168. 95: uint32(0x62518810),
  2169. 96: uint32(0xe7cbc850),
  2170. 97: uint32(0x08997eb1),
  2171. 98: uint32(0xe21fa3d3),
  2172. 99: uint32(0x0d4d1532),
  2173. 100: uint32(0xec631f56),
  2174. 101: uint32(0x0331a9b7),
  2175. 102: uint32(0xe9b774d5),
  2176. 103: uint32(0x06e5c234),
  2177. 104: uint32(0xf09a665c),
  2178. 105: uint32(0x1fc8d0bd),
  2179. 106: uint32(0xf54e0ddf),
  2180. 107: uint32(0x1a1cbb3e),
  2181. 108: uint32(0xfb32b15a),
  2182. 109: uint32(0x146007bb),
  2183. 110: uint32(0xfee6dad9),
  2184. 111: uint32(0x11b46c38),
  2185. 112: uint32(0xc9689448),
  2186. 113: uint32(0x263a22a9),
  2187. 114: uint32(0xccbcffcb),
  2188. 115: uint32(0x23ee492a),
  2189. 116: uint32(0xc2c0434e),
  2190. 117: uint32(0x2d92f5af),
  2191. 118: uint32(0xc71428cd),
  2192. 119: uint32(0x28469e2c),
  2193. 120: uint32(0xde393a44),
  2194. 121: uint32(0x316b8ca5),
  2195. 122: uint32(0xdbed51c7),
  2196. 123: uint32(0x34bfe726),
  2197. 124: uint32(0xd591ed42),
  2198. 125: uint32(0x3ac35ba3),
  2199. 126: uint32(0xd04586c1),
  2200. 127: uint32(0x3f173020),
  2201. 128: uint32(0xae6be681),
  2202. 129: uint32(0x41395060),
  2203. 130: uint32(0xabbf8d02),
  2204. 131: uint32(0x44ed3be3),
  2205. 132: uint32(0xa5c33187),
  2206. 133: uint32(0x4a918766),
  2207. 134: uint32(0xa0175a04),
  2208. 135: uint32(0x4f45ece5),
  2209. 136: uint32(0xb93a488d),
  2210. 137: uint32(0x5668fe6c),
  2211. 138: uint32(0xbcee230e),
  2212. 139: uint32(0x53bc95ef),
  2213. 140: uint32(0xb2929f8b),
  2214. 141: uint32(0x5dc0296a),
  2215. 142: uint32(0xb746f408),
  2216. 143: uint32(0x581442e9),
  2217. 144: uint32(0x80c8ba99),
  2218. 145: uint32(0x6f9a0c78),
  2219. 146: uint32(0x851cd11a),
  2220. 147: uint32(0x6a4e67fb),
  2221. 148: uint32(0x8b606d9f),
  2222. 149: uint32(0x6432db7e),
  2223. 150: uint32(0x8eb4061c),
  2224. 151: uint32(0x61e6b0fd),
  2225. 152: uint32(0x97991495),
  2226. 153: uint32(0x78cba274),
  2227. 154: uint32(0x924d7f16),
  2228. 155: uint32(0x7d1fc9f7),
  2229. 156: uint32(0x9c31c393),
  2230. 157: uint32(0x73637572),
  2231. 158: uint32(0x99e5a810),
  2232. 159: uint32(0x76b71ef1),
  2233. 160: uint32(0xf32d5eb1),
  2234. 161: uint32(0x1c7fe850),
  2235. 162: uint32(0xf6f93532),
  2236. 163: uint32(0x19ab83d3),
  2237. 164: uint32(0xf88589b7),
  2238. 165: uint32(0x17d73f56),
  2239. 166: uint32(0xfd51e234),
  2240. 167: uint32(0x120354d5),
  2241. 168: uint32(0xe47cf0bd),
  2242. 169: uint32(0x0b2e465c),
  2243. 170: uint32(0xe1a89b3e),
  2244. 171: uint32(0x0efa2ddf),
  2245. 172: uint32(0xefd427bb),
  2246. 173: uint32(0x0086915a),
  2247. 174: uint32(0xea004c38),
  2248. 175: uint32(0x0552fad9),
  2249. 176: uint32(0xdd8e02a9),
  2250. 177: uint32(0x32dcb448),
  2251. 178: uint32(0xd85a692a),
  2252. 179: uint32(0x3708dfcb),
  2253. 180: uint32(0xd626d5af),
  2254. 181: uint32(0x3974634e),
  2255. 182: uint32(0xd3f2be2c),
  2256. 183: uint32(0x3ca008cd),
  2257. 184: uint32(0xcadfaca5),
  2258. 185: uint32(0x258d1a44),
  2259. 186: uint32(0xcf0bc726),
  2260. 187: uint32(0x205971c7),
  2261. 188: uint32(0xc1777ba3),
  2262. 189: uint32(0x2e25cd42),
  2263. 190: uint32(0xc4a31020),
  2264. 191: uint32(0x2bf1a6c1),
  2265. 192: uint32(0x14e696e1),
  2266. 193: uint32(0xfbb42000),
  2267. 194: uint32(0x1132fd62),
  2268. 195: uint32(0xfe604b83),
  2269. 196: uint32(0x1f4e41e7),
  2270. 197: uint32(0xf01cf706),
  2271. 198: uint32(0x1a9a2a64),
  2272. 199: uint32(0xf5c89c85),
  2273. 200: uint32(0x03b738ed),
  2274. 201: uint32(0xece58e0c),
  2275. 202: uint32(0x0663536e),
  2276. 203: uint32(0xe931e58f),
  2277. 204: uint32(0x081fefeb),
  2278. 205: uint32(0xe74d590a),
  2279. 206: uint32(0x0dcb8468),
  2280. 207: uint32(0xe2993289),
  2281. 208: uint32(0x3a45caf9),
  2282. 209: uint32(0xd5177c18),
  2283. 210: uint32(0x3f91a17a),
  2284. 211: uint32(0xd0c3179b),
  2285. 212: uint32(0x31ed1dff),
  2286. 213: uint32(0xdebfab1e),
  2287. 214: uint32(0x3439767c),
  2288. 215: uint32(0xdb6bc09d),
  2289. 216: uint32(0x2d1464f5),
  2290. 217: uint32(0xc246d214),
  2291. 218: uint32(0x28c00f76),
  2292. 219: uint32(0xc792b997),
  2293. 220: uint32(0x26bcb3f3),
  2294. 221: uint32(0xc9ee0512),
  2295. 222: uint32(0x2368d870),
  2296. 223: uint32(0xcc3a6e91),
  2297. 224: uint32(0x49a02ed1),
  2298. 225: uint32(0xa6f29830),
  2299. 226: uint32(0x4c744552),
  2300. 227: uint32(0xa326f3b3),
  2301. 228: uint32(0x4208f9d7),
  2302. 229: uint32(0xad5a4f36),
  2303. 230: uint32(0x47dc9254),
  2304. 231: uint32(0xa88e24b5),
  2305. 232: uint32(0x5ef180dd),
  2306. 233: uint32(0xb1a3363c),
  2307. 234: uint32(0x5b25eb5e),
  2308. 235: uint32(0xb4775dbf),
  2309. 236: uint32(0x555957db),
  2310. 237: uint32(0xba0be13a),
  2311. 238: uint32(0x508d3c58),
  2312. 239: uint32(0xbfdf8ab9),
  2313. 240: uint32(0x670372c9),
  2314. 241: uint32(0x8851c428),
  2315. 242: uint32(0x62d7194a),
  2316. 243: uint32(0x8d85afab),
  2317. 244: uint32(0x6caba5cf),
  2318. 245: uint32(0x83f9132e),
  2319. 246: uint32(0x697fce4c),
  2320. 247: uint32(0x862d78ad),
  2321. 248: uint32(0x7052dcc5),
  2322. 249: uint32(0x9f006a24),
  2323. 250: uint32(0x7586b746),
  2324. 251: uint32(0x9ad401a7),
  2325. 252: uint32(0x7bfa0bc3),
  2326. 253: uint32(0x94a8bd22),
  2327. 254: uint32(0x7e2e6040),
  2328. 255: uint32(0x917cd6a1),
  2329. },
  2330. 3: {
  2331. 1: uint32(0x87a6cb43),
  2332. 2: uint32(0xd43c90c7),
  2333. 3: uint32(0x539a5b84),
  2334. 4: uint32(0x730827cf),
  2335. 5: uint32(0xf4aeec8c),
  2336. 6: uint32(0xa734b708),
  2337. 7: uint32(0x20927c4b),
  2338. 8: uint32(0xe6104f9e),
  2339. 9: uint32(0x61b684dd),
  2340. 10: uint32(0x322cdf59),
  2341. 11: uint32(0xb58a141a),
  2342. 12: uint32(0x95186851),
  2343. 13: uint32(0x12bea312),
  2344. 14: uint32(0x4124f896),
  2345. 15: uint32(0xc68233d5),
  2346. 16: uint32(0x1751997d),
  2347. 17: uint32(0x90f7523e),
  2348. 18: uint32(0xc36d09ba),
  2349. 19: uint32(0x44cbc2f9),
  2350. 20: uint32(0x6459beb2),
  2351. 21: uint32(0xe3ff75f1),
  2352. 22: uint32(0xb0652e75),
  2353. 23: uint32(0x37c3e536),
  2354. 24: uint32(0xf141d6e3),
  2355. 25: uint32(0x76e71da0),
  2356. 26: uint32(0x257d4624),
  2357. 27: uint32(0xa2db8d67),
  2358. 28: uint32(0x8249f12c),
  2359. 29: uint32(0x05ef3a6f),
  2360. 30: uint32(0x567561eb),
  2361. 31: uint32(0xd1d3aaa8),
  2362. 32: uint32(0x2ea332fa),
  2363. 33: uint32(0xa905f9b9),
  2364. 34: uint32(0xfa9fa23d),
  2365. 35: uint32(0x7d39697e),
  2366. 36: uint32(0x5dab1535),
  2367. 37: uint32(0xda0dde76),
  2368. 38: uint32(0x899785f2),
  2369. 39: uint32(0x0e314eb1),
  2370. 40: uint32(0xc8b37d64),
  2371. 41: uint32(0x4f15b627),
  2372. 42: uint32(0x1c8feda3),
  2373. 43: uint32(0x9b2926e0),
  2374. 44: uint32(0xbbbb5aab),
  2375. 45: uint32(0x3c1d91e8),
  2376. 46: uint32(0x6f87ca6c),
  2377. 47: uint32(0xe821012f),
  2378. 48: uint32(0x39f2ab87),
  2379. 49: uint32(0xbe5460c4),
  2380. 50: uint32(0xedce3b40),
  2381. 51: uint32(0x6a68f003),
  2382. 52: uint32(0x4afa8c48),
  2383. 53: uint32(0xcd5c470b),
  2384. 54: uint32(0x9ec61c8f),
  2385. 55: uint32(0x1960d7cc),
  2386. 56: uint32(0xdfe2e419),
  2387. 57: uint32(0x58442f5a),
  2388. 58: uint32(0x0bde74de),
  2389. 59: uint32(0x8c78bf9d),
  2390. 60: uint32(0xaceac3d6),
  2391. 61: uint32(0x2b4c0895),
  2392. 62: uint32(0x78d65311),
  2393. 63: uint32(0xff709852),
  2394. 64: uint32(0x5d4665f4),
  2395. 65: uint32(0xdae0aeb7),
  2396. 66: uint32(0x897af533),
  2397. 67: uint32(0x0edc3e70),
  2398. 68: uint32(0x2e4e423b),
  2399. 69: uint32(0xa9e88978),
  2400. 70: uint32(0xfa72d2fc),
  2401. 71: uint32(0x7dd419bf),
  2402. 72: uint32(0xbb562a6a),
  2403. 73: uint32(0x3cf0e129),
  2404. 74: uint32(0x6f6abaad),
  2405. 75: uint32(0xe8cc71ee),
  2406. 76: uint32(0xc85e0da5),
  2407. 77: uint32(0x4ff8c6e6),
  2408. 78: uint32(0x1c629d62),
  2409. 79: uint32(0x9bc45621),
  2410. 80: uint32(0x4a17fc89),
  2411. 81: uint32(0xcdb137ca),
  2412. 82: uint32(0x9e2b6c4e),
  2413. 83: uint32(0x198da70d),
  2414. 84: uint32(0x391fdb46),
  2415. 85: uint32(0xbeb91005),
  2416. 86: uint32(0xed234b81),
  2417. 87: uint32(0x6a8580c2),
  2418. 88: uint32(0xac07b317),
  2419. 89: uint32(0x2ba17854),
  2420. 90: uint32(0x783b23d0),
  2421. 91: uint32(0xff9de893),
  2422. 92: uint32(0xdf0f94d8),
  2423. 93: uint32(0x58a95f9b),
  2424. 94: uint32(0x0b33041f),
  2425. 95: uint32(0x8c95cf5c),
  2426. 96: uint32(0x73e5570e),
  2427. 97: uint32(0xf4439c4d),
  2428. 98: uint32(0xa7d9c7c9),
  2429. 99: uint32(0x207f0c8a),
  2430. 100: uint32(0x00ed70c1),
  2431. 101: uint32(0x874bbb82),
  2432. 102: uint32(0xd4d1e006),
  2433. 103: uint32(0x53772b45),
  2434. 104: uint32(0x95f51890),
  2435. 105: uint32(0x1253d3d3),
  2436. 106: uint32(0x41c98857),
  2437. 107: uint32(0xc66f4314),
  2438. 108: uint32(0xe6fd3f5f),
  2439. 109: uint32(0x615bf41c),
  2440. 110: uint32(0x32c1af98),
  2441. 111: uint32(0xb56764db),
  2442. 112: uint32(0x64b4ce73),
  2443. 113: uint32(0xe3120530),
  2444. 114: uint32(0xb0885eb4),
  2445. 115: uint32(0x372e95f7),
  2446. 116: uint32(0x17bce9bc),
  2447. 117: uint32(0x901a22ff),
  2448. 118: uint32(0xc380797b),
  2449. 119: uint32(0x4426b238),
  2450. 120: uint32(0x82a481ed),
  2451. 121: uint32(0x05024aae),
  2452. 122: uint32(0x5698112a),
  2453. 123: uint32(0xd13eda69),
  2454. 124: uint32(0xf1aca622),
  2455. 125: uint32(0x760a6d61),
  2456. 126: uint32(0x259036e5),
  2457. 127: uint32(0xa236fda6),
  2458. 128: uint32(0xba8ccbe8),
  2459. 129: uint32(0x3d2a00ab),
  2460. 130: uint32(0x6eb05b2f),
  2461. 131: uint32(0xe916906c),
  2462. 132: uint32(0xc984ec27),
  2463. 133: uint32(0x4e222764),
  2464. 134: uint32(0x1db87ce0),
  2465. 135: uint32(0x9a1eb7a3),
  2466. 136: uint32(0x5c9c8476),
  2467. 137: uint32(0xdb3a4f35),
  2468. 138: uint32(0x88a014b1),
  2469. 139: uint32(0x0f06dff2),
  2470. 140: uint32(0x2f94a3b9),
  2471. 141: uint32(0xa83268fa),
  2472. 142: uint32(0xfba8337e),
  2473. 143: uint32(0x7c0ef83d),
  2474. 144: uint32(0xaddd5295),
  2475. 145: uint32(0x2a7b99d6),
  2476. 146: uint32(0x79e1c252),
  2477. 147: uint32(0xfe470911),
  2478. 148: uint32(0xded5755a),
  2479. 149: uint32(0x5973be19),
  2480. 150: uint32(0x0ae9e59d),
  2481. 151: uint32(0x8d4f2ede),
  2482. 152: uint32(0x4bcd1d0b),
  2483. 153: uint32(0xcc6bd648),
  2484. 154: uint32(0x9ff18dcc),
  2485. 155: uint32(0x1857468f),
  2486. 156: uint32(0x38c53ac4),
  2487. 157: uint32(0xbf63f187),
  2488. 158: uint32(0xecf9aa03),
  2489. 159: uint32(0x6b5f6140),
  2490. 160: uint32(0x942ff912),
  2491. 161: uint32(0x13893251),
  2492. 162: uint32(0x401369d5),
  2493. 163: uint32(0xc7b5a296),
  2494. 164: uint32(0xe727dedd),
  2495. 165: uint32(0x6081159e),
  2496. 166: uint32(0x331b4e1a),
  2497. 167: uint32(0xb4bd8559),
  2498. 168: uint32(0x723fb68c),
  2499. 169: uint32(0xf5997dcf),
  2500. 170: uint32(0xa603264b),
  2501. 171: uint32(0x21a5ed08),
  2502. 172: uint32(0x01379143),
  2503. 173: uint32(0x86915a00),
  2504. 174: uint32(0xd50b0184),
  2505. 175: uint32(0x52adcac7),
  2506. 176: uint32(0x837e606f),
  2507. 177: uint32(0x04d8ab2c),
  2508. 178: uint32(0x5742f0a8),
  2509. 179: uint32(0xd0e43beb),
  2510. 180: uint32(0xf07647a0),
  2511. 181: uint32(0x77d08ce3),
  2512. 182: uint32(0x244ad767),
  2513. 183: uint32(0xa3ec1c24),
  2514. 184: uint32(0x656e2ff1),
  2515. 185: uint32(0xe2c8e4b2),
  2516. 186: uint32(0xb152bf36),
  2517. 187: uint32(0x36f47475),
  2518. 188: uint32(0x1666083e),
  2519. 189: uint32(0x91c0c37d),
  2520. 190: uint32(0xc25a98f9),
  2521. 191: uint32(0x45fc53ba),
  2522. 192: uint32(0xe7caae1c),
  2523. 193: uint32(0x606c655f),
  2524. 194: uint32(0x33f63edb),
  2525. 195: uint32(0xb450f598),
  2526. 196: uint32(0x94c289d3),
  2527. 197: uint32(0x13644290),
  2528. 198: uint32(0x40fe1914),
  2529. 199: uint32(0xc758d257),
  2530. 200: uint32(0x01dae182),
  2531. 201: uint32(0x867c2ac1),
  2532. 202: uint32(0xd5e67145),
  2533. 203: uint32(0x5240ba06),
  2534. 204: uint32(0x72d2c64d),
  2535. 205: uint32(0xf5740d0e),
  2536. 206: uint32(0xa6ee568a),
  2537. 207: uint32(0x21489dc9),
  2538. 208: uint32(0xf09b3761),
  2539. 209: uint32(0x773dfc22),
  2540. 210: uint32(0x24a7a7a6),
  2541. 211: uint32(0xa3016ce5),
  2542. 212: uint32(0x839310ae),
  2543. 213: uint32(0x0435dbed),
  2544. 214: uint32(0x57af8069),
  2545. 215: uint32(0xd0094b2a),
  2546. 216: uint32(0x168b78ff),
  2547. 217: uint32(0x912db3bc),
  2548. 218: uint32(0xc2b7e838),
  2549. 219: uint32(0x4511237b),
  2550. 220: uint32(0x65835f30),
  2551. 221: uint32(0xe2259473),
  2552. 222: uint32(0xb1bfcff7),
  2553. 223: uint32(0x361904b4),
  2554. 224: uint32(0xc9699ce6),
  2555. 225: uint32(0x4ecf57a5),
  2556. 226: uint32(0x1d550c21),
  2557. 227: uint32(0x9af3c762),
  2558. 228: uint32(0xba61bb29),
  2559. 229: uint32(0x3dc7706a),
  2560. 230: uint32(0x6e5d2bee),
  2561. 231: uint32(0xe9fbe0ad),
  2562. 232: uint32(0x2f79d378),
  2563. 233: uint32(0xa8df183b),
  2564. 234: uint32(0xfb4543bf),
  2565. 235: uint32(0x7ce388fc),
  2566. 236: uint32(0x5c71f4b7),
  2567. 237: uint32(0xdbd73ff4),
  2568. 238: uint32(0x884d6470),
  2569. 239: uint32(0x0febaf33),
  2570. 240: uint32(0xde38059b),
  2571. 241: uint32(0x599eced8),
  2572. 242: uint32(0x0a04955c),
  2573. 243: uint32(0x8da25e1f),
  2574. 244: uint32(0xad302254),
  2575. 245: uint32(0x2a96e917),
  2576. 246: uint32(0x790cb293),
  2577. 247: uint32(0xfeaa79d0),
  2578. 248: uint32(0x38284a05),
  2579. 249: uint32(0xbf8e8146),
  2580. 250: uint32(0xec14dac2),
  2581. 251: uint32(0x6bb21181),
  2582. 252: uint32(0x4b206dca),
  2583. 253: uint32(0xcc86a689),
  2584. 254: uint32(0x9f1cfd0d),
  2585. 255: uint32(0x18ba364e),
  2586. },
  2587. }
  2588. var _crc_braid_big_table = [4][256]Tz_word_t{
  2589. 0: {
  2590. 1: uint32(0x43cba687),
  2591. 2: uint32(0xc7903cd4),
  2592. 3: uint32(0x845b9a53),
  2593. 4: uint32(0xcf270873),
  2594. 5: uint32(0x8cecaef4),
  2595. 6: uint32(0x08b734a7),
  2596. 7: uint32(0x4b7c9220),
  2597. 8: uint32(0x9e4f10e6),
  2598. 9: uint32(0xdd84b661),
  2599. 10: uint32(0x59df2c32),
  2600. 11: uint32(0x1a148ab5),
  2601. 12: uint32(0x51681895),
  2602. 13: uint32(0x12a3be12),
  2603. 14: uint32(0x96f82441),
  2604. 15: uint32(0xd53382c6),
  2605. 16: uint32(0x7d995117),
  2606. 17: uint32(0x3e52f790),
  2607. 18: uint32(0xba096dc3),
  2608. 19: uint32(0xf9c2cb44),
  2609. 20: uint32(0xb2be5964),
  2610. 21: uint32(0xf175ffe3),
  2611. 22: uint32(0x752e65b0),
  2612. 23: uint32(0x36e5c337),
  2613. 24: uint32(0xe3d641f1),
  2614. 25: uint32(0xa01de776),
  2615. 26: uint32(0x24467d25),
  2616. 27: uint32(0x678ddba2),
  2617. 28: uint32(0x2cf14982),
  2618. 29: uint32(0x6f3aef05),
  2619. 30: uint32(0xeb617556),
  2620. 31: uint32(0xa8aad3d1),
  2621. 32: uint32(0xfa32a32e),
  2622. 33: uint32(0xb9f905a9),
  2623. 34: uint32(0x3da29ffa),
  2624. 35: uint32(0x7e69397d),
  2625. 36: uint32(0x3515ab5d),
  2626. 37: uint32(0x76de0dda),
  2627. 38: uint32(0xf2859789),
  2628. 39: uint32(0xb14e310e),
  2629. 40: uint32(0x647db3c8),
  2630. 41: uint32(0x27b6154f),
  2631. 42: uint32(0xa3ed8f1c),
  2632. 43: uint32(0xe026299b),
  2633. 44: uint32(0xab5abbbb),
  2634. 45: uint32(0xe8911d3c),
  2635. 46: uint32(0x6cca876f),
  2636. 47: uint32(0x2f0121e8),
  2637. 48: uint32(0x87abf239),
  2638. 49: uint32(0xc46054be),
  2639. 50: uint32(0x403bceed),
  2640. 51: uint32(0x03f0686a),
  2641. 52: uint32(0x488cfa4a),
  2642. 53: uint32(0x0b475ccd),
  2643. 54: uint32(0x8f1cc69e),
  2644. 55: uint32(0xccd76019),
  2645. 56: uint32(0x19e4e2df),
  2646. 57: uint32(0x5a2f4458),
  2647. 58: uint32(0xde74de0b),
  2648. 59: uint32(0x9dbf788c),
  2649. 60: uint32(0xd6c3eaac),
  2650. 61: uint32(0x95084c2b),
  2651. 62: uint32(0x1153d678),
  2652. 63: uint32(0x529870ff),
  2653. 64: uint32(0xf465465d),
  2654. 65: uint32(0xb7aee0da),
  2655. 66: uint32(0x33f57a89),
  2656. 67: uint32(0x703edc0e),
  2657. 68: uint32(0x3b424e2e),
  2658. 69: uint32(0x7889e8a9),
  2659. 70: uint32(0xfcd272fa),
  2660. 71: uint32(0xbf19d47d),
  2661. 72: uint32(0x6a2a56bb),
  2662. 73: uint32(0x29e1f03c),
  2663. 74: uint32(0xadba6a6f),
  2664. 75: uint32(0xee71cce8),
  2665. 76: uint32(0xa50d5ec8),
  2666. 77: uint32(0xe6c6f84f),
  2667. 78: uint32(0x629d621c),
  2668. 79: uint32(0x2156c49b),
  2669. 80: uint32(0x89fc174a),
  2670. 81: uint32(0xca37b1cd),
  2671. 82: uint32(0x4e6c2b9e),
  2672. 83: uint32(0x0da78d19),
  2673. 84: uint32(0x46db1f39),
  2674. 85: uint32(0x0510b9be),
  2675. 86: uint32(0x814b23ed),
  2676. 87: uint32(0xc280856a),
  2677. 88: uint32(0x17b307ac),
  2678. 89: uint32(0x5478a12b),
  2679. 90: uint32(0xd0233b78),
  2680. 91: uint32(0x93e89dff),
  2681. 92: uint32(0xd8940fdf),
  2682. 93: uint32(0x9b5fa958),
  2683. 94: uint32(0x1f04330b),
  2684. 95: uint32(0x5ccf958c),
  2685. 96: uint32(0x0e57e573),
  2686. 97: uint32(0x4d9c43f4),
  2687. 98: uint32(0xc9c7d9a7),
  2688. 99: uint32(0x8a0c7f20),
  2689. 100: uint32(0xc170ed00),
  2690. 101: uint32(0x82bb4b87),
  2691. 102: uint32(0x06e0d1d4),
  2692. 103: uint32(0x452b7753),
  2693. 104: uint32(0x9018f595),
  2694. 105: uint32(0xd3d35312),
  2695. 106: uint32(0x5788c941),
  2696. 107: uint32(0x14436fc6),
  2697. 108: uint32(0x5f3ffde6),
  2698. 109: uint32(0x1cf45b61),
  2699. 110: uint32(0x98afc132),
  2700. 111: uint32(0xdb6467b5),
  2701. 112: uint32(0x73ceb464),
  2702. 113: uint32(0x300512e3),
  2703. 114: uint32(0xb45e88b0),
  2704. 115: uint32(0xf7952e37),
  2705. 116: uint32(0xbce9bc17),
  2706. 117: uint32(0xff221a90),
  2707. 118: uint32(0x7b7980c3),
  2708. 119: uint32(0x38b22644),
  2709. 120: uint32(0xed81a482),
  2710. 121: uint32(0xae4a0205),
  2711. 122: uint32(0x2a119856),
  2712. 123: uint32(0x69da3ed1),
  2713. 124: uint32(0x22a6acf1),
  2714. 125: uint32(0x616d0a76),
  2715. 126: uint32(0xe5369025),
  2716. 127: uint32(0xa6fd36a2),
  2717. 128: uint32(0xe8cb8cba),
  2718. 129: uint32(0xab002a3d),
  2719. 130: uint32(0x2f5bb06e),
  2720. 131: uint32(0x6c9016e9),
  2721. 132: uint32(0x27ec84c9),
  2722. 133: uint32(0x6427224e),
  2723. 134: uint32(0xe07cb81d),
  2724. 135: uint32(0xa3b71e9a),
  2725. 136: uint32(0x76849c5c),
  2726. 137: uint32(0x354f3adb),
  2727. 138: uint32(0xb114a088),
  2728. 139: uint32(0xf2df060f),
  2729. 140: uint32(0xb9a3942f),
  2730. 141: uint32(0xfa6832a8),
  2731. 142: uint32(0x7e33a8fb),
  2732. 143: uint32(0x3df80e7c),
  2733. 144: uint32(0x9552ddad),
  2734. 145: uint32(0xd6997b2a),
  2735. 146: uint32(0x52c2e179),
  2736. 147: uint32(0x110947fe),
  2737. 148: uint32(0x5a75d5de),
  2738. 149: uint32(0x19be7359),
  2739. 150: uint32(0x9de5e90a),
  2740. 151: uint32(0xde2e4f8d),
  2741. 152: uint32(0x0b1dcd4b),
  2742. 153: uint32(0x48d66bcc),
  2743. 154: uint32(0xcc8df19f),
  2744. 155: uint32(0x8f465718),
  2745. 156: uint32(0xc43ac538),
  2746. 157: uint32(0x87f163bf),
  2747. 158: uint32(0x03aaf9ec),
  2748. 159: uint32(0x40615f6b),
  2749. 160: uint32(0x12f92f94),
  2750. 161: uint32(0x51328913),
  2751. 162: uint32(0xd5691340),
  2752. 163: uint32(0x96a2b5c7),
  2753. 164: uint32(0xddde27e7),
  2754. 165: uint32(0x9e158160),
  2755. 166: uint32(0x1a4e1b33),
  2756. 167: uint32(0x5985bdb4),
  2757. 168: uint32(0x8cb63f72),
  2758. 169: uint32(0xcf7d99f5),
  2759. 170: uint32(0x4b2603a6),
  2760. 171: uint32(0x08eda521),
  2761. 172: uint32(0x43913701),
  2762. 173: uint32(0x005a9186),
  2763. 174: uint32(0x84010bd5),
  2764. 175: uint32(0xc7caad52),
  2765. 176: uint32(0x6f607e83),
  2766. 177: uint32(0x2cabd804),
  2767. 178: uint32(0xa8f04257),
  2768. 179: uint32(0xeb3be4d0),
  2769. 180: uint32(0xa04776f0),
  2770. 181: uint32(0xe38cd077),
  2771. 182: uint32(0x67d74a24),
  2772. 183: uint32(0x241ceca3),
  2773. 184: uint32(0xf12f6e65),
  2774. 185: uint32(0xb2e4c8e2),
  2775. 186: uint32(0x36bf52b1),
  2776. 187: uint32(0x7574f436),
  2777. 188: uint32(0x3e086616),
  2778. 189: uint32(0x7dc3c091),
  2779. 190: uint32(0xf9985ac2),
  2780. 191: uint32(0xba53fc45),
  2781. 192: uint32(0x1caecae7),
  2782. 193: uint32(0x5f656c60),
  2783. 194: uint32(0xdb3ef633),
  2784. 195: uint32(0x98f550b4),
  2785. 196: uint32(0xd389c294),
  2786. 197: uint32(0x90426413),
  2787. 198: uint32(0x1419fe40),
  2788. 199: uint32(0x57d258c7),
  2789. 200: uint32(0x82e1da01),
  2790. 201: uint32(0xc12a7c86),
  2791. 202: uint32(0x4571e6d5),
  2792. 203: uint32(0x06ba4052),
  2793. 204: uint32(0x4dc6d272),
  2794. 205: uint32(0x0e0d74f5),
  2795. 206: uint32(0x8a56eea6),
  2796. 207: uint32(0xc99d4821),
  2797. 208: uint32(0x61379bf0),
  2798. 209: uint32(0x22fc3d77),
  2799. 210: uint32(0xa6a7a724),
  2800. 211: uint32(0xe56c01a3),
  2801. 212: uint32(0xae109383),
  2802. 213: uint32(0xeddb3504),
  2803. 214: uint32(0x6980af57),
  2804. 215: uint32(0x2a4b09d0),
  2805. 216: uint32(0xff788b16),
  2806. 217: uint32(0xbcb32d91),
  2807. 218: uint32(0x38e8b7c2),
  2808. 219: uint32(0x7b231145),
  2809. 220: uint32(0x305f8365),
  2810. 221: uint32(0x739425e2),
  2811. 222: uint32(0xf7cfbfb1),
  2812. 223: uint32(0xb4041936),
  2813. 224: uint32(0xe69c69c9),
  2814. 225: uint32(0xa557cf4e),
  2815. 226: uint32(0x210c551d),
  2816. 227: uint32(0x62c7f39a),
  2817. 228: uint32(0x29bb61ba),
  2818. 229: uint32(0x6a70c73d),
  2819. 230: uint32(0xee2b5d6e),
  2820. 231: uint32(0xade0fbe9),
  2821. 232: uint32(0x78d3792f),
  2822. 233: uint32(0x3b18dfa8),
  2823. 234: uint32(0xbf4345fb),
  2824. 235: uint32(0xfc88e37c),
  2825. 236: uint32(0xb7f4715c),
  2826. 237: uint32(0xf43fd7db),
  2827. 238: uint32(0x70644d88),
  2828. 239: uint32(0x33afeb0f),
  2829. 240: uint32(0x9b0538de),
  2830. 241: uint32(0xd8ce9e59),
  2831. 242: uint32(0x5c95040a),
  2832. 243: uint32(0x1f5ea28d),
  2833. 244: uint32(0x542230ad),
  2834. 245: uint32(0x17e9962a),
  2835. 246: uint32(0x93b20c79),
  2836. 247: uint32(0xd079aafe),
  2837. 248: uint32(0x054a2838),
  2838. 249: uint32(0x46818ebf),
  2839. 250: uint32(0xc2da14ec),
  2840. 251: uint32(0x8111b26b),
  2841. 252: uint32(0xca6d204b),
  2842. 253: uint32(0x89a686cc),
  2843. 254: uint32(0x0dfd1c9f),
  2844. 255: uint32(0x4e36ba18),
  2845. },
  2846. 1: {
  2847. 1: uint32(0xe1b652ef),
  2848. 2: uint32(0x836bd405),
  2849. 3: uint32(0x62dd86ea),
  2850. 4: uint32(0x06d7a80b),
  2851. 5: uint32(0xe761fae4),
  2852. 6: uint32(0x85bc7c0e),
  2853. 7: uint32(0x640a2ee1),
  2854. 8: uint32(0x0cae5117),
  2855. 9: uint32(0xed1803f8),
  2856. 10: uint32(0x8fc58512),
  2857. 11: uint32(0x6e73d7fd),
  2858. 12: uint32(0x0a79f91c),
  2859. 13: uint32(0xebcfabf3),
  2860. 14: uint32(0x89122d19),
  2861. 15: uint32(0x68a47ff6),
  2862. 16: uint32(0x185ca32e),
  2863. 17: uint32(0xf9eaf1c1),
  2864. 18: uint32(0x9b37772b),
  2865. 19: uint32(0x7a8125c4),
  2866. 20: uint32(0x1e8b0b25),
  2867. 21: uint32(0xff3d59ca),
  2868. 22: uint32(0x9de0df20),
  2869. 23: uint32(0x7c568dcf),
  2870. 24: uint32(0x14f2f239),
  2871. 25: uint32(0xf544a0d6),
  2872. 26: uint32(0x9799263c),
  2873. 27: uint32(0x762f74d3),
  2874. 28: uint32(0x12255a32),
  2875. 29: uint32(0xf39308dd),
  2876. 30: uint32(0x914e8e37),
  2877. 31: uint32(0x70f8dcd8),
  2878. 32: uint32(0x30b8465d),
  2879. 33: uint32(0xd10e14b2),
  2880. 34: uint32(0xb3d39258),
  2881. 35: uint32(0x5265c0b7),
  2882. 36: uint32(0x366fee56),
  2883. 37: uint32(0xd7d9bcb9),
  2884. 38: uint32(0xb5043a53),
  2885. 39: uint32(0x54b268bc),
  2886. 40: uint32(0x3c16174a),
  2887. 41: uint32(0xdda045a5),
  2888. 42: uint32(0xbf7dc34f),
  2889. 43: uint32(0x5ecb91a0),
  2890. 44: uint32(0x3ac1bf41),
  2891. 45: uint32(0xdb77edae),
  2892. 46: uint32(0xb9aa6b44),
  2893. 47: uint32(0x581c39ab),
  2894. 48: uint32(0x28e4e573),
  2895. 49: uint32(0xc952b79c),
  2896. 50: uint32(0xab8f3176),
  2897. 51: uint32(0x4a396399),
  2898. 52: uint32(0x2e334d78),
  2899. 53: uint32(0xcf851f97),
  2900. 54: uint32(0xad58997d),
  2901. 55: uint32(0x4ceecb92),
  2902. 56: uint32(0x244ab464),
  2903. 57: uint32(0xc5fce68b),
  2904. 58: uint32(0xa7216061),
  2905. 59: uint32(0x4697328e),
  2906. 60: uint32(0x229d1c6f),
  2907. 61: uint32(0xc32b4e80),
  2908. 62: uint32(0xa1f6c86a),
  2909. 63: uint32(0x40409a85),
  2910. 64: uint32(0x60708dba),
  2911. 65: uint32(0x81c6df55),
  2912. 66: uint32(0xe31b59bf),
  2913. 67: uint32(0x02ad0b50),
  2914. 68: uint32(0x66a725b1),
  2915. 69: uint32(0x8711775e),
  2916. 70: uint32(0xe5ccf1b4),
  2917. 71: uint32(0x047aa35b),
  2918. 72: uint32(0x6cdedcad),
  2919. 73: uint32(0x8d688e42),
  2920. 74: uint32(0xefb508a8),
  2921. 75: uint32(0x0e035a47),
  2922. 76: uint32(0x6a0974a6),
  2923. 77: uint32(0x8bbf2649),
  2924. 78: uint32(0xe962a0a3),
  2925. 79: uint32(0x08d4f24c),
  2926. 80: uint32(0x782c2e94),
  2927. 81: uint32(0x999a7c7b),
  2928. 82: uint32(0xfb47fa91),
  2929. 83: uint32(0x1af1a87e),
  2930. 84: uint32(0x7efb869f),
  2931. 85: uint32(0x9f4dd470),
  2932. 86: uint32(0xfd90529a),
  2933. 87: uint32(0x1c260075),
  2934. 88: uint32(0x74827f83),
  2935. 89: uint32(0x95342d6c),
  2936. 90: uint32(0xf7e9ab86),
  2937. 91: uint32(0x165ff969),
  2938. 92: uint32(0x7255d788),
  2939. 93: uint32(0x93e38567),
  2940. 94: uint32(0xf13e038d),
  2941. 95: uint32(0x10885162),
  2942. 96: uint32(0x50c8cbe7),
  2943. 97: uint32(0xb17e9908),
  2944. 98: uint32(0xd3a31fe2),
  2945. 99: uint32(0x32154d0d),
  2946. 100: uint32(0x561f63ec),
  2947. 101: uint32(0xb7a93103),
  2948. 102: uint32(0xd574b7e9),
  2949. 103: uint32(0x34c2e506),
  2950. 104: uint32(0x5c669af0),
  2951. 105: uint32(0xbdd0c81f),
  2952. 106: uint32(0xdf0d4ef5),
  2953. 107: uint32(0x3ebb1c1a),
  2954. 108: uint32(0x5ab132fb),
  2955. 109: uint32(0xbb076014),
  2956. 110: uint32(0xd9dae6fe),
  2957. 111: uint32(0x386cb411),
  2958. 112: uint32(0x489468c9),
  2959. 113: uint32(0xa9223a26),
  2960. 114: uint32(0xcbffbccc),
  2961. 115: uint32(0x2a49ee23),
  2962. 116: uint32(0x4e43c0c2),
  2963. 117: uint32(0xaff5922d),
  2964. 118: uint32(0xcd2814c7),
  2965. 119: uint32(0x2c9e4628),
  2966. 120: uint32(0x443a39de),
  2967. 121: uint32(0xa58c6b31),
  2968. 122: uint32(0xc751eddb),
  2969. 123: uint32(0x26e7bf34),
  2970. 124: uint32(0x42ed91d5),
  2971. 125: uint32(0xa35bc33a),
  2972. 126: uint32(0xc18645d0),
  2973. 127: uint32(0x2030173f),
  2974. 128: uint32(0x81e66bae),
  2975. 129: uint32(0x60503941),
  2976. 130: uint32(0x028dbfab),
  2977. 131: uint32(0xe33bed44),
  2978. 132: uint32(0x8731c3a5),
  2979. 133: uint32(0x6687914a),
  2980. 134: uint32(0x045a17a0),
  2981. 135: uint32(0xe5ec454f),
  2982. 136: uint32(0x8d483ab9),
  2983. 137: uint32(0x6cfe6856),
  2984. 138: uint32(0x0e23eebc),
  2985. 139: uint32(0xef95bc53),
  2986. 140: uint32(0x8b9f92b2),
  2987. 141: uint32(0x6a29c05d),
  2988. 142: uint32(0x08f446b7),
  2989. 143: uint32(0xe9421458),
  2990. 144: uint32(0x99bac880),
  2991. 145: uint32(0x780c9a6f),
  2992. 146: uint32(0x1ad11c85),
  2993. 147: uint32(0xfb674e6a),
  2994. 148: uint32(0x9f6d608b),
  2995. 149: uint32(0x7edb3264),
  2996. 150: uint32(0x1c06b48e),
  2997. 151: uint32(0xfdb0e661),
  2998. 152: uint32(0x95149997),
  2999. 153: uint32(0x74a2cb78),
  3000. 154: uint32(0x167f4d92),
  3001. 155: uint32(0xf7c91f7d),
  3002. 156: uint32(0x93c3319c),
  3003. 157: uint32(0x72756373),
  3004. 158: uint32(0x10a8e599),
  3005. 159: uint32(0xf11eb776),
  3006. 160: uint32(0xb15e2df3),
  3007. 161: uint32(0x50e87f1c),
  3008. 162: uint32(0x3235f9f6),
  3009. 163: uint32(0xd383ab19),
  3010. 164: uint32(0xb78985f8),
  3011. 165: uint32(0x563fd717),
  3012. 166: uint32(0x34e251fd),
  3013. 167: uint32(0xd5540312),
  3014. 168: uint32(0xbdf07ce4),
  3015. 169: uint32(0x5c462e0b),
  3016. 170: uint32(0x3e9ba8e1),
  3017. 171: uint32(0xdf2dfa0e),
  3018. 172: uint32(0xbb27d4ef),
  3019. 173: uint32(0x5a918600),
  3020. 174: uint32(0x384c00ea),
  3021. 175: uint32(0xd9fa5205),
  3022. 176: uint32(0xa9028edd),
  3023. 177: uint32(0x48b4dc32),
  3024. 178: uint32(0x2a695ad8),
  3025. 179: uint32(0xcbdf0837),
  3026. 180: uint32(0xafd526d6),
  3027. 181: uint32(0x4e637439),
  3028. 182: uint32(0x2cbef2d3),
  3029. 183: uint32(0xcd08a03c),
  3030. 184: uint32(0xa5acdfca),
  3031. 185: uint32(0x441a8d25),
  3032. 186: uint32(0x26c70bcf),
  3033. 187: uint32(0xc7715920),
  3034. 188: uint32(0xa37b77c1),
  3035. 189: uint32(0x42cd252e),
  3036. 190: uint32(0x2010a3c4),
  3037. 191: uint32(0xc1a6f12b),
  3038. 192: uint32(0xe196e614),
  3039. 193: uint32(0x0020b4fb),
  3040. 194: uint32(0x62fd3211),
  3041. 195: uint32(0x834b60fe),
  3042. 196: uint32(0xe7414e1f),
  3043. 197: uint32(0x06f71cf0),
  3044. 198: uint32(0x642a9a1a),
  3045. 199: uint32(0x859cc8f5),
  3046. 200: uint32(0xed38b703),
  3047. 201: uint32(0x0c8ee5ec),
  3048. 202: uint32(0x6e536306),
  3049. 203: uint32(0x8fe531e9),
  3050. 204: uint32(0xebef1f08),
  3051. 205: uint32(0x0a594de7),
  3052. 206: uint32(0x6884cb0d),
  3053. 207: uint32(0x893299e2),
  3054. 208: uint32(0xf9ca453a),
  3055. 209: uint32(0x187c17d5),
  3056. 210: uint32(0x7aa1913f),
  3057. 211: uint32(0x9b17c3d0),
  3058. 212: uint32(0xff1ded31),
  3059. 213: uint32(0x1eabbfde),
  3060. 214: uint32(0x7c763934),
  3061. 215: uint32(0x9dc06bdb),
  3062. 216: uint32(0xf564142d),
  3063. 217: uint32(0x14d246c2),
  3064. 218: uint32(0x760fc028),
  3065. 219: uint32(0x97b992c7),
  3066. 220: uint32(0xf3b3bc26),
  3067. 221: uint32(0x1205eec9),
  3068. 222: uint32(0x70d86823),
  3069. 223: uint32(0x916e3acc),
  3070. 224: uint32(0xd12ea049),
  3071. 225: uint32(0x3098f2a6),
  3072. 226: uint32(0x5245744c),
  3073. 227: uint32(0xb3f326a3),
  3074. 228: uint32(0xd7f90842),
  3075. 229: uint32(0x364f5aad),
  3076. 230: uint32(0x5492dc47),
  3077. 231: uint32(0xb5248ea8),
  3078. 232: uint32(0xdd80f15e),
  3079. 233: uint32(0x3c36a3b1),
  3080. 234: uint32(0x5eeb255b),
  3081. 235: uint32(0xbf5d77b4),
  3082. 236: uint32(0xdb575955),
  3083. 237: uint32(0x3ae10bba),
  3084. 238: uint32(0x583c8d50),
  3085. 239: uint32(0xb98adfbf),
  3086. 240: uint32(0xc9720367),
  3087. 241: uint32(0x28c45188),
  3088. 242: uint32(0x4a19d762),
  3089. 243: uint32(0xabaf858d),
  3090. 244: uint32(0xcfa5ab6c),
  3091. 245: uint32(0x2e13f983),
  3092. 246: uint32(0x4cce7f69),
  3093. 247: uint32(0xad782d86),
  3094. 248: uint32(0xc5dc5270),
  3095. 249: uint32(0x246a009f),
  3096. 250: uint32(0x46b78675),
  3097. 251: uint32(0xa701d49a),
  3098. 252: uint32(0xc30bfa7b),
  3099. 253: uint32(0x22bda894),
  3100. 254: uint32(0x40602e7e),
  3101. 255: uint32(0xa1d67c91),
  3102. },
  3103. 2: {
  3104. 1: uint32(0x5880e2d7),
  3105. 2: uint32(0xf106b474),
  3106. 3: uint32(0xa98656a3),
  3107. 4: uint32(0xe20d68e9),
  3108. 5: uint32(0xba8d8a3e),
  3109. 6: uint32(0x130bdc9d),
  3110. 7: uint32(0x4b8b3e4a),
  3111. 8: uint32(0x851da109),
  3112. 9: uint32(0xdd9d43de),
  3113. 10: uint32(0x741b157d),
  3114. 11: uint32(0x2c9bf7aa),
  3115. 12: uint32(0x6710c9e0),
  3116. 13: uint32(0x3f902b37),
  3117. 14: uint32(0x96167d94),
  3118. 15: uint32(0xce969f43),
  3119. 16: uint32(0x0a3b4213),
  3120. 17: uint32(0x52bba0c4),
  3121. 18: uint32(0xfb3df667),
  3122. 19: uint32(0xa3bd14b0),
  3123. 20: uint32(0xe8362afa),
  3124. 21: uint32(0xb0b6c82d),
  3125. 22: uint32(0x19309e8e),
  3126. 23: uint32(0x41b07c59),
  3127. 24: uint32(0x8f26e31a),
  3128. 25: uint32(0xd7a601cd),
  3129. 26: uint32(0x7e20576e),
  3130. 27: uint32(0x26a0b5b9),
  3131. 28: uint32(0x6d2b8bf3),
  3132. 29: uint32(0x35ab6924),
  3133. 30: uint32(0x9c2d3f87),
  3134. 31: uint32(0xc4addd50),
  3135. 32: uint32(0x14768426),
  3136. 33: uint32(0x4cf666f1),
  3137. 34: uint32(0xe5703052),
  3138. 35: uint32(0xbdf0d285),
  3139. 36: uint32(0xf67beccf),
  3140. 37: uint32(0xaefb0e18),
  3141. 38: uint32(0x077d58bb),
  3142. 39: uint32(0x5ffdba6c),
  3143. 40: uint32(0x916b252f),
  3144. 41: uint32(0xc9ebc7f8),
  3145. 42: uint32(0x606d915b),
  3146. 43: uint32(0x38ed738c),
  3147. 44: uint32(0x73664dc6),
  3148. 45: uint32(0x2be6af11),
  3149. 46: uint32(0x8260f9b2),
  3150. 47: uint32(0xdae01b65),
  3151. 48: uint32(0x1e4dc635),
  3152. 49: uint32(0x46cd24e2),
  3153. 50: uint32(0xef4b7241),
  3154. 51: uint32(0xb7cb9096),
  3155. 52: uint32(0xfc40aedc),
  3156. 53: uint32(0xa4c04c0b),
  3157. 54: uint32(0x0d461aa8),
  3158. 55: uint32(0x55c6f87f),
  3159. 56: uint32(0x9b50673c),
  3160. 57: uint32(0xc3d085eb),
  3161. 58: uint32(0x6a56d348),
  3162. 59: uint32(0x32d6319f),
  3163. 60: uint32(0x795d0fd5),
  3164. 61: uint32(0x21dded02),
  3165. 62: uint32(0x885bbba1),
  3166. 63: uint32(0xd0db5976),
  3167. 64: uint32(0x28ec084d),
  3168. 65: uint32(0x706cea9a),
  3169. 66: uint32(0xd9eabc39),
  3170. 67: uint32(0x816a5eee),
  3171. 68: uint32(0xcae160a4),
  3172. 69: uint32(0x92618273),
  3173. 70: uint32(0x3be7d4d0),
  3174. 71: uint32(0x63673607),
  3175. 72: uint32(0xadf1a944),
  3176. 73: uint32(0xf5714b93),
  3177. 74: uint32(0x5cf71d30),
  3178. 75: uint32(0x0477ffe7),
  3179. 76: uint32(0x4ffcc1ad),
  3180. 77: uint32(0x177c237a),
  3181. 78: uint32(0xbefa75d9),
  3182. 79: uint32(0xe67a970e),
  3183. 80: uint32(0x22d74a5e),
  3184. 81: uint32(0x7a57a889),
  3185. 82: uint32(0xd3d1fe2a),
  3186. 83: uint32(0x8b511cfd),
  3187. 84: uint32(0xc0da22b7),
  3188. 85: uint32(0x985ac060),
  3189. 86: uint32(0x31dc96c3),
  3190. 87: uint32(0x695c7414),
  3191. 88: uint32(0xa7caeb57),
  3192. 89: uint32(0xff4a0980),
  3193. 90: uint32(0x56cc5f23),
  3194. 91: uint32(0x0e4cbdf4),
  3195. 92: uint32(0x45c783be),
  3196. 93: uint32(0x1d476169),
  3197. 94: uint32(0xb4c137ca),
  3198. 95: uint32(0xec41d51d),
  3199. 96: uint32(0x3c9a8c6b),
  3200. 97: uint32(0x641a6ebc),
  3201. 98: uint32(0xcd9c381f),
  3202. 99: uint32(0x951cdac8),
  3203. 100: uint32(0xde97e482),
  3204. 101: uint32(0x86170655),
  3205. 102: uint32(0x2f9150f6),
  3206. 103: uint32(0x7711b221),
  3207. 104: uint32(0xb9872d62),
  3208. 105: uint32(0xe107cfb5),
  3209. 106: uint32(0x48819916),
  3210. 107: uint32(0x10017bc1),
  3211. 108: uint32(0x5b8a458b),
  3212. 109: uint32(0x030aa75c),
  3213. 110: uint32(0xaa8cf1ff),
  3214. 111: uint32(0xf20c1328),
  3215. 112: uint32(0x36a1ce78),
  3216. 113: uint32(0x6e212caf),
  3217. 114: uint32(0xc7a77a0c),
  3218. 115: uint32(0x9f2798db),
  3219. 116: uint32(0xd4aca691),
  3220. 117: uint32(0x8c2c4446),
  3221. 118: uint32(0x25aa12e5),
  3222. 119: uint32(0x7d2af032),
  3223. 120: uint32(0xb3bc6f71),
  3224. 121: uint32(0xeb3c8da6),
  3225. 122: uint32(0x42badb05),
  3226. 123: uint32(0x1a3a39d2),
  3227. 124: uint32(0x51b10798),
  3228. 125: uint32(0x0931e54f),
  3229. 126: uint32(0xa0b7b3ec),
  3230. 127: uint32(0xf837513b),
  3231. 128: uint32(0x50d8119a),
  3232. 129: uint32(0x0858f34d),
  3233. 130: uint32(0xa1dea5ee),
  3234. 131: uint32(0xf95e4739),
  3235. 132: uint32(0xb2d57973),
  3236. 133: uint32(0xea559ba4),
  3237. 134: uint32(0x43d3cd07),
  3238. 135: uint32(0x1b532fd0),
  3239. 136: uint32(0xd5c5b093),
  3240. 137: uint32(0x8d455244),
  3241. 138: uint32(0x24c304e7),
  3242. 139: uint32(0x7c43e630),
  3243. 140: uint32(0x37c8d87a),
  3244. 141: uint32(0x6f483aad),
  3245. 142: uint32(0xc6ce6c0e),
  3246. 143: uint32(0x9e4e8ed9),
  3247. 144: uint32(0x5ae35389),
  3248. 145: uint32(0x0263b15e),
  3249. 146: uint32(0xabe5e7fd),
  3250. 147: uint32(0xf365052a),
  3251. 148: uint32(0xb8ee3b60),
  3252. 149: uint32(0xe06ed9b7),
  3253. 150: uint32(0x49e88f14),
  3254. 151: uint32(0x11686dc3),
  3255. 152: uint32(0xdffef280),
  3256. 153: uint32(0x877e1057),
  3257. 154: uint32(0x2ef846f4),
  3258. 155: uint32(0x7678a423),
  3259. 156: uint32(0x3df39a69),
  3260. 157: uint32(0x657378be),
  3261. 158: uint32(0xccf52e1d),
  3262. 159: uint32(0x9475ccca),
  3263. 160: uint32(0x44ae95bc),
  3264. 161: uint32(0x1c2e776b),
  3265. 162: uint32(0xb5a821c8),
  3266. 163: uint32(0xed28c31f),
  3267. 164: uint32(0xa6a3fd55),
  3268. 165: uint32(0xfe231f82),
  3269. 166: uint32(0x57a54921),
  3270. 167: uint32(0x0f25abf6),
  3271. 168: uint32(0xc1b334b5),
  3272. 169: uint32(0x9933d662),
  3273. 170: uint32(0x30b580c1),
  3274. 171: uint32(0x68356216),
  3275. 172: uint32(0x23be5c5c),
  3276. 173: uint32(0x7b3ebe8b),
  3277. 174: uint32(0xd2b8e828),
  3278. 175: uint32(0x8a380aff),
  3279. 176: uint32(0x4e95d7af),
  3280. 177: uint32(0x16153578),
  3281. 178: uint32(0xbf9363db),
  3282. 179: uint32(0xe713810c),
  3283. 180: uint32(0xac98bf46),
  3284. 181: uint32(0xf4185d91),
  3285. 182: uint32(0x5d9e0b32),
  3286. 183: uint32(0x051ee9e5),
  3287. 184: uint32(0xcb8876a6),
  3288. 185: uint32(0x93089471),
  3289. 186: uint32(0x3a8ec2d2),
  3290. 187: uint32(0x620e2005),
  3291. 188: uint32(0x29851e4f),
  3292. 189: uint32(0x7105fc98),
  3293. 190: uint32(0xd883aa3b),
  3294. 191: uint32(0x800348ec),
  3295. 192: uint32(0x783419d7),
  3296. 193: uint32(0x20b4fb00),
  3297. 194: uint32(0x8932ada3),
  3298. 195: uint32(0xd1b24f74),
  3299. 196: uint32(0x9a39713e),
  3300. 197: uint32(0xc2b993e9),
  3301. 198: uint32(0x6b3fc54a),
  3302. 199: uint32(0x33bf279d),
  3303. 200: uint32(0xfd29b8de),
  3304. 201: uint32(0xa5a95a09),
  3305. 202: uint32(0x0c2f0caa),
  3306. 203: uint32(0x54afee7d),
  3307. 204: uint32(0x1f24d037),
  3308. 205: uint32(0x47a432e0),
  3309. 206: uint32(0xee226443),
  3310. 207: uint32(0xb6a28694),
  3311. 208: uint32(0x720f5bc4),
  3312. 209: uint32(0x2a8fb913),
  3313. 210: uint32(0x8309efb0),
  3314. 211: uint32(0xdb890d67),
  3315. 212: uint32(0x9002332d),
  3316. 213: uint32(0xc882d1fa),
  3317. 214: uint32(0x61048759),
  3318. 215: uint32(0x3984658e),
  3319. 216: uint32(0xf712facd),
  3320. 217: uint32(0xaf92181a),
  3321. 218: uint32(0x06144eb9),
  3322. 219: uint32(0x5e94ac6e),
  3323. 220: uint32(0x151f9224),
  3324. 221: uint32(0x4d9f70f3),
  3325. 222: uint32(0xe4192650),
  3326. 223: uint32(0xbc99c487),
  3327. 224: uint32(0x6c429df1),
  3328. 225: uint32(0x34c27f26),
  3329. 226: uint32(0x9d442985),
  3330. 227: uint32(0xc5c4cb52),
  3331. 228: uint32(0x8e4ff518),
  3332. 229: uint32(0xd6cf17cf),
  3333. 230: uint32(0x7f49416c),
  3334. 231: uint32(0x27c9a3bb),
  3335. 232: uint32(0xe95f3cf8),
  3336. 233: uint32(0xb1dfde2f),
  3337. 234: uint32(0x1859888c),
  3338. 235: uint32(0x40d96a5b),
  3339. 236: uint32(0x0b525411),
  3340. 237: uint32(0x53d2b6c6),
  3341. 238: uint32(0xfa54e065),
  3342. 239: uint32(0xa2d402b2),
  3343. 240: uint32(0x6679dfe2),
  3344. 241: uint32(0x3ef93d35),
  3345. 242: uint32(0x977f6b96),
  3346. 243: uint32(0xcfff8941),
  3347. 244: uint32(0x8474b70b),
  3348. 245: uint32(0xdcf455dc),
  3349. 246: uint32(0x7572037f),
  3350. 247: uint32(0x2df2e1a8),
  3351. 248: uint32(0xe3647eeb),
  3352. 249: uint32(0xbbe49c3c),
  3353. 250: uint32(0x1262ca9f),
  3354. 251: uint32(0x4ae22848),
  3355. 252: uint32(0x01691602),
  3356. 253: uint32(0x59e9f4d5),
  3357. 254: uint32(0xf06fa276),
  3358. 255: uint32(0xa8ef40a1),
  3359. },
  3360. 3: {
  3361. 1: uint32(0x463b6765),
  3362. 2: uint32(0x8c76ceca),
  3363. 3: uint32(0xca4da9af),
  3364. 4: uint32(0x59ebed4e),
  3365. 5: uint32(0x1fd08a2b),
  3366. 6: uint32(0xd59d2384),
  3367. 7: uint32(0x93a644e1),
  3368. 8: uint32(0xb2d6db9d),
  3369. 9: uint32(0xf4edbcf8),
  3370. 10: uint32(0x3ea01557),
  3371. 11: uint32(0x789b7232),
  3372. 12: uint32(0xeb3d36d3),
  3373. 13: uint32(0xad0651b6),
  3374. 14: uint32(0x674bf819),
  3375. 15: uint32(0x21709f7c),
  3376. 16: uint32(0x25abc6e0),
  3377. 17: uint32(0x6390a185),
  3378. 18: uint32(0xa9dd082a),
  3379. 19: uint32(0xefe66f4f),
  3380. 20: uint32(0x7c402bae),
  3381. 21: uint32(0x3a7b4ccb),
  3382. 22: uint32(0xf036e564),
  3383. 23: uint32(0xb60d8201),
  3384. 24: uint32(0x977d1d7d),
  3385. 25: uint32(0xd1467a18),
  3386. 26: uint32(0x1b0bd3b7),
  3387. 27: uint32(0x5d30b4d2),
  3388. 28: uint32(0xce96f033),
  3389. 29: uint32(0x88ad9756),
  3390. 30: uint32(0x42e03ef9),
  3391. 31: uint32(0x04db599c),
  3392. 32: uint32(0x0b50fc1a),
  3393. 33: uint32(0x4d6b9b7f),
  3394. 34: uint32(0x872632d0),
  3395. 35: uint32(0xc11d55b5),
  3396. 36: uint32(0x52bb1154),
  3397. 37: uint32(0x14807631),
  3398. 38: uint32(0xdecddf9e),
  3399. 39: uint32(0x98f6b8fb),
  3400. 40: uint32(0xb9862787),
  3401. 41: uint32(0xffbd40e2),
  3402. 42: uint32(0x35f0e94d),
  3403. 43: uint32(0x73cb8e28),
  3404. 44: uint32(0xe06dcac9),
  3405. 45: uint32(0xa656adac),
  3406. 46: uint32(0x6c1b0403),
  3407. 47: uint32(0x2a206366),
  3408. 48: uint32(0x2efb3afa),
  3409. 49: uint32(0x68c05d9f),
  3410. 50: uint32(0xa28df430),
  3411. 51: uint32(0xe4b69355),
  3412. 52: uint32(0x7710d7b4),
  3413. 53: uint32(0x312bb0d1),
  3414. 54: uint32(0xfb66197e),
  3415. 55: uint32(0xbd5d7e1b),
  3416. 56: uint32(0x9c2de167),
  3417. 57: uint32(0xda168602),
  3418. 58: uint32(0x105b2fad),
  3419. 59: uint32(0x566048c8),
  3420. 60: uint32(0xc5c60c29),
  3421. 61: uint32(0x83fd6b4c),
  3422. 62: uint32(0x49b0c2e3),
  3423. 63: uint32(0x0f8ba586),
  3424. 64: uint32(0x16a0f835),
  3425. 65: uint32(0x509b9f50),
  3426. 66: uint32(0x9ad636ff),
  3427. 67: uint32(0xdced519a),
  3428. 68: uint32(0x4f4b157b),
  3429. 69: uint32(0x0970721e),
  3430. 70: uint32(0xc33ddbb1),
  3431. 71: uint32(0x8506bcd4),
  3432. 72: uint32(0xa47623a8),
  3433. 73: uint32(0xe24d44cd),
  3434. 74: uint32(0x2800ed62),
  3435. 75: uint32(0x6e3b8a07),
  3436. 76: uint32(0xfd9dcee6),
  3437. 77: uint32(0xbba6a983),
  3438. 78: uint32(0x71eb002c),
  3439. 79: uint32(0x37d06749),
  3440. 80: uint32(0x330b3ed5),
  3441. 81: uint32(0x753059b0),
  3442. 82: uint32(0xbf7df01f),
  3443. 83: uint32(0xf946977a),
  3444. 84: uint32(0x6ae0d39b),
  3445. 85: uint32(0x2cdbb4fe),
  3446. 86: uint32(0xe6961d51),
  3447. 87: uint32(0xa0ad7a34),
  3448. 88: uint32(0x81dde548),
  3449. 89: uint32(0xc7e6822d),
  3450. 90: uint32(0x0dab2b82),
  3451. 91: uint32(0x4b904ce7),
  3452. 92: uint32(0xd8360806),
  3453. 93: uint32(0x9e0d6f63),
  3454. 94: uint32(0x5440c6cc),
  3455. 95: uint32(0x127ba1a9),
  3456. 96: uint32(0x1df0042f),
  3457. 97: uint32(0x5bcb634a),
  3458. 98: uint32(0x9186cae5),
  3459. 99: uint32(0xd7bdad80),
  3460. 100: uint32(0x441be961),
  3461. 101: uint32(0x02208e04),
  3462. 102: uint32(0xc86d27ab),
  3463. 103: uint32(0x8e5640ce),
  3464. 104: uint32(0xaf26dfb2),
  3465. 105: uint32(0xe91db8d7),
  3466. 106: uint32(0x23501178),
  3467. 107: uint32(0x656b761d),
  3468. 108: uint32(0xf6cd32fc),
  3469. 109: uint32(0xb0f65599),
  3470. 110: uint32(0x7abbfc36),
  3471. 111: uint32(0x3c809b53),
  3472. 112: uint32(0x385bc2cf),
  3473. 113: uint32(0x7e60a5aa),
  3474. 114: uint32(0xb42d0c05),
  3475. 115: uint32(0xf2166b60),
  3476. 116: uint32(0x61b02f81),
  3477. 117: uint32(0x278b48e4),
  3478. 118: uint32(0xedc6e14b),
  3479. 119: uint32(0xabfd862e),
  3480. 120: uint32(0x8a8d1952),
  3481. 121: uint32(0xccb67e37),
  3482. 122: uint32(0x06fbd798),
  3483. 123: uint32(0x40c0b0fd),
  3484. 124: uint32(0xd366f41c),
  3485. 125: uint32(0x955d9379),
  3486. 126: uint32(0x5f103ad6),
  3487. 127: uint32(0x192b5db3),
  3488. 128: uint32(0x2c40f16b),
  3489. 129: uint32(0x6a7b960e),
  3490. 130: uint32(0xa0363fa1),
  3491. 131: uint32(0xe60d58c4),
  3492. 132: uint32(0x75ab1c25),
  3493. 133: uint32(0x33907b40),
  3494. 134: uint32(0xf9ddd2ef),
  3495. 135: uint32(0xbfe6b58a),
  3496. 136: uint32(0x9e962af6),
  3497. 137: uint32(0xd8ad4d93),
  3498. 138: uint32(0x12e0e43c),
  3499. 139: uint32(0x54db8359),
  3500. 140: uint32(0xc77dc7b8),
  3501. 141: uint32(0x8146a0dd),
  3502. 142: uint32(0x4b0b0972),
  3503. 143: uint32(0x0d306e17),
  3504. 144: uint32(0x09eb378b),
  3505. 145: uint32(0x4fd050ee),
  3506. 146: uint32(0x859df941),
  3507. 147: uint32(0xc3a69e24),
  3508. 148: uint32(0x5000dac5),
  3509. 149: uint32(0x163bbda0),
  3510. 150: uint32(0xdc76140f),
  3511. 151: uint32(0x9a4d736a),
  3512. 152: uint32(0xbb3dec16),
  3513. 153: uint32(0xfd068b73),
  3514. 154: uint32(0x374b22dc),
  3515. 155: uint32(0x717045b9),
  3516. 156: uint32(0xe2d60158),
  3517. 157: uint32(0xa4ed663d),
  3518. 158: uint32(0x6ea0cf92),
  3519. 159: uint32(0x289ba8f7),
  3520. 160: uint32(0x27100d71),
  3521. 161: uint32(0x612b6a14),
  3522. 162: uint32(0xab66c3bb),
  3523. 163: uint32(0xed5da4de),
  3524. 164: uint32(0x7efbe03f),
  3525. 165: uint32(0x38c0875a),
  3526. 166: uint32(0xf28d2ef5),
  3527. 167: uint32(0xb4b64990),
  3528. 168: uint32(0x95c6d6ec),
  3529. 169: uint32(0xd3fdb189),
  3530. 170: uint32(0x19b01826),
  3531. 171: uint32(0x5f8b7f43),
  3532. 172: uint32(0xcc2d3ba2),
  3533. 173: uint32(0x8a165cc7),
  3534. 174: uint32(0x405bf568),
  3535. 175: uint32(0x0660920d),
  3536. 176: uint32(0x02bbcb91),
  3537. 177: uint32(0x4480acf4),
  3538. 178: uint32(0x8ecd055b),
  3539. 179: uint32(0xc8f6623e),
  3540. 180: uint32(0x5b5026df),
  3541. 181: uint32(0x1d6b41ba),
  3542. 182: uint32(0xd726e815),
  3543. 183: uint32(0x911d8f70),
  3544. 184: uint32(0xb06d100c),
  3545. 185: uint32(0xf6567769),
  3546. 186: uint32(0x3c1bdec6),
  3547. 187: uint32(0x7a20b9a3),
  3548. 188: uint32(0xe986fd42),
  3549. 189: uint32(0xafbd9a27),
  3550. 190: uint32(0x65f03388),
  3551. 191: uint32(0x23cb54ed),
  3552. 192: uint32(0x3ae0095e),
  3553. 193: uint32(0x7cdb6e3b),
  3554. 194: uint32(0xb696c794),
  3555. 195: uint32(0xf0ada0f1),
  3556. 196: uint32(0x630be410),
  3557. 197: uint32(0x25308375),
  3558. 198: uint32(0xef7d2ada),
  3559. 199: uint32(0xa9464dbf),
  3560. 200: uint32(0x8836d2c3),
  3561. 201: uint32(0xce0db5a6),
  3562. 202: uint32(0x04401c09),
  3563. 203: uint32(0x427b7b6c),
  3564. 204: uint32(0xd1dd3f8d),
  3565. 205: uint32(0x97e658e8),
  3566. 206: uint32(0x5dabf147),
  3567. 207: uint32(0x1b909622),
  3568. 208: uint32(0x1f4bcfbe),
  3569. 209: uint32(0x5970a8db),
  3570. 210: uint32(0x933d0174),
  3571. 211: uint32(0xd5066611),
  3572. 212: uint32(0x46a022f0),
  3573. 213: uint32(0x009b4595),
  3574. 214: uint32(0xcad6ec3a),
  3575. 215: uint32(0x8ced8b5f),
  3576. 216: uint32(0xad9d1423),
  3577. 217: uint32(0xeba67346),
  3578. 218: uint32(0x21ebdae9),
  3579. 219: uint32(0x67d0bd8c),
  3580. 220: uint32(0xf476f96d),
  3581. 221: uint32(0xb24d9e08),
  3582. 222: uint32(0x780037a7),
  3583. 223: uint32(0x3e3b50c2),
  3584. 224: uint32(0x31b0f544),
  3585. 225: uint32(0x778b9221),
  3586. 226: uint32(0xbdc63b8e),
  3587. 227: uint32(0xfbfd5ceb),
  3588. 228: uint32(0x685b180a),
  3589. 229: uint32(0x2e607f6f),
  3590. 230: uint32(0xe42dd6c0),
  3591. 231: uint32(0xa216b1a5),
  3592. 232: uint32(0x83662ed9),
  3593. 233: uint32(0xc55d49bc),
  3594. 234: uint32(0x0f10e013),
  3595. 235: uint32(0x492b8776),
  3596. 236: uint32(0xda8dc397),
  3597. 237: uint32(0x9cb6a4f2),
  3598. 238: uint32(0x56fb0d5d),
  3599. 239: uint32(0x10c06a38),
  3600. 240: uint32(0x141b33a4),
  3601. 241: uint32(0x522054c1),
  3602. 242: uint32(0x986dfd6e),
  3603. 243: uint32(0xde569a0b),
  3604. 244: uint32(0x4df0deea),
  3605. 245: uint32(0x0bcbb98f),
  3606. 246: uint32(0xc1861020),
  3607. 247: uint32(0x87bd7745),
  3608. 248: uint32(0xa6cde839),
  3609. 249: uint32(0xe0f68f5c),
  3610. 250: uint32(0x2abb26f3),
  3611. 251: uint32(0x6c804196),
  3612. 252: uint32(0xff260577),
  3613. 253: uint32(0xb91d6212),
  3614. 254: uint32(0x7350cbbd),
  3615. 255: uint32(0x356bacd8),
  3616. },
  3617. }
  3618. var _x2n_table = [32]Tz_crc_t{
  3619. 0: uint32(0x40000000),
  3620. 1: uint32(0x20000000),
  3621. 2: uint32(0x08000000),
  3622. 3: uint32(0x00800000),
  3623. 4: uint32(0x00008000),
  3624. 5: uint32(0xedb88320),
  3625. 6: uint32(0xb1e6b092),
  3626. 7: uint32(0xa06a2517),
  3627. 8: uint32(0xed627dae),
  3628. 9: uint32(0x88d14467),
  3629. 10: uint32(0xd7bbfe6a),
  3630. 11: uint32(0xec447f11),
  3631. 12: uint32(0x8e7ea170),
  3632. 13: uint32(0x6427800e),
  3633. 14: uint32(0x4d47bae0),
  3634. 15: uint32(0x09fe548f),
  3635. 16: uint32(0x83852d0f),
  3636. 17: uint32(0x30362f1a),
  3637. 18: uint32(0x7b5a9cc3),
  3638. 19: uint32(0x31fec169),
  3639. 20: uint32(0x9fec022a),
  3640. 21: uint32(0x6c8dedc4),
  3641. 22: uint32(0x15d6874d),
  3642. 23: uint32(0x5fde7a4e),
  3643. 24: uint32(0xbad90e37),
  3644. 25: uint32(0x2e4e5eef),
  3645. 26: uint32(0x4eaba214),
  3646. 27: uint32(0xa8a472c0),
  3647. 28: uint32(0x429a969e),
  3648. 29: uint32(0x148d302a),
  3649. 30: uint32(0xc40ba6d0),
  3650. 31: uint32(0xc4e22c3c),
  3651. }
  3652. /* CRC polynomial. */
  3653. // C documentation
  3654. //
  3655. // /*
  3656. // Return a(x) multiplied by b(x) modulo p(x), where p(x) is the CRC polynomial,
  3657. // reflected. For speed, this requires that a not be zero.
  3658. // */
  3659. func _multmodp(tls *libc.TLS, a Tz_crc_t, b Tz_crc_t) (r Tz_crc_t) {
  3660. var m, p Tz_crc_t
  3661. var v2 uint32
  3662. _, _, _ = m, p, v2
  3663. m = libc.Uint32FromInt32(1) << libc.Int32FromInt32(31)
  3664. p = uint32(0)
  3665. for {
  3666. if a&m != 0 {
  3667. p ^= b
  3668. if a&(m-uint32(1)) == uint32(0) {
  3669. break
  3670. }
  3671. }
  3672. m >>= uint32(1)
  3673. if b&uint32(1) != 0 {
  3674. v2 = b>>libc.Int32FromInt32(1) ^ uint32(m_POLY)
  3675. } else {
  3676. v2 = b >> int32(1)
  3677. }
  3678. b = v2
  3679. goto _1
  3680. _1:
  3681. }
  3682. return p
  3683. }
  3684. // C documentation
  3685. //
  3686. // /*
  3687. // Return x^(n * 2^k) modulo p(x). Requires that x2n_table[] has been
  3688. // initialized.
  3689. // */
  3690. func _x2nmodp(tls *libc.TLS, n int32, k uint32) (r Tz_crc_t) {
  3691. var p Tz_crc_t
  3692. _ = p
  3693. p = libc.Uint32FromInt32(1) << libc.Int32FromInt32(31) /* x^0 == 1 */
  3694. for n != 0 {
  3695. if n&int32(1) != 0 {
  3696. p = _multmodp(tls, _x2n_table[k&uint32(31)], p)
  3697. }
  3698. n >>= int32(1)
  3699. k++
  3700. }
  3701. return p
  3702. }
  3703. // C documentation
  3704. //
  3705. // /* =========================================================================
  3706. // * This function can be used by asm versions of crc32(), and to force the
  3707. // * generation of the CRC tables in a threaded application.
  3708. // */
  3709. func Xget_crc_table(tls *libc.TLS) (r uintptr) {
  3710. return uintptr(unsafe.Pointer(&_crc_table))
  3711. }
  3712. /* =========================================================================
  3713. * Use ARM machine instructions if available. This will compute the CRC about
  3714. * ten times faster than the braided calculation. This code does not check for
  3715. * the presence of the CRC instruction at run time. __ARM_FEATURE_CRC32 will
  3716. * only be defined if the compilation specifies an ARM processor architecture
  3717. * that has the instructions. For example, compiling with -march=armv8.1-a or
  3718. * -march=armv8-a+crc, or -march=native if the compile machine has the crc32
  3719. * instructions.
  3720. */
  3721. // C documentation
  3722. //
  3723. // /*
  3724. // Return the CRC of the W bytes in the word_t data, taking the
  3725. // least-significant byte of the word as the first byte of data, without any pre
  3726. // or post conditioning. This is used to combine the CRCs of each braid.
  3727. // */
  3728. func _crc_word(tls *libc.TLS, data Tz_word_t) (r Tz_crc_t) {
  3729. var k int32
  3730. _ = k
  3731. k = 0
  3732. for {
  3733. if !(k < int32(4)) {
  3734. break
  3735. }
  3736. data = data>>libc.Int32FromInt32(8) ^ _crc_table[data&uint32(0xff)]
  3737. goto _1
  3738. _1:
  3739. ;
  3740. k++
  3741. }
  3742. return data
  3743. }
  3744. func _crc_word_big(tls *libc.TLS, data Tz_word_t) (r Tz_word_t) {
  3745. var k int32
  3746. _ = k
  3747. k = 0
  3748. for {
  3749. if !(k < int32(4)) {
  3750. break
  3751. }
  3752. data = data<<libc.Int32FromInt32(8) ^ _crc_big_table[data>>((libc.Int32FromInt32(4)-libc.Int32FromInt32(1))<<libc.Int32FromInt32(3))&uint32(0xff)]
  3753. goto _1
  3754. _1:
  3755. ;
  3756. k++
  3757. }
  3758. return data
  3759. }
  3760. // C documentation
  3761. //
  3762. // /* ========================================================================= */
  3763. func Xcrc32_z(tls *libc.TLS, crc uint32, buf uintptr, len1 Tz_size_t) (r uint32) {
  3764. bp := tls.Alloc(16)
  3765. defer tls.Free(16)
  3766. var blks, v2, v4 Tz_size_t
  3767. var comb, crc01, crc11, crc21, crc31, crc41, word0, word01, word1, word11, word2, word21, word3, word31, word4, word41 Tz_word_t
  3768. var crc0, crc1, crc2, crc3, crc4 Tz_crc_t
  3769. var k int32
  3770. var words, v1, v10, v11, v12, v13, v14, v6, v7, v8, v9 uintptr
  3771. var _ /* endian at bp+0 */ uint32
  3772. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  3773. /* Return initial CRC, if requested. */
  3774. if buf == uintptr(m_Z_NULL) {
  3775. return uint32(0)
  3776. }
  3777. /* Pre-condition the CRC */
  3778. crc = ^crc & uint32(0xffffffff)
  3779. /* If provided enough bytes, do a braided CRC calculation. */
  3780. if len1 >= uint32(libc.Int32FromInt32(m_N)*libc.Int32FromInt32(4)+libc.Int32FromInt32(4)-libc.Int32FromInt32(1)) {
  3781. /* Compute the CRC up to a z_word_t boundary. */
  3782. for len1 != 0 && uint32(buf)&uint32(libc.Int32FromInt32(4)-libc.Int32FromInt32(1)) != uint32(0) {
  3783. len1--
  3784. v1 = buf
  3785. buf++
  3786. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v1))))&uint32(0xff)]
  3787. }
  3788. /* Compute the CRC on as many N z_word_t blocks as are available. */
  3789. blks = len1 / uint32(libc.Int32FromInt32(m_N)*libc.Int32FromInt32(4))
  3790. len1 -= blks * uint32(m_N) * uint32(4)
  3791. words = buf
  3792. /* Do endian check at execution time instead of compile time, since ARM
  3793. processors can change the endianness at execution time. If the
  3794. compiler knows what the endianness will be, it can optimize out the
  3795. check and the unused branch. */
  3796. *(*uint32)(unsafe.Pointer(bp)) = uint32(1)
  3797. if *(*uint8)(unsafe.Pointer(bp)) != 0 {
  3798. /* Initialize the CRC for each braid. */
  3799. crc0 = crc
  3800. crc1 = uint32(0)
  3801. crc2 = uint32(0)
  3802. crc3 = uint32(0)
  3803. crc4 = uint32(0)
  3804. /*
  3805. Process the first blks-1 blocks, computing the CRCs on each braid
  3806. independently.
  3807. */
  3808. for {
  3809. blks--
  3810. v2 = blks
  3811. if !(v2 != 0) {
  3812. break
  3813. }
  3814. /* Load the word for each braid into registers. */
  3815. word0 = crc0 ^ *(*Tz_word_t)(unsafe.Pointer(words))
  3816. word1 = crc1 ^ *(*Tz_word_t)(unsafe.Pointer(words + 1*4))
  3817. word2 = crc2 ^ *(*Tz_word_t)(unsafe.Pointer(words + 2*4))
  3818. word3 = crc3 ^ *(*Tz_word_t)(unsafe.Pointer(words + 3*4))
  3819. word4 = crc4 ^ *(*Tz_word_t)(unsafe.Pointer(words + 4*4))
  3820. words += uintptr(m_N) * 4
  3821. /* Compute and update the CRC for each word. The loop should
  3822. get unrolled. */
  3823. crc0 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word0&uint32(0xff))*4))
  3824. crc1 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word1&uint32(0xff))*4))
  3825. crc2 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word2&uint32(0xff))*4))
  3826. crc3 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word3&uint32(0xff))*4))
  3827. crc4 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word4&uint32(0xff))*4))
  3828. k = int32(1)
  3829. for {
  3830. if !(k < int32(4)) {
  3831. break
  3832. }
  3833. crc0 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word0>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  3834. crc1 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word1>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  3835. crc2 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word2>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  3836. crc3 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word3>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  3837. crc4 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word4>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  3838. goto _3
  3839. _3:
  3840. ;
  3841. k++
  3842. }
  3843. }
  3844. /*
  3845. Process the last block, combining the CRCs of the N braids at the
  3846. same time.
  3847. */
  3848. crc = _crc_word(tls, crc0^*(*Tz_word_t)(unsafe.Pointer(words)))
  3849. crc = _crc_word(tls, crc1^*(*Tz_word_t)(unsafe.Pointer(words + 1*4))^crc)
  3850. crc = _crc_word(tls, crc2^*(*Tz_word_t)(unsafe.Pointer(words + 2*4))^crc)
  3851. crc = _crc_word(tls, crc3^*(*Tz_word_t)(unsafe.Pointer(words + 3*4))^crc)
  3852. crc = _crc_word(tls, crc4^*(*Tz_word_t)(unsafe.Pointer(words + 4*4))^crc)
  3853. words += uintptr(m_N) * 4
  3854. } else {
  3855. /* Initialize the CRC for each braid. */
  3856. crc01 = _byte_swap(tls, crc)
  3857. crc11 = uint32(0)
  3858. crc21 = uint32(0)
  3859. crc31 = uint32(0)
  3860. crc41 = uint32(0)
  3861. /*
  3862. Process the first blks-1 blocks, computing the CRCs on each braid
  3863. independently.
  3864. */
  3865. for {
  3866. blks--
  3867. v4 = blks
  3868. if !(v4 != 0) {
  3869. break
  3870. }
  3871. /* Load the word for each braid into registers. */
  3872. word01 = crc01 ^ *(*Tz_word_t)(unsafe.Pointer(words))
  3873. word11 = crc11 ^ *(*Tz_word_t)(unsafe.Pointer(words + 1*4))
  3874. word21 = crc21 ^ *(*Tz_word_t)(unsafe.Pointer(words + 2*4))
  3875. word31 = crc31 ^ *(*Tz_word_t)(unsafe.Pointer(words + 3*4))
  3876. word41 = crc41 ^ *(*Tz_word_t)(unsafe.Pointer(words + 4*4))
  3877. words += uintptr(m_N) * 4
  3878. /* Compute and update the CRC for each word. The loop should
  3879. get unrolled. */
  3880. crc01 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word01&uint32(0xff))*4))
  3881. crc11 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word11&uint32(0xff))*4))
  3882. crc21 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word21&uint32(0xff))*4))
  3883. crc31 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word31&uint32(0xff))*4))
  3884. crc41 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word41&uint32(0xff))*4))
  3885. k = int32(1)
  3886. for {
  3887. if !(k < int32(4)) {
  3888. break
  3889. }
  3890. 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))
  3891. 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))
  3892. 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))
  3893. 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))
  3894. 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))
  3895. goto _5
  3896. _5:
  3897. ;
  3898. k++
  3899. }
  3900. }
  3901. /*
  3902. Process the last block, combining the CRCs of the N braids at the
  3903. same time.
  3904. */
  3905. comb = _crc_word_big(tls, crc01^*(*Tz_word_t)(unsafe.Pointer(words)))
  3906. comb = _crc_word_big(tls, crc11^*(*Tz_word_t)(unsafe.Pointer(words + 1*4))^comb)
  3907. comb = _crc_word_big(tls, crc21^*(*Tz_word_t)(unsafe.Pointer(words + 2*4))^comb)
  3908. comb = _crc_word_big(tls, crc31^*(*Tz_word_t)(unsafe.Pointer(words + 3*4))^comb)
  3909. comb = _crc_word_big(tls, crc41^*(*Tz_word_t)(unsafe.Pointer(words + 4*4))^comb)
  3910. words += uintptr(m_N) * 4
  3911. crc = _byte_swap(tls, comb)
  3912. }
  3913. /*
  3914. Update the pointer to the remaining bytes to process.
  3915. */
  3916. buf = words
  3917. }
  3918. /* Complete the computation of the CRC on any remaining bytes. */
  3919. for len1 >= uint32(8) {
  3920. len1 -= uint32(8)
  3921. v6 = buf
  3922. buf++
  3923. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v6))))&uint32(0xff)]
  3924. v7 = buf
  3925. buf++
  3926. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v7))))&uint32(0xff)]
  3927. v8 = buf
  3928. buf++
  3929. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v8))))&uint32(0xff)]
  3930. v9 = buf
  3931. buf++
  3932. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v9))))&uint32(0xff)]
  3933. v10 = buf
  3934. buf++
  3935. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v10))))&uint32(0xff)]
  3936. v11 = buf
  3937. buf++
  3938. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v11))))&uint32(0xff)]
  3939. v12 = buf
  3940. buf++
  3941. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v12))))&uint32(0xff)]
  3942. v13 = buf
  3943. buf++
  3944. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v13))))&uint32(0xff)]
  3945. }
  3946. for len1 != 0 {
  3947. len1--
  3948. v14 = buf
  3949. buf++
  3950. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v14))))&uint32(0xff)]
  3951. }
  3952. /* Return the CRC, post-conditioned. */
  3953. return crc ^ uint32(0xffffffff)
  3954. }
  3955. // C documentation
  3956. //
  3957. // /* ========================================================================= */
  3958. func Xcrc32(tls *libc.TLS, crc uint32, buf uintptr, len1 TuInt) (r uint32) {
  3959. return Xcrc32_z(tls, crc, buf, len1)
  3960. }
  3961. // C documentation
  3962. //
  3963. // /* ========================================================================= */
  3964. func Xcrc32_combine64(tls *libc.TLS, crc1 TuLong, crc2 TuLong, len2 int32) (r TuLong) {
  3965. return _multmodp(tls, _x2nmodp(tls, len2, uint32(3)), crc1) ^ crc2&uint32(0xffffffff)
  3966. }
  3967. // C documentation
  3968. //
  3969. // /* ========================================================================= */
  3970. func Xcrc32_combine(tls *libc.TLS, crc1 TuLong, crc2 TuLong, len2 int32) (r TuLong) {
  3971. return Xcrc32_combine64(tls, crc1, crc2, len2)
  3972. }
  3973. // C documentation
  3974. //
  3975. // /* ========================================================================= */
  3976. func Xcrc32_combine_gen64(tls *libc.TLS, len2 int32) (r TuLong) {
  3977. return _x2nmodp(tls, len2, uint32(3))
  3978. }
  3979. // C documentation
  3980. //
  3981. // /* ========================================================================= */
  3982. func Xcrc32_combine_gen(tls *libc.TLS, len2 int32) (r TuLong) {
  3983. return Xcrc32_combine_gen64(tls, len2)
  3984. }
  3985. // C documentation
  3986. //
  3987. // /* ========================================================================= */
  3988. func Xcrc32_combine_op(tls *libc.TLS, crc1 TuLong, crc2 TuLong, op TuLong) (r TuLong) {
  3989. return _multmodp(tls, op, crc1) ^ crc2&uint32(0xffffffff)
  3990. }
  3991. const m_BL_CODES = 19
  3992. const m_BUSY_STATE = 113
  3993. const m_Buf_size = 16
  3994. const m_COMMENT_STATE = 91
  3995. const m_D_CODES = 30
  3996. const m_EXTRA_STATE = 69
  3997. const m_FINISH_STATE = 666
  3998. const m_GZIP_STATE = 57
  3999. const m_HCRC_STATE = 103
  4000. const m_INIT_STATE = 42
  4001. const m_LENGTH_CODES = 29
  4002. const m_LITERALS = 256
  4003. const m_LIT_BUFS = 4
  4004. const m_MAX_BITS = 15
  4005. const m_MAX_STORED = 65535
  4006. const m_NAME_STATE = 73
  4007. const m_NIL = 0
  4008. const m_PRESET_DICT1 = 32
  4009. const m_TOO_FAR = 4096
  4010. const m_WIN_INIT = "MAX_MATCH"
  4011. const m_max_insert_length = "max_lazy_match"
  4012. type Tinternal_state = struct {
  4013. Fstrm Tz_streamp
  4014. Fstatus int32
  4015. Fpending_buf uintptr
  4016. Fpending_buf_size Tulg
  4017. Fpending_out uintptr
  4018. Fpending Tulg
  4019. Fwrap int32
  4020. Fgzhead Tgz_headerp
  4021. Fgzindex Tulg
  4022. Fmethod TByte
  4023. Flast_flush int32
  4024. Fw_size TuInt
  4025. Fw_bits TuInt
  4026. Fw_mask TuInt
  4027. Fwindow uintptr
  4028. Fwindow_size Tulg
  4029. Fprev uintptr
  4030. Fhead uintptr
  4031. Fins_h TuInt
  4032. Fhash_size TuInt
  4033. Fhash_bits TuInt
  4034. Fhash_mask TuInt
  4035. Fhash_shift TuInt
  4036. Fblock_start int32
  4037. Fmatch_length TuInt
  4038. Fprev_match TIPos
  4039. Fmatch_available int32
  4040. Fstrstart TuInt
  4041. Fmatch_start TuInt
  4042. Flookahead TuInt
  4043. Fprev_length TuInt
  4044. Fmax_chain_length TuInt
  4045. Fmax_lazy_match TuInt
  4046. Flevel int32
  4047. Fstrategy int32
  4048. Fgood_match TuInt
  4049. Fnice_match int32
  4050. Fdyn_ltree [573]Tct_data_s
  4051. Fdyn_dtree [61]Tct_data_s
  4052. Fbl_tree [39]Tct_data_s
  4053. Fl_desc Ttree_desc_s
  4054. Fd_desc Ttree_desc_s
  4055. Fbl_desc Ttree_desc_s
  4056. Fbl_count [16]Tush
  4057. Fheap [573]int32
  4058. Fheap_len int32
  4059. Fheap_max int32
  4060. Fdepth [573]Tuch
  4061. Fsym_buf uintptr
  4062. Flit_bufsize TuInt
  4063. Fsym_next TuInt
  4064. Fsym_end TuInt
  4065. Fopt_len Tulg
  4066. Fstatic_len Tulg
  4067. Fmatches TuInt
  4068. Finsert TuInt
  4069. Fbi_buf Tush
  4070. Fbi_valid int32
  4071. Fhigh_water Tulg
  4072. }
  4073. type Tct_data = struct {
  4074. Ffc struct {
  4075. Fcode [0]Tush
  4076. Ffreq Tush
  4077. }
  4078. Fdl struct {
  4079. Flen1 [0]Tush
  4080. Fdad Tush
  4081. }
  4082. }
  4083. type Tct_data_s = Tct_data
  4084. type Ttree_desc = struct {
  4085. Fdyn_tree uintptr
  4086. Fmax_code int32
  4087. Fstat_desc uintptr
  4088. }
  4089. type Ttree_desc_s = Ttree_desc
  4090. type TPos = uint16
  4091. type TPosf = uint16
  4092. type TIPos = uint32
  4093. type Tdeflate_state = struct {
  4094. Fstrm Tz_streamp
  4095. Fstatus int32
  4096. Fpending_buf uintptr
  4097. Fpending_buf_size Tulg
  4098. Fpending_out uintptr
  4099. Fpending Tulg
  4100. Fwrap int32
  4101. Fgzhead Tgz_headerp
  4102. Fgzindex Tulg
  4103. Fmethod TByte
  4104. Flast_flush int32
  4105. Fw_size TuInt
  4106. Fw_bits TuInt
  4107. Fw_mask TuInt
  4108. Fwindow uintptr
  4109. Fwindow_size Tulg
  4110. Fprev uintptr
  4111. Fhead uintptr
  4112. Fins_h TuInt
  4113. Fhash_size TuInt
  4114. Fhash_bits TuInt
  4115. Fhash_mask TuInt
  4116. Fhash_shift TuInt
  4117. Fblock_start int32
  4118. Fmatch_length TuInt
  4119. Fprev_match TIPos
  4120. Fmatch_available int32
  4121. Fstrstart TuInt
  4122. Fmatch_start TuInt
  4123. Flookahead TuInt
  4124. Fprev_length TuInt
  4125. Fmax_chain_length TuInt
  4126. Fmax_lazy_match TuInt
  4127. Flevel int32
  4128. Fstrategy int32
  4129. Fgood_match TuInt
  4130. Fnice_match int32
  4131. Fdyn_ltree [573]Tct_data_s
  4132. Fdyn_dtree [61]Tct_data_s
  4133. Fbl_tree [39]Tct_data_s
  4134. Fl_desc Ttree_desc_s
  4135. Fd_desc Ttree_desc_s
  4136. Fbl_desc Ttree_desc_s
  4137. Fbl_count [16]Tush
  4138. Fheap [573]int32
  4139. Fheap_len int32
  4140. Fheap_max int32
  4141. Fdepth [573]Tuch
  4142. Fsym_buf uintptr
  4143. Flit_bufsize TuInt
  4144. Fsym_next TuInt
  4145. Fsym_end TuInt
  4146. Fopt_len Tulg
  4147. Fstatic_len Tulg
  4148. Fmatches TuInt
  4149. Finsert TuInt
  4150. Fbi_buf Tush
  4151. Fbi_valid int32
  4152. Fhigh_water Tulg
  4153. }
  4154. /*
  4155. If you use the zlib library in a product, an acknowledgment is welcome
  4156. in the documentation of your product. If for some reason you cannot
  4157. include such an acknowledgment, I would appreciate that you keep this
  4158. copyright string in the executable of your product.
  4159. */
  4160. type Tblock_state = int32
  4161. const _need_more = 0
  4162. const /* block not completed, need more input or more output */
  4163. _block_done = 1
  4164. const /* block flush performed */
  4165. _finish_started = 2
  4166. const /* finish started, need only more output at next deflate */
  4167. _finish_done = 3
  4168. type Tcompress_func = uintptr
  4169. /* ===========================================================================
  4170. * Local data
  4171. */
  4172. /* Tail of hash chains */
  4173. /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
  4174. // C documentation
  4175. //
  4176. // /* Values for max_lazy_match, good_match and max_chain_length, depending on
  4177. // * the desired pack level (0..9). The values given below have been tuned to
  4178. // * exclude worst case performance for pathological files. Better values may be
  4179. // * found for specific files.
  4180. // */
  4181. type Tconfig = struct {
  4182. Fgood_length Tush
  4183. Fmax_lazy Tush
  4184. Fnice_length Tush
  4185. Fmax_chain Tush
  4186. Ffunc1 Tcompress_func
  4187. }
  4188. /* ===========================================================================
  4189. * Local data
  4190. */
  4191. /* Tail of hash chains */
  4192. /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
  4193. // C documentation
  4194. //
  4195. // /* Values for max_lazy_match, good_match and max_chain_length, depending on
  4196. // * the desired pack level (0..9). The values given below have been tuned to
  4197. // * exclude worst case performance for pathological files. Better values may be
  4198. // * found for specific files.
  4199. // */
  4200. type Tconfig_s = Tconfig
  4201. var _configuration_table = [10]Tconfig{
  4202. 0: {},
  4203. 1: {
  4204. Fgood_length: uint16(4),
  4205. Fmax_lazy: uint16(4),
  4206. Fnice_length: uint16(8),
  4207. Fmax_chain: uint16(4),
  4208. },
  4209. 2: {
  4210. Fgood_length: uint16(4),
  4211. Fmax_lazy: uint16(5),
  4212. Fnice_length: uint16(16),
  4213. Fmax_chain: uint16(8),
  4214. },
  4215. 3: {
  4216. Fgood_length: uint16(4),
  4217. Fmax_lazy: uint16(6),
  4218. Fnice_length: uint16(32),
  4219. Fmax_chain: uint16(32),
  4220. },
  4221. 4: {
  4222. Fgood_length: uint16(4),
  4223. Fmax_lazy: uint16(4),
  4224. Fnice_length: uint16(16),
  4225. Fmax_chain: uint16(16),
  4226. },
  4227. 5: {
  4228. Fgood_length: uint16(8),
  4229. Fmax_lazy: uint16(16),
  4230. Fnice_length: uint16(32),
  4231. Fmax_chain: uint16(32),
  4232. },
  4233. 6: {
  4234. Fgood_length: uint16(8),
  4235. Fmax_lazy: uint16(16),
  4236. Fnice_length: uint16(128),
  4237. Fmax_chain: uint16(128),
  4238. },
  4239. 7: {
  4240. Fgood_length: uint16(8),
  4241. Fmax_lazy: uint16(32),
  4242. Fnice_length: uint16(128),
  4243. Fmax_chain: uint16(256),
  4244. },
  4245. 8: {
  4246. Fgood_length: uint16(32),
  4247. Fmax_lazy: uint16(128),
  4248. Fnice_length: uint16(258),
  4249. Fmax_chain: uint16(1024),
  4250. },
  4251. 9: {
  4252. Fgood_length: uint16(32),
  4253. Fmax_lazy: uint16(258),
  4254. Fnice_length: uint16(258),
  4255. Fmax_chain: uint16(4096),
  4256. },
  4257. }
  4258. func init() {
  4259. p := unsafe.Pointer(&_configuration_table)
  4260. *(*uintptr)(unsafe.Add(p, 8)) = __ccgo_fp(_deflate_stored)
  4261. *(*uintptr)(unsafe.Add(p, 20)) = __ccgo_fp(_deflate_fast)
  4262. *(*uintptr)(unsafe.Add(p, 32)) = __ccgo_fp(_deflate_fast)
  4263. *(*uintptr)(unsafe.Add(p, 44)) = __ccgo_fp(_deflate_fast)
  4264. *(*uintptr)(unsafe.Add(p, 56)) = __ccgo_fp(_deflate_slow)
  4265. *(*uintptr)(unsafe.Add(p, 68)) = __ccgo_fp(_deflate_slow)
  4266. *(*uintptr)(unsafe.Add(p, 80)) = __ccgo_fp(_deflate_slow)
  4267. *(*uintptr)(unsafe.Add(p, 92)) = __ccgo_fp(_deflate_slow)
  4268. *(*uintptr)(unsafe.Add(p, 104)) = __ccgo_fp(_deflate_slow)
  4269. *(*uintptr)(unsafe.Add(p, 116)) = __ccgo_fp(_deflate_slow)
  4270. }
  4271. /* max compression */
  4272. /* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4
  4273. * For deflate_fast() (levels <= 3) good is ignored and lazy has a different
  4274. * meaning.
  4275. */
  4276. /* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */
  4277. /* ===========================================================================
  4278. * Update a hash value with the given input byte
  4279. * IN assertion: all calls to UPDATE_HASH are made with consecutive input
  4280. * characters, so that a running hash key can be computed from the previous
  4281. * key instead of complete recalculation each time.
  4282. */
  4283. /* ===========================================================================
  4284. * Insert string str in the dictionary and set match_head to the previous head
  4285. * of the hash chain (the most recent string with same hash key). Return
  4286. * the previous length of the hash chain.
  4287. * If this file is compiled with -DFASTEST, the compression level is forced
  4288. * to 1, and no hash chains are maintained.
  4289. * IN assertion: all calls to INSERT_STRING are made with consecutive input
  4290. * characters and the first MIN_MATCH bytes of str are valid (except for
  4291. * the last MIN_MATCH-1 bytes of the input file).
  4292. */
  4293. /* ===========================================================================
  4294. * Initialize the hash table (avoiding 64K overflow for 16 bit systems).
  4295. * prev[] will be initialized on the fly.
  4296. */
  4297. // C documentation
  4298. //
  4299. // /* ===========================================================================
  4300. // * Slide the hash table when sliding the window down (could be avoided with 32
  4301. // * bit values at the expense of memory usage). We slide even when level == 0 to
  4302. // * keep the hash table consistent if we switch back to level > 0 later.
  4303. // */
  4304. func _slide_hash(tls *libc.TLS, s uintptr) {
  4305. var m, n, v1, v4, v5, v8 uint32
  4306. var p, v3, v7 uintptr
  4307. var wsize TuInt
  4308. _, _, _, _, _, _, _, _, _, _ = m, n, p, wsize, v1, v3, v4, v5, v7, v8
  4309. wsize = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4310. n = (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size
  4311. p = (*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr(n)*2
  4312. for {
  4313. p -= 2
  4314. v3 = p
  4315. m = uint32(*(*TPosf)(unsafe.Pointer(v3)))
  4316. if m >= wsize {
  4317. v4 = m - wsize
  4318. } else {
  4319. v4 = uint32(m_NIL)
  4320. }
  4321. *(*TPosf)(unsafe.Pointer(p)) = uint16(v4)
  4322. goto _2
  4323. _2:
  4324. ;
  4325. n--
  4326. v1 = n
  4327. if !(v1 != 0) {
  4328. break
  4329. }
  4330. }
  4331. n = wsize
  4332. p = (*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr(n)*2
  4333. for {
  4334. p -= 2
  4335. v7 = p
  4336. m = uint32(*(*TPosf)(unsafe.Pointer(v7)))
  4337. if m >= wsize {
  4338. v8 = m - wsize
  4339. } else {
  4340. v8 = uint32(m_NIL)
  4341. }
  4342. *(*TPosf)(unsafe.Pointer(p)) = uint16(v8)
  4343. /* If n is not on any hash chain, prev[n] is garbage but
  4344. * its value will never be used.
  4345. */
  4346. goto _6
  4347. _6:
  4348. ;
  4349. n--
  4350. v5 = n
  4351. if !(v5 != 0) {
  4352. break
  4353. }
  4354. }
  4355. }
  4356. // C documentation
  4357. //
  4358. // /* ===========================================================================
  4359. // * Read a new buffer from the current input stream, update the adler32
  4360. // * and total number of bytes read. All deflate() input goes through
  4361. // * this function so some applications may wish to modify it to avoid
  4362. // * allocating a large strm->next_in buffer and copying from it.
  4363. // * (See also flush_pending()).
  4364. // */
  4365. func _read_buf(tls *libc.TLS, strm Tz_streamp, buf uintptr, size uint32) (r uint32) {
  4366. var len1 uint32
  4367. _ = len1
  4368. len1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  4369. if len1 > size {
  4370. len1 = size
  4371. }
  4372. if len1 == uint32(0) {
  4373. return uint32(0)
  4374. }
  4375. *(*TuInt)(unsafe.Pointer(strm + 4)) -= len1
  4376. libc.Xmemcpy(tls, buf, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, len1)
  4377. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap == int32(1) {
  4378. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, buf, len1)
  4379. } else {
  4380. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap == int32(2) {
  4381. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, buf, len1)
  4382. }
  4383. }
  4384. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(len1)
  4385. *(*TuLong)(unsafe.Pointer(strm + 8)) += len1
  4386. return len1
  4387. }
  4388. // C documentation
  4389. //
  4390. // /* ===========================================================================
  4391. // * Fill the window when the lookahead becomes insufficient.
  4392. // * Updates strstart and lookahead.
  4393. // *
  4394. // * IN assertion: lookahead < MIN_LOOKAHEAD
  4395. // * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
  4396. // * At least one byte has been read, or avail_in == 0; reads are
  4397. // * performed for at least two bytes (required for the zip translate_eol
  4398. // * option -- not supported here).
  4399. // */
  4400. func _fill_window(tls *libc.TLS, s uintptr) {
  4401. var curr, init1 Tulg
  4402. var more, n uint32
  4403. var str, wsize TuInt
  4404. _, _, _, _, _, _ = curr, init1, more, n, str, wsize /* Amount of free space at the end of the window. */
  4405. wsize = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4406. for cond := true; cond; cond = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in != uint32(0) {
  4407. more = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  4408. /* Deal with !@#$% 64K limit: */
  4409. if uint32(4) <= uint32(2) {
  4410. if more == uint32(0) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart == uint32(0) && (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  4411. more = wsize
  4412. } else {
  4413. if more == uint32(-libc.Int32FromInt32(1)) {
  4414. /* Very unlikely, but possible on 16 bit machine if
  4415. * strstart == 0 && lookahead == 1 (input done a byte at time)
  4416. */
  4417. more--
  4418. }
  4419. }
  4420. }
  4421. /* If the window is almost full and there is insufficient lookahead,
  4422. * move the upper half to the lower one to make room in the upper half.
  4423. */
  4424. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart >= wsize+((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1))) {
  4425. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr(wsize), wsize-more)
  4426. *(*TuInt)(unsafe.Pointer(s + 112)) -= wsize
  4427. *(*TuInt)(unsafe.Pointer(s + 108)) -= wsize /* we now have strstart >= MAX_DIST */
  4428. *(*int32)(unsafe.Pointer(s + 92)) -= int32(wsize)
  4429. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  4430. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  4431. }
  4432. _slide_hash(tls, s)
  4433. more += wsize
  4434. }
  4435. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) {
  4436. break
  4437. }
  4438. /* If there was no sliding:
  4439. * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
  4440. * more == window_size - lookahead - strstart
  4441. * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
  4442. * => more >= window_size - 2*WSIZE + 2
  4443. * In the BIG_MEM or MMAP case (not yet supported),
  4444. * window_size == input_size + MIN_LOOKAHEAD &&
  4445. * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
  4446. * Otherwise, window_size == 2*WSIZE so more >= 2.
  4447. * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
  4448. */
  4449. 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)
  4450. *(*TuInt)(unsafe.Pointer(s + 116)) += n
  4451. /* Initialize the hash value now that we have some input: */
  4452. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead+(*Tdeflate_state)(unsafe.Pointer(s)).Finsert >= uint32(m_MIN_MATCH) {
  4453. str = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  4454. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(str))))
  4455. (*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
  4456. for (*Tdeflate_state)(unsafe.Pointer(s)).Finsert != 0 {
  4457. (*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
  4458. *(*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))
  4459. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16(str)
  4460. str++
  4461. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert--
  4462. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead+(*Tdeflate_state)(unsafe.Pointer(s)).Finsert < uint32(m_MIN_MATCH) {
  4463. break
  4464. }
  4465. }
  4466. }
  4467. /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
  4468. * but this is not important since only literal bytes will be emitted.
  4469. */
  4470. }
  4471. /* If the WIN_INIT bytes after the end of the current data have never been
  4472. * written, then zero those bytes in order to avoid memory check reports of
  4473. * the use of uninitialized (or uninitialised as Julian writes) bytes by
  4474. * the longest match routines. Update the high water mark for the next
  4475. * time through here. WIN_INIT is set to MAX_MATCH since the longest match
  4476. * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.
  4477. */
  4478. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size {
  4479. curr = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  4480. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < curr {
  4481. /* Previous high water mark below current data -- zero WIN_INIT
  4482. * bytes or up to end of window, whichever is less.
  4483. */
  4484. init1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - curr
  4485. if init1 > uint32(m_MAX_MATCH) {
  4486. init1 = uint32(m_MAX_MATCH)
  4487. }
  4488. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr(curr), 0, init1)
  4489. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = curr + init1
  4490. } else {
  4491. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < curr+uint32(m_MAX_MATCH) {
  4492. /* High water mark at or above current data, but below current data
  4493. * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up
  4494. * to end of window, whichever is less.
  4495. */
  4496. init1 = curr + uint32(m_MAX_MATCH) - (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water
  4497. if init1 > (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size-(*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water {
  4498. init1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water
  4499. }
  4500. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water), 0, init1)
  4501. *(*Tulg)(unsafe.Pointer(s + 5824)) += init1
  4502. }
  4503. }
  4504. }
  4505. }
  4506. // C documentation
  4507. //
  4508. // /* ========================================================================= */
  4509. func XdeflateInit_(tls *libc.TLS, strm Tz_streamp, level int32, version uintptr, stream_size int32) (r int32) {
  4510. 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)
  4511. /* To do: ignore strm->next_in if we use it as window */
  4512. }
  4513. // C documentation
  4514. //
  4515. // /* ========================================================================= */
  4516. 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) {
  4517. var s uintptr
  4518. var wrap int32
  4519. _, _ = s, wrap
  4520. wrap = int32(1)
  4521. if version == uintptr(m_Z_NULL) || int32(*(*int8)(unsafe.Pointer(version))) != int32(_my_version[0]) || uint32(stream_size) != uint32(56) {
  4522. return -int32(6)
  4523. }
  4524. if strm == uintptr(m_Z_NULL) {
  4525. return -int32(2)
  4526. }
  4527. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  4528. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  4529. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  4530. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  4531. }
  4532. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  4533. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  4534. }
  4535. if level == -int32(1) {
  4536. level = int32(6)
  4537. }
  4538. if windowBits < 0 { /* suppress zlib wrapper */
  4539. wrap = 0
  4540. if windowBits < -int32(15) {
  4541. return -int32(2)
  4542. }
  4543. windowBits = -windowBits
  4544. } else {
  4545. if windowBits > int32(15) {
  4546. wrap = int32(2) /* write gzip wrapper instead */
  4547. windowBits -= int32(16)
  4548. }
  4549. }
  4550. 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) {
  4551. return -int32(2)
  4552. }
  4553. if windowBits == int32(8) {
  4554. windowBits = int32(9)
  4555. } /* until 256-byte window bug fixed */
  4556. s = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, uint32(libc.Int32FromInt32(1)), libc.Uint32FromInt64(5828))
  4557. if s == uintptr(m_Z_NULL) {
  4558. return -int32(4)
  4559. }
  4560. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = s
  4561. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm = strm
  4562. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_INIT_STATE) /* to pass state test in deflateReset() */
  4563. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = wrap
  4564. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead = uintptr(m_Z_NULL)
  4565. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits = uint32(windowBits)
  4566. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size = uint32(int32(1) << (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits)
  4567. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - uint32(1)
  4568. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits = uint32(memLevel) + uint32(7)
  4569. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size = uint32(int32(1) << (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits)
  4570. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask = (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size - uint32(1)
  4571. (*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)
  4572. (*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, libc.Uint32FromInt32(2)*libc.Uint32FromInt64(1))
  4573. (*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, libc.Uint32FromInt64(2))
  4574. (*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, libc.Uint32FromInt64(2))
  4575. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint32(0) /* nothing written to s->window yet */
  4576. (*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize = uint32(int32(1) << (memLevel + int32(6))) /* 16K elements by default */
  4577. /* We overlay pending_buf and sym_buf. This works since the average size
  4578. * for length/distance pairs over any compressed block is assured to be 31
  4579. * bits or less.
  4580. *
  4581. * Analysis: The longest fixed codes are a length code of 8 bits plus 5
  4582. * extra bits, for lengths 131 to 257. The longest fixed distance codes are
  4583. * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest
  4584. * possible fixed-codes length/distance pair is then 31 bits total.
  4585. *
  4586. * sym_buf starts one-fourth of the way into pending_buf. So there are
  4587. * three bytes in sym_buf for every four bytes in pending_buf. Each symbol
  4588. * in sym_buf is three bytes -- two for the distance and one for the
  4589. * literal/length. As each symbol is consumed, the pointer to the next
  4590. * sym_buf value to read moves forward three bytes. From that symbol, up to
  4591. * 31 bits are written to pending_buf. The closest the written pending_buf
  4592. * bits gets to the next sym_buf symbol to read is just before the last
  4593. * code is written. At that time, 31*(n - 2) bits have been written, just
  4594. * after 24*(n - 2) bits have been consumed from sym_buf. sym_buf starts at
  4595. * 8*n bits into pending_buf. (Note that the symbol buffer fills when n - 1
  4596. * symbols are written.) The closest the writing gets to what is unread is
  4597. * then n + 14 bits. Here n is lit_bufsize, which is 16384 by default, and
  4598. * can range from 128 to 32768.
  4599. *
  4600. * Therefore, at a minimum, there are 142 bits of space between what is
  4601. * written and what is read in the overlain buffers, so the symbols cannot
  4602. * be overwritten by the compressed data. That space is actually 139 bits,
  4603. * due to the three-bit fixed-code block header.
  4604. *
  4605. * That covers the case where either Z_FIXED is specified, forcing fixed
  4606. * codes, or when the use of fixed codes is chosen, because that choice
  4607. * results in a smaller compressed block than dynamic codes. That latter
  4608. * condition then assures that the above analysis also covers all dynamic
  4609. * blocks. A dynamic-code block will only be chosen to be emitted if it has
  4610. * fewer bits than a fixed-code block would for the same set of symbols.
  4611. * Therefore its average symbol length is assured to be less than 31. So
  4612. * the compressed data for a dynamic block also cannot overwrite the
  4613. * symbols from which it is being constructed.
  4614. */
  4615. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize, uint32(libc.Int32FromInt32(m_LIT_BUFS)))
  4616. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size = (*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize * uint32(4)
  4617. 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) {
  4618. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_FINISH_STATE)
  4619. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(4)]
  4620. XdeflateEnd(tls, strm)
  4621. return -int32(4)
  4622. }
  4623. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize)
  4624. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end = ((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize - uint32(1)) * uint32(3)
  4625. /* We avoid equality with lit_bufsize*3 because of wraparound at 64K
  4626. * on 16 bit machines and because stored blocks are restricted to
  4627. * 64K-1 bytes.
  4628. */
  4629. (*Tdeflate_state)(unsafe.Pointer(s)).Flevel = level
  4630. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy = strategy
  4631. (*Tdeflate_state)(unsafe.Pointer(s)).Fmethod = uint8(method)
  4632. return XdeflateReset(tls, strm)
  4633. }
  4634. var _my_version = [6]int8{'1', '.', '3', '.', '1'}
  4635. // C documentation
  4636. //
  4637. // /* =========================================================================
  4638. // * Check for a valid deflate stream state. Return 0 if ok, 1 if not.
  4639. // */
  4640. func _deflateStateCheck(tls *libc.TLS, strm Tz_streamp) (r int32) {
  4641. var s uintptr
  4642. _ = s
  4643. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  4644. return int32(1)
  4645. }
  4646. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4647. 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) {
  4648. return int32(1)
  4649. }
  4650. return 0
  4651. }
  4652. // C documentation
  4653. //
  4654. // /* ========================================================================= */
  4655. func XdeflateSetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength TuInt) (r int32) {
  4656. var avail uint32
  4657. var n, str, v1, v3 TuInt
  4658. var next, s uintptr
  4659. var wrap int32
  4660. _, _, _, _, _, _, _, _ = avail, n, next, s, str, wrap, v1, v3
  4661. if _deflateStateCheck(tls, strm) != 0 || dictionary == uintptr(m_Z_NULL) {
  4662. return -int32(2)
  4663. }
  4664. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4665. wrap = (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap
  4666. if wrap == int32(2) || wrap == int32(1) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_INIT_STATE) || (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead != 0 {
  4667. return -int32(2)
  4668. }
  4669. /* when using zlib wrappers, compute Adler-32 for provided dictionary */
  4670. if wrap == int32(1) {
  4671. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, dictionary, dictLength)
  4672. }
  4673. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = 0 /* avoid computing Adler-32 in read_buf */
  4674. /* if dictionary would fill window, just replace the history */
  4675. if dictLength >= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  4676. if wrap == 0 { /* already empty otherwise */
  4677. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  4678. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, ((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint32(2))
  4679. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  4680. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  4681. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  4682. }
  4683. dictionary += uintptr(dictLength - (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) /* use the tail */
  4684. dictLength = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4685. }
  4686. /* insert dictionary into window and hash */
  4687. avail = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  4688. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  4689. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = dictLength
  4690. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = dictionary
  4691. _fill_window(tls, s)
  4692. for (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  4693. str = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  4694. n = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))
  4695. for {
  4696. (*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
  4697. *(*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))
  4698. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16(str)
  4699. str++
  4700. goto _2
  4701. _2:
  4702. ;
  4703. n--
  4704. v1 = n
  4705. if !(v1 != 0) {
  4706. break
  4707. }
  4708. }
  4709. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = str
  4710. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  4711. _fill_window(tls, s)
  4712. }
  4713. *(*TuInt)(unsafe.Pointer(s + 108)) += (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  4714. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  4715. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  4716. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(0)
  4717. v3 = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  4718. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = v3
  4719. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = v3
  4720. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  4721. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  4722. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = avail
  4723. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = wrap
  4724. return m_Z_OK
  4725. }
  4726. // C documentation
  4727. //
  4728. // /* ========================================================================= */
  4729. func XdeflateGetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength uintptr) (r int32) {
  4730. var len1 TuInt
  4731. var s uintptr
  4732. _, _ = len1, s
  4733. if _deflateStateCheck(tls, strm) != 0 {
  4734. return -int32(2)
  4735. }
  4736. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4737. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  4738. if len1 > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  4739. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4740. }
  4741. if dictionary != uintptr(m_Z_NULL) && len1 != 0 {
  4742. 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), len1)
  4743. }
  4744. if dictLength != uintptr(m_Z_NULL) {
  4745. *(*TuInt)(unsafe.Pointer(dictLength)) = len1
  4746. }
  4747. return m_Z_OK
  4748. }
  4749. // C documentation
  4750. //
  4751. // /* ========================================================================= */
  4752. func XdeflateResetKeep(tls *libc.TLS, strm Tz_streamp) (r int32) {
  4753. var s uintptr
  4754. var v1 TuLong
  4755. var v2 int32
  4756. var v3 uint32
  4757. _, _, _, _ = s, v1, v2, v3
  4758. if _deflateStateCheck(tls, strm) != 0 {
  4759. return -int32(2)
  4760. }
  4761. v1 = libc.Uint32FromInt32(0)
  4762. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = v1
  4763. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = v1
  4764. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* use zfree if we ever allocate msg dynamically */
  4765. (*Tz_stream)(unsafe.Pointer(strm)).Fdata_type = int32(m_Z_UNKNOWN)
  4766. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4767. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending = uint32(0)
  4768. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf
  4769. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap < 0 {
  4770. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = -(*Tdeflate_state)(unsafe.Pointer(s)).Fwrap /* was made negative by deflate(..., Z_FINISH); */
  4771. }
  4772. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  4773. v2 = int32(m_GZIP_STATE)
  4774. } else {
  4775. v2 = int32(m_INIT_STATE)
  4776. }
  4777. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = v2
  4778. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  4779. v3 = Xcrc32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  4780. } else {
  4781. v3 = Xadler32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  4782. }
  4783. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v3
  4784. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(2)
  4785. x__tr_init(tls, s)
  4786. return m_Z_OK
  4787. }
  4788. // C documentation
  4789. //
  4790. // /* ===========================================================================
  4791. // * Initialize the "longest match" routines for a new zlib stream
  4792. // */
  4793. func _lm_init(tls *libc.TLS, s uintptr) {
  4794. var v1 TuInt
  4795. _ = v1
  4796. (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size = libc.Uint32FromInt32(2) * (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4797. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  4798. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, ((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint32(2))
  4799. /* Set the default configuration parameters:
  4800. */
  4801. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fmax_lazy)
  4802. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fgood_length)
  4803. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = int32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fnice_length)
  4804. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fmax_chain)
  4805. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  4806. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  4807. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(0)
  4808. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  4809. v1 = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  4810. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = v1
  4811. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = v1
  4812. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  4813. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(0)
  4814. }
  4815. // C documentation
  4816. //
  4817. // /* ========================================================================= */
  4818. func XdeflateReset(tls *libc.TLS, strm Tz_streamp) (r int32) {
  4819. var ret int32
  4820. _ = ret
  4821. ret = XdeflateResetKeep(tls, strm)
  4822. if ret == m_Z_OK {
  4823. _lm_init(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fstate)
  4824. }
  4825. return ret
  4826. }
  4827. // C documentation
  4828. //
  4829. // /* ========================================================================= */
  4830. func XdeflateSetHeader(tls *libc.TLS, strm Tz_streamp, head Tgz_headerp) (r int32) {
  4831. if _deflateStateCheck(tls, strm) != 0 || (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap != int32(2) {
  4832. return -int32(2)
  4833. }
  4834. (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fgzhead = head
  4835. return m_Z_OK
  4836. }
  4837. // C documentation
  4838. //
  4839. // /* ========================================================================= */
  4840. func XdeflatePending(tls *libc.TLS, strm Tz_streamp, pending uintptr, bits uintptr) (r int32) {
  4841. if _deflateStateCheck(tls, strm) != 0 {
  4842. return -int32(2)
  4843. }
  4844. if pending != uintptr(m_Z_NULL) {
  4845. *(*uint32)(unsafe.Pointer(pending)) = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending
  4846. }
  4847. if bits != uintptr(m_Z_NULL) {
  4848. *(*int32)(unsafe.Pointer(bits)) = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fbi_valid
  4849. }
  4850. return m_Z_OK
  4851. }
  4852. // C documentation
  4853. //
  4854. // /* ========================================================================= */
  4855. func XdeflatePrime(tls *libc.TLS, strm Tz_streamp, bits int32, value int32) (r int32) {
  4856. var put int32
  4857. var s, p1 uintptr
  4858. _, _, _ = put, s, p1
  4859. if _deflateStateCheck(tls, strm) != 0 {
  4860. return -int32(2)
  4861. }
  4862. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4863. 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)) {
  4864. return -int32(5)
  4865. }
  4866. for cond := true; cond; cond = bits != 0 {
  4867. put = int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid
  4868. if put > bits {
  4869. put = bits
  4870. }
  4871. p1 = s + 5816
  4872. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | int32(uint16(value&(libc.Int32FromInt32(1)<<put-libc.Int32FromInt32(1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)))
  4873. *(*int32)(unsafe.Pointer(s + 5820)) += put
  4874. x__tr_flush_bits(tls, s)
  4875. value >>= put
  4876. bits -= put
  4877. }
  4878. return m_Z_OK
  4879. }
  4880. // C documentation
  4881. //
  4882. // /* ========================================================================= */
  4883. func XdeflateParams(tls *libc.TLS, strm Tz_streamp, level int32, strategy int32) (r int32) {
  4884. var err int32
  4885. var func1 Tcompress_func
  4886. var s uintptr
  4887. _, _, _ = err, func1, s
  4888. if _deflateStateCheck(tls, strm) != 0 {
  4889. return -int32(2)
  4890. }
  4891. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4892. if level == -int32(1) {
  4893. level = int32(6)
  4894. }
  4895. if level < 0 || level > int32(9) || strategy < 0 || strategy > int32(m_Z_FIXED) {
  4896. return -int32(2)
  4897. }
  4898. func1 = _configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Ffunc1
  4899. if (strategy != (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy || func1 != _configuration_table[level].Ffunc1) && (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush != -int32(2) {
  4900. /* Flush the last buffer: */
  4901. err = Xdeflate(tls, strm, int32(m_Z_BLOCK))
  4902. if err == -int32(2) {
  4903. return err
  4904. }
  4905. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 || (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start)+(*Tdeflate_state)(unsafe.Pointer(s)).Flookahead != 0 {
  4906. return -int32(5)
  4907. }
  4908. }
  4909. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel != level {
  4910. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches != uint32(0) {
  4911. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches == uint32(1) {
  4912. _slide_hash(tls, s)
  4913. } else {
  4914. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  4915. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, ((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint32(2))
  4916. }
  4917. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = uint32(0)
  4918. }
  4919. (*Tdeflate_state)(unsafe.Pointer(s)).Flevel = level
  4920. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(_configuration_table[level].Fmax_lazy)
  4921. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(_configuration_table[level].Fgood_length)
  4922. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = int32(_configuration_table[level].Fnice_length)
  4923. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(_configuration_table[level].Fmax_chain)
  4924. }
  4925. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy = strategy
  4926. return m_Z_OK
  4927. }
  4928. // C documentation
  4929. //
  4930. // /* ========================================================================= */
  4931. func XdeflateTune(tls *libc.TLS, strm Tz_streamp, good_length int32, max_lazy int32, nice_length int32, max_chain int32) (r int32) {
  4932. var s uintptr
  4933. _ = s
  4934. if _deflateStateCheck(tls, strm) != 0 {
  4935. return -int32(2)
  4936. }
  4937. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4938. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(good_length)
  4939. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(max_lazy)
  4940. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = nice_length
  4941. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(max_chain)
  4942. return m_Z_OK
  4943. }
  4944. // C documentation
  4945. //
  4946. // /* =========================================================================
  4947. // * For the default windowBits of 15 and memLevel of 8, this function returns a
  4948. // * close to exact, as well as small, upper bound on the compressed size. This
  4949. // * is an expansion of ~0.03%, plus a small constant.
  4950. // *
  4951. // * For any setting other than those defaults for windowBits and memLevel, one
  4952. // * of two worst case bounds is returned. This is at most an expansion of ~4% or
  4953. // * ~13%, plus a small constant.
  4954. // *
  4955. // * Both the 0.03% and 4% derive from the overhead of stored blocks. The first
  4956. // * one is for stored blocks of 16383 bytes (memLevel == 8), whereas the second
  4957. // * is for stored blocks of 127 bytes (the worst case memLevel == 1). The
  4958. // * expansion results from five bytes of header for each stored block.
  4959. // *
  4960. // * The larger expansion of 13% results from a window size less than or equal to
  4961. // * the symbols buffer size (windowBits <= memLevel + 7). In that case some of
  4962. // * the data being compressed may have slid out of the sliding window, impeding
  4963. // * a stored block from being emitted. Then the only choice is a fixed or
  4964. // * dynamic block, where a fixed block limits the maximum expansion to 9 bits
  4965. // * per 8-bit byte, plus 10 bits for every block. The smallest block size for
  4966. // * which this can occur is 255 (memLevel == 2).
  4967. // *
  4968. // * Shifts are used to approximate divisions, for speed.
  4969. // */
  4970. func XdeflateBound(tls *libc.TLS, strm Tz_streamp, sourceLen TuLong) (r TuLong) {
  4971. var fixedlen, storelen, wraplen TuLong
  4972. var s, str, v3, v5 uintptr
  4973. var v1, v7 uint32
  4974. var v2 int32
  4975. _, _, _, _, _, _, _, _, _, _ = fixedlen, s, storelen, str, wraplen, v1, v2, v3, v5, v7
  4976. /* upper bound for fixed blocks with 9-bit literals and length 255
  4977. (memLevel == 2, which is the lowest that may not use stored blocks) --
  4978. ~13% overhead plus a small constant */
  4979. fixedlen = sourceLen + sourceLen>>libc.Int32FromInt32(3) + sourceLen>>libc.Int32FromInt32(8) + sourceLen>>libc.Int32FromInt32(9) + uint32(4)
  4980. /* upper bound for stored blocks with length 127 (memLevel == 1) --
  4981. ~4% overhead plus a small constant */
  4982. storelen = sourceLen + sourceLen>>libc.Int32FromInt32(5) + sourceLen>>libc.Int32FromInt32(7) + sourceLen>>libc.Int32FromInt32(11) + uint32(7)
  4983. /* if can't get parameters, return larger bound plus a zlib wrapper */
  4984. if _deflateStateCheck(tls, strm) != 0 {
  4985. if fixedlen > storelen {
  4986. v1 = fixedlen
  4987. } else {
  4988. v1 = storelen
  4989. }
  4990. return v1 + uint32(6)
  4991. }
  4992. /* compute wrapper length */
  4993. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4994. switch (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap {
  4995. case 0: /* raw deflate */
  4996. wraplen = uint32(0)
  4997. case int32(1): /* zlib wrapper */
  4998. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != 0 {
  4999. v2 = int32(4)
  5000. } else {
  5001. v2 = 0
  5002. }
  5003. wraplen = uint32(int32(6) + v2)
  5004. case int32(2): /* gzip wrapper */
  5005. wraplen = uint32(18)
  5006. if (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead != uintptr(m_Z_NULL) {
  5007. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  5008. wraplen += uint32(2) + (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len
  5009. }
  5010. str = (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname
  5011. if str != uintptr(m_Z_NULL) {
  5012. for {
  5013. wraplen++
  5014. goto _4
  5015. _4:
  5016. ;
  5017. v3 = str
  5018. str++
  5019. if !(*(*TBytef)(unsafe.Pointer(v3)) != 0) {
  5020. break
  5021. }
  5022. }
  5023. }
  5024. str = (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment
  5025. if str != uintptr(m_Z_NULL) {
  5026. for {
  5027. wraplen++
  5028. goto _6
  5029. _6:
  5030. ;
  5031. v5 = str
  5032. str++
  5033. if !(*(*TBytef)(unsafe.Pointer(v5)) != 0) {
  5034. break
  5035. }
  5036. }
  5037. }
  5038. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5039. wraplen += uint32(2)
  5040. }
  5041. }
  5042. default: /* for compiler happiness */
  5043. wraplen = uint32(6)
  5044. }
  5045. /* if not default parameters, return one of the conservative bounds */
  5046. if (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits != uint32(15) || (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits != uint32(libc.Int32FromInt32(8)+libc.Int32FromInt32(7)) {
  5047. if (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits <= (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits && (*Tdeflate_state)(unsafe.Pointer(s)).Flevel != 0 {
  5048. v7 = fixedlen
  5049. } else {
  5050. v7 = storelen
  5051. }
  5052. return v7 + wraplen
  5053. }
  5054. /* default settings: return tight bound for that case -- ~0.03% overhead
  5055. plus a small constant */
  5056. return sourceLen + sourceLen>>libc.Int32FromInt32(12) + sourceLen>>libc.Int32FromInt32(14) + sourceLen>>libc.Int32FromInt32(25) + uint32(13) - uint32(6) + wraplen
  5057. }
  5058. // C documentation
  5059. //
  5060. // /* =========================================================================
  5061. // * Put a short in the pending buffer. The 16-bit value is put in MSB order.
  5062. // * IN assertion: the stream state is correct and there is enough room in
  5063. // * pending_buf.
  5064. // */
  5065. func _putShortMSB(tls *libc.TLS, s uintptr, b TuInt) {
  5066. var v1, v3 Tulg
  5067. var v2, v4 uintptr
  5068. _, _, _, _ = v1, v2, v3, v4
  5069. v2 = s + 20
  5070. v1 = *(*Tulg)(unsafe.Pointer(v2))
  5071. *(*Tulg)(unsafe.Pointer(v2))++
  5072. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = uint8(b >> libc.Int32FromInt32(8))
  5073. v4 = s + 20
  5074. v3 = *(*Tulg)(unsafe.Pointer(v4))
  5075. *(*Tulg)(unsafe.Pointer(v4))++
  5076. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(b & libc.Uint32FromInt32(0xff))
  5077. }
  5078. // C documentation
  5079. //
  5080. // /* =========================================================================
  5081. // * Flush as much pending output as possible. All deflate() output, except for
  5082. // * some deflate_stored() output, goes through this function so some
  5083. // * applications may wish to modify it to avoid allocating a large
  5084. // * strm->next_out buffer and copying into it. (See also read_buf()).
  5085. // */
  5086. func _flush_pending(tls *libc.TLS, strm Tz_streamp) {
  5087. var len1 uint32
  5088. var s uintptr
  5089. _, _ = len1, s
  5090. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5091. x__tr_flush_bits(tls, s)
  5092. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  5093. if len1 > (*Tz_stream)(unsafe.Pointer(strm)).Favail_out {
  5094. len1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  5095. }
  5096. if len1 == uint32(0) {
  5097. return
  5098. }
  5099. libc.Xmemcpy(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out, len1)
  5100. *(*uintptr)(unsafe.Pointer(strm + 12)) += uintptr(len1)
  5101. *(*uintptr)(unsafe.Pointer(s + 16)) += uintptr(len1)
  5102. *(*TuLong)(unsafe.Pointer(strm + 20)) += len1
  5103. *(*TuInt)(unsafe.Pointer(strm + 16)) -= len1
  5104. *(*Tulg)(unsafe.Pointer(s + 20)) -= len1
  5105. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == uint32(0) {
  5106. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf
  5107. }
  5108. }
  5109. /* ===========================================================================
  5110. * Update the header CRC with the bytes s->pending_buf[beg..s->pending - 1].
  5111. */
  5112. // C documentation
  5113. //
  5114. // /* ========================================================================= */
  5115. func Xdeflate(tls *libc.TLS, strm Tz_streamp, flush int32) (r int32) {
  5116. 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
  5117. var bstate Tblock_state
  5118. var copy1, header, left, level_flags TuInt
  5119. var old_flush, val, val1, v1, v2, v22, v23, v28, v29, v30, v31, v32, v43, v44, v63, v64, v65, v82 int32
  5120. 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
  5121. var v3 bool
  5122. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  5123. if _deflateStateCheck(tls, strm) != 0 || flush > int32(m_Z_BLOCK) || flush < 0 {
  5124. return -int32(2)
  5125. }
  5126. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5127. 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) {
  5128. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(2)]
  5129. return -libc.Int32FromInt32(2)
  5130. }
  5131. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5132. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  5133. return -libc.Int32FromInt32(5)
  5134. }
  5135. old_flush = (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush
  5136. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = flush
  5137. /* Flush as much pending output as possible */
  5138. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  5139. _flush_pending(tls, strm)
  5140. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5141. /* Since avail_out is 0, deflate will be called again with
  5142. * more output space, but possibly with both pending and
  5143. * avail_in equal to zero. There won't be anything to do,
  5144. * but this is not an error situation so make sure we
  5145. * return OK instead of BUF_ERROR at next call of deflate:
  5146. */
  5147. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5148. return m_Z_OK
  5149. }
  5150. /* Make sure there is something to do and avoid duplicate consecutive
  5151. * flushes. For repeated and useless calls with Z_FINISH, we keep
  5152. * returning Z_STREAM_END instead of Z_BUF_ERROR.
  5153. */
  5154. } else {
  5155. if v3 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0); v3 {
  5156. if flush > int32(4) {
  5157. v1 = int32(9)
  5158. } else {
  5159. v1 = 0
  5160. }
  5161. if old_flush > int32(4) {
  5162. v2 = int32(9)
  5163. } else {
  5164. v2 = 0
  5165. }
  5166. }
  5167. if v3 && flush*int32(2)-v1 <= old_flush*int32(2)-v2 && flush != int32(m_Z_FINISH) {
  5168. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  5169. return -libc.Int32FromInt32(5)
  5170. }
  5171. }
  5172. /* User must not provide more input after the first FINISH: */
  5173. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_FINISH_STATE) && (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != uint32(0) {
  5174. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  5175. return -libc.Int32FromInt32(5)
  5176. }
  5177. /* Write the header */
  5178. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_INIT_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == 0 {
  5179. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5180. }
  5181. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_INIT_STATE) {
  5182. /* zlib header */
  5183. header = (uint32(m_Z_DEFLATED) + ((*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits-uint32(8))<<int32(4)) << int32(8)
  5184. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  5185. level_flags = uint32(0)
  5186. } else {
  5187. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(6) {
  5188. level_flags = uint32(1)
  5189. } else {
  5190. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(6) {
  5191. level_flags = uint32(2)
  5192. } else {
  5193. level_flags = uint32(3)
  5194. }
  5195. }
  5196. }
  5197. header |= level_flags << libc.Int32FromInt32(6)
  5198. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != uint32(0) {
  5199. header |= uint32(m_PRESET_DICT1)
  5200. }
  5201. header += uint32(31) - header%uint32(31)
  5202. _putShortMSB(tls, s, header)
  5203. /* Save the adler32 of the preset dictionary: */
  5204. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != uint32(0) {
  5205. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler>>libc.Int32FromInt32(16)))
  5206. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler&libc.Uint32FromInt32(0xffff)))
  5207. }
  5208. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  5209. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5210. /* Compression must start with an empty pending buffer */
  5211. _flush_pending(tls, strm)
  5212. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  5213. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5214. return m_Z_OK
  5215. }
  5216. }
  5217. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_GZIP_STATE) {
  5218. /* gzip header */
  5219. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  5220. v5 = s + 20
  5221. v4 = *(*Tulg)(unsafe.Pointer(v5))
  5222. *(*Tulg)(unsafe.Pointer(v5))++
  5223. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = uint8(libc.Int32FromInt32(31))
  5224. v7 = s + 20
  5225. v6 = *(*Tulg)(unsafe.Pointer(v7))
  5226. *(*Tulg)(unsafe.Pointer(v7))++
  5227. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v6))) = uint8(libc.Int32FromInt32(139))
  5228. v9 = s + 20
  5229. v8 = *(*Tulg)(unsafe.Pointer(v9))
  5230. *(*Tulg)(unsafe.Pointer(v9))++
  5231. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = uint8(libc.Int32FromInt32(8))
  5232. if (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead == uintptr(m_Z_NULL) {
  5233. v11 = s + 20
  5234. v10 = *(*Tulg)(unsafe.Pointer(v11))
  5235. *(*Tulg)(unsafe.Pointer(v11))++
  5236. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = uint8(libc.Int32FromInt32(0))
  5237. v13 = s + 20
  5238. v12 = *(*Tulg)(unsafe.Pointer(v13))
  5239. *(*Tulg)(unsafe.Pointer(v13))++
  5240. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v12))) = uint8(libc.Int32FromInt32(0))
  5241. v15 = s + 20
  5242. v14 = *(*Tulg)(unsafe.Pointer(v15))
  5243. *(*Tulg)(unsafe.Pointer(v15))++
  5244. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = uint8(libc.Int32FromInt32(0))
  5245. v17 = s + 20
  5246. v16 = *(*Tulg)(unsafe.Pointer(v17))
  5247. *(*Tulg)(unsafe.Pointer(v17))++
  5248. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v16))) = uint8(libc.Int32FromInt32(0))
  5249. v19 = s + 20
  5250. v18 = *(*Tulg)(unsafe.Pointer(v19))
  5251. *(*Tulg)(unsafe.Pointer(v19))++
  5252. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v18))) = uint8(libc.Int32FromInt32(0))
  5253. v21 = s + 20
  5254. v20 = *(*Tulg)(unsafe.Pointer(v21))
  5255. *(*Tulg)(unsafe.Pointer(v21))++
  5256. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(9) {
  5257. v22 = int32(2)
  5258. } else {
  5259. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  5260. v23 = int32(4)
  5261. } else {
  5262. v23 = 0
  5263. }
  5264. v22 = v23
  5265. }
  5266. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v20))) = uint8(v22)
  5267. v25 = s + 20
  5268. v24 = *(*Tulg)(unsafe.Pointer(v25))
  5269. *(*Tulg)(unsafe.Pointer(v25))++
  5270. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = uint8(libc.Int32FromInt32(m_OS_CODE))
  5271. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5272. /* Compression must start with an empty pending buffer */
  5273. _flush_pending(tls, strm)
  5274. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  5275. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5276. return m_Z_OK
  5277. }
  5278. } else {
  5279. v27 = s + 20
  5280. v26 = *(*Tulg)(unsafe.Pointer(v27))
  5281. *(*Tulg)(unsafe.Pointer(v27))++
  5282. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftext != 0 {
  5283. v28 = int32(1)
  5284. } else {
  5285. v28 = 0
  5286. }
  5287. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5288. v29 = int32(2)
  5289. } else {
  5290. v29 = 0
  5291. }
  5292. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra == uintptr(m_Z_NULL) {
  5293. v30 = 0
  5294. } else {
  5295. v30 = int32(4)
  5296. }
  5297. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname == uintptr(m_Z_NULL) {
  5298. v31 = 0
  5299. } else {
  5300. v31 = int32(8)
  5301. }
  5302. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment == uintptr(m_Z_NULL) {
  5303. v32 = 0
  5304. } else {
  5305. v32 = int32(16)
  5306. }
  5307. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = uint8(v28 + v29 + v30 + v31 + v32)
  5308. v34 = s + 20
  5309. v33 = *(*Tulg)(unsafe.Pointer(v34))
  5310. *(*Tulg)(unsafe.Pointer(v34))++
  5311. *(*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.Uint32FromInt32(0xff))
  5312. v36 = s + 20
  5313. v35 = *(*Tulg)(unsafe.Pointer(v36))
  5314. *(*Tulg)(unsafe.Pointer(v36))++
  5315. *(*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.Uint32FromInt32(0xff))
  5316. v38 = s + 20
  5317. v37 = *(*Tulg)(unsafe.Pointer(v38))
  5318. *(*Tulg)(unsafe.Pointer(v38))++
  5319. *(*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.Uint32FromInt32(0xff))
  5320. v40 = s + 20
  5321. v39 = *(*Tulg)(unsafe.Pointer(v40))
  5322. *(*Tulg)(unsafe.Pointer(v40))++
  5323. *(*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.Uint32FromInt32(0xff))
  5324. v42 = s + 20
  5325. v41 = *(*Tulg)(unsafe.Pointer(v42))
  5326. *(*Tulg)(unsafe.Pointer(v42))++
  5327. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(9) {
  5328. v43 = int32(2)
  5329. } else {
  5330. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  5331. v44 = int32(4)
  5332. } else {
  5333. v44 = 0
  5334. }
  5335. v43 = v44
  5336. }
  5337. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v41))) = uint8(v43)
  5338. v46 = s + 20
  5339. v45 = *(*Tulg)(unsafe.Pointer(v46))
  5340. *(*Tulg)(unsafe.Pointer(v46))++
  5341. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v45))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fos & libc.Int32FromInt32(0xff))
  5342. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  5343. v48 = s + 20
  5344. v47 = *(*Tulg)(unsafe.Pointer(v48))
  5345. *(*Tulg)(unsafe.Pointer(v48))++
  5346. *(*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))
  5347. v50 = s + 20
  5348. v49 = *(*Tulg)(unsafe.Pointer(v50))
  5349. *(*Tulg)(unsafe.Pointer(v50))++
  5350. *(*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))
  5351. }
  5352. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5353. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending)
  5354. }
  5355. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint32(0)
  5356. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_EXTRA_STATE)
  5357. }
  5358. }
  5359. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_EXTRA_STATE) {
  5360. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  5361. beg = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending /* start of bytes to update crc */
  5362. left = uint32((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len&libc.Uint32FromInt32(0xffff)) - (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex
  5363. for (*Tdeflate_state)(unsafe.Pointer(s)).Fpending+left > (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5364. copy1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  5365. 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), copy1)
  5366. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size
  5367. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg {
  5368. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg), (*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg)
  5369. }
  5370. *(*Tulg)(unsafe.Pointer(s + 32)) += copy1
  5371. _flush_pending(tls, strm)
  5372. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  5373. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5374. return m_Z_OK
  5375. }
  5376. beg = uint32(0)
  5377. left -= copy1
  5378. }
  5379. 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), left)
  5380. *(*Tulg)(unsafe.Pointer(s + 20)) += left
  5381. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg {
  5382. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg), (*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg)
  5383. }
  5384. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint32(0)
  5385. }
  5386. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_NAME_STATE)
  5387. }
  5388. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_NAME_STATE) {
  5389. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname != uintptr(m_Z_NULL) {
  5390. beg1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  5391. for cond := true; cond; cond = val != 0 {
  5392. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5393. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg1 {
  5394. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg1), (*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg1)
  5395. }
  5396. _flush_pending(tls, strm)
  5397. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  5398. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5399. return m_Z_OK
  5400. }
  5401. beg1 = uint32(0)
  5402. }
  5403. v52 = s + 32
  5404. v51 = *(*Tulg)(unsafe.Pointer(v52))
  5405. *(*Tulg)(unsafe.Pointer(v52))++
  5406. val = int32(*(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname + uintptr(v51))))
  5407. v54 = s + 20
  5408. v53 = *(*Tulg)(unsafe.Pointer(v54))
  5409. *(*Tulg)(unsafe.Pointer(v54))++
  5410. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v53))) = uint8(val)
  5411. }
  5412. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg1 {
  5413. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg1), (*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg1)
  5414. }
  5415. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint32(0)
  5416. }
  5417. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_COMMENT_STATE)
  5418. }
  5419. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_COMMENT_STATE) {
  5420. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment != uintptr(m_Z_NULL) {
  5421. beg2 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  5422. for cond := true; cond; cond = val1 != 0 {
  5423. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5424. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg2 {
  5425. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg2), (*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg2)
  5426. }
  5427. _flush_pending(tls, strm)
  5428. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  5429. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5430. return m_Z_OK
  5431. }
  5432. beg2 = uint32(0)
  5433. }
  5434. v56 = s + 32
  5435. v55 = *(*Tulg)(unsafe.Pointer(v56))
  5436. *(*Tulg)(unsafe.Pointer(v56))++
  5437. val1 = int32(*(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment + uintptr(v55))))
  5438. v58 = s + 20
  5439. v57 = *(*Tulg)(unsafe.Pointer(v58))
  5440. *(*Tulg)(unsafe.Pointer(v58))++
  5441. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v57))) = uint8(val1)
  5442. }
  5443. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg2 {
  5444. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg2), (*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg2)
  5445. }
  5446. }
  5447. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_HCRC_STATE)
  5448. }
  5449. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_HCRC_STATE) {
  5450. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5451. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending+uint32(2) > (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5452. _flush_pending(tls, strm)
  5453. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  5454. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5455. return m_Z_OK
  5456. }
  5457. }
  5458. v60 = s + 20
  5459. v59 = *(*Tulg)(unsafe.Pointer(v60))
  5460. *(*Tulg)(unsafe.Pointer(v60))++
  5461. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v59))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler & libc.Uint32FromInt32(0xff))
  5462. v62 = s + 20
  5463. v61 = *(*Tulg)(unsafe.Pointer(v62))
  5464. *(*Tulg)(unsafe.Pointer(v62))++
  5465. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v61))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(8) & libc.Uint32FromInt32(0xff))
  5466. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  5467. }
  5468. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5469. /* Compression must start with an empty pending buffer */
  5470. _flush_pending(tls, strm)
  5471. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  5472. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5473. return m_Z_OK
  5474. }
  5475. }
  5476. /* Start a new block or continue the current one.
  5477. */
  5478. 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) {
  5479. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == 0 {
  5480. v63 = _deflate_stored(tls, s, flush)
  5481. } else {
  5482. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_HUFFMAN_ONLY) {
  5483. v64 = _deflate_huff(tls, s, flush)
  5484. } else {
  5485. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_RLE) {
  5486. v65 = _deflate_rle(tls, s, flush)
  5487. } else {
  5488. v65 = (*(*func(*libc.TLS, uintptr, int32) Tblock_state)(unsafe.Pointer(&struct{ uintptr }{_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Ffunc1})))(tls, s, flush)
  5489. }
  5490. v64 = v65
  5491. }
  5492. v63 = v64
  5493. }
  5494. bstate = v63
  5495. if bstate == int32(_finish_started) || bstate == int32(_finish_done) {
  5496. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_FINISH_STATE)
  5497. }
  5498. if bstate == int32(_need_more) || bstate == int32(_finish_started) {
  5499. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5500. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1) /* avoid BUF_ERROR next call, see above */
  5501. }
  5502. return m_Z_OK
  5503. /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
  5504. * of deflate should use the same flush parameter to make sure
  5505. * that the flush is complete. So we don't have to output an
  5506. * empty block here, this will be done at next call. This also
  5507. * ensures that for a very small output buffer, we emit at most
  5508. * one empty block.
  5509. */
  5510. }
  5511. if bstate == int32(_block_done) {
  5512. if flush == int32(m_Z_PARTIAL_FLUSH) {
  5513. x__tr_align(tls, s)
  5514. } else {
  5515. if flush != int32(m_Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */
  5516. x__tr_stored_block(tls, s, libc.UintptrFromInt32(0), uint32(0), 0)
  5517. /* For a full flush, this empty block will be recognized
  5518. * as a special marker by inflate_sync().
  5519. */
  5520. if flush == int32(m_Z_FULL_FLUSH) {
  5521. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  5522. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, ((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint32(2)) /* forget history */
  5523. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  5524. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  5525. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  5526. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  5527. }
  5528. }
  5529. }
  5530. }
  5531. _flush_pending(tls, strm)
  5532. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5533. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1) /* avoid BUF_ERROR at next call, see above */
  5534. return m_Z_OK
  5535. }
  5536. }
  5537. }
  5538. if flush != int32(m_Z_FINISH) {
  5539. return m_Z_OK
  5540. }
  5541. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap <= 0 {
  5542. return int32(m_Z_STREAM_END)
  5543. }
  5544. /* Write the trailer */
  5545. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  5546. v67 = s + 20
  5547. v66 = *(*Tulg)(unsafe.Pointer(v67))
  5548. *(*Tulg)(unsafe.Pointer(v67))++
  5549. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v66))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler & libc.Uint32FromInt32(0xff))
  5550. v69 = s + 20
  5551. v68 = *(*Tulg)(unsafe.Pointer(v69))
  5552. *(*Tulg)(unsafe.Pointer(v69))++
  5553. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v68))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(8) & libc.Uint32FromInt32(0xff))
  5554. v71 = s + 20
  5555. v70 = *(*Tulg)(unsafe.Pointer(v71))
  5556. *(*Tulg)(unsafe.Pointer(v71))++
  5557. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v70))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(16) & libc.Uint32FromInt32(0xff))
  5558. v73 = s + 20
  5559. v72 = *(*Tulg)(unsafe.Pointer(v73))
  5560. *(*Tulg)(unsafe.Pointer(v73))++
  5561. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v72))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(24) & libc.Uint32FromInt32(0xff))
  5562. v75 = s + 20
  5563. v74 = *(*Tulg)(unsafe.Pointer(v75))
  5564. *(*Tulg)(unsafe.Pointer(v75))++
  5565. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v74))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in & libc.Uint32FromInt32(0xff))
  5566. v77 = s + 20
  5567. v76 = *(*Tulg)(unsafe.Pointer(v77))
  5568. *(*Tulg)(unsafe.Pointer(v77))++
  5569. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v76))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(8) & libc.Uint32FromInt32(0xff))
  5570. v79 = s + 20
  5571. v78 = *(*Tulg)(unsafe.Pointer(v79))
  5572. *(*Tulg)(unsafe.Pointer(v79))++
  5573. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v78))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(16) & libc.Uint32FromInt32(0xff))
  5574. v81 = s + 20
  5575. v80 = *(*Tulg)(unsafe.Pointer(v81))
  5576. *(*Tulg)(unsafe.Pointer(v81))++
  5577. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v80))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(24) & libc.Uint32FromInt32(0xff))
  5578. } else {
  5579. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler>>libc.Int32FromInt32(16)))
  5580. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler&libc.Uint32FromInt32(0xffff)))
  5581. }
  5582. _flush_pending(tls, strm)
  5583. /* If avail_out is zero, the application will call deflate again
  5584. * to flush the rest.
  5585. */
  5586. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap > 0 {
  5587. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = -(*Tdeflate_state)(unsafe.Pointer(s)).Fwrap
  5588. } /* write the trailer only once! */
  5589. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  5590. v82 = m_Z_OK
  5591. } else {
  5592. v82 = int32(m_Z_STREAM_END)
  5593. }
  5594. return v82
  5595. }
  5596. // C documentation
  5597. //
  5598. // /* ========================================================================= */
  5599. func XdeflateEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  5600. var status, v1 int32
  5601. _, _ = status, v1
  5602. if _deflateStateCheck(tls, strm) != 0 {
  5603. return -int32(2)
  5604. }
  5605. status = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fstatus
  5606. /* Deallocate in reverse order of allocations: */
  5607. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending_buf != 0 {
  5608. (*(*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)
  5609. }
  5610. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fhead != 0 {
  5611. (*(*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)
  5612. }
  5613. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fprev != 0 {
  5614. (*(*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)
  5615. }
  5616. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwindow != 0 {
  5617. (*(*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)
  5618. }
  5619. (*(*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)
  5620. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  5621. if status == int32(m_BUSY_STATE) {
  5622. v1 = -int32(3)
  5623. } else {
  5624. v1 = m_Z_OK
  5625. }
  5626. return v1
  5627. }
  5628. // C documentation
  5629. //
  5630. // /* =========================================================================
  5631. // * Copy the source state to the destination state.
  5632. // * To simplify the source, this is not supported for 16-bit MSDOS (which
  5633. // * doesn't have enough memory anyway to duplicate compression states).
  5634. // */
  5635. func XdeflateCopy(tls *libc.TLS, dest Tz_streamp, source Tz_streamp) (r int32) {
  5636. var ds, ss uintptr
  5637. _, _ = ds, ss
  5638. if _deflateStateCheck(tls, source) != 0 || dest == uintptr(m_Z_NULL) {
  5639. return -int32(2)
  5640. }
  5641. ss = (*Tz_stream)(unsafe.Pointer(source)).Fstate
  5642. libc.Xmemcpy(tls, dest, source, uint32(56))
  5643. ds = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, uint32(libc.Int32FromInt32(1)), libc.Uint32FromInt64(5828))
  5644. if ds == uintptr(m_Z_NULL) {
  5645. return -int32(4)
  5646. }
  5647. (*Tz_stream)(unsafe.Pointer(dest)).Fstate = ds
  5648. libc.Xmemcpy(tls, ds, ss, uint32(5828))
  5649. (*Tdeflate_state)(unsafe.Pointer(ds)).Fstrm = dest
  5650. (*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, libc.Uint32FromInt32(2)*libc.Uint32FromInt64(1))
  5651. (*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, libc.Uint32FromInt64(2))
  5652. (*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, libc.Uint32FromInt64(2))
  5653. (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize, uint32(libc.Int32FromInt32(m_LIT_BUFS)))
  5654. 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) {
  5655. XdeflateEnd(tls, dest)
  5656. return -int32(4)
  5657. }
  5658. /* following zmemcpy do not work for 16-bit MSDOS */
  5659. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(ss)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size*uint32(2)*uint32(1))
  5660. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fprev, (*Tdeflate_state)(unsafe.Pointer(ss)).Fprev, (*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size*uint32(2))
  5661. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fhead, (*Tdeflate_state)(unsafe.Pointer(ss)).Fhead, (*Tdeflate_state)(unsafe.Pointer(ds)).Fhash_size*uint32(2))
  5662. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf, (*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_buf, (*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize*uint32(m_LIT_BUFS))
  5663. (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf + uintptr(int32((*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_out)-int32((*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_buf))
  5664. (*Tdeflate_state)(unsafe.Pointer(ds)).Fsym_buf = (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize)
  5665. (*Tdeflate_state)(unsafe.Pointer(ds)).Fl_desc.Fdyn_tree = ds + 148
  5666. (*Tdeflate_state)(unsafe.Pointer(ds)).Fd_desc.Fdyn_tree = ds + 2440
  5667. (*Tdeflate_state)(unsafe.Pointer(ds)).Fbl_desc.Fdyn_tree = ds + 2684
  5668. return m_Z_OK
  5669. }
  5670. // C documentation
  5671. //
  5672. // /* ===========================================================================
  5673. // * Set match_start to the longest match starting at the given string and
  5674. // * return its length. Matches shorter or equal to prev_length are discarded,
  5675. // * in which case the result is equal to prev_length and match_start is
  5676. // * garbage.
  5677. // * IN assertions: cur_match is the head of the hash chain for the current
  5678. // * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
  5679. // * OUT assertion: the match length is not greater than s->lookahead.
  5680. // */
  5681. func _longest_match(tls *libc.TLS, s uintptr, cur_match TIPos) (r TuInt) {
  5682. var best_len, len1, nice_match int32
  5683. var chain_length, v1, v3 uint32
  5684. var limit, v2 TIPos
  5685. var match, prev, scan, strend, v10, v11, v13, v14, v16, v17, v19, v20, v22, v23, v25, v26, v28, v29, v6, v8, v9 uintptr
  5686. var scan_end, scan_end1 TByte
  5687. var wmask TuInt
  5688. var v12, v15, v18, v21, v24, v27, v30, v4, v7 bool
  5689. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  5690. chain_length = (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length /* max hash chain length */
  5691. scan = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) /* length of current match */
  5692. best_len = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length) /* best match length so far */
  5693. nice_match = (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match
  5694. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  5695. v1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - ((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)))
  5696. } else {
  5697. v1 = uint32(m_NIL)
  5698. } /* stop if match long enough */
  5699. limit = v1
  5700. /* Stop when cur_match becomes <= limit. To simplify the code,
  5701. * we prevent matches with the string of window index 0.
  5702. */
  5703. prev = (*Tdeflate_state)(unsafe.Pointer(s)).Fprev
  5704. wmask = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask
  5705. strend = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uintptr(m_MAX_MATCH)
  5706. scan_end1 = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len-int32(1))))
  5707. scan_end = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len)))
  5708. /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
  5709. * It is easy to get rid of this optimization if necessary.
  5710. */
  5711. /* Do not waste too much time if we already have a good match: */
  5712. if (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length >= (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match {
  5713. chain_length >>= uint32(2)
  5714. }
  5715. /* Do not look for matches beyond the end of the input. This is necessary
  5716. * to make deflate deterministic.
  5717. */
  5718. if uint32(nice_match) > (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  5719. nice_match = int32((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead)
  5720. }
  5721. for {
  5722. match = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(cur_match)
  5723. /* Skip to next match if the match length cannot increase
  5724. * or if the match length is less than 2. Note that the checks below
  5725. * for insufficient lookahead only occur occasionally for performance
  5726. * reasons. Therefore uninitialized memory will be accessed, and
  5727. * conditional jumps will be made that depend on those values.
  5728. * However the length of the match is limited to the lookahead, so
  5729. * the output of deflate is not affected by the uninitialized values.
  5730. */
  5731. if v7 = int32(*(*TBytef)(unsafe.Pointer(match + uintptr(best_len)))) != int32(scan_end) || int32(*(*TBytef)(unsafe.Pointer(match + uintptr(best_len-int32(1))))) != int32(scan_end1) || int32(*(*TBytef)(unsafe.Pointer(match))) != int32(*(*TBytef)(unsafe.Pointer(scan))); !v7 {
  5732. match++
  5733. v6 = match
  5734. }
  5735. if v7 || int32(*(*TBytef)(unsafe.Pointer(v6))) != int32(*(*TBytef)(unsafe.Pointer(scan + 1))) {
  5736. goto _5
  5737. }
  5738. /* The check at best_len - 1 can be removed because it will be made
  5739. * again later. (This heuristic is not always a win.)
  5740. * It is not necessary to compare scan[2] and match[2] since they
  5741. * are always equal when the other bytes match, given that
  5742. * the hash keys are equal and that HASH_BITS >= 8.
  5743. */
  5744. scan += uintptr(2)
  5745. /* The check at best_len - 1 can be removed because it will be made
  5746. * again later. (This heuristic is not always a win.)
  5747. * It is not necessary to compare scan[2] and match[2] since they
  5748. * are always equal when the other bytes match, given that
  5749. * the hash keys are equal and that HASH_BITS >= 8.
  5750. */
  5751. match++
  5752. /* We check for insufficient lookahead only every 8th comparison;
  5753. * the 256th check will be made at strstart + 258.
  5754. */
  5755. for {
  5756. goto _31
  5757. _31:
  5758. ;
  5759. scan++
  5760. v8 = scan
  5761. match++
  5762. v9 = match
  5763. if v12 = int32(*(*TBytef)(unsafe.Pointer(v8))) == int32(*(*TBytef)(unsafe.Pointer(v9))); v12 {
  5764. scan++
  5765. v10 = scan
  5766. match++
  5767. v11 = match
  5768. }
  5769. if v15 = v12 && int32(*(*TBytef)(unsafe.Pointer(v10))) == int32(*(*TBytef)(unsafe.Pointer(v11))); v15 {
  5770. scan++
  5771. v13 = scan
  5772. match++
  5773. v14 = match
  5774. }
  5775. if v18 = v15 && int32(*(*TBytef)(unsafe.Pointer(v13))) == int32(*(*TBytef)(unsafe.Pointer(v14))); v18 {
  5776. scan++
  5777. v16 = scan
  5778. match++
  5779. v17 = match
  5780. }
  5781. if v21 = v18 && int32(*(*TBytef)(unsafe.Pointer(v16))) == int32(*(*TBytef)(unsafe.Pointer(v17))); v21 {
  5782. scan++
  5783. v19 = scan
  5784. match++
  5785. v20 = match
  5786. }
  5787. if v24 = v21 && int32(*(*TBytef)(unsafe.Pointer(v19))) == int32(*(*TBytef)(unsafe.Pointer(v20))); v24 {
  5788. scan++
  5789. v22 = scan
  5790. match++
  5791. v23 = match
  5792. }
  5793. if v27 = v24 && int32(*(*TBytef)(unsafe.Pointer(v22))) == int32(*(*TBytef)(unsafe.Pointer(v23))); v27 {
  5794. scan++
  5795. v25 = scan
  5796. match++
  5797. v26 = match
  5798. }
  5799. if v30 = v27 && int32(*(*TBytef)(unsafe.Pointer(v25))) == int32(*(*TBytef)(unsafe.Pointer(v26))); v30 {
  5800. scan++
  5801. v28 = scan
  5802. match++
  5803. v29 = match
  5804. }
  5805. if !(v30 && int32(*(*TBytef)(unsafe.Pointer(v28))) == int32(*(*TBytef)(unsafe.Pointer(v29))) && scan < strend) {
  5806. break
  5807. }
  5808. }
  5809. len1 = int32(m_MAX_MATCH) - (int32(strend) - int32(scan))
  5810. scan = strend - uintptr(m_MAX_MATCH)
  5811. if len1 > best_len {
  5812. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start = cur_match
  5813. best_len = len1
  5814. if len1 >= nice_match {
  5815. break
  5816. }
  5817. scan_end1 = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len-int32(1))))
  5818. scan_end = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len)))
  5819. }
  5820. goto _5
  5821. _5:
  5822. ;
  5823. v2 = uint32(*(*TPosf)(unsafe.Pointer(prev + uintptr(cur_match&wmask)*2)))
  5824. cur_match = v2
  5825. if v4 = v2 > limit; v4 {
  5826. chain_length--
  5827. v3 = chain_length
  5828. }
  5829. if !(v4 && v3 != uint32(0)) {
  5830. break
  5831. }
  5832. }
  5833. if uint32(best_len) <= (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  5834. return uint32(best_len)
  5835. }
  5836. return (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  5837. }
  5838. /* ===========================================================================
  5839. * Flush the current block, with given end-of-file flag.
  5840. * IN assertion: strstart is set to the end of the current match.
  5841. */
  5842. /* Same but force premature exit if necessary. */
  5843. /* Maximum stored block length in deflate format (not including header). */
  5844. /* Minimum of a and b. */
  5845. // C documentation
  5846. //
  5847. // /* ===========================================================================
  5848. // * Copy without compression as much as possible from the input stream, return
  5849. // * the current block state.
  5850. // *
  5851. // * In case deflateParams() is used to later switch to a non-zero compression
  5852. // * level, s->matches (otherwise unused when storing) keeps track of the number
  5853. // * of hash table slides to perform. If s->matches is 1, then one hash table
  5854. // * slide will be done when switching. If s->matches is 2, the maximum value
  5855. // * allowed here, then the hash table will be cleared, since two or more slides
  5856. // * is the same as a clear.
  5857. // *
  5858. // * deflate_stored() is written to minimize the number of times an input byte is
  5859. // * copied. It is most efficient with large input and output buffers, which
  5860. // * maximizes the opportunities to have a single copy from next_in to next_out.
  5861. // */
  5862. func _deflate_stored(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  5863. var have, last, left, len1, min_block, used, v1, v4, v6, v7, v8, v9 uint32
  5864. var v10, v12, v2 int32
  5865. var p11, p3, p5 uintptr
  5866. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = have, last, left, len1, min_block, used, v1, v10, v12, v2, v4, v6, v7, v8, v9, p11, p3, p5
  5867. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size-uint32(5) > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  5868. v1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  5869. } else {
  5870. v1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - uint32(5)
  5871. }
  5872. /* Smallest worthy block size when not flushing or finishing. By default
  5873. * this is 32K. This can be as small as 507 bytes for memLevel == 1. For
  5874. * large input and output buffers, the stored block size will be larger.
  5875. */
  5876. min_block = v1
  5877. last = uint32(0)
  5878. used = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  5879. for cond := true; cond; cond = last == uint32(0) {
  5880. /* Set len to the maximum size block that we can copy directly with the
  5881. * available input data and output space. Set left to how much of that
  5882. * would be copied from what's left in the window.
  5883. */
  5884. len1 = uint32(m_MAX_STORED) /* maximum deflate stored block length */
  5885. have = uint32(((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid + int32(42)) >> int32(3)) /* number of header bytes */
  5886. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out < have { /* need room for header */
  5887. break
  5888. }
  5889. /* maximum stored block length that will fit in avail_out: */
  5890. have = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out - have
  5891. left = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start) /* bytes left in window */
  5892. if len1 > left+(*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  5893. len1 = left + (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  5894. } /* limit len to the input */
  5895. if len1 > have {
  5896. len1 = have
  5897. } /* limit len to the output */
  5898. /* If the stored block would be less than min_block in length, or if
  5899. * unable to copy all of the available input when flushing, then try
  5900. * copying to the window and the pending buffer instead. Also don't
  5901. * write an empty block when flushing -- deflate() does that.
  5902. */
  5903. 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) {
  5904. break
  5905. }
  5906. /* Make a dummy stored block in pending to get the header bytes,
  5907. * including any pending bits. This also updates the debugging counts.
  5908. */
  5909. if flush == int32(m_Z_FINISH) && len1 == left+(*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  5910. v2 = int32(1)
  5911. } else {
  5912. v2 = 0
  5913. }
  5914. last = uint32(v2)
  5915. x__tr_stored_block(tls, s, libc.UintptrFromInt32(0), uint32(0), int32(last))
  5916. /* Replace the lengths in the dummy stored block with len. */
  5917. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint32(4)))) = uint8(len1)
  5918. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint32(3)))) = uint8(len1 >> int32(8))
  5919. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint32(2)))) = uint8(^len1)
  5920. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint32(1)))) = uint8(^len1 >> int32(8))
  5921. /* Write the stored block header bytes. */
  5922. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  5923. /* Copy uncompressed bytes from the window to next_out. */
  5924. if left != 0 {
  5925. if left > len1 {
  5926. left = len1
  5927. }
  5928. 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), left)
  5929. *(*uintptr)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 12)) += uintptr(left)
  5930. *(*TuInt)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 16)) -= left
  5931. *(*TuLong)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 20)) += left
  5932. p3 = s + 92
  5933. *(*int32)(unsafe.Pointer(p3)) = int32(uint32(*(*int32)(unsafe.Pointer(p3))) + left)
  5934. len1 -= left
  5935. }
  5936. /* Copy uncompressed bytes directly from next_in to next_out, updating
  5937. * the check value.
  5938. */
  5939. if len1 != 0 {
  5940. _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_out, len1)
  5941. *(*uintptr)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 12)) += uintptr(len1)
  5942. *(*TuInt)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 16)) -= len1
  5943. *(*TuLong)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 20)) += len1
  5944. }
  5945. }
  5946. /* Update the sliding window with the last s->w_size bytes of the copied
  5947. * data, or append all of the copied data to the existing window if less
  5948. * than s->w_size bytes were copied. Also update the number of bytes to
  5949. * insert in the hash tables, in the event that deflateParams() switches to
  5950. * a non-zero compression level.
  5951. */
  5952. used -= (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in /* number of input bytes directly copied */
  5953. if used != 0 {
  5954. /* If any input was used, then no unused input remains in the window,
  5955. * therefore s->block_start == s->strstart.
  5956. */
  5957. if used >= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size { /* supplant the previous history */
  5958. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = uint32(2) /* clear hash */
  5959. 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), (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  5960. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  5961. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  5962. } else {
  5963. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size-(*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart <= used {
  5964. /* Slide the window down. */
  5965. *(*TuInt)(unsafe.Pointer(s + 108)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  5966. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size), (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  5967. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches < uint32(2) {
  5968. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  5969. } /* add a pending slide_hash() */
  5970. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  5971. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  5972. }
  5973. }
  5974. 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), used)
  5975. *(*TuInt)(unsafe.Pointer(s + 108)) += used
  5976. if used > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-(*Tdeflate_state)(unsafe.Pointer(s)).Finsert {
  5977. v4 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  5978. } else {
  5979. v4 = used
  5980. }
  5981. *(*TuInt)(unsafe.Pointer(s + 5812)) += v4
  5982. }
  5983. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  5984. }
  5985. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  5986. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  5987. }
  5988. /* If the last block was written to next_out, then done. */
  5989. if last != 0 {
  5990. return int32(_finish_done)
  5991. }
  5992. /* If flushing and all input has been consumed, then done. */
  5993. 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) && int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) == (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start {
  5994. return int32(_block_done)
  5995. }
  5996. /* Fill the window with any remaining input. */
  5997. have = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  5998. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in > have && (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= int32((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) {
  5999. /* Slide the window down. */
  6000. p5 = s + 92
  6001. *(*int32)(unsafe.Pointer(p5)) = int32(uint32(*(*int32)(unsafe.Pointer(p5))) - (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  6002. *(*TuInt)(unsafe.Pointer(s + 108)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6003. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size), (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6004. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches < uint32(2) {
  6005. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  6006. } /* add a pending slide_hash() */
  6007. have += (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size /* more space now */
  6008. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  6009. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6010. }
  6011. }
  6012. if have > (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  6013. have = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  6014. }
  6015. if have != 0 {
  6016. _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart), have)
  6017. *(*TuInt)(unsafe.Pointer(s + 108)) += have
  6018. if have > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-(*Tdeflate_state)(unsafe.Pointer(s)).Finsert {
  6019. v6 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  6020. } else {
  6021. v6 = have
  6022. }
  6023. *(*TuInt)(unsafe.Pointer(s + 5812)) += v6
  6024. }
  6025. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  6026. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6027. }
  6028. /* There was not enough avail_out to write a complete worthy or flushed
  6029. * stored block to next_out. Write a stored block to pending instead, if we
  6030. * have enough input for a worthy block, or if flushing and there is enough
  6031. * room for the remaining input as a stored block in the pending buffer.
  6032. */
  6033. have = uint32(((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid + int32(42)) >> int32(3)) /* number of header bytes */
  6034. /* maximum stored block length that will fit in pending: */
  6035. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size-have > uint32(libc.Int32FromInt32(m_MAX_STORED)) {
  6036. v7 = uint32(libc.Int32FromInt32(m_MAX_STORED))
  6037. } else {
  6038. v7 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - have
  6039. }
  6040. have = v7
  6041. if have > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  6042. v8 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6043. } else {
  6044. v8 = have
  6045. }
  6046. min_block = v8
  6047. left = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start)
  6048. 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 {
  6049. if left > have {
  6050. v9 = have
  6051. } else {
  6052. v9 = left
  6053. }
  6054. len1 = v9
  6055. if flush == int32(m_Z_FINISH) && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) && len1 == left {
  6056. v10 = int32(1)
  6057. } else {
  6058. v10 = 0
  6059. }
  6060. last = uint32(v10)
  6061. x__tr_stored_block(tls, s, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), len1, int32(last))
  6062. p11 = s + 92
  6063. *(*int32)(unsafe.Pointer(p11)) = int32(uint32(*(*int32)(unsafe.Pointer(p11))) + len1)
  6064. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6065. }
  6066. /* We've done all we can with the available input and output. */
  6067. if last != 0 {
  6068. v12 = int32(_finish_started)
  6069. } else {
  6070. v12 = int32(_need_more)
  6071. }
  6072. return v12
  6073. }
  6074. // C documentation
  6075. //
  6076. // /* ===========================================================================
  6077. // * Compress as much as possible from the input stream, return the current
  6078. // * block state.
  6079. // * This function does not perform lazy evaluation of matches and inserts
  6080. // * new strings in the dictionary only for unmatched strings or for short
  6081. // * matches. It is used only for the fast compression options.
  6082. // */
  6083. func _deflate_fast(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6084. var bflush, v9 int32
  6085. var cc, len1 Tuch
  6086. var dist Tush
  6087. var hash_head TIPos
  6088. var v10, v14, v16, v18, v3, v5, v7 TuInt
  6089. var v11, v15, v17, v19, v20, v22, v23, v4, v6, v8 uintptr
  6090. var v13, v2 TPosf
  6091. var v21 uint32
  6092. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  6093. for {
  6094. /* Make sure that we always have enough lookahead, except
  6095. * at the end of the input file. We need MAX_MATCH bytes
  6096. * for the next match, plus MIN_MATCH bytes to insert the
  6097. * string following the next match.
  6098. */
  6099. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6100. _fill_window(tls, s)
  6101. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && flush == m_Z_NO_FLUSH {
  6102. return int32(_need_more)
  6103. }
  6104. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6105. break
  6106. } /* flush the current block */
  6107. }
  6108. /* Insert the string window[strstart .. strstart + 2] in the
  6109. * dictionary, and set hash_head to the head of the hash chain:
  6110. */
  6111. hash_head = uint32(m_NIL)
  6112. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  6113. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6114. v2 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6115. *(*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
  6116. hash_head = uint32(v2)
  6117. *(*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)
  6118. }
  6119. /* Find the longest match, discarding those <= prev_length.
  6120. * At this point we have always match_length < MIN_MATCH
  6121. */
  6122. if hash_head != uint32(m_NIL) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-hash_head <= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6123. /* To simplify the code, we prevent matches with the string
  6124. * of window index 0 (in particular we have to avoid a match
  6125. * of the string with itself at the start of the input file).
  6126. */
  6127. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = _longest_match(tls, s, hash_head)
  6128. /* longest_match() sets match_start */
  6129. }
  6130. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length >= uint32(m_MIN_MATCH) {
  6131. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length - libc.Uint32FromInt32(m_MIN_MATCH))
  6132. dist = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start)
  6133. v4 = s + 5792
  6134. v3 = *(*TuInt)(unsafe.Pointer(v4))
  6135. *(*TuInt)(unsafe.Pointer(v4))++
  6136. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist)
  6137. v6 = s + 5792
  6138. v5 = *(*TuInt)(unsafe.Pointer(v6))
  6139. *(*TuInt)(unsafe.Pointer(v6))++
  6140. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = uint8(int32(dist) >> libc.Int32FromInt32(8))
  6141. v8 = s + 5792
  6142. v7 = *(*TuInt)(unsafe.Pointer(v8))
  6143. *(*TuInt)(unsafe.Pointer(v8))++
  6144. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v7))) = len1
  6145. dist--
  6146. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(int32(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  6147. if int32(dist) < int32(256) {
  6148. v9 = int32(x__dist_code[dist])
  6149. } else {
  6150. v9 = int32(x__dist_code[int32(256)+int32(dist)>>int32(7)])
  6151. }
  6152. *(*Tush)(unsafe.Pointer(s + 2440 + uintptr(v9)*4))++
  6153. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6154. *(*TuInt)(unsafe.Pointer(s + 116)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6155. /* Insert new strings in the hash table only if the match length
  6156. * is not too large. This saves time but degrades compression.
  6157. */
  6158. 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) {
  6159. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length-- /* string at strstart already in table */
  6160. for {
  6161. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6162. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6163. v13 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6164. *(*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
  6165. hash_head = uint32(v13)
  6166. *(*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)
  6167. /* strstart never exceeds WSIZE-MAX_MATCH, so there are
  6168. * always MIN_MATCH bytes ahead.
  6169. */
  6170. goto _12
  6171. _12:
  6172. ;
  6173. v11 = s + 96
  6174. *(*TuInt)(unsafe.Pointer(v11))--
  6175. v10 = *(*TuInt)(unsafe.Pointer(v11))
  6176. if !(v10 != uint32(0)) {
  6177. break
  6178. }
  6179. }
  6180. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6181. } else {
  6182. *(*TuInt)(unsafe.Pointer(s + 108)) += (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6183. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6184. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))))
  6185. (*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
  6186. /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
  6187. * matter since it will be recomputed at next deflate call.
  6188. */
  6189. }
  6190. } else {
  6191. /* No match, output a literal byte */
  6192. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  6193. v15 = s + 5792
  6194. v14 = *(*TuInt)(unsafe.Pointer(v15))
  6195. *(*TuInt)(unsafe.Pointer(v15))++
  6196. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v14))) = uint8(0)
  6197. v17 = s + 5792
  6198. v16 = *(*TuInt)(unsafe.Pointer(v17))
  6199. *(*TuInt)(unsafe.Pointer(v17))++
  6200. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v16))) = uint8(0)
  6201. v19 = s + 5792
  6202. v18 = *(*TuInt)(unsafe.Pointer(v19))
  6203. *(*TuInt)(unsafe.Pointer(v19))++
  6204. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v18))) = cc
  6205. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(cc)*4))++
  6206. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6207. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6208. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6209. }
  6210. if bflush != 0 {
  6211. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6212. v20 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6213. } else {
  6214. v20 = libc.UintptrFromInt32(m_Z_NULL)
  6215. }
  6216. x__tr_flush_block(tls, s, v20, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6217. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6218. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6219. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6220. return int32(_need_more)
  6221. }
  6222. }
  6223. goto _1
  6224. _1:
  6225. }
  6226. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart < uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1)) {
  6227. v21 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6228. } else {
  6229. v21 = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6230. }
  6231. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = v21
  6232. if flush == int32(m_Z_FINISH) {
  6233. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6234. v22 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6235. } else {
  6236. v22 = libc.UintptrFromInt32(m_Z_NULL)
  6237. }
  6238. x__tr_flush_block(tls, s, v22, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6239. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6240. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6241. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6242. return int32(_finish_started)
  6243. }
  6244. return int32(_finish_done)
  6245. }
  6246. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6247. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6248. v23 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6249. } else {
  6250. v23 = libc.UintptrFromInt32(m_Z_NULL)
  6251. }
  6252. x__tr_flush_block(tls, s, v23, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6253. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6254. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6255. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6256. return int32(_need_more)
  6257. }
  6258. }
  6259. return int32(_block_done)
  6260. }
  6261. // C documentation
  6262. //
  6263. // /* ===========================================================================
  6264. // * Same as above, but achieves better compression. We use a lazy
  6265. // * evaluation for matches: a match is finally adopted only if there is
  6266. // * no better match at the next window position.
  6267. // */
  6268. func _deflate_slow(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6269. var bflush, v9 int32
  6270. var cc, cc1, len1 Tuch
  6271. var dist Tush
  6272. var hash_head TIPos
  6273. var max_insert, v10, v13, v17, v19, v21, v24, v26, v28, v3, v5, v7 TuInt
  6274. var v11, v14, v16, v18, v20, v22, v23, v25, v27, v29, v31, v32, v4, v6, v8 uintptr
  6275. var v15, v2 TPosf
  6276. var v30 uint32
  6277. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  6278. /* Process the input block. */
  6279. for {
  6280. /* Make sure that we always have enough lookahead, except
  6281. * at the end of the input file. We need MAX_MATCH bytes
  6282. * for the next match, plus MIN_MATCH bytes to insert the
  6283. * string following the next match.
  6284. */
  6285. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6286. _fill_window(tls, s)
  6287. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && flush == m_Z_NO_FLUSH {
  6288. return int32(_need_more)
  6289. }
  6290. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6291. break
  6292. } /* flush the current block */
  6293. }
  6294. /* Insert the string window[strstart .. strstart + 2] in the
  6295. * dictionary, and set hash_head to the head of the hash chain:
  6296. */
  6297. hash_head = uint32(m_NIL)
  6298. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  6299. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6300. v2 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6301. *(*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
  6302. hash_head = uint32(v2)
  6303. *(*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)
  6304. }
  6305. /* Find the longest match, discarding those <= prev_length.
  6306. */
  6307. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6308. /* Find the longest match, discarding those <= prev_length.
  6309. */
  6310. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_match = (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start
  6311. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6312. if hash_head != uint32(m_NIL) && (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length < (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-hash_head <= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6313. /* To simplify the code, we prevent matches with the string
  6314. * of window index 0 (in particular we have to avoid a match
  6315. * of the string with itself at the start of the input file).
  6316. */
  6317. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = _longest_match(tls, s, hash_head)
  6318. /* longest_match() sets match_start */
  6319. 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)) {
  6320. /* If prev_match is also MIN_MATCH, match_start is garbage
  6321. * but we will ignore the current match anyway.
  6322. */
  6323. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6324. }
  6325. }
  6326. /* If there was a match at the previous step and the current
  6327. * match is not better, output the previous match:
  6328. */
  6329. 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 {
  6330. max_insert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - uint32(m_MIN_MATCH)
  6331. /* Do not insert strings in hash table beyond this. */
  6332. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length - libc.Uint32FromInt32(m_MIN_MATCH))
  6333. dist = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - libc.Uint32FromInt32(1) - (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_match)
  6334. v4 = s + 5792
  6335. v3 = *(*TuInt)(unsafe.Pointer(v4))
  6336. *(*TuInt)(unsafe.Pointer(v4))++
  6337. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist)
  6338. v6 = s + 5792
  6339. v5 = *(*TuInt)(unsafe.Pointer(v6))
  6340. *(*TuInt)(unsafe.Pointer(v6))++
  6341. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = uint8(int32(dist) >> libc.Int32FromInt32(8))
  6342. v8 = s + 5792
  6343. v7 = *(*TuInt)(unsafe.Pointer(v8))
  6344. *(*TuInt)(unsafe.Pointer(v8))++
  6345. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v7))) = len1
  6346. dist--
  6347. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(int32(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  6348. if int32(dist) < int32(256) {
  6349. v9 = int32(x__dist_code[dist])
  6350. } else {
  6351. v9 = int32(x__dist_code[int32(256)+int32(dist)>>int32(7)])
  6352. }
  6353. *(*Tush)(unsafe.Pointer(s + 2440 + uintptr(v9)*4))++
  6354. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6355. /* Insert in hash table all strings up to the end of the match.
  6356. * strstart - 1 and strstart are already inserted. If there is not
  6357. * enough lookahead, the last two strings are not inserted in
  6358. * the hash table.
  6359. */
  6360. *(*TuInt)(unsafe.Pointer(s + 116)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length - uint32(1)
  6361. *(*TuInt)(unsafe.Pointer(s + 120)) -= uint32(2)
  6362. for {
  6363. v14 = s + 108
  6364. *(*TuInt)(unsafe.Pointer(v14))++
  6365. v13 = *(*TuInt)(unsafe.Pointer(v14))
  6366. if v13 <= max_insert {
  6367. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6368. v15 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6369. *(*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
  6370. hash_head = uint32(v15)
  6371. *(*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)
  6372. }
  6373. goto _12
  6374. _12:
  6375. ;
  6376. v11 = s + 120
  6377. *(*TuInt)(unsafe.Pointer(v11))--
  6378. v10 = *(*TuInt)(unsafe.Pointer(v11))
  6379. if !(v10 != uint32(0)) {
  6380. break
  6381. }
  6382. }
  6383. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  6384. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6385. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6386. if bflush != 0 {
  6387. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6388. v16 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6389. } else {
  6390. v16 = libc.UintptrFromInt32(m_Z_NULL)
  6391. }
  6392. x__tr_flush_block(tls, s, v16, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6393. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6394. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6395. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6396. return int32(_need_more)
  6397. }
  6398. }
  6399. } else {
  6400. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available != 0 {
  6401. /* If there was no match at the previous position, output a
  6402. * single literal. If there was a match but the current match
  6403. * is longer, truncate the previous match to a single literal.
  6404. */
  6405. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-uint32(1))))
  6406. v18 = s + 5792
  6407. v17 = *(*TuInt)(unsafe.Pointer(v18))
  6408. *(*TuInt)(unsafe.Pointer(v18))++
  6409. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v17))) = uint8(0)
  6410. v20 = s + 5792
  6411. v19 = *(*TuInt)(unsafe.Pointer(v20))
  6412. *(*TuInt)(unsafe.Pointer(v20))++
  6413. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v19))) = uint8(0)
  6414. v22 = s + 5792
  6415. v21 = *(*TuInt)(unsafe.Pointer(v22))
  6416. *(*TuInt)(unsafe.Pointer(v22))++
  6417. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v21))) = cc
  6418. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(cc)*4))++
  6419. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6420. if bflush != 0 {
  6421. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6422. v23 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6423. } else {
  6424. v23 = libc.UintptrFromInt32(m_Z_NULL)
  6425. }
  6426. x__tr_flush_block(tls, s, v23, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6427. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6428. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6429. }
  6430. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6431. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6432. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6433. return int32(_need_more)
  6434. }
  6435. } else {
  6436. /* There is no previous match to compare with, wait for
  6437. * the next step to decide.
  6438. */
  6439. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = int32(1)
  6440. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6441. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6442. }
  6443. }
  6444. goto _1
  6445. _1:
  6446. }
  6447. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available != 0 {
  6448. cc1 = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-uint32(1))))
  6449. v25 = s + 5792
  6450. v24 = *(*TuInt)(unsafe.Pointer(v25))
  6451. *(*TuInt)(unsafe.Pointer(v25))++
  6452. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v24))) = uint8(0)
  6453. v27 = s + 5792
  6454. v26 = *(*TuInt)(unsafe.Pointer(v27))
  6455. *(*TuInt)(unsafe.Pointer(v27))++
  6456. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v26))) = uint8(0)
  6457. v29 = s + 5792
  6458. v28 = *(*TuInt)(unsafe.Pointer(v29))
  6459. *(*TuInt)(unsafe.Pointer(v29))++
  6460. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v28))) = cc1
  6461. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(cc1)*4))++
  6462. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6463. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  6464. }
  6465. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart < uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1)) {
  6466. v30 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6467. } else {
  6468. v30 = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6469. }
  6470. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = v30
  6471. if flush == int32(m_Z_FINISH) {
  6472. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6473. v31 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6474. } else {
  6475. v31 = libc.UintptrFromInt32(m_Z_NULL)
  6476. }
  6477. x__tr_flush_block(tls, s, v31, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6478. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6479. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6480. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6481. return int32(_finish_started)
  6482. }
  6483. return int32(_finish_done)
  6484. }
  6485. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6486. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6487. v32 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6488. } else {
  6489. v32 = libc.UintptrFromInt32(m_Z_NULL)
  6490. }
  6491. x__tr_flush_block(tls, s, v32, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6492. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6493. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6494. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6495. return int32(_need_more)
  6496. }
  6497. }
  6498. return int32(_block_done)
  6499. }
  6500. // C documentation
  6501. //
  6502. // /* ===========================================================================
  6503. // * For Z_RLE, simply look for runs of bytes, generate matches only of distance
  6504. // * one. Do not maintain a hash table. (It will be regenerated if this run of
  6505. // * deflate switches away from Z_RLE.)
  6506. // */
  6507. func _deflate_rle(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6508. var bflush, v29 int32
  6509. var cc, len1 Tuch
  6510. var dist Tush
  6511. var prev, v23, v25, v27, v30, v32, v34 TuInt
  6512. var scan, strend, v10, v12, v14, v16, v18, v2, v20, v24, v26, v28, v3, v31, v33, v35, v36, v37, v38, v5, v7, v8 uintptr
  6513. var v11, v13, v15, v17, v19, v21, v4, v6, v9 bool
  6514. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  6515. for {
  6516. /* Make sure that we always have enough lookahead, except
  6517. * at the end of the input file. We need MAX_MATCH bytes
  6518. * for the longest run, plus one for the unrolled loop.
  6519. */
  6520. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead <= uint32(m_MAX_MATCH) {
  6521. _fill_window(tls, s)
  6522. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead <= uint32(m_MAX_MATCH) && flush == m_Z_NO_FLUSH {
  6523. return int32(_need_more)
  6524. }
  6525. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6526. break
  6527. } /* flush the current block */
  6528. }
  6529. /* See how many times the previous byte repeats */
  6530. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6531. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart > uint32(0) {
  6532. scan = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - uintptr(1)
  6533. prev = uint32(*(*TBytef)(unsafe.Pointer(scan)))
  6534. scan++
  6535. v2 = scan
  6536. if v4 = prev == uint32(*(*TBytef)(unsafe.Pointer(v2))); v4 {
  6537. scan++
  6538. v3 = scan
  6539. }
  6540. if v6 = v4 && prev == uint32(*(*TBytef)(unsafe.Pointer(v3))); v6 {
  6541. scan++
  6542. v5 = scan
  6543. }
  6544. if v6 && prev == uint32(*(*TBytef)(unsafe.Pointer(v5))) {
  6545. strend = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uintptr(m_MAX_MATCH)
  6546. for {
  6547. goto _22
  6548. _22:
  6549. ;
  6550. scan++
  6551. v7 = scan
  6552. if v9 = prev == uint32(*(*TBytef)(unsafe.Pointer(v7))); v9 {
  6553. scan++
  6554. v8 = scan
  6555. }
  6556. if v11 = v9 && prev == uint32(*(*TBytef)(unsafe.Pointer(v8))); v11 {
  6557. scan++
  6558. v10 = scan
  6559. }
  6560. if v13 = v11 && prev == uint32(*(*TBytef)(unsafe.Pointer(v10))); v13 {
  6561. scan++
  6562. v12 = scan
  6563. }
  6564. if v15 = v13 && prev == uint32(*(*TBytef)(unsafe.Pointer(v12))); v15 {
  6565. scan++
  6566. v14 = scan
  6567. }
  6568. if v17 = v15 && prev == uint32(*(*TBytef)(unsafe.Pointer(v14))); v17 {
  6569. scan++
  6570. v16 = scan
  6571. }
  6572. if v19 = v17 && prev == uint32(*(*TBytef)(unsafe.Pointer(v16))); v19 {
  6573. scan++
  6574. v18 = scan
  6575. }
  6576. if v21 = v19 && prev == uint32(*(*TBytef)(unsafe.Pointer(v18))); v21 {
  6577. scan++
  6578. v20 = scan
  6579. }
  6580. if !(v21 && prev == uint32(*(*TBytef)(unsafe.Pointer(v20))) && scan < strend) {
  6581. break
  6582. }
  6583. }
  6584. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(m_MAX_MATCH) - uint32(int32(strend)-int32(scan))
  6585. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length > (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  6586. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  6587. }
  6588. }
  6589. }
  6590. /* Emit match if have run of MIN_MATCH or longer, else emit literal */
  6591. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length >= uint32(m_MIN_MATCH) {
  6592. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length - libc.Uint32FromInt32(m_MIN_MATCH))
  6593. dist = uint16(libc.Int32FromInt32(1))
  6594. v24 = s + 5792
  6595. v23 = *(*TuInt)(unsafe.Pointer(v24))
  6596. *(*TuInt)(unsafe.Pointer(v24))++
  6597. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v23))) = uint8(dist)
  6598. v26 = s + 5792
  6599. v25 = *(*TuInt)(unsafe.Pointer(v26))
  6600. *(*TuInt)(unsafe.Pointer(v26))++
  6601. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v25))) = uint8(int32(dist) >> libc.Int32FromInt32(8))
  6602. v28 = s + 5792
  6603. v27 = *(*TuInt)(unsafe.Pointer(v28))
  6604. *(*TuInt)(unsafe.Pointer(v28))++
  6605. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v27))) = len1
  6606. dist--
  6607. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(int32(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  6608. if int32(dist) < int32(256) {
  6609. v29 = int32(x__dist_code[dist])
  6610. } else {
  6611. v29 = int32(x__dist_code[int32(256)+int32(dist)>>int32(7)])
  6612. }
  6613. *(*Tush)(unsafe.Pointer(s + 2440 + uintptr(v29)*4))++
  6614. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6615. *(*TuInt)(unsafe.Pointer(s + 116)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6616. *(*TuInt)(unsafe.Pointer(s + 108)) += (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6617. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6618. } else {
  6619. /* No match, output a literal byte */
  6620. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  6621. v31 = s + 5792
  6622. v30 = *(*TuInt)(unsafe.Pointer(v31))
  6623. *(*TuInt)(unsafe.Pointer(v31))++
  6624. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v30))) = uint8(0)
  6625. v33 = s + 5792
  6626. v32 = *(*TuInt)(unsafe.Pointer(v33))
  6627. *(*TuInt)(unsafe.Pointer(v33))++
  6628. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v32))) = uint8(0)
  6629. v35 = s + 5792
  6630. v34 = *(*TuInt)(unsafe.Pointer(v35))
  6631. *(*TuInt)(unsafe.Pointer(v35))++
  6632. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v34))) = cc
  6633. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(cc)*4))++
  6634. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6635. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6636. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6637. }
  6638. if bflush != 0 {
  6639. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6640. v36 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6641. } else {
  6642. v36 = libc.UintptrFromInt32(m_Z_NULL)
  6643. }
  6644. x__tr_flush_block(tls, s, v36, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6645. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6646. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6647. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6648. return int32(_need_more)
  6649. }
  6650. }
  6651. goto _1
  6652. _1:
  6653. }
  6654. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  6655. if flush == int32(m_Z_FINISH) {
  6656. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6657. v37 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6658. } else {
  6659. v37 = libc.UintptrFromInt32(m_Z_NULL)
  6660. }
  6661. x__tr_flush_block(tls, s, v37, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6662. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6663. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6664. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6665. return int32(_finish_started)
  6666. }
  6667. return int32(_finish_done)
  6668. }
  6669. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6670. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6671. v38 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6672. } else {
  6673. v38 = libc.UintptrFromInt32(m_Z_NULL)
  6674. }
  6675. x__tr_flush_block(tls, s, v38, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6676. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6677. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6678. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6679. return int32(_need_more)
  6680. }
  6681. }
  6682. return int32(_block_done)
  6683. }
  6684. // C documentation
  6685. //
  6686. // /* ===========================================================================
  6687. // * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.
  6688. // * (It will be regenerated if this run of deflate switches away from Huffman.)
  6689. // */
  6690. func _deflate_huff(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6691. var bflush int32
  6692. var cc Tuch
  6693. var v10, v3, v5, v7, v8, v9 uintptr
  6694. var v2, v4, v6 TuInt
  6695. _, _, _, _, _, _, _, _, _, _, _ = bflush, cc, v10, v2, v3, v4, v5, v6, v7, v8, v9 /* set if current block must be flushed */
  6696. for {
  6697. /* Make sure that we have a literal to write. */
  6698. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6699. _fill_window(tls, s)
  6700. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6701. if flush == m_Z_NO_FLUSH {
  6702. return int32(_need_more)
  6703. }
  6704. break /* flush the current block */
  6705. }
  6706. }
  6707. /* Output a literal byte */
  6708. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6709. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  6710. v3 = s + 5792
  6711. v2 = *(*TuInt)(unsafe.Pointer(v3))
  6712. *(*TuInt)(unsafe.Pointer(v3))++
  6713. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v2))) = uint8(0)
  6714. v5 = s + 5792
  6715. v4 = *(*TuInt)(unsafe.Pointer(v5))
  6716. *(*TuInt)(unsafe.Pointer(v5))++
  6717. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v4))) = uint8(0)
  6718. v7 = s + 5792
  6719. v6 = *(*TuInt)(unsafe.Pointer(v7))
  6720. *(*TuInt)(unsafe.Pointer(v7))++
  6721. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v6))) = cc
  6722. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(cc)*4))++
  6723. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6724. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6725. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6726. if bflush != 0 {
  6727. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6728. v8 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6729. } else {
  6730. v8 = libc.UintptrFromInt32(m_Z_NULL)
  6731. }
  6732. x__tr_flush_block(tls, s, v8, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6733. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6734. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6735. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6736. return int32(_need_more)
  6737. }
  6738. }
  6739. goto _1
  6740. _1:
  6741. }
  6742. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  6743. if flush == int32(m_Z_FINISH) {
  6744. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6745. v9 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6746. } else {
  6747. v9 = libc.UintptrFromInt32(m_Z_NULL)
  6748. }
  6749. x__tr_flush_block(tls, s, v9, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6750. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6751. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6752. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6753. return int32(_finish_started)
  6754. }
  6755. return int32(_finish_done)
  6756. }
  6757. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6758. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6759. v10 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6760. } else {
  6761. v10 = libc.UintptrFromInt32(m_Z_NULL)
  6762. }
  6763. x__tr_flush_block(tls, s, v10, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6764. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6765. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6766. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6767. return int32(_need_more)
  6768. }
  6769. }
  6770. return int32(_block_done)
  6771. }
  6772. const m_BUFSIZ = 512
  6773. const m_COPY = 1
  6774. const m_FILENAME_MAX = 260
  6775. const m_FOPEN_MAX = 20
  6776. const m_F_OK = 0
  6777. const m_GZBUFSIZE = 8192
  6778. const m_GZIP = 2
  6779. const m_GZ_APPEND = 1
  6780. const m_GZ_NONE = 0
  6781. const m_GZ_READ = 7247
  6782. const m_GZ_WRITE = 31153
  6783. const m_LOOK = 0
  6784. const m_L_tmpnam_s = "L_tmpnam"
  6785. const m_O_ACCMODE = "_O_ACCMODE"
  6786. const m_O_APPEND = "_O_APPEND"
  6787. const m_O_BINARY = "_O_BINARY"
  6788. const m_O_CREAT = "_O_CREAT"
  6789. const m_O_EXCL = "_O_EXCL"
  6790. const m_O_NOINHERIT = "_O_NOINHERIT"
  6791. const m_O_RANDOM = "_O_RANDOM"
  6792. const m_O_RAW = "_O_BINARY"
  6793. const m_O_RDONLY = "_O_RDONLY"
  6794. const m_O_RDWR = "_O_RDWR"
  6795. const m_O_SEQUENTIAL = "_O_SEQUENTIAL"
  6796. const m_O_TEMPORARY = "_O_TEMPORARY"
  6797. const m_O_TEXT = "_O_TEXT"
  6798. const m_O_TRUNC = "_O_TRUNC"
  6799. const m_O_WRONLY = "_O_WRONLY"
  6800. const m_P_tmpdir = "_P_tmpdir"
  6801. const m_R_OK = 4
  6802. const m_STDERR_FILENO = 2
  6803. const m_STDIN_FILENO = 0
  6804. const m_STDOUT_FILENO = 1
  6805. const m_SYS_OPEN = "_SYS_OPEN"
  6806. const m_TMP_MAX = 32767
  6807. const m_TMP_MAX_S = "TMP_MAX"
  6808. const m_W_OK = 2
  6809. const m_X_OK = 1
  6810. const m__A_ARCH = 0x20
  6811. const m__A_HIDDEN = 0x02
  6812. const m__A_NORMAL = 0x00
  6813. const m__A_RDONLY = 0x01
  6814. const m__A_SUBDIR = 0x10
  6815. const m__A_SYSTEM = 0x04
  6816. const m__CRT_INTERNAL_LOCAL_PRINTF_OPTIONS = "_CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS"
  6817. const m__CRT_INTERNAL_LOCAL_SCANF_OPTIONS = "_CRT_INTERNAL_SCANF_LEGACY_WIDE_SPECIFIERS"
  6818. const m__CRT_INTERNAL_PRINTF_LEGACY_MSVCRT_COMPATIBILITY = "0x0008U"
  6819. const m__CRT_INTERNAL_PRINTF_LEGACY_THREE_DIGIT_EXPONENTS = "0x0010U"
  6820. const m__CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION = 1
  6821. const m__CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS = 4
  6822. const m__CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR = 2
  6823. const m__CRT_INTERNAL_SCANF_LEGACY_MSVCRT_COMPATIBILITY = "0x0004U"
  6824. const m__CRT_INTERNAL_SCANF_LEGACY_WIDE_SPECIFIERS = 2
  6825. const m__CRT_INTERNAL_SCANF_SECURECRT = 1
  6826. const m__IOB_ENTRIES = 20
  6827. const m__IOFBF = 0x0000
  6828. const m__IOLBF = 0x0040
  6829. const m__IONBF = 0x0004
  6830. const m__NFILE = "_NSTREAM_"
  6831. const m__NSTREAM_ = 512
  6832. const m__OLD_P_OVERLAY = 2
  6833. const m__O_APPEND = 0x0008
  6834. const m__O_BINARY = 0x8000
  6835. const m__O_CREAT = 0x0100
  6836. const m__O_EXCL = 0x0400
  6837. const m__O_NOINHERIT = 0x0080
  6838. const m__O_RANDOM = 0x0010
  6839. const m__O_RAW = "_O_BINARY"
  6840. const m__O_RDONLY = 0x0000
  6841. const m__O_RDWR = 0x0002
  6842. const m__O_SEQUENTIAL = 0x0020
  6843. const m__O_SHORT_LIVED = 0x1000
  6844. const m__O_TEMPORARY = 0x0040
  6845. const m__O_TEXT = 0x4000
  6846. const m__O_TRUNC = 0x0200
  6847. const m__O_U16TEXT = 0x20000
  6848. const m__O_U8TEXT = 0x40000
  6849. const m__O_WRONLY = 0x0001
  6850. const m__O_WTEXT = 0x10000
  6851. const m__P_DETACH = 4
  6852. const m__P_NOWAIT = 1
  6853. const m__P_NOWAITO = 3
  6854. const m__P_OVERLAY = 2
  6855. const m__P_WAIT = 0
  6856. const m__P_tmpdir = "\\\\"
  6857. const m__SYS_OPEN = 20
  6858. const m__TWO_DIGIT_EXPONENT = 0x1
  6859. const m__WAIT_CHILD = 0
  6860. const m__WAIT_GRANDCHILD = 1
  6861. const m__finddata_t = "_finddata64i32_t"
  6862. const m__finddatai64_t = "__finddata64_t"
  6863. const m__findfirst = "_findfirst64i32"
  6864. const m__findfirsti64 = "_findfirst64"
  6865. const m__findnext = "_findnext64i32"
  6866. const m__findnexti64 = "_findnext64"
  6867. const m__wP_tmpdir = "\\\\"
  6868. const m__wfinddata_t = "_wfinddata64i32_t"
  6869. const m__wfinddatai64_t = "_wfinddata64_t"
  6870. const m__wfindfirst = "_wfindfirst64i32"
  6871. const m__wfindfirsti64 = "_wfindfirst64"
  6872. const m__wfindnext = "_wfindnext64i32"
  6873. const m__wfindnexti64 = "_wfindnext64"
  6874. const m_fseeko = "fseeko64"
  6875. const m_ftello = "ftello64"
  6876. const m_lseek = "lseek64"
  6877. const m_pclose = "_pclose"
  6878. const m_popen = "_popen"
  6879. const m_wpopen = "_wpopen"
  6880. type T_iobuf = struct {
  6881. F_Placeholder uintptr
  6882. }
  6883. type TFILE = struct {
  6884. F_Placeholder uintptr
  6885. }
  6886. type Tfpos_t = int64
  6887. type T_fsize_t = uint32
  6888. type T_finddata32_t = struct {
  6889. Fattrib uint32
  6890. Ftime_create t__time32_t
  6891. Ftime_access t__time32_t
  6892. Ftime_write t__time32_t
  6893. Fsize T_fsize_t
  6894. Fname [260]int8
  6895. }
  6896. type T_finddata32i64_t = struct {
  6897. F__ccgo_align [0]uint32
  6898. Fattrib uint32
  6899. Ftime_create t__time32_t
  6900. Ftime_access t__time32_t
  6901. Ftime_write t__time32_t
  6902. Fsize int64
  6903. Fname [260]int8
  6904. F__ccgo_pad6 [4]byte
  6905. }
  6906. type T_finddata64i32_t = struct {
  6907. F__ccgo_align [0]uint32
  6908. Fattrib uint32
  6909. F__ccgo_align1 [4]byte
  6910. Ftime_create t__time64_t
  6911. Ftime_access t__time64_t
  6912. Ftime_write t__time64_t
  6913. Fsize T_fsize_t
  6914. Fname [260]int8
  6915. }
  6916. type t__finddata64_t = struct {
  6917. F__ccgo_align [0]uint32
  6918. Fattrib uint32
  6919. F__ccgo_align1 [4]byte
  6920. Ftime_create t__time64_t
  6921. Ftime_access t__time64_t
  6922. Ftime_write t__time64_t
  6923. Fsize int64
  6924. Fname [260]int8
  6925. F__ccgo_pad6 [4]byte
  6926. }
  6927. type T_wfinddata32_t = struct {
  6928. Fattrib uint32
  6929. Ftime_create t__time32_t
  6930. Ftime_access t__time32_t
  6931. Ftime_write t__time32_t
  6932. Fsize T_fsize_t
  6933. Fname [260]Twchar_t
  6934. }
  6935. type T_wfinddata32i64_t = struct {
  6936. F__ccgo_align [0]uint32
  6937. Fattrib uint32
  6938. Ftime_create t__time32_t
  6939. Ftime_access t__time32_t
  6940. Ftime_write t__time32_t
  6941. Fsize int64
  6942. Fname [260]Twchar_t
  6943. }
  6944. type T_wfinddata64i32_t = struct {
  6945. F__ccgo_align [0]uint32
  6946. Fattrib uint32
  6947. F__ccgo_align1 [4]byte
  6948. Ftime_create t__time64_t
  6949. Ftime_access t__time64_t
  6950. Ftime_write t__time64_t
  6951. Fsize T_fsize_t
  6952. Fname [260]Twchar_t
  6953. F__ccgo_pad6 [4]byte
  6954. }
  6955. type T_wfinddata64_t = struct {
  6956. F__ccgo_align [0]uint32
  6957. Fattrib uint32
  6958. F__ccgo_align1 [4]byte
  6959. Ftime_create t__time64_t
  6960. Ftime_access t__time64_t
  6961. Ftime_write t__time64_t
  6962. Fsize int64
  6963. Fname [260]Twchar_t
  6964. }
  6965. type Tgz_state = struct {
  6966. Fx TgzFile_s
  6967. Fmode int32
  6968. Ffd int32
  6969. Fpath uintptr
  6970. Fsize uint32
  6971. Fwant uint32
  6972. Fin uintptr
  6973. Fout uintptr
  6974. Fdirect int32
  6975. Fhow int32
  6976. Fstart int32
  6977. Feof int32
  6978. Fpast int32
  6979. Flevel int32
  6980. Fstrategy int32
  6981. Freset int32
  6982. Fskip int32
  6983. Fseek int32
  6984. Ferr int32
  6985. Fmsg uintptr
  6986. Fstrm Tz_stream
  6987. }
  6988. type Tgz_statep = uintptr
  6989. // C documentation
  6990. //
  6991. // /* gzclose() is in a separate file so that it is linked in only if it is used.
  6992. // That way the other gzclose functions can be used instead to avoid linking in
  6993. // unneeded compression or decompression routines. */
  6994. func Xgzclose(tls *libc.TLS, file TgzFile) (r int32) {
  6995. var state Tgz_statep
  6996. var v1 int32
  6997. _, _ = state, v1
  6998. if file == libc.UintptrFromInt32(0) {
  6999. return -int32(2)
  7000. }
  7001. state = file
  7002. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  7003. v1 = Xgzclose_r(tls, file)
  7004. } else {
  7005. v1 = Xgzclose_w(tls, file)
  7006. }
  7007. return v1
  7008. }
  7009. const m_LSEEK = "_lseeki64"
  7010. const m__O_APPEND1 = 8
  7011. const m__O_BINARY1 = 32768
  7012. const m__O_CREAT1 = 256
  7013. const m__O_EXCL1 = 1024
  7014. const m__O_RDONLY1 = 0
  7015. const m__O_TRUNC1 = 512
  7016. const m__O_WRONLY1 = 1
  7017. const m___INT_MAX__1 = 2147483647
  7018. // C documentation
  7019. //
  7020. // /* Reset gzip file state */
  7021. func _gz_reset(tls *libc.TLS, state Tgz_statep) {
  7022. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0) /* no output data available */
  7023. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) { /* for reading ... */
  7024. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0 /* not at end of file */
  7025. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0 /* have not read past end yet */
  7026. (*Tgz_state)(unsafe.Pointer(state)).Fhow = m_LOOK /* look for gzip header */
  7027. } else { /* for writing ... */
  7028. (*Tgz_state)(unsafe.Pointer(state)).Freset = 0
  7029. } /* no deflateReset pending */
  7030. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0 /* no seek request pending */
  7031. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0)) /* clear error */
  7032. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos = 0 /* no uncompressed data yet */
  7033. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0) /* no input data yet */
  7034. }
  7035. // C documentation
  7036. //
  7037. // /* Open a gzip file either by name or file descriptor. */
  7038. func _gz_open(tls *libc.TLS, path uintptr, fd int32, mode uintptr) (r TgzFile) {
  7039. bp := tls.Alloc(16)
  7040. defer tls.Free(16)
  7041. var exclusive, oflag, v1, v2, v3, v4, v5 int32
  7042. var len1 Tz_size_t
  7043. var state Tgz_statep
  7044. _, _, _, _, _, _, _, _, _ = exclusive, len1, oflag, state, v1, v2, v3, v4, v5
  7045. exclusive = 0
  7046. /* check input */
  7047. if path == libc.UintptrFromInt32(0) {
  7048. return libc.UintptrFromInt32(0)
  7049. }
  7050. /* allocate gzFile structure to return */
  7051. state = libc.Xmalloc(tls, uint32(144))
  7052. if state == libc.UintptrFromInt32(0) {
  7053. return libc.UintptrFromInt32(0)
  7054. }
  7055. (*Tgz_state)(unsafe.Pointer(state)).Fsize = uint32(0) /* no buffers allocated yet */
  7056. (*Tgz_state)(unsafe.Pointer(state)).Fwant = uint32(m_GZBUFSIZE) /* requested buffer size */
  7057. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = libc.UintptrFromInt32(0) /* no error message yet */
  7058. /* interpret mode */
  7059. (*Tgz_state)(unsafe.Pointer(state)).Fmode = m_GZ_NONE
  7060. (*Tgz_state)(unsafe.Pointer(state)).Flevel = -int32(1)
  7061. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = m_Z_DEFAULT_STRATEGY
  7062. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = 0
  7063. for *(*int8)(unsafe.Pointer(mode)) != 0 {
  7064. if int32(*(*int8)(unsafe.Pointer(mode))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(mode))) <= int32('9') {
  7065. (*Tgz_state)(unsafe.Pointer(state)).Flevel = int32(*(*int8)(unsafe.Pointer(mode))) - int32('0')
  7066. } else {
  7067. switch int32(*(*int8)(unsafe.Pointer(mode))) {
  7068. case int32('r'):
  7069. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_READ)
  7070. case int32('w'):
  7071. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_WRITE)
  7072. case int32('a'):
  7073. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_APPEND)
  7074. case int32('+'): /* can't read and write at the same time */
  7075. libc.Xfree(tls, state)
  7076. return libc.UintptrFromInt32(0)
  7077. case int32('b'): /* ignore -- will request binary anyway */
  7078. case int32('x'):
  7079. exclusive = int32(1)
  7080. case int32('f'):
  7081. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_FILTERED)
  7082. case int32('h'):
  7083. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_HUFFMAN_ONLY)
  7084. case int32('R'):
  7085. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_RLE)
  7086. case int32('F'):
  7087. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_FIXED)
  7088. case int32('T'):
  7089. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1)
  7090. default: /* could consider as an error, but just ignore */
  7091. }
  7092. }
  7093. mode++
  7094. }
  7095. /* must provide an "r", "w", or "a" */
  7096. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == m_GZ_NONE {
  7097. libc.Xfree(tls, state)
  7098. return libc.UintptrFromInt32(0)
  7099. }
  7100. /* can't force transparent read */
  7101. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  7102. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  7103. libc.Xfree(tls, state)
  7104. return libc.UintptrFromInt32(0)
  7105. }
  7106. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1) /* for empty file */
  7107. }
  7108. /* save the path name for error messages */
  7109. if fd == -int32(2) {
  7110. len1 = libc.Xwcstombs(tls, libc.UintptrFromInt32(0), path, uint32(0))
  7111. if len1 == uint32(-libc.Int32FromInt32(1)) {
  7112. len1 = uint32(0)
  7113. }
  7114. } else {
  7115. len1 = libc.Xstrlen(tls, path)
  7116. }
  7117. (*Tgz_state)(unsafe.Pointer(state)).Fpath = libc.Xmalloc(tls, len1+uint32(1))
  7118. if (*Tgz_state)(unsafe.Pointer(state)).Fpath == libc.UintptrFromInt32(0) {
  7119. libc.Xfree(tls, state)
  7120. return libc.UintptrFromInt32(0)
  7121. }
  7122. if fd == -int32(2) {
  7123. if len1 != 0 {
  7124. libc.Xwcstombs(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath, path, len1+uint32(1))
  7125. } else {
  7126. *(*int8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fpath)) = 0
  7127. }
  7128. } else {
  7129. libc.X__builtin_snprintf(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath, len1+uint32(1), __ccgo_ts+6, libc.VaList(bp+8, path))
  7130. }
  7131. /* compute the flags for open() */
  7132. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  7133. v1 = m__O_RDONLY1
  7134. } else {
  7135. if exclusive != 0 {
  7136. v2 = int32(m__O_EXCL1)
  7137. } else {
  7138. v2 = 0
  7139. }
  7140. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_WRITE) {
  7141. v3 = int32(m__O_TRUNC1)
  7142. } else {
  7143. v3 = int32(m__O_APPEND1)
  7144. }
  7145. v1 = libc.Int32FromInt32(m__O_WRONLY1) | libc.Int32FromInt32(m__O_CREAT1) | v2 | v3
  7146. }
  7147. oflag = int32(m__O_BINARY1) | v1
  7148. /* open the file with the appropriate flags (or just use fd) */
  7149. if fd > -int32(1) {
  7150. v4 = fd
  7151. } else {
  7152. if fd == -int32(2) {
  7153. v5 = libc.X_wopen(tls, path, oflag, libc.VaList(bp+8, int32(0666)))
  7154. } else {
  7155. v5 = libc.Xopen(tls, path, oflag, libc.VaList(bp+8, int32(0666)))
  7156. }
  7157. v4 = v5
  7158. }
  7159. (*Tgz_state)(unsafe.Pointer(state)).Ffd = v4
  7160. if (*Tgz_state)(unsafe.Pointer(state)).Ffd == -int32(1) {
  7161. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  7162. libc.Xfree(tls, state)
  7163. return libc.UintptrFromInt32(0)
  7164. }
  7165. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_APPEND) {
  7166. libc.X_lseeki64(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(m_SEEK_END)) /* so gzoffset() is correct */
  7167. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_WRITE) /* simplify later checks */
  7168. }
  7169. /* save the current position for rewinding (only if reading) */
  7170. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  7171. (*Tgz_state)(unsafe.Pointer(state)).Fstart = int32(libc.X_lseeki64(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(m_SEEK_CUR)))
  7172. if (*Tgz_state)(unsafe.Pointer(state)).Fstart == -int32(1) {
  7173. (*Tgz_state)(unsafe.Pointer(state)).Fstart = 0
  7174. }
  7175. }
  7176. /* initialize stream */
  7177. _gz_reset(tls, state)
  7178. /* return stream */
  7179. return state
  7180. }
  7181. // C documentation
  7182. //
  7183. // /* -- see zlib.h -- */
  7184. func Xgzopen(tls *libc.TLS, path uintptr, mode uintptr) (r TgzFile) {
  7185. return _gz_open(tls, path, -int32(1), mode)
  7186. }
  7187. // C documentation
  7188. //
  7189. // /* -- see zlib.h -- */
  7190. func Xgzopen64(tls *libc.TLS, path uintptr, mode uintptr) (r TgzFile) {
  7191. return _gz_open(tls, path, -int32(1), mode)
  7192. }
  7193. // C documentation
  7194. //
  7195. // /* -- see zlib.h -- */
  7196. func Xgzdopen(tls *libc.TLS, fd int32, mode uintptr) (r TgzFile) {
  7197. bp := tls.Alloc(16)
  7198. defer tls.Free(16)
  7199. var gz TgzFile
  7200. var path, v1 uintptr
  7201. var v2 bool
  7202. _, _, _, _ = gz, path, v1, v2
  7203. if v2 = fd == -int32(1); !v2 {
  7204. v1 = libc.Xmalloc(tls, libc.Uint32FromInt32(7)+libc.Uint32FromInt32(3)*libc.Uint32FromInt64(4))
  7205. path = v1
  7206. }
  7207. if v2 || v1 == libc.UintptrFromInt32(0) {
  7208. return libc.UintptrFromInt32(0)
  7209. }
  7210. libc.X__builtin_snprintf(tls, path, libc.Uint32FromInt32(7)+libc.Uint32FromInt32(3)*libc.Uint32FromInt64(4), __ccgo_ts+9, libc.VaList(bp+8, fd))
  7211. gz = _gz_open(tls, path, fd, mode)
  7212. libc.Xfree(tls, path)
  7213. return gz
  7214. }
  7215. // C documentation
  7216. //
  7217. // /* -- see zlib.h -- */
  7218. func Xgzopen_w(tls *libc.TLS, path uintptr, mode uintptr) (r TgzFile) {
  7219. return _gz_open(tls, path, -int32(2), mode)
  7220. }
  7221. // C documentation
  7222. //
  7223. // /* -- see zlib.h -- */
  7224. func Xgzbuffer(tls *libc.TLS, file TgzFile, size uint32) (r int32) {
  7225. var state Tgz_statep
  7226. _ = state
  7227. /* get internal structure and check integrity */
  7228. if file == libc.UintptrFromInt32(0) {
  7229. return -int32(1)
  7230. }
  7231. state = file
  7232. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  7233. return -int32(1)
  7234. }
  7235. /* make sure we haven't already allocated memory */
  7236. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != uint32(0) {
  7237. return -int32(1)
  7238. }
  7239. /* check and set requested size */
  7240. if size<<int32(1) < size {
  7241. return -int32(1)
  7242. } /* need to be able to double it */
  7243. if size < uint32(8) {
  7244. size = uint32(8)
  7245. } /* needed to behave well with flushing */
  7246. (*Tgz_state)(unsafe.Pointer(state)).Fwant = size
  7247. return 0
  7248. }
  7249. // C documentation
  7250. //
  7251. // /* -- see zlib.h -- */
  7252. func Xgzrewind(tls *libc.TLS, file TgzFile) (r int32) {
  7253. var state Tgz_statep
  7254. _ = state
  7255. /* get internal structure */
  7256. if file == libc.UintptrFromInt32(0) {
  7257. return -int32(1)
  7258. }
  7259. state = file
  7260. /* check that we're reading and that there's no error */
  7261. 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) {
  7262. return -int32(1)
  7263. }
  7264. /* back up and start over */
  7265. if libc.X_lseeki64(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, int64((*Tgz_state)(unsafe.Pointer(state)).Fstart), m_SEEK_SET) == int64(-int32(1)) {
  7266. return -int32(1)
  7267. }
  7268. _gz_reset(tls, state)
  7269. return 0
  7270. }
  7271. // C documentation
  7272. //
  7273. // /* -- see zlib.h -- */
  7274. func Xgzseek64(tls *libc.TLS, file TgzFile, offset int32, whence int32) (r int32) {
  7275. var n, v1 uint32
  7276. var ret int32
  7277. var state Tgz_statep
  7278. var p2 uintptr
  7279. _, _, _, _, _ = n, ret, state, v1, p2
  7280. /* get internal structure and check integrity */
  7281. if file == libc.UintptrFromInt32(0) {
  7282. return -int32(1)
  7283. }
  7284. state = file
  7285. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  7286. return -int32(1)
  7287. }
  7288. /* check that there's no error */
  7289. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  7290. return -int32(1)
  7291. }
  7292. /* can only seek from start or relative to current position */
  7293. if whence != m_SEEK_SET && whence != int32(m_SEEK_CUR) {
  7294. return -int32(1)
  7295. }
  7296. /* normalize offset to a SEEK_CUR specification */
  7297. if whence == m_SEEK_SET {
  7298. offset -= (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  7299. } else {
  7300. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  7301. offset += (*Tgz_state)(unsafe.Pointer(state)).Fskip
  7302. }
  7303. }
  7304. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  7305. /* if within raw area while reading, just go there */
  7306. 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 {
  7307. ret = int32(libc.X_lseeki64(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, int64(offset-int32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave)), int32(m_SEEK_CUR)))
  7308. if ret == -int32(1) {
  7309. return -int32(1)
  7310. }
  7311. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  7312. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0
  7313. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  7314. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  7315. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  7316. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0)
  7317. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += offset
  7318. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  7319. }
  7320. /* calculate skip amount, rewinding if needed for back seek when reading */
  7321. if offset < 0 {
  7322. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) { /* writing -- can't go backwards */
  7323. return -int32(1)
  7324. }
  7325. offset += (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  7326. if offset < 0 { /* before start of file! */
  7327. return -int32(1)
  7328. }
  7329. if Xgzrewind(tls, file) == -int32(1) { /* rewind, then skip to offset */
  7330. return -int32(1)
  7331. }
  7332. }
  7333. /* if reading, skip what's in output buffer (one less gzgetc() check) */
  7334. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  7335. if libc.Bool(uint32(4) == uint32(4)) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > Xgz_intmax(tls) || int32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave) > offset {
  7336. v1 = uint32(offset)
  7337. } else {
  7338. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  7339. }
  7340. n = v1
  7341. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  7342. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  7343. p2 = state + 8
  7344. *(*int32)(unsafe.Pointer(p2)) = int32(uint32(*(*int32)(unsafe.Pointer(p2))) + n)
  7345. offset = int32(uint32(offset) - n)
  7346. }
  7347. /* request skip (if not zero) */
  7348. if offset != 0 {
  7349. (*Tgz_state)(unsafe.Pointer(state)).Fseek = int32(1)
  7350. (*Tgz_state)(unsafe.Pointer(state)).Fskip = offset
  7351. }
  7352. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos + offset
  7353. }
  7354. // C documentation
  7355. //
  7356. // /* -- see zlib.h -- */
  7357. func Xgzseek(tls *libc.TLS, file TgzFile, offset int32, whence int32) (r int32) {
  7358. var ret, v1 int32
  7359. _, _ = ret, v1
  7360. ret = Xgzseek64(tls, file, offset, whence)
  7361. if ret == ret {
  7362. v1 = ret
  7363. } else {
  7364. v1 = -int32(1)
  7365. }
  7366. return v1
  7367. }
  7368. // C documentation
  7369. //
  7370. // /* -- see zlib.h -- */
  7371. func Xgztell64(tls *libc.TLS, file TgzFile) (r int32) {
  7372. var state Tgz_statep
  7373. var v1 int32
  7374. _, _ = state, v1
  7375. /* get internal structure and check integrity */
  7376. if file == libc.UintptrFromInt32(0) {
  7377. return -int32(1)
  7378. }
  7379. state = file
  7380. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  7381. return -int32(1)
  7382. }
  7383. /* return position */
  7384. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  7385. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fskip
  7386. } else {
  7387. v1 = 0
  7388. }
  7389. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos + v1
  7390. }
  7391. // C documentation
  7392. //
  7393. // /* -- see zlib.h -- */
  7394. func Xgztell(tls *libc.TLS, file TgzFile) (r int32) {
  7395. var ret, v1 int32
  7396. _, _ = ret, v1
  7397. ret = Xgztell64(tls, file)
  7398. if ret == ret {
  7399. v1 = ret
  7400. } else {
  7401. v1 = -int32(1)
  7402. }
  7403. return v1
  7404. }
  7405. // C documentation
  7406. //
  7407. // /* -- see zlib.h -- */
  7408. func Xgzoffset64(tls *libc.TLS, file TgzFile) (r int32) {
  7409. var offset int32
  7410. var state Tgz_statep
  7411. _, _ = offset, state
  7412. /* get internal structure and check integrity */
  7413. if file == libc.UintptrFromInt32(0) {
  7414. return -int32(1)
  7415. }
  7416. state = file
  7417. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  7418. return -int32(1)
  7419. }
  7420. /* compute and return effective offset in file */
  7421. offset = int32(libc.X_lseeki64(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(m_SEEK_CUR)))
  7422. if offset == -int32(1) {
  7423. return -int32(1)
  7424. }
  7425. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) { /* reading */
  7426. offset = int32(uint32(offset) - (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in)
  7427. } /* don't count buffered input */
  7428. return offset
  7429. }
  7430. // C documentation
  7431. //
  7432. // /* -- see zlib.h -- */
  7433. func Xgzoffset(tls *libc.TLS, file TgzFile) (r int32) {
  7434. var ret, v1 int32
  7435. _, _ = ret, v1
  7436. ret = Xgzoffset64(tls, file)
  7437. if ret == ret {
  7438. v1 = ret
  7439. } else {
  7440. v1 = -int32(1)
  7441. }
  7442. return v1
  7443. }
  7444. // C documentation
  7445. //
  7446. // /* -- see zlib.h -- */
  7447. func Xgzeof(tls *libc.TLS, file TgzFile) (r int32) {
  7448. var state Tgz_statep
  7449. var v1 int32
  7450. _, _ = state, v1
  7451. /* get internal structure and check integrity */
  7452. if file == libc.UintptrFromInt32(0) {
  7453. return 0
  7454. }
  7455. state = file
  7456. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  7457. return 0
  7458. }
  7459. /* return end-of-file state */
  7460. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  7461. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fpast
  7462. } else {
  7463. v1 = 0
  7464. }
  7465. return v1
  7466. }
  7467. // C documentation
  7468. //
  7469. // /* -- see zlib.h -- */
  7470. func Xgzerror(tls *libc.TLS, file TgzFile, errnum uintptr) (r uintptr) {
  7471. var state Tgz_statep
  7472. var v1, v2 uintptr
  7473. _, _, _ = state, v1, v2
  7474. /* get internal structure and check integrity */
  7475. if file == libc.UintptrFromInt32(0) {
  7476. return libc.UintptrFromInt32(0)
  7477. }
  7478. state = file
  7479. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  7480. return libc.UintptrFromInt32(0)
  7481. }
  7482. /* return error information */
  7483. if errnum != libc.UintptrFromInt32(0) {
  7484. *(*int32)(unsafe.Pointer(errnum)) = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  7485. }
  7486. if (*Tgz_state)(unsafe.Pointer(state)).Ferr == -int32(4) {
  7487. v1 = __ccgo_ts + 17
  7488. } else {
  7489. if (*Tgz_state)(unsafe.Pointer(state)).Fmsg == libc.UintptrFromInt32(0) {
  7490. v2 = __ccgo_ts + 31
  7491. } else {
  7492. v2 = (*Tgz_state)(unsafe.Pointer(state)).Fmsg
  7493. }
  7494. v1 = v2
  7495. }
  7496. return v1
  7497. }
  7498. // C documentation
  7499. //
  7500. // /* -- see zlib.h -- */
  7501. func Xgzclearerr(tls *libc.TLS, file TgzFile) {
  7502. var state Tgz_statep
  7503. _ = state
  7504. /* get internal structure and check integrity */
  7505. if file == libc.UintptrFromInt32(0) {
  7506. return
  7507. }
  7508. state = file
  7509. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  7510. return
  7511. }
  7512. /* clear error and end-of-file */
  7513. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  7514. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0
  7515. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  7516. }
  7517. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  7518. }
  7519. // C documentation
  7520. //
  7521. // /* Create an error message in allocated memory and set state->err and
  7522. // state->msg accordingly. Free any previous error message already there. Do
  7523. // not try to free or allocate space if the error is Z_MEM_ERROR (out of
  7524. // memory). Simply save the error message as a static string. If there is an
  7525. // allocation failure constructing the error message, then convert the error to
  7526. // out of memory. */
  7527. func Xgz_error(tls *libc.TLS, state Tgz_statep, err int32, msg uintptr) {
  7528. bp := tls.Alloc(32)
  7529. defer tls.Free(32)
  7530. var v1 uintptr
  7531. _ = v1
  7532. /* free previously allocated message and clear */
  7533. if (*Tgz_state)(unsafe.Pointer(state)).Fmsg != libc.UintptrFromInt32(0) {
  7534. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(4) {
  7535. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fmsg)
  7536. }
  7537. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = libc.UintptrFromInt32(0)
  7538. }
  7539. /* if fatal, set state->x.have to 0 so that the gzgetc() macro fails */
  7540. if err != m_Z_OK && err != -int32(5) {
  7541. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  7542. }
  7543. /* set error code, and if no message, then done */
  7544. (*Tgz_state)(unsafe.Pointer(state)).Ferr = err
  7545. if msg == libc.UintptrFromInt32(0) {
  7546. return
  7547. }
  7548. /* for an out of memory error, return literal string when requested */
  7549. if err == -int32(4) {
  7550. return
  7551. }
  7552. /* construct error message with path */
  7553. v1 = libc.Xmalloc(tls, libc.Xstrlen(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)+libc.Xstrlen(tls, msg)+uint32(3))
  7554. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = v1
  7555. if v1 == libc.UintptrFromInt32(0) {
  7556. (*Tgz_state)(unsafe.Pointer(state)).Ferr = -int32(4)
  7557. return
  7558. }
  7559. libc.X__builtin_snprintf(tls, (*Tgz_state)(unsafe.Pointer(state)).Fmsg, libc.Xstrlen(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)+libc.Xstrlen(tls, msg)+uint32(3), __ccgo_ts+32, libc.VaList(bp+8, (*Tgz_state)(unsafe.Pointer(state)).Fpath, __ccgo_ts+39, msg))
  7560. }
  7561. // C documentation
  7562. //
  7563. // /* portably return maximum value for an int (when limits.h presumed not
  7564. // available) -- we need to do this to cover cases where 2's complement not
  7565. // used, since C standard permits 1's complement and sign-bit representations,
  7566. // otherwise we could just use ((unsigned)-1) >> 1 */
  7567. func Xgz_intmax(tls *libc.TLS) (r uint32) {
  7568. return uint32(m___INT_MAX__1)
  7569. }
  7570. const m__O_APPEND2 = 0x0008
  7571. const m__O_BINARY2 = 0x8000
  7572. const m__O_CREAT2 = 0x0100
  7573. const m__O_EXCL2 = 0x0400
  7574. const m__O_RDONLY2 = 0x0000
  7575. const m__O_TRUNC2 = 0x0200
  7576. const m__O_WRONLY2 = 0x0001
  7577. const m___INT_MAX__2 = 0x7fffffff
  7578. // C documentation
  7579. //
  7580. // /* Use read() to load a buffer -- return -1 on error, otherwise 0. Read from
  7581. // state->fd, and update state->eof, state->err, and state->msg as appropriate.
  7582. // This function needs to loop on read(), since read() is not guaranteed to
  7583. // read the number of bytes requested, depending on the type of descriptor. */
  7584. func _gz_load(tls *libc.TLS, state Tgz_statep, buf uintptr, len1 uint32, have uintptr) (r int32) {
  7585. var get, max uint32
  7586. var ret int32
  7587. _, _, _ = get, max, ret
  7588. max = uint32(-libc.Int32FromInt32(1))>>libc.Int32FromInt32(2) + libc.Uint32FromInt32(1)
  7589. *(*uint32)(unsafe.Pointer(have)) = uint32(0)
  7590. for cond := true; cond; cond = *(*uint32)(unsafe.Pointer(have)) < len1 {
  7591. get = len1 - *(*uint32)(unsafe.Pointer(have))
  7592. if get > max {
  7593. get = max
  7594. }
  7595. ret = libc.Xread(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, buf+uintptr(*(*uint32)(unsafe.Pointer(have))), get)
  7596. if ret <= 0 {
  7597. break
  7598. }
  7599. *(*uint32)(unsafe.Pointer(have)) += uint32(ret)
  7600. }
  7601. if ret < 0 {
  7602. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X_errno(tls)))))
  7603. return -int32(1)
  7604. }
  7605. if ret == 0 {
  7606. (*Tgz_state)(unsafe.Pointer(state)).Feof = int32(1)
  7607. }
  7608. return 0
  7609. }
  7610. // C documentation
  7611. //
  7612. // /* Load up input buffer and set eof flag if last data loaded -- return -1 on
  7613. // error, 0 otherwise. Note that the eof flag is set when the end of the input
  7614. // file is reached, even though there may be unused data in the buffer. Once
  7615. // that data has been used, no more attempts will be made to read the file.
  7616. // If strm->avail_in != 0, then the current data is moved to the beginning of
  7617. // the input buffer, and then the remainder of the buffer is loaded with the
  7618. // available data from the input file. */
  7619. func _gz_avail(tls *libc.TLS, state Tgz_statep) (r int32) {
  7620. bp := tls.Alloc(16)
  7621. defer tls.Free(16)
  7622. var n, v1 uint32
  7623. var p, q, v3, v4 uintptr
  7624. var strm Tz_streamp
  7625. var _ /* got at bp+0 */ uint32
  7626. _, _, _, _, _, _, _ = n, p, q, strm, v1, v3, v4
  7627. strm = state + 88
  7628. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  7629. return -int32(1)
  7630. }
  7631. if (*Tgz_state)(unsafe.Pointer(state)).Feof == 0 {
  7632. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 { /* copy what's there to the start */
  7633. p = (*Tgz_state)(unsafe.Pointer(state)).Fin
  7634. q = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  7635. n = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  7636. for {
  7637. v3 = p
  7638. p++
  7639. v4 = q
  7640. q++
  7641. *(*uint8)(unsafe.Pointer(v3)) = *(*uint8)(unsafe.Pointer(v4))
  7642. goto _2
  7643. _2:
  7644. ;
  7645. n--
  7646. v1 = n
  7647. if !(v1 != 0) {
  7648. break
  7649. }
  7650. }
  7651. }
  7652. 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) {
  7653. return -int32(1)
  7654. }
  7655. *(*TuInt)(unsafe.Pointer(strm + 4)) += *(*uint32)(unsafe.Pointer(bp))
  7656. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  7657. }
  7658. return 0
  7659. }
  7660. // C documentation
  7661. //
  7662. // /* Look for gzip header, set up for inflate or copy. state->x.have must be 0.
  7663. // If this is the first time in, allocate required memory. state->how will be
  7664. // left unchanged if there is no more input data available, will be set to COPY
  7665. // if there is no gzip header and direct copying will be performed, or it will
  7666. // be set to GZIP for decompression. If direct copying, then leftover input
  7667. // data from the input buffer will be copied to the output buffer. In that
  7668. // case, all further file reads will be directly to either the output buffer or
  7669. // a user buffer. If decompressing, the inflate state will be initialized.
  7670. // gz_look() will return 0 on success or -1 on failure. */
  7671. func _gz_look(tls *libc.TLS, state Tgz_statep) (r int32) {
  7672. var strm Tz_streamp
  7673. _ = strm
  7674. strm = state + 88
  7675. /* allocate read buffers and inflate memory */
  7676. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) {
  7677. /* allocate buffers */
  7678. (*Tgz_state)(unsafe.Pointer(state)).Fin = libc.Xmalloc(tls, (*Tgz_state)(unsafe.Pointer(state)).Fwant)
  7679. (*Tgz_state)(unsafe.Pointer(state)).Fout = libc.Xmalloc(tls, (*Tgz_state)(unsafe.Pointer(state)).Fwant<<int32(1))
  7680. if (*Tgz_state)(unsafe.Pointer(state)).Fin == libc.UintptrFromInt32(0) || (*Tgz_state)(unsafe.Pointer(state)).Fout == libc.UintptrFromInt32(0) {
  7681. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  7682. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  7683. Xgz_error(tls, state, -int32(4), __ccgo_ts+17)
  7684. return -int32(1)
  7685. }
  7686. (*Tgz_state)(unsafe.Pointer(state)).Fsize = (*Tgz_state)(unsafe.Pointer(state)).Fwant
  7687. /* allocate inflate memory */
  7688. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fzalloc = uintptr(m_Z_NULL)
  7689. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fzfree = uintptr(m_Z_NULL)
  7690. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fopaque = uintptr(m_Z_NULL)
  7691. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0)
  7692. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = uintptr(m_Z_NULL)
  7693. if XinflateInit2_(tls, state+88, libc.Int32FromInt32(15)+libc.Int32FromInt32(16), __ccgo_ts, libc.Int32FromInt64(56)) != m_Z_OK { /* gunzip */
  7694. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  7695. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  7696. (*Tgz_state)(unsafe.Pointer(state)).Fsize = uint32(0)
  7697. Xgz_error(tls, state, -int32(4), __ccgo_ts+17)
  7698. return -int32(1)
  7699. }
  7700. }
  7701. /* get at least the magic bytes in the input buffer */
  7702. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in < uint32(2) {
  7703. if _gz_avail(tls, state) == -int32(1) {
  7704. return -int32(1)
  7705. }
  7706. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  7707. return 0
  7708. }
  7709. }
  7710. /* look for gzip magic bytes -- if there, do gzip decoding (note: there is
  7711. a logical dilemma here when considering the case of a partially written
  7712. gzip file, to wit, if a single 31 byte is written, then we cannot tell
  7713. whether this is a single-byte file, or just a partially written gzip
  7714. file -- for here we assume that if a gzip file is being written, then
  7715. the header will be written in a single operation, so that reading a
  7716. single byte is sufficient indication that it is not a gzip file) */
  7717. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in > uint32(1) && int32(*(*TBytef)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in))) == int32(31) && int32(*(*TBytef)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in + 1))) == int32(139) {
  7718. XinflateReset(tls, strm)
  7719. (*Tgz_state)(unsafe.Pointer(state)).Fhow = int32(m_GZIP)
  7720. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = 0
  7721. return 0
  7722. }
  7723. /* no gzip header -- if we were decoding gzip before, then this is trailing
  7724. garbage. Ignore the trailing garbage and finish. */
  7725. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect == 0 {
  7726. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(0)
  7727. (*Tgz_state)(unsafe.Pointer(state)).Feof = int32(1)
  7728. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  7729. return 0
  7730. }
  7731. /* doing raw i/o, copy any leftover input to output -- this assumes that
  7732. the output buffer is larger than the input buffer, which also assures
  7733. space for gzungetc() */
  7734. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  7735. libc.Xmemcpy(tls, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, (*Tz_stream)(unsafe.Pointer(strm)).Favail_in)
  7736. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  7737. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(0)
  7738. (*Tgz_state)(unsafe.Pointer(state)).Fhow = int32(m_COPY)
  7739. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1)
  7740. return 0
  7741. }
  7742. // C documentation
  7743. //
  7744. // /* Decompress from input to the provided next_out and avail_out in the state.
  7745. // On return, state->x.have and state->x.next point to the just decompressed
  7746. // data. If the gzip stream completes, state->how is reset to LOOK to look for
  7747. // the next gzip stream or raw data, once state->x.have is depleted. Returns 0
  7748. // on success, -1 on failure. */
  7749. func _gz_decomp(tls *libc.TLS, state Tgz_statep) (r int32) {
  7750. var had uint32
  7751. var ret int32
  7752. var strm Tz_streamp
  7753. var v1 uintptr
  7754. _, _, _, _ = had, ret, strm, v1
  7755. ret = m_Z_OK
  7756. strm = state + 88
  7757. /* fill output buffer up to end of deflate stream */
  7758. had = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  7759. for cond := true; cond; cond = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out != 0 && ret != int32(m_Z_STREAM_END) {
  7760. /* get more input for inflate() */
  7761. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) && _gz_avail(tls, state) == -int32(1) {
  7762. return -int32(1)
  7763. }
  7764. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  7765. Xgz_error(tls, state, -int32(5), __ccgo_ts+42)
  7766. break
  7767. }
  7768. /* decompress and handle errors */
  7769. ret = Xinflate(tls, strm, m_Z_NO_FLUSH)
  7770. if ret == -int32(2) || ret == int32(m_Z_NEED_DICT) {
  7771. Xgz_error(tls, state, -int32(2), __ccgo_ts+65)
  7772. return -int32(1)
  7773. }
  7774. if ret == -int32(4) {
  7775. Xgz_error(tls, state, -int32(4), __ccgo_ts+17)
  7776. return -int32(1)
  7777. }
  7778. if ret == -int32(3) { /* deflate stream invalid */
  7779. if (*Tz_stream)(unsafe.Pointer(strm)).Fmsg == libc.UintptrFromInt32(0) {
  7780. v1 = __ccgo_ts + 104
  7781. } else {
  7782. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Fmsg
  7783. }
  7784. Xgz_error(tls, state, -int32(3), v1)
  7785. return -int32(1)
  7786. }
  7787. }
  7788. /* update available output */
  7789. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = had - (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  7790. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out - uintptr((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave)
  7791. /* if the gzip stream completed successfully, look for another */
  7792. if ret == int32(m_Z_STREAM_END) {
  7793. (*Tgz_state)(unsafe.Pointer(state)).Fhow = m_LOOK
  7794. }
  7795. /* good decompression */
  7796. return 0
  7797. }
  7798. // C documentation
  7799. //
  7800. // /* Fetch data and put it in the output buffer. Assumes state->x.have is 0.
  7801. // Data is either copied from the input file or decompressed from the input
  7802. // file depending on state->how. If state->how is LOOK, then a gzip header is
  7803. // looked for to determine whether to copy or decompress. Returns -1 on error,
  7804. // otherwise 0. gz_fetch() will leave state->how as COPY or GZIP unless the
  7805. // end of the input file has been reached and all data has been processed. */
  7806. func _gz_fetch(tls *libc.TLS, state Tgz_statep) (r int32) {
  7807. var strm Tz_streamp
  7808. _ = strm
  7809. strm = state + 88
  7810. 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) {
  7811. switch (*Tgz_state)(unsafe.Pointer(state)).Fhow {
  7812. case m_LOOK: /* -> LOOK, COPY (only if never GZIP), or GZIP */
  7813. if _gz_look(tls, state) == -int32(1) {
  7814. return -int32(1)
  7815. }
  7816. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK {
  7817. return 0
  7818. }
  7819. case int32(m_COPY): /* -> COPY */
  7820. if _gz_load(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fout, (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1), state) == -int32(1) {
  7821. return -int32(1)
  7822. }
  7823. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  7824. return 0
  7825. case int32(m_GZIP): /* -> GZIP or LOOK (if end of gzip stream) */
  7826. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize << int32(1)
  7827. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  7828. if _gz_decomp(tls, state) == -int32(1) {
  7829. return -int32(1)
  7830. }
  7831. }
  7832. }
  7833. return 0
  7834. }
  7835. // C documentation
  7836. //
  7837. // /* Skip len uncompressed bytes of output. Return -1 on error, 0 on success. */
  7838. func _gz_skip(tls *libc.TLS, state Tgz_statep, len1 int32) (r int32) {
  7839. var n, v1 uint32
  7840. var p2 uintptr
  7841. _, _, _ = n, v1, p2
  7842. /* skip over len bytes or reach end-of-file, whichever comes first */
  7843. for len1 != 0 {
  7844. /* skip over whatever is in output buffer */
  7845. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  7846. if libc.Bool(uint32(4) == uint32(4)) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > Xgz_intmax(tls) || int32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave) > len1 {
  7847. v1 = uint32(len1)
  7848. } else {
  7849. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  7850. }
  7851. n = v1
  7852. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  7853. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  7854. p2 = state + 8
  7855. *(*int32)(unsafe.Pointer(p2)) = int32(uint32(*(*int32)(unsafe.Pointer(p2))) + n)
  7856. len1 = int32(uint32(len1) - n)
  7857. } else {
  7858. if (*Tgz_state)(unsafe.Pointer(state)).Feof != 0 && (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  7859. break
  7860. } else {
  7861. /* get more output, looking for header if required */
  7862. if _gz_fetch(tls, state) == -int32(1) {
  7863. return -int32(1)
  7864. }
  7865. }
  7866. }
  7867. }
  7868. return 0
  7869. }
  7870. // C documentation
  7871. //
  7872. // /* Read len bytes into buf from file, or less than len up to the end of the
  7873. // input. Return the number of bytes read. If zero is returned, either the
  7874. // end of file was reached, or there was an error. state->err must be
  7875. // consulted in that case to determine which. */
  7876. func _gz_read(tls *libc.TLS, state Tgz_statep, buf Tvoidp, len1 Tz_size_t) (r Tz_size_t) {
  7877. bp := tls.Alloc(16)
  7878. defer tls.Free(16)
  7879. var got Tz_size_t
  7880. var p1 uintptr
  7881. var _ /* n at bp+0 */ uint32
  7882. _, _ = got, p1
  7883. /* if len is zero, avoid unnecessary operations */
  7884. if len1 == uint32(0) {
  7885. return uint32(0)
  7886. }
  7887. /* process a skip request */
  7888. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  7889. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  7890. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  7891. return uint32(0)
  7892. }
  7893. }
  7894. /* get len bytes to buf, or less than len if at the end */
  7895. got = uint32(0)
  7896. for cond := true; cond; cond = len1 != 0 {
  7897. /* set n to the maximum amount of len that fits in an unsigned int */
  7898. *(*uint32)(unsafe.Pointer(bp)) = uint32(-libc.Int32FromInt32(1))
  7899. if *(*uint32)(unsafe.Pointer(bp)) > len1 {
  7900. *(*uint32)(unsafe.Pointer(bp)) = len1
  7901. }
  7902. /* first just try copying data from the output buffer */
  7903. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  7904. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave < *(*uint32)(unsafe.Pointer(bp)) {
  7905. *(*uint32)(unsafe.Pointer(bp)) = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  7906. }
  7907. libc.Xmemcpy(tls, buf, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, *(*uint32)(unsafe.Pointer(bp)))
  7908. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(*(*uint32)(unsafe.Pointer(bp)))
  7909. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= *(*uint32)(unsafe.Pointer(bp))
  7910. } else {
  7911. if (*Tgz_state)(unsafe.Pointer(state)).Feof != 0 && (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  7912. (*Tgz_state)(unsafe.Pointer(state)).Fpast = int32(1) /* tried to read past end */
  7913. break
  7914. } else {
  7915. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK || *(*uint32)(unsafe.Pointer(bp)) < (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1) {
  7916. /* get more output, looking for header if required */
  7917. if _gz_fetch(tls, state) == -int32(1) {
  7918. return uint32(0)
  7919. }
  7920. continue /* no progress yet -- go back to copy above */
  7921. /* the copy above assures that we will leave with space in the
  7922. output buffer, allowing at least one gzungetc() to succeed */
  7923. } else {
  7924. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == int32(m_COPY) { /* read directly */
  7925. if _gz_load(tls, state, buf, *(*uint32)(unsafe.Pointer(bp)), bp) == -int32(1) {
  7926. return uint32(0)
  7927. }
  7928. } else { /* state->how == GZIP */
  7929. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_out = *(*uint32)(unsafe.Pointer(bp))
  7930. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_out = buf
  7931. if _gz_decomp(tls, state) == -int32(1) {
  7932. return uint32(0)
  7933. }
  7934. *(*uint32)(unsafe.Pointer(bp)) = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  7935. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  7936. }
  7937. }
  7938. }
  7939. }
  7940. /* update progress */
  7941. len1 -= *(*uint32)(unsafe.Pointer(bp))
  7942. buf = buf + uintptr(*(*uint32)(unsafe.Pointer(bp)))
  7943. got += *(*uint32)(unsafe.Pointer(bp))
  7944. p1 = state + 8
  7945. *(*int32)(unsafe.Pointer(p1)) = int32(uint32(*(*int32)(unsafe.Pointer(p1))) + *(*uint32)(unsafe.Pointer(bp)))
  7946. }
  7947. /* return number of bytes read into user buffer */
  7948. return got
  7949. }
  7950. // C documentation
  7951. //
  7952. // /* -- see zlib.h -- */
  7953. func Xgzread(tls *libc.TLS, file TgzFile, buf Tvoidp, len1 uint32) (r int32) {
  7954. var state Tgz_statep
  7955. _ = state
  7956. /* get internal structure */
  7957. if file == libc.UintptrFromInt32(0) {
  7958. return -int32(1)
  7959. }
  7960. state = file
  7961. /* check that we're reading and that there's no (serious) error */
  7962. 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) {
  7963. return -int32(1)
  7964. }
  7965. /* since an int is returned, make sure len fits in one, otherwise return
  7966. with an error (this avoids a flaw in the interface) */
  7967. if int32(len1) < 0 {
  7968. Xgz_error(tls, state, -int32(2), __ccgo_ts+126)
  7969. return -int32(1)
  7970. }
  7971. /* read len or fewer bytes to buf */
  7972. len1 = _gz_read(tls, state, buf, len1)
  7973. /* check for an error */
  7974. if len1 == uint32(0) && (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  7975. return -int32(1)
  7976. }
  7977. /* return the number of bytes read (this is assured to fit in an int) */
  7978. return int32(len1)
  7979. }
  7980. // C documentation
  7981. //
  7982. // /* -- see zlib.h -- */
  7983. func Xgzfread(tls *libc.TLS, buf Tvoidp, size Tz_size_t, nitems Tz_size_t, file TgzFile) (r Tz_size_t) {
  7984. var len1 Tz_size_t
  7985. var state Tgz_statep
  7986. var v1 uint32
  7987. _, _, _ = len1, state, v1
  7988. /* get internal structure */
  7989. if file == libc.UintptrFromInt32(0) {
  7990. return uint32(0)
  7991. }
  7992. state = file
  7993. /* check that we're reading and that there's no (serious) error */
  7994. 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) {
  7995. return uint32(0)
  7996. }
  7997. /* compute bytes to read -- error on overflow */
  7998. len1 = nitems * size
  7999. if size != 0 && len1/size != nitems {
  8000. Xgz_error(tls, state, -int32(2), __ccgo_ts+157)
  8001. return uint32(0)
  8002. }
  8003. /* read len or fewer bytes to buf, return the number of full items read */
  8004. if len1 != 0 {
  8005. v1 = _gz_read(tls, state, buf, len1) / size
  8006. } else {
  8007. v1 = uint32(0)
  8008. }
  8009. return v1
  8010. }
  8011. // C documentation
  8012. //
  8013. // /* -- see zlib.h -- */
  8014. func Xgzgetc(tls *libc.TLS, file TgzFile) (r int32) {
  8015. bp := tls.Alloc(16)
  8016. defer tls.Free(16)
  8017. var state Tgz_statep
  8018. var v1, v2 uintptr
  8019. var v3 int32
  8020. var _ /* buf at bp+0 */ [1]uint8
  8021. _, _, _, _ = state, v1, v2, v3
  8022. /* get internal structure */
  8023. if file == libc.UintptrFromInt32(0) {
  8024. return -int32(1)
  8025. }
  8026. state = file
  8027. /* check that we're reading and that there's no (serious) error */
  8028. 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) {
  8029. return -int32(1)
  8030. }
  8031. /* try output buffer (no need to check for skip request) */
  8032. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  8033. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave--
  8034. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos++
  8035. v2 = state + 4
  8036. v1 = *(*uintptr)(unsafe.Pointer(v2))
  8037. *(*uintptr)(unsafe.Pointer(v2))++
  8038. return int32(*(*uint8)(unsafe.Pointer(v1)))
  8039. }
  8040. /* nothing there -- try gz_read() */
  8041. if _gz_read(tls, state, bp, uint32(1)) < uint32(1) {
  8042. v3 = -int32(1)
  8043. } else {
  8044. v3 = int32((*(*[1]uint8)(unsafe.Pointer(bp)))[0])
  8045. }
  8046. return v3
  8047. }
  8048. func Xgzgetc_(tls *libc.TLS, file TgzFile) (r int32) {
  8049. return Xgzgetc(tls, file)
  8050. }
  8051. // C documentation
  8052. //
  8053. // /* -- see zlib.h -- */
  8054. func Xgzungetc(tls *libc.TLS, c int32, file TgzFile) (r int32) {
  8055. var dest, src, v1, v2 uintptr
  8056. var state Tgz_statep
  8057. _, _, _, _, _ = dest, src, state, v1, v2
  8058. /* get internal structure */
  8059. if file == libc.UintptrFromInt32(0) {
  8060. return -int32(1)
  8061. }
  8062. state = file
  8063. /* in case this was just opened, set up the input buffer */
  8064. 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) {
  8065. _gz_look(tls, state)
  8066. }
  8067. /* check that we're reading and that there's no (serious) error */
  8068. 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) {
  8069. return -int32(1)
  8070. }
  8071. /* process a skip request */
  8072. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  8073. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  8074. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  8075. return -int32(1)
  8076. }
  8077. }
  8078. /* can't push EOF */
  8079. if c < 0 {
  8080. return -int32(1)
  8081. }
  8082. /* if output buffer empty, put byte at end (allows more pushing) */
  8083. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) {
  8084. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(1)
  8085. (*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)
  8086. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) = uint8(c)
  8087. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos--
  8088. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  8089. return c
  8090. }
  8091. /* if no room, give up (must have already done a gzungetc()) */
  8092. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1) {
  8093. Xgz_error(tls, state, -int32(3), __ccgo_ts+190)
  8094. return -int32(1)
  8095. }
  8096. /* slide output data if needed and insert byte before existing data */
  8097. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext == (*Tgz_state)(unsafe.Pointer(state)).Fout {
  8098. src = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave)
  8099. dest = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize<<libc.Int32FromInt32(1))
  8100. for src > (*Tgz_state)(unsafe.Pointer(state)).Fout {
  8101. dest--
  8102. v1 = dest
  8103. src--
  8104. v2 = src
  8105. *(*uint8)(unsafe.Pointer(v1)) = *(*uint8)(unsafe.Pointer(v2))
  8106. }
  8107. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = dest
  8108. }
  8109. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave++
  8110. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext--
  8111. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) = uint8(c)
  8112. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos--
  8113. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  8114. return c
  8115. }
  8116. // C documentation
  8117. //
  8118. // /* -- see zlib.h -- */
  8119. func Xgzgets(tls *libc.TLS, file TgzFile, buf uintptr, len1 int32) (r uintptr) {
  8120. var eol, str, p2 uintptr
  8121. var left, n, v1 uint32
  8122. var state Tgz_statep
  8123. _, _, _, _, _, _, _ = eol, left, n, state, str, v1, p2
  8124. /* check parameters and get internal structure */
  8125. if file == libc.UintptrFromInt32(0) || buf == libc.UintptrFromInt32(0) || len1 < int32(1) {
  8126. return libc.UintptrFromInt32(0)
  8127. }
  8128. state = file
  8129. /* check that we're reading and that there's no (serious) error */
  8130. 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) {
  8131. return libc.UintptrFromInt32(0)
  8132. }
  8133. /* process a skip request */
  8134. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  8135. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  8136. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  8137. return libc.UintptrFromInt32(0)
  8138. }
  8139. }
  8140. /* copy output bytes up to new line or len - 1, whichever comes first --
  8141. append a terminating zero to the string (we don't check for a zero in
  8142. the contents, let the user worry about that) */
  8143. str = buf
  8144. left = uint32(len1) - uint32(1)
  8145. if left != 0 {
  8146. for cond := true; cond; cond = left != 0 && eol == libc.UintptrFromInt32(0) {
  8147. /* assure that something is in the output buffer */
  8148. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) && _gz_fetch(tls, state) == -int32(1) {
  8149. return libc.UintptrFromInt32(0)
  8150. } /* error */
  8151. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) { /* end of file */
  8152. (*Tgz_state)(unsafe.Pointer(state)).Fpast = int32(1) /* read past end */
  8153. break /* return what we have */
  8154. }
  8155. /* look for end-of-line in current output buffer */
  8156. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > left {
  8157. v1 = left
  8158. } else {
  8159. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  8160. }
  8161. n = v1
  8162. eol = libc.Xmemchr(tls, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, int32('\n'), n)
  8163. if eol != libc.UintptrFromInt32(0) {
  8164. n = uint32(int32(eol)-int32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) + uint32(1)
  8165. }
  8166. /* copy through end-of-line, or remainder if not found */
  8167. libc.Xmemcpy(tls, buf, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, n)
  8168. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  8169. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  8170. p2 = state + 8
  8171. *(*int32)(unsafe.Pointer(p2)) = int32(uint32(*(*int32)(unsafe.Pointer(p2))) + n)
  8172. left -= n
  8173. buf += uintptr(n)
  8174. }
  8175. }
  8176. /* return terminated string, or if nothing, end of file */
  8177. if buf == str {
  8178. return libc.UintptrFromInt32(0)
  8179. }
  8180. *(*int8)(unsafe.Pointer(buf)) = 0
  8181. return str
  8182. }
  8183. // C documentation
  8184. //
  8185. // /* -- see zlib.h -- */
  8186. func Xgzdirect(tls *libc.TLS, file TgzFile) (r int32) {
  8187. var state Tgz_statep
  8188. _ = state
  8189. /* get internal structure */
  8190. if file == libc.UintptrFromInt32(0) {
  8191. return 0
  8192. }
  8193. state = file
  8194. /* if the state is not known, but we can find out, then do so (this is
  8195. mainly for right after a gzopen() or gzdopen()) */
  8196. 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) {
  8197. _gz_look(tls, state)
  8198. }
  8199. /* return 1 if transparent, 0 if processing a gzip stream */
  8200. return (*Tgz_state)(unsafe.Pointer(state)).Fdirect
  8201. }
  8202. // C documentation
  8203. //
  8204. // /* -- see zlib.h -- */
  8205. func Xgzclose_r(tls *libc.TLS, file TgzFile) (r int32) {
  8206. var err, ret, v1, v2 int32
  8207. var state Tgz_statep
  8208. _, _, _, _, _ = err, ret, state, v1, v2
  8209. /* get internal structure */
  8210. if file == libc.UintptrFromInt32(0) {
  8211. return -int32(2)
  8212. }
  8213. state = file
  8214. /* check that we're reading */
  8215. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) {
  8216. return -int32(2)
  8217. }
  8218. /* free memory and close file */
  8219. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  8220. XinflateEnd(tls, state+88)
  8221. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  8222. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  8223. }
  8224. if (*Tgz_state)(unsafe.Pointer(state)).Ferr == -int32(5) {
  8225. v1 = -int32(5)
  8226. } else {
  8227. v1 = m_Z_OK
  8228. }
  8229. err = v1
  8230. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  8231. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  8232. ret = libc.Xclose(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd)
  8233. libc.Xfree(tls, state)
  8234. if ret != 0 {
  8235. v2 = -int32(1)
  8236. } else {
  8237. v2 = err
  8238. }
  8239. return v2
  8240. }
  8241. // C documentation
  8242. //
  8243. // /* Initialize state for writing a gzip file. Mark initialization by setting
  8244. // state->size to non-zero. Return -1 on a memory allocation failure, or 0 on
  8245. // success. */
  8246. func _gz_init(tls *libc.TLS, state Tgz_statep) (r int32) {
  8247. var ret int32
  8248. var strm Tz_streamp
  8249. _, _ = ret, strm
  8250. strm = state + 88
  8251. /* allocate input buffer (double size for gzprintf) */
  8252. (*Tgz_state)(unsafe.Pointer(state)).Fin = libc.Xmalloc(tls, (*Tgz_state)(unsafe.Pointer(state)).Fwant<<int32(1))
  8253. if (*Tgz_state)(unsafe.Pointer(state)).Fin == libc.UintptrFromInt32(0) {
  8254. Xgz_error(tls, state, -int32(4), __ccgo_ts+17)
  8255. return -int32(1)
  8256. }
  8257. /* only need output buffer and deflate state if compressing */
  8258. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  8259. /* allocate output buffer */
  8260. (*Tgz_state)(unsafe.Pointer(state)).Fout = libc.Xmalloc(tls, (*Tgz_state)(unsafe.Pointer(state)).Fwant)
  8261. if (*Tgz_state)(unsafe.Pointer(state)).Fout == libc.UintptrFromInt32(0) {
  8262. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  8263. Xgz_error(tls, state, -int32(4), __ccgo_ts+17)
  8264. return -int32(1)
  8265. }
  8266. /* allocate deflate memory, set up for gzip compression */
  8267. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = uintptr(m_Z_NULL)
  8268. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = uintptr(m_Z_NULL)
  8269. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = uintptr(m_Z_NULL)
  8270. 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(56))
  8271. if ret != m_Z_OK {
  8272. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  8273. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  8274. Xgz_error(tls, state, -int32(4), __ccgo_ts+17)
  8275. return -int32(1)
  8276. }
  8277. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = libc.UintptrFromInt32(0)
  8278. }
  8279. /* mark state as initialized */
  8280. (*Tgz_state)(unsafe.Pointer(state)).Fsize = (*Tgz_state)(unsafe.Pointer(state)).Fwant
  8281. /* initialize write buffer if compressing */
  8282. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  8283. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  8284. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  8285. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  8286. }
  8287. return 0
  8288. }
  8289. // C documentation
  8290. //
  8291. // /* Compress whatever is at avail_in and next_in and write to the output file.
  8292. // Return -1 if there is an error writing to the output file or if gz_init()
  8293. // fails to allocate memory, otherwise 0. flush is assumed to be a valid
  8294. // deflate() flush value. If flush is Z_FINISH, then the deflate() state is
  8295. // reset to start a new gzip stream. If gz->direct is true, then simply write
  8296. // to the output file without compressing, and ignore flush. */
  8297. func _gz_comp(tls *libc.TLS, state Tgz_statep, flush int32) (r int32) {
  8298. var have, max, put, v1, v2 uint32
  8299. var ret, writ int32
  8300. var strm Tz_streamp
  8301. _, _, _, _, _, _, _, _ = have, max, put, ret, strm, writ, v1, v2
  8302. max = uint32(-libc.Int32FromInt32(1))>>libc.Int32FromInt32(2) + libc.Uint32FromInt32(1)
  8303. strm = state + 88
  8304. /* allocate memory if this is the first time through */
  8305. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  8306. return -int32(1)
  8307. }
  8308. /* write directly if requested */
  8309. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  8310. for (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 {
  8311. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in > max {
  8312. v1 = max
  8313. } else {
  8314. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  8315. }
  8316. put = v1
  8317. writ = libc.Xwrite(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, put)
  8318. if writ < 0 {
  8319. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X_errno(tls)))))
  8320. return -int32(1)
  8321. }
  8322. *(*TuInt)(unsafe.Pointer(strm + 4)) -= uint32(writ)
  8323. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(writ)
  8324. }
  8325. return 0
  8326. }
  8327. /* check for a pending reset */
  8328. if (*Tgz_state)(unsafe.Pointer(state)).Freset != 0 {
  8329. /* don't start a new gzip member unless there is data to write */
  8330. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  8331. return 0
  8332. }
  8333. XdeflateReset(tls, strm)
  8334. (*Tgz_state)(unsafe.Pointer(state)).Freset = 0
  8335. }
  8336. /* run deflate() on provided input until it produces no more output */
  8337. ret = m_Z_OK
  8338. for cond := true; cond; cond = have != 0 {
  8339. /* write out current buffer contents if full, or if flushing, but if
  8340. doing Z_FINISH then don't write until we get to Z_STREAM_END */
  8341. 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)) {
  8342. for (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out > (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext {
  8343. if int32((*Tz_stream)(unsafe.Pointer(strm)).Fnext_out)-int32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext) > int32(max) {
  8344. v2 = max
  8345. } else {
  8346. v2 = uint32(int32((*Tz_stream)(unsafe.Pointer(strm)).Fnext_out) - int32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext))
  8347. }
  8348. put = v2
  8349. writ = libc.Xwrite(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, put)
  8350. if writ < 0 {
  8351. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X_errno(tls)))))
  8352. return -int32(1)
  8353. }
  8354. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(writ)
  8355. }
  8356. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  8357. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  8358. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  8359. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  8360. }
  8361. }
  8362. /* compress */
  8363. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  8364. ret = Xdeflate(tls, strm, flush)
  8365. if ret == -int32(2) {
  8366. Xgz_error(tls, state, -int32(2), __ccgo_ts+221)
  8367. return -int32(1)
  8368. }
  8369. have -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  8370. }
  8371. /* if that completed a deflate stream, allow another to start */
  8372. if flush == int32(m_Z_FINISH) {
  8373. (*Tgz_state)(unsafe.Pointer(state)).Freset = int32(1)
  8374. }
  8375. /* all done, no errors */
  8376. return 0
  8377. }
  8378. // C documentation
  8379. //
  8380. // /* Compress len zeros to output. Return -1 on a write error or memory
  8381. // allocation failure by gz_comp(), or 0 on success. */
  8382. func _gz_zero(tls *libc.TLS, state Tgz_statep, len1 int32) (r int32) {
  8383. var first int32
  8384. var n, v1 uint32
  8385. var strm Tz_streamp
  8386. var p2 uintptr
  8387. _, _, _, _, _ = first, n, strm, v1, p2
  8388. strm = state + 88
  8389. /* consume whatever's left in the input buffer */
  8390. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  8391. return -int32(1)
  8392. }
  8393. /* compress len zeros (len guaranteed > 0) */
  8394. first = int32(1)
  8395. for len1 != 0 {
  8396. if libc.Bool(uint32(4) == uint32(4)) && (*Tgz_state)(unsafe.Pointer(state)).Fsize > Xgz_intmax(tls) || int32((*Tgz_state)(unsafe.Pointer(state)).Fsize) > len1 {
  8397. v1 = uint32(len1)
  8398. } else {
  8399. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  8400. }
  8401. n = v1
  8402. if first != 0 {
  8403. libc.Xmemset(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin, 0, n)
  8404. first = 0
  8405. }
  8406. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = n
  8407. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  8408. p2 = state + 8
  8409. *(*int32)(unsafe.Pointer(p2)) = int32(uint32(*(*int32)(unsafe.Pointer(p2))) + n)
  8410. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  8411. return -int32(1)
  8412. }
  8413. len1 = int32(uint32(len1) - n)
  8414. }
  8415. return 0
  8416. }
  8417. // C documentation
  8418. //
  8419. // /* Write len bytes from buf to file. Return the number of bytes written. If
  8420. // the returned value is less than len, then there was an error. */
  8421. func _gz_write(tls *libc.TLS, state Tgz_statep, buf Tvoidpc, len1 Tz_size_t) (r Tz_size_t) {
  8422. var copy1, have, n uint32
  8423. var put Tz_size_t
  8424. var p1, p2 uintptr
  8425. _, _, _, _, _, _ = copy1, have, n, put, p1, p2
  8426. put = len1
  8427. /* if len is zero, avoid unnecessary operations */
  8428. if len1 == uint32(0) {
  8429. return uint32(0)
  8430. }
  8431. /* allocate memory if this is the first time through */
  8432. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  8433. return uint32(0)
  8434. }
  8435. /* check for seek request */
  8436. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  8437. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  8438. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  8439. return uint32(0)
  8440. }
  8441. }
  8442. /* for small len, copy to input buffer, otherwise compress directly */
  8443. if len1 < (*Tgz_state)(unsafe.Pointer(state)).Fsize {
  8444. /* copy to input buffer, compress when full */
  8445. for cond := true; cond; cond = len1 != 0 {
  8446. if (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  8447. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  8448. }
  8449. have = uint32(int32((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in+uintptr((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in)) - int32((*Tgz_state)(unsafe.Pointer(state)).Fin))
  8450. copy1 = (*Tgz_state)(unsafe.Pointer(state)).Fsize - have
  8451. if copy1 > len1 {
  8452. copy1 = len1
  8453. }
  8454. libc.Xmemcpy(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr(have), buf, copy1)
  8455. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in += copy1
  8456. p1 = state + 8
  8457. *(*int32)(unsafe.Pointer(p1)) = int32(uint32(*(*int32)(unsafe.Pointer(p1))) + copy1)
  8458. buf = buf + uintptr(copy1)
  8459. len1 -= copy1
  8460. if len1 != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  8461. return uint32(0)
  8462. }
  8463. }
  8464. } else {
  8465. /* consume whatever's left in the input buffer */
  8466. if (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  8467. return uint32(0)
  8468. }
  8469. /* directly compress user buffer to file */
  8470. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = buf
  8471. for cond := true; cond; cond = len1 != 0 {
  8472. n = uint32(-libc.Int32FromInt32(1))
  8473. if n > len1 {
  8474. n = len1
  8475. }
  8476. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = n
  8477. p2 = state + 8
  8478. *(*int32)(unsafe.Pointer(p2)) = int32(uint32(*(*int32)(unsafe.Pointer(p2))) + n)
  8479. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  8480. return uint32(0)
  8481. }
  8482. len1 -= n
  8483. }
  8484. }
  8485. /* input was all buffered or compressed */
  8486. return put
  8487. }
  8488. // C documentation
  8489. //
  8490. // /* -- see zlib.h -- */
  8491. func Xgzwrite(tls *libc.TLS, file TgzFile, buf Tvoidpc, len1 uint32) (r int32) {
  8492. var state Tgz_statep
  8493. _ = state
  8494. /* get internal structure */
  8495. if file == libc.UintptrFromInt32(0) {
  8496. return 0
  8497. }
  8498. state = file
  8499. /* check that we're writing and that there's no error */
  8500. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  8501. return 0
  8502. }
  8503. /* since an int is returned, make sure len fits in one, otherwise return
  8504. with an error (this avoids a flaw in the interface) */
  8505. if int32(len1) < 0 {
  8506. Xgz_error(tls, state, -int32(3), __ccgo_ts+260)
  8507. return 0
  8508. }
  8509. /* write len bytes from buf (the return value will fit in an int) */
  8510. return int32(_gz_write(tls, state, buf, len1))
  8511. }
  8512. // C documentation
  8513. //
  8514. // /* -- see zlib.h -- */
  8515. func Xgzfwrite(tls *libc.TLS, buf Tvoidpc, size Tz_size_t, nitems Tz_size_t, file TgzFile) (r Tz_size_t) {
  8516. var len1 Tz_size_t
  8517. var state Tgz_statep
  8518. var v1 uint32
  8519. _, _, _ = len1, state, v1
  8520. /* get internal structure */
  8521. if file == libc.UintptrFromInt32(0) {
  8522. return uint32(0)
  8523. }
  8524. state = file
  8525. /* check that we're writing and that there's no error */
  8526. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  8527. return uint32(0)
  8528. }
  8529. /* compute bytes to read -- error on overflow */
  8530. len1 = nitems * size
  8531. if size != 0 && len1/size != nitems {
  8532. Xgz_error(tls, state, -int32(2), __ccgo_ts+157)
  8533. return uint32(0)
  8534. }
  8535. /* write len bytes to buf, return the number of full items written */
  8536. if len1 != 0 {
  8537. v1 = _gz_write(tls, state, buf, len1) / size
  8538. } else {
  8539. v1 = uint32(0)
  8540. }
  8541. return v1
  8542. }
  8543. // C documentation
  8544. //
  8545. // /* -- see zlib.h -- */
  8546. func Xgzputc(tls *libc.TLS, file TgzFile, c int32) (r int32) {
  8547. bp := tls.Alloc(16)
  8548. defer tls.Free(16)
  8549. var have uint32
  8550. var state Tgz_statep
  8551. var strm Tz_streamp
  8552. var _ /* buf at bp+0 */ [1]uint8
  8553. _, _, _ = have, state, strm
  8554. /* get internal structure */
  8555. if file == libc.UintptrFromInt32(0) {
  8556. return -int32(1)
  8557. }
  8558. state = file
  8559. strm = state + 88
  8560. /* check that we're writing and that there's no error */
  8561. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  8562. return -int32(1)
  8563. }
  8564. /* check for seek request */
  8565. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  8566. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  8567. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  8568. return -int32(1)
  8569. }
  8570. }
  8571. /* try writing to input buffer for speed (state->size == 0 if buffer not
  8572. initialized) */
  8573. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  8574. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  8575. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  8576. }
  8577. have = uint32(int32((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in+uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in)) - int32((*Tgz_state)(unsafe.Pointer(state)).Fin))
  8578. if have < (*Tgz_state)(unsafe.Pointer(state)).Fsize {
  8579. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fin + uintptr(have))) = uint8(c)
  8580. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in++
  8581. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos++
  8582. return c & int32(0xff)
  8583. }
  8584. }
  8585. /* no room in buffer or not initialized, use gz_write() */
  8586. (*(*[1]uint8)(unsafe.Pointer(bp)))[0] = uint8(c)
  8587. if _gz_write(tls, state, bp, uint32(1)) != uint32(1) {
  8588. return -int32(1)
  8589. }
  8590. return c & int32(0xff)
  8591. }
  8592. // C documentation
  8593. //
  8594. // /* -- see zlib.h -- */
  8595. func Xgzputs(tls *libc.TLS, file TgzFile, s uintptr) (r int32) {
  8596. var len1, put Tz_size_t
  8597. var state Tgz_statep
  8598. var v1 int32
  8599. _, _, _, _ = len1, put, state, v1
  8600. /* get internal structure */
  8601. if file == libc.UintptrFromInt32(0) {
  8602. return -int32(1)
  8603. }
  8604. state = file
  8605. /* check that we're writing and that there's no error */
  8606. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  8607. return -int32(1)
  8608. }
  8609. /* write string */
  8610. len1 = libc.Xstrlen(tls, s)
  8611. if int32(len1) < 0 || len1 != len1 {
  8612. Xgz_error(tls, state, -int32(2), __ccgo_ts+297)
  8613. return -int32(1)
  8614. }
  8615. put = _gz_write(tls, state, s, len1)
  8616. if put < len1 {
  8617. v1 = -int32(1)
  8618. } else {
  8619. v1 = int32(len1)
  8620. }
  8621. return v1
  8622. }
  8623. /* Copyright (C) 1989, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
  8624. This file is part of GCC.
  8625. GCC is free software; you can redistribute it and/or modify
  8626. it under the terms of the GNU General Public License as published by
  8627. the Free Software Foundation; either version 2, or (at your option)
  8628. any later version.
  8629. GCC is distributed in the hope that it will be useful,
  8630. but WITHOUT ANY WARRANTY; without even the implied warranty of
  8631. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  8632. GNU General Public License for more details.
  8633. You should have received a copy of the GNU General Public License
  8634. along with GCC; see the file COPYING. If not, write to
  8635. the Free Software Foundation, 51 Franklin Street, Fifth Floor,
  8636. Boston, MA 02110-1301, USA. */
  8637. /* As a special exception, if you include this header file into source
  8638. files compiled by GCC, this header file does not by itself cause
  8639. the resulting executable to be covered by the GNU General Public
  8640. License. This exception does not however invalidate any other
  8641. reasons why the executable file might be covered by the GNU General
  8642. Public License. */
  8643. /*
  8644. * ISO C Standard: 7.15 Variable arguments <stdarg.h>
  8645. */
  8646. /* include mingw stuff */
  8647. /**
  8648. * This file has no copyright assigned and is placed in the Public Domain.
  8649. * This file is part of the mingw-w64 runtime package.
  8650. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  8651. */
  8652. /* Copyright (C) 1989-2022 Free Software Foundation, Inc.
  8653. This file is part of GCC.
  8654. GCC is free software; you can redistribute it and/or modify
  8655. it under the terms of the GNU General Public License as published by
  8656. the Free Software Foundation; either version 3, or (at your option)
  8657. any later version.
  8658. GCC is distributed in the hope that it will be useful,
  8659. but WITHOUT ANY WARRANTY; without even the implied warranty of
  8660. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  8661. GNU General Public License for more details.
  8662. Under Section 7 of GPL version 3, you are granted additional
  8663. permissions described in the GCC Runtime Library Exception, version
  8664. 3.1, as published by the Free Software Foundation.
  8665. You should have received a copy of the GNU General Public License and
  8666. a copy of the GCC Runtime Library Exception along with this program;
  8667. see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  8668. <http://www.gnu.org/licenses/>. */
  8669. /*
  8670. * ISO C Standard: 7.15 Variable arguments <stdarg.h>
  8671. */
  8672. // C documentation
  8673. //
  8674. // /* -- see zlib.h -- */
  8675. func Xgzvprintf(tls *libc.TLS, file TgzFile, format uintptr, va Tva_list) (r int32) {
  8676. var left uint32
  8677. var len1 int32
  8678. var next uintptr
  8679. var state Tgz_statep
  8680. var strm Tz_streamp
  8681. _, _, _, _, _ = left, len1, next, state, strm
  8682. /* get internal structure */
  8683. if file == libc.UintptrFromInt32(0) {
  8684. return -int32(2)
  8685. }
  8686. state = file
  8687. strm = state + 88
  8688. /* check that we're writing and that there's no error */
  8689. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  8690. return -int32(2)
  8691. }
  8692. /* make sure we have some buffer space */
  8693. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  8694. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  8695. }
  8696. /* check for seek request */
  8697. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  8698. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  8699. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  8700. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  8701. }
  8702. }
  8703. /* do the printf() into the input buffer, put length in len -- the input
  8704. buffer is double-sized just for this function, so there is guaranteed to
  8705. be state->size bytes available after the current contents */
  8706. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  8707. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  8708. }
  8709. next = (*Tgz_state)(unsafe.Pointer(state)).Fin + uintptr(int32((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in)-int32((*Tgz_state)(unsafe.Pointer(state)).Fin)) + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in)
  8710. *(*int8)(unsafe.Pointer(next + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize-uint32(1)))) = 0
  8711. len1 = libc.X__builtin_vsnprintf(tls, next, (*Tgz_state)(unsafe.Pointer(state)).Fsize, format, va)
  8712. /* check that printf() results fit in buffer */
  8713. if len1 == 0 || uint32(len1) >= (*Tgz_state)(unsafe.Pointer(state)).Fsize || int32(*(*int8)(unsafe.Pointer(next + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize-uint32(1))))) != 0 {
  8714. return 0
  8715. }
  8716. /* update buffer and position, compress first half if past that */
  8717. *(*TuInt)(unsafe.Pointer(strm + 4)) += uint32(len1)
  8718. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += len1
  8719. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in >= (*Tgz_state)(unsafe.Pointer(state)).Fsize {
  8720. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in - (*Tgz_state)(unsafe.Pointer(state)).Fsize
  8721. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  8722. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  8723. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  8724. }
  8725. libc.Xmemmove(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize), left)
  8726. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  8727. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = left
  8728. }
  8729. return len1
  8730. }
  8731. func Xgzprintf(tls *libc.TLS, file TgzFile, format uintptr, va1 uintptr) (r int32) {
  8732. var ret int32
  8733. var va Tva_list
  8734. _, _ = ret, va
  8735. va = va1
  8736. ret = Xgzvprintf(tls, file, format, va)
  8737. _ = va
  8738. return ret
  8739. }
  8740. // C documentation
  8741. //
  8742. // /* -- see zlib.h -- */
  8743. func Xgzflush(tls *libc.TLS, file TgzFile, flush int32) (r int32) {
  8744. var state Tgz_statep
  8745. _ = state
  8746. /* get internal structure */
  8747. if file == libc.UintptrFromInt32(0) {
  8748. return -int32(2)
  8749. }
  8750. state = file
  8751. /* check that we're writing and that there's no error */
  8752. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  8753. return -int32(2)
  8754. }
  8755. /* check flush parameter */
  8756. if flush < 0 || flush > int32(m_Z_FINISH) {
  8757. return -int32(2)
  8758. }
  8759. /* check for seek request */
  8760. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  8761. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  8762. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  8763. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  8764. }
  8765. }
  8766. /* compress remaining data with requested flush */
  8767. _gz_comp(tls, state, flush)
  8768. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  8769. }
  8770. // C documentation
  8771. //
  8772. // /* -- see zlib.h -- */
  8773. func Xgzsetparams(tls *libc.TLS, file TgzFile, level int32, strategy int32) (r int32) {
  8774. var state Tgz_statep
  8775. var strm Tz_streamp
  8776. _, _ = state, strm
  8777. /* get internal structure */
  8778. if file == libc.UintptrFromInt32(0) {
  8779. return -int32(2)
  8780. }
  8781. state = file
  8782. strm = state + 88
  8783. /* check that we're writing and that there's no error */
  8784. 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 {
  8785. return -int32(2)
  8786. }
  8787. /* if no change is requested, then do nothing */
  8788. if level == (*Tgz_state)(unsafe.Pointer(state)).Flevel && strategy == (*Tgz_state)(unsafe.Pointer(state)).Fstrategy {
  8789. return m_Z_OK
  8790. }
  8791. /* check for seek request */
  8792. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  8793. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  8794. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  8795. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  8796. }
  8797. }
  8798. /* change compression parameters for subsequent input */
  8799. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  8800. /* flush previous input with previous parameters before changing */
  8801. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 && _gz_comp(tls, state, int32(m_Z_BLOCK)) == -int32(1) {
  8802. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  8803. }
  8804. XdeflateParams(tls, strm, level, strategy)
  8805. }
  8806. (*Tgz_state)(unsafe.Pointer(state)).Flevel = level
  8807. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = strategy
  8808. return m_Z_OK
  8809. }
  8810. // C documentation
  8811. //
  8812. // /* -- see zlib.h -- */
  8813. func Xgzclose_w(tls *libc.TLS, file TgzFile) (r int32) {
  8814. var ret int32
  8815. var state Tgz_statep
  8816. _, _ = ret, state
  8817. ret = m_Z_OK
  8818. /* get internal structure */
  8819. if file == libc.UintptrFromInt32(0) {
  8820. return -int32(2)
  8821. }
  8822. state = file
  8823. /* check that we're writing */
  8824. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  8825. return -int32(2)
  8826. }
  8827. /* check for seek request */
  8828. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  8829. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  8830. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  8831. ret = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  8832. }
  8833. }
  8834. /* flush, free memory, and close file */
  8835. if _gz_comp(tls, state, int32(m_Z_FINISH)) == -int32(1) {
  8836. ret = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  8837. }
  8838. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  8839. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  8840. XdeflateEnd(tls, state+88)
  8841. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  8842. }
  8843. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  8844. }
  8845. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  8846. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  8847. if libc.Xclose(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd) == -int32(1) {
  8848. ret = -int32(1)
  8849. }
  8850. libc.Xfree(tls, state)
  8851. return ret
  8852. }
  8853. const m_ENOUGH_DISTS = 592
  8854. const m_ENOUGH_LENS = 852
  8855. const m_PRESET_DICT2 = 0x20
  8856. type Tcode = struct {
  8857. Fop uint8
  8858. Fbits uint8
  8859. Fval uint16
  8860. }
  8861. type Tcodetype = int32
  8862. const _CODES = 0
  8863. const _LENS = 1
  8864. const _DISTS = 2
  8865. type Tinflate_mode = int32
  8866. const _HEAD = 16180
  8867. const _FLAGS = 16181
  8868. const _TIME = 16182
  8869. const _OS = 16183
  8870. const _EXLEN = 16184
  8871. const _EXTRA = 16185
  8872. const _NAME = 16186
  8873. const _COMMENT = 16187
  8874. const _HCRC = 16188
  8875. const _DICTID = 16189
  8876. const _DICT = 16190
  8877. const _TYPE = 16191
  8878. const _TYPEDO = 16192
  8879. const _STORED = 16193
  8880. const _COPY_ = 16194
  8881. const _COPY = 16195
  8882. const _TABLE = 16196
  8883. const _LENLENS = 16197
  8884. const _CODELENS = 16198
  8885. const _LEN_ = 16199
  8886. const _LEN = 16200
  8887. const _LENEXT = 16201
  8888. const _DIST = 16202
  8889. const _DISTEXT = 16203
  8890. const _MATCH = 16204
  8891. const _LIT = 16205
  8892. const _CHECK = 16206
  8893. const _LENGTH = 16207
  8894. const _DONE = 16208
  8895. const _BAD = 16209
  8896. const _MEM = 16210
  8897. const _SYNC = 16211
  8898. type Tinflate_state = struct {
  8899. Fstrm Tz_streamp
  8900. Fmode Tinflate_mode
  8901. Flast int32
  8902. Fwrap int32
  8903. Fhavedict int32
  8904. Fflags int32
  8905. Fdmax uint32
  8906. Fcheck uint32
  8907. Ftotal uint32
  8908. Fhead Tgz_headerp
  8909. Fwbits uint32
  8910. Fwsize uint32
  8911. Fwhave uint32
  8912. Fwnext uint32
  8913. Fwindow uintptr
  8914. Fhold uint32
  8915. Fbits uint32
  8916. Flength uint32
  8917. Foffset uint32
  8918. Fextra uint32
  8919. Flencode uintptr
  8920. Fdistcode uintptr
  8921. Flenbits uint32
  8922. Fdistbits uint32
  8923. Fncode uint32
  8924. Fnlen uint32
  8925. Fndist uint32
  8926. Fhave uint32
  8927. Fnext uintptr
  8928. Flens [320]uint16
  8929. Fwork [288]uint16
  8930. Fcodes [1444]Tcode
  8931. Fsane int32
  8932. Fback int32
  8933. Fwas uint32
  8934. }
  8935. // C documentation
  8936. //
  8937. // /*
  8938. // strm provides memory allocation functions in zalloc and zfree, or
  8939. // Z_NULL to use the library memory allocation functions.
  8940. //
  8941. // windowBits is in the range 8..15, and window is a user-supplied
  8942. // window and output buffer that is 2**windowBits bytes.
  8943. // */
  8944. func XinflateBackInit_(tls *libc.TLS, strm Tz_streamp, windowBits int32, window uintptr, version uintptr, stream_size int32) (r int32) {
  8945. var state uintptr
  8946. _ = state
  8947. if version == uintptr(m_Z_NULL) || int32(*(*int8)(unsafe.Pointer(version))) != int32(*(*int8)(unsafe.Pointer(__ccgo_ts))) || stream_size != int32(libc.Uint32FromInt64(56)) {
  8948. return -int32(6)
  8949. }
  8950. if strm == uintptr(m_Z_NULL) || window == uintptr(m_Z_NULL) || windowBits < int32(8) || windowBits > int32(15) {
  8951. return -int32(2)
  8952. }
  8953. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* in case we return an error */
  8954. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  8955. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  8956. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  8957. }
  8958. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  8959. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  8960. }
  8961. state = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, uint32(libc.Int32FromInt32(1)), libc.Uint32FromInt64(7120))
  8962. if state == uintptr(m_Z_NULL) {
  8963. return -int32(4)
  8964. }
  8965. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = state
  8966. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(32768)
  8967. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = uint32(windowBits)
  8968. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(1) << windowBits
  8969. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = window
  8970. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  8971. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  8972. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  8973. return m_Z_OK
  8974. }
  8975. // C documentation
  8976. //
  8977. // /*
  8978. // Return state with length and distance decoding tables and index sizes set to
  8979. // fixed code decoding. Normally this returns fixed tables from inffixed.h.
  8980. // If BUILDFIXED is defined, then instead this routine builds the tables the
  8981. // first time it's called, and returns those tables the first time and
  8982. // thereafter. This reduces the size of the code by about 2K bytes, in
  8983. // exchange for a little execution time. However, BUILDFIXED should not be
  8984. // used for threaded applications, since the rewriting of the tables and virgin
  8985. // may not be thread-safe.
  8986. // */
  8987. func _fixedtables(tls *libc.TLS, state uintptr) {
  8988. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = uintptr(unsafe.Pointer(&_lenfix))
  8989. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  8990. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = uintptr(unsafe.Pointer(&_distfix))
  8991. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(5)
  8992. }
  8993. var _lenfix = [512]Tcode{
  8994. 0: {
  8995. Fop: uint8(96),
  8996. Fbits: uint8(7),
  8997. },
  8998. 1: {
  8999. Fbits: uint8(8),
  9000. Fval: uint16(80),
  9001. },
  9002. 2: {
  9003. Fbits: uint8(8),
  9004. Fval: uint16(16),
  9005. },
  9006. 3: {
  9007. Fop: uint8(20),
  9008. Fbits: uint8(8),
  9009. Fval: uint16(115),
  9010. },
  9011. 4: {
  9012. Fop: uint8(18),
  9013. Fbits: uint8(7),
  9014. Fval: uint16(31),
  9015. },
  9016. 5: {
  9017. Fbits: uint8(8),
  9018. Fval: uint16(112),
  9019. },
  9020. 6: {
  9021. Fbits: uint8(8),
  9022. Fval: uint16(48),
  9023. },
  9024. 7: {
  9025. Fbits: uint8(9),
  9026. Fval: uint16(192),
  9027. },
  9028. 8: {
  9029. Fop: uint8(16),
  9030. Fbits: uint8(7),
  9031. Fval: uint16(10),
  9032. },
  9033. 9: {
  9034. Fbits: uint8(8),
  9035. Fval: uint16(96),
  9036. },
  9037. 10: {
  9038. Fbits: uint8(8),
  9039. Fval: uint16(32),
  9040. },
  9041. 11: {
  9042. Fbits: uint8(9),
  9043. Fval: uint16(160),
  9044. },
  9045. 12: {
  9046. Fbits: uint8(8),
  9047. },
  9048. 13: {
  9049. Fbits: uint8(8),
  9050. Fval: uint16(128),
  9051. },
  9052. 14: {
  9053. Fbits: uint8(8),
  9054. Fval: uint16(64),
  9055. },
  9056. 15: {
  9057. Fbits: uint8(9),
  9058. Fval: uint16(224),
  9059. },
  9060. 16: {
  9061. Fop: uint8(16),
  9062. Fbits: uint8(7),
  9063. Fval: uint16(6),
  9064. },
  9065. 17: {
  9066. Fbits: uint8(8),
  9067. Fval: uint16(88),
  9068. },
  9069. 18: {
  9070. Fbits: uint8(8),
  9071. Fval: uint16(24),
  9072. },
  9073. 19: {
  9074. Fbits: uint8(9),
  9075. Fval: uint16(144),
  9076. },
  9077. 20: {
  9078. Fop: uint8(19),
  9079. Fbits: uint8(7),
  9080. Fval: uint16(59),
  9081. },
  9082. 21: {
  9083. Fbits: uint8(8),
  9084. Fval: uint16(120),
  9085. },
  9086. 22: {
  9087. Fbits: uint8(8),
  9088. Fval: uint16(56),
  9089. },
  9090. 23: {
  9091. Fbits: uint8(9),
  9092. Fval: uint16(208),
  9093. },
  9094. 24: {
  9095. Fop: uint8(17),
  9096. Fbits: uint8(7),
  9097. Fval: uint16(17),
  9098. },
  9099. 25: {
  9100. Fbits: uint8(8),
  9101. Fval: uint16(104),
  9102. },
  9103. 26: {
  9104. Fbits: uint8(8),
  9105. Fval: uint16(40),
  9106. },
  9107. 27: {
  9108. Fbits: uint8(9),
  9109. Fval: uint16(176),
  9110. },
  9111. 28: {
  9112. Fbits: uint8(8),
  9113. Fval: uint16(8),
  9114. },
  9115. 29: {
  9116. Fbits: uint8(8),
  9117. Fval: uint16(136),
  9118. },
  9119. 30: {
  9120. Fbits: uint8(8),
  9121. Fval: uint16(72),
  9122. },
  9123. 31: {
  9124. Fbits: uint8(9),
  9125. Fval: uint16(240),
  9126. },
  9127. 32: {
  9128. Fop: uint8(16),
  9129. Fbits: uint8(7),
  9130. Fval: uint16(4),
  9131. },
  9132. 33: {
  9133. Fbits: uint8(8),
  9134. Fval: uint16(84),
  9135. },
  9136. 34: {
  9137. Fbits: uint8(8),
  9138. Fval: uint16(20),
  9139. },
  9140. 35: {
  9141. Fop: uint8(21),
  9142. Fbits: uint8(8),
  9143. Fval: uint16(227),
  9144. },
  9145. 36: {
  9146. Fop: uint8(19),
  9147. Fbits: uint8(7),
  9148. Fval: uint16(43),
  9149. },
  9150. 37: {
  9151. Fbits: uint8(8),
  9152. Fval: uint16(116),
  9153. },
  9154. 38: {
  9155. Fbits: uint8(8),
  9156. Fval: uint16(52),
  9157. },
  9158. 39: {
  9159. Fbits: uint8(9),
  9160. Fval: uint16(200),
  9161. },
  9162. 40: {
  9163. Fop: uint8(17),
  9164. Fbits: uint8(7),
  9165. Fval: uint16(13),
  9166. },
  9167. 41: {
  9168. Fbits: uint8(8),
  9169. Fval: uint16(100),
  9170. },
  9171. 42: {
  9172. Fbits: uint8(8),
  9173. Fval: uint16(36),
  9174. },
  9175. 43: {
  9176. Fbits: uint8(9),
  9177. Fval: uint16(168),
  9178. },
  9179. 44: {
  9180. Fbits: uint8(8),
  9181. Fval: uint16(4),
  9182. },
  9183. 45: {
  9184. Fbits: uint8(8),
  9185. Fval: uint16(132),
  9186. },
  9187. 46: {
  9188. Fbits: uint8(8),
  9189. Fval: uint16(68),
  9190. },
  9191. 47: {
  9192. Fbits: uint8(9),
  9193. Fval: uint16(232),
  9194. },
  9195. 48: {
  9196. Fop: uint8(16),
  9197. Fbits: uint8(7),
  9198. Fval: uint16(8),
  9199. },
  9200. 49: {
  9201. Fbits: uint8(8),
  9202. Fval: uint16(92),
  9203. },
  9204. 50: {
  9205. Fbits: uint8(8),
  9206. Fval: uint16(28),
  9207. },
  9208. 51: {
  9209. Fbits: uint8(9),
  9210. Fval: uint16(152),
  9211. },
  9212. 52: {
  9213. Fop: uint8(20),
  9214. Fbits: uint8(7),
  9215. Fval: uint16(83),
  9216. },
  9217. 53: {
  9218. Fbits: uint8(8),
  9219. Fval: uint16(124),
  9220. },
  9221. 54: {
  9222. Fbits: uint8(8),
  9223. Fval: uint16(60),
  9224. },
  9225. 55: {
  9226. Fbits: uint8(9),
  9227. Fval: uint16(216),
  9228. },
  9229. 56: {
  9230. Fop: uint8(18),
  9231. Fbits: uint8(7),
  9232. Fval: uint16(23),
  9233. },
  9234. 57: {
  9235. Fbits: uint8(8),
  9236. Fval: uint16(108),
  9237. },
  9238. 58: {
  9239. Fbits: uint8(8),
  9240. Fval: uint16(44),
  9241. },
  9242. 59: {
  9243. Fbits: uint8(9),
  9244. Fval: uint16(184),
  9245. },
  9246. 60: {
  9247. Fbits: uint8(8),
  9248. Fval: uint16(12),
  9249. },
  9250. 61: {
  9251. Fbits: uint8(8),
  9252. Fval: uint16(140),
  9253. },
  9254. 62: {
  9255. Fbits: uint8(8),
  9256. Fval: uint16(76),
  9257. },
  9258. 63: {
  9259. Fbits: uint8(9),
  9260. Fval: uint16(248),
  9261. },
  9262. 64: {
  9263. Fop: uint8(16),
  9264. Fbits: uint8(7),
  9265. Fval: uint16(3),
  9266. },
  9267. 65: {
  9268. Fbits: uint8(8),
  9269. Fval: uint16(82),
  9270. },
  9271. 66: {
  9272. Fbits: uint8(8),
  9273. Fval: uint16(18),
  9274. },
  9275. 67: {
  9276. Fop: uint8(21),
  9277. Fbits: uint8(8),
  9278. Fval: uint16(163),
  9279. },
  9280. 68: {
  9281. Fop: uint8(19),
  9282. Fbits: uint8(7),
  9283. Fval: uint16(35),
  9284. },
  9285. 69: {
  9286. Fbits: uint8(8),
  9287. Fval: uint16(114),
  9288. },
  9289. 70: {
  9290. Fbits: uint8(8),
  9291. Fval: uint16(50),
  9292. },
  9293. 71: {
  9294. Fbits: uint8(9),
  9295. Fval: uint16(196),
  9296. },
  9297. 72: {
  9298. Fop: uint8(17),
  9299. Fbits: uint8(7),
  9300. Fval: uint16(11),
  9301. },
  9302. 73: {
  9303. Fbits: uint8(8),
  9304. Fval: uint16(98),
  9305. },
  9306. 74: {
  9307. Fbits: uint8(8),
  9308. Fval: uint16(34),
  9309. },
  9310. 75: {
  9311. Fbits: uint8(9),
  9312. Fval: uint16(164),
  9313. },
  9314. 76: {
  9315. Fbits: uint8(8),
  9316. Fval: uint16(2),
  9317. },
  9318. 77: {
  9319. Fbits: uint8(8),
  9320. Fval: uint16(130),
  9321. },
  9322. 78: {
  9323. Fbits: uint8(8),
  9324. Fval: uint16(66),
  9325. },
  9326. 79: {
  9327. Fbits: uint8(9),
  9328. Fval: uint16(228),
  9329. },
  9330. 80: {
  9331. Fop: uint8(16),
  9332. Fbits: uint8(7),
  9333. Fval: uint16(7),
  9334. },
  9335. 81: {
  9336. Fbits: uint8(8),
  9337. Fval: uint16(90),
  9338. },
  9339. 82: {
  9340. Fbits: uint8(8),
  9341. Fval: uint16(26),
  9342. },
  9343. 83: {
  9344. Fbits: uint8(9),
  9345. Fval: uint16(148),
  9346. },
  9347. 84: {
  9348. Fop: uint8(20),
  9349. Fbits: uint8(7),
  9350. Fval: uint16(67),
  9351. },
  9352. 85: {
  9353. Fbits: uint8(8),
  9354. Fval: uint16(122),
  9355. },
  9356. 86: {
  9357. Fbits: uint8(8),
  9358. Fval: uint16(58),
  9359. },
  9360. 87: {
  9361. Fbits: uint8(9),
  9362. Fval: uint16(212),
  9363. },
  9364. 88: {
  9365. Fop: uint8(18),
  9366. Fbits: uint8(7),
  9367. Fval: uint16(19),
  9368. },
  9369. 89: {
  9370. Fbits: uint8(8),
  9371. Fval: uint16(106),
  9372. },
  9373. 90: {
  9374. Fbits: uint8(8),
  9375. Fval: uint16(42),
  9376. },
  9377. 91: {
  9378. Fbits: uint8(9),
  9379. Fval: uint16(180),
  9380. },
  9381. 92: {
  9382. Fbits: uint8(8),
  9383. Fval: uint16(10),
  9384. },
  9385. 93: {
  9386. Fbits: uint8(8),
  9387. Fval: uint16(138),
  9388. },
  9389. 94: {
  9390. Fbits: uint8(8),
  9391. Fval: uint16(74),
  9392. },
  9393. 95: {
  9394. Fbits: uint8(9),
  9395. Fval: uint16(244),
  9396. },
  9397. 96: {
  9398. Fop: uint8(16),
  9399. Fbits: uint8(7),
  9400. Fval: uint16(5),
  9401. },
  9402. 97: {
  9403. Fbits: uint8(8),
  9404. Fval: uint16(86),
  9405. },
  9406. 98: {
  9407. Fbits: uint8(8),
  9408. Fval: uint16(22),
  9409. },
  9410. 99: {
  9411. Fop: uint8(64),
  9412. Fbits: uint8(8),
  9413. },
  9414. 100: {
  9415. Fop: uint8(19),
  9416. Fbits: uint8(7),
  9417. Fval: uint16(51),
  9418. },
  9419. 101: {
  9420. Fbits: uint8(8),
  9421. Fval: uint16(118),
  9422. },
  9423. 102: {
  9424. Fbits: uint8(8),
  9425. Fval: uint16(54),
  9426. },
  9427. 103: {
  9428. Fbits: uint8(9),
  9429. Fval: uint16(204),
  9430. },
  9431. 104: {
  9432. Fop: uint8(17),
  9433. Fbits: uint8(7),
  9434. Fval: uint16(15),
  9435. },
  9436. 105: {
  9437. Fbits: uint8(8),
  9438. Fval: uint16(102),
  9439. },
  9440. 106: {
  9441. Fbits: uint8(8),
  9442. Fval: uint16(38),
  9443. },
  9444. 107: {
  9445. Fbits: uint8(9),
  9446. Fval: uint16(172),
  9447. },
  9448. 108: {
  9449. Fbits: uint8(8),
  9450. Fval: uint16(6),
  9451. },
  9452. 109: {
  9453. Fbits: uint8(8),
  9454. Fval: uint16(134),
  9455. },
  9456. 110: {
  9457. Fbits: uint8(8),
  9458. Fval: uint16(70),
  9459. },
  9460. 111: {
  9461. Fbits: uint8(9),
  9462. Fval: uint16(236),
  9463. },
  9464. 112: {
  9465. Fop: uint8(16),
  9466. Fbits: uint8(7),
  9467. Fval: uint16(9),
  9468. },
  9469. 113: {
  9470. Fbits: uint8(8),
  9471. Fval: uint16(94),
  9472. },
  9473. 114: {
  9474. Fbits: uint8(8),
  9475. Fval: uint16(30),
  9476. },
  9477. 115: {
  9478. Fbits: uint8(9),
  9479. Fval: uint16(156),
  9480. },
  9481. 116: {
  9482. Fop: uint8(20),
  9483. Fbits: uint8(7),
  9484. Fval: uint16(99),
  9485. },
  9486. 117: {
  9487. Fbits: uint8(8),
  9488. Fval: uint16(126),
  9489. },
  9490. 118: {
  9491. Fbits: uint8(8),
  9492. Fval: uint16(62),
  9493. },
  9494. 119: {
  9495. Fbits: uint8(9),
  9496. Fval: uint16(220),
  9497. },
  9498. 120: {
  9499. Fop: uint8(18),
  9500. Fbits: uint8(7),
  9501. Fval: uint16(27),
  9502. },
  9503. 121: {
  9504. Fbits: uint8(8),
  9505. Fval: uint16(110),
  9506. },
  9507. 122: {
  9508. Fbits: uint8(8),
  9509. Fval: uint16(46),
  9510. },
  9511. 123: {
  9512. Fbits: uint8(9),
  9513. Fval: uint16(188),
  9514. },
  9515. 124: {
  9516. Fbits: uint8(8),
  9517. Fval: uint16(14),
  9518. },
  9519. 125: {
  9520. Fbits: uint8(8),
  9521. Fval: uint16(142),
  9522. },
  9523. 126: {
  9524. Fbits: uint8(8),
  9525. Fval: uint16(78),
  9526. },
  9527. 127: {
  9528. Fbits: uint8(9),
  9529. Fval: uint16(252),
  9530. },
  9531. 128: {
  9532. Fop: uint8(96),
  9533. Fbits: uint8(7),
  9534. },
  9535. 129: {
  9536. Fbits: uint8(8),
  9537. Fval: uint16(81),
  9538. },
  9539. 130: {
  9540. Fbits: uint8(8),
  9541. Fval: uint16(17),
  9542. },
  9543. 131: {
  9544. Fop: uint8(21),
  9545. Fbits: uint8(8),
  9546. Fval: uint16(131),
  9547. },
  9548. 132: {
  9549. Fop: uint8(18),
  9550. Fbits: uint8(7),
  9551. Fval: uint16(31),
  9552. },
  9553. 133: {
  9554. Fbits: uint8(8),
  9555. Fval: uint16(113),
  9556. },
  9557. 134: {
  9558. Fbits: uint8(8),
  9559. Fval: uint16(49),
  9560. },
  9561. 135: {
  9562. Fbits: uint8(9),
  9563. Fval: uint16(194),
  9564. },
  9565. 136: {
  9566. Fop: uint8(16),
  9567. Fbits: uint8(7),
  9568. Fval: uint16(10),
  9569. },
  9570. 137: {
  9571. Fbits: uint8(8),
  9572. Fval: uint16(97),
  9573. },
  9574. 138: {
  9575. Fbits: uint8(8),
  9576. Fval: uint16(33),
  9577. },
  9578. 139: {
  9579. Fbits: uint8(9),
  9580. Fval: uint16(162),
  9581. },
  9582. 140: {
  9583. Fbits: uint8(8),
  9584. Fval: uint16(1),
  9585. },
  9586. 141: {
  9587. Fbits: uint8(8),
  9588. Fval: uint16(129),
  9589. },
  9590. 142: {
  9591. Fbits: uint8(8),
  9592. Fval: uint16(65),
  9593. },
  9594. 143: {
  9595. Fbits: uint8(9),
  9596. Fval: uint16(226),
  9597. },
  9598. 144: {
  9599. Fop: uint8(16),
  9600. Fbits: uint8(7),
  9601. Fval: uint16(6),
  9602. },
  9603. 145: {
  9604. Fbits: uint8(8),
  9605. Fval: uint16(89),
  9606. },
  9607. 146: {
  9608. Fbits: uint8(8),
  9609. Fval: uint16(25),
  9610. },
  9611. 147: {
  9612. Fbits: uint8(9),
  9613. Fval: uint16(146),
  9614. },
  9615. 148: {
  9616. Fop: uint8(19),
  9617. Fbits: uint8(7),
  9618. Fval: uint16(59),
  9619. },
  9620. 149: {
  9621. Fbits: uint8(8),
  9622. Fval: uint16(121),
  9623. },
  9624. 150: {
  9625. Fbits: uint8(8),
  9626. Fval: uint16(57),
  9627. },
  9628. 151: {
  9629. Fbits: uint8(9),
  9630. Fval: uint16(210),
  9631. },
  9632. 152: {
  9633. Fop: uint8(17),
  9634. Fbits: uint8(7),
  9635. Fval: uint16(17),
  9636. },
  9637. 153: {
  9638. Fbits: uint8(8),
  9639. Fval: uint16(105),
  9640. },
  9641. 154: {
  9642. Fbits: uint8(8),
  9643. Fval: uint16(41),
  9644. },
  9645. 155: {
  9646. Fbits: uint8(9),
  9647. Fval: uint16(178),
  9648. },
  9649. 156: {
  9650. Fbits: uint8(8),
  9651. Fval: uint16(9),
  9652. },
  9653. 157: {
  9654. Fbits: uint8(8),
  9655. Fval: uint16(137),
  9656. },
  9657. 158: {
  9658. Fbits: uint8(8),
  9659. Fval: uint16(73),
  9660. },
  9661. 159: {
  9662. Fbits: uint8(9),
  9663. Fval: uint16(242),
  9664. },
  9665. 160: {
  9666. Fop: uint8(16),
  9667. Fbits: uint8(7),
  9668. Fval: uint16(4),
  9669. },
  9670. 161: {
  9671. Fbits: uint8(8),
  9672. Fval: uint16(85),
  9673. },
  9674. 162: {
  9675. Fbits: uint8(8),
  9676. Fval: uint16(21),
  9677. },
  9678. 163: {
  9679. Fop: uint8(16),
  9680. Fbits: uint8(8),
  9681. Fval: uint16(258),
  9682. },
  9683. 164: {
  9684. Fop: uint8(19),
  9685. Fbits: uint8(7),
  9686. Fval: uint16(43),
  9687. },
  9688. 165: {
  9689. Fbits: uint8(8),
  9690. Fval: uint16(117),
  9691. },
  9692. 166: {
  9693. Fbits: uint8(8),
  9694. Fval: uint16(53),
  9695. },
  9696. 167: {
  9697. Fbits: uint8(9),
  9698. Fval: uint16(202),
  9699. },
  9700. 168: {
  9701. Fop: uint8(17),
  9702. Fbits: uint8(7),
  9703. Fval: uint16(13),
  9704. },
  9705. 169: {
  9706. Fbits: uint8(8),
  9707. Fval: uint16(101),
  9708. },
  9709. 170: {
  9710. Fbits: uint8(8),
  9711. Fval: uint16(37),
  9712. },
  9713. 171: {
  9714. Fbits: uint8(9),
  9715. Fval: uint16(170),
  9716. },
  9717. 172: {
  9718. Fbits: uint8(8),
  9719. Fval: uint16(5),
  9720. },
  9721. 173: {
  9722. Fbits: uint8(8),
  9723. Fval: uint16(133),
  9724. },
  9725. 174: {
  9726. Fbits: uint8(8),
  9727. Fval: uint16(69),
  9728. },
  9729. 175: {
  9730. Fbits: uint8(9),
  9731. Fval: uint16(234),
  9732. },
  9733. 176: {
  9734. Fop: uint8(16),
  9735. Fbits: uint8(7),
  9736. Fval: uint16(8),
  9737. },
  9738. 177: {
  9739. Fbits: uint8(8),
  9740. Fval: uint16(93),
  9741. },
  9742. 178: {
  9743. Fbits: uint8(8),
  9744. Fval: uint16(29),
  9745. },
  9746. 179: {
  9747. Fbits: uint8(9),
  9748. Fval: uint16(154),
  9749. },
  9750. 180: {
  9751. Fop: uint8(20),
  9752. Fbits: uint8(7),
  9753. Fval: uint16(83),
  9754. },
  9755. 181: {
  9756. Fbits: uint8(8),
  9757. Fval: uint16(125),
  9758. },
  9759. 182: {
  9760. Fbits: uint8(8),
  9761. Fval: uint16(61),
  9762. },
  9763. 183: {
  9764. Fbits: uint8(9),
  9765. Fval: uint16(218),
  9766. },
  9767. 184: {
  9768. Fop: uint8(18),
  9769. Fbits: uint8(7),
  9770. Fval: uint16(23),
  9771. },
  9772. 185: {
  9773. Fbits: uint8(8),
  9774. Fval: uint16(109),
  9775. },
  9776. 186: {
  9777. Fbits: uint8(8),
  9778. Fval: uint16(45),
  9779. },
  9780. 187: {
  9781. Fbits: uint8(9),
  9782. Fval: uint16(186),
  9783. },
  9784. 188: {
  9785. Fbits: uint8(8),
  9786. Fval: uint16(13),
  9787. },
  9788. 189: {
  9789. Fbits: uint8(8),
  9790. Fval: uint16(141),
  9791. },
  9792. 190: {
  9793. Fbits: uint8(8),
  9794. Fval: uint16(77),
  9795. },
  9796. 191: {
  9797. Fbits: uint8(9),
  9798. Fval: uint16(250),
  9799. },
  9800. 192: {
  9801. Fop: uint8(16),
  9802. Fbits: uint8(7),
  9803. Fval: uint16(3),
  9804. },
  9805. 193: {
  9806. Fbits: uint8(8),
  9807. Fval: uint16(83),
  9808. },
  9809. 194: {
  9810. Fbits: uint8(8),
  9811. Fval: uint16(19),
  9812. },
  9813. 195: {
  9814. Fop: uint8(21),
  9815. Fbits: uint8(8),
  9816. Fval: uint16(195),
  9817. },
  9818. 196: {
  9819. Fop: uint8(19),
  9820. Fbits: uint8(7),
  9821. Fval: uint16(35),
  9822. },
  9823. 197: {
  9824. Fbits: uint8(8),
  9825. Fval: uint16(115),
  9826. },
  9827. 198: {
  9828. Fbits: uint8(8),
  9829. Fval: uint16(51),
  9830. },
  9831. 199: {
  9832. Fbits: uint8(9),
  9833. Fval: uint16(198),
  9834. },
  9835. 200: {
  9836. Fop: uint8(17),
  9837. Fbits: uint8(7),
  9838. Fval: uint16(11),
  9839. },
  9840. 201: {
  9841. Fbits: uint8(8),
  9842. Fval: uint16(99),
  9843. },
  9844. 202: {
  9845. Fbits: uint8(8),
  9846. Fval: uint16(35),
  9847. },
  9848. 203: {
  9849. Fbits: uint8(9),
  9850. Fval: uint16(166),
  9851. },
  9852. 204: {
  9853. Fbits: uint8(8),
  9854. Fval: uint16(3),
  9855. },
  9856. 205: {
  9857. Fbits: uint8(8),
  9858. Fval: uint16(131),
  9859. },
  9860. 206: {
  9861. Fbits: uint8(8),
  9862. Fval: uint16(67),
  9863. },
  9864. 207: {
  9865. Fbits: uint8(9),
  9866. Fval: uint16(230),
  9867. },
  9868. 208: {
  9869. Fop: uint8(16),
  9870. Fbits: uint8(7),
  9871. Fval: uint16(7),
  9872. },
  9873. 209: {
  9874. Fbits: uint8(8),
  9875. Fval: uint16(91),
  9876. },
  9877. 210: {
  9878. Fbits: uint8(8),
  9879. Fval: uint16(27),
  9880. },
  9881. 211: {
  9882. Fbits: uint8(9),
  9883. Fval: uint16(150),
  9884. },
  9885. 212: {
  9886. Fop: uint8(20),
  9887. Fbits: uint8(7),
  9888. Fval: uint16(67),
  9889. },
  9890. 213: {
  9891. Fbits: uint8(8),
  9892. Fval: uint16(123),
  9893. },
  9894. 214: {
  9895. Fbits: uint8(8),
  9896. Fval: uint16(59),
  9897. },
  9898. 215: {
  9899. Fbits: uint8(9),
  9900. Fval: uint16(214),
  9901. },
  9902. 216: {
  9903. Fop: uint8(18),
  9904. Fbits: uint8(7),
  9905. Fval: uint16(19),
  9906. },
  9907. 217: {
  9908. Fbits: uint8(8),
  9909. Fval: uint16(107),
  9910. },
  9911. 218: {
  9912. Fbits: uint8(8),
  9913. Fval: uint16(43),
  9914. },
  9915. 219: {
  9916. Fbits: uint8(9),
  9917. Fval: uint16(182),
  9918. },
  9919. 220: {
  9920. Fbits: uint8(8),
  9921. Fval: uint16(11),
  9922. },
  9923. 221: {
  9924. Fbits: uint8(8),
  9925. Fval: uint16(139),
  9926. },
  9927. 222: {
  9928. Fbits: uint8(8),
  9929. Fval: uint16(75),
  9930. },
  9931. 223: {
  9932. Fbits: uint8(9),
  9933. Fval: uint16(246),
  9934. },
  9935. 224: {
  9936. Fop: uint8(16),
  9937. Fbits: uint8(7),
  9938. Fval: uint16(5),
  9939. },
  9940. 225: {
  9941. Fbits: uint8(8),
  9942. Fval: uint16(87),
  9943. },
  9944. 226: {
  9945. Fbits: uint8(8),
  9946. Fval: uint16(23),
  9947. },
  9948. 227: {
  9949. Fop: uint8(64),
  9950. Fbits: uint8(8),
  9951. },
  9952. 228: {
  9953. Fop: uint8(19),
  9954. Fbits: uint8(7),
  9955. Fval: uint16(51),
  9956. },
  9957. 229: {
  9958. Fbits: uint8(8),
  9959. Fval: uint16(119),
  9960. },
  9961. 230: {
  9962. Fbits: uint8(8),
  9963. Fval: uint16(55),
  9964. },
  9965. 231: {
  9966. Fbits: uint8(9),
  9967. Fval: uint16(206),
  9968. },
  9969. 232: {
  9970. Fop: uint8(17),
  9971. Fbits: uint8(7),
  9972. Fval: uint16(15),
  9973. },
  9974. 233: {
  9975. Fbits: uint8(8),
  9976. Fval: uint16(103),
  9977. },
  9978. 234: {
  9979. Fbits: uint8(8),
  9980. Fval: uint16(39),
  9981. },
  9982. 235: {
  9983. Fbits: uint8(9),
  9984. Fval: uint16(174),
  9985. },
  9986. 236: {
  9987. Fbits: uint8(8),
  9988. Fval: uint16(7),
  9989. },
  9990. 237: {
  9991. Fbits: uint8(8),
  9992. Fval: uint16(135),
  9993. },
  9994. 238: {
  9995. Fbits: uint8(8),
  9996. Fval: uint16(71),
  9997. },
  9998. 239: {
  9999. Fbits: uint8(9),
  10000. Fval: uint16(238),
  10001. },
  10002. 240: {
  10003. Fop: uint8(16),
  10004. Fbits: uint8(7),
  10005. Fval: uint16(9),
  10006. },
  10007. 241: {
  10008. Fbits: uint8(8),
  10009. Fval: uint16(95),
  10010. },
  10011. 242: {
  10012. Fbits: uint8(8),
  10013. Fval: uint16(31),
  10014. },
  10015. 243: {
  10016. Fbits: uint8(9),
  10017. Fval: uint16(158),
  10018. },
  10019. 244: {
  10020. Fop: uint8(20),
  10021. Fbits: uint8(7),
  10022. Fval: uint16(99),
  10023. },
  10024. 245: {
  10025. Fbits: uint8(8),
  10026. Fval: uint16(127),
  10027. },
  10028. 246: {
  10029. Fbits: uint8(8),
  10030. Fval: uint16(63),
  10031. },
  10032. 247: {
  10033. Fbits: uint8(9),
  10034. Fval: uint16(222),
  10035. },
  10036. 248: {
  10037. Fop: uint8(18),
  10038. Fbits: uint8(7),
  10039. Fval: uint16(27),
  10040. },
  10041. 249: {
  10042. Fbits: uint8(8),
  10043. Fval: uint16(111),
  10044. },
  10045. 250: {
  10046. Fbits: uint8(8),
  10047. Fval: uint16(47),
  10048. },
  10049. 251: {
  10050. Fbits: uint8(9),
  10051. Fval: uint16(190),
  10052. },
  10053. 252: {
  10054. Fbits: uint8(8),
  10055. Fval: uint16(15),
  10056. },
  10057. 253: {
  10058. Fbits: uint8(8),
  10059. Fval: uint16(143),
  10060. },
  10061. 254: {
  10062. Fbits: uint8(8),
  10063. Fval: uint16(79),
  10064. },
  10065. 255: {
  10066. Fbits: uint8(9),
  10067. Fval: uint16(254),
  10068. },
  10069. 256: {
  10070. Fop: uint8(96),
  10071. Fbits: uint8(7),
  10072. },
  10073. 257: {
  10074. Fbits: uint8(8),
  10075. Fval: uint16(80),
  10076. },
  10077. 258: {
  10078. Fbits: uint8(8),
  10079. Fval: uint16(16),
  10080. },
  10081. 259: {
  10082. Fop: uint8(20),
  10083. Fbits: uint8(8),
  10084. Fval: uint16(115),
  10085. },
  10086. 260: {
  10087. Fop: uint8(18),
  10088. Fbits: uint8(7),
  10089. Fval: uint16(31),
  10090. },
  10091. 261: {
  10092. Fbits: uint8(8),
  10093. Fval: uint16(112),
  10094. },
  10095. 262: {
  10096. Fbits: uint8(8),
  10097. Fval: uint16(48),
  10098. },
  10099. 263: {
  10100. Fbits: uint8(9),
  10101. Fval: uint16(193),
  10102. },
  10103. 264: {
  10104. Fop: uint8(16),
  10105. Fbits: uint8(7),
  10106. Fval: uint16(10),
  10107. },
  10108. 265: {
  10109. Fbits: uint8(8),
  10110. Fval: uint16(96),
  10111. },
  10112. 266: {
  10113. Fbits: uint8(8),
  10114. Fval: uint16(32),
  10115. },
  10116. 267: {
  10117. Fbits: uint8(9),
  10118. Fval: uint16(161),
  10119. },
  10120. 268: {
  10121. Fbits: uint8(8),
  10122. },
  10123. 269: {
  10124. Fbits: uint8(8),
  10125. Fval: uint16(128),
  10126. },
  10127. 270: {
  10128. Fbits: uint8(8),
  10129. Fval: uint16(64),
  10130. },
  10131. 271: {
  10132. Fbits: uint8(9),
  10133. Fval: uint16(225),
  10134. },
  10135. 272: {
  10136. Fop: uint8(16),
  10137. Fbits: uint8(7),
  10138. Fval: uint16(6),
  10139. },
  10140. 273: {
  10141. Fbits: uint8(8),
  10142. Fval: uint16(88),
  10143. },
  10144. 274: {
  10145. Fbits: uint8(8),
  10146. Fval: uint16(24),
  10147. },
  10148. 275: {
  10149. Fbits: uint8(9),
  10150. Fval: uint16(145),
  10151. },
  10152. 276: {
  10153. Fop: uint8(19),
  10154. Fbits: uint8(7),
  10155. Fval: uint16(59),
  10156. },
  10157. 277: {
  10158. Fbits: uint8(8),
  10159. Fval: uint16(120),
  10160. },
  10161. 278: {
  10162. Fbits: uint8(8),
  10163. Fval: uint16(56),
  10164. },
  10165. 279: {
  10166. Fbits: uint8(9),
  10167. Fval: uint16(209),
  10168. },
  10169. 280: {
  10170. Fop: uint8(17),
  10171. Fbits: uint8(7),
  10172. Fval: uint16(17),
  10173. },
  10174. 281: {
  10175. Fbits: uint8(8),
  10176. Fval: uint16(104),
  10177. },
  10178. 282: {
  10179. Fbits: uint8(8),
  10180. Fval: uint16(40),
  10181. },
  10182. 283: {
  10183. Fbits: uint8(9),
  10184. Fval: uint16(177),
  10185. },
  10186. 284: {
  10187. Fbits: uint8(8),
  10188. Fval: uint16(8),
  10189. },
  10190. 285: {
  10191. Fbits: uint8(8),
  10192. Fval: uint16(136),
  10193. },
  10194. 286: {
  10195. Fbits: uint8(8),
  10196. Fval: uint16(72),
  10197. },
  10198. 287: {
  10199. Fbits: uint8(9),
  10200. Fval: uint16(241),
  10201. },
  10202. 288: {
  10203. Fop: uint8(16),
  10204. Fbits: uint8(7),
  10205. Fval: uint16(4),
  10206. },
  10207. 289: {
  10208. Fbits: uint8(8),
  10209. Fval: uint16(84),
  10210. },
  10211. 290: {
  10212. Fbits: uint8(8),
  10213. Fval: uint16(20),
  10214. },
  10215. 291: {
  10216. Fop: uint8(21),
  10217. Fbits: uint8(8),
  10218. Fval: uint16(227),
  10219. },
  10220. 292: {
  10221. Fop: uint8(19),
  10222. Fbits: uint8(7),
  10223. Fval: uint16(43),
  10224. },
  10225. 293: {
  10226. Fbits: uint8(8),
  10227. Fval: uint16(116),
  10228. },
  10229. 294: {
  10230. Fbits: uint8(8),
  10231. Fval: uint16(52),
  10232. },
  10233. 295: {
  10234. Fbits: uint8(9),
  10235. Fval: uint16(201),
  10236. },
  10237. 296: {
  10238. Fop: uint8(17),
  10239. Fbits: uint8(7),
  10240. Fval: uint16(13),
  10241. },
  10242. 297: {
  10243. Fbits: uint8(8),
  10244. Fval: uint16(100),
  10245. },
  10246. 298: {
  10247. Fbits: uint8(8),
  10248. Fval: uint16(36),
  10249. },
  10250. 299: {
  10251. Fbits: uint8(9),
  10252. Fval: uint16(169),
  10253. },
  10254. 300: {
  10255. Fbits: uint8(8),
  10256. Fval: uint16(4),
  10257. },
  10258. 301: {
  10259. Fbits: uint8(8),
  10260. Fval: uint16(132),
  10261. },
  10262. 302: {
  10263. Fbits: uint8(8),
  10264. Fval: uint16(68),
  10265. },
  10266. 303: {
  10267. Fbits: uint8(9),
  10268. Fval: uint16(233),
  10269. },
  10270. 304: {
  10271. Fop: uint8(16),
  10272. Fbits: uint8(7),
  10273. Fval: uint16(8),
  10274. },
  10275. 305: {
  10276. Fbits: uint8(8),
  10277. Fval: uint16(92),
  10278. },
  10279. 306: {
  10280. Fbits: uint8(8),
  10281. Fval: uint16(28),
  10282. },
  10283. 307: {
  10284. Fbits: uint8(9),
  10285. Fval: uint16(153),
  10286. },
  10287. 308: {
  10288. Fop: uint8(20),
  10289. Fbits: uint8(7),
  10290. Fval: uint16(83),
  10291. },
  10292. 309: {
  10293. Fbits: uint8(8),
  10294. Fval: uint16(124),
  10295. },
  10296. 310: {
  10297. Fbits: uint8(8),
  10298. Fval: uint16(60),
  10299. },
  10300. 311: {
  10301. Fbits: uint8(9),
  10302. Fval: uint16(217),
  10303. },
  10304. 312: {
  10305. Fop: uint8(18),
  10306. Fbits: uint8(7),
  10307. Fval: uint16(23),
  10308. },
  10309. 313: {
  10310. Fbits: uint8(8),
  10311. Fval: uint16(108),
  10312. },
  10313. 314: {
  10314. Fbits: uint8(8),
  10315. Fval: uint16(44),
  10316. },
  10317. 315: {
  10318. Fbits: uint8(9),
  10319. Fval: uint16(185),
  10320. },
  10321. 316: {
  10322. Fbits: uint8(8),
  10323. Fval: uint16(12),
  10324. },
  10325. 317: {
  10326. Fbits: uint8(8),
  10327. Fval: uint16(140),
  10328. },
  10329. 318: {
  10330. Fbits: uint8(8),
  10331. Fval: uint16(76),
  10332. },
  10333. 319: {
  10334. Fbits: uint8(9),
  10335. Fval: uint16(249),
  10336. },
  10337. 320: {
  10338. Fop: uint8(16),
  10339. Fbits: uint8(7),
  10340. Fval: uint16(3),
  10341. },
  10342. 321: {
  10343. Fbits: uint8(8),
  10344. Fval: uint16(82),
  10345. },
  10346. 322: {
  10347. Fbits: uint8(8),
  10348. Fval: uint16(18),
  10349. },
  10350. 323: {
  10351. Fop: uint8(21),
  10352. Fbits: uint8(8),
  10353. Fval: uint16(163),
  10354. },
  10355. 324: {
  10356. Fop: uint8(19),
  10357. Fbits: uint8(7),
  10358. Fval: uint16(35),
  10359. },
  10360. 325: {
  10361. Fbits: uint8(8),
  10362. Fval: uint16(114),
  10363. },
  10364. 326: {
  10365. Fbits: uint8(8),
  10366. Fval: uint16(50),
  10367. },
  10368. 327: {
  10369. Fbits: uint8(9),
  10370. Fval: uint16(197),
  10371. },
  10372. 328: {
  10373. Fop: uint8(17),
  10374. Fbits: uint8(7),
  10375. Fval: uint16(11),
  10376. },
  10377. 329: {
  10378. Fbits: uint8(8),
  10379. Fval: uint16(98),
  10380. },
  10381. 330: {
  10382. Fbits: uint8(8),
  10383. Fval: uint16(34),
  10384. },
  10385. 331: {
  10386. Fbits: uint8(9),
  10387. Fval: uint16(165),
  10388. },
  10389. 332: {
  10390. Fbits: uint8(8),
  10391. Fval: uint16(2),
  10392. },
  10393. 333: {
  10394. Fbits: uint8(8),
  10395. Fval: uint16(130),
  10396. },
  10397. 334: {
  10398. Fbits: uint8(8),
  10399. Fval: uint16(66),
  10400. },
  10401. 335: {
  10402. Fbits: uint8(9),
  10403. Fval: uint16(229),
  10404. },
  10405. 336: {
  10406. Fop: uint8(16),
  10407. Fbits: uint8(7),
  10408. Fval: uint16(7),
  10409. },
  10410. 337: {
  10411. Fbits: uint8(8),
  10412. Fval: uint16(90),
  10413. },
  10414. 338: {
  10415. Fbits: uint8(8),
  10416. Fval: uint16(26),
  10417. },
  10418. 339: {
  10419. Fbits: uint8(9),
  10420. Fval: uint16(149),
  10421. },
  10422. 340: {
  10423. Fop: uint8(20),
  10424. Fbits: uint8(7),
  10425. Fval: uint16(67),
  10426. },
  10427. 341: {
  10428. Fbits: uint8(8),
  10429. Fval: uint16(122),
  10430. },
  10431. 342: {
  10432. Fbits: uint8(8),
  10433. Fval: uint16(58),
  10434. },
  10435. 343: {
  10436. Fbits: uint8(9),
  10437. Fval: uint16(213),
  10438. },
  10439. 344: {
  10440. Fop: uint8(18),
  10441. Fbits: uint8(7),
  10442. Fval: uint16(19),
  10443. },
  10444. 345: {
  10445. Fbits: uint8(8),
  10446. Fval: uint16(106),
  10447. },
  10448. 346: {
  10449. Fbits: uint8(8),
  10450. Fval: uint16(42),
  10451. },
  10452. 347: {
  10453. Fbits: uint8(9),
  10454. Fval: uint16(181),
  10455. },
  10456. 348: {
  10457. Fbits: uint8(8),
  10458. Fval: uint16(10),
  10459. },
  10460. 349: {
  10461. Fbits: uint8(8),
  10462. Fval: uint16(138),
  10463. },
  10464. 350: {
  10465. Fbits: uint8(8),
  10466. Fval: uint16(74),
  10467. },
  10468. 351: {
  10469. Fbits: uint8(9),
  10470. Fval: uint16(245),
  10471. },
  10472. 352: {
  10473. Fop: uint8(16),
  10474. Fbits: uint8(7),
  10475. Fval: uint16(5),
  10476. },
  10477. 353: {
  10478. Fbits: uint8(8),
  10479. Fval: uint16(86),
  10480. },
  10481. 354: {
  10482. Fbits: uint8(8),
  10483. Fval: uint16(22),
  10484. },
  10485. 355: {
  10486. Fop: uint8(64),
  10487. Fbits: uint8(8),
  10488. },
  10489. 356: {
  10490. Fop: uint8(19),
  10491. Fbits: uint8(7),
  10492. Fval: uint16(51),
  10493. },
  10494. 357: {
  10495. Fbits: uint8(8),
  10496. Fval: uint16(118),
  10497. },
  10498. 358: {
  10499. Fbits: uint8(8),
  10500. Fval: uint16(54),
  10501. },
  10502. 359: {
  10503. Fbits: uint8(9),
  10504. Fval: uint16(205),
  10505. },
  10506. 360: {
  10507. Fop: uint8(17),
  10508. Fbits: uint8(7),
  10509. Fval: uint16(15),
  10510. },
  10511. 361: {
  10512. Fbits: uint8(8),
  10513. Fval: uint16(102),
  10514. },
  10515. 362: {
  10516. Fbits: uint8(8),
  10517. Fval: uint16(38),
  10518. },
  10519. 363: {
  10520. Fbits: uint8(9),
  10521. Fval: uint16(173),
  10522. },
  10523. 364: {
  10524. Fbits: uint8(8),
  10525. Fval: uint16(6),
  10526. },
  10527. 365: {
  10528. Fbits: uint8(8),
  10529. Fval: uint16(134),
  10530. },
  10531. 366: {
  10532. Fbits: uint8(8),
  10533. Fval: uint16(70),
  10534. },
  10535. 367: {
  10536. Fbits: uint8(9),
  10537. Fval: uint16(237),
  10538. },
  10539. 368: {
  10540. Fop: uint8(16),
  10541. Fbits: uint8(7),
  10542. Fval: uint16(9),
  10543. },
  10544. 369: {
  10545. Fbits: uint8(8),
  10546. Fval: uint16(94),
  10547. },
  10548. 370: {
  10549. Fbits: uint8(8),
  10550. Fval: uint16(30),
  10551. },
  10552. 371: {
  10553. Fbits: uint8(9),
  10554. Fval: uint16(157),
  10555. },
  10556. 372: {
  10557. Fop: uint8(20),
  10558. Fbits: uint8(7),
  10559. Fval: uint16(99),
  10560. },
  10561. 373: {
  10562. Fbits: uint8(8),
  10563. Fval: uint16(126),
  10564. },
  10565. 374: {
  10566. Fbits: uint8(8),
  10567. Fval: uint16(62),
  10568. },
  10569. 375: {
  10570. Fbits: uint8(9),
  10571. Fval: uint16(221),
  10572. },
  10573. 376: {
  10574. Fop: uint8(18),
  10575. Fbits: uint8(7),
  10576. Fval: uint16(27),
  10577. },
  10578. 377: {
  10579. Fbits: uint8(8),
  10580. Fval: uint16(110),
  10581. },
  10582. 378: {
  10583. Fbits: uint8(8),
  10584. Fval: uint16(46),
  10585. },
  10586. 379: {
  10587. Fbits: uint8(9),
  10588. Fval: uint16(189),
  10589. },
  10590. 380: {
  10591. Fbits: uint8(8),
  10592. Fval: uint16(14),
  10593. },
  10594. 381: {
  10595. Fbits: uint8(8),
  10596. Fval: uint16(142),
  10597. },
  10598. 382: {
  10599. Fbits: uint8(8),
  10600. Fval: uint16(78),
  10601. },
  10602. 383: {
  10603. Fbits: uint8(9),
  10604. Fval: uint16(253),
  10605. },
  10606. 384: {
  10607. Fop: uint8(96),
  10608. Fbits: uint8(7),
  10609. },
  10610. 385: {
  10611. Fbits: uint8(8),
  10612. Fval: uint16(81),
  10613. },
  10614. 386: {
  10615. Fbits: uint8(8),
  10616. Fval: uint16(17),
  10617. },
  10618. 387: {
  10619. Fop: uint8(21),
  10620. Fbits: uint8(8),
  10621. Fval: uint16(131),
  10622. },
  10623. 388: {
  10624. Fop: uint8(18),
  10625. Fbits: uint8(7),
  10626. Fval: uint16(31),
  10627. },
  10628. 389: {
  10629. Fbits: uint8(8),
  10630. Fval: uint16(113),
  10631. },
  10632. 390: {
  10633. Fbits: uint8(8),
  10634. Fval: uint16(49),
  10635. },
  10636. 391: {
  10637. Fbits: uint8(9),
  10638. Fval: uint16(195),
  10639. },
  10640. 392: {
  10641. Fop: uint8(16),
  10642. Fbits: uint8(7),
  10643. Fval: uint16(10),
  10644. },
  10645. 393: {
  10646. Fbits: uint8(8),
  10647. Fval: uint16(97),
  10648. },
  10649. 394: {
  10650. Fbits: uint8(8),
  10651. Fval: uint16(33),
  10652. },
  10653. 395: {
  10654. Fbits: uint8(9),
  10655. Fval: uint16(163),
  10656. },
  10657. 396: {
  10658. Fbits: uint8(8),
  10659. Fval: uint16(1),
  10660. },
  10661. 397: {
  10662. Fbits: uint8(8),
  10663. Fval: uint16(129),
  10664. },
  10665. 398: {
  10666. Fbits: uint8(8),
  10667. Fval: uint16(65),
  10668. },
  10669. 399: {
  10670. Fbits: uint8(9),
  10671. Fval: uint16(227),
  10672. },
  10673. 400: {
  10674. Fop: uint8(16),
  10675. Fbits: uint8(7),
  10676. Fval: uint16(6),
  10677. },
  10678. 401: {
  10679. Fbits: uint8(8),
  10680. Fval: uint16(89),
  10681. },
  10682. 402: {
  10683. Fbits: uint8(8),
  10684. Fval: uint16(25),
  10685. },
  10686. 403: {
  10687. Fbits: uint8(9),
  10688. Fval: uint16(147),
  10689. },
  10690. 404: {
  10691. Fop: uint8(19),
  10692. Fbits: uint8(7),
  10693. Fval: uint16(59),
  10694. },
  10695. 405: {
  10696. Fbits: uint8(8),
  10697. Fval: uint16(121),
  10698. },
  10699. 406: {
  10700. Fbits: uint8(8),
  10701. Fval: uint16(57),
  10702. },
  10703. 407: {
  10704. Fbits: uint8(9),
  10705. Fval: uint16(211),
  10706. },
  10707. 408: {
  10708. Fop: uint8(17),
  10709. Fbits: uint8(7),
  10710. Fval: uint16(17),
  10711. },
  10712. 409: {
  10713. Fbits: uint8(8),
  10714. Fval: uint16(105),
  10715. },
  10716. 410: {
  10717. Fbits: uint8(8),
  10718. Fval: uint16(41),
  10719. },
  10720. 411: {
  10721. Fbits: uint8(9),
  10722. Fval: uint16(179),
  10723. },
  10724. 412: {
  10725. Fbits: uint8(8),
  10726. Fval: uint16(9),
  10727. },
  10728. 413: {
  10729. Fbits: uint8(8),
  10730. Fval: uint16(137),
  10731. },
  10732. 414: {
  10733. Fbits: uint8(8),
  10734. Fval: uint16(73),
  10735. },
  10736. 415: {
  10737. Fbits: uint8(9),
  10738. Fval: uint16(243),
  10739. },
  10740. 416: {
  10741. Fop: uint8(16),
  10742. Fbits: uint8(7),
  10743. Fval: uint16(4),
  10744. },
  10745. 417: {
  10746. Fbits: uint8(8),
  10747. Fval: uint16(85),
  10748. },
  10749. 418: {
  10750. Fbits: uint8(8),
  10751. Fval: uint16(21),
  10752. },
  10753. 419: {
  10754. Fop: uint8(16),
  10755. Fbits: uint8(8),
  10756. Fval: uint16(258),
  10757. },
  10758. 420: {
  10759. Fop: uint8(19),
  10760. Fbits: uint8(7),
  10761. Fval: uint16(43),
  10762. },
  10763. 421: {
  10764. Fbits: uint8(8),
  10765. Fval: uint16(117),
  10766. },
  10767. 422: {
  10768. Fbits: uint8(8),
  10769. Fval: uint16(53),
  10770. },
  10771. 423: {
  10772. Fbits: uint8(9),
  10773. Fval: uint16(203),
  10774. },
  10775. 424: {
  10776. Fop: uint8(17),
  10777. Fbits: uint8(7),
  10778. Fval: uint16(13),
  10779. },
  10780. 425: {
  10781. Fbits: uint8(8),
  10782. Fval: uint16(101),
  10783. },
  10784. 426: {
  10785. Fbits: uint8(8),
  10786. Fval: uint16(37),
  10787. },
  10788. 427: {
  10789. Fbits: uint8(9),
  10790. Fval: uint16(171),
  10791. },
  10792. 428: {
  10793. Fbits: uint8(8),
  10794. Fval: uint16(5),
  10795. },
  10796. 429: {
  10797. Fbits: uint8(8),
  10798. Fval: uint16(133),
  10799. },
  10800. 430: {
  10801. Fbits: uint8(8),
  10802. Fval: uint16(69),
  10803. },
  10804. 431: {
  10805. Fbits: uint8(9),
  10806. Fval: uint16(235),
  10807. },
  10808. 432: {
  10809. Fop: uint8(16),
  10810. Fbits: uint8(7),
  10811. Fval: uint16(8),
  10812. },
  10813. 433: {
  10814. Fbits: uint8(8),
  10815. Fval: uint16(93),
  10816. },
  10817. 434: {
  10818. Fbits: uint8(8),
  10819. Fval: uint16(29),
  10820. },
  10821. 435: {
  10822. Fbits: uint8(9),
  10823. Fval: uint16(155),
  10824. },
  10825. 436: {
  10826. Fop: uint8(20),
  10827. Fbits: uint8(7),
  10828. Fval: uint16(83),
  10829. },
  10830. 437: {
  10831. Fbits: uint8(8),
  10832. Fval: uint16(125),
  10833. },
  10834. 438: {
  10835. Fbits: uint8(8),
  10836. Fval: uint16(61),
  10837. },
  10838. 439: {
  10839. Fbits: uint8(9),
  10840. Fval: uint16(219),
  10841. },
  10842. 440: {
  10843. Fop: uint8(18),
  10844. Fbits: uint8(7),
  10845. Fval: uint16(23),
  10846. },
  10847. 441: {
  10848. Fbits: uint8(8),
  10849. Fval: uint16(109),
  10850. },
  10851. 442: {
  10852. Fbits: uint8(8),
  10853. Fval: uint16(45),
  10854. },
  10855. 443: {
  10856. Fbits: uint8(9),
  10857. Fval: uint16(187),
  10858. },
  10859. 444: {
  10860. Fbits: uint8(8),
  10861. Fval: uint16(13),
  10862. },
  10863. 445: {
  10864. Fbits: uint8(8),
  10865. Fval: uint16(141),
  10866. },
  10867. 446: {
  10868. Fbits: uint8(8),
  10869. Fval: uint16(77),
  10870. },
  10871. 447: {
  10872. Fbits: uint8(9),
  10873. Fval: uint16(251),
  10874. },
  10875. 448: {
  10876. Fop: uint8(16),
  10877. Fbits: uint8(7),
  10878. Fval: uint16(3),
  10879. },
  10880. 449: {
  10881. Fbits: uint8(8),
  10882. Fval: uint16(83),
  10883. },
  10884. 450: {
  10885. Fbits: uint8(8),
  10886. Fval: uint16(19),
  10887. },
  10888. 451: {
  10889. Fop: uint8(21),
  10890. Fbits: uint8(8),
  10891. Fval: uint16(195),
  10892. },
  10893. 452: {
  10894. Fop: uint8(19),
  10895. Fbits: uint8(7),
  10896. Fval: uint16(35),
  10897. },
  10898. 453: {
  10899. Fbits: uint8(8),
  10900. Fval: uint16(115),
  10901. },
  10902. 454: {
  10903. Fbits: uint8(8),
  10904. Fval: uint16(51),
  10905. },
  10906. 455: {
  10907. Fbits: uint8(9),
  10908. Fval: uint16(199),
  10909. },
  10910. 456: {
  10911. Fop: uint8(17),
  10912. Fbits: uint8(7),
  10913. Fval: uint16(11),
  10914. },
  10915. 457: {
  10916. Fbits: uint8(8),
  10917. Fval: uint16(99),
  10918. },
  10919. 458: {
  10920. Fbits: uint8(8),
  10921. Fval: uint16(35),
  10922. },
  10923. 459: {
  10924. Fbits: uint8(9),
  10925. Fval: uint16(167),
  10926. },
  10927. 460: {
  10928. Fbits: uint8(8),
  10929. Fval: uint16(3),
  10930. },
  10931. 461: {
  10932. Fbits: uint8(8),
  10933. Fval: uint16(131),
  10934. },
  10935. 462: {
  10936. Fbits: uint8(8),
  10937. Fval: uint16(67),
  10938. },
  10939. 463: {
  10940. Fbits: uint8(9),
  10941. Fval: uint16(231),
  10942. },
  10943. 464: {
  10944. Fop: uint8(16),
  10945. Fbits: uint8(7),
  10946. Fval: uint16(7),
  10947. },
  10948. 465: {
  10949. Fbits: uint8(8),
  10950. Fval: uint16(91),
  10951. },
  10952. 466: {
  10953. Fbits: uint8(8),
  10954. Fval: uint16(27),
  10955. },
  10956. 467: {
  10957. Fbits: uint8(9),
  10958. Fval: uint16(151),
  10959. },
  10960. 468: {
  10961. Fop: uint8(20),
  10962. Fbits: uint8(7),
  10963. Fval: uint16(67),
  10964. },
  10965. 469: {
  10966. Fbits: uint8(8),
  10967. Fval: uint16(123),
  10968. },
  10969. 470: {
  10970. Fbits: uint8(8),
  10971. Fval: uint16(59),
  10972. },
  10973. 471: {
  10974. Fbits: uint8(9),
  10975. Fval: uint16(215),
  10976. },
  10977. 472: {
  10978. Fop: uint8(18),
  10979. Fbits: uint8(7),
  10980. Fval: uint16(19),
  10981. },
  10982. 473: {
  10983. Fbits: uint8(8),
  10984. Fval: uint16(107),
  10985. },
  10986. 474: {
  10987. Fbits: uint8(8),
  10988. Fval: uint16(43),
  10989. },
  10990. 475: {
  10991. Fbits: uint8(9),
  10992. Fval: uint16(183),
  10993. },
  10994. 476: {
  10995. Fbits: uint8(8),
  10996. Fval: uint16(11),
  10997. },
  10998. 477: {
  10999. Fbits: uint8(8),
  11000. Fval: uint16(139),
  11001. },
  11002. 478: {
  11003. Fbits: uint8(8),
  11004. Fval: uint16(75),
  11005. },
  11006. 479: {
  11007. Fbits: uint8(9),
  11008. Fval: uint16(247),
  11009. },
  11010. 480: {
  11011. Fop: uint8(16),
  11012. Fbits: uint8(7),
  11013. Fval: uint16(5),
  11014. },
  11015. 481: {
  11016. Fbits: uint8(8),
  11017. Fval: uint16(87),
  11018. },
  11019. 482: {
  11020. Fbits: uint8(8),
  11021. Fval: uint16(23),
  11022. },
  11023. 483: {
  11024. Fop: uint8(64),
  11025. Fbits: uint8(8),
  11026. },
  11027. 484: {
  11028. Fop: uint8(19),
  11029. Fbits: uint8(7),
  11030. Fval: uint16(51),
  11031. },
  11032. 485: {
  11033. Fbits: uint8(8),
  11034. Fval: uint16(119),
  11035. },
  11036. 486: {
  11037. Fbits: uint8(8),
  11038. Fval: uint16(55),
  11039. },
  11040. 487: {
  11041. Fbits: uint8(9),
  11042. Fval: uint16(207),
  11043. },
  11044. 488: {
  11045. Fop: uint8(17),
  11046. Fbits: uint8(7),
  11047. Fval: uint16(15),
  11048. },
  11049. 489: {
  11050. Fbits: uint8(8),
  11051. Fval: uint16(103),
  11052. },
  11053. 490: {
  11054. Fbits: uint8(8),
  11055. Fval: uint16(39),
  11056. },
  11057. 491: {
  11058. Fbits: uint8(9),
  11059. Fval: uint16(175),
  11060. },
  11061. 492: {
  11062. Fbits: uint8(8),
  11063. Fval: uint16(7),
  11064. },
  11065. 493: {
  11066. Fbits: uint8(8),
  11067. Fval: uint16(135),
  11068. },
  11069. 494: {
  11070. Fbits: uint8(8),
  11071. Fval: uint16(71),
  11072. },
  11073. 495: {
  11074. Fbits: uint8(9),
  11075. Fval: uint16(239),
  11076. },
  11077. 496: {
  11078. Fop: uint8(16),
  11079. Fbits: uint8(7),
  11080. Fval: uint16(9),
  11081. },
  11082. 497: {
  11083. Fbits: uint8(8),
  11084. Fval: uint16(95),
  11085. },
  11086. 498: {
  11087. Fbits: uint8(8),
  11088. Fval: uint16(31),
  11089. },
  11090. 499: {
  11091. Fbits: uint8(9),
  11092. Fval: uint16(159),
  11093. },
  11094. 500: {
  11095. Fop: uint8(20),
  11096. Fbits: uint8(7),
  11097. Fval: uint16(99),
  11098. },
  11099. 501: {
  11100. Fbits: uint8(8),
  11101. Fval: uint16(127),
  11102. },
  11103. 502: {
  11104. Fbits: uint8(8),
  11105. Fval: uint16(63),
  11106. },
  11107. 503: {
  11108. Fbits: uint8(9),
  11109. Fval: uint16(223),
  11110. },
  11111. 504: {
  11112. Fop: uint8(18),
  11113. Fbits: uint8(7),
  11114. Fval: uint16(27),
  11115. },
  11116. 505: {
  11117. Fbits: uint8(8),
  11118. Fval: uint16(111),
  11119. },
  11120. 506: {
  11121. Fbits: uint8(8),
  11122. Fval: uint16(47),
  11123. },
  11124. 507: {
  11125. Fbits: uint8(9),
  11126. Fval: uint16(191),
  11127. },
  11128. 508: {
  11129. Fbits: uint8(8),
  11130. Fval: uint16(15),
  11131. },
  11132. 509: {
  11133. Fbits: uint8(8),
  11134. Fval: uint16(143),
  11135. },
  11136. 510: {
  11137. Fbits: uint8(8),
  11138. Fval: uint16(79),
  11139. },
  11140. 511: {
  11141. Fbits: uint8(9),
  11142. Fval: uint16(255),
  11143. },
  11144. }
  11145. var _distfix = [32]Tcode{
  11146. 0: {
  11147. Fop: uint8(16),
  11148. Fbits: uint8(5),
  11149. Fval: uint16(1),
  11150. },
  11151. 1: {
  11152. Fop: uint8(23),
  11153. Fbits: uint8(5),
  11154. Fval: uint16(257),
  11155. },
  11156. 2: {
  11157. Fop: uint8(19),
  11158. Fbits: uint8(5),
  11159. Fval: uint16(17),
  11160. },
  11161. 3: {
  11162. Fop: uint8(27),
  11163. Fbits: uint8(5),
  11164. Fval: uint16(4097),
  11165. },
  11166. 4: {
  11167. Fop: uint8(17),
  11168. Fbits: uint8(5),
  11169. Fval: uint16(5),
  11170. },
  11171. 5: {
  11172. Fop: uint8(25),
  11173. Fbits: uint8(5),
  11174. Fval: uint16(1025),
  11175. },
  11176. 6: {
  11177. Fop: uint8(21),
  11178. Fbits: uint8(5),
  11179. Fval: uint16(65),
  11180. },
  11181. 7: {
  11182. Fop: uint8(29),
  11183. Fbits: uint8(5),
  11184. Fval: uint16(16385),
  11185. },
  11186. 8: {
  11187. Fop: uint8(16),
  11188. Fbits: uint8(5),
  11189. Fval: uint16(3),
  11190. },
  11191. 9: {
  11192. Fop: uint8(24),
  11193. Fbits: uint8(5),
  11194. Fval: uint16(513),
  11195. },
  11196. 10: {
  11197. Fop: uint8(20),
  11198. Fbits: uint8(5),
  11199. Fval: uint16(33),
  11200. },
  11201. 11: {
  11202. Fop: uint8(28),
  11203. Fbits: uint8(5),
  11204. Fval: uint16(8193),
  11205. },
  11206. 12: {
  11207. Fop: uint8(18),
  11208. Fbits: uint8(5),
  11209. Fval: uint16(9),
  11210. },
  11211. 13: {
  11212. Fop: uint8(26),
  11213. Fbits: uint8(5),
  11214. Fval: uint16(2049),
  11215. },
  11216. 14: {
  11217. Fop: uint8(22),
  11218. Fbits: uint8(5),
  11219. Fval: uint16(129),
  11220. },
  11221. 15: {
  11222. Fop: uint8(64),
  11223. Fbits: uint8(5),
  11224. },
  11225. 16: {
  11226. Fop: uint8(16),
  11227. Fbits: uint8(5),
  11228. Fval: uint16(2),
  11229. },
  11230. 17: {
  11231. Fop: uint8(23),
  11232. Fbits: uint8(5),
  11233. Fval: uint16(385),
  11234. },
  11235. 18: {
  11236. Fop: uint8(19),
  11237. Fbits: uint8(5),
  11238. Fval: uint16(25),
  11239. },
  11240. 19: {
  11241. Fop: uint8(27),
  11242. Fbits: uint8(5),
  11243. Fval: uint16(6145),
  11244. },
  11245. 20: {
  11246. Fop: uint8(17),
  11247. Fbits: uint8(5),
  11248. Fval: uint16(7),
  11249. },
  11250. 21: {
  11251. Fop: uint8(25),
  11252. Fbits: uint8(5),
  11253. Fval: uint16(1537),
  11254. },
  11255. 22: {
  11256. Fop: uint8(21),
  11257. Fbits: uint8(5),
  11258. Fval: uint16(97),
  11259. },
  11260. 23: {
  11261. Fop: uint8(29),
  11262. Fbits: uint8(5),
  11263. Fval: uint16(24577),
  11264. },
  11265. 24: {
  11266. Fop: uint8(16),
  11267. Fbits: uint8(5),
  11268. Fval: uint16(4),
  11269. },
  11270. 25: {
  11271. Fop: uint8(24),
  11272. Fbits: uint8(5),
  11273. Fval: uint16(769),
  11274. },
  11275. 26: {
  11276. Fop: uint8(20),
  11277. Fbits: uint8(5),
  11278. Fval: uint16(49),
  11279. },
  11280. 27: {
  11281. Fop: uint8(28),
  11282. Fbits: uint8(5),
  11283. Fval: uint16(12289),
  11284. },
  11285. 28: {
  11286. Fop: uint8(18),
  11287. Fbits: uint8(5),
  11288. Fval: uint16(13),
  11289. },
  11290. 29: {
  11291. Fop: uint8(26),
  11292. Fbits: uint8(5),
  11293. Fval: uint16(3073),
  11294. },
  11295. 30: {
  11296. Fop: uint8(22),
  11297. Fbits: uint8(5),
  11298. Fval: uint16(193),
  11299. },
  11300. 31: {
  11301. Fop: uint8(64),
  11302. Fbits: uint8(5),
  11303. },
  11304. }
  11305. /* Macros for inflateBack(): */
  11306. /* Load returned state from inflate_fast() */
  11307. /* Set state from registers for inflate_fast() */
  11308. /* Clear the input bit accumulator */
  11309. /* Assure that some input is available. If input is requested, but denied,
  11310. then return a Z_BUF_ERROR from inflateBack(). */
  11311. /* Get a byte of input into the bit accumulator, or return from inflateBack()
  11312. with an error if there is no input available. */
  11313. /* Assure that there are at least n bits in the bit accumulator. If there is
  11314. not enough available input to do that, then return from inflateBack() with
  11315. an error. */
  11316. /* Return the low n bits of the bit accumulator (n < 16) */
  11317. /* Remove n bits from the bit accumulator */
  11318. /* Remove zero to seven bits as needed to go to a byte boundary */
  11319. /* Assure that some output space is available, by writing out the window
  11320. if it's full. If the write fails, return from inflateBack() with a
  11321. Z_BUF_ERROR. */
  11322. // C documentation
  11323. //
  11324. // /*
  11325. // strm provides the memory allocation functions and window buffer on input,
  11326. // and provides information on the unused input on return. For Z_DATA_ERROR
  11327. // returns, strm will also provide an error message.
  11328. //
  11329. // in() and out() are the call-back input and output functions. When
  11330. // inflateBack() needs more input, it calls in(). When inflateBack() has
  11331. // filled the window with output, or when it completes with data in the
  11332. // window, it calls out() to write out the data. The application must not
  11333. // change the provided input until in() is called again or inflateBack()
  11334. // returns. The application must not change the window/output buffer until
  11335. // inflateBack() returns.
  11336. //
  11337. // in() and out() are called with a descriptor parameter provided in the
  11338. // inflateBack() call. This parameter can be a structure that provides the
  11339. // information required to do the read or write, as well as accumulated
  11340. // information on the input and output such as totals and check values.
  11341. //
  11342. // in() should return zero on failure. out() should return non-zero on
  11343. // failure. If either in() or out() fails, than inflateBack() returns a
  11344. // Z_BUF_ERROR. strm->next_in can be checked for Z_NULL to see whether it
  11345. // was in() or out() that caused in the error. Otherwise, inflateBack()
  11346. // returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format
  11347. // error, or Z_MEM_ERROR if it could not allocate memory for the state.
  11348. // inflateBack() can also return Z_STREAM_ERROR if the input parameters
  11349. // are not correct, i.e. strm is Z_NULL or the state was not initialized.
  11350. // */
  11351. func XinflateBack(tls *libc.TLS, strm Tz_streamp, in Tin_func, in_desc uintptr, out Tout_func, out_desc uintptr) (r int32) {
  11352. bp := tls.Alloc(16)
  11353. defer tls.Free(16)
  11354. var bits, copy1, have, hold, left, len1, v1, v18, v20, v24, v29, v30, v43, v44 uint32
  11355. 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
  11356. var here, last Tcode
  11357. var ret int32
  11358. var _ /* next at bp+0 */ uintptr
  11359. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  11360. /* Check that the strm exists and that the state was initialized */
  11361. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fstate == uintptr(m_Z_NULL) {
  11362. return -int32(2)
  11363. }
  11364. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  11365. /* Reset the state */
  11366. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  11367. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  11368. (*Tinflate_state)(unsafe.Pointer(state)).Flast = 0
  11369. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  11370. *(*uintptr)(unsafe.Pointer(bp)) = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  11371. if *(*uintptr)(unsafe.Pointer(bp)) != uintptr(m_Z_NULL) {
  11372. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  11373. } else {
  11374. v1 = uint32(0)
  11375. }
  11376. have = v1
  11377. hold = uint32(0)
  11378. bits = uint32(0)
  11379. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  11380. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  11381. /* Inflate until end of block marked as last */
  11382. for {
  11383. switch (*Tinflate_state)(unsafe.Pointer(state)).Fmode {
  11384. case int32(_TYPE):
  11385. goto _3
  11386. case int32(_STORED):
  11387. goto _4
  11388. case int32(_TABLE):
  11389. goto _5
  11390. case int32(_LEN):
  11391. goto _6
  11392. case int32(_DONE):
  11393. goto _7
  11394. case int32(_BAD):
  11395. goto _8
  11396. default:
  11397. goto _9
  11398. }
  11399. goto _10
  11400. _3:
  11401. ;
  11402. /* determine and dispatch block type */
  11403. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  11404. hold >>= bits & uint32(7)
  11405. bits -= bits & uint32(7)
  11406. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DONE)
  11407. goto _10
  11408. }
  11409. for bits < uint32(libc.Int32FromInt32(3)) {
  11410. if have == uint32(0) {
  11411. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11412. if have == uint32(0) {
  11413. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11414. ret = -int32(5)
  11415. goto inf_leave
  11416. }
  11417. }
  11418. have--
  11419. v11 = *(*uintptr)(unsafe.Pointer(bp))
  11420. *(*uintptr)(unsafe.Pointer(bp))++
  11421. hold += uint32(*(*uint8)(unsafe.Pointer(v11))) << bits
  11422. bits += uint32(8)
  11423. }
  11424. (*Tinflate_state)(unsafe.Pointer(state)).Flast = int32(hold & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(1) - libc.Uint32FromInt32(1)))
  11425. hold >>= uint32(libc.Int32FromInt32(1))
  11426. bits -= uint32(libc.Int32FromInt32(1))
  11427. switch hold & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2) - libc.Uint32FromInt32(1)) {
  11428. case uint32(0): /* stored block */
  11429. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_STORED)
  11430. case uint32(1): /* fixed block */
  11431. _fixedtables(tls, state)
  11432. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN) /* decode codes */
  11433. case uint32(2): /* dynamic block */
  11434. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TABLE)
  11435. case uint32(3):
  11436. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 331
  11437. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11438. }
  11439. hold >>= uint32(libc.Int32FromInt32(2))
  11440. bits -= uint32(libc.Int32FromInt32(2))
  11441. goto _10
  11442. _4:
  11443. ;
  11444. /* get and verify stored block length */
  11445. _14:
  11446. ;
  11447. hold >>= bits & uint32(7)
  11448. bits -= bits & uint32(7)
  11449. goto _13
  11450. _13:
  11451. ;
  11452. if 0 != 0 {
  11453. goto _14
  11454. }
  11455. goto _12
  11456. _12:
  11457. ; /* go to byte boundary */
  11458. for bits < uint32(libc.Int32FromInt32(32)) {
  11459. if have == uint32(0) {
  11460. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11461. if have == uint32(0) {
  11462. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11463. ret = -int32(5)
  11464. goto inf_leave
  11465. }
  11466. }
  11467. have--
  11468. v15 = *(*uintptr)(unsafe.Pointer(bp))
  11469. *(*uintptr)(unsafe.Pointer(bp))++
  11470. hold += uint32(*(*uint8)(unsafe.Pointer(v15))) << bits
  11471. bits += uint32(8)
  11472. }
  11473. if hold&uint32(0xffff) != hold>>int32(16)^uint32(0xffff) {
  11474. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 350
  11475. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11476. goto _10
  11477. }
  11478. (*Tinflate_state)(unsafe.Pointer(state)).Flength = hold & uint32(0xffff)
  11479. hold = uint32(0)
  11480. bits = uint32(0)
  11481. /* copy stored block from input to output */
  11482. for (*Tinflate_state)(unsafe.Pointer(state)).Flength != uint32(0) {
  11483. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  11484. if have == uint32(0) {
  11485. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11486. if have == uint32(0) {
  11487. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11488. ret = -int32(5)
  11489. goto inf_leave
  11490. }
  11491. }
  11492. if left == uint32(0) {
  11493. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  11494. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  11495. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  11496. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  11497. ret = -int32(5)
  11498. goto inf_leave
  11499. }
  11500. }
  11501. if copy1 > have {
  11502. copy1 = have
  11503. }
  11504. if copy1 > left {
  11505. copy1 = left
  11506. }
  11507. libc.Xmemcpy(tls, put, *(*uintptr)(unsafe.Pointer(bp)), copy1)
  11508. have -= copy1
  11509. *(*uintptr)(unsafe.Pointer(bp)) += uintptr(copy1)
  11510. left -= copy1
  11511. put += uintptr(copy1)
  11512. *(*uint32)(unsafe.Pointer(state + 68)) -= copy1
  11513. }
  11514. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  11515. goto _10
  11516. _5:
  11517. ;
  11518. /* get dynamic table entries descriptor */
  11519. for bits < uint32(libc.Int32FromInt32(14)) {
  11520. if have == uint32(0) {
  11521. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11522. if have == uint32(0) {
  11523. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11524. ret = -int32(5)
  11525. goto inf_leave
  11526. }
  11527. }
  11528. have--
  11529. v16 = *(*uintptr)(unsafe.Pointer(bp))
  11530. *(*uintptr)(unsafe.Pointer(bp))++
  11531. hold += uint32(*(*uint8)(unsafe.Pointer(v16))) << bits
  11532. bits += uint32(8)
  11533. }
  11534. (*Tinflate_state)(unsafe.Pointer(state)).Fnlen = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(257)
  11535. hold >>= uint32(libc.Int32FromInt32(5))
  11536. bits -= uint32(libc.Int32FromInt32(5))
  11537. (*Tinflate_state)(unsafe.Pointer(state)).Fndist = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(1)
  11538. hold >>= uint32(libc.Int32FromInt32(5))
  11539. bits -= uint32(libc.Int32FromInt32(5))
  11540. (*Tinflate_state)(unsafe.Pointer(state)).Fncode = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(4)
  11541. hold >>= uint32(libc.Int32FromInt32(4))
  11542. bits -= uint32(libc.Int32FromInt32(4))
  11543. if (*Tinflate_state)(unsafe.Pointer(state)).Fnlen > uint32(286) || (*Tinflate_state)(unsafe.Pointer(state)).Fndist > uint32(30) {
  11544. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 379
  11545. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11546. goto _10
  11547. }
  11548. /* get code length code lengths (not a typo) */
  11549. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  11550. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fncode {
  11551. for bits < uint32(libc.Int32FromInt32(3)) {
  11552. if have == uint32(0) {
  11553. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11554. if have == uint32(0) {
  11555. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11556. ret = -int32(5)
  11557. goto inf_leave
  11558. }
  11559. }
  11560. have--
  11561. v17 = *(*uintptr)(unsafe.Pointer(bp))
  11562. *(*uintptr)(unsafe.Pointer(bp))++
  11563. hold += uint32(*(*uint8)(unsafe.Pointer(v17))) << bits
  11564. bits += uint32(8)
  11565. }
  11566. v19 = state + 108
  11567. v18 = *(*uint32)(unsafe.Pointer(v19))
  11568. *(*uint32)(unsafe.Pointer(v19))++
  11569. *(*uint16)(unsafe.Pointer(state + 116 + uintptr(_order[v18])*2)) = uint16(hold & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3) - libc.Uint32FromInt32(1)))
  11570. hold >>= uint32(libc.Int32FromInt32(3))
  11571. bits -= uint32(libc.Int32FromInt32(3))
  11572. }
  11573. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < uint32(19) {
  11574. v21 = state + 108
  11575. v20 = *(*uint32)(unsafe.Pointer(v21))
  11576. *(*uint32)(unsafe.Pointer(v21))++
  11577. *(*uint16)(unsafe.Pointer(state + 116 + uintptr(_order[v20])*2)) = uint16(0)
  11578. }
  11579. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1332
  11580. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  11581. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(7)
  11582. ret = Xinflate_table(tls, int32(_CODES), state+116, uint32(19), state+112, state+88, state+756)
  11583. if ret != 0 {
  11584. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 415
  11585. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11586. goto _10
  11587. }
  11588. /* get length and distance code code lengths */
  11589. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  11590. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  11591. for {
  11592. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(hold&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  11593. if uint32(here.Fbits) <= bits {
  11594. break
  11595. }
  11596. if have == uint32(0) {
  11597. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11598. if have == uint32(0) {
  11599. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11600. ret = -int32(5)
  11601. goto inf_leave
  11602. }
  11603. }
  11604. have--
  11605. v23 = *(*uintptr)(unsafe.Pointer(bp))
  11606. *(*uintptr)(unsafe.Pointer(bp))++
  11607. hold += uint32(*(*uint8)(unsafe.Pointer(v23))) << bits
  11608. bits += uint32(8)
  11609. goto _22
  11610. _22:
  11611. }
  11612. if int32(here.Fval) < int32(16) {
  11613. hold >>= uint32(here.Fbits)
  11614. bits -= uint32(here.Fbits)
  11615. v25 = state + 108
  11616. v24 = *(*uint32)(unsafe.Pointer(v25))
  11617. *(*uint32)(unsafe.Pointer(v25))++
  11618. *(*uint16)(unsafe.Pointer(state + 116 + uintptr(v24)*2)) = here.Fval
  11619. } else {
  11620. if int32(here.Fval) == int32(16) {
  11621. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(2)) {
  11622. if have == uint32(0) {
  11623. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11624. if have == uint32(0) {
  11625. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11626. ret = -int32(5)
  11627. goto inf_leave
  11628. }
  11629. }
  11630. have--
  11631. v26 = *(*uintptr)(unsafe.Pointer(bp))
  11632. *(*uintptr)(unsafe.Pointer(bp))++
  11633. hold += uint32(*(*uint8)(unsafe.Pointer(v26))) << bits
  11634. bits += uint32(8)
  11635. }
  11636. hold >>= uint32(here.Fbits)
  11637. bits -= uint32(here.Fbits)
  11638. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave == uint32(0) {
  11639. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 440
  11640. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11641. break
  11642. }
  11643. len1 = uint32(*(*uint16)(unsafe.Pointer(state + 116 + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fhave-uint32(1))*2)))
  11644. copy1 = uint32(3) + hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2)-libc.Uint32FromInt32(1))
  11645. hold >>= uint32(libc.Int32FromInt32(2))
  11646. bits -= uint32(libc.Int32FromInt32(2))
  11647. } else {
  11648. if int32(here.Fval) == int32(17) {
  11649. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(3)) {
  11650. if have == uint32(0) {
  11651. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11652. if have == uint32(0) {
  11653. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11654. ret = -int32(5)
  11655. goto inf_leave
  11656. }
  11657. }
  11658. have--
  11659. v27 = *(*uintptr)(unsafe.Pointer(bp))
  11660. *(*uintptr)(unsafe.Pointer(bp))++
  11661. hold += uint32(*(*uint8)(unsafe.Pointer(v27))) << bits
  11662. bits += uint32(8)
  11663. }
  11664. hold >>= uint32(here.Fbits)
  11665. bits -= uint32(here.Fbits)
  11666. len1 = uint32(0)
  11667. copy1 = uint32(3) + hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3)-libc.Uint32FromInt32(1))
  11668. hold >>= uint32(libc.Int32FromInt32(3))
  11669. bits -= uint32(libc.Int32FromInt32(3))
  11670. } else {
  11671. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(7)) {
  11672. if have == uint32(0) {
  11673. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11674. if have == uint32(0) {
  11675. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11676. ret = -int32(5)
  11677. goto inf_leave
  11678. }
  11679. }
  11680. have--
  11681. v28 = *(*uintptr)(unsafe.Pointer(bp))
  11682. *(*uintptr)(unsafe.Pointer(bp))++
  11683. hold += uint32(*(*uint8)(unsafe.Pointer(v28))) << bits
  11684. bits += uint32(8)
  11685. }
  11686. hold >>= uint32(here.Fbits)
  11687. bits -= uint32(here.Fbits)
  11688. len1 = uint32(0)
  11689. copy1 = uint32(11) + hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(7)-libc.Uint32FromInt32(1))
  11690. hold >>= uint32(libc.Int32FromInt32(7))
  11691. bits -= uint32(libc.Int32FromInt32(7))
  11692. }
  11693. }
  11694. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave+copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  11695. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 440
  11696. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11697. break
  11698. }
  11699. for {
  11700. v29 = copy1
  11701. copy1--
  11702. if !(v29 != 0) {
  11703. break
  11704. }
  11705. v31 = state + 108
  11706. v30 = *(*uint32)(unsafe.Pointer(v31))
  11707. *(*uint32)(unsafe.Pointer(v31))++
  11708. *(*uint16)(unsafe.Pointer(state + 116 + uintptr(v30)*2)) = uint16(len1)
  11709. }
  11710. }
  11711. }
  11712. /* handle error breaks in while */
  11713. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_BAD) {
  11714. goto _10
  11715. }
  11716. /* check for end-of-block code (better have one) */
  11717. if int32(*(*uint16)(unsafe.Pointer(state + 116 + 256*2))) == 0 {
  11718. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 466
  11719. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11720. goto _10
  11721. }
  11722. /* build code tables -- note: do not change the lenbits or distbits
  11723. values here (9 and 6) without reading the comments in inftrees.h
  11724. concerning the ENOUGH constants, which depend on those values */
  11725. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1332
  11726. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  11727. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  11728. ret = Xinflate_table(tls, int32(_LENS), state+116, (*Tinflate_state)(unsafe.Pointer(state)).Fnlen, state+112, state+88, state+756)
  11729. if ret != 0 {
  11730. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 503
  11731. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11732. goto _10
  11733. }
  11734. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  11735. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(6)
  11736. ret = Xinflate_table(tls, int32(_DISTS), state+116+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fnlen)*2, (*Tinflate_state)(unsafe.Pointer(state)).Fndist, state+112, state+92, state+756)
  11737. if ret != 0 {
  11738. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 531
  11739. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11740. goto _10
  11741. }
  11742. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  11743. /* fallthrough */
  11744. _6:
  11745. ;
  11746. /* use inflate_fast() if we have enough input and output */
  11747. if have >= uint32(6) && left >= uint32(258) {
  11748. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  11749. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  11750. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = *(*uintptr)(unsafe.Pointer(bp))
  11751. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  11752. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  11753. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  11754. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  11755. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - left
  11756. }
  11757. Xinflate_fast(tls, strm, (*Tinflate_state)(unsafe.Pointer(state)).Fwsize)
  11758. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  11759. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  11760. *(*uintptr)(unsafe.Pointer(bp)) = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  11761. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  11762. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  11763. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  11764. goto _10
  11765. }
  11766. /* get a literal, length, or end-of-block code */
  11767. for {
  11768. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(hold&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  11769. if uint32(here.Fbits) <= bits {
  11770. break
  11771. }
  11772. if have == uint32(0) {
  11773. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11774. if have == uint32(0) {
  11775. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11776. ret = -int32(5)
  11777. goto inf_leave
  11778. }
  11779. }
  11780. have--
  11781. v33 = *(*uintptr)(unsafe.Pointer(bp))
  11782. *(*uintptr)(unsafe.Pointer(bp))++
  11783. hold += uint32(*(*uint8)(unsafe.Pointer(v33))) << bits
  11784. bits += uint32(8)
  11785. goto _32
  11786. _32:
  11787. }
  11788. if here.Fop != 0 && int32(here.Fop)&int32(0xf0) == 0 {
  11789. last = here
  11790. for {
  11791. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(last.Fval)+hold&(uint32(1)<<(int32(last.Fbits)+int32(last.Fop))-uint32(1))>>last.Fbits)*4))
  11792. if uint32(int32(last.Fbits)+int32(here.Fbits)) <= bits {
  11793. break
  11794. }
  11795. if have == uint32(0) {
  11796. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11797. if have == uint32(0) {
  11798. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11799. ret = -int32(5)
  11800. goto inf_leave
  11801. }
  11802. }
  11803. have--
  11804. v35 = *(*uintptr)(unsafe.Pointer(bp))
  11805. *(*uintptr)(unsafe.Pointer(bp))++
  11806. hold += uint32(*(*uint8)(unsafe.Pointer(v35))) << bits
  11807. bits += uint32(8)
  11808. goto _34
  11809. _34:
  11810. }
  11811. hold >>= uint32(last.Fbits)
  11812. bits -= uint32(last.Fbits)
  11813. }
  11814. hold >>= uint32(here.Fbits)
  11815. bits -= uint32(here.Fbits)
  11816. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(here.Fval)
  11817. /* process literal */
  11818. if int32(here.Fop) == 0 {
  11819. if left == uint32(0) {
  11820. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  11821. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  11822. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  11823. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  11824. ret = -int32(5)
  11825. goto inf_leave
  11826. }
  11827. }
  11828. v36 = put
  11829. put++
  11830. *(*uint8)(unsafe.Pointer(v36)) = uint8((*Tinflate_state)(unsafe.Pointer(state)).Flength)
  11831. left--
  11832. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  11833. goto _10
  11834. }
  11835. /* process end of block */
  11836. if int32(here.Fop)&int32(32) != 0 {
  11837. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  11838. goto _10
  11839. }
  11840. /* invalid code */
  11841. if int32(here.Fop)&int32(64) != 0 {
  11842. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 553
  11843. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11844. goto _10
  11845. }
  11846. /* length code -- get extra bits, if any */
  11847. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  11848. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != uint32(0) {
  11849. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  11850. if have == uint32(0) {
  11851. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11852. if have == uint32(0) {
  11853. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11854. ret = -int32(5)
  11855. goto inf_leave
  11856. }
  11857. }
  11858. have--
  11859. v37 = *(*uintptr)(unsafe.Pointer(bp))
  11860. *(*uintptr)(unsafe.Pointer(bp))++
  11861. hold += uint32(*(*uint8)(unsafe.Pointer(v37))) << bits
  11862. bits += uint32(8)
  11863. }
  11864. *(*uint32)(unsafe.Pointer(state + 68)) += hold & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  11865. hold >>= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  11866. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  11867. }
  11868. /* get distance code */
  11869. for {
  11870. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(hold&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits-libc.Uint32FromInt32(1)))*4))
  11871. if uint32(here.Fbits) <= bits {
  11872. break
  11873. }
  11874. if have == uint32(0) {
  11875. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11876. if have == uint32(0) {
  11877. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11878. ret = -int32(5)
  11879. goto inf_leave
  11880. }
  11881. }
  11882. have--
  11883. v39 = *(*uintptr)(unsafe.Pointer(bp))
  11884. *(*uintptr)(unsafe.Pointer(bp))++
  11885. hold += uint32(*(*uint8)(unsafe.Pointer(v39))) << bits
  11886. bits += uint32(8)
  11887. goto _38
  11888. _38:
  11889. }
  11890. if int32(here.Fop)&int32(0xf0) == 0 {
  11891. last = here
  11892. for {
  11893. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(last.Fval)+hold&(uint32(1)<<(int32(last.Fbits)+int32(last.Fop))-uint32(1))>>last.Fbits)*4))
  11894. if uint32(int32(last.Fbits)+int32(here.Fbits)) <= bits {
  11895. break
  11896. }
  11897. if have == uint32(0) {
  11898. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11899. if have == uint32(0) {
  11900. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11901. ret = -int32(5)
  11902. goto inf_leave
  11903. }
  11904. }
  11905. have--
  11906. v41 = *(*uintptr)(unsafe.Pointer(bp))
  11907. *(*uintptr)(unsafe.Pointer(bp))++
  11908. hold += uint32(*(*uint8)(unsafe.Pointer(v41))) << bits
  11909. bits += uint32(8)
  11910. goto _40
  11911. _40:
  11912. }
  11913. hold >>= uint32(last.Fbits)
  11914. bits -= uint32(last.Fbits)
  11915. }
  11916. hold >>= uint32(here.Fbits)
  11917. bits -= uint32(here.Fbits)
  11918. if int32(here.Fop)&int32(64) != 0 {
  11919. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 581
  11920. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11921. goto _10
  11922. }
  11923. (*Tinflate_state)(unsafe.Pointer(state)).Foffset = uint32(here.Fval)
  11924. /* get distance extra bits, if any */
  11925. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  11926. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != uint32(0) {
  11927. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  11928. if have == uint32(0) {
  11929. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11930. if have == uint32(0) {
  11931. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11932. ret = -int32(5)
  11933. goto inf_leave
  11934. }
  11935. }
  11936. have--
  11937. v42 = *(*uintptr)(unsafe.Pointer(bp))
  11938. *(*uintptr)(unsafe.Pointer(bp))++
  11939. hold += uint32(*(*uint8)(unsafe.Pointer(v42))) << bits
  11940. bits += uint32(8)
  11941. }
  11942. *(*uint32)(unsafe.Pointer(state + 72)) += hold & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  11943. hold >>= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  11944. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  11945. }
  11946. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  11947. v43 = left
  11948. } else {
  11949. v43 = uint32(0)
  11950. }
  11951. if (*Tinflate_state)(unsafe.Pointer(state)).Foffset > (*Tinflate_state)(unsafe.Pointer(state)).Fwsize-v43 {
  11952. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 603
  11953. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11954. goto _10
  11955. }
  11956. /* copy match from window to output */
  11957. for cond := true; cond; cond = (*Tinflate_state)(unsafe.Pointer(state)).Flength != uint32(0) {
  11958. if left == uint32(0) {
  11959. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  11960. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  11961. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  11962. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  11963. ret = -int32(5)
  11964. goto inf_leave
  11965. }
  11966. }
  11967. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - (*Tinflate_state)(unsafe.Pointer(state)).Foffset
  11968. if copy1 < left {
  11969. from = put + uintptr(copy1)
  11970. copy1 = left - copy1
  11971. } else {
  11972. from = put - uintptr((*Tinflate_state)(unsafe.Pointer(state)).Foffset)
  11973. copy1 = left
  11974. }
  11975. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Flength {
  11976. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  11977. }
  11978. *(*uint32)(unsafe.Pointer(state + 68)) -= copy1
  11979. left -= copy1
  11980. for {
  11981. v46 = put
  11982. put++
  11983. v47 = from
  11984. from++
  11985. *(*uint8)(unsafe.Pointer(v46)) = *(*uint8)(unsafe.Pointer(v47))
  11986. goto _45
  11987. _45:
  11988. ;
  11989. copy1--
  11990. v44 = copy1
  11991. if !(v44 != 0) {
  11992. break
  11993. }
  11994. }
  11995. }
  11996. goto _10
  11997. _7:
  11998. ;
  11999. /* inflate stream terminated properly */
  12000. ret = int32(m_Z_STREAM_END)
  12001. goto inf_leave
  12002. _8:
  12003. ;
  12004. ret = -int32(3)
  12005. goto inf_leave
  12006. _9:
  12007. ;
  12008. /* can't happen, but makes compilers happy */
  12009. ret = -int32(2)
  12010. goto inf_leave
  12011. _10:
  12012. ;
  12013. goto _2
  12014. _2:
  12015. }
  12016. /* Write leftover output and return unused input */
  12017. goto inf_leave
  12018. inf_leave:
  12019. ;
  12020. if left < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  12021. 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) {
  12022. ret = -int32(5)
  12023. }
  12024. }
  12025. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = *(*uintptr)(unsafe.Pointer(bp))
  12026. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  12027. return ret
  12028. }
  12029. var _order = [19]uint16{
  12030. 0: uint16(16),
  12031. 1: uint16(17),
  12032. 2: uint16(18),
  12033. 4: uint16(8),
  12034. 5: uint16(7),
  12035. 6: uint16(9),
  12036. 7: uint16(6),
  12037. 8: uint16(10),
  12038. 9: uint16(5),
  12039. 10: uint16(11),
  12040. 11: uint16(4),
  12041. 12: uint16(12),
  12042. 13: uint16(3),
  12043. 14: uint16(13),
  12044. 15: uint16(2),
  12045. 16: uint16(14),
  12046. 17: uint16(1),
  12047. 18: uint16(15),
  12048. }
  12049. func XinflateBackEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  12050. 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) {
  12051. return -int32(2)
  12052. }
  12053. (*(*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)
  12054. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  12055. return m_Z_OK
  12056. }
  12057. // C documentation
  12058. //
  12059. // /*
  12060. // Decode literal, length, and distance codes and write out the resulting
  12061. // literal and match bytes until either not enough input or output is
  12062. // available, an end-of-block is encountered, or a data error is encountered.
  12063. // When large enough input and output buffers are supplied to inflate(), for
  12064. // example, a 16K input buffer and a 64K output buffer, more than 95% of the
  12065. // inflate execution time is spent in this routine.
  12066. //
  12067. // Entry assumptions:
  12068. //
  12069. // state->mode == LEN
  12070. // strm->avail_in >= 6
  12071. // strm->avail_out >= 258
  12072. // start >= strm->avail_out
  12073. // state->bits < 8
  12074. //
  12075. // On return, state->mode is one of:
  12076. //
  12077. // LEN -- ran out of enough output space or enough available input
  12078. // TYPE -- reached end of block code, inflate() to interpret next block
  12079. // BAD -- error in block data
  12080. //
  12081. // Notes:
  12082. //
  12083. // - The maximum input bits used by a length/distance pair is 15 bits for the
  12084. // length code, 5 bits for the length extra, 15 bits for the distance code,
  12085. // and 13 bits for the distance extra. This totals 48 bits, or six bytes.
  12086. // Therefore if strm->avail_in >= 6, then there is enough input to avoid
  12087. // checking for available input while decoding.
  12088. //
  12089. // - The maximum bytes that a single length/distance pair can output is 258
  12090. // bytes, which is the maximum length that can be coded. inflate_fast()
  12091. // requires strm->avail_out >= 258 for each loop to avoid checking for
  12092. // output space.
  12093. // */
  12094. func Xinflate_fast(tls *libc.TLS, strm Tz_streamp, start uint32) {
  12095. 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
  12096. var bits, dist, dmask, hold, len1, lmask, op, whave, wnext, wsize, v13, v17, v21, v9 uint32
  12097. var v45, v46 int32
  12098. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  12099. /* copy state to local variables */
  12100. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  12101. in = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  12102. last = in + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in-libc.Uint32FromInt32(5))
  12103. out = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  12104. beg = out - uintptr(start-(*Tz_stream)(unsafe.Pointer(strm)).Favail_out)
  12105. end = out + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_out-libc.Uint32FromInt32(257))
  12106. wsize = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  12107. whave = (*Tinflate_state)(unsafe.Pointer(state)).Fwhave
  12108. wnext = (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  12109. window = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  12110. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  12111. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  12112. lcode = (*Tinflate_state)(unsafe.Pointer(state)).Flencode
  12113. dcode = (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode
  12114. lmask = uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits - uint32(1)
  12115. dmask = uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits - uint32(1)
  12116. /* decode literals and length/distances until end-of-block or not enough
  12117. input data or output space */
  12118. for cond := true; cond; cond = in < last && out < end {
  12119. if bits < uint32(15) {
  12120. v1 = in
  12121. in++
  12122. hold += uint32(*(*uint8)(unsafe.Pointer(v1))) << bits
  12123. bits += uint32(8)
  12124. v2 = in
  12125. in++
  12126. hold += uint32(*(*uint8)(unsafe.Pointer(v2))) << bits
  12127. bits += uint32(8)
  12128. }
  12129. here = lcode + uintptr(hold&lmask)*4
  12130. goto dolen
  12131. dolen:
  12132. ;
  12133. op = uint32((*Tcode)(unsafe.Pointer(here)).Fbits)
  12134. hold >>= op
  12135. bits -= op
  12136. op = uint32((*Tcode)(unsafe.Pointer(here)).Fop)
  12137. if op == uint32(0) { /* literal */
  12138. v3 = out
  12139. out++
  12140. *(*uint8)(unsafe.Pointer(v3)) = uint8((*Tcode)(unsafe.Pointer(here)).Fval)
  12141. } else {
  12142. if op&uint32(16) != 0 { /* length base */
  12143. len1 = uint32((*Tcode)(unsafe.Pointer(here)).Fval)
  12144. op &= uint32(15) /* number of extra bits */
  12145. if op != 0 {
  12146. if bits < op {
  12147. v4 = in
  12148. in++
  12149. hold += uint32(*(*uint8)(unsafe.Pointer(v4))) << bits
  12150. bits += uint32(8)
  12151. }
  12152. len1 += hold & (uint32(1)<<op - uint32(1))
  12153. hold >>= op
  12154. bits -= op
  12155. }
  12156. if bits < uint32(15) {
  12157. v5 = in
  12158. in++
  12159. hold += uint32(*(*uint8)(unsafe.Pointer(v5))) << bits
  12160. bits += uint32(8)
  12161. v6 = in
  12162. in++
  12163. hold += uint32(*(*uint8)(unsafe.Pointer(v6))) << bits
  12164. bits += uint32(8)
  12165. }
  12166. here = dcode + uintptr(hold&dmask)*4
  12167. goto dodist
  12168. dodist:
  12169. ;
  12170. op = uint32((*Tcode)(unsafe.Pointer(here)).Fbits)
  12171. hold >>= op
  12172. bits -= op
  12173. op = uint32((*Tcode)(unsafe.Pointer(here)).Fop)
  12174. if op&uint32(16) != 0 { /* distance base */
  12175. dist = uint32((*Tcode)(unsafe.Pointer(here)).Fval)
  12176. op &= uint32(15) /* number of extra bits */
  12177. if bits < op {
  12178. v7 = in
  12179. in++
  12180. hold += uint32(*(*uint8)(unsafe.Pointer(v7))) << bits
  12181. bits += uint32(8)
  12182. if bits < op {
  12183. v8 = in
  12184. in++
  12185. hold += uint32(*(*uint8)(unsafe.Pointer(v8))) << bits
  12186. bits += uint32(8)
  12187. }
  12188. }
  12189. dist += hold & (uint32(1)<<op - uint32(1))
  12190. hold >>= op
  12191. bits -= op
  12192. op = uint32(int32(out) - int32(beg)) /* max distance in output */
  12193. if dist > op { /* see if copy from window */
  12194. op = dist - op /* distance back in window */
  12195. if op > whave {
  12196. if (*Tinflate_state)(unsafe.Pointer(state)).Fsane != 0 {
  12197. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 603
  12198. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  12199. break
  12200. }
  12201. }
  12202. from = window
  12203. if wnext == uint32(0) { /* very common case */
  12204. from += uintptr(wsize - op)
  12205. if op < len1 { /* some from window */
  12206. len1 -= op
  12207. for {
  12208. v11 = out
  12209. out++
  12210. v12 = from
  12211. from++
  12212. *(*uint8)(unsafe.Pointer(v11)) = *(*uint8)(unsafe.Pointer(v12))
  12213. goto _10
  12214. _10:
  12215. ;
  12216. op--
  12217. v9 = op
  12218. if !(v9 != 0) {
  12219. break
  12220. }
  12221. }
  12222. from = out - uintptr(dist) /* rest from output */
  12223. }
  12224. } else {
  12225. if wnext < op { /* wrap around window */
  12226. from += uintptr(wsize + wnext - op)
  12227. op -= wnext
  12228. if op < len1 { /* some from end of window */
  12229. len1 -= op
  12230. for {
  12231. v15 = out
  12232. out++
  12233. v16 = from
  12234. from++
  12235. *(*uint8)(unsafe.Pointer(v15)) = *(*uint8)(unsafe.Pointer(v16))
  12236. goto _14
  12237. _14:
  12238. ;
  12239. op--
  12240. v13 = op
  12241. if !(v13 != 0) {
  12242. break
  12243. }
  12244. }
  12245. from = window
  12246. if wnext < len1 { /* some from start of window */
  12247. op = wnext
  12248. len1 -= op
  12249. for {
  12250. v19 = out
  12251. out++
  12252. v20 = from
  12253. from++
  12254. *(*uint8)(unsafe.Pointer(v19)) = *(*uint8)(unsafe.Pointer(v20))
  12255. goto _18
  12256. _18:
  12257. ;
  12258. op--
  12259. v17 = op
  12260. if !(v17 != 0) {
  12261. break
  12262. }
  12263. }
  12264. from = out - uintptr(dist) /* rest from output */
  12265. }
  12266. }
  12267. } else { /* contiguous in window */
  12268. from += uintptr(wnext - op)
  12269. if op < len1 { /* some from window */
  12270. len1 -= op
  12271. for {
  12272. v23 = out
  12273. out++
  12274. v24 = from
  12275. from++
  12276. *(*uint8)(unsafe.Pointer(v23)) = *(*uint8)(unsafe.Pointer(v24))
  12277. goto _22
  12278. _22:
  12279. ;
  12280. op--
  12281. v21 = op
  12282. if !(v21 != 0) {
  12283. break
  12284. }
  12285. }
  12286. from = out - uintptr(dist) /* rest from output */
  12287. }
  12288. }
  12289. }
  12290. for len1 > uint32(2) {
  12291. v25 = out
  12292. out++
  12293. v26 = from
  12294. from++
  12295. *(*uint8)(unsafe.Pointer(v25)) = *(*uint8)(unsafe.Pointer(v26))
  12296. v27 = out
  12297. out++
  12298. v28 = from
  12299. from++
  12300. *(*uint8)(unsafe.Pointer(v27)) = *(*uint8)(unsafe.Pointer(v28))
  12301. v29 = out
  12302. out++
  12303. v30 = from
  12304. from++
  12305. *(*uint8)(unsafe.Pointer(v29)) = *(*uint8)(unsafe.Pointer(v30))
  12306. len1 -= uint32(3)
  12307. }
  12308. if len1 != 0 {
  12309. v31 = out
  12310. out++
  12311. v32 = from
  12312. from++
  12313. *(*uint8)(unsafe.Pointer(v31)) = *(*uint8)(unsafe.Pointer(v32))
  12314. if len1 > uint32(1) {
  12315. v33 = out
  12316. out++
  12317. v34 = from
  12318. from++
  12319. *(*uint8)(unsafe.Pointer(v33)) = *(*uint8)(unsafe.Pointer(v34))
  12320. }
  12321. }
  12322. } else {
  12323. from = out - uintptr(dist) /* copy direct from output */
  12324. for cond := true; cond; cond = len1 > uint32(2) { /* minimum length is three */
  12325. v35 = out
  12326. out++
  12327. v36 = from
  12328. from++
  12329. *(*uint8)(unsafe.Pointer(v35)) = *(*uint8)(unsafe.Pointer(v36))
  12330. v37 = out
  12331. out++
  12332. v38 = from
  12333. from++
  12334. *(*uint8)(unsafe.Pointer(v37)) = *(*uint8)(unsafe.Pointer(v38))
  12335. v39 = out
  12336. out++
  12337. v40 = from
  12338. from++
  12339. *(*uint8)(unsafe.Pointer(v39)) = *(*uint8)(unsafe.Pointer(v40))
  12340. len1 -= uint32(3)
  12341. }
  12342. if len1 != 0 {
  12343. v41 = out
  12344. out++
  12345. v42 = from
  12346. from++
  12347. *(*uint8)(unsafe.Pointer(v41)) = *(*uint8)(unsafe.Pointer(v42))
  12348. if len1 > uint32(1) {
  12349. v43 = out
  12350. out++
  12351. v44 = from
  12352. from++
  12353. *(*uint8)(unsafe.Pointer(v43)) = *(*uint8)(unsafe.Pointer(v44))
  12354. }
  12355. }
  12356. }
  12357. } else {
  12358. if op&uint32(64) == uint32(0) { /* 2nd level distance code */
  12359. here = dcode + uintptr((*Tcode)(unsafe.Pointer(here)).Fval)*4 + uintptr(hold&uint32(libc.Uint32FromUint32(1)<<op-libc.Uint32FromInt32(1)))*4
  12360. goto dodist
  12361. } else {
  12362. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 581
  12363. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  12364. break
  12365. }
  12366. }
  12367. } else {
  12368. if op&uint32(64) == uint32(0) { /* 2nd level length code */
  12369. here = lcode + uintptr((*Tcode)(unsafe.Pointer(here)).Fval)*4 + uintptr(hold&uint32(libc.Uint32FromUint32(1)<<op-libc.Uint32FromInt32(1)))*4
  12370. goto dolen
  12371. } else {
  12372. if op&uint32(32) != 0 { /* end-of-block */
  12373. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  12374. break
  12375. } else {
  12376. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 553
  12377. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  12378. break
  12379. }
  12380. }
  12381. }
  12382. }
  12383. }
  12384. /* return unused bytes (on entry, bits < 8, so in won't go too far back) */
  12385. len1 = bits >> int32(3)
  12386. in -= uintptr(len1)
  12387. bits -= len1 << int32(3)
  12388. hold &= uint32(uint32(1)<<bits - uint32(1))
  12389. /* update state and return */
  12390. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = in
  12391. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = out
  12392. if in < last {
  12393. v45 = int32(5) + (int32(last) - int32(in))
  12394. } else {
  12395. v45 = int32(5) - (int32(in) - int32(last))
  12396. }
  12397. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(v45)
  12398. if out < end {
  12399. v46 = int32(257) + (int32(end) - int32(out))
  12400. } else {
  12401. v46 = int32(257) - (int32(out) - int32(end))
  12402. }
  12403. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = uint32(v46)
  12404. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  12405. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  12406. return
  12407. }
  12408. func _inflateStateCheck(tls *libc.TLS, strm Tz_streamp) (r int32) {
  12409. var state uintptr
  12410. _ = state
  12411. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  12412. return int32(1)
  12413. }
  12414. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  12415. 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) {
  12416. return int32(1)
  12417. }
  12418. return 0
  12419. }
  12420. func XinflateResetKeep(tls *libc.TLS, strm Tz_streamp) (r int32) {
  12421. var state, v3, v4 uintptr
  12422. var v1 TuLong
  12423. var v2 uint32
  12424. _, _, _, _, _ = state, v1, v2, v3, v4
  12425. if _inflateStateCheck(tls, strm) != 0 {
  12426. return -int32(2)
  12427. }
  12428. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  12429. v2 = libc.Uint32FromInt32(0)
  12430. (*Tinflate_state)(unsafe.Pointer(state)).Ftotal = v2
  12431. v1 = v2
  12432. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = v1
  12433. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = v1
  12434. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  12435. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 { /* to support ill-conceived Java test suite */
  12436. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = uint32((*Tinflate_state)(unsafe.Pointer(state)).Fwrap & int32(1))
  12437. }
  12438. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HEAD)
  12439. (*Tinflate_state)(unsafe.Pointer(state)).Flast = 0
  12440. (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict = 0
  12441. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = -int32(1)
  12442. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(32768)
  12443. (*Tinflate_state)(unsafe.Pointer(state)).Fhead = uintptr(m_Z_NULL)
  12444. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = uint32(0)
  12445. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = uint32(0)
  12446. v4 = state + 1332
  12447. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = v4
  12448. v3 = v4
  12449. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = v3
  12450. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = v3
  12451. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  12452. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  12453. return m_Z_OK
  12454. }
  12455. func XinflateReset(tls *libc.TLS, strm Tz_streamp) (r int32) {
  12456. var state uintptr
  12457. _ = state
  12458. if _inflateStateCheck(tls, strm) != 0 {
  12459. return -int32(2)
  12460. }
  12461. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  12462. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(0)
  12463. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  12464. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  12465. return XinflateResetKeep(tls, strm)
  12466. }
  12467. func XinflateReset2(tls *libc.TLS, strm Tz_streamp, windowBits int32) (r int32) {
  12468. var state uintptr
  12469. var wrap int32
  12470. _, _ = state, wrap
  12471. /* get the state */
  12472. if _inflateStateCheck(tls, strm) != 0 {
  12473. return -int32(2)
  12474. }
  12475. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  12476. /* extract wrap request from windowBits parameter */
  12477. if windowBits < 0 {
  12478. if windowBits < -int32(15) {
  12479. return -int32(2)
  12480. }
  12481. wrap = 0
  12482. windowBits = -windowBits
  12483. } else {
  12484. wrap = windowBits>>int32(4) + int32(5)
  12485. if windowBits < int32(48) {
  12486. windowBits &= int32(15)
  12487. }
  12488. }
  12489. /* set number of window bits, free window if different */
  12490. if windowBits != 0 && (windowBits < int32(8) || windowBits > int32(15)) {
  12491. return -int32(2)
  12492. }
  12493. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) && (*Tinflate_state)(unsafe.Pointer(state)).Fwbits != uint32(windowBits) {
  12494. (*(*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)
  12495. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = uintptr(m_Z_NULL)
  12496. }
  12497. /* update state and reset the rest of it */
  12498. (*Tinflate_state)(unsafe.Pointer(state)).Fwrap = wrap
  12499. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = uint32(windowBits)
  12500. return XinflateReset(tls, strm)
  12501. }
  12502. func XinflateInit2_(tls *libc.TLS, strm Tz_streamp, windowBits int32, version uintptr, stream_size int32) (r int32) {
  12503. var ret int32
  12504. var state uintptr
  12505. _, _ = ret, state
  12506. if version == uintptr(m_Z_NULL) || int32(*(*int8)(unsafe.Pointer(version))) != int32(*(*int8)(unsafe.Pointer(__ccgo_ts))) || stream_size != int32(libc.Uint32FromInt64(56)) {
  12507. return -int32(6)
  12508. }
  12509. if strm == uintptr(m_Z_NULL) {
  12510. return -int32(2)
  12511. }
  12512. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* in case we return an error */
  12513. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  12514. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  12515. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  12516. }
  12517. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  12518. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  12519. }
  12520. state = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, uint32(libc.Int32FromInt32(1)), libc.Uint32FromInt64(7120))
  12521. if state == uintptr(m_Z_NULL) {
  12522. return -int32(4)
  12523. }
  12524. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = state
  12525. (*Tinflate_state)(unsafe.Pointer(state)).Fstrm = strm
  12526. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = uintptr(m_Z_NULL)
  12527. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HEAD) /* to pass state test in inflateReset2() */
  12528. ret = XinflateReset2(tls, strm, windowBits)
  12529. if ret != m_Z_OK {
  12530. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, state)
  12531. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  12532. }
  12533. return ret
  12534. }
  12535. func XinflateInit_(tls *libc.TLS, strm Tz_streamp, version uintptr, stream_size int32) (r int32) {
  12536. return XinflateInit2_(tls, strm, int32(m_MAX_WBITS), version, stream_size)
  12537. }
  12538. func XinflatePrime(tls *libc.TLS, strm Tz_streamp, bits int32, value int32) (r int32) {
  12539. var state uintptr
  12540. _ = state
  12541. if _inflateStateCheck(tls, strm) != 0 {
  12542. return -int32(2)
  12543. }
  12544. if bits == 0 {
  12545. return m_Z_OK
  12546. }
  12547. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  12548. if bits < 0 {
  12549. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = uint32(0)
  12550. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = uint32(0)
  12551. return m_Z_OK
  12552. }
  12553. if bits > int32(16) || (*Tinflate_state)(unsafe.Pointer(state)).Fbits+uint32(bits) > uint32(32) {
  12554. return -int32(2)
  12555. }
  12556. value = int32(value & (libc.Int32FromInt32(1)<<bits - libc.Int32FromInt32(1)))
  12557. *(*uint32)(unsafe.Pointer(state + 60)) += uint32(uint32(value) << (*Tinflate_state)(unsafe.Pointer(state)).Fbits)
  12558. *(*uint32)(unsafe.Pointer(state + 64)) += uint32(bits)
  12559. return m_Z_OK
  12560. }
  12561. // C documentation
  12562. //
  12563. // /*
  12564. // Return state with length and distance decoding tables and index sizes set to
  12565. // fixed code decoding. Normally this returns fixed tables from inffixed.h.
  12566. // If BUILDFIXED is defined, then instead this routine builds the tables the
  12567. // first time it's called, and returns those tables the first time and
  12568. // thereafter. This reduces the size of the code by about 2K bytes, in
  12569. // exchange for a little execution time. However, BUILDFIXED should not be
  12570. // used for threaded applications, since the rewriting of the tables and virgin
  12571. // may not be thread-safe.
  12572. // */
  12573. func _fixedtables1(tls *libc.TLS, state uintptr) {
  12574. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = uintptr(unsafe.Pointer(&_lenfix1))
  12575. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  12576. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = uintptr(unsafe.Pointer(&_distfix1))
  12577. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(5)
  12578. }
  12579. var _lenfix1 = [512]Tcode{
  12580. 0: {
  12581. Fop: uint8(96),
  12582. Fbits: uint8(7),
  12583. },
  12584. 1: {
  12585. Fbits: uint8(8),
  12586. Fval: uint16(80),
  12587. },
  12588. 2: {
  12589. Fbits: uint8(8),
  12590. Fval: uint16(16),
  12591. },
  12592. 3: {
  12593. Fop: uint8(20),
  12594. Fbits: uint8(8),
  12595. Fval: uint16(115),
  12596. },
  12597. 4: {
  12598. Fop: uint8(18),
  12599. Fbits: uint8(7),
  12600. Fval: uint16(31),
  12601. },
  12602. 5: {
  12603. Fbits: uint8(8),
  12604. Fval: uint16(112),
  12605. },
  12606. 6: {
  12607. Fbits: uint8(8),
  12608. Fval: uint16(48),
  12609. },
  12610. 7: {
  12611. Fbits: uint8(9),
  12612. Fval: uint16(192),
  12613. },
  12614. 8: {
  12615. Fop: uint8(16),
  12616. Fbits: uint8(7),
  12617. Fval: uint16(10),
  12618. },
  12619. 9: {
  12620. Fbits: uint8(8),
  12621. Fval: uint16(96),
  12622. },
  12623. 10: {
  12624. Fbits: uint8(8),
  12625. Fval: uint16(32),
  12626. },
  12627. 11: {
  12628. Fbits: uint8(9),
  12629. Fval: uint16(160),
  12630. },
  12631. 12: {
  12632. Fbits: uint8(8),
  12633. },
  12634. 13: {
  12635. Fbits: uint8(8),
  12636. Fval: uint16(128),
  12637. },
  12638. 14: {
  12639. Fbits: uint8(8),
  12640. Fval: uint16(64),
  12641. },
  12642. 15: {
  12643. Fbits: uint8(9),
  12644. Fval: uint16(224),
  12645. },
  12646. 16: {
  12647. Fop: uint8(16),
  12648. Fbits: uint8(7),
  12649. Fval: uint16(6),
  12650. },
  12651. 17: {
  12652. Fbits: uint8(8),
  12653. Fval: uint16(88),
  12654. },
  12655. 18: {
  12656. Fbits: uint8(8),
  12657. Fval: uint16(24),
  12658. },
  12659. 19: {
  12660. Fbits: uint8(9),
  12661. Fval: uint16(144),
  12662. },
  12663. 20: {
  12664. Fop: uint8(19),
  12665. Fbits: uint8(7),
  12666. Fval: uint16(59),
  12667. },
  12668. 21: {
  12669. Fbits: uint8(8),
  12670. Fval: uint16(120),
  12671. },
  12672. 22: {
  12673. Fbits: uint8(8),
  12674. Fval: uint16(56),
  12675. },
  12676. 23: {
  12677. Fbits: uint8(9),
  12678. Fval: uint16(208),
  12679. },
  12680. 24: {
  12681. Fop: uint8(17),
  12682. Fbits: uint8(7),
  12683. Fval: uint16(17),
  12684. },
  12685. 25: {
  12686. Fbits: uint8(8),
  12687. Fval: uint16(104),
  12688. },
  12689. 26: {
  12690. Fbits: uint8(8),
  12691. Fval: uint16(40),
  12692. },
  12693. 27: {
  12694. Fbits: uint8(9),
  12695. Fval: uint16(176),
  12696. },
  12697. 28: {
  12698. Fbits: uint8(8),
  12699. Fval: uint16(8),
  12700. },
  12701. 29: {
  12702. Fbits: uint8(8),
  12703. Fval: uint16(136),
  12704. },
  12705. 30: {
  12706. Fbits: uint8(8),
  12707. Fval: uint16(72),
  12708. },
  12709. 31: {
  12710. Fbits: uint8(9),
  12711. Fval: uint16(240),
  12712. },
  12713. 32: {
  12714. Fop: uint8(16),
  12715. Fbits: uint8(7),
  12716. Fval: uint16(4),
  12717. },
  12718. 33: {
  12719. Fbits: uint8(8),
  12720. Fval: uint16(84),
  12721. },
  12722. 34: {
  12723. Fbits: uint8(8),
  12724. Fval: uint16(20),
  12725. },
  12726. 35: {
  12727. Fop: uint8(21),
  12728. Fbits: uint8(8),
  12729. Fval: uint16(227),
  12730. },
  12731. 36: {
  12732. Fop: uint8(19),
  12733. Fbits: uint8(7),
  12734. Fval: uint16(43),
  12735. },
  12736. 37: {
  12737. Fbits: uint8(8),
  12738. Fval: uint16(116),
  12739. },
  12740. 38: {
  12741. Fbits: uint8(8),
  12742. Fval: uint16(52),
  12743. },
  12744. 39: {
  12745. Fbits: uint8(9),
  12746. Fval: uint16(200),
  12747. },
  12748. 40: {
  12749. Fop: uint8(17),
  12750. Fbits: uint8(7),
  12751. Fval: uint16(13),
  12752. },
  12753. 41: {
  12754. Fbits: uint8(8),
  12755. Fval: uint16(100),
  12756. },
  12757. 42: {
  12758. Fbits: uint8(8),
  12759. Fval: uint16(36),
  12760. },
  12761. 43: {
  12762. Fbits: uint8(9),
  12763. Fval: uint16(168),
  12764. },
  12765. 44: {
  12766. Fbits: uint8(8),
  12767. Fval: uint16(4),
  12768. },
  12769. 45: {
  12770. Fbits: uint8(8),
  12771. Fval: uint16(132),
  12772. },
  12773. 46: {
  12774. Fbits: uint8(8),
  12775. Fval: uint16(68),
  12776. },
  12777. 47: {
  12778. Fbits: uint8(9),
  12779. Fval: uint16(232),
  12780. },
  12781. 48: {
  12782. Fop: uint8(16),
  12783. Fbits: uint8(7),
  12784. Fval: uint16(8),
  12785. },
  12786. 49: {
  12787. Fbits: uint8(8),
  12788. Fval: uint16(92),
  12789. },
  12790. 50: {
  12791. Fbits: uint8(8),
  12792. Fval: uint16(28),
  12793. },
  12794. 51: {
  12795. Fbits: uint8(9),
  12796. Fval: uint16(152),
  12797. },
  12798. 52: {
  12799. Fop: uint8(20),
  12800. Fbits: uint8(7),
  12801. Fval: uint16(83),
  12802. },
  12803. 53: {
  12804. Fbits: uint8(8),
  12805. Fval: uint16(124),
  12806. },
  12807. 54: {
  12808. Fbits: uint8(8),
  12809. Fval: uint16(60),
  12810. },
  12811. 55: {
  12812. Fbits: uint8(9),
  12813. Fval: uint16(216),
  12814. },
  12815. 56: {
  12816. Fop: uint8(18),
  12817. Fbits: uint8(7),
  12818. Fval: uint16(23),
  12819. },
  12820. 57: {
  12821. Fbits: uint8(8),
  12822. Fval: uint16(108),
  12823. },
  12824. 58: {
  12825. Fbits: uint8(8),
  12826. Fval: uint16(44),
  12827. },
  12828. 59: {
  12829. Fbits: uint8(9),
  12830. Fval: uint16(184),
  12831. },
  12832. 60: {
  12833. Fbits: uint8(8),
  12834. Fval: uint16(12),
  12835. },
  12836. 61: {
  12837. Fbits: uint8(8),
  12838. Fval: uint16(140),
  12839. },
  12840. 62: {
  12841. Fbits: uint8(8),
  12842. Fval: uint16(76),
  12843. },
  12844. 63: {
  12845. Fbits: uint8(9),
  12846. Fval: uint16(248),
  12847. },
  12848. 64: {
  12849. Fop: uint8(16),
  12850. Fbits: uint8(7),
  12851. Fval: uint16(3),
  12852. },
  12853. 65: {
  12854. Fbits: uint8(8),
  12855. Fval: uint16(82),
  12856. },
  12857. 66: {
  12858. Fbits: uint8(8),
  12859. Fval: uint16(18),
  12860. },
  12861. 67: {
  12862. Fop: uint8(21),
  12863. Fbits: uint8(8),
  12864. Fval: uint16(163),
  12865. },
  12866. 68: {
  12867. Fop: uint8(19),
  12868. Fbits: uint8(7),
  12869. Fval: uint16(35),
  12870. },
  12871. 69: {
  12872. Fbits: uint8(8),
  12873. Fval: uint16(114),
  12874. },
  12875. 70: {
  12876. Fbits: uint8(8),
  12877. Fval: uint16(50),
  12878. },
  12879. 71: {
  12880. Fbits: uint8(9),
  12881. Fval: uint16(196),
  12882. },
  12883. 72: {
  12884. Fop: uint8(17),
  12885. Fbits: uint8(7),
  12886. Fval: uint16(11),
  12887. },
  12888. 73: {
  12889. Fbits: uint8(8),
  12890. Fval: uint16(98),
  12891. },
  12892. 74: {
  12893. Fbits: uint8(8),
  12894. Fval: uint16(34),
  12895. },
  12896. 75: {
  12897. Fbits: uint8(9),
  12898. Fval: uint16(164),
  12899. },
  12900. 76: {
  12901. Fbits: uint8(8),
  12902. Fval: uint16(2),
  12903. },
  12904. 77: {
  12905. Fbits: uint8(8),
  12906. Fval: uint16(130),
  12907. },
  12908. 78: {
  12909. Fbits: uint8(8),
  12910. Fval: uint16(66),
  12911. },
  12912. 79: {
  12913. Fbits: uint8(9),
  12914. Fval: uint16(228),
  12915. },
  12916. 80: {
  12917. Fop: uint8(16),
  12918. Fbits: uint8(7),
  12919. Fval: uint16(7),
  12920. },
  12921. 81: {
  12922. Fbits: uint8(8),
  12923. Fval: uint16(90),
  12924. },
  12925. 82: {
  12926. Fbits: uint8(8),
  12927. Fval: uint16(26),
  12928. },
  12929. 83: {
  12930. Fbits: uint8(9),
  12931. Fval: uint16(148),
  12932. },
  12933. 84: {
  12934. Fop: uint8(20),
  12935. Fbits: uint8(7),
  12936. Fval: uint16(67),
  12937. },
  12938. 85: {
  12939. Fbits: uint8(8),
  12940. Fval: uint16(122),
  12941. },
  12942. 86: {
  12943. Fbits: uint8(8),
  12944. Fval: uint16(58),
  12945. },
  12946. 87: {
  12947. Fbits: uint8(9),
  12948. Fval: uint16(212),
  12949. },
  12950. 88: {
  12951. Fop: uint8(18),
  12952. Fbits: uint8(7),
  12953. Fval: uint16(19),
  12954. },
  12955. 89: {
  12956. Fbits: uint8(8),
  12957. Fval: uint16(106),
  12958. },
  12959. 90: {
  12960. Fbits: uint8(8),
  12961. Fval: uint16(42),
  12962. },
  12963. 91: {
  12964. Fbits: uint8(9),
  12965. Fval: uint16(180),
  12966. },
  12967. 92: {
  12968. Fbits: uint8(8),
  12969. Fval: uint16(10),
  12970. },
  12971. 93: {
  12972. Fbits: uint8(8),
  12973. Fval: uint16(138),
  12974. },
  12975. 94: {
  12976. Fbits: uint8(8),
  12977. Fval: uint16(74),
  12978. },
  12979. 95: {
  12980. Fbits: uint8(9),
  12981. Fval: uint16(244),
  12982. },
  12983. 96: {
  12984. Fop: uint8(16),
  12985. Fbits: uint8(7),
  12986. Fval: uint16(5),
  12987. },
  12988. 97: {
  12989. Fbits: uint8(8),
  12990. Fval: uint16(86),
  12991. },
  12992. 98: {
  12993. Fbits: uint8(8),
  12994. Fval: uint16(22),
  12995. },
  12996. 99: {
  12997. Fop: uint8(64),
  12998. Fbits: uint8(8),
  12999. },
  13000. 100: {
  13001. Fop: uint8(19),
  13002. Fbits: uint8(7),
  13003. Fval: uint16(51),
  13004. },
  13005. 101: {
  13006. Fbits: uint8(8),
  13007. Fval: uint16(118),
  13008. },
  13009. 102: {
  13010. Fbits: uint8(8),
  13011. Fval: uint16(54),
  13012. },
  13013. 103: {
  13014. Fbits: uint8(9),
  13015. Fval: uint16(204),
  13016. },
  13017. 104: {
  13018. Fop: uint8(17),
  13019. Fbits: uint8(7),
  13020. Fval: uint16(15),
  13021. },
  13022. 105: {
  13023. Fbits: uint8(8),
  13024. Fval: uint16(102),
  13025. },
  13026. 106: {
  13027. Fbits: uint8(8),
  13028. Fval: uint16(38),
  13029. },
  13030. 107: {
  13031. Fbits: uint8(9),
  13032. Fval: uint16(172),
  13033. },
  13034. 108: {
  13035. Fbits: uint8(8),
  13036. Fval: uint16(6),
  13037. },
  13038. 109: {
  13039. Fbits: uint8(8),
  13040. Fval: uint16(134),
  13041. },
  13042. 110: {
  13043. Fbits: uint8(8),
  13044. Fval: uint16(70),
  13045. },
  13046. 111: {
  13047. Fbits: uint8(9),
  13048. Fval: uint16(236),
  13049. },
  13050. 112: {
  13051. Fop: uint8(16),
  13052. Fbits: uint8(7),
  13053. Fval: uint16(9),
  13054. },
  13055. 113: {
  13056. Fbits: uint8(8),
  13057. Fval: uint16(94),
  13058. },
  13059. 114: {
  13060. Fbits: uint8(8),
  13061. Fval: uint16(30),
  13062. },
  13063. 115: {
  13064. Fbits: uint8(9),
  13065. Fval: uint16(156),
  13066. },
  13067. 116: {
  13068. Fop: uint8(20),
  13069. Fbits: uint8(7),
  13070. Fval: uint16(99),
  13071. },
  13072. 117: {
  13073. Fbits: uint8(8),
  13074. Fval: uint16(126),
  13075. },
  13076. 118: {
  13077. Fbits: uint8(8),
  13078. Fval: uint16(62),
  13079. },
  13080. 119: {
  13081. Fbits: uint8(9),
  13082. Fval: uint16(220),
  13083. },
  13084. 120: {
  13085. Fop: uint8(18),
  13086. Fbits: uint8(7),
  13087. Fval: uint16(27),
  13088. },
  13089. 121: {
  13090. Fbits: uint8(8),
  13091. Fval: uint16(110),
  13092. },
  13093. 122: {
  13094. Fbits: uint8(8),
  13095. Fval: uint16(46),
  13096. },
  13097. 123: {
  13098. Fbits: uint8(9),
  13099. Fval: uint16(188),
  13100. },
  13101. 124: {
  13102. Fbits: uint8(8),
  13103. Fval: uint16(14),
  13104. },
  13105. 125: {
  13106. Fbits: uint8(8),
  13107. Fval: uint16(142),
  13108. },
  13109. 126: {
  13110. Fbits: uint8(8),
  13111. Fval: uint16(78),
  13112. },
  13113. 127: {
  13114. Fbits: uint8(9),
  13115. Fval: uint16(252),
  13116. },
  13117. 128: {
  13118. Fop: uint8(96),
  13119. Fbits: uint8(7),
  13120. },
  13121. 129: {
  13122. Fbits: uint8(8),
  13123. Fval: uint16(81),
  13124. },
  13125. 130: {
  13126. Fbits: uint8(8),
  13127. Fval: uint16(17),
  13128. },
  13129. 131: {
  13130. Fop: uint8(21),
  13131. Fbits: uint8(8),
  13132. Fval: uint16(131),
  13133. },
  13134. 132: {
  13135. Fop: uint8(18),
  13136. Fbits: uint8(7),
  13137. Fval: uint16(31),
  13138. },
  13139. 133: {
  13140. Fbits: uint8(8),
  13141. Fval: uint16(113),
  13142. },
  13143. 134: {
  13144. Fbits: uint8(8),
  13145. Fval: uint16(49),
  13146. },
  13147. 135: {
  13148. Fbits: uint8(9),
  13149. Fval: uint16(194),
  13150. },
  13151. 136: {
  13152. Fop: uint8(16),
  13153. Fbits: uint8(7),
  13154. Fval: uint16(10),
  13155. },
  13156. 137: {
  13157. Fbits: uint8(8),
  13158. Fval: uint16(97),
  13159. },
  13160. 138: {
  13161. Fbits: uint8(8),
  13162. Fval: uint16(33),
  13163. },
  13164. 139: {
  13165. Fbits: uint8(9),
  13166. Fval: uint16(162),
  13167. },
  13168. 140: {
  13169. Fbits: uint8(8),
  13170. Fval: uint16(1),
  13171. },
  13172. 141: {
  13173. Fbits: uint8(8),
  13174. Fval: uint16(129),
  13175. },
  13176. 142: {
  13177. Fbits: uint8(8),
  13178. Fval: uint16(65),
  13179. },
  13180. 143: {
  13181. Fbits: uint8(9),
  13182. Fval: uint16(226),
  13183. },
  13184. 144: {
  13185. Fop: uint8(16),
  13186. Fbits: uint8(7),
  13187. Fval: uint16(6),
  13188. },
  13189. 145: {
  13190. Fbits: uint8(8),
  13191. Fval: uint16(89),
  13192. },
  13193. 146: {
  13194. Fbits: uint8(8),
  13195. Fval: uint16(25),
  13196. },
  13197. 147: {
  13198. Fbits: uint8(9),
  13199. Fval: uint16(146),
  13200. },
  13201. 148: {
  13202. Fop: uint8(19),
  13203. Fbits: uint8(7),
  13204. Fval: uint16(59),
  13205. },
  13206. 149: {
  13207. Fbits: uint8(8),
  13208. Fval: uint16(121),
  13209. },
  13210. 150: {
  13211. Fbits: uint8(8),
  13212. Fval: uint16(57),
  13213. },
  13214. 151: {
  13215. Fbits: uint8(9),
  13216. Fval: uint16(210),
  13217. },
  13218. 152: {
  13219. Fop: uint8(17),
  13220. Fbits: uint8(7),
  13221. Fval: uint16(17),
  13222. },
  13223. 153: {
  13224. Fbits: uint8(8),
  13225. Fval: uint16(105),
  13226. },
  13227. 154: {
  13228. Fbits: uint8(8),
  13229. Fval: uint16(41),
  13230. },
  13231. 155: {
  13232. Fbits: uint8(9),
  13233. Fval: uint16(178),
  13234. },
  13235. 156: {
  13236. Fbits: uint8(8),
  13237. Fval: uint16(9),
  13238. },
  13239. 157: {
  13240. Fbits: uint8(8),
  13241. Fval: uint16(137),
  13242. },
  13243. 158: {
  13244. Fbits: uint8(8),
  13245. Fval: uint16(73),
  13246. },
  13247. 159: {
  13248. Fbits: uint8(9),
  13249. Fval: uint16(242),
  13250. },
  13251. 160: {
  13252. Fop: uint8(16),
  13253. Fbits: uint8(7),
  13254. Fval: uint16(4),
  13255. },
  13256. 161: {
  13257. Fbits: uint8(8),
  13258. Fval: uint16(85),
  13259. },
  13260. 162: {
  13261. Fbits: uint8(8),
  13262. Fval: uint16(21),
  13263. },
  13264. 163: {
  13265. Fop: uint8(16),
  13266. Fbits: uint8(8),
  13267. Fval: uint16(258),
  13268. },
  13269. 164: {
  13270. Fop: uint8(19),
  13271. Fbits: uint8(7),
  13272. Fval: uint16(43),
  13273. },
  13274. 165: {
  13275. Fbits: uint8(8),
  13276. Fval: uint16(117),
  13277. },
  13278. 166: {
  13279. Fbits: uint8(8),
  13280. Fval: uint16(53),
  13281. },
  13282. 167: {
  13283. Fbits: uint8(9),
  13284. Fval: uint16(202),
  13285. },
  13286. 168: {
  13287. Fop: uint8(17),
  13288. Fbits: uint8(7),
  13289. Fval: uint16(13),
  13290. },
  13291. 169: {
  13292. Fbits: uint8(8),
  13293. Fval: uint16(101),
  13294. },
  13295. 170: {
  13296. Fbits: uint8(8),
  13297. Fval: uint16(37),
  13298. },
  13299. 171: {
  13300. Fbits: uint8(9),
  13301. Fval: uint16(170),
  13302. },
  13303. 172: {
  13304. Fbits: uint8(8),
  13305. Fval: uint16(5),
  13306. },
  13307. 173: {
  13308. Fbits: uint8(8),
  13309. Fval: uint16(133),
  13310. },
  13311. 174: {
  13312. Fbits: uint8(8),
  13313. Fval: uint16(69),
  13314. },
  13315. 175: {
  13316. Fbits: uint8(9),
  13317. Fval: uint16(234),
  13318. },
  13319. 176: {
  13320. Fop: uint8(16),
  13321. Fbits: uint8(7),
  13322. Fval: uint16(8),
  13323. },
  13324. 177: {
  13325. Fbits: uint8(8),
  13326. Fval: uint16(93),
  13327. },
  13328. 178: {
  13329. Fbits: uint8(8),
  13330. Fval: uint16(29),
  13331. },
  13332. 179: {
  13333. Fbits: uint8(9),
  13334. Fval: uint16(154),
  13335. },
  13336. 180: {
  13337. Fop: uint8(20),
  13338. Fbits: uint8(7),
  13339. Fval: uint16(83),
  13340. },
  13341. 181: {
  13342. Fbits: uint8(8),
  13343. Fval: uint16(125),
  13344. },
  13345. 182: {
  13346. Fbits: uint8(8),
  13347. Fval: uint16(61),
  13348. },
  13349. 183: {
  13350. Fbits: uint8(9),
  13351. Fval: uint16(218),
  13352. },
  13353. 184: {
  13354. Fop: uint8(18),
  13355. Fbits: uint8(7),
  13356. Fval: uint16(23),
  13357. },
  13358. 185: {
  13359. Fbits: uint8(8),
  13360. Fval: uint16(109),
  13361. },
  13362. 186: {
  13363. Fbits: uint8(8),
  13364. Fval: uint16(45),
  13365. },
  13366. 187: {
  13367. Fbits: uint8(9),
  13368. Fval: uint16(186),
  13369. },
  13370. 188: {
  13371. Fbits: uint8(8),
  13372. Fval: uint16(13),
  13373. },
  13374. 189: {
  13375. Fbits: uint8(8),
  13376. Fval: uint16(141),
  13377. },
  13378. 190: {
  13379. Fbits: uint8(8),
  13380. Fval: uint16(77),
  13381. },
  13382. 191: {
  13383. Fbits: uint8(9),
  13384. Fval: uint16(250),
  13385. },
  13386. 192: {
  13387. Fop: uint8(16),
  13388. Fbits: uint8(7),
  13389. Fval: uint16(3),
  13390. },
  13391. 193: {
  13392. Fbits: uint8(8),
  13393. Fval: uint16(83),
  13394. },
  13395. 194: {
  13396. Fbits: uint8(8),
  13397. Fval: uint16(19),
  13398. },
  13399. 195: {
  13400. Fop: uint8(21),
  13401. Fbits: uint8(8),
  13402. Fval: uint16(195),
  13403. },
  13404. 196: {
  13405. Fop: uint8(19),
  13406. Fbits: uint8(7),
  13407. Fval: uint16(35),
  13408. },
  13409. 197: {
  13410. Fbits: uint8(8),
  13411. Fval: uint16(115),
  13412. },
  13413. 198: {
  13414. Fbits: uint8(8),
  13415. Fval: uint16(51),
  13416. },
  13417. 199: {
  13418. Fbits: uint8(9),
  13419. Fval: uint16(198),
  13420. },
  13421. 200: {
  13422. Fop: uint8(17),
  13423. Fbits: uint8(7),
  13424. Fval: uint16(11),
  13425. },
  13426. 201: {
  13427. Fbits: uint8(8),
  13428. Fval: uint16(99),
  13429. },
  13430. 202: {
  13431. Fbits: uint8(8),
  13432. Fval: uint16(35),
  13433. },
  13434. 203: {
  13435. Fbits: uint8(9),
  13436. Fval: uint16(166),
  13437. },
  13438. 204: {
  13439. Fbits: uint8(8),
  13440. Fval: uint16(3),
  13441. },
  13442. 205: {
  13443. Fbits: uint8(8),
  13444. Fval: uint16(131),
  13445. },
  13446. 206: {
  13447. Fbits: uint8(8),
  13448. Fval: uint16(67),
  13449. },
  13450. 207: {
  13451. Fbits: uint8(9),
  13452. Fval: uint16(230),
  13453. },
  13454. 208: {
  13455. Fop: uint8(16),
  13456. Fbits: uint8(7),
  13457. Fval: uint16(7),
  13458. },
  13459. 209: {
  13460. Fbits: uint8(8),
  13461. Fval: uint16(91),
  13462. },
  13463. 210: {
  13464. Fbits: uint8(8),
  13465. Fval: uint16(27),
  13466. },
  13467. 211: {
  13468. Fbits: uint8(9),
  13469. Fval: uint16(150),
  13470. },
  13471. 212: {
  13472. Fop: uint8(20),
  13473. Fbits: uint8(7),
  13474. Fval: uint16(67),
  13475. },
  13476. 213: {
  13477. Fbits: uint8(8),
  13478. Fval: uint16(123),
  13479. },
  13480. 214: {
  13481. Fbits: uint8(8),
  13482. Fval: uint16(59),
  13483. },
  13484. 215: {
  13485. Fbits: uint8(9),
  13486. Fval: uint16(214),
  13487. },
  13488. 216: {
  13489. Fop: uint8(18),
  13490. Fbits: uint8(7),
  13491. Fval: uint16(19),
  13492. },
  13493. 217: {
  13494. Fbits: uint8(8),
  13495. Fval: uint16(107),
  13496. },
  13497. 218: {
  13498. Fbits: uint8(8),
  13499. Fval: uint16(43),
  13500. },
  13501. 219: {
  13502. Fbits: uint8(9),
  13503. Fval: uint16(182),
  13504. },
  13505. 220: {
  13506. Fbits: uint8(8),
  13507. Fval: uint16(11),
  13508. },
  13509. 221: {
  13510. Fbits: uint8(8),
  13511. Fval: uint16(139),
  13512. },
  13513. 222: {
  13514. Fbits: uint8(8),
  13515. Fval: uint16(75),
  13516. },
  13517. 223: {
  13518. Fbits: uint8(9),
  13519. Fval: uint16(246),
  13520. },
  13521. 224: {
  13522. Fop: uint8(16),
  13523. Fbits: uint8(7),
  13524. Fval: uint16(5),
  13525. },
  13526. 225: {
  13527. Fbits: uint8(8),
  13528. Fval: uint16(87),
  13529. },
  13530. 226: {
  13531. Fbits: uint8(8),
  13532. Fval: uint16(23),
  13533. },
  13534. 227: {
  13535. Fop: uint8(64),
  13536. Fbits: uint8(8),
  13537. },
  13538. 228: {
  13539. Fop: uint8(19),
  13540. Fbits: uint8(7),
  13541. Fval: uint16(51),
  13542. },
  13543. 229: {
  13544. Fbits: uint8(8),
  13545. Fval: uint16(119),
  13546. },
  13547. 230: {
  13548. Fbits: uint8(8),
  13549. Fval: uint16(55),
  13550. },
  13551. 231: {
  13552. Fbits: uint8(9),
  13553. Fval: uint16(206),
  13554. },
  13555. 232: {
  13556. Fop: uint8(17),
  13557. Fbits: uint8(7),
  13558. Fval: uint16(15),
  13559. },
  13560. 233: {
  13561. Fbits: uint8(8),
  13562. Fval: uint16(103),
  13563. },
  13564. 234: {
  13565. Fbits: uint8(8),
  13566. Fval: uint16(39),
  13567. },
  13568. 235: {
  13569. Fbits: uint8(9),
  13570. Fval: uint16(174),
  13571. },
  13572. 236: {
  13573. Fbits: uint8(8),
  13574. Fval: uint16(7),
  13575. },
  13576. 237: {
  13577. Fbits: uint8(8),
  13578. Fval: uint16(135),
  13579. },
  13580. 238: {
  13581. Fbits: uint8(8),
  13582. Fval: uint16(71),
  13583. },
  13584. 239: {
  13585. Fbits: uint8(9),
  13586. Fval: uint16(238),
  13587. },
  13588. 240: {
  13589. Fop: uint8(16),
  13590. Fbits: uint8(7),
  13591. Fval: uint16(9),
  13592. },
  13593. 241: {
  13594. Fbits: uint8(8),
  13595. Fval: uint16(95),
  13596. },
  13597. 242: {
  13598. Fbits: uint8(8),
  13599. Fval: uint16(31),
  13600. },
  13601. 243: {
  13602. Fbits: uint8(9),
  13603. Fval: uint16(158),
  13604. },
  13605. 244: {
  13606. Fop: uint8(20),
  13607. Fbits: uint8(7),
  13608. Fval: uint16(99),
  13609. },
  13610. 245: {
  13611. Fbits: uint8(8),
  13612. Fval: uint16(127),
  13613. },
  13614. 246: {
  13615. Fbits: uint8(8),
  13616. Fval: uint16(63),
  13617. },
  13618. 247: {
  13619. Fbits: uint8(9),
  13620. Fval: uint16(222),
  13621. },
  13622. 248: {
  13623. Fop: uint8(18),
  13624. Fbits: uint8(7),
  13625. Fval: uint16(27),
  13626. },
  13627. 249: {
  13628. Fbits: uint8(8),
  13629. Fval: uint16(111),
  13630. },
  13631. 250: {
  13632. Fbits: uint8(8),
  13633. Fval: uint16(47),
  13634. },
  13635. 251: {
  13636. Fbits: uint8(9),
  13637. Fval: uint16(190),
  13638. },
  13639. 252: {
  13640. Fbits: uint8(8),
  13641. Fval: uint16(15),
  13642. },
  13643. 253: {
  13644. Fbits: uint8(8),
  13645. Fval: uint16(143),
  13646. },
  13647. 254: {
  13648. Fbits: uint8(8),
  13649. Fval: uint16(79),
  13650. },
  13651. 255: {
  13652. Fbits: uint8(9),
  13653. Fval: uint16(254),
  13654. },
  13655. 256: {
  13656. Fop: uint8(96),
  13657. Fbits: uint8(7),
  13658. },
  13659. 257: {
  13660. Fbits: uint8(8),
  13661. Fval: uint16(80),
  13662. },
  13663. 258: {
  13664. Fbits: uint8(8),
  13665. Fval: uint16(16),
  13666. },
  13667. 259: {
  13668. Fop: uint8(20),
  13669. Fbits: uint8(8),
  13670. Fval: uint16(115),
  13671. },
  13672. 260: {
  13673. Fop: uint8(18),
  13674. Fbits: uint8(7),
  13675. Fval: uint16(31),
  13676. },
  13677. 261: {
  13678. Fbits: uint8(8),
  13679. Fval: uint16(112),
  13680. },
  13681. 262: {
  13682. Fbits: uint8(8),
  13683. Fval: uint16(48),
  13684. },
  13685. 263: {
  13686. Fbits: uint8(9),
  13687. Fval: uint16(193),
  13688. },
  13689. 264: {
  13690. Fop: uint8(16),
  13691. Fbits: uint8(7),
  13692. Fval: uint16(10),
  13693. },
  13694. 265: {
  13695. Fbits: uint8(8),
  13696. Fval: uint16(96),
  13697. },
  13698. 266: {
  13699. Fbits: uint8(8),
  13700. Fval: uint16(32),
  13701. },
  13702. 267: {
  13703. Fbits: uint8(9),
  13704. Fval: uint16(161),
  13705. },
  13706. 268: {
  13707. Fbits: uint8(8),
  13708. },
  13709. 269: {
  13710. Fbits: uint8(8),
  13711. Fval: uint16(128),
  13712. },
  13713. 270: {
  13714. Fbits: uint8(8),
  13715. Fval: uint16(64),
  13716. },
  13717. 271: {
  13718. Fbits: uint8(9),
  13719. Fval: uint16(225),
  13720. },
  13721. 272: {
  13722. Fop: uint8(16),
  13723. Fbits: uint8(7),
  13724. Fval: uint16(6),
  13725. },
  13726. 273: {
  13727. Fbits: uint8(8),
  13728. Fval: uint16(88),
  13729. },
  13730. 274: {
  13731. Fbits: uint8(8),
  13732. Fval: uint16(24),
  13733. },
  13734. 275: {
  13735. Fbits: uint8(9),
  13736. Fval: uint16(145),
  13737. },
  13738. 276: {
  13739. Fop: uint8(19),
  13740. Fbits: uint8(7),
  13741. Fval: uint16(59),
  13742. },
  13743. 277: {
  13744. Fbits: uint8(8),
  13745. Fval: uint16(120),
  13746. },
  13747. 278: {
  13748. Fbits: uint8(8),
  13749. Fval: uint16(56),
  13750. },
  13751. 279: {
  13752. Fbits: uint8(9),
  13753. Fval: uint16(209),
  13754. },
  13755. 280: {
  13756. Fop: uint8(17),
  13757. Fbits: uint8(7),
  13758. Fval: uint16(17),
  13759. },
  13760. 281: {
  13761. Fbits: uint8(8),
  13762. Fval: uint16(104),
  13763. },
  13764. 282: {
  13765. Fbits: uint8(8),
  13766. Fval: uint16(40),
  13767. },
  13768. 283: {
  13769. Fbits: uint8(9),
  13770. Fval: uint16(177),
  13771. },
  13772. 284: {
  13773. Fbits: uint8(8),
  13774. Fval: uint16(8),
  13775. },
  13776. 285: {
  13777. Fbits: uint8(8),
  13778. Fval: uint16(136),
  13779. },
  13780. 286: {
  13781. Fbits: uint8(8),
  13782. Fval: uint16(72),
  13783. },
  13784. 287: {
  13785. Fbits: uint8(9),
  13786. Fval: uint16(241),
  13787. },
  13788. 288: {
  13789. Fop: uint8(16),
  13790. Fbits: uint8(7),
  13791. Fval: uint16(4),
  13792. },
  13793. 289: {
  13794. Fbits: uint8(8),
  13795. Fval: uint16(84),
  13796. },
  13797. 290: {
  13798. Fbits: uint8(8),
  13799. Fval: uint16(20),
  13800. },
  13801. 291: {
  13802. Fop: uint8(21),
  13803. Fbits: uint8(8),
  13804. Fval: uint16(227),
  13805. },
  13806. 292: {
  13807. Fop: uint8(19),
  13808. Fbits: uint8(7),
  13809. Fval: uint16(43),
  13810. },
  13811. 293: {
  13812. Fbits: uint8(8),
  13813. Fval: uint16(116),
  13814. },
  13815. 294: {
  13816. Fbits: uint8(8),
  13817. Fval: uint16(52),
  13818. },
  13819. 295: {
  13820. Fbits: uint8(9),
  13821. Fval: uint16(201),
  13822. },
  13823. 296: {
  13824. Fop: uint8(17),
  13825. Fbits: uint8(7),
  13826. Fval: uint16(13),
  13827. },
  13828. 297: {
  13829. Fbits: uint8(8),
  13830. Fval: uint16(100),
  13831. },
  13832. 298: {
  13833. Fbits: uint8(8),
  13834. Fval: uint16(36),
  13835. },
  13836. 299: {
  13837. Fbits: uint8(9),
  13838. Fval: uint16(169),
  13839. },
  13840. 300: {
  13841. Fbits: uint8(8),
  13842. Fval: uint16(4),
  13843. },
  13844. 301: {
  13845. Fbits: uint8(8),
  13846. Fval: uint16(132),
  13847. },
  13848. 302: {
  13849. Fbits: uint8(8),
  13850. Fval: uint16(68),
  13851. },
  13852. 303: {
  13853. Fbits: uint8(9),
  13854. Fval: uint16(233),
  13855. },
  13856. 304: {
  13857. Fop: uint8(16),
  13858. Fbits: uint8(7),
  13859. Fval: uint16(8),
  13860. },
  13861. 305: {
  13862. Fbits: uint8(8),
  13863. Fval: uint16(92),
  13864. },
  13865. 306: {
  13866. Fbits: uint8(8),
  13867. Fval: uint16(28),
  13868. },
  13869. 307: {
  13870. Fbits: uint8(9),
  13871. Fval: uint16(153),
  13872. },
  13873. 308: {
  13874. Fop: uint8(20),
  13875. Fbits: uint8(7),
  13876. Fval: uint16(83),
  13877. },
  13878. 309: {
  13879. Fbits: uint8(8),
  13880. Fval: uint16(124),
  13881. },
  13882. 310: {
  13883. Fbits: uint8(8),
  13884. Fval: uint16(60),
  13885. },
  13886. 311: {
  13887. Fbits: uint8(9),
  13888. Fval: uint16(217),
  13889. },
  13890. 312: {
  13891. Fop: uint8(18),
  13892. Fbits: uint8(7),
  13893. Fval: uint16(23),
  13894. },
  13895. 313: {
  13896. Fbits: uint8(8),
  13897. Fval: uint16(108),
  13898. },
  13899. 314: {
  13900. Fbits: uint8(8),
  13901. Fval: uint16(44),
  13902. },
  13903. 315: {
  13904. Fbits: uint8(9),
  13905. Fval: uint16(185),
  13906. },
  13907. 316: {
  13908. Fbits: uint8(8),
  13909. Fval: uint16(12),
  13910. },
  13911. 317: {
  13912. Fbits: uint8(8),
  13913. Fval: uint16(140),
  13914. },
  13915. 318: {
  13916. Fbits: uint8(8),
  13917. Fval: uint16(76),
  13918. },
  13919. 319: {
  13920. Fbits: uint8(9),
  13921. Fval: uint16(249),
  13922. },
  13923. 320: {
  13924. Fop: uint8(16),
  13925. Fbits: uint8(7),
  13926. Fval: uint16(3),
  13927. },
  13928. 321: {
  13929. Fbits: uint8(8),
  13930. Fval: uint16(82),
  13931. },
  13932. 322: {
  13933. Fbits: uint8(8),
  13934. Fval: uint16(18),
  13935. },
  13936. 323: {
  13937. Fop: uint8(21),
  13938. Fbits: uint8(8),
  13939. Fval: uint16(163),
  13940. },
  13941. 324: {
  13942. Fop: uint8(19),
  13943. Fbits: uint8(7),
  13944. Fval: uint16(35),
  13945. },
  13946. 325: {
  13947. Fbits: uint8(8),
  13948. Fval: uint16(114),
  13949. },
  13950. 326: {
  13951. Fbits: uint8(8),
  13952. Fval: uint16(50),
  13953. },
  13954. 327: {
  13955. Fbits: uint8(9),
  13956. Fval: uint16(197),
  13957. },
  13958. 328: {
  13959. Fop: uint8(17),
  13960. Fbits: uint8(7),
  13961. Fval: uint16(11),
  13962. },
  13963. 329: {
  13964. Fbits: uint8(8),
  13965. Fval: uint16(98),
  13966. },
  13967. 330: {
  13968. Fbits: uint8(8),
  13969. Fval: uint16(34),
  13970. },
  13971. 331: {
  13972. Fbits: uint8(9),
  13973. Fval: uint16(165),
  13974. },
  13975. 332: {
  13976. Fbits: uint8(8),
  13977. Fval: uint16(2),
  13978. },
  13979. 333: {
  13980. Fbits: uint8(8),
  13981. Fval: uint16(130),
  13982. },
  13983. 334: {
  13984. Fbits: uint8(8),
  13985. Fval: uint16(66),
  13986. },
  13987. 335: {
  13988. Fbits: uint8(9),
  13989. Fval: uint16(229),
  13990. },
  13991. 336: {
  13992. Fop: uint8(16),
  13993. Fbits: uint8(7),
  13994. Fval: uint16(7),
  13995. },
  13996. 337: {
  13997. Fbits: uint8(8),
  13998. Fval: uint16(90),
  13999. },
  14000. 338: {
  14001. Fbits: uint8(8),
  14002. Fval: uint16(26),
  14003. },
  14004. 339: {
  14005. Fbits: uint8(9),
  14006. Fval: uint16(149),
  14007. },
  14008. 340: {
  14009. Fop: uint8(20),
  14010. Fbits: uint8(7),
  14011. Fval: uint16(67),
  14012. },
  14013. 341: {
  14014. Fbits: uint8(8),
  14015. Fval: uint16(122),
  14016. },
  14017. 342: {
  14018. Fbits: uint8(8),
  14019. Fval: uint16(58),
  14020. },
  14021. 343: {
  14022. Fbits: uint8(9),
  14023. Fval: uint16(213),
  14024. },
  14025. 344: {
  14026. Fop: uint8(18),
  14027. Fbits: uint8(7),
  14028. Fval: uint16(19),
  14029. },
  14030. 345: {
  14031. Fbits: uint8(8),
  14032. Fval: uint16(106),
  14033. },
  14034. 346: {
  14035. Fbits: uint8(8),
  14036. Fval: uint16(42),
  14037. },
  14038. 347: {
  14039. Fbits: uint8(9),
  14040. Fval: uint16(181),
  14041. },
  14042. 348: {
  14043. Fbits: uint8(8),
  14044. Fval: uint16(10),
  14045. },
  14046. 349: {
  14047. Fbits: uint8(8),
  14048. Fval: uint16(138),
  14049. },
  14050. 350: {
  14051. Fbits: uint8(8),
  14052. Fval: uint16(74),
  14053. },
  14054. 351: {
  14055. Fbits: uint8(9),
  14056. Fval: uint16(245),
  14057. },
  14058. 352: {
  14059. Fop: uint8(16),
  14060. Fbits: uint8(7),
  14061. Fval: uint16(5),
  14062. },
  14063. 353: {
  14064. Fbits: uint8(8),
  14065. Fval: uint16(86),
  14066. },
  14067. 354: {
  14068. Fbits: uint8(8),
  14069. Fval: uint16(22),
  14070. },
  14071. 355: {
  14072. Fop: uint8(64),
  14073. Fbits: uint8(8),
  14074. },
  14075. 356: {
  14076. Fop: uint8(19),
  14077. Fbits: uint8(7),
  14078. Fval: uint16(51),
  14079. },
  14080. 357: {
  14081. Fbits: uint8(8),
  14082. Fval: uint16(118),
  14083. },
  14084. 358: {
  14085. Fbits: uint8(8),
  14086. Fval: uint16(54),
  14087. },
  14088. 359: {
  14089. Fbits: uint8(9),
  14090. Fval: uint16(205),
  14091. },
  14092. 360: {
  14093. Fop: uint8(17),
  14094. Fbits: uint8(7),
  14095. Fval: uint16(15),
  14096. },
  14097. 361: {
  14098. Fbits: uint8(8),
  14099. Fval: uint16(102),
  14100. },
  14101. 362: {
  14102. Fbits: uint8(8),
  14103. Fval: uint16(38),
  14104. },
  14105. 363: {
  14106. Fbits: uint8(9),
  14107. Fval: uint16(173),
  14108. },
  14109. 364: {
  14110. Fbits: uint8(8),
  14111. Fval: uint16(6),
  14112. },
  14113. 365: {
  14114. Fbits: uint8(8),
  14115. Fval: uint16(134),
  14116. },
  14117. 366: {
  14118. Fbits: uint8(8),
  14119. Fval: uint16(70),
  14120. },
  14121. 367: {
  14122. Fbits: uint8(9),
  14123. Fval: uint16(237),
  14124. },
  14125. 368: {
  14126. Fop: uint8(16),
  14127. Fbits: uint8(7),
  14128. Fval: uint16(9),
  14129. },
  14130. 369: {
  14131. Fbits: uint8(8),
  14132. Fval: uint16(94),
  14133. },
  14134. 370: {
  14135. Fbits: uint8(8),
  14136. Fval: uint16(30),
  14137. },
  14138. 371: {
  14139. Fbits: uint8(9),
  14140. Fval: uint16(157),
  14141. },
  14142. 372: {
  14143. Fop: uint8(20),
  14144. Fbits: uint8(7),
  14145. Fval: uint16(99),
  14146. },
  14147. 373: {
  14148. Fbits: uint8(8),
  14149. Fval: uint16(126),
  14150. },
  14151. 374: {
  14152. Fbits: uint8(8),
  14153. Fval: uint16(62),
  14154. },
  14155. 375: {
  14156. Fbits: uint8(9),
  14157. Fval: uint16(221),
  14158. },
  14159. 376: {
  14160. Fop: uint8(18),
  14161. Fbits: uint8(7),
  14162. Fval: uint16(27),
  14163. },
  14164. 377: {
  14165. Fbits: uint8(8),
  14166. Fval: uint16(110),
  14167. },
  14168. 378: {
  14169. Fbits: uint8(8),
  14170. Fval: uint16(46),
  14171. },
  14172. 379: {
  14173. Fbits: uint8(9),
  14174. Fval: uint16(189),
  14175. },
  14176. 380: {
  14177. Fbits: uint8(8),
  14178. Fval: uint16(14),
  14179. },
  14180. 381: {
  14181. Fbits: uint8(8),
  14182. Fval: uint16(142),
  14183. },
  14184. 382: {
  14185. Fbits: uint8(8),
  14186. Fval: uint16(78),
  14187. },
  14188. 383: {
  14189. Fbits: uint8(9),
  14190. Fval: uint16(253),
  14191. },
  14192. 384: {
  14193. Fop: uint8(96),
  14194. Fbits: uint8(7),
  14195. },
  14196. 385: {
  14197. Fbits: uint8(8),
  14198. Fval: uint16(81),
  14199. },
  14200. 386: {
  14201. Fbits: uint8(8),
  14202. Fval: uint16(17),
  14203. },
  14204. 387: {
  14205. Fop: uint8(21),
  14206. Fbits: uint8(8),
  14207. Fval: uint16(131),
  14208. },
  14209. 388: {
  14210. Fop: uint8(18),
  14211. Fbits: uint8(7),
  14212. Fval: uint16(31),
  14213. },
  14214. 389: {
  14215. Fbits: uint8(8),
  14216. Fval: uint16(113),
  14217. },
  14218. 390: {
  14219. Fbits: uint8(8),
  14220. Fval: uint16(49),
  14221. },
  14222. 391: {
  14223. Fbits: uint8(9),
  14224. Fval: uint16(195),
  14225. },
  14226. 392: {
  14227. Fop: uint8(16),
  14228. Fbits: uint8(7),
  14229. Fval: uint16(10),
  14230. },
  14231. 393: {
  14232. Fbits: uint8(8),
  14233. Fval: uint16(97),
  14234. },
  14235. 394: {
  14236. Fbits: uint8(8),
  14237. Fval: uint16(33),
  14238. },
  14239. 395: {
  14240. Fbits: uint8(9),
  14241. Fval: uint16(163),
  14242. },
  14243. 396: {
  14244. Fbits: uint8(8),
  14245. Fval: uint16(1),
  14246. },
  14247. 397: {
  14248. Fbits: uint8(8),
  14249. Fval: uint16(129),
  14250. },
  14251. 398: {
  14252. Fbits: uint8(8),
  14253. Fval: uint16(65),
  14254. },
  14255. 399: {
  14256. Fbits: uint8(9),
  14257. Fval: uint16(227),
  14258. },
  14259. 400: {
  14260. Fop: uint8(16),
  14261. Fbits: uint8(7),
  14262. Fval: uint16(6),
  14263. },
  14264. 401: {
  14265. Fbits: uint8(8),
  14266. Fval: uint16(89),
  14267. },
  14268. 402: {
  14269. Fbits: uint8(8),
  14270. Fval: uint16(25),
  14271. },
  14272. 403: {
  14273. Fbits: uint8(9),
  14274. Fval: uint16(147),
  14275. },
  14276. 404: {
  14277. Fop: uint8(19),
  14278. Fbits: uint8(7),
  14279. Fval: uint16(59),
  14280. },
  14281. 405: {
  14282. Fbits: uint8(8),
  14283. Fval: uint16(121),
  14284. },
  14285. 406: {
  14286. Fbits: uint8(8),
  14287. Fval: uint16(57),
  14288. },
  14289. 407: {
  14290. Fbits: uint8(9),
  14291. Fval: uint16(211),
  14292. },
  14293. 408: {
  14294. Fop: uint8(17),
  14295. Fbits: uint8(7),
  14296. Fval: uint16(17),
  14297. },
  14298. 409: {
  14299. Fbits: uint8(8),
  14300. Fval: uint16(105),
  14301. },
  14302. 410: {
  14303. Fbits: uint8(8),
  14304. Fval: uint16(41),
  14305. },
  14306. 411: {
  14307. Fbits: uint8(9),
  14308. Fval: uint16(179),
  14309. },
  14310. 412: {
  14311. Fbits: uint8(8),
  14312. Fval: uint16(9),
  14313. },
  14314. 413: {
  14315. Fbits: uint8(8),
  14316. Fval: uint16(137),
  14317. },
  14318. 414: {
  14319. Fbits: uint8(8),
  14320. Fval: uint16(73),
  14321. },
  14322. 415: {
  14323. Fbits: uint8(9),
  14324. Fval: uint16(243),
  14325. },
  14326. 416: {
  14327. Fop: uint8(16),
  14328. Fbits: uint8(7),
  14329. Fval: uint16(4),
  14330. },
  14331. 417: {
  14332. Fbits: uint8(8),
  14333. Fval: uint16(85),
  14334. },
  14335. 418: {
  14336. Fbits: uint8(8),
  14337. Fval: uint16(21),
  14338. },
  14339. 419: {
  14340. Fop: uint8(16),
  14341. Fbits: uint8(8),
  14342. Fval: uint16(258),
  14343. },
  14344. 420: {
  14345. Fop: uint8(19),
  14346. Fbits: uint8(7),
  14347. Fval: uint16(43),
  14348. },
  14349. 421: {
  14350. Fbits: uint8(8),
  14351. Fval: uint16(117),
  14352. },
  14353. 422: {
  14354. Fbits: uint8(8),
  14355. Fval: uint16(53),
  14356. },
  14357. 423: {
  14358. Fbits: uint8(9),
  14359. Fval: uint16(203),
  14360. },
  14361. 424: {
  14362. Fop: uint8(17),
  14363. Fbits: uint8(7),
  14364. Fval: uint16(13),
  14365. },
  14366. 425: {
  14367. Fbits: uint8(8),
  14368. Fval: uint16(101),
  14369. },
  14370. 426: {
  14371. Fbits: uint8(8),
  14372. Fval: uint16(37),
  14373. },
  14374. 427: {
  14375. Fbits: uint8(9),
  14376. Fval: uint16(171),
  14377. },
  14378. 428: {
  14379. Fbits: uint8(8),
  14380. Fval: uint16(5),
  14381. },
  14382. 429: {
  14383. Fbits: uint8(8),
  14384. Fval: uint16(133),
  14385. },
  14386. 430: {
  14387. Fbits: uint8(8),
  14388. Fval: uint16(69),
  14389. },
  14390. 431: {
  14391. Fbits: uint8(9),
  14392. Fval: uint16(235),
  14393. },
  14394. 432: {
  14395. Fop: uint8(16),
  14396. Fbits: uint8(7),
  14397. Fval: uint16(8),
  14398. },
  14399. 433: {
  14400. Fbits: uint8(8),
  14401. Fval: uint16(93),
  14402. },
  14403. 434: {
  14404. Fbits: uint8(8),
  14405. Fval: uint16(29),
  14406. },
  14407. 435: {
  14408. Fbits: uint8(9),
  14409. Fval: uint16(155),
  14410. },
  14411. 436: {
  14412. Fop: uint8(20),
  14413. Fbits: uint8(7),
  14414. Fval: uint16(83),
  14415. },
  14416. 437: {
  14417. Fbits: uint8(8),
  14418. Fval: uint16(125),
  14419. },
  14420. 438: {
  14421. Fbits: uint8(8),
  14422. Fval: uint16(61),
  14423. },
  14424. 439: {
  14425. Fbits: uint8(9),
  14426. Fval: uint16(219),
  14427. },
  14428. 440: {
  14429. Fop: uint8(18),
  14430. Fbits: uint8(7),
  14431. Fval: uint16(23),
  14432. },
  14433. 441: {
  14434. Fbits: uint8(8),
  14435. Fval: uint16(109),
  14436. },
  14437. 442: {
  14438. Fbits: uint8(8),
  14439. Fval: uint16(45),
  14440. },
  14441. 443: {
  14442. Fbits: uint8(9),
  14443. Fval: uint16(187),
  14444. },
  14445. 444: {
  14446. Fbits: uint8(8),
  14447. Fval: uint16(13),
  14448. },
  14449. 445: {
  14450. Fbits: uint8(8),
  14451. Fval: uint16(141),
  14452. },
  14453. 446: {
  14454. Fbits: uint8(8),
  14455. Fval: uint16(77),
  14456. },
  14457. 447: {
  14458. Fbits: uint8(9),
  14459. Fval: uint16(251),
  14460. },
  14461. 448: {
  14462. Fop: uint8(16),
  14463. Fbits: uint8(7),
  14464. Fval: uint16(3),
  14465. },
  14466. 449: {
  14467. Fbits: uint8(8),
  14468. Fval: uint16(83),
  14469. },
  14470. 450: {
  14471. Fbits: uint8(8),
  14472. Fval: uint16(19),
  14473. },
  14474. 451: {
  14475. Fop: uint8(21),
  14476. Fbits: uint8(8),
  14477. Fval: uint16(195),
  14478. },
  14479. 452: {
  14480. Fop: uint8(19),
  14481. Fbits: uint8(7),
  14482. Fval: uint16(35),
  14483. },
  14484. 453: {
  14485. Fbits: uint8(8),
  14486. Fval: uint16(115),
  14487. },
  14488. 454: {
  14489. Fbits: uint8(8),
  14490. Fval: uint16(51),
  14491. },
  14492. 455: {
  14493. Fbits: uint8(9),
  14494. Fval: uint16(199),
  14495. },
  14496. 456: {
  14497. Fop: uint8(17),
  14498. Fbits: uint8(7),
  14499. Fval: uint16(11),
  14500. },
  14501. 457: {
  14502. Fbits: uint8(8),
  14503. Fval: uint16(99),
  14504. },
  14505. 458: {
  14506. Fbits: uint8(8),
  14507. Fval: uint16(35),
  14508. },
  14509. 459: {
  14510. Fbits: uint8(9),
  14511. Fval: uint16(167),
  14512. },
  14513. 460: {
  14514. Fbits: uint8(8),
  14515. Fval: uint16(3),
  14516. },
  14517. 461: {
  14518. Fbits: uint8(8),
  14519. Fval: uint16(131),
  14520. },
  14521. 462: {
  14522. Fbits: uint8(8),
  14523. Fval: uint16(67),
  14524. },
  14525. 463: {
  14526. Fbits: uint8(9),
  14527. Fval: uint16(231),
  14528. },
  14529. 464: {
  14530. Fop: uint8(16),
  14531. Fbits: uint8(7),
  14532. Fval: uint16(7),
  14533. },
  14534. 465: {
  14535. Fbits: uint8(8),
  14536. Fval: uint16(91),
  14537. },
  14538. 466: {
  14539. Fbits: uint8(8),
  14540. Fval: uint16(27),
  14541. },
  14542. 467: {
  14543. Fbits: uint8(9),
  14544. Fval: uint16(151),
  14545. },
  14546. 468: {
  14547. Fop: uint8(20),
  14548. Fbits: uint8(7),
  14549. Fval: uint16(67),
  14550. },
  14551. 469: {
  14552. Fbits: uint8(8),
  14553. Fval: uint16(123),
  14554. },
  14555. 470: {
  14556. Fbits: uint8(8),
  14557. Fval: uint16(59),
  14558. },
  14559. 471: {
  14560. Fbits: uint8(9),
  14561. Fval: uint16(215),
  14562. },
  14563. 472: {
  14564. Fop: uint8(18),
  14565. Fbits: uint8(7),
  14566. Fval: uint16(19),
  14567. },
  14568. 473: {
  14569. Fbits: uint8(8),
  14570. Fval: uint16(107),
  14571. },
  14572. 474: {
  14573. Fbits: uint8(8),
  14574. Fval: uint16(43),
  14575. },
  14576. 475: {
  14577. Fbits: uint8(9),
  14578. Fval: uint16(183),
  14579. },
  14580. 476: {
  14581. Fbits: uint8(8),
  14582. Fval: uint16(11),
  14583. },
  14584. 477: {
  14585. Fbits: uint8(8),
  14586. Fval: uint16(139),
  14587. },
  14588. 478: {
  14589. Fbits: uint8(8),
  14590. Fval: uint16(75),
  14591. },
  14592. 479: {
  14593. Fbits: uint8(9),
  14594. Fval: uint16(247),
  14595. },
  14596. 480: {
  14597. Fop: uint8(16),
  14598. Fbits: uint8(7),
  14599. Fval: uint16(5),
  14600. },
  14601. 481: {
  14602. Fbits: uint8(8),
  14603. Fval: uint16(87),
  14604. },
  14605. 482: {
  14606. Fbits: uint8(8),
  14607. Fval: uint16(23),
  14608. },
  14609. 483: {
  14610. Fop: uint8(64),
  14611. Fbits: uint8(8),
  14612. },
  14613. 484: {
  14614. Fop: uint8(19),
  14615. Fbits: uint8(7),
  14616. Fval: uint16(51),
  14617. },
  14618. 485: {
  14619. Fbits: uint8(8),
  14620. Fval: uint16(119),
  14621. },
  14622. 486: {
  14623. Fbits: uint8(8),
  14624. Fval: uint16(55),
  14625. },
  14626. 487: {
  14627. Fbits: uint8(9),
  14628. Fval: uint16(207),
  14629. },
  14630. 488: {
  14631. Fop: uint8(17),
  14632. Fbits: uint8(7),
  14633. Fval: uint16(15),
  14634. },
  14635. 489: {
  14636. Fbits: uint8(8),
  14637. Fval: uint16(103),
  14638. },
  14639. 490: {
  14640. Fbits: uint8(8),
  14641. Fval: uint16(39),
  14642. },
  14643. 491: {
  14644. Fbits: uint8(9),
  14645. Fval: uint16(175),
  14646. },
  14647. 492: {
  14648. Fbits: uint8(8),
  14649. Fval: uint16(7),
  14650. },
  14651. 493: {
  14652. Fbits: uint8(8),
  14653. Fval: uint16(135),
  14654. },
  14655. 494: {
  14656. Fbits: uint8(8),
  14657. Fval: uint16(71),
  14658. },
  14659. 495: {
  14660. Fbits: uint8(9),
  14661. Fval: uint16(239),
  14662. },
  14663. 496: {
  14664. Fop: uint8(16),
  14665. Fbits: uint8(7),
  14666. Fval: uint16(9),
  14667. },
  14668. 497: {
  14669. Fbits: uint8(8),
  14670. Fval: uint16(95),
  14671. },
  14672. 498: {
  14673. Fbits: uint8(8),
  14674. Fval: uint16(31),
  14675. },
  14676. 499: {
  14677. Fbits: uint8(9),
  14678. Fval: uint16(159),
  14679. },
  14680. 500: {
  14681. Fop: uint8(20),
  14682. Fbits: uint8(7),
  14683. Fval: uint16(99),
  14684. },
  14685. 501: {
  14686. Fbits: uint8(8),
  14687. Fval: uint16(127),
  14688. },
  14689. 502: {
  14690. Fbits: uint8(8),
  14691. Fval: uint16(63),
  14692. },
  14693. 503: {
  14694. Fbits: uint8(9),
  14695. Fval: uint16(223),
  14696. },
  14697. 504: {
  14698. Fop: uint8(18),
  14699. Fbits: uint8(7),
  14700. Fval: uint16(27),
  14701. },
  14702. 505: {
  14703. Fbits: uint8(8),
  14704. Fval: uint16(111),
  14705. },
  14706. 506: {
  14707. Fbits: uint8(8),
  14708. Fval: uint16(47),
  14709. },
  14710. 507: {
  14711. Fbits: uint8(9),
  14712. Fval: uint16(191),
  14713. },
  14714. 508: {
  14715. Fbits: uint8(8),
  14716. Fval: uint16(15),
  14717. },
  14718. 509: {
  14719. Fbits: uint8(8),
  14720. Fval: uint16(143),
  14721. },
  14722. 510: {
  14723. Fbits: uint8(8),
  14724. Fval: uint16(79),
  14725. },
  14726. 511: {
  14727. Fbits: uint8(9),
  14728. Fval: uint16(255),
  14729. },
  14730. }
  14731. var _distfix1 = [32]Tcode{
  14732. 0: {
  14733. Fop: uint8(16),
  14734. Fbits: uint8(5),
  14735. Fval: uint16(1),
  14736. },
  14737. 1: {
  14738. Fop: uint8(23),
  14739. Fbits: uint8(5),
  14740. Fval: uint16(257),
  14741. },
  14742. 2: {
  14743. Fop: uint8(19),
  14744. Fbits: uint8(5),
  14745. Fval: uint16(17),
  14746. },
  14747. 3: {
  14748. Fop: uint8(27),
  14749. Fbits: uint8(5),
  14750. Fval: uint16(4097),
  14751. },
  14752. 4: {
  14753. Fop: uint8(17),
  14754. Fbits: uint8(5),
  14755. Fval: uint16(5),
  14756. },
  14757. 5: {
  14758. Fop: uint8(25),
  14759. Fbits: uint8(5),
  14760. Fval: uint16(1025),
  14761. },
  14762. 6: {
  14763. Fop: uint8(21),
  14764. Fbits: uint8(5),
  14765. Fval: uint16(65),
  14766. },
  14767. 7: {
  14768. Fop: uint8(29),
  14769. Fbits: uint8(5),
  14770. Fval: uint16(16385),
  14771. },
  14772. 8: {
  14773. Fop: uint8(16),
  14774. Fbits: uint8(5),
  14775. Fval: uint16(3),
  14776. },
  14777. 9: {
  14778. Fop: uint8(24),
  14779. Fbits: uint8(5),
  14780. Fval: uint16(513),
  14781. },
  14782. 10: {
  14783. Fop: uint8(20),
  14784. Fbits: uint8(5),
  14785. Fval: uint16(33),
  14786. },
  14787. 11: {
  14788. Fop: uint8(28),
  14789. Fbits: uint8(5),
  14790. Fval: uint16(8193),
  14791. },
  14792. 12: {
  14793. Fop: uint8(18),
  14794. Fbits: uint8(5),
  14795. Fval: uint16(9),
  14796. },
  14797. 13: {
  14798. Fop: uint8(26),
  14799. Fbits: uint8(5),
  14800. Fval: uint16(2049),
  14801. },
  14802. 14: {
  14803. Fop: uint8(22),
  14804. Fbits: uint8(5),
  14805. Fval: uint16(129),
  14806. },
  14807. 15: {
  14808. Fop: uint8(64),
  14809. Fbits: uint8(5),
  14810. },
  14811. 16: {
  14812. Fop: uint8(16),
  14813. Fbits: uint8(5),
  14814. Fval: uint16(2),
  14815. },
  14816. 17: {
  14817. Fop: uint8(23),
  14818. Fbits: uint8(5),
  14819. Fval: uint16(385),
  14820. },
  14821. 18: {
  14822. Fop: uint8(19),
  14823. Fbits: uint8(5),
  14824. Fval: uint16(25),
  14825. },
  14826. 19: {
  14827. Fop: uint8(27),
  14828. Fbits: uint8(5),
  14829. Fval: uint16(6145),
  14830. },
  14831. 20: {
  14832. Fop: uint8(17),
  14833. Fbits: uint8(5),
  14834. Fval: uint16(7),
  14835. },
  14836. 21: {
  14837. Fop: uint8(25),
  14838. Fbits: uint8(5),
  14839. Fval: uint16(1537),
  14840. },
  14841. 22: {
  14842. Fop: uint8(21),
  14843. Fbits: uint8(5),
  14844. Fval: uint16(97),
  14845. },
  14846. 23: {
  14847. Fop: uint8(29),
  14848. Fbits: uint8(5),
  14849. Fval: uint16(24577),
  14850. },
  14851. 24: {
  14852. Fop: uint8(16),
  14853. Fbits: uint8(5),
  14854. Fval: uint16(4),
  14855. },
  14856. 25: {
  14857. Fop: uint8(24),
  14858. Fbits: uint8(5),
  14859. Fval: uint16(769),
  14860. },
  14861. 26: {
  14862. Fop: uint8(20),
  14863. Fbits: uint8(5),
  14864. Fval: uint16(49),
  14865. },
  14866. 27: {
  14867. Fop: uint8(28),
  14868. Fbits: uint8(5),
  14869. Fval: uint16(12289),
  14870. },
  14871. 28: {
  14872. Fop: uint8(18),
  14873. Fbits: uint8(5),
  14874. Fval: uint16(13),
  14875. },
  14876. 29: {
  14877. Fop: uint8(26),
  14878. Fbits: uint8(5),
  14879. Fval: uint16(3073),
  14880. },
  14881. 30: {
  14882. Fop: uint8(22),
  14883. Fbits: uint8(5),
  14884. Fval: uint16(193),
  14885. },
  14886. 31: {
  14887. Fop: uint8(64),
  14888. Fbits: uint8(5),
  14889. },
  14890. }
  14891. // C documentation
  14892. //
  14893. // /*
  14894. // Update the window with the last wsize (normally 32K) bytes written before
  14895. // returning. If window does not exist yet, create it. This is only called
  14896. // when a window is already in use, or when output has been written during this
  14897. // inflate call, but the end of the deflate stream has not been reached yet.
  14898. // It is also called to create a window for dictionary data when a dictionary
  14899. // is loaded.
  14900. //
  14901. // Providing output buffers larger than 32K to inflate() should provide a speed
  14902. // advantage, since only the last 32K of output is copied to the sliding window
  14903. // upon return from inflate(), and since all distances after the first 32K of
  14904. // output will fall in the output data, making match copies simpler and faster.
  14905. // The advantage may be dependent on the size of the processor's data caches.
  14906. // */
  14907. func _updatewindow(tls *libc.TLS, strm Tz_streamp, end uintptr, copy1 uint32) (r int32) {
  14908. var dist uint32
  14909. var state uintptr
  14910. _, _ = dist, state
  14911. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14912. /* if it hasn't been done already, allocate space for the window */
  14913. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow == uintptr(m_Z_NULL) {
  14914. (*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, libc.Uint32FromInt64(1))
  14915. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow == uintptr(m_Z_NULL) {
  14916. return int32(1)
  14917. }
  14918. }
  14919. /* if window not in use yet, initialize */
  14920. if (*Tinflate_state)(unsafe.Pointer(state)).Fwsize == uint32(0) {
  14921. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(1) << (*Tinflate_state)(unsafe.Pointer(state)).Fwbits
  14922. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  14923. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  14924. }
  14925. /* copy state->wsize or less output bytes into the circular window */
  14926. if copy1 >= (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  14927. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, end-uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwsize), (*Tinflate_state)(unsafe.Pointer(state)).Fwsize)
  14928. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  14929. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  14930. } else {
  14931. dist = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  14932. if dist > copy1 {
  14933. dist = copy1
  14934. }
  14935. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), end-uintptr(copy1), dist)
  14936. copy1 -= dist
  14937. if copy1 != 0 {
  14938. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, end-uintptr(copy1), copy1)
  14939. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = copy1
  14940. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  14941. } else {
  14942. *(*uint32)(unsafe.Pointer(state + 52)) += dist
  14943. if (*Tinflate_state)(unsafe.Pointer(state)).Fwnext == (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  14944. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  14945. }
  14946. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  14947. *(*uint32)(unsafe.Pointer(state + 48)) += dist
  14948. }
  14949. }
  14950. }
  14951. return 0
  14952. }
  14953. /* Macros for inflate(): */
  14954. /* check function to use adler32() for zlib or crc32() for gzip */
  14955. /* check macros for header crc */
  14956. /* Load registers with state in inflate() for speed */
  14957. /* Restore state from registers in inflate() */
  14958. /* Clear the input bit accumulator */
  14959. /* Get a byte of input into the bit accumulator, or return from inflate()
  14960. if there is no input available. */
  14961. /* Assure that there are at least n bits in the bit accumulator. If there is
  14962. not enough available input to do that, then return from inflate(). */
  14963. /* Return the low n bits of the bit accumulator (n < 16) */
  14964. /* Remove n bits from the bit accumulator */
  14965. /* Remove zero to seven bits as needed to go to a byte boundary */
  14966. /*
  14967. inflate() uses a state machine to process as much input data and generate as
  14968. much output data as possible before returning. The state machine is
  14969. structured roughly as follows:
  14970. for (;;) switch (state) {
  14971. ...
  14972. case STATEn:
  14973. if (not enough input data or output space to make progress)
  14974. return;
  14975. ... make progress ...
  14976. state = STATEm;
  14977. break;
  14978. ...
  14979. }
  14980. so when inflate() is called again, the same case is attempted again, and
  14981. if the appropriate resources are provided, the machine proceeds to the
  14982. next state. The NEEDBITS() macro is usually the way the state evaluates
  14983. whether it can proceed or should return. NEEDBITS() does the return if
  14984. the requested bits are not available. The typical use of the BITS macros
  14985. is:
  14986. NEEDBITS(n);
  14987. ... do something with BITS(n) ...
  14988. DROPBITS(n);
  14989. where NEEDBITS(n) either returns from inflate() if there isn't enough
  14990. input left to load n bits into the accumulator, or it continues. BITS(n)
  14991. gives the low n bits in the accumulator. When done, DROPBITS(n) drops
  14992. the low n bits off the accumulator. INITBITS() clears the accumulator
  14993. and sets the number of available bits to zero. BYTEBITS() discards just
  14994. enough bits to put the accumulator on a byte boundary. After BYTEBITS()
  14995. and a NEEDBITS(8), then BITS(8) would return the next byte in the stream.
  14996. NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return
  14997. if there is no input available. The decoding of variable length codes uses
  14998. PULLBYTE() directly in order to pull just enough bytes to decode the next
  14999. code, and no more.
  15000. Some states loop until they get enough input, making sure that enough
  15001. state information is maintained to continue the loop where it left off
  15002. if NEEDBITS() returns in the loop. For example, want, need, and keep
  15003. would all have to actually be part of the saved state in case NEEDBITS()
  15004. returns:
  15005. case STATEw:
  15006. while (want < need) {
  15007. NEEDBITS(n);
  15008. keep[want++] = BITS(n);
  15009. DROPBITS(n);
  15010. }
  15011. state = STATEx;
  15012. case STATEx:
  15013. As shown above, if the next state is also the next case, then the break
  15014. is omitted.
  15015. A state may also return if there is not enough output space available to
  15016. complete that state. Those states are copying stored data, writing a
  15017. literal byte, and copying a matching string.
  15018. When returning, a "goto inf_leave" is used to update the total counters,
  15019. update the check value, and determine whether any progress has been made
  15020. during that inflate() call in order to return the proper return code.
  15021. Progress is defined as a change in either strm->avail_in or strm->avail_out.
  15022. When there is a window, goto inf_leave will update the window with the last
  15023. output written. If a goto inf_leave occurs in the middle of decompression
  15024. and there is no window currently, goto inf_leave will create one and copy
  15025. output to the window for the next call of inflate().
  15026. In this implementation, the flush parameter of inflate() only affects the
  15027. return code (per zlib.h). inflate() always writes as much as possible to
  15028. strm->next_out, given the space available and the provided input--the effect
  15029. documented in zlib.h of Z_SYNC_FLUSH. Furthermore, inflate() always defers
  15030. the allocation of and copying into a sliding window until necessary, which
  15031. provides the effect documented in zlib.h for Z_FINISH when the entire input
  15032. stream available. So the only thing the flush parameter actually does is:
  15033. when flush is set to Z_FINISH, inflate() cannot return Z_OK. Instead it
  15034. will return Z_BUF_ERROR if it has not reached the end of the stream.
  15035. */
  15036. func Xinflate(tls *libc.TLS, strm Tz_streamp, flush int32) (r int32) {
  15037. bp := tls.Alloc(16)
  15038. defer tls.Free(16)
  15039. var bits, copy1, have, hold, in, left, len1, out, v101, v102, v37, v46, v48, v49, v50, v52, v53, v56, v58, v59, v64, v66, v70, v75, v76, v90, v96, v97, v98 uint32
  15040. 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
  15041. var here, last Tcode
  15042. var ret, v103, v104, v105, v38 int32
  15043. var v47, v99 bool
  15044. var _ /* hbuf at bp+0 */ [4]uint8
  15045. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  15046. 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) {
  15047. return -int32(2)
  15048. }
  15049. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  15050. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  15051. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPEDO)
  15052. } /* skip check */
  15053. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  15054. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  15055. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  15056. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  15057. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  15058. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  15059. in = have
  15060. out = left
  15061. ret = m_Z_OK
  15062. for {
  15063. switch (*Tinflate_state)(unsafe.Pointer(state)).Fmode {
  15064. case int32(_HEAD):
  15065. goto _2
  15066. case int32(_FLAGS):
  15067. goto _3
  15068. case int32(_TIME):
  15069. goto _4
  15070. case int32(_OS):
  15071. goto _5
  15072. case int32(_EXLEN):
  15073. goto _6
  15074. case int32(_EXTRA):
  15075. goto _7
  15076. case int32(_NAME):
  15077. goto _8
  15078. case int32(_COMMENT):
  15079. goto _9
  15080. case int32(_HCRC):
  15081. goto _10
  15082. case int32(_DICTID):
  15083. goto _11
  15084. case int32(_DICT):
  15085. goto _12
  15086. case int32(_TYPE):
  15087. goto _13
  15088. case int32(_TYPEDO):
  15089. goto _14
  15090. case int32(_STORED):
  15091. goto _15
  15092. case int32(_COPY_):
  15093. goto _16
  15094. case int32(_COPY):
  15095. goto _17
  15096. case int32(_TABLE):
  15097. goto _18
  15098. case int32(_LENLENS):
  15099. goto _19
  15100. case int32(_CODELENS):
  15101. goto _20
  15102. case int32(_LEN_):
  15103. goto _21
  15104. case int32(_LEN):
  15105. goto _22
  15106. case int32(_LENEXT):
  15107. goto _23
  15108. case int32(_DIST):
  15109. goto _24
  15110. case int32(_DISTEXT):
  15111. goto _25
  15112. case int32(_MATCH):
  15113. goto _26
  15114. case int32(_LIT):
  15115. goto _27
  15116. case int32(_CHECK):
  15117. goto _28
  15118. case int32(_LENGTH):
  15119. goto _29
  15120. case int32(_DONE):
  15121. goto _30
  15122. case int32(_BAD):
  15123. goto _31
  15124. case int32(_MEM):
  15125. goto _32
  15126. default:
  15127. goto _33
  15128. case int32(_SYNC):
  15129. goto _34
  15130. }
  15131. goto _35
  15132. _2:
  15133. ;
  15134. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap == 0 {
  15135. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPEDO)
  15136. goto _35
  15137. }
  15138. for bits < uint32(libc.Int32FromInt32(16)) {
  15139. if have == uint32(0) {
  15140. goto inf_leave
  15141. }
  15142. have--
  15143. v36 = next
  15144. next++
  15145. hold += uint32(*(*uint8)(unsafe.Pointer(v36))) << bits
  15146. bits += uint32(8)
  15147. }
  15148. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(2) != 0 && hold == uint32(0x8b1f) { /* gzip header */
  15149. if (*Tinflate_state)(unsafe.Pointer(state)).Fwbits == uint32(0) {
  15150. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = uint32(15)
  15151. }
  15152. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  15153. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  15154. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  15155. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  15156. hold = uint32(0)
  15157. bits = uint32(0)
  15158. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_FLAGS)
  15159. goto _35
  15160. }
  15161. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  15162. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fdone = -int32(1)
  15163. }
  15164. if !((*Tinflate_state)(unsafe.Pointer(state)).Fwrap&libc.Int32FromInt32(1) != 0) || (uint32(hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(8)-libc.Uint32FromInt32(1))<<libc.Int32FromInt32(8))+hold>>int32(8))%uint32(31) != 0 {
  15165. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 633
  15166. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15167. goto _35
  15168. }
  15169. if hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) != uint32(m_Z_DEFLATED) {
  15170. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 656
  15171. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15172. goto _35
  15173. }
  15174. hold >>= uint32(libc.Int32FromInt32(4))
  15175. bits -= uint32(libc.Int32FromInt32(4))
  15176. len1 = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(8)
  15177. if (*Tinflate_state)(unsafe.Pointer(state)).Fwbits == uint32(0) {
  15178. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = len1
  15179. }
  15180. if len1 > uint32(15) || len1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwbits {
  15181. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 683
  15182. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15183. goto _35
  15184. }
  15185. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(1) << len1
  15186. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = 0 /* indicate zlib header */
  15187. v37 = Xadler32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  15188. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v37
  15189. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v37
  15190. if hold&uint32(0x200) != 0 {
  15191. v38 = int32(_DICTID)
  15192. } else {
  15193. v38 = int32(_TYPE)
  15194. }
  15195. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = v38
  15196. hold = uint32(0)
  15197. bits = uint32(0)
  15198. goto _35
  15199. _3:
  15200. ;
  15201. _41:
  15202. ;
  15203. for bits < uint32(libc.Int32FromInt32(16)) {
  15204. if have == uint32(0) {
  15205. goto inf_leave
  15206. }
  15207. have--
  15208. v42 = next
  15209. next++
  15210. hold += uint32(*(*uint8)(unsafe.Pointer(v42))) << bits
  15211. bits += uint32(8)
  15212. }
  15213. goto _40
  15214. _40:
  15215. ;
  15216. if 0 != 0 {
  15217. goto _41
  15218. }
  15219. goto _39
  15220. _39:
  15221. ;
  15222. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = int32(hold)
  15223. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0xff) != int32(m_Z_DEFLATED) {
  15224. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 656
  15225. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15226. goto _35
  15227. }
  15228. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0xe000) != 0 {
  15229. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 703
  15230. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15231. goto _35
  15232. }
  15233. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  15234. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Ftext = int32(hold >> libc.Int32FromInt32(8) & libc.Uint32FromInt32(1))
  15235. }
  15236. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  15237. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  15238. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  15239. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  15240. }
  15241. hold = uint32(0)
  15242. bits = uint32(0)
  15243. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TIME)
  15244. /* fallthrough */
  15245. _4:
  15246. ;
  15247. for bits < uint32(libc.Int32FromInt32(32)) {
  15248. if have == uint32(0) {
  15249. goto inf_leave
  15250. }
  15251. have--
  15252. v43 = next
  15253. next++
  15254. hold += uint32(*(*uint8)(unsafe.Pointer(v43))) << bits
  15255. bits += uint32(8)
  15256. }
  15257. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  15258. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Ftime = hold
  15259. }
  15260. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  15261. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  15262. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  15263. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(2)] = uint8(hold >> libc.Int32FromInt32(16))
  15264. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(3)] = uint8(hold >> libc.Int32FromInt32(24))
  15265. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(4))
  15266. }
  15267. hold = uint32(0)
  15268. bits = uint32(0)
  15269. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_OS)
  15270. /* fallthrough */
  15271. _5:
  15272. ;
  15273. for bits < uint32(libc.Int32FromInt32(16)) {
  15274. if have == uint32(0) {
  15275. goto inf_leave
  15276. }
  15277. have--
  15278. v44 = next
  15279. next++
  15280. hold += uint32(*(*uint8)(unsafe.Pointer(v44))) << bits
  15281. bits += uint32(8)
  15282. }
  15283. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  15284. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fxflags = int32(hold & libc.Uint32FromInt32(0xff))
  15285. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fos = int32(hold >> libc.Int32FromInt32(8))
  15286. }
  15287. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  15288. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  15289. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  15290. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  15291. }
  15292. hold = uint32(0)
  15293. bits = uint32(0)
  15294. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_EXLEN)
  15295. /* fallthrough */
  15296. _6:
  15297. ;
  15298. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0400) != 0 {
  15299. for bits < uint32(libc.Int32FromInt32(16)) {
  15300. if have == uint32(0) {
  15301. goto inf_leave
  15302. }
  15303. have--
  15304. v45 = next
  15305. next++
  15306. hold += uint32(*(*uint8)(unsafe.Pointer(v45))) << bits
  15307. bits += uint32(8)
  15308. }
  15309. (*Tinflate_state)(unsafe.Pointer(state)).Flength = hold
  15310. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  15311. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_len = hold
  15312. }
  15313. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  15314. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  15315. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  15316. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  15317. }
  15318. hold = uint32(0)
  15319. bits = uint32(0)
  15320. } else {
  15321. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  15322. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra = uintptr(m_Z_NULL)
  15323. }
  15324. }
  15325. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_EXTRA)
  15326. /* fallthrough */
  15327. _7:
  15328. ;
  15329. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0400) != 0 {
  15330. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  15331. if copy1 > have {
  15332. copy1 = have
  15333. }
  15334. if copy1 != 0 {
  15335. 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 {
  15336. v46 = (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_len - (*Tinflate_state)(unsafe.Pointer(state)).Flength
  15337. len1 = v46
  15338. }
  15339. if v47 && v46 < (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max {
  15340. if len1+copy1 > (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max {
  15341. v48 = (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max - len1
  15342. } else {
  15343. v48 = copy1
  15344. }
  15345. libc.Xmemcpy(tls, (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra+uintptr(len1), next, v48)
  15346. }
  15347. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  15348. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  15349. }
  15350. have -= copy1
  15351. next += uintptr(copy1)
  15352. *(*uint32)(unsafe.Pointer(state + 68)) -= copy1
  15353. }
  15354. if (*Tinflate_state)(unsafe.Pointer(state)).Flength != 0 {
  15355. goto inf_leave
  15356. }
  15357. }
  15358. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(0)
  15359. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_NAME)
  15360. /* fallthrough */
  15361. _8:
  15362. ;
  15363. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0800) != 0 {
  15364. if have == uint32(0) {
  15365. goto inf_leave
  15366. }
  15367. copy1 = uint32(0)
  15368. for cond := true; cond; cond = len1 != 0 && copy1 < have {
  15369. v49 = copy1
  15370. copy1++
  15371. len1 = uint32(*(*uint8)(unsafe.Pointer(next + uintptr(v49))))
  15372. 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 {
  15373. v51 = state + 68
  15374. v50 = *(*uint32)(unsafe.Pointer(v51))
  15375. *(*uint32)(unsafe.Pointer(v51))++
  15376. *(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname + uintptr(v50))) = uint8(len1)
  15377. }
  15378. }
  15379. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  15380. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  15381. }
  15382. have -= copy1
  15383. next += uintptr(copy1)
  15384. if len1 != 0 {
  15385. goto inf_leave
  15386. }
  15387. } else {
  15388. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  15389. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname = uintptr(m_Z_NULL)
  15390. }
  15391. }
  15392. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(0)
  15393. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COMMENT)
  15394. /* fallthrough */
  15395. _9:
  15396. ;
  15397. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x1000) != 0 {
  15398. if have == uint32(0) {
  15399. goto inf_leave
  15400. }
  15401. copy1 = uint32(0)
  15402. for cond := true; cond; cond = len1 != 0 && copy1 < have {
  15403. v52 = copy1
  15404. copy1++
  15405. len1 = uint32(*(*uint8)(unsafe.Pointer(next + uintptr(v52))))
  15406. 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 {
  15407. v54 = state + 68
  15408. v53 = *(*uint32)(unsafe.Pointer(v54))
  15409. *(*uint32)(unsafe.Pointer(v54))++
  15410. *(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment + uintptr(v53))) = uint8(len1)
  15411. }
  15412. }
  15413. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  15414. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  15415. }
  15416. have -= copy1
  15417. next += uintptr(copy1)
  15418. if len1 != 0 {
  15419. goto inf_leave
  15420. }
  15421. } else {
  15422. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  15423. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment = uintptr(m_Z_NULL)
  15424. }
  15425. }
  15426. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HCRC)
  15427. /* fallthrough */
  15428. _10:
  15429. ;
  15430. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 {
  15431. for bits < uint32(libc.Int32FromInt32(16)) {
  15432. if have == uint32(0) {
  15433. goto inf_leave
  15434. }
  15435. have--
  15436. v55 = next
  15437. next++
  15438. hold += uint32(*(*uint8)(unsafe.Pointer(v55))) << bits
  15439. bits += uint32(8)
  15440. }
  15441. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && hold != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck&uint32(0xffff) {
  15442. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 728
  15443. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15444. goto _35
  15445. }
  15446. hold = uint32(0)
  15447. bits = uint32(0)
  15448. }
  15449. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  15450. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fhcrc = (*Tinflate_state)(unsafe.Pointer(state)).Fflags >> libc.Int32FromInt32(9) & libc.Int32FromInt32(1)
  15451. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fdone = int32(1)
  15452. }
  15453. v56 = Xcrc32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  15454. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v56
  15455. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v56
  15456. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  15457. goto _35
  15458. _11:
  15459. ;
  15460. for bits < uint32(libc.Int32FromInt32(32)) {
  15461. if have == uint32(0) {
  15462. goto inf_leave
  15463. }
  15464. have--
  15465. v57 = next
  15466. next++
  15467. hold += uint32(*(*uint8)(unsafe.Pointer(v57))) << bits
  15468. bits += uint32(8)
  15469. }
  15470. v58 = hold>>libc.Int32FromInt32(24)&libc.Uint32FromInt32(0xff) + hold>>libc.Int32FromInt32(8)&libc.Uint32FromInt32(0xff00) + hold&libc.Uint32FromInt32(0xff00)<<libc.Int32FromInt32(8) + hold&libc.Uint32FromInt32(0xff)<<libc.Int32FromInt32(24)
  15471. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v58
  15472. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v58
  15473. hold = uint32(0)
  15474. bits = uint32(0)
  15475. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DICT)
  15476. /* fallthrough */
  15477. _12:
  15478. ;
  15479. if (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict == 0 {
  15480. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  15481. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  15482. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  15483. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  15484. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  15485. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  15486. return int32(m_Z_NEED_DICT)
  15487. }
  15488. v59 = Xadler32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  15489. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v59
  15490. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v59
  15491. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  15492. /* fallthrough */
  15493. _13:
  15494. ;
  15495. if flush == int32(m_Z_BLOCK) || flush == int32(m_Z_TREES) {
  15496. goto inf_leave
  15497. }
  15498. /* fallthrough */
  15499. _14:
  15500. ;
  15501. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  15502. hold >>= bits & uint32(7)
  15503. bits -= bits & uint32(7)
  15504. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_CHECK)
  15505. goto _35
  15506. }
  15507. for bits < uint32(libc.Int32FromInt32(3)) {
  15508. if have == uint32(0) {
  15509. goto inf_leave
  15510. }
  15511. have--
  15512. v60 = next
  15513. next++
  15514. hold += uint32(*(*uint8)(unsafe.Pointer(v60))) << bits
  15515. bits += uint32(8)
  15516. }
  15517. (*Tinflate_state)(unsafe.Pointer(state)).Flast = int32(hold & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(1) - libc.Uint32FromInt32(1)))
  15518. hold >>= uint32(libc.Int32FromInt32(1))
  15519. bits -= uint32(libc.Int32FromInt32(1))
  15520. switch hold & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2) - libc.Uint32FromInt32(1)) {
  15521. case uint32(0): /* stored block */
  15522. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_STORED)
  15523. case uint32(1): /* fixed block */
  15524. _fixedtables1(tls, state)
  15525. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN_) /* decode codes */
  15526. if flush == int32(m_Z_TREES) {
  15527. hold >>= uint32(libc.Int32FromInt32(2))
  15528. bits -= uint32(libc.Int32FromInt32(2))
  15529. goto inf_leave
  15530. }
  15531. case uint32(2): /* dynamic block */
  15532. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TABLE)
  15533. case uint32(3):
  15534. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 331
  15535. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15536. }
  15537. hold >>= uint32(libc.Int32FromInt32(2))
  15538. bits -= uint32(libc.Int32FromInt32(2))
  15539. goto _35
  15540. _15:
  15541. ;
  15542. hold >>= bits & uint32(7)
  15543. bits -= bits & uint32(7) /* go to byte boundary */
  15544. for bits < uint32(libc.Int32FromInt32(32)) {
  15545. if have == uint32(0) {
  15546. goto inf_leave
  15547. }
  15548. have--
  15549. v61 = next
  15550. next++
  15551. hold += uint32(*(*uint8)(unsafe.Pointer(v61))) << bits
  15552. bits += uint32(8)
  15553. }
  15554. if hold&uint32(0xffff) != hold>>int32(16)^uint32(0xffff) {
  15555. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 350
  15556. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15557. goto _35
  15558. }
  15559. (*Tinflate_state)(unsafe.Pointer(state)).Flength = hold & uint32(0xffff)
  15560. hold = uint32(0)
  15561. bits = uint32(0)
  15562. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COPY_)
  15563. if flush == int32(m_Z_TREES) {
  15564. goto inf_leave
  15565. }
  15566. /* fallthrough */
  15567. _16:
  15568. ;
  15569. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COPY)
  15570. /* fallthrough */
  15571. _17:
  15572. ;
  15573. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  15574. if copy1 != 0 {
  15575. if copy1 > have {
  15576. copy1 = have
  15577. }
  15578. if copy1 > left {
  15579. copy1 = left
  15580. }
  15581. if copy1 == uint32(0) {
  15582. goto inf_leave
  15583. }
  15584. libc.Xmemcpy(tls, put, next, copy1)
  15585. have -= copy1
  15586. next += uintptr(copy1)
  15587. left -= copy1
  15588. put += uintptr(copy1)
  15589. *(*uint32)(unsafe.Pointer(state + 68)) -= copy1
  15590. goto _35
  15591. }
  15592. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  15593. goto _35
  15594. _18:
  15595. ;
  15596. for bits < uint32(libc.Int32FromInt32(14)) {
  15597. if have == uint32(0) {
  15598. goto inf_leave
  15599. }
  15600. have--
  15601. v62 = next
  15602. next++
  15603. hold += uint32(*(*uint8)(unsafe.Pointer(v62))) << bits
  15604. bits += uint32(8)
  15605. }
  15606. (*Tinflate_state)(unsafe.Pointer(state)).Fnlen = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(257)
  15607. hold >>= uint32(libc.Int32FromInt32(5))
  15608. bits -= uint32(libc.Int32FromInt32(5))
  15609. (*Tinflate_state)(unsafe.Pointer(state)).Fndist = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(1)
  15610. hold >>= uint32(libc.Int32FromInt32(5))
  15611. bits -= uint32(libc.Int32FromInt32(5))
  15612. (*Tinflate_state)(unsafe.Pointer(state)).Fncode = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(4)
  15613. hold >>= uint32(libc.Int32FromInt32(4))
  15614. bits -= uint32(libc.Int32FromInt32(4))
  15615. if (*Tinflate_state)(unsafe.Pointer(state)).Fnlen > uint32(286) || (*Tinflate_state)(unsafe.Pointer(state)).Fndist > uint32(30) {
  15616. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 379
  15617. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15618. goto _35
  15619. }
  15620. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  15621. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENLENS)
  15622. /* fallthrough */
  15623. _19:
  15624. ;
  15625. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fncode {
  15626. for bits < uint32(libc.Int32FromInt32(3)) {
  15627. if have == uint32(0) {
  15628. goto inf_leave
  15629. }
  15630. have--
  15631. v63 = next
  15632. next++
  15633. hold += uint32(*(*uint8)(unsafe.Pointer(v63))) << bits
  15634. bits += uint32(8)
  15635. }
  15636. v65 = state + 108
  15637. v64 = *(*uint32)(unsafe.Pointer(v65))
  15638. *(*uint32)(unsafe.Pointer(v65))++
  15639. *(*uint16)(unsafe.Pointer(state + 116 + uintptr(_order1[v64])*2)) = uint16(hold & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3) - libc.Uint32FromInt32(1)))
  15640. hold >>= uint32(libc.Int32FromInt32(3))
  15641. bits -= uint32(libc.Int32FromInt32(3))
  15642. }
  15643. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < uint32(19) {
  15644. v67 = state + 108
  15645. v66 = *(*uint32)(unsafe.Pointer(v67))
  15646. *(*uint32)(unsafe.Pointer(v67))++
  15647. *(*uint16)(unsafe.Pointer(state + 116 + uintptr(_order1[v66])*2)) = uint16(0)
  15648. }
  15649. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1332
  15650. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  15651. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(7)
  15652. ret = Xinflate_table(tls, int32(_CODES), state+116, uint32(19), state+112, state+88, state+756)
  15653. if ret != 0 {
  15654. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 415
  15655. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15656. goto _35
  15657. }
  15658. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  15659. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_CODELENS)
  15660. /* fallthrough */
  15661. _20:
  15662. ;
  15663. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  15664. for {
  15665. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(hold&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  15666. if uint32(here.Fbits) <= bits {
  15667. break
  15668. }
  15669. if have == uint32(0) {
  15670. goto inf_leave
  15671. }
  15672. have--
  15673. v69 = next
  15674. next++
  15675. hold += uint32(*(*uint8)(unsafe.Pointer(v69))) << bits
  15676. bits += uint32(8)
  15677. goto _68
  15678. _68:
  15679. }
  15680. if int32(here.Fval) < int32(16) {
  15681. hold >>= uint32(here.Fbits)
  15682. bits -= uint32(here.Fbits)
  15683. v71 = state + 108
  15684. v70 = *(*uint32)(unsafe.Pointer(v71))
  15685. *(*uint32)(unsafe.Pointer(v71))++
  15686. *(*uint16)(unsafe.Pointer(state + 116 + uintptr(v70)*2)) = here.Fval
  15687. } else {
  15688. if int32(here.Fval) == int32(16) {
  15689. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(2)) {
  15690. if have == uint32(0) {
  15691. goto inf_leave
  15692. }
  15693. have--
  15694. v72 = next
  15695. next++
  15696. hold += uint32(*(*uint8)(unsafe.Pointer(v72))) << bits
  15697. bits += uint32(8)
  15698. }
  15699. hold >>= uint32(here.Fbits)
  15700. bits -= uint32(here.Fbits)
  15701. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave == uint32(0) {
  15702. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 440
  15703. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15704. break
  15705. }
  15706. len1 = uint32(*(*uint16)(unsafe.Pointer(state + 116 + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fhave-uint32(1))*2)))
  15707. copy1 = uint32(3) + hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2)-libc.Uint32FromInt32(1))
  15708. hold >>= uint32(libc.Int32FromInt32(2))
  15709. bits -= uint32(libc.Int32FromInt32(2))
  15710. } else {
  15711. if int32(here.Fval) == int32(17) {
  15712. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(3)) {
  15713. if have == uint32(0) {
  15714. goto inf_leave
  15715. }
  15716. have--
  15717. v73 = next
  15718. next++
  15719. hold += uint32(*(*uint8)(unsafe.Pointer(v73))) << bits
  15720. bits += uint32(8)
  15721. }
  15722. hold >>= uint32(here.Fbits)
  15723. bits -= uint32(here.Fbits)
  15724. len1 = uint32(0)
  15725. copy1 = uint32(3) + hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3)-libc.Uint32FromInt32(1))
  15726. hold >>= uint32(libc.Int32FromInt32(3))
  15727. bits -= uint32(libc.Int32FromInt32(3))
  15728. } else {
  15729. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(7)) {
  15730. if have == uint32(0) {
  15731. goto inf_leave
  15732. }
  15733. have--
  15734. v74 = next
  15735. next++
  15736. hold += uint32(*(*uint8)(unsafe.Pointer(v74))) << bits
  15737. bits += uint32(8)
  15738. }
  15739. hold >>= uint32(here.Fbits)
  15740. bits -= uint32(here.Fbits)
  15741. len1 = uint32(0)
  15742. copy1 = uint32(11) + hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(7)-libc.Uint32FromInt32(1))
  15743. hold >>= uint32(libc.Int32FromInt32(7))
  15744. bits -= uint32(libc.Int32FromInt32(7))
  15745. }
  15746. }
  15747. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave+copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  15748. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 440
  15749. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15750. break
  15751. }
  15752. for {
  15753. v75 = copy1
  15754. copy1--
  15755. if !(v75 != 0) {
  15756. break
  15757. }
  15758. v77 = state + 108
  15759. v76 = *(*uint32)(unsafe.Pointer(v77))
  15760. *(*uint32)(unsafe.Pointer(v77))++
  15761. *(*uint16)(unsafe.Pointer(state + 116 + uintptr(v76)*2)) = uint16(len1)
  15762. }
  15763. }
  15764. }
  15765. /* handle error breaks in while */
  15766. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_BAD) {
  15767. goto _35
  15768. }
  15769. /* check for end-of-block code (better have one) */
  15770. if int32(*(*uint16)(unsafe.Pointer(state + 116 + 256*2))) == 0 {
  15771. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 466
  15772. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15773. goto _35
  15774. }
  15775. /* build code tables -- note: do not change the lenbits or distbits
  15776. values here (9 and 6) without reading the comments in inftrees.h
  15777. concerning the ENOUGH constants, which depend on those values */
  15778. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1332
  15779. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  15780. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  15781. ret = Xinflate_table(tls, int32(_LENS), state+116, (*Tinflate_state)(unsafe.Pointer(state)).Fnlen, state+112, state+88, state+756)
  15782. if ret != 0 {
  15783. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 503
  15784. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15785. goto _35
  15786. }
  15787. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  15788. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(6)
  15789. ret = Xinflate_table(tls, int32(_DISTS), state+116+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fnlen)*2, (*Tinflate_state)(unsafe.Pointer(state)).Fndist, state+112, state+92, state+756)
  15790. if ret != 0 {
  15791. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 531
  15792. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15793. goto _35
  15794. }
  15795. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN_)
  15796. if flush == int32(m_Z_TREES) {
  15797. goto inf_leave
  15798. }
  15799. /* fallthrough */
  15800. _21:
  15801. ;
  15802. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  15803. /* fallthrough */
  15804. _22:
  15805. ;
  15806. if have >= uint32(6) && left >= uint32(258) {
  15807. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  15808. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  15809. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  15810. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  15811. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  15812. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  15813. Xinflate_fast(tls, strm, out)
  15814. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  15815. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  15816. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  15817. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  15818. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  15819. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  15820. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  15821. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  15822. }
  15823. goto _35
  15824. }
  15825. (*Tinflate_state)(unsafe.Pointer(state)).Fback = 0
  15826. for {
  15827. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(hold&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  15828. if uint32(here.Fbits) <= bits {
  15829. break
  15830. }
  15831. if have == uint32(0) {
  15832. goto inf_leave
  15833. }
  15834. have--
  15835. v79 = next
  15836. next++
  15837. hold += uint32(*(*uint8)(unsafe.Pointer(v79))) << bits
  15838. bits += uint32(8)
  15839. goto _78
  15840. _78:
  15841. }
  15842. if here.Fop != 0 && int32(here.Fop)&int32(0xf0) == 0 {
  15843. last = here
  15844. for {
  15845. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(last.Fval)+hold&(uint32(1)<<(int32(last.Fbits)+int32(last.Fop))-uint32(1))>>last.Fbits)*4))
  15846. if uint32(int32(last.Fbits)+int32(here.Fbits)) <= bits {
  15847. break
  15848. }
  15849. if have == uint32(0) {
  15850. goto inf_leave
  15851. }
  15852. have--
  15853. v81 = next
  15854. next++
  15855. hold += uint32(*(*uint8)(unsafe.Pointer(v81))) << bits
  15856. bits += uint32(8)
  15857. goto _80
  15858. _80:
  15859. }
  15860. hold >>= uint32(last.Fbits)
  15861. bits -= uint32(last.Fbits)
  15862. *(*int32)(unsafe.Pointer(state + 7112)) += int32(last.Fbits)
  15863. }
  15864. hold >>= uint32(here.Fbits)
  15865. bits -= uint32(here.Fbits)
  15866. *(*int32)(unsafe.Pointer(state + 7112)) += int32(here.Fbits)
  15867. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(here.Fval)
  15868. if int32(here.Fop) == 0 {
  15869. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LIT)
  15870. goto _35
  15871. }
  15872. if int32(here.Fop)&int32(32) != 0 {
  15873. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  15874. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  15875. goto _35
  15876. }
  15877. if int32(here.Fop)&int32(64) != 0 {
  15878. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 553
  15879. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15880. goto _35
  15881. }
  15882. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  15883. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENEXT)
  15884. /* fallthrough */
  15885. _23:
  15886. ;
  15887. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != 0 {
  15888. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  15889. if have == uint32(0) {
  15890. goto inf_leave
  15891. }
  15892. have--
  15893. v82 = next
  15894. next++
  15895. hold += uint32(*(*uint8)(unsafe.Pointer(v82))) << bits
  15896. bits += uint32(8)
  15897. }
  15898. *(*uint32)(unsafe.Pointer(state + 68)) += hold & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  15899. hold >>= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  15900. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  15901. p83 = state + 7112
  15902. *(*int32)(unsafe.Pointer(p83)) = int32(uint32(*(*int32)(unsafe.Pointer(p83))) + (*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  15903. }
  15904. (*Tinflate_state)(unsafe.Pointer(state)).Fwas = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  15905. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DIST)
  15906. /* fallthrough */
  15907. _24:
  15908. ;
  15909. for {
  15910. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(hold&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits-libc.Uint32FromInt32(1)))*4))
  15911. if uint32(here.Fbits) <= bits {
  15912. break
  15913. }
  15914. if have == uint32(0) {
  15915. goto inf_leave
  15916. }
  15917. have--
  15918. v85 = next
  15919. next++
  15920. hold += uint32(*(*uint8)(unsafe.Pointer(v85))) << bits
  15921. bits += uint32(8)
  15922. goto _84
  15923. _84:
  15924. }
  15925. if int32(here.Fop)&int32(0xf0) == 0 {
  15926. last = here
  15927. for {
  15928. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(last.Fval)+hold&(uint32(1)<<(int32(last.Fbits)+int32(last.Fop))-uint32(1))>>last.Fbits)*4))
  15929. if uint32(int32(last.Fbits)+int32(here.Fbits)) <= bits {
  15930. break
  15931. }
  15932. if have == uint32(0) {
  15933. goto inf_leave
  15934. }
  15935. have--
  15936. v87 = next
  15937. next++
  15938. hold += uint32(*(*uint8)(unsafe.Pointer(v87))) << bits
  15939. bits += uint32(8)
  15940. goto _86
  15941. _86:
  15942. }
  15943. hold >>= uint32(last.Fbits)
  15944. bits -= uint32(last.Fbits)
  15945. *(*int32)(unsafe.Pointer(state + 7112)) += int32(last.Fbits)
  15946. }
  15947. hold >>= uint32(here.Fbits)
  15948. bits -= uint32(here.Fbits)
  15949. *(*int32)(unsafe.Pointer(state + 7112)) += int32(here.Fbits)
  15950. if int32(here.Fop)&int32(64) != 0 {
  15951. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 581
  15952. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15953. goto _35
  15954. }
  15955. (*Tinflate_state)(unsafe.Pointer(state)).Foffset = uint32(here.Fval)
  15956. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  15957. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DISTEXT)
  15958. /* fallthrough */
  15959. _25:
  15960. ;
  15961. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != 0 {
  15962. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  15963. if have == uint32(0) {
  15964. goto inf_leave
  15965. }
  15966. have--
  15967. v88 = next
  15968. next++
  15969. hold += uint32(*(*uint8)(unsafe.Pointer(v88))) << bits
  15970. bits += uint32(8)
  15971. }
  15972. *(*uint32)(unsafe.Pointer(state + 72)) += hold & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  15973. hold >>= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  15974. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  15975. p89 = state + 7112
  15976. *(*int32)(unsafe.Pointer(p89)) = int32(uint32(*(*int32)(unsafe.Pointer(p89))) + (*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  15977. }
  15978. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MATCH)
  15979. /* fallthrough */
  15980. _26:
  15981. ;
  15982. if left == uint32(0) {
  15983. goto inf_leave
  15984. }
  15985. copy1 = out - left
  15986. if (*Tinflate_state)(unsafe.Pointer(state)).Foffset > copy1 { /* copy from window */
  15987. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Foffset - copy1
  15988. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwhave {
  15989. if (*Tinflate_state)(unsafe.Pointer(state)).Fsane != 0 {
  15990. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 603
  15991. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15992. goto _35
  15993. }
  15994. }
  15995. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwnext {
  15996. copy1 -= (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  15997. from = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwsize-copy1)
  15998. } else {
  15999. from = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext-copy1)
  16000. }
  16001. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Flength {
  16002. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  16003. }
  16004. } else { /* copy from output */
  16005. from = put - uintptr((*Tinflate_state)(unsafe.Pointer(state)).Foffset)
  16006. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  16007. }
  16008. if copy1 > left {
  16009. copy1 = left
  16010. }
  16011. left -= copy1
  16012. *(*uint32)(unsafe.Pointer(state + 68)) -= copy1
  16013. for {
  16014. v92 = put
  16015. put++
  16016. v93 = from
  16017. from++
  16018. *(*uint8)(unsafe.Pointer(v92)) = *(*uint8)(unsafe.Pointer(v93))
  16019. goto _91
  16020. _91:
  16021. ;
  16022. copy1--
  16023. v90 = copy1
  16024. if !(v90 != 0) {
  16025. break
  16026. }
  16027. }
  16028. if (*Tinflate_state)(unsafe.Pointer(state)).Flength == uint32(0) {
  16029. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  16030. }
  16031. goto _35
  16032. _27:
  16033. ;
  16034. if left == uint32(0) {
  16035. goto inf_leave
  16036. }
  16037. v94 = put
  16038. put++
  16039. *(*uint8)(unsafe.Pointer(v94)) = uint8((*Tinflate_state)(unsafe.Pointer(state)).Flength)
  16040. left--
  16041. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  16042. goto _35
  16043. _28:
  16044. ;
  16045. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 {
  16046. for bits < uint32(libc.Int32FromInt32(32)) {
  16047. if have == uint32(0) {
  16048. goto inf_leave
  16049. }
  16050. have--
  16051. v95 = next
  16052. next++
  16053. hold += uint32(*(*uint8)(unsafe.Pointer(v95))) << bits
  16054. bits += uint32(8)
  16055. }
  16056. out -= left
  16057. *(*TuLong)(unsafe.Pointer(strm + 20)) += out
  16058. *(*uint32)(unsafe.Pointer(state + 32)) += out
  16059. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && out != 0 {
  16060. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  16061. v97 = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, put-uintptr(out), out)
  16062. } else {
  16063. v97 = Xadler32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, put-uintptr(out), out)
  16064. }
  16065. v96 = v97
  16066. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v96
  16067. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v96
  16068. }
  16069. out = left
  16070. if v99 = (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0; v99 {
  16071. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  16072. v98 = hold
  16073. } else {
  16074. v98 = hold>>int32(24)&uint32(0xff) + hold>>int32(8)&uint32(0xff00) + hold&uint32(0xff00)<<int32(8) + hold&uint32(0xff)<<int32(24)
  16075. }
  16076. }
  16077. if v99 && v98 != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck {
  16078. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 748
  16079. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  16080. goto _35
  16081. }
  16082. hold = uint32(0)
  16083. bits = uint32(0)
  16084. }
  16085. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENGTH)
  16086. /* fallthrough */
  16087. _29:
  16088. ;
  16089. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  16090. for bits < uint32(libc.Int32FromInt32(32)) {
  16091. if have == uint32(0) {
  16092. goto inf_leave
  16093. }
  16094. have--
  16095. v100 = next
  16096. next++
  16097. hold += uint32(*(*uint8)(unsafe.Pointer(v100))) << bits
  16098. bits += uint32(8)
  16099. }
  16100. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && hold != (*Tinflate_state)(unsafe.Pointer(state)).Ftotal&uint32(0xffffffff) {
  16101. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 769
  16102. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  16103. goto _35
  16104. }
  16105. hold = uint32(0)
  16106. bits = uint32(0)
  16107. }
  16108. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DONE)
  16109. /* fallthrough */
  16110. _30:
  16111. ;
  16112. ret = int32(m_Z_STREAM_END)
  16113. goto inf_leave
  16114. _31:
  16115. ;
  16116. ret = -int32(3)
  16117. goto inf_leave
  16118. _32:
  16119. ;
  16120. return -int32(4)
  16121. _34:
  16122. ;
  16123. /* fallthrough */
  16124. _33:
  16125. ;
  16126. return -int32(2)
  16127. _35:
  16128. ;
  16129. goto _1
  16130. _1:
  16131. }
  16132. /*
  16133. Return from inflate(), updating the total counts and the check value.
  16134. If there was no progress during the inflate() call, return a buffer
  16135. error. Call updatewindow() to create and/or update the window state.
  16136. Note: a memory error from inflate() is non-recoverable.
  16137. */
  16138. goto inf_leave
  16139. inf_leave:
  16140. ;
  16141. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  16142. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  16143. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  16144. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  16145. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  16146. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  16147. 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)) {
  16148. if _updatewindow(tls, strm, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out, out-(*Tz_stream)(unsafe.Pointer(strm)).Favail_out) != 0 {
  16149. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MEM)
  16150. return -int32(4)
  16151. }
  16152. }
  16153. in -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  16154. out -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  16155. *(*TuLong)(unsafe.Pointer(strm + 8)) += in
  16156. *(*TuLong)(unsafe.Pointer(strm + 20)) += out
  16157. *(*uint32)(unsafe.Pointer(state + 32)) += out
  16158. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && out != 0 {
  16159. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  16160. v102 = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out-uintptr(out), out)
  16161. } else {
  16162. v102 = Xadler32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out-uintptr(out), out)
  16163. }
  16164. v101 = v102
  16165. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v101
  16166. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v101
  16167. }
  16168. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  16169. v103 = int32(64)
  16170. } else {
  16171. v103 = 0
  16172. }
  16173. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  16174. v104 = int32(128)
  16175. } else {
  16176. v104 = 0
  16177. }
  16178. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_LEN_) || (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_COPY_) {
  16179. v105 = int32(256)
  16180. } else {
  16181. v105 = 0
  16182. }
  16183. (*Tz_stream)(unsafe.Pointer(strm)).Fdata_type = int32((*Tinflate_state)(unsafe.Pointer(state)).Fbits) + v103 + v104 + v105
  16184. if (in == uint32(0) && out == uint32(0) || flush == int32(m_Z_FINISH)) && ret == m_Z_OK {
  16185. ret = -int32(5)
  16186. }
  16187. return ret
  16188. }
  16189. var _order1 = [19]uint16{
  16190. 0: uint16(16),
  16191. 1: uint16(17),
  16192. 2: uint16(18),
  16193. 4: uint16(8),
  16194. 5: uint16(7),
  16195. 6: uint16(9),
  16196. 7: uint16(6),
  16197. 8: uint16(10),
  16198. 9: uint16(5),
  16199. 10: uint16(11),
  16200. 11: uint16(4),
  16201. 12: uint16(12),
  16202. 13: uint16(3),
  16203. 14: uint16(13),
  16204. 15: uint16(2),
  16205. 16: uint16(14),
  16206. 17: uint16(1),
  16207. 18: uint16(15),
  16208. }
  16209. func XinflateEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  16210. var state uintptr
  16211. _ = state
  16212. if _inflateStateCheck(tls, strm) != 0 {
  16213. return -int32(2)
  16214. }
  16215. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16216. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) {
  16217. (*(*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)
  16218. }
  16219. (*(*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)
  16220. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  16221. return m_Z_OK
  16222. }
  16223. func XinflateGetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength uintptr) (r int32) {
  16224. var state uintptr
  16225. _ = state
  16226. /* check state */
  16227. if _inflateStateCheck(tls, strm) != 0 {
  16228. return -int32(2)
  16229. }
  16230. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16231. /* copy dictionary */
  16232. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave != 0 && dictionary != uintptr(m_Z_NULL) {
  16233. libc.Xmemcpy(tls, dictionary, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), (*Tinflate_state)(unsafe.Pointer(state)).Fwhave-(*Tinflate_state)(unsafe.Pointer(state)).Fwnext)
  16234. libc.Xmemcpy(tls, dictionary+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwhave)-uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, (*Tinflate_state)(unsafe.Pointer(state)).Fwnext)
  16235. }
  16236. if dictLength != uintptr(m_Z_NULL) {
  16237. *(*TuInt)(unsafe.Pointer(dictLength)) = (*Tinflate_state)(unsafe.Pointer(state)).Fwhave
  16238. }
  16239. return m_Z_OK
  16240. }
  16241. func XinflateSetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength TuInt) (r int32) {
  16242. var dictid uint32
  16243. var ret int32
  16244. var state uintptr
  16245. _, _, _ = dictid, ret, state
  16246. /* check state */
  16247. if _inflateStateCheck(tls, strm) != 0 {
  16248. return -int32(2)
  16249. }
  16250. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16251. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fmode != int32(_DICT) {
  16252. return -int32(2)
  16253. }
  16254. /* check for correct dictionary identifier */
  16255. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_DICT) {
  16256. dictid = Xadler32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  16257. dictid = Xadler32(tls, dictid, dictionary, dictLength)
  16258. if dictid != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck {
  16259. return -int32(3)
  16260. }
  16261. }
  16262. /* copy dictionary to window using updatewindow(), which will amend the
  16263. existing dictionary if appropriate */
  16264. ret = _updatewindow(tls, strm, dictionary+uintptr(dictLength), dictLength)
  16265. if ret != 0 {
  16266. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MEM)
  16267. return -int32(4)
  16268. }
  16269. (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict = int32(1)
  16270. return m_Z_OK
  16271. }
  16272. func XinflateGetHeader(tls *libc.TLS, strm Tz_streamp, head Tgz_headerp) (r int32) {
  16273. var state uintptr
  16274. _ = state
  16275. /* check state */
  16276. if _inflateStateCheck(tls, strm) != 0 {
  16277. return -int32(2)
  16278. }
  16279. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16280. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(2) == 0 {
  16281. return -int32(2)
  16282. }
  16283. /* save header structure */
  16284. (*Tinflate_state)(unsafe.Pointer(state)).Fhead = head
  16285. (*Tgz_header)(unsafe.Pointer(head)).Fdone = 0
  16286. return m_Z_OK
  16287. }
  16288. // C documentation
  16289. //
  16290. // /*
  16291. // Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff. Return when found
  16292. // or when out of input. When called, *have is the number of pattern bytes
  16293. // found in order so far, in 0..3. On return *have is updated to the new
  16294. // state. If on return *have equals four, then the pattern was found and the
  16295. // return value is how many bytes were read including the last byte of the
  16296. // pattern. If *have is less than four, then the pattern has not been found
  16297. // yet and the return value is len. In the latter case, syncsearch() can be
  16298. // called again with more data and the *have state. *have is initialized to
  16299. // zero for the first call.
  16300. // */
  16301. func _syncsearch(tls *libc.TLS, have uintptr, buf uintptr, len1 uint32) (r uint32) {
  16302. var got, next uint32
  16303. var v1 int32
  16304. _, _, _ = got, next, v1
  16305. got = *(*uint32)(unsafe.Pointer(have))
  16306. next = uint32(0)
  16307. for next < len1 && got < uint32(4) {
  16308. if got < uint32(2) {
  16309. v1 = 0
  16310. } else {
  16311. v1 = int32(0xff)
  16312. }
  16313. if int32(*(*uint8)(unsafe.Pointer(buf + uintptr(next)))) == v1 {
  16314. got++
  16315. } else {
  16316. if *(*uint8)(unsafe.Pointer(buf + uintptr(next))) != 0 {
  16317. got = uint32(0)
  16318. } else {
  16319. got = uint32(4) - got
  16320. }
  16321. }
  16322. next++
  16323. }
  16324. *(*uint32)(unsafe.Pointer(have)) = got
  16325. return next
  16326. }
  16327. func XinflateSync(tls *libc.TLS, strm Tz_streamp) (r int32) {
  16328. bp := tls.Alloc(16)
  16329. defer tls.Free(16)
  16330. var flags int32
  16331. var in, len1, out, v1 uint32
  16332. var state uintptr
  16333. var _ /* buf at bp+0 */ [4]uint8
  16334. _, _, _, _, _, _ = flags, in, len1, out, state, v1
  16335. /* check parameters */
  16336. if _inflateStateCheck(tls, strm) != 0 {
  16337. return -int32(2)
  16338. }
  16339. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16340. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) && (*Tinflate_state)(unsafe.Pointer(state)).Fbits < uint32(8) {
  16341. return -int32(5)
  16342. }
  16343. /* if first time, start search in bit buffer */
  16344. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode != int32(_SYNC) {
  16345. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_SYNC)
  16346. *(*uint32)(unsafe.Pointer(state + 60)) >>= (*Tinflate_state)(unsafe.Pointer(state)).Fbits & uint32(7)
  16347. *(*uint32)(unsafe.Pointer(state + 64)) -= (*Tinflate_state)(unsafe.Pointer(state)).Fbits & uint32(7)
  16348. len1 = uint32(0)
  16349. for (*Tinflate_state)(unsafe.Pointer(state)).Fbits >= uint32(8) {
  16350. v1 = len1
  16351. len1++
  16352. (*(*[4]uint8)(unsafe.Pointer(bp)))[v1] = uint8((*Tinflate_state)(unsafe.Pointer(state)).Fhold)
  16353. *(*uint32)(unsafe.Pointer(state + 60)) >>= uint32(8)
  16354. *(*uint32)(unsafe.Pointer(state + 64)) -= uint32(8)
  16355. }
  16356. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  16357. _syncsearch(tls, state+108, bp, len1)
  16358. }
  16359. /* search available input */
  16360. len1 = _syncsearch(tls, state+108, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, (*Tz_stream)(unsafe.Pointer(strm)).Favail_in)
  16361. *(*TuInt)(unsafe.Pointer(strm + 4)) -= len1
  16362. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(len1)
  16363. *(*TuLong)(unsafe.Pointer(strm + 8)) += len1
  16364. /* return no joy or set up to restart inflate() on a new block */
  16365. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave != uint32(4) {
  16366. return -int32(3)
  16367. }
  16368. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags == -int32(1) {
  16369. (*Tinflate_state)(unsafe.Pointer(state)).Fwrap = 0
  16370. } else {
  16371. *(*int32)(unsafe.Pointer(state + 12)) &= ^libc.Int32FromInt32(4)
  16372. } /* no point in computing a check value now */
  16373. flags = (*Tinflate_state)(unsafe.Pointer(state)).Fflags
  16374. in = (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in
  16375. out = (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out
  16376. XinflateReset(tls, strm)
  16377. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = in
  16378. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = out
  16379. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = flags
  16380. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  16381. return m_Z_OK
  16382. }
  16383. // C documentation
  16384. //
  16385. // /*
  16386. // Returns true if inflate is currently at the end of a block generated by
  16387. // Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP
  16388. // implementation to provide an additional safety check. PPP uses
  16389. // Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored
  16390. // block. When decompressing, PPP checks that at the end of input packet,
  16391. // inflate is waiting for these length bytes.
  16392. // */
  16393. func XinflateSyncPoint(tls *libc.TLS, strm Tz_streamp) (r int32) {
  16394. var state uintptr
  16395. _ = state
  16396. if _inflateStateCheck(tls, strm) != 0 {
  16397. return -int32(2)
  16398. }
  16399. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16400. return libc.BoolInt32((*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_STORED) && (*Tinflate_state)(unsafe.Pointer(state)).Fbits == uint32(0))
  16401. }
  16402. func XinflateCopy(tls *libc.TLS, dest Tz_streamp, source Tz_streamp) (r int32) {
  16403. var copy1, state, window uintptr
  16404. var wsize uint32
  16405. _, _, _, _ = copy1, state, window, wsize
  16406. /* check input */
  16407. if _inflateStateCheck(tls, source) != 0 || dest == uintptr(m_Z_NULL) {
  16408. return -int32(2)
  16409. }
  16410. state = (*Tz_stream)(unsafe.Pointer(source)).Fstate
  16411. /* allocate space */
  16412. copy1 = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(source)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(source)).Fopaque, uint32(libc.Int32FromInt32(1)), libc.Uint32FromInt64(7120))
  16413. if copy1 == uintptr(m_Z_NULL) {
  16414. return -int32(4)
  16415. }
  16416. window = uintptr(m_Z_NULL)
  16417. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) {
  16418. 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, libc.Uint32FromInt64(1))
  16419. if window == uintptr(m_Z_NULL) {
  16420. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(source)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(source)).Fopaque, copy1)
  16421. return -int32(4)
  16422. }
  16423. }
  16424. /* copy state */
  16425. libc.Xmemcpy(tls, dest, source, uint32(56))
  16426. libc.Xmemcpy(tls, copy1, state, uint32(7120))
  16427. (*Tinflate_state)(unsafe.Pointer(copy1)).Fstrm = dest
  16428. if (*Tinflate_state)(unsafe.Pointer(state)).Flencode >= state+1332 && (*Tinflate_state)(unsafe.Pointer(state)).Flencode <= state+1332+uintptr(libc.Int32FromInt32(m_ENOUGH_LENS)+libc.Int32FromInt32(m_ENOUGH_DISTS))*4-uintptr(1)*4 {
  16429. (*Tinflate_state)(unsafe.Pointer(copy1)).Flencode = copy1 + 1332 + uintptr((int32((*Tinflate_state)(unsafe.Pointer(state)).Flencode)-t__predefined_ptrdiff_t(state+1332))/4)*4
  16430. (*Tinflate_state)(unsafe.Pointer(copy1)).Fdistcode = copy1 + 1332 + uintptr((int32((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode)-t__predefined_ptrdiff_t(state+1332))/4)*4
  16431. }
  16432. (*Tinflate_state)(unsafe.Pointer(copy1)).Fnext = copy1 + 1332 + uintptr((int32((*Tinflate_state)(unsafe.Pointer(state)).Fnext)-t__predefined_ptrdiff_t(state+1332))/4)*4
  16433. if window != uintptr(m_Z_NULL) {
  16434. wsize = uint32(1) << (*Tinflate_state)(unsafe.Pointer(state)).Fwbits
  16435. libc.Xmemcpy(tls, window, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, wsize)
  16436. }
  16437. (*Tinflate_state)(unsafe.Pointer(copy1)).Fwindow = window
  16438. (*Tz_stream)(unsafe.Pointer(dest)).Fstate = copy1
  16439. return m_Z_OK
  16440. }
  16441. func XinflateUndermine(tls *libc.TLS, strm Tz_streamp, subvert int32) (r int32) {
  16442. var state uintptr
  16443. _ = state
  16444. if _inflateStateCheck(tls, strm) != 0 {
  16445. return -int32(2)
  16446. }
  16447. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16448. _ = subvert
  16449. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  16450. return -int32(3)
  16451. }
  16452. func XinflateValidate(tls *libc.TLS, strm Tz_streamp, check int32) (r int32) {
  16453. var state uintptr
  16454. _ = state
  16455. if _inflateStateCheck(tls, strm) != 0 {
  16456. return -int32(2)
  16457. }
  16458. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16459. if check != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 {
  16460. *(*int32)(unsafe.Pointer(state + 12)) |= int32(4)
  16461. } else {
  16462. *(*int32)(unsafe.Pointer(state + 12)) &= ^libc.Int32FromInt32(4)
  16463. }
  16464. return m_Z_OK
  16465. }
  16466. func XinflateMark(tls *libc.TLS, strm Tz_streamp) (r int32) {
  16467. var state uintptr
  16468. var v1, v2 uint32
  16469. _, _, _ = state, v1, v2
  16470. if _inflateStateCheck(tls, strm) != 0 {
  16471. return -(libc.Int32FromInt32(1) << libc.Int32FromInt32(16))
  16472. }
  16473. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16474. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_COPY) {
  16475. v1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  16476. } else {
  16477. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_MATCH) {
  16478. v2 = (*Tinflate_state)(unsafe.Pointer(state)).Fwas - (*Tinflate_state)(unsafe.Pointer(state)).Flength
  16479. } else {
  16480. v2 = uint32(0)
  16481. }
  16482. v1 = v2
  16483. }
  16484. return int32(uint32(int32(uint32((*Tinflate_state)(unsafe.Pointer(state)).Fback)<<libc.Int32FromInt32(16))) + v1)
  16485. }
  16486. func XinflateCodesUsed(tls *libc.TLS, strm Tz_streamp) (r uint32) {
  16487. var state uintptr
  16488. _ = state
  16489. if _inflateStateCheck(tls, strm) != 0 {
  16490. return uint32(-libc.Int32FromInt32(1))
  16491. }
  16492. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16493. return uint32((int32((*Tinflate_state)(unsafe.Pointer(state)).Fnext) - t__predefined_ptrdiff_t(state+1332)) / 4)
  16494. }
  16495. const m_MAXBITS = 15
  16496. /*
  16497. If you use the zlib library in a product, an acknowledgment is welcome
  16498. in the documentation of your product. If for some reason you cannot
  16499. include such an acknowledgment, I would appreciate that you keep this
  16500. copyright string in the executable of your product.
  16501. */
  16502. // C documentation
  16503. //
  16504. // /*
  16505. // Build a set of tables to decode the provided canonical Huffman code.
  16506. // The code lengths are lens[0..codes-1]. The result starts at *table,
  16507. // whose indices are 0..2^bits-1. work is a writable array of at least
  16508. // lens shorts, which is used as a work area. type is the type of code
  16509. // to be generated, CODES, LENS, or DISTS. On return, zero is success,
  16510. // -1 is an invalid code, and +1 means that ENOUGH isn't enough. table
  16511. // on return points to the next available entry's address. bits is the
  16512. // requested root table index bits, and on return it is the actual root
  16513. // table index bits. It will differ if the request is greater than the
  16514. // longest code or if it is less than the shortest code.
  16515. // */
  16516. func Xinflate_table(tls *libc.TLS, type1 Tcodetype, lens uintptr, codes uint32, table uintptr, bits uintptr, work uintptr) (r int32) {
  16517. bp := tls.Alloc(64)
  16518. defer tls.Free(64)
  16519. var base, extra, next, v13, v14, v17, v4, v5, v6, v7 uintptr
  16520. var curr, drop, fill, huff, incr, len1, low, mask, match, max, min, root, sym, used uint32
  16521. var here Tcode
  16522. var left int32
  16523. var v12, v16 uint16
  16524. var _ /* count at bp+0 */ [16]uint16
  16525. var _ /* offs at bp+32 */ [16]uint16
  16526. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  16527. /*
  16528. Process a set of code lengths to create a canonical Huffman code. The
  16529. code lengths are lens[0..codes-1]. Each length corresponds to the
  16530. symbols 0..codes-1. The Huffman code is generated by first sorting the
  16531. symbols by length from short to long, and retaining the symbol order
  16532. for codes with equal lengths. Then the code starts with all zero bits
  16533. for the first code of the shortest length, and the codes are integer
  16534. increments for the same length, and zeros are appended as the length
  16535. increases. For the deflate format, these bits are stored backwards
  16536. from their more natural integer increment ordering, and so when the
  16537. decoding tables are built in the large loop below, the integer codes
  16538. are incremented backwards.
  16539. This routine assumes, but does not check, that all of the entries in
  16540. lens[] are in the range 0..MAXBITS. The caller must assure this.
  16541. 1..MAXBITS is interpreted as that code length. zero means that that
  16542. symbol does not occur in this code.
  16543. The codes are sorted by computing a count of codes for each length,
  16544. creating from that a table of starting indices for each length in the
  16545. sorted table, and then entering the symbols in order in the sorted
  16546. table. The sorted table is work[], with that space being provided by
  16547. the caller.
  16548. The length counts are used for other purposes as well, i.e. finding
  16549. the minimum and maximum length codes, determining if there are any
  16550. codes at all, checking for a valid set of lengths, and looking ahead
  16551. at length counts to determine sub-table sizes when building the
  16552. decoding tables.
  16553. */
  16554. /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */
  16555. len1 = uint32(0)
  16556. for {
  16557. if !(len1 <= uint32(m_MAXBITS)) {
  16558. break
  16559. }
  16560. (*(*[16]uint16)(unsafe.Pointer(bp)))[len1] = uint16(0)
  16561. goto _1
  16562. _1:
  16563. ;
  16564. len1++
  16565. }
  16566. sym = uint32(0)
  16567. for {
  16568. if !(sym < codes) {
  16569. break
  16570. }
  16571. (*(*[16]uint16)(unsafe.Pointer(bp)))[*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2))]++
  16572. goto _2
  16573. _2:
  16574. ;
  16575. sym++
  16576. }
  16577. /* bound code lengths, force root to be within code lengths */
  16578. root = *(*uint32)(unsafe.Pointer(bits))
  16579. max = uint32(m_MAXBITS)
  16580. for {
  16581. if !(max >= uint32(1)) {
  16582. break
  16583. }
  16584. if int32((*(*[16]uint16)(unsafe.Pointer(bp)))[max]) != 0 {
  16585. break
  16586. }
  16587. goto _3
  16588. _3:
  16589. ;
  16590. max--
  16591. }
  16592. if root > max {
  16593. root = max
  16594. }
  16595. if max == uint32(0) { /* no symbols to code at all */
  16596. here.Fop = libc.Uint8FromInt32(64) /* invalid code marker */
  16597. here.Fbits = libc.Uint8FromInt32(1)
  16598. here.Fval = libc.Uint16FromInt32(0)
  16599. v5 = table
  16600. v4 = *(*uintptr)(unsafe.Pointer(v5))
  16601. *(*uintptr)(unsafe.Pointer(v5)) += 4
  16602. *(*Tcode)(unsafe.Pointer(v4)) = here /* make a table to force an error */
  16603. v7 = table
  16604. v6 = *(*uintptr)(unsafe.Pointer(v7))
  16605. *(*uintptr)(unsafe.Pointer(v7)) += 4
  16606. *(*Tcode)(unsafe.Pointer(v6)) = here
  16607. *(*uint32)(unsafe.Pointer(bits)) = uint32(1)
  16608. return 0 /* no symbols, but wait for decoding to report error */
  16609. }
  16610. min = uint32(1)
  16611. for {
  16612. if !(min < max) {
  16613. break
  16614. }
  16615. if int32((*(*[16]uint16)(unsafe.Pointer(bp)))[min]) != 0 {
  16616. break
  16617. }
  16618. goto _8
  16619. _8:
  16620. ;
  16621. min++
  16622. }
  16623. if root < min {
  16624. root = min
  16625. }
  16626. /* check for an over-subscribed or incomplete set of lengths */
  16627. left = int32(1)
  16628. len1 = uint32(1)
  16629. for {
  16630. if !(len1 <= uint32(m_MAXBITS)) {
  16631. break
  16632. }
  16633. left <<= int32(1)
  16634. left -= int32((*(*[16]uint16)(unsafe.Pointer(bp)))[len1])
  16635. if left < 0 {
  16636. return -int32(1)
  16637. } /* over-subscribed */
  16638. goto _9
  16639. _9:
  16640. ;
  16641. len1++
  16642. }
  16643. if left > 0 && (type1 == int32(_CODES) || max != uint32(1)) {
  16644. return -int32(1)
  16645. } /* incomplete set */
  16646. /* generate offsets into symbol table for each length for sorting */
  16647. (*(*[16]uint16)(unsafe.Pointer(bp + 32)))[int32(1)] = uint16(0)
  16648. len1 = uint32(1)
  16649. for {
  16650. if !(len1 < uint32(m_MAXBITS)) {
  16651. break
  16652. }
  16653. (*(*[16]uint16)(unsafe.Pointer(bp + 32)))[len1+uint32(1)] = uint16(int32((*(*[16]uint16)(unsafe.Pointer(bp + 32)))[len1]) + int32((*(*[16]uint16)(unsafe.Pointer(bp)))[len1]))
  16654. goto _10
  16655. _10:
  16656. ;
  16657. len1++
  16658. }
  16659. /* sort symbols by length, by symbol order within each length */
  16660. sym = uint32(0)
  16661. for {
  16662. if !(sym < codes) {
  16663. break
  16664. }
  16665. if int32(*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2))) != 0 {
  16666. v13 = bp + 32 + uintptr(*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2)))*2
  16667. v12 = *(*uint16)(unsafe.Pointer(v13))
  16668. *(*uint16)(unsafe.Pointer(v13))++
  16669. *(*uint16)(unsafe.Pointer(work + uintptr(v12)*2)) = uint16(sym)
  16670. }
  16671. goto _11
  16672. _11:
  16673. ;
  16674. sym++
  16675. }
  16676. /*
  16677. Create and fill in decoding tables. In this loop, the table being
  16678. filled is at next and has curr index bits. The code being used is huff
  16679. with length len. That code is converted to an index by dropping drop
  16680. bits off of the bottom. For codes where len is less than drop + curr,
  16681. those top drop + curr - len bits are incremented through all values to
  16682. fill the table with replicated entries.
  16683. root is the number of index bits for the root table. When len exceeds
  16684. root, sub-tables are created pointed to by the root entry with an index
  16685. of the low root bits of huff. This is saved in low to check for when a
  16686. new sub-table should be started. drop is zero when the root table is
  16687. being filled, and drop is root when sub-tables are being filled.
  16688. When a new sub-table is needed, it is necessary to look ahead in the
  16689. code lengths to determine what size sub-table is needed. The length
  16690. counts are used for this, and so count[] is decremented as codes are
  16691. entered in the tables.
  16692. used keeps track of how many table entries have been allocated from the
  16693. provided *table space. It is checked for LENS and DIST tables against
  16694. the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in
  16695. the initial root table size constants. See the comments in inftrees.h
  16696. for more information.
  16697. sym increments through all symbols, and the loop terminates when
  16698. all codes of length max, i.e. all codes, have been processed. This
  16699. routine permits incomplete codes, so another loop after this one fills
  16700. in the rest of the decoding tables with invalid code markers.
  16701. */
  16702. /* set up for code type */
  16703. switch type1 {
  16704. case int32(_CODES):
  16705. v14 = work
  16706. extra = v14
  16707. base = v14 /* dummy value--not used */
  16708. match = uint32(20)
  16709. case int32(_LENS):
  16710. base = uintptr(unsafe.Pointer(&_lbase))
  16711. extra = uintptr(unsafe.Pointer(&_lext))
  16712. match = uint32(257)
  16713. default: /* DISTS */
  16714. base = uintptr(unsafe.Pointer(&_dbase))
  16715. extra = uintptr(unsafe.Pointer(&_dext))
  16716. match = uint32(0)
  16717. }
  16718. /* initialize state for loop */
  16719. huff = uint32(0) /* starting code */
  16720. sym = uint32(0) /* starting code symbol */
  16721. len1 = min /* starting code length */
  16722. next = *(*uintptr)(unsafe.Pointer(table)) /* current table to fill in */
  16723. curr = root /* current table index bits */
  16724. drop = uint32(0) /* current bits to drop from code for index */
  16725. low = uint32(-libc.Int32FromInt32(1)) /* trigger new sub-table when len > root */
  16726. used = uint32(1) << root /* use root table entries */
  16727. mask = used - uint32(1) /* mask for comparing low */
  16728. /* check available table space */
  16729. if type1 == int32(_LENS) && used > uint32(m_ENOUGH_LENS) || type1 == int32(_DISTS) && used > uint32(m_ENOUGH_DISTS) {
  16730. return int32(1)
  16731. }
  16732. /* process all codes and make table entries */
  16733. for {
  16734. /* create table entry */
  16735. here.Fbits = uint8(len1 - drop)
  16736. if uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))+uint32(1) < match {
  16737. here.Fop = libc.Uint8FromInt32(0)
  16738. here.Fval = *(*uint16)(unsafe.Pointer(work + uintptr(sym)*2))
  16739. } else {
  16740. if uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2))) >= match {
  16741. here.Fop = uint8(*(*uint16)(unsafe.Pointer(extra + uintptr(uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))-match)*2)))
  16742. here.Fval = *(*uint16)(unsafe.Pointer(base + uintptr(uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))-match)*2))
  16743. } else {
  16744. here.Fop = uint8(libc.Int32FromInt32(32) + libc.Int32FromInt32(64)) /* end of block */
  16745. here.Fval = uint16(0)
  16746. }
  16747. }
  16748. /* replicate for those indices with low len bits equal to huff */
  16749. incr = uint32(1) << (len1 - drop)
  16750. fill = uint32(1) << curr
  16751. min = fill /* save offset to next table */
  16752. for cond := true; cond; cond = fill != uint32(0) {
  16753. fill -= incr
  16754. *(*Tcode)(unsafe.Pointer(next + uintptr(huff>>drop+fill)*4)) = here
  16755. }
  16756. /* backwards increment the len-bit code huff */
  16757. incr = uint32(1) << (len1 - uint32(1))
  16758. for huff&incr != 0 {
  16759. incr >>= uint32(1)
  16760. }
  16761. if incr != uint32(0) {
  16762. huff &= incr - uint32(1)
  16763. huff += incr
  16764. } else {
  16765. huff = uint32(0)
  16766. }
  16767. /* go to next symbol, update count, len */
  16768. sym++
  16769. v17 = bp + uintptr(len1)*2
  16770. *(*uint16)(unsafe.Pointer(v17))--
  16771. v16 = *(*uint16)(unsafe.Pointer(v17))
  16772. if int32(v16) == 0 {
  16773. if len1 == max {
  16774. break
  16775. }
  16776. len1 = uint32(*(*uint16)(unsafe.Pointer(lens + uintptr(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))*2)))
  16777. }
  16778. /* create new sub-table if needed */
  16779. if len1 > root && huff&mask != low {
  16780. /* if first time, transition to sub-tables */
  16781. if drop == uint32(0) {
  16782. drop = root
  16783. }
  16784. /* increment past last table */
  16785. next += uintptr(min) * 4 /* here min is 1 << curr */
  16786. /* determine length of next table */
  16787. curr = len1 - drop
  16788. left = libc.Int32FromInt32(1) << curr
  16789. for curr+drop < max {
  16790. left -= int32((*(*[16]uint16)(unsafe.Pointer(bp)))[curr+drop])
  16791. if left <= 0 {
  16792. break
  16793. }
  16794. curr++
  16795. left <<= int32(1)
  16796. }
  16797. /* check for enough space */
  16798. used += uint32(1) << curr
  16799. if type1 == int32(_LENS) && used > uint32(m_ENOUGH_LENS) || type1 == int32(_DISTS) && used > uint32(m_ENOUGH_DISTS) {
  16800. return int32(1)
  16801. }
  16802. /* point entry in root table to sub-table */
  16803. low = huff & mask
  16804. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fop = uint8(curr)
  16805. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fbits = uint8(root)
  16806. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fval = uint16((int32(next) - int32(*(*uintptr)(unsafe.Pointer(table)))) / 4)
  16807. }
  16808. goto _15
  16809. _15:
  16810. }
  16811. /* fill in remaining table entry if code is incomplete (guaranteed to have
  16812. at most one remaining entry, since if the code is incomplete, the
  16813. maximum code length that was allowed to get this far is one bit) */
  16814. if huff != uint32(0) {
  16815. here.Fop = libc.Uint8FromInt32(64) /* invalid code marker */
  16816. here.Fbits = uint8(len1 - drop)
  16817. here.Fval = libc.Uint16FromInt32(0)
  16818. *(*Tcode)(unsafe.Pointer(next + uintptr(huff)*4)) = here
  16819. }
  16820. /* set return parameters */
  16821. *(*uintptr)(unsafe.Pointer(table)) += uintptr(used) * 4
  16822. *(*uint32)(unsafe.Pointer(bits)) = root
  16823. return 0
  16824. }
  16825. var _lbase = [31]uint16{
  16826. 0: uint16(3),
  16827. 1: uint16(4),
  16828. 2: uint16(5),
  16829. 3: uint16(6),
  16830. 4: uint16(7),
  16831. 5: uint16(8),
  16832. 6: uint16(9),
  16833. 7: uint16(10),
  16834. 8: uint16(11),
  16835. 9: uint16(13),
  16836. 10: uint16(15),
  16837. 11: uint16(17),
  16838. 12: uint16(19),
  16839. 13: uint16(23),
  16840. 14: uint16(27),
  16841. 15: uint16(31),
  16842. 16: uint16(35),
  16843. 17: uint16(43),
  16844. 18: uint16(51),
  16845. 19: uint16(59),
  16846. 20: uint16(67),
  16847. 21: uint16(83),
  16848. 22: uint16(99),
  16849. 23: uint16(115),
  16850. 24: uint16(131),
  16851. 25: uint16(163),
  16852. 26: uint16(195),
  16853. 27: uint16(227),
  16854. 28: uint16(258),
  16855. }
  16856. var _lext = [31]uint16{
  16857. 0: uint16(16),
  16858. 1: uint16(16),
  16859. 2: uint16(16),
  16860. 3: uint16(16),
  16861. 4: uint16(16),
  16862. 5: uint16(16),
  16863. 6: uint16(16),
  16864. 7: uint16(16),
  16865. 8: uint16(17),
  16866. 9: uint16(17),
  16867. 10: uint16(17),
  16868. 11: uint16(17),
  16869. 12: uint16(18),
  16870. 13: uint16(18),
  16871. 14: uint16(18),
  16872. 15: uint16(18),
  16873. 16: uint16(19),
  16874. 17: uint16(19),
  16875. 18: uint16(19),
  16876. 19: uint16(19),
  16877. 20: uint16(20),
  16878. 21: uint16(20),
  16879. 22: uint16(20),
  16880. 23: uint16(20),
  16881. 24: uint16(21),
  16882. 25: uint16(21),
  16883. 26: uint16(21),
  16884. 27: uint16(21),
  16885. 28: uint16(16),
  16886. 29: uint16(203),
  16887. 30: uint16(77),
  16888. }
  16889. var _dbase = [32]uint16{
  16890. 0: uint16(1),
  16891. 1: uint16(2),
  16892. 2: uint16(3),
  16893. 3: uint16(4),
  16894. 4: uint16(5),
  16895. 5: uint16(7),
  16896. 6: uint16(9),
  16897. 7: uint16(13),
  16898. 8: uint16(17),
  16899. 9: uint16(25),
  16900. 10: uint16(33),
  16901. 11: uint16(49),
  16902. 12: uint16(65),
  16903. 13: uint16(97),
  16904. 14: uint16(129),
  16905. 15: uint16(193),
  16906. 16: uint16(257),
  16907. 17: uint16(385),
  16908. 18: uint16(513),
  16909. 19: uint16(769),
  16910. 20: uint16(1025),
  16911. 21: uint16(1537),
  16912. 22: uint16(2049),
  16913. 23: uint16(3073),
  16914. 24: uint16(4097),
  16915. 25: uint16(6145),
  16916. 26: uint16(8193),
  16917. 27: uint16(12289),
  16918. 28: uint16(16385),
  16919. 29: uint16(24577),
  16920. }
  16921. var _dext = [32]uint16{
  16922. 0: uint16(16),
  16923. 1: uint16(16),
  16924. 2: uint16(16),
  16925. 3: uint16(16),
  16926. 4: uint16(17),
  16927. 5: uint16(17),
  16928. 6: uint16(18),
  16929. 7: uint16(18),
  16930. 8: uint16(19),
  16931. 9: uint16(19),
  16932. 10: uint16(20),
  16933. 11: uint16(20),
  16934. 12: uint16(21),
  16935. 13: uint16(21),
  16936. 14: uint16(22),
  16937. 15: uint16(22),
  16938. 16: uint16(23),
  16939. 17: uint16(23),
  16940. 18: uint16(24),
  16941. 19: uint16(24),
  16942. 20: uint16(25),
  16943. 21: uint16(25),
  16944. 22: uint16(26),
  16945. 23: uint16(26),
  16946. 24: uint16(27),
  16947. 25: uint16(27),
  16948. 26: uint16(28),
  16949. 27: uint16(28),
  16950. 28: uint16(29),
  16951. 29: uint16(29),
  16952. 30: uint16(64),
  16953. 31: uint16(64),
  16954. }
  16955. const m_DIST_CODE_LEN = 512
  16956. const m_END_BLOCK = 256
  16957. const m_MAX_BL_BITS = 7
  16958. const m_REPZ_11_138 = 18
  16959. const m_REPZ_3_10 = 17
  16960. const m_REP_3_6 = 16
  16961. const m_SMALLEST = 1
  16962. const m_TCONST = "const"
  16963. type Tstatic_tree_desc = struct {
  16964. Fstatic_tree uintptr
  16965. Fextra_bits uintptr
  16966. Fextra_base int32
  16967. Felems int32
  16968. Fmax_length int32
  16969. }
  16970. type Tstatic_tree_desc_s = Tstatic_tree_desc
  16971. /* ===========================================================================
  16972. * Constants
  16973. */
  16974. /* Bit length codes must not exceed MAX_BL_BITS bits */
  16975. /* end of block literal code */
  16976. /* repeat previous bit length 3-6 times (2 bits of repeat count) */
  16977. /* repeat a zero length 3-10 times (3 bits of repeat count) */
  16978. /* repeat a zero length 11-138 times (7 bits of repeat count) */
  16979. var _extra_lbits = [29]int32{
  16980. 8: int32(1),
  16981. 9: int32(1),
  16982. 10: int32(1),
  16983. 11: int32(1),
  16984. 12: int32(2),
  16985. 13: int32(2),
  16986. 14: int32(2),
  16987. 15: int32(2),
  16988. 16: int32(3),
  16989. 17: int32(3),
  16990. 18: int32(3),
  16991. 19: int32(3),
  16992. 20: int32(4),
  16993. 21: int32(4),
  16994. 22: int32(4),
  16995. 23: int32(4),
  16996. 24: int32(5),
  16997. 25: int32(5),
  16998. 26: int32(5),
  16999. 27: int32(5),
  17000. }
  17001. var _extra_dbits = [30]int32{
  17002. 4: int32(1),
  17003. 5: int32(1),
  17004. 6: int32(2),
  17005. 7: int32(2),
  17006. 8: int32(3),
  17007. 9: int32(3),
  17008. 10: int32(4),
  17009. 11: int32(4),
  17010. 12: int32(5),
  17011. 13: int32(5),
  17012. 14: int32(6),
  17013. 15: int32(6),
  17014. 16: int32(7),
  17015. 17: int32(7),
  17016. 18: int32(8),
  17017. 19: int32(8),
  17018. 20: int32(9),
  17019. 21: int32(9),
  17020. 22: int32(10),
  17021. 23: int32(10),
  17022. 24: int32(11),
  17023. 25: int32(11),
  17024. 26: int32(12),
  17025. 27: int32(12),
  17026. 28: int32(13),
  17027. 29: int32(13),
  17028. }
  17029. var _extra_blbits = [19]int32{
  17030. 16: int32(2),
  17031. 17: int32(3),
  17032. 18: int32(7),
  17033. }
  17034. var _bl_order = [19]Tuch{
  17035. 0: uint8(16),
  17036. 1: uint8(17),
  17037. 2: uint8(18),
  17038. 4: uint8(8),
  17039. 5: uint8(7),
  17040. 6: uint8(9),
  17041. 7: uint8(6),
  17042. 8: uint8(10),
  17043. 9: uint8(5),
  17044. 10: uint8(11),
  17045. 11: uint8(4),
  17046. 12: uint8(12),
  17047. 13: uint8(3),
  17048. 14: uint8(13),
  17049. 15: uint8(2),
  17050. 16: uint8(14),
  17051. 17: uint8(1),
  17052. 18: uint8(15),
  17053. }
  17054. var _static_ltree = [288]Tct_data{
  17055. 0: {
  17056. Ffc: *(*struct {
  17057. Fcode [0]Tush
  17058. Ffreq Tush
  17059. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(12)})),
  17060. Fdl: *(*struct {
  17061. Flen1 [0]Tush
  17062. Fdad Tush
  17063. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17064. },
  17065. 1: {
  17066. Ffc: *(*struct {
  17067. Fcode [0]Tush
  17068. Ffreq Tush
  17069. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(140)})),
  17070. Fdl: *(*struct {
  17071. Flen1 [0]Tush
  17072. Fdad Tush
  17073. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17074. },
  17075. 2: {
  17076. Ffc: *(*struct {
  17077. Fcode [0]Tush
  17078. Ffreq Tush
  17079. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(76)})),
  17080. Fdl: *(*struct {
  17081. Flen1 [0]Tush
  17082. Fdad Tush
  17083. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17084. },
  17085. 3: {
  17086. Ffc: *(*struct {
  17087. Fcode [0]Tush
  17088. Ffreq Tush
  17089. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(204)})),
  17090. Fdl: *(*struct {
  17091. Flen1 [0]Tush
  17092. Fdad Tush
  17093. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17094. },
  17095. 4: {
  17096. Ffc: *(*struct {
  17097. Fcode [0]Tush
  17098. Ffreq Tush
  17099. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(44)})),
  17100. Fdl: *(*struct {
  17101. Flen1 [0]Tush
  17102. Fdad Tush
  17103. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17104. },
  17105. 5: {
  17106. Ffc: *(*struct {
  17107. Fcode [0]Tush
  17108. Ffreq Tush
  17109. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(172)})),
  17110. Fdl: *(*struct {
  17111. Flen1 [0]Tush
  17112. Fdad Tush
  17113. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17114. },
  17115. 6: {
  17116. Ffc: *(*struct {
  17117. Fcode [0]Tush
  17118. Ffreq Tush
  17119. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(108)})),
  17120. Fdl: *(*struct {
  17121. Flen1 [0]Tush
  17122. Fdad Tush
  17123. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17124. },
  17125. 7: {
  17126. Ffc: *(*struct {
  17127. Fcode [0]Tush
  17128. Ffreq Tush
  17129. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(236)})),
  17130. Fdl: *(*struct {
  17131. Flen1 [0]Tush
  17132. Fdad Tush
  17133. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17134. },
  17135. 8: {
  17136. Ffc: *(*struct {
  17137. Fcode [0]Tush
  17138. Ffreq Tush
  17139. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(28)})),
  17140. Fdl: *(*struct {
  17141. Flen1 [0]Tush
  17142. Fdad Tush
  17143. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17144. },
  17145. 9: {
  17146. Ffc: *(*struct {
  17147. Fcode [0]Tush
  17148. Ffreq Tush
  17149. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(156)})),
  17150. Fdl: *(*struct {
  17151. Flen1 [0]Tush
  17152. Fdad Tush
  17153. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17154. },
  17155. 10: {
  17156. Ffc: *(*struct {
  17157. Fcode [0]Tush
  17158. Ffreq Tush
  17159. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(92)})),
  17160. Fdl: *(*struct {
  17161. Flen1 [0]Tush
  17162. Fdad Tush
  17163. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17164. },
  17165. 11: {
  17166. Ffc: *(*struct {
  17167. Fcode [0]Tush
  17168. Ffreq Tush
  17169. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(220)})),
  17170. Fdl: *(*struct {
  17171. Flen1 [0]Tush
  17172. Fdad Tush
  17173. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17174. },
  17175. 12: {
  17176. Ffc: *(*struct {
  17177. Fcode [0]Tush
  17178. Ffreq Tush
  17179. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(60)})),
  17180. Fdl: *(*struct {
  17181. Flen1 [0]Tush
  17182. Fdad Tush
  17183. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17184. },
  17185. 13: {
  17186. Ffc: *(*struct {
  17187. Fcode [0]Tush
  17188. Ffreq Tush
  17189. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(188)})),
  17190. Fdl: *(*struct {
  17191. Flen1 [0]Tush
  17192. Fdad Tush
  17193. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17194. },
  17195. 14: {
  17196. Ffc: *(*struct {
  17197. Fcode [0]Tush
  17198. Ffreq Tush
  17199. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(124)})),
  17200. Fdl: *(*struct {
  17201. Flen1 [0]Tush
  17202. Fdad Tush
  17203. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17204. },
  17205. 15: {
  17206. Ffc: *(*struct {
  17207. Fcode [0]Tush
  17208. Ffreq Tush
  17209. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(252)})),
  17210. Fdl: *(*struct {
  17211. Flen1 [0]Tush
  17212. Fdad Tush
  17213. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17214. },
  17215. 16: {
  17216. Ffc: *(*struct {
  17217. Fcode [0]Tush
  17218. Ffreq Tush
  17219. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(2)})),
  17220. Fdl: *(*struct {
  17221. Flen1 [0]Tush
  17222. Fdad Tush
  17223. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17224. },
  17225. 17: {
  17226. Ffc: *(*struct {
  17227. Fcode [0]Tush
  17228. Ffreq Tush
  17229. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(130)})),
  17230. Fdl: *(*struct {
  17231. Flen1 [0]Tush
  17232. Fdad Tush
  17233. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17234. },
  17235. 18: {
  17236. Ffc: *(*struct {
  17237. Fcode [0]Tush
  17238. Ffreq Tush
  17239. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(66)})),
  17240. Fdl: *(*struct {
  17241. Flen1 [0]Tush
  17242. Fdad Tush
  17243. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17244. },
  17245. 19: {
  17246. Ffc: *(*struct {
  17247. Fcode [0]Tush
  17248. Ffreq Tush
  17249. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(194)})),
  17250. Fdl: *(*struct {
  17251. Flen1 [0]Tush
  17252. Fdad Tush
  17253. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17254. },
  17255. 20: {
  17256. Ffc: *(*struct {
  17257. Fcode [0]Tush
  17258. Ffreq Tush
  17259. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(34)})),
  17260. Fdl: *(*struct {
  17261. Flen1 [0]Tush
  17262. Fdad Tush
  17263. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17264. },
  17265. 21: {
  17266. Ffc: *(*struct {
  17267. Fcode [0]Tush
  17268. Ffreq Tush
  17269. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(162)})),
  17270. Fdl: *(*struct {
  17271. Flen1 [0]Tush
  17272. Fdad Tush
  17273. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17274. },
  17275. 22: {
  17276. Ffc: *(*struct {
  17277. Fcode [0]Tush
  17278. Ffreq Tush
  17279. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(98)})),
  17280. Fdl: *(*struct {
  17281. Flen1 [0]Tush
  17282. Fdad Tush
  17283. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17284. },
  17285. 23: {
  17286. Ffc: *(*struct {
  17287. Fcode [0]Tush
  17288. Ffreq Tush
  17289. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(226)})),
  17290. Fdl: *(*struct {
  17291. Flen1 [0]Tush
  17292. Fdad Tush
  17293. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17294. },
  17295. 24: {
  17296. Ffc: *(*struct {
  17297. Fcode [0]Tush
  17298. Ffreq Tush
  17299. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(18)})),
  17300. Fdl: *(*struct {
  17301. Flen1 [0]Tush
  17302. Fdad Tush
  17303. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17304. },
  17305. 25: {
  17306. Ffc: *(*struct {
  17307. Fcode [0]Tush
  17308. Ffreq Tush
  17309. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(146)})),
  17310. Fdl: *(*struct {
  17311. Flen1 [0]Tush
  17312. Fdad Tush
  17313. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17314. },
  17315. 26: {
  17316. Ffc: *(*struct {
  17317. Fcode [0]Tush
  17318. Ffreq Tush
  17319. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(82)})),
  17320. Fdl: *(*struct {
  17321. Flen1 [0]Tush
  17322. Fdad Tush
  17323. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17324. },
  17325. 27: {
  17326. Ffc: *(*struct {
  17327. Fcode [0]Tush
  17328. Ffreq Tush
  17329. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(210)})),
  17330. Fdl: *(*struct {
  17331. Flen1 [0]Tush
  17332. Fdad Tush
  17333. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17334. },
  17335. 28: {
  17336. Ffc: *(*struct {
  17337. Fcode [0]Tush
  17338. Ffreq Tush
  17339. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(50)})),
  17340. Fdl: *(*struct {
  17341. Flen1 [0]Tush
  17342. Fdad Tush
  17343. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17344. },
  17345. 29: {
  17346. Ffc: *(*struct {
  17347. Fcode [0]Tush
  17348. Ffreq Tush
  17349. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(178)})),
  17350. Fdl: *(*struct {
  17351. Flen1 [0]Tush
  17352. Fdad Tush
  17353. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17354. },
  17355. 30: {
  17356. Ffc: *(*struct {
  17357. Fcode [0]Tush
  17358. Ffreq Tush
  17359. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(114)})),
  17360. Fdl: *(*struct {
  17361. Flen1 [0]Tush
  17362. Fdad Tush
  17363. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17364. },
  17365. 31: {
  17366. Ffc: *(*struct {
  17367. Fcode [0]Tush
  17368. Ffreq Tush
  17369. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(242)})),
  17370. Fdl: *(*struct {
  17371. Flen1 [0]Tush
  17372. Fdad Tush
  17373. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17374. },
  17375. 32: {
  17376. Ffc: *(*struct {
  17377. Fcode [0]Tush
  17378. Ffreq Tush
  17379. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(10)})),
  17380. Fdl: *(*struct {
  17381. Flen1 [0]Tush
  17382. Fdad Tush
  17383. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17384. },
  17385. 33: {
  17386. Ffc: *(*struct {
  17387. Fcode [0]Tush
  17388. Ffreq Tush
  17389. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(138)})),
  17390. Fdl: *(*struct {
  17391. Flen1 [0]Tush
  17392. Fdad Tush
  17393. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17394. },
  17395. 34: {
  17396. Ffc: *(*struct {
  17397. Fcode [0]Tush
  17398. Ffreq Tush
  17399. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(74)})),
  17400. Fdl: *(*struct {
  17401. Flen1 [0]Tush
  17402. Fdad Tush
  17403. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17404. },
  17405. 35: {
  17406. Ffc: *(*struct {
  17407. Fcode [0]Tush
  17408. Ffreq Tush
  17409. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(202)})),
  17410. Fdl: *(*struct {
  17411. Flen1 [0]Tush
  17412. Fdad Tush
  17413. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17414. },
  17415. 36: {
  17416. Ffc: *(*struct {
  17417. Fcode [0]Tush
  17418. Ffreq Tush
  17419. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(42)})),
  17420. Fdl: *(*struct {
  17421. Flen1 [0]Tush
  17422. Fdad Tush
  17423. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17424. },
  17425. 37: {
  17426. Ffc: *(*struct {
  17427. Fcode [0]Tush
  17428. Ffreq Tush
  17429. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(170)})),
  17430. Fdl: *(*struct {
  17431. Flen1 [0]Tush
  17432. Fdad Tush
  17433. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17434. },
  17435. 38: {
  17436. Ffc: *(*struct {
  17437. Fcode [0]Tush
  17438. Ffreq Tush
  17439. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(106)})),
  17440. Fdl: *(*struct {
  17441. Flen1 [0]Tush
  17442. Fdad Tush
  17443. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17444. },
  17445. 39: {
  17446. Ffc: *(*struct {
  17447. Fcode [0]Tush
  17448. Ffreq Tush
  17449. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(234)})),
  17450. Fdl: *(*struct {
  17451. Flen1 [0]Tush
  17452. Fdad Tush
  17453. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17454. },
  17455. 40: {
  17456. Ffc: *(*struct {
  17457. Fcode [0]Tush
  17458. Ffreq Tush
  17459. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(26)})),
  17460. Fdl: *(*struct {
  17461. Flen1 [0]Tush
  17462. Fdad Tush
  17463. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17464. },
  17465. 41: {
  17466. Ffc: *(*struct {
  17467. Fcode [0]Tush
  17468. Ffreq Tush
  17469. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(154)})),
  17470. Fdl: *(*struct {
  17471. Flen1 [0]Tush
  17472. Fdad Tush
  17473. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17474. },
  17475. 42: {
  17476. Ffc: *(*struct {
  17477. Fcode [0]Tush
  17478. Ffreq Tush
  17479. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(90)})),
  17480. Fdl: *(*struct {
  17481. Flen1 [0]Tush
  17482. Fdad Tush
  17483. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17484. },
  17485. 43: {
  17486. Ffc: *(*struct {
  17487. Fcode [0]Tush
  17488. Ffreq Tush
  17489. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(218)})),
  17490. Fdl: *(*struct {
  17491. Flen1 [0]Tush
  17492. Fdad Tush
  17493. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17494. },
  17495. 44: {
  17496. Ffc: *(*struct {
  17497. Fcode [0]Tush
  17498. Ffreq Tush
  17499. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(58)})),
  17500. Fdl: *(*struct {
  17501. Flen1 [0]Tush
  17502. Fdad Tush
  17503. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17504. },
  17505. 45: {
  17506. Ffc: *(*struct {
  17507. Fcode [0]Tush
  17508. Ffreq Tush
  17509. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(186)})),
  17510. Fdl: *(*struct {
  17511. Flen1 [0]Tush
  17512. Fdad Tush
  17513. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17514. },
  17515. 46: {
  17516. Ffc: *(*struct {
  17517. Fcode [0]Tush
  17518. Ffreq Tush
  17519. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(122)})),
  17520. Fdl: *(*struct {
  17521. Flen1 [0]Tush
  17522. Fdad Tush
  17523. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17524. },
  17525. 47: {
  17526. Ffc: *(*struct {
  17527. Fcode [0]Tush
  17528. Ffreq Tush
  17529. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(250)})),
  17530. Fdl: *(*struct {
  17531. Flen1 [0]Tush
  17532. Fdad Tush
  17533. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17534. },
  17535. 48: {
  17536. Ffc: *(*struct {
  17537. Fcode [0]Tush
  17538. Ffreq Tush
  17539. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(6)})),
  17540. Fdl: *(*struct {
  17541. Flen1 [0]Tush
  17542. Fdad Tush
  17543. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17544. },
  17545. 49: {
  17546. Ffc: *(*struct {
  17547. Fcode [0]Tush
  17548. Ffreq Tush
  17549. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(134)})),
  17550. Fdl: *(*struct {
  17551. Flen1 [0]Tush
  17552. Fdad Tush
  17553. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17554. },
  17555. 50: {
  17556. Ffc: *(*struct {
  17557. Fcode [0]Tush
  17558. Ffreq Tush
  17559. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(70)})),
  17560. Fdl: *(*struct {
  17561. Flen1 [0]Tush
  17562. Fdad Tush
  17563. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17564. },
  17565. 51: {
  17566. Ffc: *(*struct {
  17567. Fcode [0]Tush
  17568. Ffreq Tush
  17569. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(198)})),
  17570. Fdl: *(*struct {
  17571. Flen1 [0]Tush
  17572. Fdad Tush
  17573. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17574. },
  17575. 52: {
  17576. Ffc: *(*struct {
  17577. Fcode [0]Tush
  17578. Ffreq Tush
  17579. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(38)})),
  17580. Fdl: *(*struct {
  17581. Flen1 [0]Tush
  17582. Fdad Tush
  17583. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17584. },
  17585. 53: {
  17586. Ffc: *(*struct {
  17587. Fcode [0]Tush
  17588. Ffreq Tush
  17589. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(166)})),
  17590. Fdl: *(*struct {
  17591. Flen1 [0]Tush
  17592. Fdad Tush
  17593. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17594. },
  17595. 54: {
  17596. Ffc: *(*struct {
  17597. Fcode [0]Tush
  17598. Ffreq Tush
  17599. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(102)})),
  17600. Fdl: *(*struct {
  17601. Flen1 [0]Tush
  17602. Fdad Tush
  17603. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17604. },
  17605. 55: {
  17606. Ffc: *(*struct {
  17607. Fcode [0]Tush
  17608. Ffreq Tush
  17609. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(230)})),
  17610. Fdl: *(*struct {
  17611. Flen1 [0]Tush
  17612. Fdad Tush
  17613. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17614. },
  17615. 56: {
  17616. Ffc: *(*struct {
  17617. Fcode [0]Tush
  17618. Ffreq Tush
  17619. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(22)})),
  17620. Fdl: *(*struct {
  17621. Flen1 [0]Tush
  17622. Fdad Tush
  17623. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17624. },
  17625. 57: {
  17626. Ffc: *(*struct {
  17627. Fcode [0]Tush
  17628. Ffreq Tush
  17629. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(150)})),
  17630. Fdl: *(*struct {
  17631. Flen1 [0]Tush
  17632. Fdad Tush
  17633. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17634. },
  17635. 58: {
  17636. Ffc: *(*struct {
  17637. Fcode [0]Tush
  17638. Ffreq Tush
  17639. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(86)})),
  17640. Fdl: *(*struct {
  17641. Flen1 [0]Tush
  17642. Fdad Tush
  17643. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17644. },
  17645. 59: {
  17646. Ffc: *(*struct {
  17647. Fcode [0]Tush
  17648. Ffreq Tush
  17649. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(214)})),
  17650. Fdl: *(*struct {
  17651. Flen1 [0]Tush
  17652. Fdad Tush
  17653. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17654. },
  17655. 60: {
  17656. Ffc: *(*struct {
  17657. Fcode [0]Tush
  17658. Ffreq Tush
  17659. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(54)})),
  17660. Fdl: *(*struct {
  17661. Flen1 [0]Tush
  17662. Fdad Tush
  17663. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17664. },
  17665. 61: {
  17666. Ffc: *(*struct {
  17667. Fcode [0]Tush
  17668. Ffreq Tush
  17669. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(182)})),
  17670. Fdl: *(*struct {
  17671. Flen1 [0]Tush
  17672. Fdad Tush
  17673. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17674. },
  17675. 62: {
  17676. Ffc: *(*struct {
  17677. Fcode [0]Tush
  17678. Ffreq Tush
  17679. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(118)})),
  17680. Fdl: *(*struct {
  17681. Flen1 [0]Tush
  17682. Fdad Tush
  17683. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17684. },
  17685. 63: {
  17686. Ffc: *(*struct {
  17687. Fcode [0]Tush
  17688. Ffreq Tush
  17689. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(246)})),
  17690. Fdl: *(*struct {
  17691. Flen1 [0]Tush
  17692. Fdad Tush
  17693. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17694. },
  17695. 64: {
  17696. Ffc: *(*struct {
  17697. Fcode [0]Tush
  17698. Ffreq Tush
  17699. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(14)})),
  17700. Fdl: *(*struct {
  17701. Flen1 [0]Tush
  17702. Fdad Tush
  17703. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17704. },
  17705. 65: {
  17706. Ffc: *(*struct {
  17707. Fcode [0]Tush
  17708. Ffreq Tush
  17709. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(142)})),
  17710. Fdl: *(*struct {
  17711. Flen1 [0]Tush
  17712. Fdad Tush
  17713. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17714. },
  17715. 66: {
  17716. Ffc: *(*struct {
  17717. Fcode [0]Tush
  17718. Ffreq Tush
  17719. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(78)})),
  17720. Fdl: *(*struct {
  17721. Flen1 [0]Tush
  17722. Fdad Tush
  17723. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17724. },
  17725. 67: {
  17726. Ffc: *(*struct {
  17727. Fcode [0]Tush
  17728. Ffreq Tush
  17729. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(206)})),
  17730. Fdl: *(*struct {
  17731. Flen1 [0]Tush
  17732. Fdad Tush
  17733. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17734. },
  17735. 68: {
  17736. Ffc: *(*struct {
  17737. Fcode [0]Tush
  17738. Ffreq Tush
  17739. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(46)})),
  17740. Fdl: *(*struct {
  17741. Flen1 [0]Tush
  17742. Fdad Tush
  17743. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17744. },
  17745. 69: {
  17746. Ffc: *(*struct {
  17747. Fcode [0]Tush
  17748. Ffreq Tush
  17749. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(174)})),
  17750. Fdl: *(*struct {
  17751. Flen1 [0]Tush
  17752. Fdad Tush
  17753. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17754. },
  17755. 70: {
  17756. Ffc: *(*struct {
  17757. Fcode [0]Tush
  17758. Ffreq Tush
  17759. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(110)})),
  17760. Fdl: *(*struct {
  17761. Flen1 [0]Tush
  17762. Fdad Tush
  17763. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17764. },
  17765. 71: {
  17766. Ffc: *(*struct {
  17767. Fcode [0]Tush
  17768. Ffreq Tush
  17769. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(238)})),
  17770. Fdl: *(*struct {
  17771. Flen1 [0]Tush
  17772. Fdad Tush
  17773. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17774. },
  17775. 72: {
  17776. Ffc: *(*struct {
  17777. Fcode [0]Tush
  17778. Ffreq Tush
  17779. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(30)})),
  17780. Fdl: *(*struct {
  17781. Flen1 [0]Tush
  17782. Fdad Tush
  17783. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17784. },
  17785. 73: {
  17786. Ffc: *(*struct {
  17787. Fcode [0]Tush
  17788. Ffreq Tush
  17789. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(158)})),
  17790. Fdl: *(*struct {
  17791. Flen1 [0]Tush
  17792. Fdad Tush
  17793. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17794. },
  17795. 74: {
  17796. Ffc: *(*struct {
  17797. Fcode [0]Tush
  17798. Ffreq Tush
  17799. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(94)})),
  17800. Fdl: *(*struct {
  17801. Flen1 [0]Tush
  17802. Fdad Tush
  17803. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17804. },
  17805. 75: {
  17806. Ffc: *(*struct {
  17807. Fcode [0]Tush
  17808. Ffreq Tush
  17809. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(222)})),
  17810. Fdl: *(*struct {
  17811. Flen1 [0]Tush
  17812. Fdad Tush
  17813. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17814. },
  17815. 76: {
  17816. Ffc: *(*struct {
  17817. Fcode [0]Tush
  17818. Ffreq Tush
  17819. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(62)})),
  17820. Fdl: *(*struct {
  17821. Flen1 [0]Tush
  17822. Fdad Tush
  17823. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17824. },
  17825. 77: {
  17826. Ffc: *(*struct {
  17827. Fcode [0]Tush
  17828. Ffreq Tush
  17829. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(190)})),
  17830. Fdl: *(*struct {
  17831. Flen1 [0]Tush
  17832. Fdad Tush
  17833. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17834. },
  17835. 78: {
  17836. Ffc: *(*struct {
  17837. Fcode [0]Tush
  17838. Ffreq Tush
  17839. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(126)})),
  17840. Fdl: *(*struct {
  17841. Flen1 [0]Tush
  17842. Fdad Tush
  17843. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17844. },
  17845. 79: {
  17846. Ffc: *(*struct {
  17847. Fcode [0]Tush
  17848. Ffreq Tush
  17849. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(254)})),
  17850. Fdl: *(*struct {
  17851. Flen1 [0]Tush
  17852. Fdad Tush
  17853. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17854. },
  17855. 80: {
  17856. Ffc: *(*struct {
  17857. Fcode [0]Tush
  17858. Ffreq Tush
  17859. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(1)})),
  17860. Fdl: *(*struct {
  17861. Flen1 [0]Tush
  17862. Fdad Tush
  17863. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17864. },
  17865. 81: {
  17866. Ffc: *(*struct {
  17867. Fcode [0]Tush
  17868. Ffreq Tush
  17869. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(129)})),
  17870. Fdl: *(*struct {
  17871. Flen1 [0]Tush
  17872. Fdad Tush
  17873. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17874. },
  17875. 82: {
  17876. Ffc: *(*struct {
  17877. Fcode [0]Tush
  17878. Ffreq Tush
  17879. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(65)})),
  17880. Fdl: *(*struct {
  17881. Flen1 [0]Tush
  17882. Fdad Tush
  17883. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17884. },
  17885. 83: {
  17886. Ffc: *(*struct {
  17887. Fcode [0]Tush
  17888. Ffreq Tush
  17889. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(193)})),
  17890. Fdl: *(*struct {
  17891. Flen1 [0]Tush
  17892. Fdad Tush
  17893. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17894. },
  17895. 84: {
  17896. Ffc: *(*struct {
  17897. Fcode [0]Tush
  17898. Ffreq Tush
  17899. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(33)})),
  17900. Fdl: *(*struct {
  17901. Flen1 [0]Tush
  17902. Fdad Tush
  17903. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17904. },
  17905. 85: {
  17906. Ffc: *(*struct {
  17907. Fcode [0]Tush
  17908. Ffreq Tush
  17909. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(161)})),
  17910. Fdl: *(*struct {
  17911. Flen1 [0]Tush
  17912. Fdad Tush
  17913. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17914. },
  17915. 86: {
  17916. Ffc: *(*struct {
  17917. Fcode [0]Tush
  17918. Ffreq Tush
  17919. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(97)})),
  17920. Fdl: *(*struct {
  17921. Flen1 [0]Tush
  17922. Fdad Tush
  17923. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17924. },
  17925. 87: {
  17926. Ffc: *(*struct {
  17927. Fcode [0]Tush
  17928. Ffreq Tush
  17929. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(225)})),
  17930. Fdl: *(*struct {
  17931. Flen1 [0]Tush
  17932. Fdad Tush
  17933. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17934. },
  17935. 88: {
  17936. Ffc: *(*struct {
  17937. Fcode [0]Tush
  17938. Ffreq Tush
  17939. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(17)})),
  17940. Fdl: *(*struct {
  17941. Flen1 [0]Tush
  17942. Fdad Tush
  17943. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17944. },
  17945. 89: {
  17946. Ffc: *(*struct {
  17947. Fcode [0]Tush
  17948. Ffreq Tush
  17949. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(145)})),
  17950. Fdl: *(*struct {
  17951. Flen1 [0]Tush
  17952. Fdad Tush
  17953. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17954. },
  17955. 90: {
  17956. Ffc: *(*struct {
  17957. Fcode [0]Tush
  17958. Ffreq Tush
  17959. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(81)})),
  17960. Fdl: *(*struct {
  17961. Flen1 [0]Tush
  17962. Fdad Tush
  17963. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17964. },
  17965. 91: {
  17966. Ffc: *(*struct {
  17967. Fcode [0]Tush
  17968. Ffreq Tush
  17969. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(209)})),
  17970. Fdl: *(*struct {
  17971. Flen1 [0]Tush
  17972. Fdad Tush
  17973. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17974. },
  17975. 92: {
  17976. Ffc: *(*struct {
  17977. Fcode [0]Tush
  17978. Ffreq Tush
  17979. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(49)})),
  17980. Fdl: *(*struct {
  17981. Flen1 [0]Tush
  17982. Fdad Tush
  17983. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17984. },
  17985. 93: {
  17986. Ffc: *(*struct {
  17987. Fcode [0]Tush
  17988. Ffreq Tush
  17989. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(177)})),
  17990. Fdl: *(*struct {
  17991. Flen1 [0]Tush
  17992. Fdad Tush
  17993. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17994. },
  17995. 94: {
  17996. Ffc: *(*struct {
  17997. Fcode [0]Tush
  17998. Ffreq Tush
  17999. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(113)})),
  18000. Fdl: *(*struct {
  18001. Flen1 [0]Tush
  18002. Fdad Tush
  18003. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18004. },
  18005. 95: {
  18006. Ffc: *(*struct {
  18007. Fcode [0]Tush
  18008. Ffreq Tush
  18009. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(241)})),
  18010. Fdl: *(*struct {
  18011. Flen1 [0]Tush
  18012. Fdad Tush
  18013. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18014. },
  18015. 96: {
  18016. Ffc: *(*struct {
  18017. Fcode [0]Tush
  18018. Ffreq Tush
  18019. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18020. Fdl: *(*struct {
  18021. Flen1 [0]Tush
  18022. Fdad Tush
  18023. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18024. },
  18025. 97: {
  18026. Ffc: *(*struct {
  18027. Fcode [0]Tush
  18028. Ffreq Tush
  18029. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(137)})),
  18030. Fdl: *(*struct {
  18031. Flen1 [0]Tush
  18032. Fdad Tush
  18033. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18034. },
  18035. 98: {
  18036. Ffc: *(*struct {
  18037. Fcode [0]Tush
  18038. Ffreq Tush
  18039. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(73)})),
  18040. Fdl: *(*struct {
  18041. Flen1 [0]Tush
  18042. Fdad Tush
  18043. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18044. },
  18045. 99: {
  18046. Ffc: *(*struct {
  18047. Fcode [0]Tush
  18048. Ffreq Tush
  18049. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(201)})),
  18050. Fdl: *(*struct {
  18051. Flen1 [0]Tush
  18052. Fdad Tush
  18053. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18054. },
  18055. 100: {
  18056. Ffc: *(*struct {
  18057. Fcode [0]Tush
  18058. Ffreq Tush
  18059. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(41)})),
  18060. Fdl: *(*struct {
  18061. Flen1 [0]Tush
  18062. Fdad Tush
  18063. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18064. },
  18065. 101: {
  18066. Ffc: *(*struct {
  18067. Fcode [0]Tush
  18068. Ffreq Tush
  18069. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(169)})),
  18070. Fdl: *(*struct {
  18071. Flen1 [0]Tush
  18072. Fdad Tush
  18073. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18074. },
  18075. 102: {
  18076. Ffc: *(*struct {
  18077. Fcode [0]Tush
  18078. Ffreq Tush
  18079. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(105)})),
  18080. Fdl: *(*struct {
  18081. Flen1 [0]Tush
  18082. Fdad Tush
  18083. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18084. },
  18085. 103: {
  18086. Ffc: *(*struct {
  18087. Fcode [0]Tush
  18088. Ffreq Tush
  18089. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(233)})),
  18090. Fdl: *(*struct {
  18091. Flen1 [0]Tush
  18092. Fdad Tush
  18093. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18094. },
  18095. 104: {
  18096. Ffc: *(*struct {
  18097. Fcode [0]Tush
  18098. Ffreq Tush
  18099. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(25)})),
  18100. Fdl: *(*struct {
  18101. Flen1 [0]Tush
  18102. Fdad Tush
  18103. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18104. },
  18105. 105: {
  18106. Ffc: *(*struct {
  18107. Fcode [0]Tush
  18108. Ffreq Tush
  18109. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(153)})),
  18110. Fdl: *(*struct {
  18111. Flen1 [0]Tush
  18112. Fdad Tush
  18113. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18114. },
  18115. 106: {
  18116. Ffc: *(*struct {
  18117. Fcode [0]Tush
  18118. Ffreq Tush
  18119. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(89)})),
  18120. Fdl: *(*struct {
  18121. Flen1 [0]Tush
  18122. Fdad Tush
  18123. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18124. },
  18125. 107: {
  18126. Ffc: *(*struct {
  18127. Fcode [0]Tush
  18128. Ffreq Tush
  18129. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(217)})),
  18130. Fdl: *(*struct {
  18131. Flen1 [0]Tush
  18132. Fdad Tush
  18133. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18134. },
  18135. 108: {
  18136. Ffc: *(*struct {
  18137. Fcode [0]Tush
  18138. Ffreq Tush
  18139. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(57)})),
  18140. Fdl: *(*struct {
  18141. Flen1 [0]Tush
  18142. Fdad Tush
  18143. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18144. },
  18145. 109: {
  18146. Ffc: *(*struct {
  18147. Fcode [0]Tush
  18148. Ffreq Tush
  18149. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(185)})),
  18150. Fdl: *(*struct {
  18151. Flen1 [0]Tush
  18152. Fdad Tush
  18153. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18154. },
  18155. 110: {
  18156. Ffc: *(*struct {
  18157. Fcode [0]Tush
  18158. Ffreq Tush
  18159. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(121)})),
  18160. Fdl: *(*struct {
  18161. Flen1 [0]Tush
  18162. Fdad Tush
  18163. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18164. },
  18165. 111: {
  18166. Ffc: *(*struct {
  18167. Fcode [0]Tush
  18168. Ffreq Tush
  18169. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(249)})),
  18170. Fdl: *(*struct {
  18171. Flen1 [0]Tush
  18172. Fdad Tush
  18173. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18174. },
  18175. 112: {
  18176. Ffc: *(*struct {
  18177. Fcode [0]Tush
  18178. Ffreq Tush
  18179. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18180. Fdl: *(*struct {
  18181. Flen1 [0]Tush
  18182. Fdad Tush
  18183. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18184. },
  18185. 113: {
  18186. Ffc: *(*struct {
  18187. Fcode [0]Tush
  18188. Ffreq Tush
  18189. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(133)})),
  18190. Fdl: *(*struct {
  18191. Flen1 [0]Tush
  18192. Fdad Tush
  18193. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18194. },
  18195. 114: {
  18196. Ffc: *(*struct {
  18197. Fcode [0]Tush
  18198. Ffreq Tush
  18199. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(69)})),
  18200. Fdl: *(*struct {
  18201. Flen1 [0]Tush
  18202. Fdad Tush
  18203. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18204. },
  18205. 115: {
  18206. Ffc: *(*struct {
  18207. Fcode [0]Tush
  18208. Ffreq Tush
  18209. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(197)})),
  18210. Fdl: *(*struct {
  18211. Flen1 [0]Tush
  18212. Fdad Tush
  18213. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18214. },
  18215. 116: {
  18216. Ffc: *(*struct {
  18217. Fcode [0]Tush
  18218. Ffreq Tush
  18219. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(37)})),
  18220. Fdl: *(*struct {
  18221. Flen1 [0]Tush
  18222. Fdad Tush
  18223. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18224. },
  18225. 117: {
  18226. Ffc: *(*struct {
  18227. Fcode [0]Tush
  18228. Ffreq Tush
  18229. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(165)})),
  18230. Fdl: *(*struct {
  18231. Flen1 [0]Tush
  18232. Fdad Tush
  18233. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18234. },
  18235. 118: {
  18236. Ffc: *(*struct {
  18237. Fcode [0]Tush
  18238. Ffreq Tush
  18239. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(101)})),
  18240. Fdl: *(*struct {
  18241. Flen1 [0]Tush
  18242. Fdad Tush
  18243. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18244. },
  18245. 119: {
  18246. Ffc: *(*struct {
  18247. Fcode [0]Tush
  18248. Ffreq Tush
  18249. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(229)})),
  18250. Fdl: *(*struct {
  18251. Flen1 [0]Tush
  18252. Fdad Tush
  18253. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18254. },
  18255. 120: {
  18256. Ffc: *(*struct {
  18257. Fcode [0]Tush
  18258. Ffreq Tush
  18259. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(21)})),
  18260. Fdl: *(*struct {
  18261. Flen1 [0]Tush
  18262. Fdad Tush
  18263. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18264. },
  18265. 121: {
  18266. Ffc: *(*struct {
  18267. Fcode [0]Tush
  18268. Ffreq Tush
  18269. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(149)})),
  18270. Fdl: *(*struct {
  18271. Flen1 [0]Tush
  18272. Fdad Tush
  18273. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18274. },
  18275. 122: {
  18276. Ffc: *(*struct {
  18277. Fcode [0]Tush
  18278. Ffreq Tush
  18279. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(85)})),
  18280. Fdl: *(*struct {
  18281. Flen1 [0]Tush
  18282. Fdad Tush
  18283. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18284. },
  18285. 123: {
  18286. Ffc: *(*struct {
  18287. Fcode [0]Tush
  18288. Ffreq Tush
  18289. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(213)})),
  18290. Fdl: *(*struct {
  18291. Flen1 [0]Tush
  18292. Fdad Tush
  18293. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18294. },
  18295. 124: {
  18296. Ffc: *(*struct {
  18297. Fcode [0]Tush
  18298. Ffreq Tush
  18299. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(53)})),
  18300. Fdl: *(*struct {
  18301. Flen1 [0]Tush
  18302. Fdad Tush
  18303. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18304. },
  18305. 125: {
  18306. Ffc: *(*struct {
  18307. Fcode [0]Tush
  18308. Ffreq Tush
  18309. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(181)})),
  18310. Fdl: *(*struct {
  18311. Flen1 [0]Tush
  18312. Fdad Tush
  18313. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18314. },
  18315. 126: {
  18316. Ffc: *(*struct {
  18317. Fcode [0]Tush
  18318. Ffreq Tush
  18319. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(117)})),
  18320. Fdl: *(*struct {
  18321. Flen1 [0]Tush
  18322. Fdad Tush
  18323. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18324. },
  18325. 127: {
  18326. Ffc: *(*struct {
  18327. Fcode [0]Tush
  18328. Ffreq Tush
  18329. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(245)})),
  18330. Fdl: *(*struct {
  18331. Flen1 [0]Tush
  18332. Fdad Tush
  18333. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18334. },
  18335. 128: {
  18336. Ffc: *(*struct {
  18337. Fcode [0]Tush
  18338. Ffreq Tush
  18339. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(13)})),
  18340. Fdl: *(*struct {
  18341. Flen1 [0]Tush
  18342. Fdad Tush
  18343. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18344. },
  18345. 129: {
  18346. Ffc: *(*struct {
  18347. Fcode [0]Tush
  18348. Ffreq Tush
  18349. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(141)})),
  18350. Fdl: *(*struct {
  18351. Flen1 [0]Tush
  18352. Fdad Tush
  18353. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18354. },
  18355. 130: {
  18356. Ffc: *(*struct {
  18357. Fcode [0]Tush
  18358. Ffreq Tush
  18359. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(77)})),
  18360. Fdl: *(*struct {
  18361. Flen1 [0]Tush
  18362. Fdad Tush
  18363. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18364. },
  18365. 131: {
  18366. Ffc: *(*struct {
  18367. Fcode [0]Tush
  18368. Ffreq Tush
  18369. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(205)})),
  18370. Fdl: *(*struct {
  18371. Flen1 [0]Tush
  18372. Fdad Tush
  18373. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18374. },
  18375. 132: {
  18376. Ffc: *(*struct {
  18377. Fcode [0]Tush
  18378. Ffreq Tush
  18379. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(45)})),
  18380. Fdl: *(*struct {
  18381. Flen1 [0]Tush
  18382. Fdad Tush
  18383. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18384. },
  18385. 133: {
  18386. Ffc: *(*struct {
  18387. Fcode [0]Tush
  18388. Ffreq Tush
  18389. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(173)})),
  18390. Fdl: *(*struct {
  18391. Flen1 [0]Tush
  18392. Fdad Tush
  18393. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18394. },
  18395. 134: {
  18396. Ffc: *(*struct {
  18397. Fcode [0]Tush
  18398. Ffreq Tush
  18399. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(109)})),
  18400. Fdl: *(*struct {
  18401. Flen1 [0]Tush
  18402. Fdad Tush
  18403. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18404. },
  18405. 135: {
  18406. Ffc: *(*struct {
  18407. Fcode [0]Tush
  18408. Ffreq Tush
  18409. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(237)})),
  18410. Fdl: *(*struct {
  18411. Flen1 [0]Tush
  18412. Fdad Tush
  18413. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18414. },
  18415. 136: {
  18416. Ffc: *(*struct {
  18417. Fcode [0]Tush
  18418. Ffreq Tush
  18419. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(29)})),
  18420. Fdl: *(*struct {
  18421. Flen1 [0]Tush
  18422. Fdad Tush
  18423. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18424. },
  18425. 137: {
  18426. Ffc: *(*struct {
  18427. Fcode [0]Tush
  18428. Ffreq Tush
  18429. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(157)})),
  18430. Fdl: *(*struct {
  18431. Flen1 [0]Tush
  18432. Fdad Tush
  18433. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18434. },
  18435. 138: {
  18436. Ffc: *(*struct {
  18437. Fcode [0]Tush
  18438. Ffreq Tush
  18439. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(93)})),
  18440. Fdl: *(*struct {
  18441. Flen1 [0]Tush
  18442. Fdad Tush
  18443. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18444. },
  18445. 139: {
  18446. Ffc: *(*struct {
  18447. Fcode [0]Tush
  18448. Ffreq Tush
  18449. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(221)})),
  18450. Fdl: *(*struct {
  18451. Flen1 [0]Tush
  18452. Fdad Tush
  18453. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18454. },
  18455. 140: {
  18456. Ffc: *(*struct {
  18457. Fcode [0]Tush
  18458. Ffreq Tush
  18459. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(61)})),
  18460. Fdl: *(*struct {
  18461. Flen1 [0]Tush
  18462. Fdad Tush
  18463. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18464. },
  18465. 141: {
  18466. Ffc: *(*struct {
  18467. Fcode [0]Tush
  18468. Ffreq Tush
  18469. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(189)})),
  18470. Fdl: *(*struct {
  18471. Flen1 [0]Tush
  18472. Fdad Tush
  18473. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18474. },
  18475. 142: {
  18476. Ffc: *(*struct {
  18477. Fcode [0]Tush
  18478. Ffreq Tush
  18479. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(125)})),
  18480. Fdl: *(*struct {
  18481. Flen1 [0]Tush
  18482. Fdad Tush
  18483. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18484. },
  18485. 143: {
  18486. Ffc: *(*struct {
  18487. Fcode [0]Tush
  18488. Ffreq Tush
  18489. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(253)})),
  18490. Fdl: *(*struct {
  18491. Flen1 [0]Tush
  18492. Fdad Tush
  18493. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18494. },
  18495. 144: {
  18496. Ffc: *(*struct {
  18497. Fcode [0]Tush
  18498. Ffreq Tush
  18499. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(19)})),
  18500. Fdl: *(*struct {
  18501. Flen1 [0]Tush
  18502. Fdad Tush
  18503. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18504. },
  18505. 145: {
  18506. Ffc: *(*struct {
  18507. Fcode [0]Tush
  18508. Ffreq Tush
  18509. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(275)})),
  18510. Fdl: *(*struct {
  18511. Flen1 [0]Tush
  18512. Fdad Tush
  18513. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18514. },
  18515. 146: {
  18516. Ffc: *(*struct {
  18517. Fcode [0]Tush
  18518. Ffreq Tush
  18519. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(147)})),
  18520. Fdl: *(*struct {
  18521. Flen1 [0]Tush
  18522. Fdad Tush
  18523. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18524. },
  18525. 147: {
  18526. Ffc: *(*struct {
  18527. Fcode [0]Tush
  18528. Ffreq Tush
  18529. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(403)})),
  18530. Fdl: *(*struct {
  18531. Flen1 [0]Tush
  18532. Fdad Tush
  18533. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18534. },
  18535. 148: {
  18536. Ffc: *(*struct {
  18537. Fcode [0]Tush
  18538. Ffreq Tush
  18539. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(83)})),
  18540. Fdl: *(*struct {
  18541. Flen1 [0]Tush
  18542. Fdad Tush
  18543. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18544. },
  18545. 149: {
  18546. Ffc: *(*struct {
  18547. Fcode [0]Tush
  18548. Ffreq Tush
  18549. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(339)})),
  18550. Fdl: *(*struct {
  18551. Flen1 [0]Tush
  18552. Fdad Tush
  18553. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18554. },
  18555. 150: {
  18556. Ffc: *(*struct {
  18557. Fcode [0]Tush
  18558. Ffreq Tush
  18559. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(211)})),
  18560. Fdl: *(*struct {
  18561. Flen1 [0]Tush
  18562. Fdad Tush
  18563. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18564. },
  18565. 151: {
  18566. Ffc: *(*struct {
  18567. Fcode [0]Tush
  18568. Ffreq Tush
  18569. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(467)})),
  18570. Fdl: *(*struct {
  18571. Flen1 [0]Tush
  18572. Fdad Tush
  18573. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18574. },
  18575. 152: {
  18576. Ffc: *(*struct {
  18577. Fcode [0]Tush
  18578. Ffreq Tush
  18579. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(51)})),
  18580. Fdl: *(*struct {
  18581. Flen1 [0]Tush
  18582. Fdad Tush
  18583. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18584. },
  18585. 153: {
  18586. Ffc: *(*struct {
  18587. Fcode [0]Tush
  18588. Ffreq Tush
  18589. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(307)})),
  18590. Fdl: *(*struct {
  18591. Flen1 [0]Tush
  18592. Fdad Tush
  18593. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18594. },
  18595. 154: {
  18596. Ffc: *(*struct {
  18597. Fcode [0]Tush
  18598. Ffreq Tush
  18599. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(179)})),
  18600. Fdl: *(*struct {
  18601. Flen1 [0]Tush
  18602. Fdad Tush
  18603. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18604. },
  18605. 155: {
  18606. Ffc: *(*struct {
  18607. Fcode [0]Tush
  18608. Ffreq Tush
  18609. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(435)})),
  18610. Fdl: *(*struct {
  18611. Flen1 [0]Tush
  18612. Fdad Tush
  18613. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18614. },
  18615. 156: {
  18616. Ffc: *(*struct {
  18617. Fcode [0]Tush
  18618. Ffreq Tush
  18619. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(115)})),
  18620. Fdl: *(*struct {
  18621. Flen1 [0]Tush
  18622. Fdad Tush
  18623. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18624. },
  18625. 157: {
  18626. Ffc: *(*struct {
  18627. Fcode [0]Tush
  18628. Ffreq Tush
  18629. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(371)})),
  18630. Fdl: *(*struct {
  18631. Flen1 [0]Tush
  18632. Fdad Tush
  18633. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18634. },
  18635. 158: {
  18636. Ffc: *(*struct {
  18637. Fcode [0]Tush
  18638. Ffreq Tush
  18639. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(243)})),
  18640. Fdl: *(*struct {
  18641. Flen1 [0]Tush
  18642. Fdad Tush
  18643. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18644. },
  18645. 159: {
  18646. Ffc: *(*struct {
  18647. Fcode [0]Tush
  18648. Ffreq Tush
  18649. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(499)})),
  18650. Fdl: *(*struct {
  18651. Flen1 [0]Tush
  18652. Fdad Tush
  18653. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18654. },
  18655. 160: {
  18656. Ffc: *(*struct {
  18657. Fcode [0]Tush
  18658. Ffreq Tush
  18659. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(11)})),
  18660. Fdl: *(*struct {
  18661. Flen1 [0]Tush
  18662. Fdad Tush
  18663. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18664. },
  18665. 161: {
  18666. Ffc: *(*struct {
  18667. Fcode [0]Tush
  18668. Ffreq Tush
  18669. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(267)})),
  18670. Fdl: *(*struct {
  18671. Flen1 [0]Tush
  18672. Fdad Tush
  18673. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18674. },
  18675. 162: {
  18676. Ffc: *(*struct {
  18677. Fcode [0]Tush
  18678. Ffreq Tush
  18679. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(139)})),
  18680. Fdl: *(*struct {
  18681. Flen1 [0]Tush
  18682. Fdad Tush
  18683. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18684. },
  18685. 163: {
  18686. Ffc: *(*struct {
  18687. Fcode [0]Tush
  18688. Ffreq Tush
  18689. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(395)})),
  18690. Fdl: *(*struct {
  18691. Flen1 [0]Tush
  18692. Fdad Tush
  18693. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18694. },
  18695. 164: {
  18696. Ffc: *(*struct {
  18697. Fcode [0]Tush
  18698. Ffreq Tush
  18699. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(75)})),
  18700. Fdl: *(*struct {
  18701. Flen1 [0]Tush
  18702. Fdad Tush
  18703. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18704. },
  18705. 165: {
  18706. Ffc: *(*struct {
  18707. Fcode [0]Tush
  18708. Ffreq Tush
  18709. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(331)})),
  18710. Fdl: *(*struct {
  18711. Flen1 [0]Tush
  18712. Fdad Tush
  18713. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18714. },
  18715. 166: {
  18716. Ffc: *(*struct {
  18717. Fcode [0]Tush
  18718. Ffreq Tush
  18719. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(203)})),
  18720. Fdl: *(*struct {
  18721. Flen1 [0]Tush
  18722. Fdad Tush
  18723. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18724. },
  18725. 167: {
  18726. Ffc: *(*struct {
  18727. Fcode [0]Tush
  18728. Ffreq Tush
  18729. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(459)})),
  18730. Fdl: *(*struct {
  18731. Flen1 [0]Tush
  18732. Fdad Tush
  18733. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18734. },
  18735. 168: {
  18736. Ffc: *(*struct {
  18737. Fcode [0]Tush
  18738. Ffreq Tush
  18739. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(43)})),
  18740. Fdl: *(*struct {
  18741. Flen1 [0]Tush
  18742. Fdad Tush
  18743. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18744. },
  18745. 169: {
  18746. Ffc: *(*struct {
  18747. Fcode [0]Tush
  18748. Ffreq Tush
  18749. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(299)})),
  18750. Fdl: *(*struct {
  18751. Flen1 [0]Tush
  18752. Fdad Tush
  18753. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18754. },
  18755. 170: {
  18756. Ffc: *(*struct {
  18757. Fcode [0]Tush
  18758. Ffreq Tush
  18759. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(171)})),
  18760. Fdl: *(*struct {
  18761. Flen1 [0]Tush
  18762. Fdad Tush
  18763. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18764. },
  18765. 171: {
  18766. Ffc: *(*struct {
  18767. Fcode [0]Tush
  18768. Ffreq Tush
  18769. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(427)})),
  18770. Fdl: *(*struct {
  18771. Flen1 [0]Tush
  18772. Fdad Tush
  18773. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18774. },
  18775. 172: {
  18776. Ffc: *(*struct {
  18777. Fcode [0]Tush
  18778. Ffreq Tush
  18779. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(107)})),
  18780. Fdl: *(*struct {
  18781. Flen1 [0]Tush
  18782. Fdad Tush
  18783. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18784. },
  18785. 173: {
  18786. Ffc: *(*struct {
  18787. Fcode [0]Tush
  18788. Ffreq Tush
  18789. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(363)})),
  18790. Fdl: *(*struct {
  18791. Flen1 [0]Tush
  18792. Fdad Tush
  18793. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18794. },
  18795. 174: {
  18796. Ffc: *(*struct {
  18797. Fcode [0]Tush
  18798. Ffreq Tush
  18799. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(235)})),
  18800. Fdl: *(*struct {
  18801. Flen1 [0]Tush
  18802. Fdad Tush
  18803. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18804. },
  18805. 175: {
  18806. Ffc: *(*struct {
  18807. Fcode [0]Tush
  18808. Ffreq Tush
  18809. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(491)})),
  18810. Fdl: *(*struct {
  18811. Flen1 [0]Tush
  18812. Fdad Tush
  18813. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18814. },
  18815. 176: {
  18816. Ffc: *(*struct {
  18817. Fcode [0]Tush
  18818. Ffreq Tush
  18819. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(27)})),
  18820. Fdl: *(*struct {
  18821. Flen1 [0]Tush
  18822. Fdad Tush
  18823. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18824. },
  18825. 177: {
  18826. Ffc: *(*struct {
  18827. Fcode [0]Tush
  18828. Ffreq Tush
  18829. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(283)})),
  18830. Fdl: *(*struct {
  18831. Flen1 [0]Tush
  18832. Fdad Tush
  18833. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18834. },
  18835. 178: {
  18836. Ffc: *(*struct {
  18837. Fcode [0]Tush
  18838. Ffreq Tush
  18839. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(155)})),
  18840. Fdl: *(*struct {
  18841. Flen1 [0]Tush
  18842. Fdad Tush
  18843. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18844. },
  18845. 179: {
  18846. Ffc: *(*struct {
  18847. Fcode [0]Tush
  18848. Ffreq Tush
  18849. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(411)})),
  18850. Fdl: *(*struct {
  18851. Flen1 [0]Tush
  18852. Fdad Tush
  18853. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18854. },
  18855. 180: {
  18856. Ffc: *(*struct {
  18857. Fcode [0]Tush
  18858. Ffreq Tush
  18859. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(91)})),
  18860. Fdl: *(*struct {
  18861. Flen1 [0]Tush
  18862. Fdad Tush
  18863. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18864. },
  18865. 181: {
  18866. Ffc: *(*struct {
  18867. Fcode [0]Tush
  18868. Ffreq Tush
  18869. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(347)})),
  18870. Fdl: *(*struct {
  18871. Flen1 [0]Tush
  18872. Fdad Tush
  18873. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18874. },
  18875. 182: {
  18876. Ffc: *(*struct {
  18877. Fcode [0]Tush
  18878. Ffreq Tush
  18879. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(219)})),
  18880. Fdl: *(*struct {
  18881. Flen1 [0]Tush
  18882. Fdad Tush
  18883. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18884. },
  18885. 183: {
  18886. Ffc: *(*struct {
  18887. Fcode [0]Tush
  18888. Ffreq Tush
  18889. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(475)})),
  18890. Fdl: *(*struct {
  18891. Flen1 [0]Tush
  18892. Fdad Tush
  18893. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18894. },
  18895. 184: {
  18896. Ffc: *(*struct {
  18897. Fcode [0]Tush
  18898. Ffreq Tush
  18899. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(59)})),
  18900. Fdl: *(*struct {
  18901. Flen1 [0]Tush
  18902. Fdad Tush
  18903. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18904. },
  18905. 185: {
  18906. Ffc: *(*struct {
  18907. Fcode [0]Tush
  18908. Ffreq Tush
  18909. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(315)})),
  18910. Fdl: *(*struct {
  18911. Flen1 [0]Tush
  18912. Fdad Tush
  18913. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18914. },
  18915. 186: {
  18916. Ffc: *(*struct {
  18917. Fcode [0]Tush
  18918. Ffreq Tush
  18919. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(187)})),
  18920. Fdl: *(*struct {
  18921. Flen1 [0]Tush
  18922. Fdad Tush
  18923. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18924. },
  18925. 187: {
  18926. Ffc: *(*struct {
  18927. Fcode [0]Tush
  18928. Ffreq Tush
  18929. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(443)})),
  18930. Fdl: *(*struct {
  18931. Flen1 [0]Tush
  18932. Fdad Tush
  18933. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18934. },
  18935. 188: {
  18936. Ffc: *(*struct {
  18937. Fcode [0]Tush
  18938. Ffreq Tush
  18939. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(123)})),
  18940. Fdl: *(*struct {
  18941. Flen1 [0]Tush
  18942. Fdad Tush
  18943. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18944. },
  18945. 189: {
  18946. Ffc: *(*struct {
  18947. Fcode [0]Tush
  18948. Ffreq Tush
  18949. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(379)})),
  18950. Fdl: *(*struct {
  18951. Flen1 [0]Tush
  18952. Fdad Tush
  18953. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18954. },
  18955. 190: {
  18956. Ffc: *(*struct {
  18957. Fcode [0]Tush
  18958. Ffreq Tush
  18959. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(251)})),
  18960. Fdl: *(*struct {
  18961. Flen1 [0]Tush
  18962. Fdad Tush
  18963. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18964. },
  18965. 191: {
  18966. Ffc: *(*struct {
  18967. Fcode [0]Tush
  18968. Ffreq Tush
  18969. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(507)})),
  18970. Fdl: *(*struct {
  18971. Flen1 [0]Tush
  18972. Fdad Tush
  18973. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18974. },
  18975. 192: {
  18976. Ffc: *(*struct {
  18977. Fcode [0]Tush
  18978. Ffreq Tush
  18979. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  18980. Fdl: *(*struct {
  18981. Flen1 [0]Tush
  18982. Fdad Tush
  18983. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18984. },
  18985. 193: {
  18986. Ffc: *(*struct {
  18987. Fcode [0]Tush
  18988. Ffreq Tush
  18989. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(263)})),
  18990. Fdl: *(*struct {
  18991. Flen1 [0]Tush
  18992. Fdad Tush
  18993. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18994. },
  18995. 194: {
  18996. Ffc: *(*struct {
  18997. Fcode [0]Tush
  18998. Ffreq Tush
  18999. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(135)})),
  19000. Fdl: *(*struct {
  19001. Flen1 [0]Tush
  19002. Fdad Tush
  19003. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19004. },
  19005. 195: {
  19006. Ffc: *(*struct {
  19007. Fcode [0]Tush
  19008. Ffreq Tush
  19009. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(391)})),
  19010. Fdl: *(*struct {
  19011. Flen1 [0]Tush
  19012. Fdad Tush
  19013. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19014. },
  19015. 196: {
  19016. Ffc: *(*struct {
  19017. Fcode [0]Tush
  19018. Ffreq Tush
  19019. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(71)})),
  19020. Fdl: *(*struct {
  19021. Flen1 [0]Tush
  19022. Fdad Tush
  19023. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19024. },
  19025. 197: {
  19026. Ffc: *(*struct {
  19027. Fcode [0]Tush
  19028. Ffreq Tush
  19029. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(327)})),
  19030. Fdl: *(*struct {
  19031. Flen1 [0]Tush
  19032. Fdad Tush
  19033. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19034. },
  19035. 198: {
  19036. Ffc: *(*struct {
  19037. Fcode [0]Tush
  19038. Ffreq Tush
  19039. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(199)})),
  19040. Fdl: *(*struct {
  19041. Flen1 [0]Tush
  19042. Fdad Tush
  19043. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19044. },
  19045. 199: {
  19046. Ffc: *(*struct {
  19047. Fcode [0]Tush
  19048. Ffreq Tush
  19049. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(455)})),
  19050. Fdl: *(*struct {
  19051. Flen1 [0]Tush
  19052. Fdad Tush
  19053. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19054. },
  19055. 200: {
  19056. Ffc: *(*struct {
  19057. Fcode [0]Tush
  19058. Ffreq Tush
  19059. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(39)})),
  19060. Fdl: *(*struct {
  19061. Flen1 [0]Tush
  19062. Fdad Tush
  19063. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19064. },
  19065. 201: {
  19066. Ffc: *(*struct {
  19067. Fcode [0]Tush
  19068. Ffreq Tush
  19069. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(295)})),
  19070. Fdl: *(*struct {
  19071. Flen1 [0]Tush
  19072. Fdad Tush
  19073. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19074. },
  19075. 202: {
  19076. Ffc: *(*struct {
  19077. Fcode [0]Tush
  19078. Ffreq Tush
  19079. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(167)})),
  19080. Fdl: *(*struct {
  19081. Flen1 [0]Tush
  19082. Fdad Tush
  19083. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19084. },
  19085. 203: {
  19086. Ffc: *(*struct {
  19087. Fcode [0]Tush
  19088. Ffreq Tush
  19089. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(423)})),
  19090. Fdl: *(*struct {
  19091. Flen1 [0]Tush
  19092. Fdad Tush
  19093. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19094. },
  19095. 204: {
  19096. Ffc: *(*struct {
  19097. Fcode [0]Tush
  19098. Ffreq Tush
  19099. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(103)})),
  19100. Fdl: *(*struct {
  19101. Flen1 [0]Tush
  19102. Fdad Tush
  19103. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19104. },
  19105. 205: {
  19106. Ffc: *(*struct {
  19107. Fcode [0]Tush
  19108. Ffreq Tush
  19109. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(359)})),
  19110. Fdl: *(*struct {
  19111. Flen1 [0]Tush
  19112. Fdad Tush
  19113. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19114. },
  19115. 206: {
  19116. Ffc: *(*struct {
  19117. Fcode [0]Tush
  19118. Ffreq Tush
  19119. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(231)})),
  19120. Fdl: *(*struct {
  19121. Flen1 [0]Tush
  19122. Fdad Tush
  19123. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19124. },
  19125. 207: {
  19126. Ffc: *(*struct {
  19127. Fcode [0]Tush
  19128. Ffreq Tush
  19129. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(487)})),
  19130. Fdl: *(*struct {
  19131. Flen1 [0]Tush
  19132. Fdad Tush
  19133. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19134. },
  19135. 208: {
  19136. Ffc: *(*struct {
  19137. Fcode [0]Tush
  19138. Ffreq Tush
  19139. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(23)})),
  19140. Fdl: *(*struct {
  19141. Flen1 [0]Tush
  19142. Fdad Tush
  19143. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19144. },
  19145. 209: {
  19146. Ffc: *(*struct {
  19147. Fcode [0]Tush
  19148. Ffreq Tush
  19149. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(279)})),
  19150. Fdl: *(*struct {
  19151. Flen1 [0]Tush
  19152. Fdad Tush
  19153. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19154. },
  19155. 210: {
  19156. Ffc: *(*struct {
  19157. Fcode [0]Tush
  19158. Ffreq Tush
  19159. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(151)})),
  19160. Fdl: *(*struct {
  19161. Flen1 [0]Tush
  19162. Fdad Tush
  19163. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19164. },
  19165. 211: {
  19166. Ffc: *(*struct {
  19167. Fcode [0]Tush
  19168. Ffreq Tush
  19169. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(407)})),
  19170. Fdl: *(*struct {
  19171. Flen1 [0]Tush
  19172. Fdad Tush
  19173. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19174. },
  19175. 212: {
  19176. Ffc: *(*struct {
  19177. Fcode [0]Tush
  19178. Ffreq Tush
  19179. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(87)})),
  19180. Fdl: *(*struct {
  19181. Flen1 [0]Tush
  19182. Fdad Tush
  19183. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19184. },
  19185. 213: {
  19186. Ffc: *(*struct {
  19187. Fcode [0]Tush
  19188. Ffreq Tush
  19189. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(343)})),
  19190. Fdl: *(*struct {
  19191. Flen1 [0]Tush
  19192. Fdad Tush
  19193. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19194. },
  19195. 214: {
  19196. Ffc: *(*struct {
  19197. Fcode [0]Tush
  19198. Ffreq Tush
  19199. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(215)})),
  19200. Fdl: *(*struct {
  19201. Flen1 [0]Tush
  19202. Fdad Tush
  19203. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19204. },
  19205. 215: {
  19206. Ffc: *(*struct {
  19207. Fcode [0]Tush
  19208. Ffreq Tush
  19209. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(471)})),
  19210. Fdl: *(*struct {
  19211. Flen1 [0]Tush
  19212. Fdad Tush
  19213. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19214. },
  19215. 216: {
  19216. Ffc: *(*struct {
  19217. Fcode [0]Tush
  19218. Ffreq Tush
  19219. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(55)})),
  19220. Fdl: *(*struct {
  19221. Flen1 [0]Tush
  19222. Fdad Tush
  19223. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19224. },
  19225. 217: {
  19226. Ffc: *(*struct {
  19227. Fcode [0]Tush
  19228. Ffreq Tush
  19229. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(311)})),
  19230. Fdl: *(*struct {
  19231. Flen1 [0]Tush
  19232. Fdad Tush
  19233. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19234. },
  19235. 218: {
  19236. Ffc: *(*struct {
  19237. Fcode [0]Tush
  19238. Ffreq Tush
  19239. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(183)})),
  19240. Fdl: *(*struct {
  19241. Flen1 [0]Tush
  19242. Fdad Tush
  19243. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19244. },
  19245. 219: {
  19246. Ffc: *(*struct {
  19247. Fcode [0]Tush
  19248. Ffreq Tush
  19249. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(439)})),
  19250. Fdl: *(*struct {
  19251. Flen1 [0]Tush
  19252. Fdad Tush
  19253. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19254. },
  19255. 220: {
  19256. Ffc: *(*struct {
  19257. Fcode [0]Tush
  19258. Ffreq Tush
  19259. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(119)})),
  19260. Fdl: *(*struct {
  19261. Flen1 [0]Tush
  19262. Fdad Tush
  19263. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19264. },
  19265. 221: {
  19266. Ffc: *(*struct {
  19267. Fcode [0]Tush
  19268. Ffreq Tush
  19269. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(375)})),
  19270. Fdl: *(*struct {
  19271. Flen1 [0]Tush
  19272. Fdad Tush
  19273. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19274. },
  19275. 222: {
  19276. Ffc: *(*struct {
  19277. Fcode [0]Tush
  19278. Ffreq Tush
  19279. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(247)})),
  19280. Fdl: *(*struct {
  19281. Flen1 [0]Tush
  19282. Fdad Tush
  19283. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19284. },
  19285. 223: {
  19286. Ffc: *(*struct {
  19287. Fcode [0]Tush
  19288. Ffreq Tush
  19289. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(503)})),
  19290. Fdl: *(*struct {
  19291. Flen1 [0]Tush
  19292. Fdad Tush
  19293. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19294. },
  19295. 224: {
  19296. Ffc: *(*struct {
  19297. Fcode [0]Tush
  19298. Ffreq Tush
  19299. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(15)})),
  19300. Fdl: *(*struct {
  19301. Flen1 [0]Tush
  19302. Fdad Tush
  19303. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19304. },
  19305. 225: {
  19306. Ffc: *(*struct {
  19307. Fcode [0]Tush
  19308. Ffreq Tush
  19309. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(271)})),
  19310. Fdl: *(*struct {
  19311. Flen1 [0]Tush
  19312. Fdad Tush
  19313. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19314. },
  19315. 226: {
  19316. Ffc: *(*struct {
  19317. Fcode [0]Tush
  19318. Ffreq Tush
  19319. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(143)})),
  19320. Fdl: *(*struct {
  19321. Flen1 [0]Tush
  19322. Fdad Tush
  19323. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19324. },
  19325. 227: {
  19326. Ffc: *(*struct {
  19327. Fcode [0]Tush
  19328. Ffreq Tush
  19329. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(399)})),
  19330. Fdl: *(*struct {
  19331. Flen1 [0]Tush
  19332. Fdad Tush
  19333. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19334. },
  19335. 228: {
  19336. Ffc: *(*struct {
  19337. Fcode [0]Tush
  19338. Ffreq Tush
  19339. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(79)})),
  19340. Fdl: *(*struct {
  19341. Flen1 [0]Tush
  19342. Fdad Tush
  19343. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19344. },
  19345. 229: {
  19346. Ffc: *(*struct {
  19347. Fcode [0]Tush
  19348. Ffreq Tush
  19349. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(335)})),
  19350. Fdl: *(*struct {
  19351. Flen1 [0]Tush
  19352. Fdad Tush
  19353. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19354. },
  19355. 230: {
  19356. Ffc: *(*struct {
  19357. Fcode [0]Tush
  19358. Ffreq Tush
  19359. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(207)})),
  19360. Fdl: *(*struct {
  19361. Flen1 [0]Tush
  19362. Fdad Tush
  19363. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19364. },
  19365. 231: {
  19366. Ffc: *(*struct {
  19367. Fcode [0]Tush
  19368. Ffreq Tush
  19369. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(463)})),
  19370. Fdl: *(*struct {
  19371. Flen1 [0]Tush
  19372. Fdad Tush
  19373. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19374. },
  19375. 232: {
  19376. Ffc: *(*struct {
  19377. Fcode [0]Tush
  19378. Ffreq Tush
  19379. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(47)})),
  19380. Fdl: *(*struct {
  19381. Flen1 [0]Tush
  19382. Fdad Tush
  19383. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19384. },
  19385. 233: {
  19386. Ffc: *(*struct {
  19387. Fcode [0]Tush
  19388. Ffreq Tush
  19389. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(303)})),
  19390. Fdl: *(*struct {
  19391. Flen1 [0]Tush
  19392. Fdad Tush
  19393. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19394. },
  19395. 234: {
  19396. Ffc: *(*struct {
  19397. Fcode [0]Tush
  19398. Ffreq Tush
  19399. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(175)})),
  19400. Fdl: *(*struct {
  19401. Flen1 [0]Tush
  19402. Fdad Tush
  19403. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19404. },
  19405. 235: {
  19406. Ffc: *(*struct {
  19407. Fcode [0]Tush
  19408. Ffreq Tush
  19409. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(431)})),
  19410. Fdl: *(*struct {
  19411. Flen1 [0]Tush
  19412. Fdad Tush
  19413. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19414. },
  19415. 236: {
  19416. Ffc: *(*struct {
  19417. Fcode [0]Tush
  19418. Ffreq Tush
  19419. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(111)})),
  19420. Fdl: *(*struct {
  19421. Flen1 [0]Tush
  19422. Fdad Tush
  19423. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19424. },
  19425. 237: {
  19426. Ffc: *(*struct {
  19427. Fcode [0]Tush
  19428. Ffreq Tush
  19429. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(367)})),
  19430. Fdl: *(*struct {
  19431. Flen1 [0]Tush
  19432. Fdad Tush
  19433. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19434. },
  19435. 238: {
  19436. Ffc: *(*struct {
  19437. Fcode [0]Tush
  19438. Ffreq Tush
  19439. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(239)})),
  19440. Fdl: *(*struct {
  19441. Flen1 [0]Tush
  19442. Fdad Tush
  19443. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19444. },
  19445. 239: {
  19446. Ffc: *(*struct {
  19447. Fcode [0]Tush
  19448. Ffreq Tush
  19449. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(495)})),
  19450. Fdl: *(*struct {
  19451. Flen1 [0]Tush
  19452. Fdad Tush
  19453. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19454. },
  19455. 240: {
  19456. Ffc: *(*struct {
  19457. Fcode [0]Tush
  19458. Ffreq Tush
  19459. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(31)})),
  19460. Fdl: *(*struct {
  19461. Flen1 [0]Tush
  19462. Fdad Tush
  19463. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19464. },
  19465. 241: {
  19466. Ffc: *(*struct {
  19467. Fcode [0]Tush
  19468. Ffreq Tush
  19469. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(287)})),
  19470. Fdl: *(*struct {
  19471. Flen1 [0]Tush
  19472. Fdad Tush
  19473. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19474. },
  19475. 242: {
  19476. Ffc: *(*struct {
  19477. Fcode [0]Tush
  19478. Ffreq Tush
  19479. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(159)})),
  19480. Fdl: *(*struct {
  19481. Flen1 [0]Tush
  19482. Fdad Tush
  19483. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19484. },
  19485. 243: {
  19486. Ffc: *(*struct {
  19487. Fcode [0]Tush
  19488. Ffreq Tush
  19489. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(415)})),
  19490. Fdl: *(*struct {
  19491. Flen1 [0]Tush
  19492. Fdad Tush
  19493. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19494. },
  19495. 244: {
  19496. Ffc: *(*struct {
  19497. Fcode [0]Tush
  19498. Ffreq Tush
  19499. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(95)})),
  19500. Fdl: *(*struct {
  19501. Flen1 [0]Tush
  19502. Fdad Tush
  19503. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19504. },
  19505. 245: {
  19506. Ffc: *(*struct {
  19507. Fcode [0]Tush
  19508. Ffreq Tush
  19509. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(351)})),
  19510. Fdl: *(*struct {
  19511. Flen1 [0]Tush
  19512. Fdad Tush
  19513. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19514. },
  19515. 246: {
  19516. Ffc: *(*struct {
  19517. Fcode [0]Tush
  19518. Ffreq Tush
  19519. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(223)})),
  19520. Fdl: *(*struct {
  19521. Flen1 [0]Tush
  19522. Fdad Tush
  19523. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19524. },
  19525. 247: {
  19526. Ffc: *(*struct {
  19527. Fcode [0]Tush
  19528. Ffreq Tush
  19529. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(479)})),
  19530. Fdl: *(*struct {
  19531. Flen1 [0]Tush
  19532. Fdad Tush
  19533. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19534. },
  19535. 248: {
  19536. Ffc: *(*struct {
  19537. Fcode [0]Tush
  19538. Ffreq Tush
  19539. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(63)})),
  19540. Fdl: *(*struct {
  19541. Flen1 [0]Tush
  19542. Fdad Tush
  19543. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19544. },
  19545. 249: {
  19546. Ffc: *(*struct {
  19547. Fcode [0]Tush
  19548. Ffreq Tush
  19549. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(319)})),
  19550. Fdl: *(*struct {
  19551. Flen1 [0]Tush
  19552. Fdad Tush
  19553. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19554. },
  19555. 250: {
  19556. Ffc: *(*struct {
  19557. Fcode [0]Tush
  19558. Ffreq Tush
  19559. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(191)})),
  19560. Fdl: *(*struct {
  19561. Flen1 [0]Tush
  19562. Fdad Tush
  19563. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19564. },
  19565. 251: {
  19566. Ffc: *(*struct {
  19567. Fcode [0]Tush
  19568. Ffreq Tush
  19569. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(447)})),
  19570. Fdl: *(*struct {
  19571. Flen1 [0]Tush
  19572. Fdad Tush
  19573. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19574. },
  19575. 252: {
  19576. Ffc: *(*struct {
  19577. Fcode [0]Tush
  19578. Ffreq Tush
  19579. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(127)})),
  19580. Fdl: *(*struct {
  19581. Flen1 [0]Tush
  19582. Fdad Tush
  19583. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19584. },
  19585. 253: {
  19586. Ffc: *(*struct {
  19587. Fcode [0]Tush
  19588. Ffreq Tush
  19589. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(383)})),
  19590. Fdl: *(*struct {
  19591. Flen1 [0]Tush
  19592. Fdad Tush
  19593. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19594. },
  19595. 254: {
  19596. Ffc: *(*struct {
  19597. Fcode [0]Tush
  19598. Ffreq Tush
  19599. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(255)})),
  19600. Fdl: *(*struct {
  19601. Flen1 [0]Tush
  19602. Fdad Tush
  19603. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19604. },
  19605. 255: {
  19606. Ffc: *(*struct {
  19607. Fcode [0]Tush
  19608. Ffreq Tush
  19609. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(511)})),
  19610. Fdl: *(*struct {
  19611. Flen1 [0]Tush
  19612. Fdad Tush
  19613. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19614. },
  19615. 256: {
  19616. Fdl: *(*struct {
  19617. Flen1 [0]Tush
  19618. Fdad Tush
  19619. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19620. },
  19621. 257: {
  19622. Ffc: *(*struct {
  19623. Fcode [0]Tush
  19624. Ffreq Tush
  19625. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(64)})),
  19626. Fdl: *(*struct {
  19627. Flen1 [0]Tush
  19628. Fdad Tush
  19629. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19630. },
  19631. 258: {
  19632. Ffc: *(*struct {
  19633. Fcode [0]Tush
  19634. Ffreq Tush
  19635. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(32)})),
  19636. Fdl: *(*struct {
  19637. Flen1 [0]Tush
  19638. Fdad Tush
  19639. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19640. },
  19641. 259: {
  19642. Ffc: *(*struct {
  19643. Fcode [0]Tush
  19644. Ffreq Tush
  19645. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(96)})),
  19646. Fdl: *(*struct {
  19647. Flen1 [0]Tush
  19648. Fdad Tush
  19649. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19650. },
  19651. 260: {
  19652. Ffc: *(*struct {
  19653. Fcode [0]Tush
  19654. Ffreq Tush
  19655. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(16)})),
  19656. Fdl: *(*struct {
  19657. Flen1 [0]Tush
  19658. Fdad Tush
  19659. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19660. },
  19661. 261: {
  19662. Ffc: *(*struct {
  19663. Fcode [0]Tush
  19664. Ffreq Tush
  19665. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(80)})),
  19666. Fdl: *(*struct {
  19667. Flen1 [0]Tush
  19668. Fdad Tush
  19669. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19670. },
  19671. 262: {
  19672. Ffc: *(*struct {
  19673. Fcode [0]Tush
  19674. Ffreq Tush
  19675. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(48)})),
  19676. Fdl: *(*struct {
  19677. Flen1 [0]Tush
  19678. Fdad Tush
  19679. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19680. },
  19681. 263: {
  19682. Ffc: *(*struct {
  19683. Fcode [0]Tush
  19684. Ffreq Tush
  19685. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(112)})),
  19686. Fdl: *(*struct {
  19687. Flen1 [0]Tush
  19688. Fdad Tush
  19689. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19690. },
  19691. 264: {
  19692. Ffc: *(*struct {
  19693. Fcode [0]Tush
  19694. Ffreq Tush
  19695. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19696. Fdl: *(*struct {
  19697. Flen1 [0]Tush
  19698. Fdad Tush
  19699. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19700. },
  19701. 265: {
  19702. Ffc: *(*struct {
  19703. Fcode [0]Tush
  19704. Ffreq Tush
  19705. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(72)})),
  19706. Fdl: *(*struct {
  19707. Flen1 [0]Tush
  19708. Fdad Tush
  19709. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19710. },
  19711. 266: {
  19712. Ffc: *(*struct {
  19713. Fcode [0]Tush
  19714. Ffreq Tush
  19715. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(40)})),
  19716. Fdl: *(*struct {
  19717. Flen1 [0]Tush
  19718. Fdad Tush
  19719. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19720. },
  19721. 267: {
  19722. Ffc: *(*struct {
  19723. Fcode [0]Tush
  19724. Ffreq Tush
  19725. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(104)})),
  19726. Fdl: *(*struct {
  19727. Flen1 [0]Tush
  19728. Fdad Tush
  19729. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19730. },
  19731. 268: {
  19732. Ffc: *(*struct {
  19733. Fcode [0]Tush
  19734. Ffreq Tush
  19735. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(24)})),
  19736. Fdl: *(*struct {
  19737. Flen1 [0]Tush
  19738. Fdad Tush
  19739. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19740. },
  19741. 269: {
  19742. Ffc: *(*struct {
  19743. Fcode [0]Tush
  19744. Ffreq Tush
  19745. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(88)})),
  19746. Fdl: *(*struct {
  19747. Flen1 [0]Tush
  19748. Fdad Tush
  19749. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19750. },
  19751. 270: {
  19752. Ffc: *(*struct {
  19753. Fcode [0]Tush
  19754. Ffreq Tush
  19755. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(56)})),
  19756. Fdl: *(*struct {
  19757. Flen1 [0]Tush
  19758. Fdad Tush
  19759. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19760. },
  19761. 271: {
  19762. Ffc: *(*struct {
  19763. Fcode [0]Tush
  19764. Ffreq Tush
  19765. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(120)})),
  19766. Fdl: *(*struct {
  19767. Flen1 [0]Tush
  19768. Fdad Tush
  19769. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19770. },
  19771. 272: {
  19772. Ffc: *(*struct {
  19773. Fcode [0]Tush
  19774. Ffreq Tush
  19775. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(4)})),
  19776. Fdl: *(*struct {
  19777. Flen1 [0]Tush
  19778. Fdad Tush
  19779. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19780. },
  19781. 273: {
  19782. Ffc: *(*struct {
  19783. Fcode [0]Tush
  19784. Ffreq Tush
  19785. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(68)})),
  19786. Fdl: *(*struct {
  19787. Flen1 [0]Tush
  19788. Fdad Tush
  19789. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19790. },
  19791. 274: {
  19792. Ffc: *(*struct {
  19793. Fcode [0]Tush
  19794. Ffreq Tush
  19795. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(36)})),
  19796. Fdl: *(*struct {
  19797. Flen1 [0]Tush
  19798. Fdad Tush
  19799. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19800. },
  19801. 275: {
  19802. Ffc: *(*struct {
  19803. Fcode [0]Tush
  19804. Ffreq Tush
  19805. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(100)})),
  19806. Fdl: *(*struct {
  19807. Flen1 [0]Tush
  19808. Fdad Tush
  19809. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19810. },
  19811. 276: {
  19812. Ffc: *(*struct {
  19813. Fcode [0]Tush
  19814. Ffreq Tush
  19815. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(20)})),
  19816. Fdl: *(*struct {
  19817. Flen1 [0]Tush
  19818. Fdad Tush
  19819. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19820. },
  19821. 277: {
  19822. Ffc: *(*struct {
  19823. Fcode [0]Tush
  19824. Ffreq Tush
  19825. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(84)})),
  19826. Fdl: *(*struct {
  19827. Flen1 [0]Tush
  19828. Fdad Tush
  19829. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19830. },
  19831. 278: {
  19832. Ffc: *(*struct {
  19833. Fcode [0]Tush
  19834. Ffreq Tush
  19835. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(52)})),
  19836. Fdl: *(*struct {
  19837. Flen1 [0]Tush
  19838. Fdad Tush
  19839. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19840. },
  19841. 279: {
  19842. Ffc: *(*struct {
  19843. Fcode [0]Tush
  19844. Ffreq Tush
  19845. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(116)})),
  19846. Fdl: *(*struct {
  19847. Flen1 [0]Tush
  19848. Fdad Tush
  19849. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19850. },
  19851. 280: {
  19852. Ffc: *(*struct {
  19853. Fcode [0]Tush
  19854. Ffreq Tush
  19855. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(3)})),
  19856. Fdl: *(*struct {
  19857. Flen1 [0]Tush
  19858. Fdad Tush
  19859. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19860. },
  19861. 281: {
  19862. Ffc: *(*struct {
  19863. Fcode [0]Tush
  19864. Ffreq Tush
  19865. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(131)})),
  19866. Fdl: *(*struct {
  19867. Flen1 [0]Tush
  19868. Fdad Tush
  19869. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19870. },
  19871. 282: {
  19872. Ffc: *(*struct {
  19873. Fcode [0]Tush
  19874. Ffreq Tush
  19875. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(67)})),
  19876. Fdl: *(*struct {
  19877. Flen1 [0]Tush
  19878. Fdad Tush
  19879. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19880. },
  19881. 283: {
  19882. Ffc: *(*struct {
  19883. Fcode [0]Tush
  19884. Ffreq Tush
  19885. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(195)})),
  19886. Fdl: *(*struct {
  19887. Flen1 [0]Tush
  19888. Fdad Tush
  19889. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19890. },
  19891. 284: {
  19892. Ffc: *(*struct {
  19893. Fcode [0]Tush
  19894. Ffreq Tush
  19895. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(35)})),
  19896. Fdl: *(*struct {
  19897. Flen1 [0]Tush
  19898. Fdad Tush
  19899. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19900. },
  19901. 285: {
  19902. Ffc: *(*struct {
  19903. Fcode [0]Tush
  19904. Ffreq Tush
  19905. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(163)})),
  19906. Fdl: *(*struct {
  19907. Flen1 [0]Tush
  19908. Fdad Tush
  19909. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19910. },
  19911. 286: {
  19912. Ffc: *(*struct {
  19913. Fcode [0]Tush
  19914. Ffreq Tush
  19915. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(99)})),
  19916. Fdl: *(*struct {
  19917. Flen1 [0]Tush
  19918. Fdad Tush
  19919. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19920. },
  19921. 287: {
  19922. Ffc: *(*struct {
  19923. Fcode [0]Tush
  19924. Ffreq Tush
  19925. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(227)})),
  19926. Fdl: *(*struct {
  19927. Flen1 [0]Tush
  19928. Fdad Tush
  19929. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19930. },
  19931. }
  19932. var _static_dtree = [30]Tct_data{
  19933. 0: {
  19934. Fdl: *(*struct {
  19935. Flen1 [0]Tush
  19936. Fdad Tush
  19937. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19938. },
  19939. 1: {
  19940. Ffc: *(*struct {
  19941. Fcode [0]Tush
  19942. Ffreq Tush
  19943. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(16)})),
  19944. Fdl: *(*struct {
  19945. Flen1 [0]Tush
  19946. Fdad Tush
  19947. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19948. },
  19949. 2: {
  19950. Ffc: *(*struct {
  19951. Fcode [0]Tush
  19952. Ffreq Tush
  19953. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19954. Fdl: *(*struct {
  19955. Flen1 [0]Tush
  19956. Fdad Tush
  19957. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19958. },
  19959. 3: {
  19960. Ffc: *(*struct {
  19961. Fcode [0]Tush
  19962. Ffreq Tush
  19963. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(24)})),
  19964. Fdl: *(*struct {
  19965. Flen1 [0]Tush
  19966. Fdad Tush
  19967. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19968. },
  19969. 4: {
  19970. Ffc: *(*struct {
  19971. Fcode [0]Tush
  19972. Ffreq Tush
  19973. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(4)})),
  19974. Fdl: *(*struct {
  19975. Flen1 [0]Tush
  19976. Fdad Tush
  19977. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19978. },
  19979. 5: {
  19980. Ffc: *(*struct {
  19981. Fcode [0]Tush
  19982. Ffreq Tush
  19983. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(20)})),
  19984. Fdl: *(*struct {
  19985. Flen1 [0]Tush
  19986. Fdad Tush
  19987. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19988. },
  19989. 6: {
  19990. Ffc: *(*struct {
  19991. Fcode [0]Tush
  19992. Ffreq Tush
  19993. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(12)})),
  19994. Fdl: *(*struct {
  19995. Flen1 [0]Tush
  19996. Fdad Tush
  19997. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  19998. },
  19999. 7: {
  20000. Ffc: *(*struct {
  20001. Fcode [0]Tush
  20002. Ffreq Tush
  20003. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(28)})),
  20004. Fdl: *(*struct {
  20005. Flen1 [0]Tush
  20006. Fdad Tush
  20007. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20008. },
  20009. 8: {
  20010. Ffc: *(*struct {
  20011. Fcode [0]Tush
  20012. Ffreq Tush
  20013. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(2)})),
  20014. Fdl: *(*struct {
  20015. Flen1 [0]Tush
  20016. Fdad Tush
  20017. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20018. },
  20019. 9: {
  20020. Ffc: *(*struct {
  20021. Fcode [0]Tush
  20022. Ffreq Tush
  20023. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(18)})),
  20024. Fdl: *(*struct {
  20025. Flen1 [0]Tush
  20026. Fdad Tush
  20027. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20028. },
  20029. 10: {
  20030. Ffc: *(*struct {
  20031. Fcode [0]Tush
  20032. Ffreq Tush
  20033. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(10)})),
  20034. Fdl: *(*struct {
  20035. Flen1 [0]Tush
  20036. Fdad Tush
  20037. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20038. },
  20039. 11: {
  20040. Ffc: *(*struct {
  20041. Fcode [0]Tush
  20042. Ffreq Tush
  20043. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(26)})),
  20044. Fdl: *(*struct {
  20045. Flen1 [0]Tush
  20046. Fdad Tush
  20047. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20048. },
  20049. 12: {
  20050. Ffc: *(*struct {
  20051. Fcode [0]Tush
  20052. Ffreq Tush
  20053. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(6)})),
  20054. Fdl: *(*struct {
  20055. Flen1 [0]Tush
  20056. Fdad Tush
  20057. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20058. },
  20059. 13: {
  20060. Ffc: *(*struct {
  20061. Fcode [0]Tush
  20062. Ffreq Tush
  20063. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(22)})),
  20064. Fdl: *(*struct {
  20065. Flen1 [0]Tush
  20066. Fdad Tush
  20067. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20068. },
  20069. 14: {
  20070. Ffc: *(*struct {
  20071. Fcode [0]Tush
  20072. Ffreq Tush
  20073. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(14)})),
  20074. Fdl: *(*struct {
  20075. Flen1 [0]Tush
  20076. Fdad Tush
  20077. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20078. },
  20079. 15: {
  20080. Ffc: *(*struct {
  20081. Fcode [0]Tush
  20082. Ffreq Tush
  20083. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(30)})),
  20084. Fdl: *(*struct {
  20085. Flen1 [0]Tush
  20086. Fdad Tush
  20087. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20088. },
  20089. 16: {
  20090. Ffc: *(*struct {
  20091. Fcode [0]Tush
  20092. Ffreq Tush
  20093. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(1)})),
  20094. Fdl: *(*struct {
  20095. Flen1 [0]Tush
  20096. Fdad Tush
  20097. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20098. },
  20099. 17: {
  20100. Ffc: *(*struct {
  20101. Fcode [0]Tush
  20102. Ffreq Tush
  20103. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(17)})),
  20104. Fdl: *(*struct {
  20105. Flen1 [0]Tush
  20106. Fdad Tush
  20107. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20108. },
  20109. 18: {
  20110. Ffc: *(*struct {
  20111. Fcode [0]Tush
  20112. Ffreq Tush
  20113. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20114. Fdl: *(*struct {
  20115. Flen1 [0]Tush
  20116. Fdad Tush
  20117. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20118. },
  20119. 19: {
  20120. Ffc: *(*struct {
  20121. Fcode [0]Tush
  20122. Ffreq Tush
  20123. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(25)})),
  20124. Fdl: *(*struct {
  20125. Flen1 [0]Tush
  20126. Fdad Tush
  20127. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20128. },
  20129. 20: {
  20130. Ffc: *(*struct {
  20131. Fcode [0]Tush
  20132. Ffreq Tush
  20133. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20134. Fdl: *(*struct {
  20135. Flen1 [0]Tush
  20136. Fdad Tush
  20137. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20138. },
  20139. 21: {
  20140. Ffc: *(*struct {
  20141. Fcode [0]Tush
  20142. Ffreq Tush
  20143. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(21)})),
  20144. Fdl: *(*struct {
  20145. Flen1 [0]Tush
  20146. Fdad Tush
  20147. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20148. },
  20149. 22: {
  20150. Ffc: *(*struct {
  20151. Fcode [0]Tush
  20152. Ffreq Tush
  20153. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(13)})),
  20154. Fdl: *(*struct {
  20155. Flen1 [0]Tush
  20156. Fdad Tush
  20157. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20158. },
  20159. 23: {
  20160. Ffc: *(*struct {
  20161. Fcode [0]Tush
  20162. Ffreq Tush
  20163. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(29)})),
  20164. Fdl: *(*struct {
  20165. Flen1 [0]Tush
  20166. Fdad Tush
  20167. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20168. },
  20169. 24: {
  20170. Ffc: *(*struct {
  20171. Fcode [0]Tush
  20172. Ffreq Tush
  20173. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(3)})),
  20174. Fdl: *(*struct {
  20175. Flen1 [0]Tush
  20176. Fdad Tush
  20177. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20178. },
  20179. 25: {
  20180. Ffc: *(*struct {
  20181. Fcode [0]Tush
  20182. Ffreq Tush
  20183. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(19)})),
  20184. Fdl: *(*struct {
  20185. Flen1 [0]Tush
  20186. Fdad Tush
  20187. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20188. },
  20189. 26: {
  20190. Ffc: *(*struct {
  20191. Fcode [0]Tush
  20192. Ffreq Tush
  20193. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(11)})),
  20194. Fdl: *(*struct {
  20195. Flen1 [0]Tush
  20196. Fdad Tush
  20197. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20198. },
  20199. 27: {
  20200. Ffc: *(*struct {
  20201. Fcode [0]Tush
  20202. Ffreq Tush
  20203. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(27)})),
  20204. Fdl: *(*struct {
  20205. Flen1 [0]Tush
  20206. Fdad Tush
  20207. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20208. },
  20209. 28: {
  20210. Ffc: *(*struct {
  20211. Fcode [0]Tush
  20212. Ffreq Tush
  20213. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  20214. Fdl: *(*struct {
  20215. Flen1 [0]Tush
  20216. Fdad Tush
  20217. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20218. },
  20219. 29: {
  20220. Ffc: *(*struct {
  20221. Fcode [0]Tush
  20222. Ffreq Tush
  20223. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(23)})),
  20224. Fdl: *(*struct {
  20225. Flen1 [0]Tush
  20226. Fdad Tush
  20227. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20228. },
  20229. }
  20230. var _base_length = [29]int32{
  20231. 1: int32(1),
  20232. 2: int32(2),
  20233. 3: int32(3),
  20234. 4: int32(4),
  20235. 5: int32(5),
  20236. 6: int32(6),
  20237. 7: int32(7),
  20238. 8: int32(8),
  20239. 9: int32(10),
  20240. 10: int32(12),
  20241. 11: int32(14),
  20242. 12: int32(16),
  20243. 13: int32(20),
  20244. 14: int32(24),
  20245. 15: int32(28),
  20246. 16: int32(32),
  20247. 17: int32(40),
  20248. 18: int32(48),
  20249. 19: int32(56),
  20250. 20: int32(64),
  20251. 21: int32(80),
  20252. 22: int32(96),
  20253. 23: int32(112),
  20254. 24: int32(128),
  20255. 25: int32(160),
  20256. 26: int32(192),
  20257. 27: int32(224),
  20258. }
  20259. var _base_dist = [30]int32{
  20260. 1: int32(1),
  20261. 2: int32(2),
  20262. 3: int32(3),
  20263. 4: int32(4),
  20264. 5: int32(6),
  20265. 6: int32(8),
  20266. 7: int32(12),
  20267. 8: int32(16),
  20268. 9: int32(24),
  20269. 10: int32(32),
  20270. 11: int32(48),
  20271. 12: int32(64),
  20272. 13: int32(96),
  20273. 14: int32(128),
  20274. 15: int32(192),
  20275. 16: int32(256),
  20276. 17: int32(384),
  20277. 18: int32(512),
  20278. 19: int32(768),
  20279. 20: int32(1024),
  20280. 21: int32(1536),
  20281. 22: int32(2048),
  20282. 23: int32(3072),
  20283. 24: int32(4096),
  20284. 25: int32(6144),
  20285. 26: int32(8192),
  20286. 27: int32(12288),
  20287. 28: int32(16384),
  20288. 29: int32(24576),
  20289. }
  20290. var _static_l_desc = Tstatic_tree_desc{
  20291. Fstatic_tree: uintptr(unsafe.Pointer(&_static_ltree)),
  20292. Fextra_bits: uintptr(unsafe.Pointer(&_extra_lbits)),
  20293. Fextra_base: libc.Int32FromInt32(m_LITERALS) + libc.Int32FromInt32(1),
  20294. Felems: libc.Int32FromInt32(m_LITERALS) + libc.Int32FromInt32(1) + libc.Int32FromInt32(m_LENGTH_CODES),
  20295. Fmax_length: int32(m_MAX_BITS),
  20296. }
  20297. var _static_d_desc = Tstatic_tree_desc{
  20298. Fstatic_tree: uintptr(unsafe.Pointer(&_static_dtree)),
  20299. Fextra_bits: uintptr(unsafe.Pointer(&_extra_dbits)),
  20300. Felems: int32(m_D_CODES),
  20301. Fmax_length: int32(m_MAX_BITS),
  20302. }
  20303. var _static_bl_desc = Tstatic_tree_desc{
  20304. Fextra_bits: uintptr(unsafe.Pointer(&_extra_blbits)),
  20305. Felems: int32(m_BL_CODES),
  20306. Fmax_length: int32(m_MAX_BL_BITS),
  20307. }
  20308. /* ===========================================================================
  20309. * Output a short LSB first on the stream.
  20310. * IN assertion: there is enough room in pendingBuf.
  20311. */
  20312. // C documentation
  20313. //
  20314. // /* ===========================================================================
  20315. // * Reverse the first len bits of a code, using straightforward code (a faster
  20316. // * method would use a table)
  20317. // * IN assertion: 1 <= len <= 15
  20318. // */
  20319. func _bi_reverse(tls *libc.TLS, code uint32, len1 int32) (r uint32) {
  20320. var res uint32
  20321. var v1 int32
  20322. _, _ = res, v1
  20323. res = uint32(0)
  20324. for {
  20325. res |= code & uint32(1)
  20326. code >>= uint32(1)
  20327. res <<= uint32(1)
  20328. goto _2
  20329. _2:
  20330. ;
  20331. len1--
  20332. v1 = len1
  20333. if !(v1 > 0) {
  20334. break
  20335. }
  20336. }
  20337. return res >> int32(1)
  20338. }
  20339. // C documentation
  20340. //
  20341. // /* ===========================================================================
  20342. // * Flush the bit buffer, keeping at most 7 bits in it.
  20343. // */
  20344. func _bi_flush(tls *libc.TLS, s uintptr) {
  20345. var v1, v3, v5 Tulg
  20346. var v2, v4, v6, p7 uintptr
  20347. _, _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6, p7
  20348. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid == int32(16) {
  20349. v2 = s + 20
  20350. v1 = *(*Tulg)(unsafe.Pointer(v2))
  20351. *(*Tulg)(unsafe.Pointer(v2))++
  20352. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20353. v4 = s + 20
  20354. v3 = *(*Tulg)(unsafe.Pointer(v4))
  20355. *(*Tulg)(unsafe.Pointer(v4))++
  20356. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20357. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  20358. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  20359. } else {
  20360. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid >= int32(8) {
  20361. v6 = s + 20
  20362. v5 = *(*Tulg)(unsafe.Pointer(v6))
  20363. *(*Tulg)(unsafe.Pointer(v6))++
  20364. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf)
  20365. p7 = s + 5816
  20366. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) >> libc.Int32FromInt32(8))
  20367. *(*int32)(unsafe.Pointer(s + 5820)) -= int32(8)
  20368. }
  20369. }
  20370. }
  20371. // C documentation
  20372. //
  20373. // /* ===========================================================================
  20374. // * Flush the bit buffer and align the output on a byte boundary
  20375. // */
  20376. func _bi_windup(tls *libc.TLS, s uintptr) {
  20377. var v1, v3, v5 Tulg
  20378. var v2, v4, v6 uintptr
  20379. _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6
  20380. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > int32(8) {
  20381. v2 = s + 20
  20382. v1 = *(*Tulg)(unsafe.Pointer(v2))
  20383. *(*Tulg)(unsafe.Pointer(v2))++
  20384. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20385. v4 = s + 20
  20386. v3 = *(*Tulg)(unsafe.Pointer(v4))
  20387. *(*Tulg)(unsafe.Pointer(v4))++
  20388. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20389. } else {
  20390. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > 0 {
  20391. v6 = s + 20
  20392. v5 = *(*Tulg)(unsafe.Pointer(v6))
  20393. *(*Tulg)(unsafe.Pointer(v6))++
  20394. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf)
  20395. }
  20396. }
  20397. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  20398. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  20399. }
  20400. // C documentation
  20401. //
  20402. // /* ===========================================================================
  20403. // * Generate the codes for a given tree and bit counts (which need not be
  20404. // * optimal).
  20405. // * IN assertion: the array bl_count contains the bit length statistics for
  20406. // * the given tree and the field len is set for all tree elements.
  20407. // * OUT assertion: the field code is set for all tree elements of non
  20408. // * zero code length.
  20409. // */
  20410. func _gen_codes(tls *libc.TLS, tree uintptr, max_code int32, bl_count uintptr) {
  20411. bp := tls.Alloc(32)
  20412. defer tls.Free(32)
  20413. var bits, len1, n int32
  20414. var code uint32
  20415. var v3 Tush
  20416. var v4 uintptr
  20417. var _ /* next_code at bp+0 */ [16]Tush
  20418. _, _, _, _, _, _ = bits, code, len1, n, v3, v4 /* next code value for each bit length */
  20419. code = uint32(0) /* code index */
  20420. /* The distribution counts are first used to generate the code values
  20421. * without bit reversal.
  20422. */
  20423. bits = int32(1)
  20424. for {
  20425. if !(bits <= int32(m_MAX_BITS)) {
  20426. break
  20427. }
  20428. code = (code + uint32(*(*Tushf)(unsafe.Pointer(bl_count + uintptr(bits-int32(1))*2)))) << int32(1)
  20429. (*(*[16]Tush)(unsafe.Pointer(bp)))[bits] = uint16(code)
  20430. goto _1
  20431. _1:
  20432. ;
  20433. bits++
  20434. }
  20435. /* Check that the bit counts in bl_count are consistent. The last code
  20436. * must be all ones.
  20437. */
  20438. n = 0
  20439. for {
  20440. if !(n <= max_code) {
  20441. break
  20442. }
  20443. len1 = int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)))
  20444. if len1 == 0 {
  20445. goto _2
  20446. }
  20447. /* Now reverse the bits */
  20448. v4 = bp + uintptr(len1)*2
  20449. v3 = *(*Tush)(unsafe.Pointer(v4))
  20450. *(*Tush)(unsafe.Pointer(v4))++
  20451. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4)) = uint16(_bi_reverse(tls, uint32(v3), len1))
  20452. goto _2
  20453. _2:
  20454. ;
  20455. n++
  20456. }
  20457. }
  20458. /* Send a code of the given tree. c and tree must not have side effects */
  20459. /* ===========================================================================
  20460. * Send a value on a given number of bits.
  20461. * IN assertion: length <= 16 and value fits in length bits.
  20462. */
  20463. /* the arguments must not have side effects */
  20464. // C documentation
  20465. //
  20466. // /* ===========================================================================
  20467. // * Initialize the various 'constant' tables.
  20468. // */
  20469. func _tr_static_init(tls *libc.TLS) {
  20470. }
  20471. /* ===========================================================================
  20472. * Generate the file trees.h describing the static trees.
  20473. */
  20474. // C documentation
  20475. //
  20476. // /* ===========================================================================
  20477. // * Initialize a new block.
  20478. // */
  20479. func _init_block(tls *libc.TLS, s uintptr) {
  20480. var n int32
  20481. var v4 Tulg
  20482. var v5 TuInt
  20483. _, _, _ = n, v4, v5 /* iterates over tree elements */
  20484. /* Initialize the trees. */
  20485. n = 0
  20486. for {
  20487. if !(n < libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES)) {
  20488. break
  20489. }
  20490. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(n)*4)) = uint16(0)
  20491. goto _1
  20492. _1:
  20493. ;
  20494. n++
  20495. }
  20496. n = 0
  20497. for {
  20498. if !(n < int32(m_D_CODES)) {
  20499. break
  20500. }
  20501. *(*Tush)(unsafe.Pointer(s + 2440 + uintptr(n)*4)) = uint16(0)
  20502. goto _2
  20503. _2:
  20504. ;
  20505. n++
  20506. }
  20507. n = 0
  20508. for {
  20509. if !(n < int32(m_BL_CODES)) {
  20510. break
  20511. }
  20512. *(*Tush)(unsafe.Pointer(s + 2684 + uintptr(n)*4)) = uint16(0)
  20513. goto _3
  20514. _3:
  20515. ;
  20516. n++
  20517. }
  20518. *(*Tush)(unsafe.Pointer(s + 148 + 256*4)) = uint16(1)
  20519. v4 = libc.Uint32FromInt32(0)
  20520. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatic_len = v4
  20521. (*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len = v4
  20522. v5 = libc.Uint32FromInt32(0)
  20523. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = v5
  20524. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next = v5
  20525. }
  20526. // C documentation
  20527. //
  20528. // /* ===========================================================================
  20529. // * Initialize the tree data structures for a new zlib stream.
  20530. // */
  20531. func x__tr_init(tls *libc.TLS, s uintptr) {
  20532. _tr_static_init(tls)
  20533. (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fdyn_tree = s + 148
  20534. (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_l_desc))
  20535. (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fdyn_tree = s + 2440
  20536. (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_d_desc))
  20537. (*Tdeflate_state)(unsafe.Pointer(s)).Fbl_desc.Fdyn_tree = s + 2684
  20538. (*Tdeflate_state)(unsafe.Pointer(s)).Fbl_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_bl_desc))
  20539. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  20540. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  20541. /* Initialize the first block of the first file: */
  20542. _init_block(tls, s)
  20543. }
  20544. /* Index within the heap array of least frequent node in the Huffman tree */
  20545. /* ===========================================================================
  20546. * Remove the smallest element from the heap and recreate the heap with
  20547. * one less element. Updates heap and heap_len.
  20548. */
  20549. /* ===========================================================================
  20550. * Compares to subtrees, using the tree depth as tie breaker when
  20551. * the subtrees have equal frequency. This minimizes the worst case length.
  20552. */
  20553. // C documentation
  20554. //
  20555. // /* ===========================================================================
  20556. // * Restore the heap property by moving down the tree starting at node k,
  20557. // * exchanging a node with the smallest of its two sons if necessary, stopping
  20558. // * when the heap property is re-established (each father smaller than its
  20559. // * two sons).
  20560. // */
  20561. func _pqdownheap(tls *libc.TLS, s uintptr, tree uintptr, k int32) {
  20562. var j, v int32
  20563. _, _ = j, v
  20564. v = *(*int32)(unsafe.Pointer(s + 2908 + uintptr(k)*4))
  20565. j = k << int32(1) /* left son of k */
  20566. for j <= (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len {
  20567. /* Set j to the smallest of the two sons: */
  20568. if j < (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len && (int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2908 + uintptr(j+int32(1))*4)))*4))) < int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2908 + uintptr(j)*4)))*4))) || int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2908 + uintptr(j+int32(1))*4)))*4))) == int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2908 + uintptr(j)*4)))*4))) && int32(*(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(*(*int32)(unsafe.Pointer(s + 2908 + uintptr(j+int32(1))*4)))))) <= int32(*(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(*(*int32)(unsafe.Pointer(s + 2908 + uintptr(j)*4))))))) {
  20569. j++
  20570. }
  20571. /* Exit if v is smaller than both sons */
  20572. if int32(*(*Tush)(unsafe.Pointer(tree + uintptr(v)*4))) < int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2908 + uintptr(j)*4)))*4))) || int32(*(*Tush)(unsafe.Pointer(tree + uintptr(v)*4))) == int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2908 + uintptr(j)*4)))*4))) && int32(*(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(v)))) <= int32(*(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(*(*int32)(unsafe.Pointer(s + 2908 + uintptr(j)*4)))))) {
  20573. break
  20574. }
  20575. /* Exchange v with the smallest son */
  20576. *(*int32)(unsafe.Pointer(s + 2908 + uintptr(k)*4)) = *(*int32)(unsafe.Pointer(s + 2908 + uintptr(j)*4))
  20577. k = j
  20578. /* And continue down the tree, setting j to the left son of k */
  20579. j <<= int32(1)
  20580. }
  20581. *(*int32)(unsafe.Pointer(s + 2908 + uintptr(k)*4)) = v
  20582. }
  20583. // C documentation
  20584. //
  20585. // /* ===========================================================================
  20586. // * Compute the optimal bit lengths for a tree and update the total bit length
  20587. // * for the current block.
  20588. // * IN assertion: the fields freq and dad are set, heap[heap_max] and
  20589. // * above are the tree nodes sorted by increasing frequency.
  20590. // * OUT assertions: the field len is set to the optimal bit length, the
  20591. // * array bl_count contains the frequencies for each bit length.
  20592. // * The length opt_len is updated; static_len is also updated if stree is
  20593. // * not null.
  20594. // */
  20595. func _gen_bitlen(tls *libc.TLS, s uintptr, desc uintptr) {
  20596. var base, bits, h, m, max_code, max_length, n, overflow, xbits, v5 int32
  20597. var extra, stree, tree, p3 uintptr
  20598. var f Tush
  20599. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = base, bits, extra, f, h, m, max_code, max_length, n, overflow, stree, tree, xbits, v5, p3
  20600. tree = (*Ttree_desc)(unsafe.Pointer(desc)).Fdyn_tree
  20601. max_code = (*Ttree_desc)(unsafe.Pointer(desc)).Fmax_code
  20602. stree = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fstatic_tree
  20603. extra = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fextra_bits
  20604. base = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fextra_base
  20605. max_length = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fmax_length /* frequency */
  20606. overflow = 0 /* number of elements with bit length too large */
  20607. bits = 0
  20608. for {
  20609. if !(bits <= int32(m_MAX_BITS)) {
  20610. break
  20611. }
  20612. *(*Tush)(unsafe.Pointer(s + 2876 + uintptr(bits)*2)) = uint16(0)
  20613. goto _1
  20614. _1:
  20615. ;
  20616. bits++
  20617. }
  20618. /* In a first pass, compute the optimal bit lengths (which may
  20619. * overflow in the case of the bit length tree).
  20620. */
  20621. *(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2908 + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fheap_max)*4)))*4 + 2)) = uint16(0) /* root of the heap */
  20622. h = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_max + int32(1)
  20623. for {
  20624. if !(h < libc.Int32FromInt32(2)*(libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES))+libc.Int32FromInt32(1)) {
  20625. break
  20626. }
  20627. n = *(*int32)(unsafe.Pointer(s + 2908 + uintptr(h)*4))
  20628. bits = int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)))*4 + 2))) + int32(1)
  20629. if bits > max_length {
  20630. bits = max_length
  20631. overflow++
  20632. }
  20633. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = uint16(bits)
  20634. /* We overwrite tree[n].Dad which is no longer needed */
  20635. if n > max_code {
  20636. goto _2
  20637. } /* not a leaf node */
  20638. *(*Tush)(unsafe.Pointer(s + 2876 + uintptr(bits)*2))++
  20639. xbits = 0
  20640. if n >= base {
  20641. xbits = *(*Tintf)(unsafe.Pointer(extra + uintptr(n-base)*4))
  20642. }
  20643. f = *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))
  20644. *(*Tulg)(unsafe.Pointer(s + 5800)) += uint32(f) * uint32(bits+xbits)
  20645. if stree != 0 {
  20646. *(*Tulg)(unsafe.Pointer(s + 5804)) += uint32(f) * uint32(int32(*(*Tush)(unsafe.Pointer(stree + uintptr(n)*4 + 2)))+xbits)
  20647. }
  20648. goto _2
  20649. _2:
  20650. ;
  20651. h++
  20652. }
  20653. if overflow == 0 {
  20654. return
  20655. }
  20656. /* This happens for example on obj2 and pic of the Calgary corpus */
  20657. /* Find the first bit length which could increase: */
  20658. for cond := true; cond; cond = overflow > 0 {
  20659. bits = max_length - int32(1)
  20660. for int32(*(*Tush)(unsafe.Pointer(s + 2876 + uintptr(bits)*2))) == 0 {
  20661. bits--
  20662. }
  20663. *(*Tush)(unsafe.Pointer(s + 2876 + uintptr(bits)*2))-- /* move one leaf down the tree */
  20664. p3 = s + 2876 + uintptr(bits+int32(1))*2
  20665. *(*Tush)(unsafe.Pointer(p3)) = Tush(int32(*(*Tush)(unsafe.Pointer(p3))) + libc.Int32FromInt32(2)) /* move one overflow item as its brother */
  20666. *(*Tush)(unsafe.Pointer(s + 2876 + uintptr(max_length)*2))--
  20667. /* The brother of the overflow item also moves one step up,
  20668. * but this does not affect bl_count[max_length]
  20669. */
  20670. overflow -= int32(2)
  20671. }
  20672. /* Now recompute all bit lengths, scanning in increasing frequency.
  20673. * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
  20674. * lengths instead of fixing only the wrong ones. This idea is taken
  20675. * from 'ar' written by Haruhiko Okumura.)
  20676. */
  20677. bits = max_length
  20678. for {
  20679. if !(bits != 0) {
  20680. break
  20681. }
  20682. n = int32(*(*Tush)(unsafe.Pointer(s + 2876 + uintptr(bits)*2)))
  20683. for n != 0 {
  20684. h--
  20685. v5 = h
  20686. m = *(*int32)(unsafe.Pointer(s + 2908 + uintptr(v5)*4))
  20687. if m > max_code {
  20688. continue
  20689. }
  20690. if uint32(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2))) != uint32(bits) {
  20691. *(*Tulg)(unsafe.Pointer(s + 5800)) += (uint32(bits) - uint32(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)))) * uint32(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4)))
  20692. *(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)) = uint16(bits)
  20693. }
  20694. n--
  20695. }
  20696. goto _4
  20697. _4:
  20698. ;
  20699. bits--
  20700. }
  20701. }
  20702. // C documentation
  20703. //
  20704. // /* ===========================================================================
  20705. // * Construct one Huffman tree and assigns the code bit strings and lengths.
  20706. // * Update the total bit length for the current block.
  20707. // * IN assertion: the field freq is set for all tree elements.
  20708. // * OUT assertions: the fields len and code are set to the optimal bit length
  20709. // * and corresponding code. The length opt_len is updated; static_len is
  20710. // * also updated if stree is not null. The field max_code is set.
  20711. // */
  20712. func _build_tree(tls *libc.TLS, s uintptr, desc uintptr) {
  20713. var elems, m, max_code, n, node, v11, v13, v15, v17, v19, v2, v20, v4, v5, v6, v7, v8 int32
  20714. var stree, tree, v12, v14, v16, v21, v3, v9 uintptr
  20715. var v18 Tush
  20716. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  20717. tree = (*Ttree_desc)(unsafe.Pointer(desc)).Fdyn_tree
  20718. stree = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fstatic_tree
  20719. elems = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Felems /* iterate over heap elements */
  20720. max_code = -int32(1) /* new node being created */
  20721. /* Construct the initial heap, with least frequent element in
  20722. * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n + 1].
  20723. * heap[0] is not used.
  20724. */
  20725. (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len = 0 /* new node being created */
  20726. /* Construct the initial heap, with least frequent element in
  20727. * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n + 1].
  20728. * heap[0] is not used.
  20729. */
  20730. (*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)
  20731. n = 0
  20732. for {
  20733. if !(n < elems) {
  20734. break
  20735. }
  20736. if int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))) != 0 {
  20737. v3 = s + 5200
  20738. *(*int32)(unsafe.Pointer(v3))++
  20739. v2 = *(*int32)(unsafe.Pointer(v3))
  20740. v4 = n
  20741. max_code = v4
  20742. *(*int32)(unsafe.Pointer(s + 2908 + uintptr(v2)*4)) = v4
  20743. *(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(n))) = uint8(0)
  20744. } else {
  20745. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = uint16(0)
  20746. }
  20747. goto _1
  20748. _1:
  20749. ;
  20750. n++
  20751. }
  20752. /* The pkzip format requires that at least one distance code exists,
  20753. * and that at least one bit should be sent even if there is only one
  20754. * possible code. So to avoid special checks later on we force at least
  20755. * two codes of non zero frequency.
  20756. */
  20757. for (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len < int32(2) {
  20758. if max_code < int32(2) {
  20759. max_code++
  20760. v7 = max_code
  20761. v6 = v7
  20762. } else {
  20763. v6 = 0
  20764. }
  20765. v5 = v6
  20766. v9 = s + 5200
  20767. *(*int32)(unsafe.Pointer(v9))++
  20768. v8 = *(*int32)(unsafe.Pointer(v9))
  20769. *(*int32)(unsafe.Pointer(s + 2908 + uintptr(v8)*4)) = v5
  20770. node = v5
  20771. *(*Tush)(unsafe.Pointer(tree + uintptr(node)*4)) = uint16(1)
  20772. *(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(node))) = uint8(0)
  20773. (*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len--
  20774. if stree != 0 {
  20775. *(*Tulg)(unsafe.Pointer(s + 5804)) -= uint32(*(*Tush)(unsafe.Pointer(stree + uintptr(node)*4 + 2)))
  20776. }
  20777. /* node is 0 or 1 so it does not have extra bits */
  20778. }
  20779. (*Ttree_desc)(unsafe.Pointer(desc)).Fmax_code = max_code
  20780. /* The elements heap[heap_len/2 + 1 .. heap_len] are leaves of the tree,
  20781. * establish sub-heaps of increasing lengths:
  20782. */
  20783. n = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len / int32(2)
  20784. for {
  20785. if !(n >= int32(1)) {
  20786. break
  20787. }
  20788. _pqdownheap(tls, s, tree, n)
  20789. goto _10
  20790. _10:
  20791. ;
  20792. n--
  20793. }
  20794. /* Construct the Huffman tree by repeatedly combining the least two
  20795. * frequent nodes.
  20796. */
  20797. node = elems /* next internal node of the tree */
  20798. for cond := true; cond; cond = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len >= int32(2) {
  20799. n = *(*int32)(unsafe.Pointer(s + 2908 + 1*4))
  20800. v12 = s + 5200
  20801. v11 = *(*int32)(unsafe.Pointer(v12))
  20802. *(*int32)(unsafe.Pointer(v12))--
  20803. *(*int32)(unsafe.Pointer(s + 2908 + 1*4)) = *(*int32)(unsafe.Pointer(s + 2908 + uintptr(v11)*4))
  20804. _pqdownheap(tls, s, tree, int32(m_SMALLEST)) /* n = node of least frequency */
  20805. m = *(*int32)(unsafe.Pointer(s + 2908 + 1*4)) /* m = node of next least frequency */
  20806. v14 = s + 5204
  20807. *(*int32)(unsafe.Pointer(v14))--
  20808. v13 = *(*int32)(unsafe.Pointer(v14))
  20809. *(*int32)(unsafe.Pointer(s + 2908 + uintptr(v13)*4)) = n /* keep the nodes sorted by frequency */
  20810. v16 = s + 5204
  20811. *(*int32)(unsafe.Pointer(v16))--
  20812. v15 = *(*int32)(unsafe.Pointer(v16))
  20813. *(*int32)(unsafe.Pointer(s + 2908 + uintptr(v15)*4)) = m
  20814. /* Create a new node father of n and m */
  20815. *(*Tush)(unsafe.Pointer(tree + uintptr(node)*4)) = uint16(int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))) + int32(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4))))
  20816. if int32(*(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(n)))) >= int32(*(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(m)))) {
  20817. v17 = int32(*(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(n))))
  20818. } else {
  20819. v17 = int32(*(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(m))))
  20820. }
  20821. *(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(node))) = uint8(v17 + libc.Int32FromInt32(1))
  20822. v18 = uint16(node)
  20823. *(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)) = v18
  20824. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = v18
  20825. /* and insert the new node in the heap */
  20826. v19 = node
  20827. node++
  20828. *(*int32)(unsafe.Pointer(s + 2908 + 1*4)) = v19
  20829. _pqdownheap(tls, s, tree, int32(m_SMALLEST))
  20830. }
  20831. v21 = s + 5204
  20832. *(*int32)(unsafe.Pointer(v21))--
  20833. v20 = *(*int32)(unsafe.Pointer(v21))
  20834. *(*int32)(unsafe.Pointer(s + 2908 + uintptr(v20)*4)) = *(*int32)(unsafe.Pointer(s + 2908 + 1*4))
  20835. /* At this point, the fields freq and dad are set. We can now
  20836. * generate the bit lengths.
  20837. */
  20838. _gen_bitlen(tls, s, desc)
  20839. /* The field len is now set, we can generate the bit codes */
  20840. _gen_codes(tls, tree, max_code, s+2876)
  20841. }
  20842. // C documentation
  20843. //
  20844. // /* ===========================================================================
  20845. // * Scan a literal or distance tree to determine the frequencies of the codes
  20846. // * in the bit length tree.
  20847. // */
  20848. func _scan_tree(tls *libc.TLS, s uintptr, tree uintptr, max_code int32) {
  20849. var count, curlen, max_count, min_count, n, nextlen, prevlen, v2 int32
  20850. var p3 uintptr
  20851. _, _, _, _, _, _, _, _, _ = count, curlen, max_count, min_count, n, nextlen, prevlen, v2, p3 /* iterates over all tree elements */
  20852. prevlen = -int32(1) /* length of current code */
  20853. nextlen = int32(*(*Tush)(unsafe.Pointer(tree + 2))) /* length of next code */
  20854. count = 0 /* repeat count of the current code */
  20855. max_count = int32(7) /* max repeat count */
  20856. min_count = int32(4) /* min repeat count */
  20857. if nextlen == 0 {
  20858. max_count = int32(138)
  20859. min_count = libc.Int32FromInt32(3)
  20860. }
  20861. *(*Tush)(unsafe.Pointer(tree + uintptr(max_code+int32(1))*4 + 2)) = libc.Uint16FromInt32(0xffff) /* guard */
  20862. n = 0
  20863. for {
  20864. if !(n <= max_code) {
  20865. break
  20866. }
  20867. curlen = nextlen
  20868. nextlen = int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n+int32(1))*4 + 2)))
  20869. count++
  20870. v2 = count
  20871. if v2 < max_count && curlen == nextlen {
  20872. goto _1
  20873. } else {
  20874. if count < min_count {
  20875. p3 = s + 2684 + uintptr(curlen)*4
  20876. *(*Tush)(unsafe.Pointer(p3)) = Tush(int32(*(*Tush)(unsafe.Pointer(p3))) + count)
  20877. } else {
  20878. if curlen != 0 {
  20879. if curlen != prevlen {
  20880. *(*Tush)(unsafe.Pointer(s + 2684 + uintptr(curlen)*4))++
  20881. }
  20882. *(*Tush)(unsafe.Pointer(s + 2684 + 16*4))++
  20883. } else {
  20884. if count <= int32(10) {
  20885. *(*Tush)(unsafe.Pointer(s + 2684 + 17*4))++
  20886. } else {
  20887. *(*Tush)(unsafe.Pointer(s + 2684 + 18*4))++
  20888. }
  20889. }
  20890. }
  20891. }
  20892. count = 0
  20893. prevlen = curlen
  20894. if nextlen == 0 {
  20895. max_count = int32(138)
  20896. min_count = libc.Int32FromInt32(3)
  20897. } else {
  20898. if curlen == nextlen {
  20899. max_count = int32(6)
  20900. min_count = libc.Int32FromInt32(3)
  20901. } else {
  20902. max_count = int32(7)
  20903. min_count = libc.Int32FromInt32(4)
  20904. }
  20905. }
  20906. goto _1
  20907. _1:
  20908. ;
  20909. n++
  20910. }
  20911. }
  20912. // C documentation
  20913. //
  20914. // /* ===========================================================================
  20915. // * Send a literal or distance tree in compressed form, using the codes in
  20916. // * bl_tree.
  20917. // */
  20918. func _send_tree(tls *libc.TLS, s uintptr, tree uintptr, max_code int32) {
  20919. 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
  20920. var v12, v14, v18, v20, v24, v26, v30, v32, v36, v38, v42, v44, v48, v50, v6, v8 Tulg
  20921. 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
  20922. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  20923. prevlen = -int32(1) /* length of current code */
  20924. nextlen = int32(*(*Tush)(unsafe.Pointer(tree + 2))) /* length of next code */
  20925. count = 0 /* repeat count of the current code */
  20926. max_count = int32(7) /* max repeat count */
  20927. min_count = int32(4) /* min repeat count */
  20928. /* tree[max_code + 1].Len = -1; */ /* guard already set */
  20929. if nextlen == 0 {
  20930. max_count = int32(138)
  20931. min_count = libc.Int32FromInt32(3)
  20932. }
  20933. n = 0
  20934. for {
  20935. if !(n <= max_code) {
  20936. break
  20937. }
  20938. curlen = nextlen
  20939. nextlen = int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n+int32(1))*4 + 2)))
  20940. count++
  20941. v2 = count
  20942. if v2 < max_count && curlen == nextlen {
  20943. goto _1
  20944. } else {
  20945. if count < min_count {
  20946. for {
  20947. len1 = int32(*(*Tush)(unsafe.Pointer(s + 2684 + uintptr(curlen)*4 + 2)))
  20948. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  20949. val = int32(*(*Tush)(unsafe.Pointer(s + 2684 + uintptr(curlen)*4)))
  20950. p5 = s + 5816
  20951. *(*Tush)(unsafe.Pointer(p5)) = Tush(int32(*(*Tush)(unsafe.Pointer(p5))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20952. v7 = s + 20
  20953. v6 = *(*Tulg)(unsafe.Pointer(v7))
  20954. *(*Tulg)(unsafe.Pointer(v7))++
  20955. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v6))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20956. v9 = s + 20
  20957. v8 = *(*Tulg)(unsafe.Pointer(v9))
  20958. *(*Tulg)(unsafe.Pointer(v9))++
  20959. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20960. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20961. *(*int32)(unsafe.Pointer(s + 5820)) += len1 - int32(m_Buf_size)
  20962. } else {
  20963. p10 = s + 5816
  20964. *(*Tush)(unsafe.Pointer(p10)) = Tush(int32(*(*Tush)(unsafe.Pointer(p10))) | int32(*(*Tush)(unsafe.Pointer(s + 2684 + uintptr(curlen)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20965. *(*int32)(unsafe.Pointer(s + 5820)) += len1
  20966. }
  20967. goto _4
  20968. _4:
  20969. ;
  20970. count--
  20971. v3 = count
  20972. if !(v3 != 0) {
  20973. break
  20974. }
  20975. }
  20976. } else {
  20977. if curlen != 0 {
  20978. if curlen != prevlen {
  20979. len11 = int32(*(*Tush)(unsafe.Pointer(s + 2684 + uintptr(curlen)*4 + 2)))
  20980. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  20981. val1 = int32(*(*Tush)(unsafe.Pointer(s + 2684 + uintptr(curlen)*4)))
  20982. p11 = s + 5816
  20983. *(*Tush)(unsafe.Pointer(p11)) = Tush(int32(*(*Tush)(unsafe.Pointer(p11))) | int32(uint16(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20984. v13 = s + 20
  20985. v12 = *(*Tulg)(unsafe.Pointer(v13))
  20986. *(*Tulg)(unsafe.Pointer(v13))++
  20987. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v12))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20988. v15 = s + 20
  20989. v14 = *(*Tulg)(unsafe.Pointer(v15))
  20990. *(*Tulg)(unsafe.Pointer(v15))++
  20991. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20992. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  20993. *(*int32)(unsafe.Pointer(s + 5820)) += len11 - int32(m_Buf_size)
  20994. } else {
  20995. p16 = s + 5816
  20996. *(*Tush)(unsafe.Pointer(p16)) = Tush(int32(*(*Tush)(unsafe.Pointer(p16))) | int32(*(*Tush)(unsafe.Pointer(s + 2684 + uintptr(curlen)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  20997. *(*int32)(unsafe.Pointer(s + 5820)) += len11
  20998. }
  20999. count--
  21000. }
  21001. len2 = int32(*(*Tush)(unsafe.Pointer(s + 2684 + 16*4 + 2)))
  21002. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  21003. val2 = int32(*(*Tush)(unsafe.Pointer(s + 2684 + 16*4)))
  21004. p17 = s + 5816
  21005. *(*Tush)(unsafe.Pointer(p17)) = Tush(int32(*(*Tush)(unsafe.Pointer(p17))) | int32(uint16(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21006. v19 = s + 20
  21007. v18 = *(*Tulg)(unsafe.Pointer(v19))
  21008. *(*Tulg)(unsafe.Pointer(v19))++
  21009. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v18))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21010. v21 = s + 20
  21011. v20 = *(*Tulg)(unsafe.Pointer(v21))
  21012. *(*Tulg)(unsafe.Pointer(v21))++
  21013. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v20))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21014. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21015. *(*int32)(unsafe.Pointer(s + 5820)) += len2 - int32(m_Buf_size)
  21016. } else {
  21017. p22 = s + 5816
  21018. *(*Tush)(unsafe.Pointer(p22)) = Tush(int32(*(*Tush)(unsafe.Pointer(p22))) | int32(*(*Tush)(unsafe.Pointer(s + 2684 + 16*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21019. *(*int32)(unsafe.Pointer(s + 5820)) += len2
  21020. }
  21021. len3 = int32(2)
  21022. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  21023. val3 = count - int32(3)
  21024. p23 = s + 5816
  21025. *(*Tush)(unsafe.Pointer(p23)) = Tush(int32(*(*Tush)(unsafe.Pointer(p23))) | int32(uint16(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21026. v25 = s + 20
  21027. v24 = *(*Tulg)(unsafe.Pointer(v25))
  21028. *(*Tulg)(unsafe.Pointer(v25))++
  21029. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21030. v27 = s + 20
  21031. v26 = *(*Tulg)(unsafe.Pointer(v27))
  21032. *(*Tulg)(unsafe.Pointer(v27))++
  21033. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21034. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21035. *(*int32)(unsafe.Pointer(s + 5820)) += len3 - int32(m_Buf_size)
  21036. } else {
  21037. p28 = s + 5816
  21038. *(*Tush)(unsafe.Pointer(p28)) = Tush(int32(*(*Tush)(unsafe.Pointer(p28))) | int32(uint16(count-libc.Int32FromInt32(3)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21039. *(*int32)(unsafe.Pointer(s + 5820)) += len3
  21040. }
  21041. } else {
  21042. if count <= int32(10) {
  21043. len4 = int32(*(*Tush)(unsafe.Pointer(s + 2684 + 17*4 + 2)))
  21044. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len4 {
  21045. val4 = int32(*(*Tush)(unsafe.Pointer(s + 2684 + 17*4)))
  21046. p29 = s + 5816
  21047. *(*Tush)(unsafe.Pointer(p29)) = Tush(int32(*(*Tush)(unsafe.Pointer(p29))) | int32(uint16(val4))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21048. v31 = s + 20
  21049. v30 = *(*Tulg)(unsafe.Pointer(v31))
  21050. *(*Tulg)(unsafe.Pointer(v31))++
  21051. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v30))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21052. v33 = s + 20
  21053. v32 = *(*Tulg)(unsafe.Pointer(v33))
  21054. *(*Tulg)(unsafe.Pointer(v33))++
  21055. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v32))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21056. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val4)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21057. *(*int32)(unsafe.Pointer(s + 5820)) += len4 - int32(m_Buf_size)
  21058. } else {
  21059. p34 = s + 5816
  21060. *(*Tush)(unsafe.Pointer(p34)) = Tush(int32(*(*Tush)(unsafe.Pointer(p34))) | int32(*(*Tush)(unsafe.Pointer(s + 2684 + 17*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21061. *(*int32)(unsafe.Pointer(s + 5820)) += len4
  21062. }
  21063. len5 = int32(3)
  21064. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len5 {
  21065. val5 = count - int32(3)
  21066. p35 = s + 5816
  21067. *(*Tush)(unsafe.Pointer(p35)) = Tush(int32(*(*Tush)(unsafe.Pointer(p35))) | int32(uint16(val5))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21068. v37 = s + 20
  21069. v36 = *(*Tulg)(unsafe.Pointer(v37))
  21070. *(*Tulg)(unsafe.Pointer(v37))++
  21071. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v36))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21072. v39 = s + 20
  21073. v38 = *(*Tulg)(unsafe.Pointer(v39))
  21074. *(*Tulg)(unsafe.Pointer(v39))++
  21075. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v38))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21076. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val5)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21077. *(*int32)(unsafe.Pointer(s + 5820)) += len5 - int32(m_Buf_size)
  21078. } else {
  21079. p40 = s + 5816
  21080. *(*Tush)(unsafe.Pointer(p40)) = Tush(int32(*(*Tush)(unsafe.Pointer(p40))) | int32(uint16(count-libc.Int32FromInt32(3)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21081. *(*int32)(unsafe.Pointer(s + 5820)) += len5
  21082. }
  21083. } else {
  21084. len6 = int32(*(*Tush)(unsafe.Pointer(s + 2684 + 18*4 + 2)))
  21085. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len6 {
  21086. val6 = int32(*(*Tush)(unsafe.Pointer(s + 2684 + 18*4)))
  21087. p41 = s + 5816
  21088. *(*Tush)(unsafe.Pointer(p41)) = Tush(int32(*(*Tush)(unsafe.Pointer(p41))) | int32(uint16(val6))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21089. v43 = s + 20
  21090. v42 = *(*Tulg)(unsafe.Pointer(v43))
  21091. *(*Tulg)(unsafe.Pointer(v43))++
  21092. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v42))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21093. v45 = s + 20
  21094. v44 = *(*Tulg)(unsafe.Pointer(v45))
  21095. *(*Tulg)(unsafe.Pointer(v45))++
  21096. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v44))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21097. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val6)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21098. *(*int32)(unsafe.Pointer(s + 5820)) += len6 - int32(m_Buf_size)
  21099. } else {
  21100. p46 = s + 5816
  21101. *(*Tush)(unsafe.Pointer(p46)) = Tush(int32(*(*Tush)(unsafe.Pointer(p46))) | int32(*(*Tush)(unsafe.Pointer(s + 2684 + 18*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21102. *(*int32)(unsafe.Pointer(s + 5820)) += len6
  21103. }
  21104. len7 = int32(7)
  21105. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len7 {
  21106. val7 = count - int32(11)
  21107. p47 = s + 5816
  21108. *(*Tush)(unsafe.Pointer(p47)) = Tush(int32(*(*Tush)(unsafe.Pointer(p47))) | int32(uint16(val7))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21109. v49 = s + 20
  21110. v48 = *(*Tulg)(unsafe.Pointer(v49))
  21111. *(*Tulg)(unsafe.Pointer(v49))++
  21112. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v48))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21113. v51 = s + 20
  21114. v50 = *(*Tulg)(unsafe.Pointer(v51))
  21115. *(*Tulg)(unsafe.Pointer(v51))++
  21116. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v50))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21117. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val7)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21118. *(*int32)(unsafe.Pointer(s + 5820)) += len7 - int32(m_Buf_size)
  21119. } else {
  21120. p52 = s + 5816
  21121. *(*Tush)(unsafe.Pointer(p52)) = Tush(int32(*(*Tush)(unsafe.Pointer(p52))) | int32(uint16(count-libc.Int32FromInt32(11)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21122. *(*int32)(unsafe.Pointer(s + 5820)) += len7
  21123. }
  21124. }
  21125. }
  21126. }
  21127. }
  21128. count = 0
  21129. prevlen = curlen
  21130. if nextlen == 0 {
  21131. max_count = int32(138)
  21132. min_count = libc.Int32FromInt32(3)
  21133. } else {
  21134. if curlen == nextlen {
  21135. max_count = int32(6)
  21136. min_count = libc.Int32FromInt32(3)
  21137. } else {
  21138. max_count = int32(7)
  21139. min_count = libc.Int32FromInt32(4)
  21140. }
  21141. }
  21142. goto _1
  21143. _1:
  21144. ;
  21145. n++
  21146. }
  21147. }
  21148. // C documentation
  21149. //
  21150. // /* ===========================================================================
  21151. // * Construct the Huffman tree for the bit lengths and return the index in
  21152. // * bl_order of the last bit length code to send.
  21153. // */
  21154. func _build_bl_tree(tls *libc.TLS, s uintptr) (r int32) {
  21155. var max_blindex int32
  21156. _ = max_blindex /* index of last bit length code of non zero freq */
  21157. /* Determine the bit length frequencies for literal and distance trees */
  21158. _scan_tree(tls, s, s+148, (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fmax_code)
  21159. _scan_tree(tls, s, s+2440, (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fmax_code)
  21160. /* Build the bit length tree: */
  21161. _build_tree(tls, s, s+2864)
  21162. /* opt_len now includes the length of the tree representations, except the
  21163. * lengths of the bit lengths codes and the 5 + 5 + 4 bits for the counts.
  21164. */
  21165. /* Determine the number of bit length codes to send. The pkzip format
  21166. * requires that at least 4 bit length codes be sent. (appnote.txt says
  21167. * 3 but the actual value used is 4.)
  21168. */
  21169. max_blindex = libc.Int32FromInt32(m_BL_CODES) - libc.Int32FromInt32(1)
  21170. for {
  21171. if !(max_blindex >= int32(3)) {
  21172. break
  21173. }
  21174. if int32(*(*Tush)(unsafe.Pointer(s + 2684 + uintptr(_bl_order[max_blindex])*4 + 2))) != 0 {
  21175. break
  21176. }
  21177. goto _1
  21178. _1:
  21179. ;
  21180. max_blindex--
  21181. }
  21182. /* Update opt_len to include the bit length tree and counts */
  21183. *(*Tulg)(unsafe.Pointer(s + 5800)) += uint32(3)*(uint32(max_blindex)+uint32(1)) + uint32(5) + uint32(5) + uint32(4)
  21184. return max_blindex
  21185. }
  21186. // C documentation
  21187. //
  21188. // /* ===========================================================================
  21189. // * Send the header for a block using dynamic Huffman trees: the counts, the
  21190. // * lengths of the bit length codes, the literal tree and the distance tree.
  21191. // * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
  21192. // */
  21193. func _send_all_trees(tls *libc.TLS, s uintptr, lcodes int32, dcodes int32, blcodes int32) {
  21194. var len1, len11, len2, len3, rank, val, val1, val2, val3 int32
  21195. var v10, v14, v16, v2, v21, v23, v4, v8 Tulg
  21196. var v11, v15, v17, v22, v24, v3, v5, v9, p1, p12, p13, p18, p20, p25, p6, p7 uintptr
  21197. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  21198. len1 = int32(5)
  21199. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  21200. val = lcodes - int32(257)
  21201. p1 = s + 5816
  21202. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21203. v3 = s + 20
  21204. v2 = *(*Tulg)(unsafe.Pointer(v3))
  21205. *(*Tulg)(unsafe.Pointer(v3))++
  21206. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21207. v5 = s + 20
  21208. v4 = *(*Tulg)(unsafe.Pointer(v5))
  21209. *(*Tulg)(unsafe.Pointer(v5))++
  21210. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21211. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21212. *(*int32)(unsafe.Pointer(s + 5820)) += len1 - int32(m_Buf_size)
  21213. } else {
  21214. p6 = s + 5816
  21215. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | int32(uint16(lcodes-libc.Int32FromInt32(257)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21216. *(*int32)(unsafe.Pointer(s + 5820)) += len1
  21217. } /* not +255 as stated in appnote.txt */
  21218. len11 = int32(5)
  21219. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  21220. val1 = dcodes - int32(1)
  21221. p7 = s + 5816
  21222. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | int32(uint16(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21223. v9 = s + 20
  21224. v8 = *(*Tulg)(unsafe.Pointer(v9))
  21225. *(*Tulg)(unsafe.Pointer(v9))++
  21226. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21227. v11 = s + 20
  21228. v10 = *(*Tulg)(unsafe.Pointer(v11))
  21229. *(*Tulg)(unsafe.Pointer(v11))++
  21230. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21231. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21232. *(*int32)(unsafe.Pointer(s + 5820)) += len11 - int32(m_Buf_size)
  21233. } else {
  21234. p12 = s + 5816
  21235. *(*Tush)(unsafe.Pointer(p12)) = Tush(int32(*(*Tush)(unsafe.Pointer(p12))) | int32(uint16(dcodes-libc.Int32FromInt32(1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21236. *(*int32)(unsafe.Pointer(s + 5820)) += len11
  21237. }
  21238. len2 = int32(4)
  21239. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  21240. val2 = blcodes - int32(4)
  21241. p13 = s + 5816
  21242. *(*Tush)(unsafe.Pointer(p13)) = Tush(int32(*(*Tush)(unsafe.Pointer(p13))) | int32(uint16(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21243. v15 = s + 20
  21244. v14 = *(*Tulg)(unsafe.Pointer(v15))
  21245. *(*Tulg)(unsafe.Pointer(v15))++
  21246. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21247. v17 = s + 20
  21248. v16 = *(*Tulg)(unsafe.Pointer(v17))
  21249. *(*Tulg)(unsafe.Pointer(v17))++
  21250. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v16))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21251. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21252. *(*int32)(unsafe.Pointer(s + 5820)) += len2 - int32(m_Buf_size)
  21253. } else {
  21254. p18 = s + 5816
  21255. *(*Tush)(unsafe.Pointer(p18)) = Tush(int32(*(*Tush)(unsafe.Pointer(p18))) | int32(uint16(blcodes-libc.Int32FromInt32(4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21256. *(*int32)(unsafe.Pointer(s + 5820)) += len2
  21257. } /* not -3 as stated in appnote.txt */
  21258. rank = 0
  21259. for {
  21260. if !(rank < blcodes) {
  21261. break
  21262. }
  21263. len3 = int32(3)
  21264. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  21265. val3 = int32(*(*Tush)(unsafe.Pointer(s + 2684 + uintptr(_bl_order[rank])*4 + 2)))
  21266. p20 = s + 5816
  21267. *(*Tush)(unsafe.Pointer(p20)) = Tush(int32(*(*Tush)(unsafe.Pointer(p20))) | int32(uint16(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21268. v22 = s + 20
  21269. v21 = *(*Tulg)(unsafe.Pointer(v22))
  21270. *(*Tulg)(unsafe.Pointer(v22))++
  21271. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v21))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21272. v24 = s + 20
  21273. v23 = *(*Tulg)(unsafe.Pointer(v24))
  21274. *(*Tulg)(unsafe.Pointer(v24))++
  21275. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v23))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21276. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21277. *(*int32)(unsafe.Pointer(s + 5820)) += len3 - int32(m_Buf_size)
  21278. } else {
  21279. p25 = s + 5816
  21280. *(*Tush)(unsafe.Pointer(p25)) = Tush(int32(*(*Tush)(unsafe.Pointer(p25))) | int32(*(*Tush)(unsafe.Pointer(s + 2684 + uintptr(_bl_order[rank])*4 + 2)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21281. *(*int32)(unsafe.Pointer(s + 5820)) += len3
  21282. }
  21283. goto _19
  21284. _19:
  21285. ;
  21286. rank++
  21287. }
  21288. _send_tree(tls, s, s+148, lcodes-int32(1)) /* literal tree */
  21289. _send_tree(tls, s, s+2440, dcodes-int32(1)) /* distance tree */
  21290. }
  21291. // C documentation
  21292. //
  21293. // /* ===========================================================================
  21294. // * Send a stored block
  21295. // */
  21296. func x__tr_stored_block(tls *libc.TLS, s uintptr, buf uintptr, stored_len Tulg, last int32) {
  21297. var len1, val int32
  21298. var v10, v12, v14, v3, v5, v8, p1, p6 uintptr
  21299. var v11, v13, v2, v4, v7, v9 Tulg
  21300. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, val, v10, v11, v12, v13, v14, v2, v3, v4, v5, v7, v8, v9, p1, p6
  21301. len1 = int32(3)
  21302. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  21303. val = libc.Int32FromInt32(m_STORED_BLOCK)<<libc.Int32FromInt32(1) + last
  21304. p1 = s + 5816
  21305. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21306. v3 = s + 20
  21307. v2 = *(*Tulg)(unsafe.Pointer(v3))
  21308. *(*Tulg)(unsafe.Pointer(v3))++
  21309. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21310. v5 = s + 20
  21311. v4 = *(*Tulg)(unsafe.Pointer(v5))
  21312. *(*Tulg)(unsafe.Pointer(v5))++
  21313. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21314. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21315. *(*int32)(unsafe.Pointer(s + 5820)) += len1 - int32(m_Buf_size)
  21316. } else {
  21317. p6 = s + 5816
  21318. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | int32(uint16(libc.Int32FromInt32(m_STORED_BLOCK)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21319. *(*int32)(unsafe.Pointer(s + 5820)) += len1
  21320. } /* send block type */
  21321. _bi_windup(tls, s) /* align on byte boundary */
  21322. v8 = s + 20
  21323. v7 = *(*Tulg)(unsafe.Pointer(v8))
  21324. *(*Tulg)(unsafe.Pointer(v8))++
  21325. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v7))) = uint8(int32(uint16(stored_len)) & libc.Int32FromInt32(0xff))
  21326. v10 = s + 20
  21327. v9 = *(*Tulg)(unsafe.Pointer(v10))
  21328. *(*Tulg)(unsafe.Pointer(v10))++
  21329. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v9))) = uint8(int32(uint16(stored_len)) >> libc.Int32FromInt32(8))
  21330. v12 = s + 20
  21331. v11 = *(*Tulg)(unsafe.Pointer(v12))
  21332. *(*Tulg)(unsafe.Pointer(v12))++
  21333. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = uint8(int32(uint16(^stored_len)) & libc.Int32FromInt32(0xff))
  21334. v14 = s + 20
  21335. v13 = *(*Tulg)(unsafe.Pointer(v14))
  21336. *(*Tulg)(unsafe.Pointer(v14))++
  21337. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v13))) = uint8(int32(uint16(^stored_len)) >> libc.Int32FromInt32(8))
  21338. if stored_len != 0 {
  21339. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending), buf, stored_len)
  21340. }
  21341. *(*Tulg)(unsafe.Pointer(s + 20)) += stored_len
  21342. }
  21343. // C documentation
  21344. //
  21345. // /* ===========================================================================
  21346. // * Flush the bits in the bit buffer to pending output (leaves at most 7 bits)
  21347. // */
  21348. func x__tr_flush_bits(tls *libc.TLS, s uintptr) {
  21349. _bi_flush(tls, s)
  21350. }
  21351. // C documentation
  21352. //
  21353. // /* ===========================================================================
  21354. // * Send one empty static block to give enough lookahead for inflate.
  21355. // * This takes 10 bits, of which 7 may remain in the bit buffer.
  21356. // */
  21357. func x__tr_align(tls *libc.TLS, s uintptr) {
  21358. var len1, len11, val, val1 int32
  21359. var v10, v2, v4, v8 Tulg
  21360. var v11, v3, v5, v9, p1, p12, p6, p7 uintptr
  21361. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, len11, val, val1, v10, v11, v2, v3, v4, v5, v8, v9, p1, p12, p6, p7
  21362. len1 = int32(3)
  21363. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  21364. val = libc.Int32FromInt32(m_STATIC_TREES) << libc.Int32FromInt32(1)
  21365. p1 = s + 5816
  21366. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21367. v3 = s + 20
  21368. v2 = *(*Tulg)(unsafe.Pointer(v3))
  21369. *(*Tulg)(unsafe.Pointer(v3))++
  21370. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21371. v5 = s + 20
  21372. v4 = *(*Tulg)(unsafe.Pointer(v5))
  21373. *(*Tulg)(unsafe.Pointer(v5))++
  21374. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21375. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21376. *(*int32)(unsafe.Pointer(s + 5820)) += len1 - int32(m_Buf_size)
  21377. } else {
  21378. p6 = s + 5816
  21379. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | int32(uint16(libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21380. *(*int32)(unsafe.Pointer(s + 5820)) += len1
  21381. }
  21382. len11 = int32(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4 + 2)))
  21383. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  21384. val1 = int32(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4)))
  21385. p7 = s + 5816
  21386. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | int32(uint16(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21387. v9 = s + 20
  21388. v8 = *(*Tulg)(unsafe.Pointer(v9))
  21389. *(*Tulg)(unsafe.Pointer(v9))++
  21390. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21391. v11 = s + 20
  21392. v10 = *(*Tulg)(unsafe.Pointer(v11))
  21393. *(*Tulg)(unsafe.Pointer(v11))++
  21394. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21395. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21396. *(*int32)(unsafe.Pointer(s + 5820)) += len11 - int32(m_Buf_size)
  21397. } else {
  21398. p12 = s + 5816
  21399. *(*Tush)(unsafe.Pointer(p12)) = Tush(int32(*(*Tush)(unsafe.Pointer(p12))) | int32(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21400. *(*int32)(unsafe.Pointer(s + 5820)) += len11
  21401. }
  21402. _bi_flush(tls, s)
  21403. }
  21404. // C documentation
  21405. //
  21406. // /* ===========================================================================
  21407. // * Send the block data compressed using the given Huffman trees
  21408. // */
  21409. func _compress_block(tls *libc.TLS, s uintptr, ltree uintptr, dtree uintptr) {
  21410. var code, dist, sx, v1, v2, v3 uint32
  21411. var extra, lc, len1, len11, len2, len3, len4, len5, val, val1, val2, val3, val4, val5, v22 int32
  21412. var v11, v13, v17, v19, v24, v26, v30, v32, v36, v38, v5, v7 Tulg
  21413. 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
  21414. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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) */
  21415. sx = uint32(0) /* number of extra bits to send */
  21416. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != uint32(0) {
  21417. for cond := true; cond; cond = sx < (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next {
  21418. v1 = sx
  21419. sx++
  21420. dist = uint32(int32(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v1)))) & int32(0xff))
  21421. v2 = sx
  21422. sx++
  21423. dist += uint32(int32(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v2))))&libc.Int32FromInt32(0xff)) << int32(8)
  21424. v3 = sx
  21425. sx++
  21426. lc = int32(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))))
  21427. if dist == uint32(0) {
  21428. len1 = int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4 + 2)))
  21429. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  21430. val = int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4)))
  21431. p4 = s + 5816
  21432. *(*Tush)(unsafe.Pointer(p4)) = Tush(int32(*(*Tush)(unsafe.Pointer(p4))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21433. v6 = s + 20
  21434. v5 = *(*Tulg)(unsafe.Pointer(v6))
  21435. *(*Tulg)(unsafe.Pointer(v6))++
  21436. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21437. v8 = s + 20
  21438. v7 = *(*Tulg)(unsafe.Pointer(v8))
  21439. *(*Tulg)(unsafe.Pointer(v8))++
  21440. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v7))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21441. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21442. *(*int32)(unsafe.Pointer(s + 5820)) += len1 - int32(m_Buf_size)
  21443. } else {
  21444. p9 = s + 5816
  21445. *(*Tush)(unsafe.Pointer(p9)) = Tush(int32(*(*Tush)(unsafe.Pointer(p9))) | int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21446. *(*int32)(unsafe.Pointer(s + 5820)) += len1
  21447. } /* send a literal byte */
  21448. } else {
  21449. /* Here, lc is the match length - MIN_MATCH */
  21450. code = uint32(x__length_code[lc])
  21451. len11 = int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4 + 2)))
  21452. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  21453. val1 = int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4)))
  21454. p10 = s + 5816
  21455. *(*Tush)(unsafe.Pointer(p10)) = Tush(int32(*(*Tush)(unsafe.Pointer(p10))) | int32(uint16(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21456. v12 = s + 20
  21457. v11 = *(*Tulg)(unsafe.Pointer(v12))
  21458. *(*Tulg)(unsafe.Pointer(v12))++
  21459. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21460. v14 = s + 20
  21461. v13 = *(*Tulg)(unsafe.Pointer(v14))
  21462. *(*Tulg)(unsafe.Pointer(v14))++
  21463. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v13))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21464. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21465. *(*int32)(unsafe.Pointer(s + 5820)) += len11 - int32(m_Buf_size)
  21466. } else {
  21467. p15 = s + 5816
  21468. *(*Tush)(unsafe.Pointer(p15)) = Tush(int32(*(*Tush)(unsafe.Pointer(p15))) | int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21469. *(*int32)(unsafe.Pointer(s + 5820)) += len11
  21470. } /* send length code */
  21471. extra = _extra_lbits[code]
  21472. if extra != 0 {
  21473. lc -= _base_length[code]
  21474. len2 = extra
  21475. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  21476. val2 = lc
  21477. p16 = s + 5816
  21478. *(*Tush)(unsafe.Pointer(p16)) = Tush(int32(*(*Tush)(unsafe.Pointer(p16))) | int32(uint16(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21479. v18 = s + 20
  21480. v17 = *(*Tulg)(unsafe.Pointer(v18))
  21481. *(*Tulg)(unsafe.Pointer(v18))++
  21482. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v17))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21483. v20 = s + 20
  21484. v19 = *(*Tulg)(unsafe.Pointer(v20))
  21485. *(*Tulg)(unsafe.Pointer(v20))++
  21486. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v19))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21487. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21488. *(*int32)(unsafe.Pointer(s + 5820)) += len2 - int32(m_Buf_size)
  21489. } else {
  21490. p21 = s + 5816
  21491. *(*Tush)(unsafe.Pointer(p21)) = Tush(int32(*(*Tush)(unsafe.Pointer(p21))) | int32(uint16(lc))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21492. *(*int32)(unsafe.Pointer(s + 5820)) += len2
  21493. } /* send the extra length bits */
  21494. }
  21495. dist-- /* dist is now the match distance - 1 */
  21496. if dist < uint32(256) {
  21497. v22 = int32(x__dist_code[dist])
  21498. } else {
  21499. v22 = int32(x__dist_code[uint32(256)+dist>>int32(7)])
  21500. }
  21501. code = uint32(v22)
  21502. len3 = int32(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4 + 2)))
  21503. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  21504. val3 = int32(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4)))
  21505. p23 = s + 5816
  21506. *(*Tush)(unsafe.Pointer(p23)) = Tush(int32(*(*Tush)(unsafe.Pointer(p23))) | int32(uint16(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21507. v25 = s + 20
  21508. v24 = *(*Tulg)(unsafe.Pointer(v25))
  21509. *(*Tulg)(unsafe.Pointer(v25))++
  21510. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21511. v27 = s + 20
  21512. v26 = *(*Tulg)(unsafe.Pointer(v27))
  21513. *(*Tulg)(unsafe.Pointer(v27))++
  21514. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21515. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21516. *(*int32)(unsafe.Pointer(s + 5820)) += len3 - int32(m_Buf_size)
  21517. } else {
  21518. p28 = s + 5816
  21519. *(*Tush)(unsafe.Pointer(p28)) = Tush(int32(*(*Tush)(unsafe.Pointer(p28))) | int32(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21520. *(*int32)(unsafe.Pointer(s + 5820)) += len3
  21521. } /* send the distance code */
  21522. extra = _extra_dbits[code]
  21523. if extra != 0 {
  21524. dist -= uint32(_base_dist[code])
  21525. len4 = extra
  21526. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len4 {
  21527. val4 = int32(dist)
  21528. p29 = s + 5816
  21529. *(*Tush)(unsafe.Pointer(p29)) = Tush(int32(*(*Tush)(unsafe.Pointer(p29))) | int32(uint16(val4))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21530. v31 = s + 20
  21531. v30 = *(*Tulg)(unsafe.Pointer(v31))
  21532. *(*Tulg)(unsafe.Pointer(v31))++
  21533. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v30))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21534. v33 = s + 20
  21535. v32 = *(*Tulg)(unsafe.Pointer(v33))
  21536. *(*Tulg)(unsafe.Pointer(v33))++
  21537. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v32))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21538. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val4)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21539. *(*int32)(unsafe.Pointer(s + 5820)) += len4 - int32(m_Buf_size)
  21540. } else {
  21541. p34 = s + 5816
  21542. *(*Tush)(unsafe.Pointer(p34)) = Tush(int32(*(*Tush)(unsafe.Pointer(p34))) | int32(uint16(dist))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21543. *(*int32)(unsafe.Pointer(s + 5820)) += len4
  21544. } /* send the extra distance bits */
  21545. }
  21546. } /* literal or match pair ? */
  21547. /* Check for no overlay of pending_buf on needed symbols */
  21548. }
  21549. }
  21550. len5 = int32(*(*Tush)(unsafe.Pointer(ltree + 256*4 + 2)))
  21551. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len5 {
  21552. val5 = int32(*(*Tush)(unsafe.Pointer(ltree + 256*4)))
  21553. p35 = s + 5816
  21554. *(*Tush)(unsafe.Pointer(p35)) = Tush(int32(*(*Tush)(unsafe.Pointer(p35))) | int32(uint16(val5))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21555. v37 = s + 20
  21556. v36 = *(*Tulg)(unsafe.Pointer(v37))
  21557. *(*Tulg)(unsafe.Pointer(v37))++
  21558. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v36))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21559. v39 = s + 20
  21560. v38 = *(*Tulg)(unsafe.Pointer(v39))
  21561. *(*Tulg)(unsafe.Pointer(v39))++
  21562. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v38))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21563. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val5)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21564. *(*int32)(unsafe.Pointer(s + 5820)) += len5 - int32(m_Buf_size)
  21565. } else {
  21566. p40 = s + 5816
  21567. *(*Tush)(unsafe.Pointer(p40)) = Tush(int32(*(*Tush)(unsafe.Pointer(p40))) | int32(*(*Tush)(unsafe.Pointer(ltree + 256*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21568. *(*int32)(unsafe.Pointer(s + 5820)) += len5
  21569. }
  21570. }
  21571. // C documentation
  21572. //
  21573. // /* ===========================================================================
  21574. // * Check if the data type is TEXT or BINARY, using the following algorithm:
  21575. // * - TEXT if the two conditions below are satisfied:
  21576. // * a) There are no non-portable control characters belonging to the
  21577. // * "block list" (0..6, 14..25, 28..31).
  21578. // * b) There is at least one printable character belonging to the
  21579. // * "allow list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).
  21580. // * - BINARY otherwise.
  21581. // * - The following partially-portable control characters form a
  21582. // * "gray list" that is ignored in this detection algorithm:
  21583. // * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).
  21584. // * IN assertion: the fields Freq of dyn_ltree are set.
  21585. // */
  21586. func _detect_data_type(tls *libc.TLS, s uintptr) (r int32) {
  21587. var block_mask uint32
  21588. var n int32
  21589. _, _ = block_mask, n
  21590. /* block_mask is the bit mask of block-listed bytes
  21591. * set bits 0..6, 14..25, and 28..31
  21592. * 0xf3ffc07f = binary 11110011111111111100000001111111
  21593. */
  21594. block_mask = uint32(0xf3ffc07f)
  21595. /* Check for non-textual ("block-listed") bytes. */
  21596. n = 0
  21597. for {
  21598. if !(n <= int32(31)) {
  21599. break
  21600. }
  21601. if block_mask&uint32(1) != 0 && int32(*(*Tush)(unsafe.Pointer(s + 148 + uintptr(n)*4))) != 0 {
  21602. return m_Z_BINARY
  21603. }
  21604. goto _1
  21605. _1:
  21606. ;
  21607. n++
  21608. block_mask >>= uint32(1)
  21609. }
  21610. /* Check for textual ("allow-listed") bytes. */
  21611. if int32(*(*Tush)(unsafe.Pointer(s + 148 + 9*4))) != 0 || int32(*(*Tush)(unsafe.Pointer(s + 148 + 10*4))) != 0 || int32(*(*Tush)(unsafe.Pointer(s + 148 + 13*4))) != 0 {
  21612. return int32(m_Z_TEXT)
  21613. }
  21614. n = int32(32)
  21615. for {
  21616. if !(n < int32(m_LITERALS)) {
  21617. break
  21618. }
  21619. if int32(*(*Tush)(unsafe.Pointer(s + 148 + uintptr(n)*4))) != 0 {
  21620. return int32(m_Z_TEXT)
  21621. }
  21622. goto _2
  21623. _2:
  21624. ;
  21625. n++
  21626. }
  21627. /* There are no "block-listed" or "allow-listed" bytes:
  21628. * this stream either is empty or has tolerated ("gray-listed") bytes only.
  21629. */
  21630. return m_Z_BINARY
  21631. }
  21632. // C documentation
  21633. //
  21634. // /* ===========================================================================
  21635. // * Determine the best encoding for the current block: dynamic trees, static
  21636. // * trees or store, and write out the encoded block.
  21637. // */
  21638. func x__tr_flush_block(tls *libc.TLS, s uintptr, buf uintptr, stored_len Tulg, last int32) {
  21639. var len1, len11, max_blindex, val, val1 int32
  21640. var opt_lenb, static_lenb, v1, v11, v3, v5, v9 Tulg
  21641. var v10, v12, v4, v6, p13, p2, p7, p8 uintptr
  21642. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  21643. max_blindex = 0 /* index of last bit length code of non zero freq */
  21644. /* Build the Huffman trees unless a stored block is forced */
  21645. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel > 0 {
  21646. /* Check if the file is binary or text */
  21647. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fdata_type == int32(m_Z_UNKNOWN) {
  21648. (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fdata_type = _detect_data_type(tls, s)
  21649. }
  21650. /* Construct the literal and distance trees */
  21651. _build_tree(tls, s, s+2840)
  21652. _build_tree(tls, s, s+2852)
  21653. /* At this point, opt_len and static_len are the total bit lengths of
  21654. * the compressed block data, excluding the tree representations.
  21655. */
  21656. /* Build the bit length tree for the above two trees, and get the index
  21657. * in bl_order of the last bit length code to send.
  21658. */
  21659. max_blindex = _build_bl_tree(tls, s)
  21660. /* Determine the best encoding. Compute the block lengths in bytes. */
  21661. opt_lenb = ((*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len + uint32(3) + uint32(7)) >> int32(3)
  21662. static_lenb = ((*Tdeflate_state)(unsafe.Pointer(s)).Fstatic_len + uint32(3) + uint32(7)) >> int32(3)
  21663. if static_lenb <= opt_lenb || (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_FIXED) {
  21664. opt_lenb = static_lenb
  21665. }
  21666. } else {
  21667. v1 = stored_len + libc.Uint32FromInt32(5)
  21668. static_lenb = v1
  21669. opt_lenb = v1 /* force a stored block */
  21670. }
  21671. if stored_len+uint32(4) <= opt_lenb && buf != libc.UintptrFromInt32(0) {
  21672. /* 4: two words for the lengths */
  21673. /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
  21674. * Otherwise we can't have processed more than WSIZE input bytes since
  21675. * the last block flush, because compression would have been
  21676. * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
  21677. * transform a block into a stored block.
  21678. */
  21679. x__tr_stored_block(tls, s, buf, stored_len, last)
  21680. } else {
  21681. if static_lenb == opt_lenb {
  21682. len1 = int32(3)
  21683. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  21684. val = libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1) + last
  21685. p2 = s + 5816
  21686. *(*Tush)(unsafe.Pointer(p2)) = Tush(int32(*(*Tush)(unsafe.Pointer(p2))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21687. v4 = s + 20
  21688. v3 = *(*Tulg)(unsafe.Pointer(v4))
  21689. *(*Tulg)(unsafe.Pointer(v4))++
  21690. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21691. v6 = s + 20
  21692. v5 = *(*Tulg)(unsafe.Pointer(v6))
  21693. *(*Tulg)(unsafe.Pointer(v6))++
  21694. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21695. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21696. *(*int32)(unsafe.Pointer(s + 5820)) += len1 - int32(m_Buf_size)
  21697. } else {
  21698. p7 = s + 5816
  21699. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | int32(uint16(libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21700. *(*int32)(unsafe.Pointer(s + 5820)) += len1
  21701. }
  21702. _compress_block(tls, s, uintptr(unsafe.Pointer(&_static_ltree)), uintptr(unsafe.Pointer(&_static_dtree)))
  21703. } else {
  21704. len11 = int32(3)
  21705. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  21706. val1 = libc.Int32FromInt32(m_DYN_TREES)<<libc.Int32FromInt32(1) + last
  21707. p8 = s + 5816
  21708. *(*Tush)(unsafe.Pointer(p8)) = Tush(int32(*(*Tush)(unsafe.Pointer(p8))) | int32(uint16(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21709. v10 = s + 20
  21710. v9 = *(*Tulg)(unsafe.Pointer(v10))
  21711. *(*Tulg)(unsafe.Pointer(v10))++
  21712. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v9))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21713. v12 = s + 20
  21714. v11 = *(*Tulg)(unsafe.Pointer(v12))
  21715. *(*Tulg)(unsafe.Pointer(v12))++
  21716. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21717. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21718. *(*int32)(unsafe.Pointer(s + 5820)) += len11 - int32(m_Buf_size)
  21719. } else {
  21720. p13 = s + 5816
  21721. *(*Tush)(unsafe.Pointer(p13)) = Tush(int32(*(*Tush)(unsafe.Pointer(p13))) | int32(uint16(libc.Int32FromInt32(m_DYN_TREES)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21722. *(*int32)(unsafe.Pointer(s + 5820)) += len11
  21723. }
  21724. _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))
  21725. _compress_block(tls, s, s+148, s+2440)
  21726. }
  21727. }
  21728. /* The above check is made mod 2^32, for files larger than 512 MB
  21729. * and uLong implemented on 32 bits.
  21730. */
  21731. _init_block(tls, s)
  21732. if last != 0 {
  21733. _bi_windup(tls, s)
  21734. }
  21735. }
  21736. // C documentation
  21737. //
  21738. // /* ===========================================================================
  21739. // * Save the match info and tally the frequency counts. Return true if
  21740. // * the current block must be flushed.
  21741. // */
  21742. func x__tr_tally(tls *libc.TLS, s uintptr, dist uint32, lc uint32) (r int32) {
  21743. var v1, v3, v5 TuInt
  21744. var v2, v4, v6 uintptr
  21745. var v7 int32
  21746. _, _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6, v7
  21747. v2 = s + 5792
  21748. v1 = *(*TuInt)(unsafe.Pointer(v2))
  21749. *(*TuInt)(unsafe.Pointer(v2))++
  21750. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v1))) = uint8(dist)
  21751. v4 = s + 5792
  21752. v3 = *(*TuInt)(unsafe.Pointer(v4))
  21753. *(*TuInt)(unsafe.Pointer(v4))++
  21754. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist >> libc.Int32FromInt32(8))
  21755. v6 = s + 5792
  21756. v5 = *(*TuInt)(unsafe.Pointer(v6))
  21757. *(*TuInt)(unsafe.Pointer(v6))++
  21758. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = uint8(lc)
  21759. if dist == uint32(0) {
  21760. /* lc is the unmatched char */
  21761. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(lc)*4))++
  21762. } else {
  21763. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  21764. /* Here, lc is the match length - MIN_MATCH */
  21765. dist-- /* dist = match distance - 1 */
  21766. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(int32(x__length_code[lc])+int32(m_LITERALS)+int32(1))*4))++
  21767. if dist < uint32(256) {
  21768. v7 = int32(x__dist_code[dist])
  21769. } else {
  21770. v7 = int32(x__dist_code[uint32(256)+dist>>int32(7)])
  21771. }
  21772. *(*Tush)(unsafe.Pointer(s + 2440 + uintptr(v7)*4))++
  21773. }
  21774. return libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  21775. }
  21776. // C documentation
  21777. //
  21778. // /* ===========================================================================
  21779. // Decompresses the source buffer into the destination buffer. *sourceLen is
  21780. // the byte length of the source buffer. Upon entry, *destLen is the total size
  21781. // of the destination buffer, which must be large enough to hold the entire
  21782. // uncompressed data. (The size of the uncompressed data must have been saved
  21783. // previously by the compressor and transmitted to the decompressor by some
  21784. // mechanism outside the scope of this compression library.) Upon exit,
  21785. // *destLen is the size of the decompressed data and *sourceLen is the number
  21786. // of source bytes consumed. Upon return, source + *sourceLen points to the
  21787. // first unused input byte.
  21788. //
  21789. // uncompress returns Z_OK if success, Z_MEM_ERROR if there was not enough
  21790. // memory, Z_BUF_ERROR if there was not enough room in the output buffer, or
  21791. // Z_DATA_ERROR if the input data was corrupted, including if the input data is
  21792. // an incomplete zlib stream.
  21793. // */
  21794. func Xuncompress2(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen uintptr) (r int32) {
  21795. bp := tls.Alloc(64)
  21796. defer tls.Free(64)
  21797. var err, v3, v4, v5 int32
  21798. var left, len1 TuLong
  21799. var max TuInt
  21800. var v1, v2 uint32
  21801. var _ /* buf at bp+56 */ [1]TByte
  21802. var _ /* stream at bp+0 */ Tz_stream
  21803. _, _, _, _, _, _, _, _, _ = err, left, len1, max, v1, v2, v3, v4, v5
  21804. max = uint32(-libc.Int32FromInt32(1)) /* for detection of incomplete stream when *destLen == 0 */
  21805. len1 = *(*TuLong)(unsafe.Pointer(sourceLen))
  21806. if *(*TuLongf)(unsafe.Pointer(destLen)) != 0 {
  21807. left = *(*TuLongf)(unsafe.Pointer(destLen))
  21808. *(*TuLongf)(unsafe.Pointer(destLen)) = uint32(0)
  21809. } else {
  21810. left = uint32(1)
  21811. dest = bp + 56
  21812. }
  21813. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_in = source
  21814. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = uint32(0)
  21815. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzalloc = libc.UintptrFromInt32(0)
  21816. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzfree = libc.UintptrFromInt32(0)
  21817. (*(*Tz_stream)(unsafe.Pointer(bp))).Fopaque = libc.UintptrFromInt32(0)
  21818. err = XinflateInit_(tls, bp, __ccgo_ts, libc.Int32FromInt64(56))
  21819. if err != m_Z_OK {
  21820. return err
  21821. }
  21822. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_out = dest
  21823. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = uint32(0)
  21824. for cond := true; cond; cond = err == m_Z_OK {
  21825. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out == uint32(0) {
  21826. if left > max {
  21827. v1 = max
  21828. } else {
  21829. v1 = left
  21830. }
  21831. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = v1
  21832. left -= (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out
  21833. }
  21834. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in == uint32(0) {
  21835. if len1 > max {
  21836. v2 = max
  21837. } else {
  21838. v2 = len1
  21839. }
  21840. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = v2
  21841. len1 -= (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in
  21842. }
  21843. err = Xinflate(tls, bp, m_Z_NO_FLUSH)
  21844. }
  21845. *(*TuLong)(unsafe.Pointer(sourceLen)) -= len1 + (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in
  21846. if dest != bp+56 {
  21847. *(*TuLongf)(unsafe.Pointer(destLen)) = (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out
  21848. } else {
  21849. if (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out != 0 && err == -int32(5) {
  21850. left = uint32(1)
  21851. }
  21852. }
  21853. XinflateEnd(tls, bp)
  21854. if err == int32(m_Z_STREAM_END) {
  21855. v3 = m_Z_OK
  21856. } else {
  21857. if err == int32(m_Z_NEED_DICT) {
  21858. v4 = -int32(3)
  21859. } else {
  21860. if err == -int32(5) && left+(*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out != 0 {
  21861. v5 = -int32(3)
  21862. } else {
  21863. v5 = err
  21864. }
  21865. v4 = v5
  21866. }
  21867. v3 = v4
  21868. }
  21869. return v3
  21870. }
  21871. func Xuncompress(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, _sourceLen TuLong) (r int32) {
  21872. bp := tls.Alloc(16)
  21873. defer tls.Free(16)
  21874. *(*TuLong)(unsafe.Pointer(bp)) = _sourceLen
  21875. return Xuncompress2(tls, dest, destLen, source, bp)
  21876. }
  21877. func XzlibVersion(tls *libc.TLS) (r uintptr) {
  21878. return __ccgo_ts
  21879. }
  21880. func XzlibCompileFlags(tls *libc.TLS) (r TuLong) {
  21881. var flags TuLong
  21882. _ = flags
  21883. flags = uint32(0)
  21884. switch int32(libc.Uint32FromInt64(4)) {
  21885. case int32(2):
  21886. case int32(4):
  21887. flags += uint32(1)
  21888. case int32(8):
  21889. flags += uint32(2)
  21890. default:
  21891. flags += uint32(3)
  21892. }
  21893. switch int32(libc.Uint32FromInt64(4)) {
  21894. case int32(2):
  21895. case int32(4):
  21896. flags += uint32(libc.Int32FromInt32(1) << libc.Int32FromInt32(2))
  21897. case int32(8):
  21898. flags += uint32(libc.Int32FromInt32(2) << libc.Int32FromInt32(2))
  21899. default:
  21900. flags += uint32(libc.Int32FromInt32(3) << libc.Int32FromInt32(2))
  21901. }
  21902. switch int32(libc.Uint32FromInt64(4)) {
  21903. case int32(2):
  21904. case int32(4):
  21905. flags += uint32(libc.Int32FromInt32(1) << libc.Int32FromInt32(4))
  21906. case int32(8):
  21907. flags += uint32(libc.Int32FromInt32(2) << libc.Int32FromInt32(4))
  21908. default:
  21909. flags += uint32(libc.Int32FromInt32(3) << libc.Int32FromInt32(4))
  21910. }
  21911. switch int32(libc.Uint32FromInt64(4)) {
  21912. case int32(2):
  21913. case int32(4):
  21914. flags += uint32(libc.Int32FromInt32(1) << libc.Int32FromInt32(6))
  21915. case int32(8):
  21916. flags += uint32(libc.Int32FromInt32(2) << libc.Int32FromInt32(6))
  21917. default:
  21918. flags += uint32(libc.Int32FromInt32(3) << libc.Int32FromInt32(6))
  21919. }
  21920. /*
  21921. #if defined(ASMV) || defined(ASMINF)
  21922. flags += 1 << 9;
  21923. #endif
  21924. */
  21925. return flags
  21926. }
  21927. // C documentation
  21928. //
  21929. // /* exported to allow conversion of error code to string for compress() and
  21930. // * uncompress()
  21931. // */
  21932. func XzError(tls *libc.TLS, err int32) (r uintptr) {
  21933. var v1 int32
  21934. _ = v1
  21935. if err < -int32(6) || err > int32(2) {
  21936. v1 = int32(9)
  21937. } else {
  21938. v1 = int32(2) - err
  21939. }
  21940. return Xz_errmsg[v1]
  21941. }
  21942. func Xzcalloc(tls *libc.TLS, opaque Tvoidpf, items uint32, size uint32) (r Tvoidpf) {
  21943. _ = opaque
  21944. return libc.Xmalloc(tls, items*size)
  21945. }
  21946. func Xzcfree(tls *libc.TLS, opaque Tvoidpf, ptr Tvoidpf) {
  21947. _ = opaque
  21948. libc.Xfree(tls, ptr)
  21949. }
  21950. func __ccgo_fp(f interface{}) uintptr {
  21951. type iface [2]uintptr
  21952. return (*iface)(unsafe.Pointer(&f))[1]
  21953. }
  21954. var x__dist_code = [512]Tuch{
  21955. 1: uint8(1),
  21956. 2: uint8(2),
  21957. 3: uint8(3),
  21958. 4: uint8(4),
  21959. 5: uint8(4),
  21960. 6: uint8(5),
  21961. 7: uint8(5),
  21962. 8: uint8(6),
  21963. 9: uint8(6),
  21964. 10: uint8(6),
  21965. 11: uint8(6),
  21966. 12: uint8(7),
  21967. 13: uint8(7),
  21968. 14: uint8(7),
  21969. 15: uint8(7),
  21970. 16: uint8(8),
  21971. 17: uint8(8),
  21972. 18: uint8(8),
  21973. 19: uint8(8),
  21974. 20: uint8(8),
  21975. 21: uint8(8),
  21976. 22: uint8(8),
  21977. 23: uint8(8),
  21978. 24: uint8(9),
  21979. 25: uint8(9),
  21980. 26: uint8(9),
  21981. 27: uint8(9),
  21982. 28: uint8(9),
  21983. 29: uint8(9),
  21984. 30: uint8(9),
  21985. 31: uint8(9),
  21986. 32: uint8(10),
  21987. 33: uint8(10),
  21988. 34: uint8(10),
  21989. 35: uint8(10),
  21990. 36: uint8(10),
  21991. 37: uint8(10),
  21992. 38: uint8(10),
  21993. 39: uint8(10),
  21994. 40: uint8(10),
  21995. 41: uint8(10),
  21996. 42: uint8(10),
  21997. 43: uint8(10),
  21998. 44: uint8(10),
  21999. 45: uint8(10),
  22000. 46: uint8(10),
  22001. 47: uint8(10),
  22002. 48: uint8(11),
  22003. 49: uint8(11),
  22004. 50: uint8(11),
  22005. 51: uint8(11),
  22006. 52: uint8(11),
  22007. 53: uint8(11),
  22008. 54: uint8(11),
  22009. 55: uint8(11),
  22010. 56: uint8(11),
  22011. 57: uint8(11),
  22012. 58: uint8(11),
  22013. 59: uint8(11),
  22014. 60: uint8(11),
  22015. 61: uint8(11),
  22016. 62: uint8(11),
  22017. 63: uint8(11),
  22018. 64: uint8(12),
  22019. 65: uint8(12),
  22020. 66: uint8(12),
  22021. 67: uint8(12),
  22022. 68: uint8(12),
  22023. 69: uint8(12),
  22024. 70: uint8(12),
  22025. 71: uint8(12),
  22026. 72: uint8(12),
  22027. 73: uint8(12),
  22028. 74: uint8(12),
  22029. 75: uint8(12),
  22030. 76: uint8(12),
  22031. 77: uint8(12),
  22032. 78: uint8(12),
  22033. 79: uint8(12),
  22034. 80: uint8(12),
  22035. 81: uint8(12),
  22036. 82: uint8(12),
  22037. 83: uint8(12),
  22038. 84: uint8(12),
  22039. 85: uint8(12),
  22040. 86: uint8(12),
  22041. 87: uint8(12),
  22042. 88: uint8(12),
  22043. 89: uint8(12),
  22044. 90: uint8(12),
  22045. 91: uint8(12),
  22046. 92: uint8(12),
  22047. 93: uint8(12),
  22048. 94: uint8(12),
  22049. 95: uint8(12),
  22050. 96: uint8(13),
  22051. 97: uint8(13),
  22052. 98: uint8(13),
  22053. 99: uint8(13),
  22054. 100: uint8(13),
  22055. 101: uint8(13),
  22056. 102: uint8(13),
  22057. 103: uint8(13),
  22058. 104: uint8(13),
  22059. 105: uint8(13),
  22060. 106: uint8(13),
  22061. 107: uint8(13),
  22062. 108: uint8(13),
  22063. 109: uint8(13),
  22064. 110: uint8(13),
  22065. 111: uint8(13),
  22066. 112: uint8(13),
  22067. 113: uint8(13),
  22068. 114: uint8(13),
  22069. 115: uint8(13),
  22070. 116: uint8(13),
  22071. 117: uint8(13),
  22072. 118: uint8(13),
  22073. 119: uint8(13),
  22074. 120: uint8(13),
  22075. 121: uint8(13),
  22076. 122: uint8(13),
  22077. 123: uint8(13),
  22078. 124: uint8(13),
  22079. 125: uint8(13),
  22080. 126: uint8(13),
  22081. 127: uint8(13),
  22082. 128: uint8(14),
  22083. 129: uint8(14),
  22084. 130: uint8(14),
  22085. 131: uint8(14),
  22086. 132: uint8(14),
  22087. 133: uint8(14),
  22088. 134: uint8(14),
  22089. 135: uint8(14),
  22090. 136: uint8(14),
  22091. 137: uint8(14),
  22092. 138: uint8(14),
  22093. 139: uint8(14),
  22094. 140: uint8(14),
  22095. 141: uint8(14),
  22096. 142: uint8(14),
  22097. 143: uint8(14),
  22098. 144: uint8(14),
  22099. 145: uint8(14),
  22100. 146: uint8(14),
  22101. 147: uint8(14),
  22102. 148: uint8(14),
  22103. 149: uint8(14),
  22104. 150: uint8(14),
  22105. 151: uint8(14),
  22106. 152: uint8(14),
  22107. 153: uint8(14),
  22108. 154: uint8(14),
  22109. 155: uint8(14),
  22110. 156: uint8(14),
  22111. 157: uint8(14),
  22112. 158: uint8(14),
  22113. 159: uint8(14),
  22114. 160: uint8(14),
  22115. 161: uint8(14),
  22116. 162: uint8(14),
  22117. 163: uint8(14),
  22118. 164: uint8(14),
  22119. 165: uint8(14),
  22120. 166: uint8(14),
  22121. 167: uint8(14),
  22122. 168: uint8(14),
  22123. 169: uint8(14),
  22124. 170: uint8(14),
  22125. 171: uint8(14),
  22126. 172: uint8(14),
  22127. 173: uint8(14),
  22128. 174: uint8(14),
  22129. 175: uint8(14),
  22130. 176: uint8(14),
  22131. 177: uint8(14),
  22132. 178: uint8(14),
  22133. 179: uint8(14),
  22134. 180: uint8(14),
  22135. 181: uint8(14),
  22136. 182: uint8(14),
  22137. 183: uint8(14),
  22138. 184: uint8(14),
  22139. 185: uint8(14),
  22140. 186: uint8(14),
  22141. 187: uint8(14),
  22142. 188: uint8(14),
  22143. 189: uint8(14),
  22144. 190: uint8(14),
  22145. 191: uint8(14),
  22146. 192: uint8(15),
  22147. 193: uint8(15),
  22148. 194: uint8(15),
  22149. 195: uint8(15),
  22150. 196: uint8(15),
  22151. 197: uint8(15),
  22152. 198: uint8(15),
  22153. 199: uint8(15),
  22154. 200: uint8(15),
  22155. 201: uint8(15),
  22156. 202: uint8(15),
  22157. 203: uint8(15),
  22158. 204: uint8(15),
  22159. 205: uint8(15),
  22160. 206: uint8(15),
  22161. 207: uint8(15),
  22162. 208: uint8(15),
  22163. 209: uint8(15),
  22164. 210: uint8(15),
  22165. 211: uint8(15),
  22166. 212: uint8(15),
  22167. 213: uint8(15),
  22168. 214: uint8(15),
  22169. 215: uint8(15),
  22170. 216: uint8(15),
  22171. 217: uint8(15),
  22172. 218: uint8(15),
  22173. 219: uint8(15),
  22174. 220: uint8(15),
  22175. 221: uint8(15),
  22176. 222: uint8(15),
  22177. 223: uint8(15),
  22178. 224: uint8(15),
  22179. 225: uint8(15),
  22180. 226: uint8(15),
  22181. 227: uint8(15),
  22182. 228: uint8(15),
  22183. 229: uint8(15),
  22184. 230: uint8(15),
  22185. 231: uint8(15),
  22186. 232: uint8(15),
  22187. 233: uint8(15),
  22188. 234: uint8(15),
  22189. 235: uint8(15),
  22190. 236: uint8(15),
  22191. 237: uint8(15),
  22192. 238: uint8(15),
  22193. 239: uint8(15),
  22194. 240: uint8(15),
  22195. 241: uint8(15),
  22196. 242: uint8(15),
  22197. 243: uint8(15),
  22198. 244: uint8(15),
  22199. 245: uint8(15),
  22200. 246: uint8(15),
  22201. 247: uint8(15),
  22202. 248: uint8(15),
  22203. 249: uint8(15),
  22204. 250: uint8(15),
  22205. 251: uint8(15),
  22206. 252: uint8(15),
  22207. 253: uint8(15),
  22208. 254: uint8(15),
  22209. 255: uint8(15),
  22210. 258: uint8(16),
  22211. 259: uint8(17),
  22212. 260: uint8(18),
  22213. 261: uint8(18),
  22214. 262: uint8(19),
  22215. 263: uint8(19),
  22216. 264: uint8(20),
  22217. 265: uint8(20),
  22218. 266: uint8(20),
  22219. 267: uint8(20),
  22220. 268: uint8(21),
  22221. 269: uint8(21),
  22222. 270: uint8(21),
  22223. 271: uint8(21),
  22224. 272: uint8(22),
  22225. 273: uint8(22),
  22226. 274: uint8(22),
  22227. 275: uint8(22),
  22228. 276: uint8(22),
  22229. 277: uint8(22),
  22230. 278: uint8(22),
  22231. 279: uint8(22),
  22232. 280: uint8(23),
  22233. 281: uint8(23),
  22234. 282: uint8(23),
  22235. 283: uint8(23),
  22236. 284: uint8(23),
  22237. 285: uint8(23),
  22238. 286: uint8(23),
  22239. 287: uint8(23),
  22240. 288: uint8(24),
  22241. 289: uint8(24),
  22242. 290: uint8(24),
  22243. 291: uint8(24),
  22244. 292: uint8(24),
  22245. 293: uint8(24),
  22246. 294: uint8(24),
  22247. 295: uint8(24),
  22248. 296: uint8(24),
  22249. 297: uint8(24),
  22250. 298: uint8(24),
  22251. 299: uint8(24),
  22252. 300: uint8(24),
  22253. 301: uint8(24),
  22254. 302: uint8(24),
  22255. 303: uint8(24),
  22256. 304: uint8(25),
  22257. 305: uint8(25),
  22258. 306: uint8(25),
  22259. 307: uint8(25),
  22260. 308: uint8(25),
  22261. 309: uint8(25),
  22262. 310: uint8(25),
  22263. 311: uint8(25),
  22264. 312: uint8(25),
  22265. 313: uint8(25),
  22266. 314: uint8(25),
  22267. 315: uint8(25),
  22268. 316: uint8(25),
  22269. 317: uint8(25),
  22270. 318: uint8(25),
  22271. 319: uint8(25),
  22272. 320: uint8(26),
  22273. 321: uint8(26),
  22274. 322: uint8(26),
  22275. 323: uint8(26),
  22276. 324: uint8(26),
  22277. 325: uint8(26),
  22278. 326: uint8(26),
  22279. 327: uint8(26),
  22280. 328: uint8(26),
  22281. 329: uint8(26),
  22282. 330: uint8(26),
  22283. 331: uint8(26),
  22284. 332: uint8(26),
  22285. 333: uint8(26),
  22286. 334: uint8(26),
  22287. 335: uint8(26),
  22288. 336: uint8(26),
  22289. 337: uint8(26),
  22290. 338: uint8(26),
  22291. 339: uint8(26),
  22292. 340: uint8(26),
  22293. 341: uint8(26),
  22294. 342: uint8(26),
  22295. 343: uint8(26),
  22296. 344: uint8(26),
  22297. 345: uint8(26),
  22298. 346: uint8(26),
  22299. 347: uint8(26),
  22300. 348: uint8(26),
  22301. 349: uint8(26),
  22302. 350: uint8(26),
  22303. 351: uint8(26),
  22304. 352: uint8(27),
  22305. 353: uint8(27),
  22306. 354: uint8(27),
  22307. 355: uint8(27),
  22308. 356: uint8(27),
  22309. 357: uint8(27),
  22310. 358: uint8(27),
  22311. 359: uint8(27),
  22312. 360: uint8(27),
  22313. 361: uint8(27),
  22314. 362: uint8(27),
  22315. 363: uint8(27),
  22316. 364: uint8(27),
  22317. 365: uint8(27),
  22318. 366: uint8(27),
  22319. 367: uint8(27),
  22320. 368: uint8(27),
  22321. 369: uint8(27),
  22322. 370: uint8(27),
  22323. 371: uint8(27),
  22324. 372: uint8(27),
  22325. 373: uint8(27),
  22326. 374: uint8(27),
  22327. 375: uint8(27),
  22328. 376: uint8(27),
  22329. 377: uint8(27),
  22330. 378: uint8(27),
  22331. 379: uint8(27),
  22332. 380: uint8(27),
  22333. 381: uint8(27),
  22334. 382: uint8(27),
  22335. 383: uint8(27),
  22336. 384: uint8(28),
  22337. 385: uint8(28),
  22338. 386: uint8(28),
  22339. 387: uint8(28),
  22340. 388: uint8(28),
  22341. 389: uint8(28),
  22342. 390: uint8(28),
  22343. 391: uint8(28),
  22344. 392: uint8(28),
  22345. 393: uint8(28),
  22346. 394: uint8(28),
  22347. 395: uint8(28),
  22348. 396: uint8(28),
  22349. 397: uint8(28),
  22350. 398: uint8(28),
  22351. 399: uint8(28),
  22352. 400: uint8(28),
  22353. 401: uint8(28),
  22354. 402: uint8(28),
  22355. 403: uint8(28),
  22356. 404: uint8(28),
  22357. 405: uint8(28),
  22358. 406: uint8(28),
  22359. 407: uint8(28),
  22360. 408: uint8(28),
  22361. 409: uint8(28),
  22362. 410: uint8(28),
  22363. 411: uint8(28),
  22364. 412: uint8(28),
  22365. 413: uint8(28),
  22366. 414: uint8(28),
  22367. 415: uint8(28),
  22368. 416: uint8(28),
  22369. 417: uint8(28),
  22370. 418: uint8(28),
  22371. 419: uint8(28),
  22372. 420: uint8(28),
  22373. 421: uint8(28),
  22374. 422: uint8(28),
  22375. 423: uint8(28),
  22376. 424: uint8(28),
  22377. 425: uint8(28),
  22378. 426: uint8(28),
  22379. 427: uint8(28),
  22380. 428: uint8(28),
  22381. 429: uint8(28),
  22382. 430: uint8(28),
  22383. 431: uint8(28),
  22384. 432: uint8(28),
  22385. 433: uint8(28),
  22386. 434: uint8(28),
  22387. 435: uint8(28),
  22388. 436: uint8(28),
  22389. 437: uint8(28),
  22390. 438: uint8(28),
  22391. 439: uint8(28),
  22392. 440: uint8(28),
  22393. 441: uint8(28),
  22394. 442: uint8(28),
  22395. 443: uint8(28),
  22396. 444: uint8(28),
  22397. 445: uint8(28),
  22398. 446: uint8(28),
  22399. 447: uint8(28),
  22400. 448: uint8(29),
  22401. 449: uint8(29),
  22402. 450: uint8(29),
  22403. 451: uint8(29),
  22404. 452: uint8(29),
  22405. 453: uint8(29),
  22406. 454: uint8(29),
  22407. 455: uint8(29),
  22408. 456: uint8(29),
  22409. 457: uint8(29),
  22410. 458: uint8(29),
  22411. 459: uint8(29),
  22412. 460: uint8(29),
  22413. 461: uint8(29),
  22414. 462: uint8(29),
  22415. 463: uint8(29),
  22416. 464: uint8(29),
  22417. 465: uint8(29),
  22418. 466: uint8(29),
  22419. 467: uint8(29),
  22420. 468: uint8(29),
  22421. 469: uint8(29),
  22422. 470: uint8(29),
  22423. 471: uint8(29),
  22424. 472: uint8(29),
  22425. 473: uint8(29),
  22426. 474: uint8(29),
  22427. 475: uint8(29),
  22428. 476: uint8(29),
  22429. 477: uint8(29),
  22430. 478: uint8(29),
  22431. 479: uint8(29),
  22432. 480: uint8(29),
  22433. 481: uint8(29),
  22434. 482: uint8(29),
  22435. 483: uint8(29),
  22436. 484: uint8(29),
  22437. 485: uint8(29),
  22438. 486: uint8(29),
  22439. 487: uint8(29),
  22440. 488: uint8(29),
  22441. 489: uint8(29),
  22442. 490: uint8(29),
  22443. 491: uint8(29),
  22444. 492: uint8(29),
  22445. 493: uint8(29),
  22446. 494: uint8(29),
  22447. 495: uint8(29),
  22448. 496: uint8(29),
  22449. 497: uint8(29),
  22450. 498: uint8(29),
  22451. 499: uint8(29),
  22452. 500: uint8(29),
  22453. 501: uint8(29),
  22454. 502: uint8(29),
  22455. 503: uint8(29),
  22456. 504: uint8(29),
  22457. 505: uint8(29),
  22458. 506: uint8(29),
  22459. 507: uint8(29),
  22460. 508: uint8(29),
  22461. 509: uint8(29),
  22462. 510: uint8(29),
  22463. 511: uint8(29),
  22464. }
  22465. var x__length_code = [256]Tuch{
  22466. 1: uint8(1),
  22467. 2: uint8(2),
  22468. 3: uint8(3),
  22469. 4: uint8(4),
  22470. 5: uint8(5),
  22471. 6: uint8(6),
  22472. 7: uint8(7),
  22473. 8: uint8(8),
  22474. 9: uint8(8),
  22475. 10: uint8(9),
  22476. 11: uint8(9),
  22477. 12: uint8(10),
  22478. 13: uint8(10),
  22479. 14: uint8(11),
  22480. 15: uint8(11),
  22481. 16: uint8(12),
  22482. 17: uint8(12),
  22483. 18: uint8(12),
  22484. 19: uint8(12),
  22485. 20: uint8(13),
  22486. 21: uint8(13),
  22487. 22: uint8(13),
  22488. 23: uint8(13),
  22489. 24: uint8(14),
  22490. 25: uint8(14),
  22491. 26: uint8(14),
  22492. 27: uint8(14),
  22493. 28: uint8(15),
  22494. 29: uint8(15),
  22495. 30: uint8(15),
  22496. 31: uint8(15),
  22497. 32: uint8(16),
  22498. 33: uint8(16),
  22499. 34: uint8(16),
  22500. 35: uint8(16),
  22501. 36: uint8(16),
  22502. 37: uint8(16),
  22503. 38: uint8(16),
  22504. 39: uint8(16),
  22505. 40: uint8(17),
  22506. 41: uint8(17),
  22507. 42: uint8(17),
  22508. 43: uint8(17),
  22509. 44: uint8(17),
  22510. 45: uint8(17),
  22511. 46: uint8(17),
  22512. 47: uint8(17),
  22513. 48: uint8(18),
  22514. 49: uint8(18),
  22515. 50: uint8(18),
  22516. 51: uint8(18),
  22517. 52: uint8(18),
  22518. 53: uint8(18),
  22519. 54: uint8(18),
  22520. 55: uint8(18),
  22521. 56: uint8(19),
  22522. 57: uint8(19),
  22523. 58: uint8(19),
  22524. 59: uint8(19),
  22525. 60: uint8(19),
  22526. 61: uint8(19),
  22527. 62: uint8(19),
  22528. 63: uint8(19),
  22529. 64: uint8(20),
  22530. 65: uint8(20),
  22531. 66: uint8(20),
  22532. 67: uint8(20),
  22533. 68: uint8(20),
  22534. 69: uint8(20),
  22535. 70: uint8(20),
  22536. 71: uint8(20),
  22537. 72: uint8(20),
  22538. 73: uint8(20),
  22539. 74: uint8(20),
  22540. 75: uint8(20),
  22541. 76: uint8(20),
  22542. 77: uint8(20),
  22543. 78: uint8(20),
  22544. 79: uint8(20),
  22545. 80: uint8(21),
  22546. 81: uint8(21),
  22547. 82: uint8(21),
  22548. 83: uint8(21),
  22549. 84: uint8(21),
  22550. 85: uint8(21),
  22551. 86: uint8(21),
  22552. 87: uint8(21),
  22553. 88: uint8(21),
  22554. 89: uint8(21),
  22555. 90: uint8(21),
  22556. 91: uint8(21),
  22557. 92: uint8(21),
  22558. 93: uint8(21),
  22559. 94: uint8(21),
  22560. 95: uint8(21),
  22561. 96: uint8(22),
  22562. 97: uint8(22),
  22563. 98: uint8(22),
  22564. 99: uint8(22),
  22565. 100: uint8(22),
  22566. 101: uint8(22),
  22567. 102: uint8(22),
  22568. 103: uint8(22),
  22569. 104: uint8(22),
  22570. 105: uint8(22),
  22571. 106: uint8(22),
  22572. 107: uint8(22),
  22573. 108: uint8(22),
  22574. 109: uint8(22),
  22575. 110: uint8(22),
  22576. 111: uint8(22),
  22577. 112: uint8(23),
  22578. 113: uint8(23),
  22579. 114: uint8(23),
  22580. 115: uint8(23),
  22581. 116: uint8(23),
  22582. 117: uint8(23),
  22583. 118: uint8(23),
  22584. 119: uint8(23),
  22585. 120: uint8(23),
  22586. 121: uint8(23),
  22587. 122: uint8(23),
  22588. 123: uint8(23),
  22589. 124: uint8(23),
  22590. 125: uint8(23),
  22591. 126: uint8(23),
  22592. 127: uint8(23),
  22593. 128: uint8(24),
  22594. 129: uint8(24),
  22595. 130: uint8(24),
  22596. 131: uint8(24),
  22597. 132: uint8(24),
  22598. 133: uint8(24),
  22599. 134: uint8(24),
  22600. 135: uint8(24),
  22601. 136: uint8(24),
  22602. 137: uint8(24),
  22603. 138: uint8(24),
  22604. 139: uint8(24),
  22605. 140: uint8(24),
  22606. 141: uint8(24),
  22607. 142: uint8(24),
  22608. 143: uint8(24),
  22609. 144: uint8(24),
  22610. 145: uint8(24),
  22611. 146: uint8(24),
  22612. 147: uint8(24),
  22613. 148: uint8(24),
  22614. 149: uint8(24),
  22615. 150: uint8(24),
  22616. 151: uint8(24),
  22617. 152: uint8(24),
  22618. 153: uint8(24),
  22619. 154: uint8(24),
  22620. 155: uint8(24),
  22621. 156: uint8(24),
  22622. 157: uint8(24),
  22623. 158: uint8(24),
  22624. 159: uint8(24),
  22625. 160: uint8(25),
  22626. 161: uint8(25),
  22627. 162: uint8(25),
  22628. 163: uint8(25),
  22629. 164: uint8(25),
  22630. 165: uint8(25),
  22631. 166: uint8(25),
  22632. 167: uint8(25),
  22633. 168: uint8(25),
  22634. 169: uint8(25),
  22635. 170: uint8(25),
  22636. 171: uint8(25),
  22637. 172: uint8(25),
  22638. 173: uint8(25),
  22639. 174: uint8(25),
  22640. 175: uint8(25),
  22641. 176: uint8(25),
  22642. 177: uint8(25),
  22643. 178: uint8(25),
  22644. 179: uint8(25),
  22645. 180: uint8(25),
  22646. 181: uint8(25),
  22647. 182: uint8(25),
  22648. 183: uint8(25),
  22649. 184: uint8(25),
  22650. 185: uint8(25),
  22651. 186: uint8(25),
  22652. 187: uint8(25),
  22653. 188: uint8(25),
  22654. 189: uint8(25),
  22655. 190: uint8(25),
  22656. 191: uint8(25),
  22657. 192: uint8(26),
  22658. 193: uint8(26),
  22659. 194: uint8(26),
  22660. 195: uint8(26),
  22661. 196: uint8(26),
  22662. 197: uint8(26),
  22663. 198: uint8(26),
  22664. 199: uint8(26),
  22665. 200: uint8(26),
  22666. 201: uint8(26),
  22667. 202: uint8(26),
  22668. 203: uint8(26),
  22669. 204: uint8(26),
  22670. 205: uint8(26),
  22671. 206: uint8(26),
  22672. 207: uint8(26),
  22673. 208: uint8(26),
  22674. 209: uint8(26),
  22675. 210: uint8(26),
  22676. 211: uint8(26),
  22677. 212: uint8(26),
  22678. 213: uint8(26),
  22679. 214: uint8(26),
  22680. 215: uint8(26),
  22681. 216: uint8(26),
  22682. 217: uint8(26),
  22683. 218: uint8(26),
  22684. 219: uint8(26),
  22685. 220: uint8(26),
  22686. 221: uint8(26),
  22687. 222: uint8(26),
  22688. 223: uint8(26),
  22689. 224: uint8(27),
  22690. 225: uint8(27),
  22691. 226: uint8(27),
  22692. 227: uint8(27),
  22693. 228: uint8(27),
  22694. 229: uint8(27),
  22695. 230: uint8(27),
  22696. 231: uint8(27),
  22697. 232: uint8(27),
  22698. 233: uint8(27),
  22699. 234: uint8(27),
  22700. 235: uint8(27),
  22701. 236: uint8(27),
  22702. 237: uint8(27),
  22703. 238: uint8(27),
  22704. 239: uint8(27),
  22705. 240: uint8(27),
  22706. 241: uint8(27),
  22707. 242: uint8(27),
  22708. 243: uint8(27),
  22709. 244: uint8(27),
  22710. 245: uint8(27),
  22711. 246: uint8(27),
  22712. 247: uint8(27),
  22713. 248: uint8(27),
  22714. 249: uint8(27),
  22715. 250: uint8(27),
  22716. 251: uint8(27),
  22717. 252: uint8(27),
  22718. 253: uint8(27),
  22719. 254: uint8(27),
  22720. 255: uint8(28),
  22721. }
  22722. var Xdeflate_copyright = [68]int8{' ', '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', ' '}
  22723. var Xinflate_copyright = [47]int8{' ', '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', ' '}
  22724. var Xz_errmsg = [10]uintptr{
  22725. 0: __ccgo_ts + 792,
  22726. 1: __ccgo_ts + 808,
  22727. 2: __ccgo_ts + 31,
  22728. 3: __ccgo_ts + 819,
  22729. 4: __ccgo_ts + 830,
  22730. 5: __ccgo_ts + 843,
  22731. 6: __ccgo_ts + 854,
  22732. 7: __ccgo_ts + 874,
  22733. 8: __ccgo_ts + 887,
  22734. 9: __ccgo_ts + 31,
  22735. }
  22736. var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data
  22737. var __ccgo_ts1 = "1.3.1\x00%s\x00<fd:%d>\x00out of memory\x00\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\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\x00file error\x00stream error\x00data error\x00insufficient memory\x00buffer error\x00incompatible version\x00"