ccgo_linux_ppc64le.go 714 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526
  1. // Code generated for linux/ppc64le by 'generator --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-macro=m_ --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -extended-errors --libc modernc.org/libc --package-name=libz -o libz.a.go libz.a', DO NOT EDIT.
  2. //go:build linux && ppc64le
  3. package libz
  4. import (
  5. "reflect"
  6. "unsafe"
  7. "modernc.org/libc"
  8. )
  9. var _ reflect.Type
  10. var _ unsafe.Pointer
  11. const m_ARG_MAX = 131072
  12. const m_BASE = 65521
  13. const m_BC_BASE_MAX = 99
  14. const m_BC_DIM_MAX = 2048
  15. const m_BC_SCALE_MAX = 99
  16. const m_BC_STRING_MAX = 1000
  17. const m_BIG_ENDIAN = "__BIG_ENDIAN"
  18. const m_BYTE_ORDER = "__BYTE_ORDER"
  19. const m_CHARCLASS_NAME_MAX = 14
  20. const m_CHAR_BIT = 8
  21. const m_CHAR_MAX = 255
  22. const m_CHAR_MIN = 0
  23. const m_COLL_WEIGHTS_MAX = 2
  24. const m_DEF_MEM_LEVEL = 8
  25. const m_DEF_WBITS = "MAX_WBITS"
  26. const m_DELAYTIMER_MAX = 0x7fffffff
  27. const m_DYN_TREES = 2
  28. const m_EXIT_FAILURE = 1
  29. const m_EXIT_SUCCESS = 0
  30. const m_EXPR_NEST_MAX = 32
  31. const m_FD_SETSIZE = 1024
  32. const m_FILESIZEBITS = 64
  33. const m_F_LOCK = 1
  34. const m_F_OK = 0
  35. const m_F_TEST = 3
  36. const m_F_TLOCK = 2
  37. const m_F_ULOCK = 0
  38. const m_HAVE_HIDDEN = 1
  39. const m_HOST_NAME_MAX = 255
  40. const m_INT_MAX = 0x7fffffff
  41. const m_IOV_MAX = 1024
  42. const m_LINE_MAX = 4096
  43. const m_LITTLE_ENDIAN = "__LITTLE_ENDIAN"
  44. const m_LLONG_MAX = 0x7fffffffffffffff
  45. const m_LOGIN_NAME_MAX = 256
  46. const m_LONG_BIT = 64
  47. const m_LONG_MAX = "__LONG_MAX"
  48. const m_L_INCR = 1
  49. const m_L_SET = 0
  50. const m_L_XTND = 2
  51. const m_MAX_MATCH = 258
  52. const m_MAX_MEM_LEVEL = 9
  53. const m_MAX_WBITS = 15
  54. const m_MB_LEN_MAX = 4
  55. const m_MIN_MATCH = 3
  56. const m_MQ_PRIO_MAX = 32768
  57. const m_NAME_MAX = 255
  58. const m_NDEBUG = 1
  59. const m_NGROUPS_MAX = 32
  60. const m_NL_ARGMAX = 9
  61. const m_NL_LANGMAX = 32
  62. const m_NL_MSGMAX = 32767
  63. const m_NL_NMAX = 16
  64. const m_NL_SETMAX = 255
  65. const m_NL_TEXTMAX = 2048
  66. const m_NMAX = 5552
  67. const m_NZERO = 20
  68. const m_OS_CODE = 3
  69. const m_PATH_MAX = 4096
  70. const m_PDP_ENDIAN = "__PDP_ENDIAN"
  71. const m_PIPE_BUF = 4096
  72. const m_POSIX_CLOSE_RESTART = 0
  73. const m_PRESET_DICT = 0x20
  74. const m_PTHREAD_DESTRUCTOR_ITERATIONS = 4
  75. const m_PTHREAD_KEYS_MAX = 128
  76. const m_PTHREAD_STACK_MIN = 2048
  77. const m_RAND_MAX = 0x7fffffff
  78. const m_RE_DUP_MAX = 255
  79. const m_R_OK = 4
  80. const m_SCHAR_MAX = 127
  81. const m_SEEK_CUR = 1
  82. const m_SEEK_DATA = 3
  83. const m_SEEK_END = 2
  84. const m_SEEK_HOLE = 4
  85. const m_SEEK_SET = 0
  86. const m_SEM_NSEMS_MAX = 256
  87. const m_SEM_VALUE_MAX = 0x7fffffff
  88. const m_SHRT_MAX = 0x7fff
  89. const m_SSIZE_MAX = "LONG_MAX"
  90. const m_STATIC_TREES = 1
  91. const m_STDERR_FILENO = 2
  92. const m_STDIN_FILENO = 0
  93. const m_STDOUT_FILENO = 1
  94. const m_STORED_BLOCK = 0
  95. const m_SYMLOOP_MAX = 40
  96. const m_TTY_NAME_MAX = 32
  97. const m_TZNAME_MAX = 6
  98. const m_UCHAR_MAX = 255
  99. const m_UINT_MAX = 0xffffffff
  100. const m_USHRT_MAX = 0xffff
  101. const m_WNOHANG = 1
  102. const m_WORD_BIT = 32
  103. const m_WUNTRACED = 2
  104. const m_W_OK = 2
  105. const m_X_OK = 1
  106. const m_ZEXTERN = "extern"
  107. const m_ZLIB_VERNUM = 0x1310
  108. const m_ZLIB_VERSION = "1.3.1"
  109. const m_ZLIB_VER_MAJOR = 1
  110. const m_ZLIB_VER_MINOR = 3
  111. const m_ZLIB_VER_REVISION = 1
  112. const m_ZLIB_VER_SUBREVISION = 0
  113. const m_Z_ASCII = "Z_TEXT"
  114. const m_Z_BEST_COMPRESSION = 9
  115. const m_Z_BEST_SPEED = 1
  116. const m_Z_BINARY = 0
  117. const m_Z_BLOCK = 5
  118. const m_Z_DEFAULT_STRATEGY = 0
  119. const m_Z_DEFLATED = 8
  120. const m_Z_FILTERED = 1
  121. const m_Z_FINISH = 4
  122. const m_Z_FIXED = 4
  123. const m_Z_FULL_FLUSH = 3
  124. const m_Z_HUFFMAN_ONLY = 2
  125. const m_Z_NEED_DICT = 2
  126. const m_Z_NO_COMPRESSION = 0
  127. const m_Z_NO_FLUSH = 0
  128. const m_Z_NULL = 0
  129. const m_Z_OK = 0
  130. const m_Z_PARTIAL_FLUSH = 1
  131. const m_Z_RLE = 3
  132. const m_Z_STREAM_END = 1
  133. const m_Z_SYNC_FLUSH = 2
  134. const m_Z_TEXT = 1
  135. const m_Z_TREES = 6
  136. const m_Z_U4 = "unsigned"
  137. const m_Z_UNKNOWN = 2
  138. const m__ARCH_PPC = 1
  139. const m__ARCH_PPC64 = 1
  140. const m__ARCH_PPCGR = 1
  141. const m__ARCH_PPCSQ = 1
  142. const m__ARCH_PWR4 = 1
  143. const m__ARCH_PWR5 = 1
  144. const m__ARCH_PWR5X = 1
  145. const m__ARCH_PWR6 = 1
  146. const m__ARCH_PWR7 = 1
  147. const m__ARCH_PWR8 = 1
  148. const m__CALL_ELF = 2
  149. const m__CALL_LINUX = 1
  150. const m__CS_GNU_LIBC_VERSION = 2
  151. const m__CS_GNU_LIBPTHREAD_VERSION = 3
  152. const m__CS_PATH = 0
  153. const m__CS_POSIX_V5_WIDTH_RESTRICTED_ENVS = 4
  154. const m__CS_POSIX_V6_ILP32_OFF32_CFLAGS = 1116
  155. const m__CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 1117
  156. const m__CS_POSIX_V6_ILP32_OFF32_LIBS = 1118
  157. const m__CS_POSIX_V6_ILP32_OFF32_LINTFLAGS = 1119
  158. const m__CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 1120
  159. const m__CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 1121
  160. const m__CS_POSIX_V6_ILP32_OFFBIG_LIBS = 1122
  161. const m__CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS = 1123
  162. const m__CS_POSIX_V6_LP64_OFF64_CFLAGS = 1124
  163. const m__CS_POSIX_V6_LP64_OFF64_LDFLAGS = 1125
  164. const m__CS_POSIX_V6_LP64_OFF64_LIBS = 1126
  165. const m__CS_POSIX_V6_LP64_OFF64_LINTFLAGS = 1127
  166. const m__CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 1128
  167. const m__CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 1129
  168. const m__CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 1130
  169. const m__CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS = 1131
  170. const m__CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 1
  171. const m__CS_POSIX_V7_ILP32_OFF32_CFLAGS = 1132
  172. const m__CS_POSIX_V7_ILP32_OFF32_LDFLAGS = 1133
  173. const m__CS_POSIX_V7_ILP32_OFF32_LIBS = 1134
  174. const m__CS_POSIX_V7_ILP32_OFF32_LINTFLAGS = 1135
  175. const m__CS_POSIX_V7_ILP32_OFFBIG_CFLAGS = 1136
  176. const m__CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS = 1137
  177. const m__CS_POSIX_V7_ILP32_OFFBIG_LIBS = 1138
  178. const m__CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS = 1139
  179. const m__CS_POSIX_V7_LP64_OFF64_CFLAGS = 1140
  180. const m__CS_POSIX_V7_LP64_OFF64_LDFLAGS = 1141
  181. const m__CS_POSIX_V7_LP64_OFF64_LIBS = 1142
  182. const m__CS_POSIX_V7_LP64_OFF64_LINTFLAGS = 1143
  183. const m__CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS = 1144
  184. const m__CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS = 1145
  185. const m__CS_POSIX_V7_LPBIG_OFFBIG_LIBS = 1146
  186. const m__CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS = 1147
  187. const m__CS_POSIX_V7_THREADS_CFLAGS = 1150
  188. const m__CS_POSIX_V7_THREADS_LDFLAGS = 1151
  189. const m__CS_POSIX_V7_WIDTH_RESTRICTED_ENVS = 5
  190. const m__CS_V6_ENV = 1148
  191. const m__CS_V7_ENV = 1149
  192. const m__GNU_SOURCE = 1
  193. const m__LARGEFILE64_SOURCE = 1
  194. const m__LITTLE_ENDIAN = 1
  195. const m__LP64 = 1
  196. const m__PC_2_SYMLINKS = 20
  197. const m__PC_ALLOC_SIZE_MIN = 18
  198. const m__PC_ASYNC_IO = 10
  199. const m__PC_CHOWN_RESTRICTED = 6
  200. const m__PC_FILESIZEBITS = 13
  201. const m__PC_LINK_MAX = 0
  202. const m__PC_MAX_CANON = 1
  203. const m__PC_MAX_INPUT = 2
  204. const m__PC_NAME_MAX = 3
  205. const m__PC_NO_TRUNC = 7
  206. const m__PC_PATH_MAX = 4
  207. const m__PC_PIPE_BUF = 5
  208. const m__PC_PRIO_IO = 11
  209. const m__PC_REC_INCR_XFER_SIZE = 14
  210. const m__PC_REC_MAX_XFER_SIZE = 15
  211. const m__PC_REC_MIN_XFER_SIZE = 16
  212. const m__PC_REC_XFER_ALIGN = 17
  213. const m__PC_SOCK_MAXBUF = 12
  214. const m__PC_SYMLINK_MAX = 19
  215. const m__PC_SYNC_IO = 9
  216. const m__PC_VDISABLE = 8
  217. const m__POSIX2_BC_BASE_MAX = 99
  218. const m__POSIX2_BC_DIM_MAX = 2048
  219. const m__POSIX2_BC_SCALE_MAX = 99
  220. const m__POSIX2_BC_STRING_MAX = 1000
  221. const m__POSIX2_CHARCLASS_NAME_MAX = 14
  222. const m__POSIX2_COLL_WEIGHTS_MAX = 2
  223. const m__POSIX2_C_BIND = "_POSIX_VERSION"
  224. const m__POSIX2_EXPR_NEST_MAX = 32
  225. const m__POSIX2_LINE_MAX = 2048
  226. const m__POSIX2_RE_DUP_MAX = 255
  227. const m__POSIX2_VERSION = "_POSIX_VERSION"
  228. const m__POSIX_ADVISORY_INFO = "_POSIX_VERSION"
  229. const m__POSIX_AIO_LISTIO_MAX = 2
  230. const m__POSIX_AIO_MAX = 1
  231. const m__POSIX_ARG_MAX = 4096
  232. const m__POSIX_ASYNCHRONOUS_IO = "_POSIX_VERSION"
  233. const m__POSIX_BARRIERS = "_POSIX_VERSION"
  234. const m__POSIX_CHILD_MAX = 25
  235. const m__POSIX_CHOWN_RESTRICTED = 1
  236. const m__POSIX_CLOCKRES_MIN = 20000000
  237. const m__POSIX_CLOCK_SELECTION = "_POSIX_VERSION"
  238. const m__POSIX_CPUTIME = "_POSIX_VERSION"
  239. const m__POSIX_DELAYTIMER_MAX = 32
  240. const m__POSIX_FSYNC = "_POSIX_VERSION"
  241. const m__POSIX_HOST_NAME_MAX = 255
  242. const m__POSIX_IPV6 = "_POSIX_VERSION"
  243. const m__POSIX_JOB_CONTROL = 1
  244. const m__POSIX_LINK_MAX = 8
  245. const m__POSIX_LOGIN_NAME_MAX = 9
  246. const m__POSIX_MAPPED_FILES = "_POSIX_VERSION"
  247. const m__POSIX_MAX_CANON = 255
  248. const m__POSIX_MAX_INPUT = 255
  249. const m__POSIX_MEMLOCK = "_POSIX_VERSION"
  250. const m__POSIX_MEMLOCK_RANGE = "_POSIX_VERSION"
  251. const m__POSIX_MEMORY_PROTECTION = "_POSIX_VERSION"
  252. const m__POSIX_MESSAGE_PASSING = "_POSIX_VERSION"
  253. const m__POSIX_MONOTONIC_CLOCK = "_POSIX_VERSION"
  254. const m__POSIX_MQ_OPEN_MAX = 8
  255. const m__POSIX_MQ_PRIO_MAX = 32
  256. const m__POSIX_NAME_MAX = 14
  257. const m__POSIX_NGROUPS_MAX = 8
  258. const m__POSIX_NO_TRUNC = 1
  259. const m__POSIX_OPEN_MAX = 20
  260. const m__POSIX_PATH_MAX = 256
  261. const m__POSIX_PIPE_BUF = 512
  262. const m__POSIX_RAW_SOCKETS = "_POSIX_VERSION"
  263. const m__POSIX_READER_WRITER_LOCKS = "_POSIX_VERSION"
  264. const m__POSIX_REALTIME_SIGNALS = "_POSIX_VERSION"
  265. const m__POSIX_REGEXP = 1
  266. const m__POSIX_RE_DUP_MAX = 255
  267. const m__POSIX_RTSIG_MAX = 8
  268. const m__POSIX_SAVED_IDS = 1
  269. const m__POSIX_SEMAPHORES = "_POSIX_VERSION"
  270. const m__POSIX_SEM_NSEMS_MAX = 256
  271. const m__POSIX_SEM_VALUE_MAX = 32767
  272. const m__POSIX_SHARED_MEMORY_OBJECTS = "_POSIX_VERSION"
  273. const m__POSIX_SHELL = 1
  274. const m__POSIX_SIGQUEUE_MAX = 32
  275. const m__POSIX_SPAWN = "_POSIX_VERSION"
  276. const m__POSIX_SPIN_LOCKS = "_POSIX_VERSION"
  277. const m__POSIX_SSIZE_MAX = 32767
  278. const m__POSIX_SS_REPL_MAX = 4
  279. const m__POSIX_STREAM_MAX = 8
  280. const m__POSIX_SYMLINK_MAX = 255
  281. const m__POSIX_SYMLOOP_MAX = 8
  282. const m__POSIX_THREADS = "_POSIX_VERSION"
  283. const m__POSIX_THREAD_ATTR_STACKADDR = "_POSIX_VERSION"
  284. const m__POSIX_THREAD_ATTR_STACKSIZE = "_POSIX_VERSION"
  285. const m__POSIX_THREAD_CPUTIME = "_POSIX_VERSION"
  286. const m__POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4
  287. const m__POSIX_THREAD_KEYS_MAX = 128
  288. const m__POSIX_THREAD_PRIORITY_SCHEDULING = "_POSIX_VERSION"
  289. const m__POSIX_THREAD_PROCESS_SHARED = "_POSIX_VERSION"
  290. const m__POSIX_THREAD_SAFE_FUNCTIONS = "_POSIX_VERSION"
  291. const m__POSIX_THREAD_THREADS_MAX = 64
  292. const m__POSIX_TIMEOUTS = "_POSIX_VERSION"
  293. const m__POSIX_TIMERS = "_POSIX_VERSION"
  294. const m__POSIX_TIMER_MAX = 32
  295. const m__POSIX_TRACE_EVENT_NAME_MAX = 30
  296. const m__POSIX_TRACE_NAME_MAX = 8
  297. const m__POSIX_TRACE_SYS_MAX = 8
  298. const m__POSIX_TRACE_USER_EVENT_MAX = 32
  299. const m__POSIX_TTY_NAME_MAX = 9
  300. const m__POSIX_TZNAME_MAX = 6
  301. const m__POSIX_V6_LP64_OFF64 = 1
  302. const m__POSIX_V7_LP64_OFF64 = 1
  303. const m__POSIX_VDISABLE = 0
  304. const m__POSIX_VERSION = 200809
  305. const m__SC_2_CHAR_TERM = 95
  306. const m__SC_2_C_BIND = 47
  307. const m__SC_2_C_DEV = 48
  308. const m__SC_2_FORT_DEV = 49
  309. const m__SC_2_FORT_RUN = 50
  310. const m__SC_2_LOCALEDEF = 52
  311. const m__SC_2_PBS = 168
  312. const m__SC_2_PBS_ACCOUNTING = 169
  313. const m__SC_2_PBS_CHECKPOINT = 175
  314. const m__SC_2_PBS_LOCATE = 170
  315. const m__SC_2_PBS_MESSAGE = 171
  316. const m__SC_2_PBS_TRACK = 172
  317. const m__SC_2_SW_DEV = 51
  318. const m__SC_2_UPE = 97
  319. const m__SC_2_VERSION = 46
  320. const m__SC_ADVISORY_INFO = 132
  321. const m__SC_AIO_LISTIO_MAX = 23
  322. const m__SC_AIO_MAX = 24
  323. const m__SC_AIO_PRIO_DELTA_MAX = 25
  324. const m__SC_ARG_MAX = 0
  325. const m__SC_ASYNCHRONOUS_IO = 12
  326. const m__SC_ATEXIT_MAX = 87
  327. const m__SC_AVPHYS_PAGES = 86
  328. const m__SC_BARRIERS = 133
  329. const m__SC_BC_BASE_MAX = 36
  330. const m__SC_BC_DIM_MAX = 37
  331. const m__SC_BC_SCALE_MAX = 38
  332. const m__SC_BC_STRING_MAX = 39
  333. const m__SC_CHILD_MAX = 1
  334. const m__SC_CLK_TCK = 2
  335. const m__SC_CLOCK_SELECTION = 137
  336. const m__SC_COLL_WEIGHTS_MAX = 40
  337. const m__SC_CPUTIME = 138
  338. const m__SC_DELAYTIMER_MAX = 26
  339. const m__SC_EXPR_NEST_MAX = 42
  340. const m__SC_FSYNC = 15
  341. const m__SC_GETGR_R_SIZE_MAX = 69
  342. const m__SC_GETPW_R_SIZE_MAX = 70
  343. const m__SC_HOST_NAME_MAX = 180
  344. const m__SC_IOV_MAX = 60
  345. const m__SC_IPV6 = 235
  346. const m__SC_JOB_CONTROL = 7
  347. const m__SC_LINE_MAX = 43
  348. const m__SC_LOGIN_NAME_MAX = 71
  349. const m__SC_MAPPED_FILES = 16
  350. const m__SC_MEMLOCK = 17
  351. const m__SC_MEMLOCK_RANGE = 18
  352. const m__SC_MEMORY_PROTECTION = 19
  353. const m__SC_MESSAGE_PASSING = 20
  354. const m__SC_MINSIGSTKSZ = 249
  355. const m__SC_MONOTONIC_CLOCK = 149
  356. const m__SC_MQ_OPEN_MAX = 27
  357. const m__SC_MQ_PRIO_MAX = 28
  358. const m__SC_NGROUPS_MAX = 3
  359. const m__SC_NPROCESSORS_CONF = 83
  360. const m__SC_NPROCESSORS_ONLN = 84
  361. const m__SC_NZERO = 109
  362. const m__SC_OPEN_MAX = 4
  363. const m__SC_PAGESIZE = 30
  364. const m__SC_PAGE_SIZE = 30
  365. const m__SC_PASS_MAX = 88
  366. const m__SC_PHYS_PAGES = 85
  367. const m__SC_PRIORITIZED_IO = 13
  368. const m__SC_PRIORITY_SCHEDULING = 10
  369. const m__SC_RAW_SOCKETS = 236
  370. const m__SC_READER_WRITER_LOCKS = 153
  371. const m__SC_REALTIME_SIGNALS = 9
  372. const m__SC_REGEXP = 155
  373. const m__SC_RE_DUP_MAX = 44
  374. const m__SC_RTSIG_MAX = 31
  375. const m__SC_SAVED_IDS = 8
  376. const m__SC_SEMAPHORES = 21
  377. const m__SC_SEM_NSEMS_MAX = 32
  378. const m__SC_SEM_VALUE_MAX = 33
  379. const m__SC_SHARED_MEMORY_OBJECTS = 22
  380. const m__SC_SHELL = 157
  381. const m__SC_SIGQUEUE_MAX = 34
  382. const m__SC_SIGSTKSZ = 250
  383. const m__SC_SPAWN = 159
  384. const m__SC_SPIN_LOCKS = 154
  385. const m__SC_SPORADIC_SERVER = 160
  386. const m__SC_SS_REPL_MAX = 241
  387. const m__SC_STREAMS = 174
  388. const m__SC_STREAM_MAX = 5
  389. const m__SC_SYMLOOP_MAX = 173
  390. const m__SC_SYNCHRONIZED_IO = 14
  391. const m__SC_THREADS = 67
  392. const m__SC_THREAD_ATTR_STACKADDR = 77
  393. const m__SC_THREAD_ATTR_STACKSIZE = 78
  394. const m__SC_THREAD_CPUTIME = 139
  395. const m__SC_THREAD_DESTRUCTOR_ITERATIONS = 73
  396. const m__SC_THREAD_KEYS_MAX = 74
  397. const m__SC_THREAD_PRIORITY_SCHEDULING = 79
  398. const m__SC_THREAD_PRIO_INHERIT = 80
  399. const m__SC_THREAD_PRIO_PROTECT = 81
  400. const m__SC_THREAD_PROCESS_SHARED = 82
  401. const m__SC_THREAD_ROBUST_PRIO_INHERIT = 247
  402. const m__SC_THREAD_ROBUST_PRIO_PROTECT = 248
  403. const m__SC_THREAD_SAFE_FUNCTIONS = 68
  404. const m__SC_THREAD_SPORADIC_SERVER = 161
  405. const m__SC_THREAD_STACK_MIN = 75
  406. const m__SC_THREAD_THREADS_MAX = 76
  407. const m__SC_TIMEOUTS = 164
  408. const m__SC_TIMERS = 11
  409. const m__SC_TIMER_MAX = 35
  410. const m__SC_TRACE = 181
  411. const m__SC_TRACE_EVENT_FILTER = 182
  412. const m__SC_TRACE_EVENT_NAME_MAX = 242
  413. const m__SC_TRACE_INHERIT = 183
  414. const m__SC_TRACE_LOG = 184
  415. const m__SC_TRACE_NAME_MAX = 243
  416. const m__SC_TRACE_SYS_MAX = 244
  417. const m__SC_TRACE_USER_EVENT_MAX = 245
  418. const m__SC_TTY_NAME_MAX = 72
  419. const m__SC_TYPED_MEMORY_OBJECTS = 165
  420. const m__SC_TZNAME_MAX = 6
  421. const m__SC_UIO_MAXIOV = 60
  422. const m__SC_V6_ILP32_OFF32 = 176
  423. const m__SC_V6_ILP32_OFFBIG = 177
  424. const m__SC_V6_LP64_OFF64 = 178
  425. const m__SC_V6_LPBIG_OFFBIG = 179
  426. const m__SC_V7_ILP32_OFF32 = 237
  427. const m__SC_V7_ILP32_OFFBIG = 238
  428. const m__SC_V7_LP64_OFF64 = 239
  429. const m__SC_V7_LPBIG_OFFBIG = 240
  430. const m__SC_VERSION = 29
  431. const m__SC_XBS5_ILP32_OFF32 = 125
  432. const m__SC_XBS5_ILP32_OFFBIG = 126
  433. const m__SC_XBS5_LP64_OFF64 = 127
  434. const m__SC_XBS5_LPBIG_OFFBIG = 128
  435. const m__SC_XOPEN_CRYPT = 92
  436. const m__SC_XOPEN_ENH_I18N = 93
  437. const m__SC_XOPEN_LEGACY = 129
  438. const m__SC_XOPEN_REALTIME = 130
  439. const m__SC_XOPEN_REALTIME_THREADS = 131
  440. const m__SC_XOPEN_SHM = 94
  441. const m__SC_XOPEN_STREAMS = 246
  442. const m__SC_XOPEN_UNIX = 91
  443. const m__SC_XOPEN_VERSION = 89
  444. const m__SC_XOPEN_XCU_VERSION = 90
  445. const m__SC_XOPEN_XPG2 = 98
  446. const m__SC_XOPEN_XPG3 = 99
  447. const m__SC_XOPEN_XPG4 = 100
  448. const m__STDC_PREDEF_H = 1
  449. const m__XOPEN_ENH_I18N = 1
  450. const m__XOPEN_IOV_MAX = 16
  451. const m__XOPEN_NAME_MAX = 255
  452. const m__XOPEN_PATH_MAX = 1024
  453. const m__XOPEN_UNIX = 1
  454. const m__XOPEN_VERSION = 700
  455. const m___ALTIVEC__ = 1
  456. const m___APPLE_ALTIVEC__ = 1
  457. const m___ATOMIC_ACQUIRE = 2
  458. const m___ATOMIC_ACQ_REL = 4
  459. const m___ATOMIC_CONSUME = 1
  460. const m___ATOMIC_RELAXED = 0
  461. const m___ATOMIC_RELEASE = 3
  462. const m___ATOMIC_SEQ_CST = 5
  463. const m___BIGGEST_ALIGNMENT__ = 16
  464. const m___BIG_ENDIAN = 4321
  465. const m___BUILTIN_CPU_SUPPORTS__ = 1
  466. const m___BYTE_ORDER = 1234
  467. const m___BYTE_ORDER__ = "__ORDER_LITTLE_ENDIAN__"
  468. const m___CCGO__ = 1
  469. const m___CHAR_BIT__ = 8
  470. const m___CHAR_UNSIGNED__ = 1
  471. const m___CMODEL_MEDIUM__ = 1
  472. const m___CRYPTO__ = 1
  473. const m___DBL_DECIMAL_DIG__ = 17
  474. const m___DBL_DIG__ = 15
  475. const m___DBL_HAS_DENORM__ = 1
  476. const m___DBL_HAS_INFINITY__ = 1
  477. const m___DBL_HAS_QUIET_NAN__ = 1
  478. const m___DBL_MANT_DIG__ = 53
  479. const m___DBL_MAX_10_EXP__ = 308
  480. const m___DBL_MAX_EXP__ = 1024
  481. const m___DEC128_EPSILON__ = 1e-33
  482. const m___DEC128_MANT_DIG__ = 34
  483. const m___DEC128_MAX_EXP__ = 6145
  484. const m___DEC128_MAX__ = "9.999999999999999999999999999999999E6144"
  485. const m___DEC128_MIN__ = 1e-6143
  486. const m___DEC128_SUBNORMAL_MIN__ = 0.000000000000000000000000000000001e-6143
  487. const m___DEC32_EPSILON__ = 1e-6
  488. const m___DEC32_MANT_DIG__ = 7
  489. const m___DEC32_MAX_EXP__ = 97
  490. const m___DEC32_MAX__ = 9.999999e96
  491. const m___DEC32_MIN__ = 1e-95
  492. const m___DEC32_SUBNORMAL_MIN__ = 0.000001e-95
  493. const m___DEC64_EPSILON__ = 1e-15
  494. const m___DEC64_MANT_DIG__ = 16
  495. const m___DEC64_MAX_EXP__ = 385
  496. const m___DEC64_MAX__ = "9.999999999999999E384"
  497. const m___DEC64_MIN__ = 1e-383
  498. const m___DEC64_SUBNORMAL_MIN__ = 0.000000000000001e-383
  499. const m___DECIMAL_DIG__ = 17
  500. const m___DEC_EVAL_METHOD__ = 2
  501. const m___ELF__ = 1
  502. const m___FINITE_MATH_ONLY__ = 0
  503. const m___FLOAT128_TYPE__ = 1
  504. const m___FLOAT128__ = 1
  505. const m___FLOAT_WORD_ORDER__ = "__ORDER_LITTLE_ENDIAN__"
  506. const m___FLT128_DECIMAL_DIG__ = 36
  507. const m___FLT128_DENORM_MIN__ = 6.47517511943802511092443895822764655e-4966
  508. const m___FLT128_DIG__ = 33
  509. const m___FLT128_EPSILON__ = 1.92592994438723585305597794258492732e-34
  510. const m___FLT128_HAS_DENORM__ = 1
  511. const m___FLT128_HAS_INFINITY__ = 1
  512. const m___FLT128_HAS_QUIET_NAN__ = 1
  513. const m___FLT128_MANT_DIG__ = 113
  514. const m___FLT128_MAX_10_EXP__ = 4932
  515. const m___FLT128_MAX_EXP__ = 16384
  516. const m___FLT128_MAX__ = "1.18973149535723176508575932662800702e+4932"
  517. const m___FLT128_MIN__ = 3.36210314311209350626267781732175260e-4932
  518. const m___FLT128_NORM_MAX__ = "1.18973149535723176508575932662800702e+4932"
  519. const m___FLT32X_DECIMAL_DIG__ = 17
  520. const m___FLT32X_DENORM_MIN__ = 4.94065645841246544176568792868221372e-324
  521. const m___FLT32X_DIG__ = 15
  522. const m___FLT32X_EPSILON__ = 2.22044604925031308084726333618164062e-16
  523. const m___FLT32X_HAS_DENORM__ = 1
  524. const m___FLT32X_HAS_INFINITY__ = 1
  525. const m___FLT32X_HAS_QUIET_NAN__ = 1
  526. const m___FLT32X_MANT_DIG__ = 53
  527. const m___FLT32X_MAX_10_EXP__ = 308
  528. const m___FLT32X_MAX_EXP__ = 1024
  529. const m___FLT32X_MAX__ = 1.79769313486231570814527423731704357e+308
  530. const m___FLT32X_MIN__ = 2.22507385850720138309023271733240406e-308
  531. const m___FLT32X_NORM_MAX__ = 1.79769313486231570814527423731704357e+308
  532. const m___FLT32_DECIMAL_DIG__ = 9
  533. const m___FLT32_DENORM_MIN__ = 1.40129846432481707092372958328991613e-45
  534. const m___FLT32_DIG__ = 6
  535. const m___FLT32_EPSILON__ = 1.19209289550781250000000000000000000e-7
  536. const m___FLT32_HAS_DENORM__ = 1
  537. const m___FLT32_HAS_INFINITY__ = 1
  538. const m___FLT32_HAS_QUIET_NAN__ = 1
  539. const m___FLT32_MANT_DIG__ = 24
  540. const m___FLT32_MAX_10_EXP__ = 38
  541. const m___FLT32_MAX_EXP__ = 128
  542. const m___FLT32_MAX__ = 3.40282346638528859811704183484516925e+38
  543. const m___FLT32_MIN__ = 1.17549435082228750796873653722224568e-38
  544. const m___FLT32_NORM_MAX__ = 3.40282346638528859811704183484516925e+38
  545. const m___FLT64X_DECIMAL_DIG__ = 36
  546. const m___FLT64X_DENORM_MIN__ = 6.47517511943802511092443895822764655e-4966
  547. const m___FLT64X_DIG__ = 33
  548. const m___FLT64X_EPSILON__ = 1.92592994438723585305597794258492732e-34
  549. const m___FLT64X_HAS_DENORM__ = 1
  550. const m___FLT64X_HAS_INFINITY__ = 1
  551. const m___FLT64X_HAS_QUIET_NAN__ = 1
  552. const m___FLT64X_MANT_DIG__ = 113
  553. const m___FLT64X_MAX_10_EXP__ = 4932
  554. const m___FLT64X_MAX_EXP__ = 16384
  555. const m___FLT64X_MAX__ = "1.18973149535723176508575932662800702e+4932"
  556. const m___FLT64X_MIN__ = 3.36210314311209350626267781732175260e-4932
  557. const m___FLT64X_NORM_MAX__ = "1.18973149535723176508575932662800702e+4932"
  558. const m___FLT64_DECIMAL_DIG__ = 17
  559. const m___FLT64_DENORM_MIN__ = 4.94065645841246544176568792868221372e-324
  560. const m___FLT64_DIG__ = 15
  561. const m___FLT64_EPSILON__ = 2.22044604925031308084726333618164062e-16
  562. const m___FLT64_HAS_DENORM__ = 1
  563. const m___FLT64_HAS_INFINITY__ = 1
  564. const m___FLT64_HAS_QUIET_NAN__ = 1
  565. const m___FLT64_MANT_DIG__ = 53
  566. const m___FLT64_MAX_10_EXP__ = 308
  567. const m___FLT64_MAX_EXP__ = 1024
  568. const m___FLT64_MAX__ = 1.79769313486231570814527423731704357e+308
  569. const m___FLT64_MIN__ = 2.22507385850720138309023271733240406e-308
  570. const m___FLT64_NORM_MAX__ = 1.79769313486231570814527423731704357e+308
  571. const m___FLT_DECIMAL_DIG__ = 9
  572. const m___FLT_DENORM_MIN__ = 1.40129846432481707092372958328991613e-45
  573. const m___FLT_DIG__ = 6
  574. const m___FLT_EPSILON__ = 1.19209289550781250000000000000000000e-7
  575. const m___FLT_EVAL_METHOD_TS_18661_3__ = 0
  576. const m___FLT_EVAL_METHOD__ = 0
  577. const m___FLT_HAS_DENORM__ = 1
  578. const m___FLT_HAS_INFINITY__ = 1
  579. const m___FLT_HAS_QUIET_NAN__ = 1
  580. const m___FLT_MANT_DIG__ = 24
  581. const m___FLT_MAX_10_EXP__ = 38
  582. const m___FLT_MAX_EXP__ = 128
  583. const m___FLT_MAX__ = 3.40282346638528859811704183484516925e+38
  584. const m___FLT_MIN__ = 1.17549435082228750796873653722224568e-38
  585. const m___FLT_NORM_MAX__ = 3.40282346638528859811704183484516925e+38
  586. const m___FLT_RADIX__ = 2
  587. const m___FP_FAST_FMA = 1
  588. const m___FP_FAST_FMAF = 1
  589. const m___FP_FAST_FMAF32 = 1
  590. const m___FP_FAST_FMAF32x = 1
  591. const m___FP_FAST_FMAF64 = 1
  592. const m___FP_FAST_FMAL = 1
  593. const m___FUNCTION__ = "__func__"
  594. const m___GCC_ATOMIC_BOOL_LOCK_FREE = 2
  595. const m___GCC_ATOMIC_CHAR16_T_LOCK_FREE = 2
  596. const m___GCC_ATOMIC_CHAR32_T_LOCK_FREE = 2
  597. const m___GCC_ATOMIC_CHAR_LOCK_FREE = 2
  598. const m___GCC_ATOMIC_INT_LOCK_FREE = 2
  599. const m___GCC_ATOMIC_LLONG_LOCK_FREE = 2
  600. const m___GCC_ATOMIC_LONG_LOCK_FREE = 2
  601. const m___GCC_ATOMIC_POINTER_LOCK_FREE = 2
  602. const m___GCC_ATOMIC_SHORT_LOCK_FREE = 2
  603. const m___GCC_ATOMIC_TEST_AND_SET_TRUEVAL = 1
  604. const m___GCC_ATOMIC_WCHAR_T_LOCK_FREE = 2
  605. const m___GCC_HAVE_DWARF2_CFI_ASM = 1
  606. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 = 1
  607. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 = 1
  608. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 = 1
  609. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 = 1
  610. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 = 1
  611. const m___GCC_IEC_559 = 2
  612. const m___GCC_IEC_559_COMPLEX = 2
  613. const m___GNUC_MINOR__ = 2
  614. const m___GNUC_PATCHLEVEL__ = 1
  615. const m___GNUC_STDC_INLINE__ = 1
  616. const m___GNUC__ = 10
  617. const m___GXX_ABI_VERSION = 1014
  618. const m___HAVE_BSWAP__ = 1
  619. const m___HAVE_SPECULATION_SAFE_VALUE = 1
  620. const m___HTM__ = 1
  621. const m___INT16_MAX__ = 0x7fff
  622. const m___INT32_MAX__ = 0x7fffffff
  623. const m___INT32_TYPE__ = "int"
  624. const m___INT64_MAX__ = 0x7fffffffffffffff
  625. const m___INT8_MAX__ = 0x7f
  626. const m___INTMAX_MAX__ = 0x7fffffffffffffff
  627. const m___INTMAX_WIDTH__ = 64
  628. const m___INTPTR_MAX__ = 0x7fffffffffffffff
  629. const m___INTPTR_WIDTH__ = 64
  630. const m___INT_FAST16_MAX__ = 0x7fffffffffffffff
  631. const m___INT_FAST16_WIDTH__ = 64
  632. const m___INT_FAST32_MAX__ = 0x7fffffffffffffff
  633. const m___INT_FAST32_WIDTH__ = 64
  634. const m___INT_FAST64_MAX__ = 0x7fffffffffffffff
  635. const m___INT_FAST64_WIDTH__ = 64
  636. const m___INT_FAST8_MAX__ = 0x7f
  637. const m___INT_FAST8_WIDTH__ = 8
  638. const m___INT_LEAST16_MAX__ = 0x7fff
  639. const m___INT_LEAST16_WIDTH__ = 16
  640. const m___INT_LEAST32_MAX__ = 0x7fffffff
  641. const m___INT_LEAST32_TYPE__ = "int"
  642. const m___INT_LEAST32_WIDTH__ = 32
  643. const m___INT_LEAST64_MAX__ = 0x7fffffffffffffff
  644. const m___INT_LEAST64_WIDTH__ = 64
  645. const m___INT_LEAST8_MAX__ = 0x7f
  646. const m___INT_LEAST8_WIDTH__ = 8
  647. const m___INT_MAX__ = 0x7fffffff
  648. const m___INT_WIDTH__ = 32
  649. const m___LDBL_DECIMAL_DIG__ = 17
  650. const m___LDBL_DENORM_MIN__ = 4.94065645841246544176568792868221372e-324
  651. const m___LDBL_DIG__ = 15
  652. const m___LDBL_EPSILON__ = 2.22044604925031308084726333618164062e-16
  653. const m___LDBL_HAS_DENORM__ = 1
  654. const m___LDBL_HAS_INFINITY__ = 1
  655. const m___LDBL_HAS_QUIET_NAN__ = 1
  656. const m___LDBL_MANT_DIG__ = 53
  657. const m___LDBL_MAX_10_EXP__ = 308
  658. const m___LDBL_MAX_EXP__ = 1024
  659. const m___LDBL_MAX__ = 1.79769313486231570814527423731704357e+308
  660. const m___LDBL_MIN__ = 2.22507385850720138309023271733240406e-308
  661. const m___LDBL_NORM_MAX__ = 1.79769313486231570814527423731704357e+308
  662. const m___LITTLE_ENDIAN = 1234
  663. const m___LITTLE_ENDIAN__ = 1
  664. const m___LONG_LONG_MAX__ = 0x7fffffffffffffff
  665. const m___LONG_LONG_WIDTH__ = 64
  666. const m___LONG_MAX = 0x7fffffffffffffff
  667. const m___LONG_MAX__ = 0x7fffffffffffffff
  668. const m___LONG_WIDTH__ = 64
  669. const m___LP64__ = 1
  670. const m___NO_INLINE__ = 1
  671. const m___ORDER_BIG_ENDIAN__ = 4321
  672. const m___ORDER_LITTLE_ENDIAN__ = 1234
  673. const m___ORDER_PDP_ENDIAN__ = 3412
  674. const m___PDP_ENDIAN = 3412
  675. const m___PIC__ = 2
  676. const m___PIE__ = 2
  677. const m___POWER8_VECTOR__ = 1
  678. const m___PPC64__ = 1
  679. const m___PPC__ = 1
  680. const m___PRAGMA_REDEFINE_EXTNAME = 1
  681. const m___PRETTY_FUNCTION__ = "__func__"
  682. const m___PTRDIFF_MAX__ = 0x7fffffffffffffff
  683. const m___PTRDIFF_WIDTH__ = 64
  684. const m___QUAD_MEMORY_ATOMIC__ = 1
  685. const m___RECIPF__ = 1
  686. const m___RECIP_PRECISION__ = 1
  687. const m___RECIP__ = 1
  688. const m___RSQRTEF__ = 1
  689. const m___RSQRTE__ = 1
  690. const m___SCHAR_MAX__ = 0x7f
  691. const m___SCHAR_WIDTH__ = 8
  692. const m___SHRT_MAX__ = 0x7fff
  693. const m___SHRT_WIDTH__ = 16
  694. const m___SIG_ATOMIC_MAX__ = 0x7fffffff
  695. const m___SIG_ATOMIC_TYPE__ = "int"
  696. const m___SIG_ATOMIC_WIDTH__ = 32
  697. const m___SIZEOF_DOUBLE__ = 8
  698. const m___SIZEOF_FLOAT__ = 4
  699. const m___SIZEOF_INT128__ = 16
  700. const m___SIZEOF_INT__ = 4
  701. const m___SIZEOF_LONG_DOUBLE__ = 8
  702. const m___SIZEOF_LONG_LONG__ = 8
  703. const m___SIZEOF_LONG__ = 8
  704. const m___SIZEOF_POINTER__ = 8
  705. const m___SIZEOF_PTRDIFF_T__ = 8
  706. const m___SIZEOF_SHORT__ = 2
  707. const m___SIZEOF_SIZE_T__ = 8
  708. const m___SIZEOF_WCHAR_T__ = 4
  709. const m___SIZEOF_WINT_T__ = 4
  710. const m___SIZE_MAX__ = 0xffffffffffffffff
  711. const m___SIZE_WIDTH__ = 64
  712. const m___STDC_HOSTED__ = 1
  713. const m___STDC_IEC_559_COMPLEX__ = 1
  714. const m___STDC_IEC_559__ = 1
  715. const m___STDC_ISO_10646__ = 201706
  716. const m___STDC_UTF_16__ = 1
  717. const m___STDC_UTF_32__ = 1
  718. const m___STDC_VERSION__ = 201710
  719. const m___STDC__ = 1
  720. const m___STRUCT_PARM_ALIGN__ = 16
  721. const m___TM_FENCE__ = 1
  722. const m___UINT16_MAX__ = 0xffff
  723. const m___UINT32_MAX__ = 0xffffffff
  724. const m___UINT64_MAX__ = 0xffffffffffffffff
  725. const m___UINT8_MAX__ = 0xff
  726. const m___UINTMAX_MAX__ = 0xffffffffffffffff
  727. const m___UINTPTR_MAX__ = 0xffffffffffffffff
  728. const m___UINT_FAST16_MAX__ = 0xffffffffffffffff
  729. const m___UINT_FAST32_MAX__ = 0xffffffffffffffff
  730. const m___UINT_FAST64_MAX__ = 0xffffffffffffffff
  731. const m___UINT_FAST8_MAX__ = 0xff
  732. const m___UINT_LEAST16_MAX__ = 0xffff
  733. const m___UINT_LEAST32_MAX__ = 0xffffffff
  734. const m___UINT_LEAST64_MAX__ = 0xffffffffffffffff
  735. const m___UINT_LEAST8_MAX__ = 0xff
  736. const m___USE_TIME_BITS64 = 1
  737. const m___VEC_ELEMENT_REG_ORDER__ = "__ORDER_LITTLE_ENDIAN__"
  738. const m___VEC__ = 10206
  739. const m___VERSION__ = "10.2.1 20210110"
  740. const m___VSX__ = 1
  741. const m___WCHAR_MAX__ = 0x7fffffff
  742. const m___WCHAR_TYPE__ = "int"
  743. const m___WCHAR_WIDTH__ = 32
  744. const m___WINT_MAX__ = 0xffffffff
  745. const m___WINT_MIN__ = 0
  746. const m___WINT_WIDTH__ = 32
  747. const m___builtin_copysignq = "__builtin_copysignf128"
  748. const m___builtin_fabsq = "__builtin_fabsf128"
  749. const m___builtin_huge_valq = "__builtin_huge_valf128"
  750. const m___builtin_infq = "__builtin_inff128"
  751. const m___builtin_nanq = "__builtin_nanf128"
  752. const m___builtin_nansq = "__builtin_nansf128"
  753. const m___builtin_vsx_vperm = "__builtin_vec_perm"
  754. const m___builtin_vsx_xvmaddadp = "__builtin_vsx_xvmadddp"
  755. const m___builtin_vsx_xvmaddasp = "__builtin_vsx_xvmaddsp"
  756. const m___builtin_vsx_xvmaddmdp = "__builtin_vsx_xvmadddp"
  757. const m___builtin_vsx_xvmaddmsp = "__builtin_vsx_xvmaddsp"
  758. const m___builtin_vsx_xvmsubadp = "__builtin_vsx_xvmsubdp"
  759. const m___builtin_vsx_xvmsubasp = "__builtin_vsx_xvmsubsp"
  760. const m___builtin_vsx_xvmsubmdp = "__builtin_vsx_xvmsubdp"
  761. const m___builtin_vsx_xvmsubmsp = "__builtin_vsx_xvmsubsp"
  762. const m___builtin_vsx_xvnmaddadp = "__builtin_vsx_xvnmadddp"
  763. const m___builtin_vsx_xvnmaddasp = "__builtin_vsx_xvnmaddsp"
  764. const m___builtin_vsx_xvnmaddmdp = "__builtin_vsx_xvnmadddp"
  765. const m___builtin_vsx_xvnmaddmsp = "__builtin_vsx_xvnmaddsp"
  766. const m___builtin_vsx_xvnmsubadp = "__builtin_vsx_xvnmsubdp"
  767. const m___builtin_vsx_xvnmsubasp = "__builtin_vsx_xvnmsubsp"
  768. const m___builtin_vsx_xvnmsubmdp = "__builtin_vsx_xvnmsubdp"
  769. const m___builtin_vsx_xvnmsubmsp = "__builtin_vsx_xvnmsubsp"
  770. const m___builtin_vsx_xxland = "__builtin_vec_and"
  771. const m___builtin_vsx_xxlandc = "__builtin_vec_andc"
  772. const m___builtin_vsx_xxlnor = "__builtin_vec_nor"
  773. const m___builtin_vsx_xxlor = "__builtin_vec_or"
  774. const m___builtin_vsx_xxlxor = "__builtin_vec_xor"
  775. const m___builtin_vsx_xxsel = "__builtin_vec_sel"
  776. const m___float128 = "__ieee128"
  777. const m___gnu_linux__ = 1
  778. const m___inline = "inline"
  779. const m___linux = 1
  780. const m___linux__ = 1
  781. const m___pic__ = 2
  782. const m___pie__ = 2
  783. const m___powerpc64__ = 1
  784. const m___powerpc__ = 1
  785. const m___restrict = "restrict"
  786. const m___restrict_arr = "restrict"
  787. const m___unix = 1
  788. const m___unix__ = 1
  789. const m_alloca = "__builtin_alloca"
  790. const m_blkcnt64_t = "blkcnt_t"
  791. const m_fsblkcnt64_t = "fsblkcnt_t"
  792. const m_fsfilcnt64_t = "fsfilcnt_t"
  793. const m_ftruncate64 = "ftruncate"
  794. const m_ino64_t = "ino_t"
  795. const m_linux = 1
  796. const m_local = "static"
  797. const m_lockf64 = "lockf"
  798. const m_lseek64 = "lseek"
  799. const m_mkostemp64 = "mkostemp"
  800. const m_mkostemps64 = "mkostemps"
  801. const m_mkstemp64 = "mkstemp"
  802. const m_mkstemps64 = "mkstemps"
  803. const m_off64_t = "off_t"
  804. const m_pread64 = "pread"
  805. const m_pwrite64 = "pwrite"
  806. const m_truncate64 = "truncate"
  807. const m_unix = 1
  808. const m_z_off64_t = "z_off_t"
  809. const m_z_off_t = "off_t"
  810. const m_zmemcmp = "memcmp"
  811. const m_zmemcpy = "memcpy"
  812. type t__builtin_va_list = uintptr
  813. type t__predefined_size_t = uint64
  814. type t__predefined_wchar_t = int32
  815. type t__predefined_ptrdiff_t = int64
  816. type Twchar_t = int32
  817. type Tmax_align_t = struct {
  818. F__ll int64
  819. F__ld float64
  820. }
  821. type Tsize_t = uint64
  822. type Tptrdiff_t = int64
  823. type Tz_size_t = uint64
  824. type TByte = uint8
  825. type TuInt = uint32
  826. type TuLong = uint64
  827. type TBytef = uint8
  828. type Tcharf = uint8
  829. type Tintf = int32
  830. type TuIntf = uint32
  831. type TuLongf = uint64
  832. type Tvoidpc = uintptr
  833. type Tvoidpf = uintptr
  834. type Tvoidp = uintptr
  835. type Tz_crc_t = uint32
  836. type Tssize_t = int64
  837. type Tregister_t = int64
  838. type Ttime_t = int64
  839. type Tsuseconds_t = int64
  840. type Tint8_t = int8
  841. type Tint16_t = int16
  842. type Tint32_t = int32
  843. type Tint64_t = int64
  844. type Tu_int64_t = uint64
  845. type Tmode_t = uint32
  846. type Tnlink_t = uint64
  847. type Toff_t = int64
  848. type Tino_t = uint64
  849. type Tdev_t = uint64
  850. type Tblksize_t = int64
  851. type Tblkcnt_t = int64
  852. type Tfsblkcnt_t = uint64
  853. type Tfsfilcnt_t = uint64
  854. type Ttimer_t = uintptr
  855. type Tclockid_t = int32
  856. type Tclock_t = int64
  857. type Tpid_t = int32
  858. type Tid_t = uint32
  859. type Tuid_t = uint32
  860. type Tgid_t = uint32
  861. type Tkey_t = int32
  862. type Tuseconds_t = uint32
  863. type Tpthread_t = uintptr
  864. type Tpthread_once_t = int32
  865. type Tpthread_key_t = uint32
  866. type Tpthread_spinlock_t = int32
  867. type Tpthread_mutexattr_t = struct {
  868. F__attr uint32
  869. }
  870. type Tpthread_condattr_t = struct {
  871. F__attr uint32
  872. }
  873. type Tpthread_barrierattr_t = struct {
  874. F__attr uint32
  875. }
  876. type Tpthread_rwlockattr_t = struct {
  877. F__attr [2]uint32
  878. }
  879. type Tpthread_attr_t = struct {
  880. F__u struct {
  881. F__vi [0][14]int32
  882. F__s [0][7]uint64
  883. F__i [14]int32
  884. }
  885. }
  886. type Tpthread_mutex_t = struct {
  887. F__u struct {
  888. F__vi [0][10]int32
  889. F__p [0][5]uintptr
  890. F__i [10]int32
  891. }
  892. }
  893. type Tpthread_cond_t = struct {
  894. F__u struct {
  895. F__vi [0][12]int32
  896. F__p [0][6]uintptr
  897. F__i [12]int32
  898. }
  899. }
  900. type Tpthread_rwlock_t = struct {
  901. F__u struct {
  902. F__vi [0][14]int32
  903. F__p [0][7]uintptr
  904. F__i [14]int32
  905. }
  906. }
  907. type Tpthread_barrier_t = struct {
  908. F__u struct {
  909. F__vi [0][8]int32
  910. F__p [0][4]uintptr
  911. F__i [8]int32
  912. }
  913. }
  914. type Tu_int8_t = uint8
  915. type Tu_int16_t = uint16
  916. type Tu_int32_t = uint32
  917. type Tcaddr_t = uintptr
  918. type Tu_char = uint8
  919. type Tu_short = uint16
  920. type Tushort = uint16
  921. type Tu_int = uint32
  922. type Tuint = uint32
  923. type Tu_long = uint64
  924. type Tulong = uint64
  925. type Tquad_t = int64
  926. type Tu_quad_t = uint64
  927. type Tuint16_t = uint16
  928. type Tuint32_t = uint32
  929. type Tuint64_t = uint64
  930. type Ttimeval = struct {
  931. Ftv_sec Ttime_t
  932. Ftv_usec Tsuseconds_t
  933. }
  934. type Ttimespec = struct {
  935. Ftv_sec Ttime_t
  936. Ftv_nsec int64
  937. }
  938. type Tsigset_t = struct {
  939. F__bits [16]uint64
  940. }
  941. type t__sigset_t = Tsigset_t
  942. type Tfd_mask = uint64
  943. type Tfd_set = struct {
  944. Ffds_bits [16]uint64
  945. }
  946. type Tva_list = uintptr
  947. type Tintptr_t = int64
  948. type Talloc_func = uintptr
  949. type Tfree_func = uintptr
  950. type Tz_stream = struct {
  951. Fnext_in uintptr
  952. Favail_in TuInt
  953. Ftotal_in TuLong
  954. Fnext_out uintptr
  955. Favail_out TuInt
  956. Ftotal_out TuLong
  957. Fmsg uintptr
  958. Fstate uintptr
  959. Fzalloc Talloc_func
  960. Fzfree Tfree_func
  961. Fopaque Tvoidpf
  962. Fdata_type int32
  963. Fadler TuLong
  964. Freserved TuLong
  965. }
  966. type Tz_stream_s = Tz_stream
  967. type Tz_streamp = uintptr
  968. type Tgz_header = struct {
  969. Ftext int32
  970. Ftime TuLong
  971. Fxflags int32
  972. Fos int32
  973. Fextra uintptr
  974. Fextra_len TuInt
  975. Fextra_max TuInt
  976. Fname uintptr
  977. Fname_max TuInt
  978. Fcomment uintptr
  979. Fcomm_max TuInt
  980. Fhcrc int32
  981. Fdone int32
  982. }
  983. type Tgz_header_s = Tgz_header
  984. type Tgz_headerp = uintptr
  985. type Tin_func = uintptr
  986. type Tout_func = uintptr
  987. type TgzFile = uintptr
  988. type TgzFile_s = struct {
  989. Fhave uint32
  990. Fnext uintptr
  991. Fpos Toff_t
  992. }
  993. type Tlocale_t = uintptr
  994. type Tdiv_t = struct {
  995. Fquot int32
  996. Frem int32
  997. }
  998. type Tldiv_t = struct {
  999. Fquot int64
  1000. Frem int64
  1001. }
  1002. type Tlldiv_t = struct {
  1003. Fquot int64
  1004. Frem int64
  1005. }
  1006. type Tuch = uint8
  1007. type Tuchf = uint8
  1008. type Tush = uint16
  1009. type Tushf = uint16
  1010. type Tulg = uint64
  1011. /* Reverse the bytes in a 32-bit value */
  1012. /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
  1013. /* use NO_DIVIDE if your processor does not do division in hardware --
  1014. try it both ways to see which is faster */
  1015. // C documentation
  1016. //
  1017. // /* ========================================================================= */
  1018. func Xadler32_z(tls *libc.TLS, adler TuLong, buf uintptr, len1 Tz_size_t) (r TuLong) {
  1019. var n, v3 uint32
  1020. var sum2 uint64
  1021. var v1, v5 Tz_size_t
  1022. var v2, v6 uintptr
  1023. _, _, _, _, _, _, _ = n, sum2, v1, v2, v3, v5, v6
  1024. /* split Adler-32 into component sums */
  1025. sum2 = adler >> libc.Int32FromInt32(16) & uint64(0xffff)
  1026. adler &= uint64(0xffff)
  1027. /* in case user likes doing a byte at a time, keep it fast */
  1028. if len1 == uint64(1) {
  1029. adler += uint64(*(*TBytef)(unsafe.Pointer(buf)))
  1030. if adler >= uint64(65521) {
  1031. adler -= uint64(65521)
  1032. }
  1033. sum2 += adler
  1034. if sum2 >= uint64(65521) {
  1035. sum2 -= uint64(65521)
  1036. }
  1037. return adler | sum2<<int32(16)
  1038. }
  1039. /* initial Adler-32 value (deferred check for len == 1 speed) */
  1040. if buf == uintptr(m_Z_NULL) {
  1041. return uint64(1)
  1042. }
  1043. /* in case short lengths are provided, keep it somewhat fast */
  1044. if len1 < uint64(16) {
  1045. for {
  1046. v1 = len1
  1047. len1--
  1048. if !(v1 != 0) {
  1049. break
  1050. }
  1051. v2 = buf
  1052. buf++
  1053. adler += uint64(*(*TBytef)(unsafe.Pointer(v2)))
  1054. sum2 += adler
  1055. }
  1056. if adler >= uint64(65521) {
  1057. adler -= uint64(65521)
  1058. }
  1059. sum2 %= uint64(65521) /* only added so many BASE's */
  1060. return adler | sum2<<int32(16)
  1061. }
  1062. /* do length NMAX blocks -- requires just one modulo operation */
  1063. for len1 >= uint64(m_NMAX) {
  1064. len1 -= uint64(m_NMAX)
  1065. n = libc.Uint32FromInt32(libc.Int32FromInt32(m_NMAX) / libc.Int32FromInt32(16)) /* NMAX is divisible by 16 */
  1066. for {
  1067. adler += uint64(*(*TBytef)(unsafe.Pointer(buf)))
  1068. sum2 += adler
  1069. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(1)))))
  1070. sum2 += adler
  1071. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)))))
  1072. sum2 += adler
  1073. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1074. sum2 += adler
  1075. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)))))
  1076. sum2 += adler
  1077. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  1078. sum2 += adler
  1079. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  1080. sum2 += adler
  1081. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1082. sum2 += adler
  1083. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + 8)))
  1084. sum2 += adler
  1085. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(1)))))
  1086. sum2 += adler
  1087. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)))))
  1088. sum2 += adler
  1089. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1090. sum2 += adler
  1091. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)))))
  1092. sum2 += adler
  1093. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  1094. sum2 += adler
  1095. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  1096. sum2 += adler
  1097. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1098. sum2 += adler /* 16 sums unrolled */
  1099. buf += uintptr(16)
  1100. goto _4
  1101. _4:
  1102. ;
  1103. n--
  1104. v3 = n
  1105. if !(v3 != 0) {
  1106. break
  1107. }
  1108. }
  1109. adler %= uint64(65521)
  1110. sum2 %= uint64(65521)
  1111. }
  1112. /* do remaining bytes (less than NMAX, still just one modulo) */
  1113. if len1 != 0 { /* avoid modulos if none remaining */
  1114. for len1 >= uint64(16) {
  1115. len1 -= uint64(16)
  1116. adler += uint64(*(*TBytef)(unsafe.Pointer(buf)))
  1117. sum2 += adler
  1118. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(1)))))
  1119. sum2 += adler
  1120. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)))))
  1121. sum2 += adler
  1122. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1123. sum2 += adler
  1124. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)))))
  1125. sum2 += adler
  1126. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  1127. sum2 += adler
  1128. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  1129. sum2 += adler
  1130. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1131. sum2 += adler
  1132. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + 8)))
  1133. sum2 += adler
  1134. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(1)))))
  1135. sum2 += adler
  1136. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)))))
  1137. sum2 += adler
  1138. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1139. sum2 += adler
  1140. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)))))
  1141. sum2 += adler
  1142. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  1143. sum2 += adler
  1144. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  1145. sum2 += adler
  1146. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1147. sum2 += adler
  1148. buf += uintptr(16)
  1149. }
  1150. for {
  1151. v5 = len1
  1152. len1--
  1153. if !(v5 != 0) {
  1154. break
  1155. }
  1156. v6 = buf
  1157. buf++
  1158. adler += uint64(*(*TBytef)(unsafe.Pointer(v6)))
  1159. sum2 += adler
  1160. }
  1161. adler %= uint64(65521)
  1162. sum2 %= uint64(65521)
  1163. }
  1164. /* return recombined sums */
  1165. return adler | sum2<<int32(16)
  1166. }
  1167. // C documentation
  1168. //
  1169. // /* ========================================================================= */
  1170. func Xadler32(tls *libc.TLS, adler TuLong, buf uintptr, len1 TuInt) (r TuLong) {
  1171. return Xadler32_z(tls, adler, buf, uint64(len1))
  1172. }
  1173. // C documentation
  1174. //
  1175. // /* ========================================================================= */
  1176. func _adler32_combine_(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff_t) (r TuLong) {
  1177. var rem uint32
  1178. var sum1, sum2 uint64
  1179. _, _, _ = rem, sum1, sum2
  1180. /* for negative len, return invalid adler32 as a clue for debugging */
  1181. if len2 < 0 {
  1182. return uint64(0xffffffff)
  1183. }
  1184. /* the derivation of this formula is left as an exercise for the reader */
  1185. len2 %= libc.Int64FromUint32(65521) /* assumes len2 >= 0 */
  1186. rem = libc.Uint32FromInt64(len2)
  1187. sum1 = adler1 & uint64(0xffff)
  1188. sum2 = uint64(rem) * sum1
  1189. sum2 %= uint64(65521)
  1190. sum1 += adler2&uint64(0xffff) + uint64(65521) - uint64(1)
  1191. sum2 += adler1>>libc.Int32FromInt32(16)&uint64(0xffff) + adler2>>libc.Int32FromInt32(16)&uint64(0xffff) + uint64(65521) - uint64(rem)
  1192. if sum1 >= uint64(65521) {
  1193. sum1 -= uint64(65521)
  1194. }
  1195. if sum1 >= uint64(65521) {
  1196. sum1 -= uint64(65521)
  1197. }
  1198. if sum2 >= libc.Uint64FromUint32(65521)<<libc.Int32FromInt32(1) {
  1199. sum2 -= libc.Uint64FromUint32(65521) << libc.Int32FromInt32(1)
  1200. }
  1201. if sum2 >= uint64(65521) {
  1202. sum2 -= uint64(65521)
  1203. }
  1204. return sum1 | sum2<<int32(16)
  1205. }
  1206. // C documentation
  1207. //
  1208. // /* ========================================================================= */
  1209. func Xadler32_combine(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff_t) (r TuLong) {
  1210. return _adler32_combine_(tls, adler1, adler2, len2)
  1211. }
  1212. func Xadler32_combine64(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff_t) (r TuLong) {
  1213. return _adler32_combine_(tls, adler1, adler2, len2)
  1214. }
  1215. const m_N = 5
  1216. const m_POLY = 3988292384
  1217. /* Reverse the bytes in a 32-bit value */
  1218. /*
  1219. A CRC of a message is computed on N braids of words in the message, where
  1220. each word consists of W bytes (4 or 8). If N is 3, for example, then three
  1221. running sparse CRCs are calculated respectively on each braid, at these
  1222. indices in the array of words: 0, 3, 6, ..., 1, 4, 7, ..., and 2, 5, 8, ...
  1223. This is done starting at a word boundary, and continues until as many blocks
  1224. of N * W bytes as are available have been processed. The results are combined
  1225. into a single CRC at the end. For this code, N must be in the range 1..6 and
  1226. W must be 4 or 8. The upper limit on N can be increased if desired by adding
  1227. more #if blocks, extending the patterns apparent in the code. In addition,
  1228. crc32.h would need to be regenerated, if the maximum N value is increased.
  1229. N and W are chosen empirically by benchmarking the execution time on a given
  1230. processor. The choices for N and W below were based on testing on Intel Kaby
  1231. Lake i7, AMD Ryzen 7, ARM Cortex-A57, Sparc64-VII, PowerPC POWER9, and MIPS64
  1232. Octeon II processors. The Intel, AMD, and ARM processors were all fastest
  1233. with N=5, W=8. The Sparc, PowerPC, and MIPS64 were all fastest at N=5, W=4.
  1234. They were all tested with either gcc or clang, all using the -O3 optimization
  1235. level. Your mileage may vary.
  1236. */
  1237. /* Define N */
  1238. /*
  1239. z_crc_t must be at least 32 bits. z_word_t must be at least as long as
  1240. z_crc_t. It is assumed here that z_word_t is either 32 bits or 64 bits, and
  1241. that bytes are eight bits.
  1242. */
  1243. // C documentation
  1244. //
  1245. // /*
  1246. // Define W and the associated z_word_t type. If W is not defined, then a
  1247. // braided calculation is not used, and the associated tables and code are not
  1248. // compiled.
  1249. // */
  1250. type Tz_word_t = uint32
  1251. /* If available, use the ARM processor CRC32 instruction. */
  1252. // C documentation
  1253. //
  1254. // /*
  1255. // Swap the bytes in a z_word_t to convert between little and big endian. Any
  1256. // self-respecting compiler will optimize this to a single machine byte-swap
  1257. // instruction, if one is available. This assumes that word_t is either 32 bits
  1258. // or 64 bits.
  1259. // */
  1260. func _byte_swap(tls *libc.TLS, word Tz_word_t) (r Tz_word_t) {
  1261. return word&uint32(0xff000000)>>int32(24) | word&uint32(0xff0000)>>int32(8) | word&uint32(0xff00)<<int32(8) | word&uint32(0xff)<<int32(24)
  1262. }
  1263. var _crc_table = [256]Tz_crc_t{
  1264. 1: uint32(0x77073096),
  1265. 2: uint32(0xee0e612c),
  1266. 3: uint32(0x990951ba),
  1267. 4: uint32(0x076dc419),
  1268. 5: uint32(0x706af48f),
  1269. 6: uint32(0xe963a535),
  1270. 7: uint32(0x9e6495a3),
  1271. 8: uint32(0x0edb8832),
  1272. 9: uint32(0x79dcb8a4),
  1273. 10: uint32(0xe0d5e91e),
  1274. 11: uint32(0x97d2d988),
  1275. 12: uint32(0x09b64c2b),
  1276. 13: uint32(0x7eb17cbd),
  1277. 14: uint32(0xe7b82d07),
  1278. 15: uint32(0x90bf1d91),
  1279. 16: uint32(0x1db71064),
  1280. 17: uint32(0x6ab020f2),
  1281. 18: uint32(0xf3b97148),
  1282. 19: uint32(0x84be41de),
  1283. 20: uint32(0x1adad47d),
  1284. 21: uint32(0x6ddde4eb),
  1285. 22: uint32(0xf4d4b551),
  1286. 23: uint32(0x83d385c7),
  1287. 24: uint32(0x136c9856),
  1288. 25: uint32(0x646ba8c0),
  1289. 26: uint32(0xfd62f97a),
  1290. 27: uint32(0x8a65c9ec),
  1291. 28: uint32(0x14015c4f),
  1292. 29: uint32(0x63066cd9),
  1293. 30: uint32(0xfa0f3d63),
  1294. 31: uint32(0x8d080df5),
  1295. 32: uint32(0x3b6e20c8),
  1296. 33: uint32(0x4c69105e),
  1297. 34: uint32(0xd56041e4),
  1298. 35: uint32(0xa2677172),
  1299. 36: uint32(0x3c03e4d1),
  1300. 37: uint32(0x4b04d447),
  1301. 38: uint32(0xd20d85fd),
  1302. 39: uint32(0xa50ab56b),
  1303. 40: uint32(0x35b5a8fa),
  1304. 41: uint32(0x42b2986c),
  1305. 42: uint32(0xdbbbc9d6),
  1306. 43: uint32(0xacbcf940),
  1307. 44: uint32(0x32d86ce3),
  1308. 45: uint32(0x45df5c75),
  1309. 46: uint32(0xdcd60dcf),
  1310. 47: uint32(0xabd13d59),
  1311. 48: uint32(0x26d930ac),
  1312. 49: uint32(0x51de003a),
  1313. 50: uint32(0xc8d75180),
  1314. 51: uint32(0xbfd06116),
  1315. 52: uint32(0x21b4f4b5),
  1316. 53: uint32(0x56b3c423),
  1317. 54: uint32(0xcfba9599),
  1318. 55: uint32(0xb8bda50f),
  1319. 56: uint32(0x2802b89e),
  1320. 57: uint32(0x5f058808),
  1321. 58: uint32(0xc60cd9b2),
  1322. 59: uint32(0xb10be924),
  1323. 60: uint32(0x2f6f7c87),
  1324. 61: uint32(0x58684c11),
  1325. 62: uint32(0xc1611dab),
  1326. 63: uint32(0xb6662d3d),
  1327. 64: uint32(0x76dc4190),
  1328. 65: uint32(0x01db7106),
  1329. 66: uint32(0x98d220bc),
  1330. 67: uint32(0xefd5102a),
  1331. 68: uint32(0x71b18589),
  1332. 69: uint32(0x06b6b51f),
  1333. 70: uint32(0x9fbfe4a5),
  1334. 71: uint32(0xe8b8d433),
  1335. 72: uint32(0x7807c9a2),
  1336. 73: uint32(0x0f00f934),
  1337. 74: uint32(0x9609a88e),
  1338. 75: uint32(0xe10e9818),
  1339. 76: uint32(0x7f6a0dbb),
  1340. 77: uint32(0x086d3d2d),
  1341. 78: uint32(0x91646c97),
  1342. 79: uint32(0xe6635c01),
  1343. 80: uint32(0x6b6b51f4),
  1344. 81: uint32(0x1c6c6162),
  1345. 82: uint32(0x856530d8),
  1346. 83: uint32(0xf262004e),
  1347. 84: uint32(0x6c0695ed),
  1348. 85: uint32(0x1b01a57b),
  1349. 86: uint32(0x8208f4c1),
  1350. 87: uint32(0xf50fc457),
  1351. 88: uint32(0x65b0d9c6),
  1352. 89: uint32(0x12b7e950),
  1353. 90: uint32(0x8bbeb8ea),
  1354. 91: uint32(0xfcb9887c),
  1355. 92: uint32(0x62dd1ddf),
  1356. 93: uint32(0x15da2d49),
  1357. 94: uint32(0x8cd37cf3),
  1358. 95: uint32(0xfbd44c65),
  1359. 96: uint32(0x4db26158),
  1360. 97: uint32(0x3ab551ce),
  1361. 98: uint32(0xa3bc0074),
  1362. 99: uint32(0xd4bb30e2),
  1363. 100: uint32(0x4adfa541),
  1364. 101: uint32(0x3dd895d7),
  1365. 102: uint32(0xa4d1c46d),
  1366. 103: uint32(0xd3d6f4fb),
  1367. 104: uint32(0x4369e96a),
  1368. 105: uint32(0x346ed9fc),
  1369. 106: uint32(0xad678846),
  1370. 107: uint32(0xda60b8d0),
  1371. 108: uint32(0x44042d73),
  1372. 109: uint32(0x33031de5),
  1373. 110: uint32(0xaa0a4c5f),
  1374. 111: uint32(0xdd0d7cc9),
  1375. 112: uint32(0x5005713c),
  1376. 113: uint32(0x270241aa),
  1377. 114: uint32(0xbe0b1010),
  1378. 115: uint32(0xc90c2086),
  1379. 116: uint32(0x5768b525),
  1380. 117: uint32(0x206f85b3),
  1381. 118: uint32(0xb966d409),
  1382. 119: uint32(0xce61e49f),
  1383. 120: uint32(0x5edef90e),
  1384. 121: uint32(0x29d9c998),
  1385. 122: uint32(0xb0d09822),
  1386. 123: uint32(0xc7d7a8b4),
  1387. 124: uint32(0x59b33d17),
  1388. 125: uint32(0x2eb40d81),
  1389. 126: uint32(0xb7bd5c3b),
  1390. 127: uint32(0xc0ba6cad),
  1391. 128: uint32(0xedb88320),
  1392. 129: uint32(0x9abfb3b6),
  1393. 130: uint32(0x03b6e20c),
  1394. 131: uint32(0x74b1d29a),
  1395. 132: uint32(0xead54739),
  1396. 133: uint32(0x9dd277af),
  1397. 134: uint32(0x04db2615),
  1398. 135: uint32(0x73dc1683),
  1399. 136: uint32(0xe3630b12),
  1400. 137: uint32(0x94643b84),
  1401. 138: uint32(0x0d6d6a3e),
  1402. 139: uint32(0x7a6a5aa8),
  1403. 140: uint32(0xe40ecf0b),
  1404. 141: uint32(0x9309ff9d),
  1405. 142: uint32(0x0a00ae27),
  1406. 143: uint32(0x7d079eb1),
  1407. 144: uint32(0xf00f9344),
  1408. 145: uint32(0x8708a3d2),
  1409. 146: uint32(0x1e01f268),
  1410. 147: uint32(0x6906c2fe),
  1411. 148: uint32(0xf762575d),
  1412. 149: uint32(0x806567cb),
  1413. 150: uint32(0x196c3671),
  1414. 151: uint32(0x6e6b06e7),
  1415. 152: uint32(0xfed41b76),
  1416. 153: uint32(0x89d32be0),
  1417. 154: uint32(0x10da7a5a),
  1418. 155: uint32(0x67dd4acc),
  1419. 156: uint32(0xf9b9df6f),
  1420. 157: uint32(0x8ebeeff9),
  1421. 158: uint32(0x17b7be43),
  1422. 159: uint32(0x60b08ed5),
  1423. 160: uint32(0xd6d6a3e8),
  1424. 161: uint32(0xa1d1937e),
  1425. 162: uint32(0x38d8c2c4),
  1426. 163: uint32(0x4fdff252),
  1427. 164: uint32(0xd1bb67f1),
  1428. 165: uint32(0xa6bc5767),
  1429. 166: uint32(0x3fb506dd),
  1430. 167: uint32(0x48b2364b),
  1431. 168: uint32(0xd80d2bda),
  1432. 169: uint32(0xaf0a1b4c),
  1433. 170: uint32(0x36034af6),
  1434. 171: uint32(0x41047a60),
  1435. 172: uint32(0xdf60efc3),
  1436. 173: uint32(0xa867df55),
  1437. 174: uint32(0x316e8eef),
  1438. 175: uint32(0x4669be79),
  1439. 176: uint32(0xcb61b38c),
  1440. 177: uint32(0xbc66831a),
  1441. 178: uint32(0x256fd2a0),
  1442. 179: uint32(0x5268e236),
  1443. 180: uint32(0xcc0c7795),
  1444. 181: uint32(0xbb0b4703),
  1445. 182: uint32(0x220216b9),
  1446. 183: uint32(0x5505262f),
  1447. 184: uint32(0xc5ba3bbe),
  1448. 185: uint32(0xb2bd0b28),
  1449. 186: uint32(0x2bb45a92),
  1450. 187: uint32(0x5cb36a04),
  1451. 188: uint32(0xc2d7ffa7),
  1452. 189: uint32(0xb5d0cf31),
  1453. 190: uint32(0x2cd99e8b),
  1454. 191: uint32(0x5bdeae1d),
  1455. 192: uint32(0x9b64c2b0),
  1456. 193: uint32(0xec63f226),
  1457. 194: uint32(0x756aa39c),
  1458. 195: uint32(0x026d930a),
  1459. 196: uint32(0x9c0906a9),
  1460. 197: uint32(0xeb0e363f),
  1461. 198: uint32(0x72076785),
  1462. 199: uint32(0x05005713),
  1463. 200: uint32(0x95bf4a82),
  1464. 201: uint32(0xe2b87a14),
  1465. 202: uint32(0x7bb12bae),
  1466. 203: uint32(0x0cb61b38),
  1467. 204: uint32(0x92d28e9b),
  1468. 205: uint32(0xe5d5be0d),
  1469. 206: uint32(0x7cdcefb7),
  1470. 207: uint32(0x0bdbdf21),
  1471. 208: uint32(0x86d3d2d4),
  1472. 209: uint32(0xf1d4e242),
  1473. 210: uint32(0x68ddb3f8),
  1474. 211: uint32(0x1fda836e),
  1475. 212: uint32(0x81be16cd),
  1476. 213: uint32(0xf6b9265b),
  1477. 214: uint32(0x6fb077e1),
  1478. 215: uint32(0x18b74777),
  1479. 216: uint32(0x88085ae6),
  1480. 217: uint32(0xff0f6a70),
  1481. 218: uint32(0x66063bca),
  1482. 219: uint32(0x11010b5c),
  1483. 220: uint32(0x8f659eff),
  1484. 221: uint32(0xf862ae69),
  1485. 222: uint32(0x616bffd3),
  1486. 223: uint32(0x166ccf45),
  1487. 224: uint32(0xa00ae278),
  1488. 225: uint32(0xd70dd2ee),
  1489. 226: uint32(0x4e048354),
  1490. 227: uint32(0x3903b3c2),
  1491. 228: uint32(0xa7672661),
  1492. 229: uint32(0xd06016f7),
  1493. 230: uint32(0x4969474d),
  1494. 231: uint32(0x3e6e77db),
  1495. 232: uint32(0xaed16a4a),
  1496. 233: uint32(0xd9d65adc),
  1497. 234: uint32(0x40df0b66),
  1498. 235: uint32(0x37d83bf0),
  1499. 236: uint32(0xa9bcae53),
  1500. 237: uint32(0xdebb9ec5),
  1501. 238: uint32(0x47b2cf7f),
  1502. 239: uint32(0x30b5ffe9),
  1503. 240: uint32(0xbdbdf21c),
  1504. 241: uint32(0xcabac28a),
  1505. 242: uint32(0x53b39330),
  1506. 243: uint32(0x24b4a3a6),
  1507. 244: uint32(0xbad03605),
  1508. 245: uint32(0xcdd70693),
  1509. 246: uint32(0x54de5729),
  1510. 247: uint32(0x23d967bf),
  1511. 248: uint32(0xb3667a2e),
  1512. 249: uint32(0xc4614ab8),
  1513. 250: uint32(0x5d681b02),
  1514. 251: uint32(0x2a6f2b94),
  1515. 252: uint32(0xb40bbe37),
  1516. 253: uint32(0xc30c8ea1),
  1517. 254: uint32(0x5a05df1b),
  1518. 255: uint32(0x2d02ef8d),
  1519. }
  1520. var _crc_big_table = [256]Tz_word_t{
  1521. 1: uint32(0x96300777),
  1522. 2: uint32(0x2c610eee),
  1523. 3: uint32(0xba510999),
  1524. 4: uint32(0x19c46d07),
  1525. 5: uint32(0x8ff46a70),
  1526. 6: uint32(0x35a563e9),
  1527. 7: uint32(0xa395649e),
  1528. 8: uint32(0x3288db0e),
  1529. 9: uint32(0xa4b8dc79),
  1530. 10: uint32(0x1ee9d5e0),
  1531. 11: uint32(0x88d9d297),
  1532. 12: uint32(0x2b4cb609),
  1533. 13: uint32(0xbd7cb17e),
  1534. 14: uint32(0x072db8e7),
  1535. 15: uint32(0x911dbf90),
  1536. 16: uint32(0x6410b71d),
  1537. 17: uint32(0xf220b06a),
  1538. 18: uint32(0x4871b9f3),
  1539. 19: uint32(0xde41be84),
  1540. 20: uint32(0x7dd4da1a),
  1541. 21: uint32(0xebe4dd6d),
  1542. 22: uint32(0x51b5d4f4),
  1543. 23: uint32(0xc785d383),
  1544. 24: uint32(0x56986c13),
  1545. 25: uint32(0xc0a86b64),
  1546. 26: uint32(0x7af962fd),
  1547. 27: uint32(0xecc9658a),
  1548. 28: uint32(0x4f5c0114),
  1549. 29: uint32(0xd96c0663),
  1550. 30: uint32(0x633d0ffa),
  1551. 31: uint32(0xf50d088d),
  1552. 32: uint32(0xc8206e3b),
  1553. 33: uint32(0x5e10694c),
  1554. 34: uint32(0xe44160d5),
  1555. 35: uint32(0x727167a2),
  1556. 36: uint32(0xd1e4033c),
  1557. 37: uint32(0x47d4044b),
  1558. 38: uint32(0xfd850dd2),
  1559. 39: uint32(0x6bb50aa5),
  1560. 40: uint32(0xfaa8b535),
  1561. 41: uint32(0x6c98b242),
  1562. 42: uint32(0xd6c9bbdb),
  1563. 43: uint32(0x40f9bcac),
  1564. 44: uint32(0xe36cd832),
  1565. 45: uint32(0x755cdf45),
  1566. 46: uint32(0xcf0dd6dc),
  1567. 47: uint32(0x593dd1ab),
  1568. 48: uint32(0xac30d926),
  1569. 49: uint32(0x3a00de51),
  1570. 50: uint32(0x8051d7c8),
  1571. 51: uint32(0x1661d0bf),
  1572. 52: uint32(0xb5f4b421),
  1573. 53: uint32(0x23c4b356),
  1574. 54: uint32(0x9995bacf),
  1575. 55: uint32(0x0fa5bdb8),
  1576. 56: uint32(0x9eb80228),
  1577. 57: uint32(0x0888055f),
  1578. 58: uint32(0xb2d90cc6),
  1579. 59: uint32(0x24e90bb1),
  1580. 60: uint32(0x877c6f2f),
  1581. 61: uint32(0x114c6858),
  1582. 62: uint32(0xab1d61c1),
  1583. 63: uint32(0x3d2d66b6),
  1584. 64: uint32(0x9041dc76),
  1585. 65: uint32(0x0671db01),
  1586. 66: uint32(0xbc20d298),
  1587. 67: uint32(0x2a10d5ef),
  1588. 68: uint32(0x8985b171),
  1589. 69: uint32(0x1fb5b606),
  1590. 70: uint32(0xa5e4bf9f),
  1591. 71: uint32(0x33d4b8e8),
  1592. 72: uint32(0xa2c90778),
  1593. 73: uint32(0x34f9000f),
  1594. 74: uint32(0x8ea80996),
  1595. 75: uint32(0x18980ee1),
  1596. 76: uint32(0xbb0d6a7f),
  1597. 77: uint32(0x2d3d6d08),
  1598. 78: uint32(0x976c6491),
  1599. 79: uint32(0x015c63e6),
  1600. 80: uint32(0xf4516b6b),
  1601. 81: uint32(0x62616c1c),
  1602. 82: uint32(0xd8306585),
  1603. 83: uint32(0x4e0062f2),
  1604. 84: uint32(0xed95066c),
  1605. 85: uint32(0x7ba5011b),
  1606. 86: uint32(0xc1f40882),
  1607. 87: uint32(0x57c40ff5),
  1608. 88: uint32(0xc6d9b065),
  1609. 89: uint32(0x50e9b712),
  1610. 90: uint32(0xeab8be8b),
  1611. 91: uint32(0x7c88b9fc),
  1612. 92: uint32(0xdf1ddd62),
  1613. 93: uint32(0x492dda15),
  1614. 94: uint32(0xf37cd38c),
  1615. 95: uint32(0x654cd4fb),
  1616. 96: uint32(0x5861b24d),
  1617. 97: uint32(0xce51b53a),
  1618. 98: uint32(0x7400bca3),
  1619. 99: uint32(0xe230bbd4),
  1620. 100: uint32(0x41a5df4a),
  1621. 101: uint32(0xd795d83d),
  1622. 102: uint32(0x6dc4d1a4),
  1623. 103: uint32(0xfbf4d6d3),
  1624. 104: uint32(0x6ae96943),
  1625. 105: uint32(0xfcd96e34),
  1626. 106: uint32(0x468867ad),
  1627. 107: uint32(0xd0b860da),
  1628. 108: uint32(0x732d0444),
  1629. 109: uint32(0xe51d0333),
  1630. 110: uint32(0x5f4c0aaa),
  1631. 111: uint32(0xc97c0ddd),
  1632. 112: uint32(0x3c710550),
  1633. 113: uint32(0xaa410227),
  1634. 114: uint32(0x10100bbe),
  1635. 115: uint32(0x86200cc9),
  1636. 116: uint32(0x25b56857),
  1637. 117: uint32(0xb3856f20),
  1638. 118: uint32(0x09d466b9),
  1639. 119: uint32(0x9fe461ce),
  1640. 120: uint32(0x0ef9de5e),
  1641. 121: uint32(0x98c9d929),
  1642. 122: uint32(0x2298d0b0),
  1643. 123: uint32(0xb4a8d7c7),
  1644. 124: uint32(0x173db359),
  1645. 125: uint32(0x810db42e),
  1646. 126: uint32(0x3b5cbdb7),
  1647. 127: uint32(0xad6cbac0),
  1648. 128: uint32(0x2083b8ed),
  1649. 129: uint32(0xb6b3bf9a),
  1650. 130: uint32(0x0ce2b603),
  1651. 131: uint32(0x9ad2b174),
  1652. 132: uint32(0x3947d5ea),
  1653. 133: uint32(0xaf77d29d),
  1654. 134: uint32(0x1526db04),
  1655. 135: uint32(0x8316dc73),
  1656. 136: uint32(0x120b63e3),
  1657. 137: uint32(0x843b6494),
  1658. 138: uint32(0x3e6a6d0d),
  1659. 139: uint32(0xa85a6a7a),
  1660. 140: uint32(0x0bcf0ee4),
  1661. 141: uint32(0x9dff0993),
  1662. 142: uint32(0x27ae000a),
  1663. 143: uint32(0xb19e077d),
  1664. 144: uint32(0x44930ff0),
  1665. 145: uint32(0xd2a30887),
  1666. 146: uint32(0x68f2011e),
  1667. 147: uint32(0xfec20669),
  1668. 148: uint32(0x5d5762f7),
  1669. 149: uint32(0xcb676580),
  1670. 150: uint32(0x71366c19),
  1671. 151: uint32(0xe7066b6e),
  1672. 152: uint32(0x761bd4fe),
  1673. 153: uint32(0xe02bd389),
  1674. 154: uint32(0x5a7ada10),
  1675. 155: uint32(0xcc4add67),
  1676. 156: uint32(0x6fdfb9f9),
  1677. 157: uint32(0xf9efbe8e),
  1678. 158: uint32(0x43beb717),
  1679. 159: uint32(0xd58eb060),
  1680. 160: uint32(0xe8a3d6d6),
  1681. 161: uint32(0x7e93d1a1),
  1682. 162: uint32(0xc4c2d838),
  1683. 163: uint32(0x52f2df4f),
  1684. 164: uint32(0xf167bbd1),
  1685. 165: uint32(0x6757bca6),
  1686. 166: uint32(0xdd06b53f),
  1687. 167: uint32(0x4b36b248),
  1688. 168: uint32(0xda2b0dd8),
  1689. 169: uint32(0x4c1b0aaf),
  1690. 170: uint32(0xf64a0336),
  1691. 171: uint32(0x607a0441),
  1692. 172: uint32(0xc3ef60df),
  1693. 173: uint32(0x55df67a8),
  1694. 174: uint32(0xef8e6e31),
  1695. 175: uint32(0x79be6946),
  1696. 176: uint32(0x8cb361cb),
  1697. 177: uint32(0x1a8366bc),
  1698. 178: uint32(0xa0d26f25),
  1699. 179: uint32(0x36e26852),
  1700. 180: uint32(0x95770ccc),
  1701. 181: uint32(0x03470bbb),
  1702. 182: uint32(0xb9160222),
  1703. 183: uint32(0x2f260555),
  1704. 184: uint32(0xbe3bbac5),
  1705. 185: uint32(0x280bbdb2),
  1706. 186: uint32(0x925ab42b),
  1707. 187: uint32(0x046ab35c),
  1708. 188: uint32(0xa7ffd7c2),
  1709. 189: uint32(0x31cfd0b5),
  1710. 190: uint32(0x8b9ed92c),
  1711. 191: uint32(0x1daede5b),
  1712. 192: uint32(0xb0c2649b),
  1713. 193: uint32(0x26f263ec),
  1714. 194: uint32(0x9ca36a75),
  1715. 195: uint32(0x0a936d02),
  1716. 196: uint32(0xa906099c),
  1717. 197: uint32(0x3f360eeb),
  1718. 198: uint32(0x85670772),
  1719. 199: uint32(0x13570005),
  1720. 200: uint32(0x824abf95),
  1721. 201: uint32(0x147ab8e2),
  1722. 202: uint32(0xae2bb17b),
  1723. 203: uint32(0x381bb60c),
  1724. 204: uint32(0x9b8ed292),
  1725. 205: uint32(0x0dbed5e5),
  1726. 206: uint32(0xb7efdc7c),
  1727. 207: uint32(0x21dfdb0b),
  1728. 208: uint32(0xd4d2d386),
  1729. 209: uint32(0x42e2d4f1),
  1730. 210: uint32(0xf8b3dd68),
  1731. 211: uint32(0x6e83da1f),
  1732. 212: uint32(0xcd16be81),
  1733. 213: uint32(0x5b26b9f6),
  1734. 214: uint32(0xe177b06f),
  1735. 215: uint32(0x7747b718),
  1736. 216: uint32(0xe65a0888),
  1737. 217: uint32(0x706a0fff),
  1738. 218: uint32(0xca3b0666),
  1739. 219: uint32(0x5c0b0111),
  1740. 220: uint32(0xff9e658f),
  1741. 221: uint32(0x69ae62f8),
  1742. 222: uint32(0xd3ff6b61),
  1743. 223: uint32(0x45cf6c16),
  1744. 224: uint32(0x78e20aa0),
  1745. 225: uint32(0xeed20dd7),
  1746. 226: uint32(0x5483044e),
  1747. 227: uint32(0xc2b30339),
  1748. 228: uint32(0x612667a7),
  1749. 229: uint32(0xf71660d0),
  1750. 230: uint32(0x4d476949),
  1751. 231: uint32(0xdb776e3e),
  1752. 232: uint32(0x4a6ad1ae),
  1753. 233: uint32(0xdc5ad6d9),
  1754. 234: uint32(0x660bdf40),
  1755. 235: uint32(0xf03bd837),
  1756. 236: uint32(0x53aebca9),
  1757. 237: uint32(0xc59ebbde),
  1758. 238: uint32(0x7fcfb247),
  1759. 239: uint32(0xe9ffb530),
  1760. 240: uint32(0x1cf2bdbd),
  1761. 241: uint32(0x8ac2baca),
  1762. 242: uint32(0x3093b353),
  1763. 243: uint32(0xa6a3b424),
  1764. 244: uint32(0x0536d0ba),
  1765. 245: uint32(0x9306d7cd),
  1766. 246: uint32(0x2957de54),
  1767. 247: uint32(0xbf67d923),
  1768. 248: uint32(0x2e7a66b3),
  1769. 249: uint32(0xb84a61c4),
  1770. 250: uint32(0x021b685d),
  1771. 251: uint32(0x942b6f2a),
  1772. 252: uint32(0x37be0bb4),
  1773. 253: uint32(0xa18e0cc3),
  1774. 254: uint32(0x1bdf055a),
  1775. 255: uint32(0x8def022d),
  1776. }
  1777. var _crc_braid_table = [4][256]Tz_crc_t{
  1778. 0: {
  1779. 1: uint32(0x65673b46),
  1780. 2: uint32(0xcace768c),
  1781. 3: uint32(0xafa94dca),
  1782. 4: uint32(0x4eedeb59),
  1783. 5: uint32(0x2b8ad01f),
  1784. 6: uint32(0x84239dd5),
  1785. 7: uint32(0xe144a693),
  1786. 8: uint32(0x9ddbd6b2),
  1787. 9: uint32(0xf8bcedf4),
  1788. 10: uint32(0x5715a03e),
  1789. 11: uint32(0x32729b78),
  1790. 12: uint32(0xd3363deb),
  1791. 13: uint32(0xb65106ad),
  1792. 14: uint32(0x19f84b67),
  1793. 15: uint32(0x7c9f7021),
  1794. 16: uint32(0xe0c6ab25),
  1795. 17: uint32(0x85a19063),
  1796. 18: uint32(0x2a08dda9),
  1797. 19: uint32(0x4f6fe6ef),
  1798. 20: uint32(0xae2b407c),
  1799. 21: uint32(0xcb4c7b3a),
  1800. 22: uint32(0x64e536f0),
  1801. 23: uint32(0x01820db6),
  1802. 24: uint32(0x7d1d7d97),
  1803. 25: uint32(0x187a46d1),
  1804. 26: uint32(0xb7d30b1b),
  1805. 27: uint32(0xd2b4305d),
  1806. 28: uint32(0x33f096ce),
  1807. 29: uint32(0x5697ad88),
  1808. 30: uint32(0xf93ee042),
  1809. 31: uint32(0x9c59db04),
  1810. 32: uint32(0x1afc500b),
  1811. 33: uint32(0x7f9b6b4d),
  1812. 34: uint32(0xd0322687),
  1813. 35: uint32(0xb5551dc1),
  1814. 36: uint32(0x5411bb52),
  1815. 37: uint32(0x31768014),
  1816. 38: uint32(0x9edfcdde),
  1817. 39: uint32(0xfbb8f698),
  1818. 40: uint32(0x872786b9),
  1819. 41: uint32(0xe240bdff),
  1820. 42: uint32(0x4de9f035),
  1821. 43: uint32(0x288ecb73),
  1822. 44: uint32(0xc9ca6de0),
  1823. 45: uint32(0xacad56a6),
  1824. 46: uint32(0x03041b6c),
  1825. 47: uint32(0x6663202a),
  1826. 48: uint32(0xfa3afb2e),
  1827. 49: uint32(0x9f5dc068),
  1828. 50: uint32(0x30f48da2),
  1829. 51: uint32(0x5593b6e4),
  1830. 52: uint32(0xb4d71077),
  1831. 53: uint32(0xd1b02b31),
  1832. 54: uint32(0x7e1966fb),
  1833. 55: uint32(0x1b7e5dbd),
  1834. 56: uint32(0x67e12d9c),
  1835. 57: uint32(0x028616da),
  1836. 58: uint32(0xad2f5b10),
  1837. 59: uint32(0xc8486056),
  1838. 60: uint32(0x290cc6c5),
  1839. 61: uint32(0x4c6bfd83),
  1840. 62: uint32(0xe3c2b049),
  1841. 63: uint32(0x86a58b0f),
  1842. 64: uint32(0x35f8a016),
  1843. 65: uint32(0x509f9b50),
  1844. 66: uint32(0xff36d69a),
  1845. 67: uint32(0x9a51eddc),
  1846. 68: uint32(0x7b154b4f),
  1847. 69: uint32(0x1e727009),
  1848. 70: uint32(0xb1db3dc3),
  1849. 71: uint32(0xd4bc0685),
  1850. 72: uint32(0xa82376a4),
  1851. 73: uint32(0xcd444de2),
  1852. 74: uint32(0x62ed0028),
  1853. 75: uint32(0x078a3b6e),
  1854. 76: uint32(0xe6ce9dfd),
  1855. 77: uint32(0x83a9a6bb),
  1856. 78: uint32(0x2c00eb71),
  1857. 79: uint32(0x4967d037),
  1858. 80: uint32(0xd53e0b33),
  1859. 81: uint32(0xb0593075),
  1860. 82: uint32(0x1ff07dbf),
  1861. 83: uint32(0x7a9746f9),
  1862. 84: uint32(0x9bd3e06a),
  1863. 85: uint32(0xfeb4db2c),
  1864. 86: uint32(0x511d96e6),
  1865. 87: uint32(0x347aada0),
  1866. 88: uint32(0x48e5dd81),
  1867. 89: uint32(0x2d82e6c7),
  1868. 90: uint32(0x822bab0d),
  1869. 91: uint32(0xe74c904b),
  1870. 92: uint32(0x060836d8),
  1871. 93: uint32(0x636f0d9e),
  1872. 94: uint32(0xccc64054),
  1873. 95: uint32(0xa9a17b12),
  1874. 96: uint32(0x2f04f01d),
  1875. 97: uint32(0x4a63cb5b),
  1876. 98: uint32(0xe5ca8691),
  1877. 99: uint32(0x80adbdd7),
  1878. 100: uint32(0x61e91b44),
  1879. 101: uint32(0x048e2002),
  1880. 102: uint32(0xab276dc8),
  1881. 103: uint32(0xce40568e),
  1882. 104: uint32(0xb2df26af),
  1883. 105: uint32(0xd7b81de9),
  1884. 106: uint32(0x78115023),
  1885. 107: uint32(0x1d766b65),
  1886. 108: uint32(0xfc32cdf6),
  1887. 109: uint32(0x9955f6b0),
  1888. 110: uint32(0x36fcbb7a),
  1889. 111: uint32(0x539b803c),
  1890. 112: uint32(0xcfc25b38),
  1891. 113: uint32(0xaaa5607e),
  1892. 114: uint32(0x050c2db4),
  1893. 115: uint32(0x606b16f2),
  1894. 116: uint32(0x812fb061),
  1895. 117: uint32(0xe4488b27),
  1896. 118: uint32(0x4be1c6ed),
  1897. 119: uint32(0x2e86fdab),
  1898. 120: uint32(0x52198d8a),
  1899. 121: uint32(0x377eb6cc),
  1900. 122: uint32(0x98d7fb06),
  1901. 123: uint32(0xfdb0c040),
  1902. 124: uint32(0x1cf466d3),
  1903. 125: uint32(0x79935d95),
  1904. 126: uint32(0xd63a105f),
  1905. 127: uint32(0xb35d2b19),
  1906. 128: uint32(0x6bf1402c),
  1907. 129: uint32(0x0e967b6a),
  1908. 130: uint32(0xa13f36a0),
  1909. 131: uint32(0xc4580de6),
  1910. 132: uint32(0x251cab75),
  1911. 133: uint32(0x407b9033),
  1912. 134: uint32(0xefd2ddf9),
  1913. 135: uint32(0x8ab5e6bf),
  1914. 136: uint32(0xf62a969e),
  1915. 137: uint32(0x934dadd8),
  1916. 138: uint32(0x3ce4e012),
  1917. 139: uint32(0x5983db54),
  1918. 140: uint32(0xb8c77dc7),
  1919. 141: uint32(0xdda04681),
  1920. 142: uint32(0x72090b4b),
  1921. 143: uint32(0x176e300d),
  1922. 144: uint32(0x8b37eb09),
  1923. 145: uint32(0xee50d04f),
  1924. 146: uint32(0x41f99d85),
  1925. 147: uint32(0x249ea6c3),
  1926. 148: uint32(0xc5da0050),
  1927. 149: uint32(0xa0bd3b16),
  1928. 150: uint32(0x0f1476dc),
  1929. 151: uint32(0x6a734d9a),
  1930. 152: uint32(0x16ec3dbb),
  1931. 153: uint32(0x738b06fd),
  1932. 154: uint32(0xdc224b37),
  1933. 155: uint32(0xb9457071),
  1934. 156: uint32(0x5801d6e2),
  1935. 157: uint32(0x3d66eda4),
  1936. 158: uint32(0x92cfa06e),
  1937. 159: uint32(0xf7a89b28),
  1938. 160: uint32(0x710d1027),
  1939. 161: uint32(0x146a2b61),
  1940. 162: uint32(0xbbc366ab),
  1941. 163: uint32(0xdea45ded),
  1942. 164: uint32(0x3fe0fb7e),
  1943. 165: uint32(0x5a87c038),
  1944. 166: uint32(0xf52e8df2),
  1945. 167: uint32(0x9049b6b4),
  1946. 168: uint32(0xecd6c695),
  1947. 169: uint32(0x89b1fdd3),
  1948. 170: uint32(0x2618b019),
  1949. 171: uint32(0x437f8b5f),
  1950. 172: uint32(0xa23b2dcc),
  1951. 173: uint32(0xc75c168a),
  1952. 174: uint32(0x68f55b40),
  1953. 175: uint32(0x0d926006),
  1954. 176: uint32(0x91cbbb02),
  1955. 177: uint32(0xf4ac8044),
  1956. 178: uint32(0x5b05cd8e),
  1957. 179: uint32(0x3e62f6c8),
  1958. 180: uint32(0xdf26505b),
  1959. 181: uint32(0xba416b1d),
  1960. 182: uint32(0x15e826d7),
  1961. 183: uint32(0x708f1d91),
  1962. 184: uint32(0x0c106db0),
  1963. 185: uint32(0x697756f6),
  1964. 186: uint32(0xc6de1b3c),
  1965. 187: uint32(0xa3b9207a),
  1966. 188: uint32(0x42fd86e9),
  1967. 189: uint32(0x279abdaf),
  1968. 190: uint32(0x8833f065),
  1969. 191: uint32(0xed54cb23),
  1970. 192: uint32(0x5e09e03a),
  1971. 193: uint32(0x3b6edb7c),
  1972. 194: uint32(0x94c796b6),
  1973. 195: uint32(0xf1a0adf0),
  1974. 196: uint32(0x10e40b63),
  1975. 197: uint32(0x75833025),
  1976. 198: uint32(0xda2a7def),
  1977. 199: uint32(0xbf4d46a9),
  1978. 200: uint32(0xc3d23688),
  1979. 201: uint32(0xa6b50dce),
  1980. 202: uint32(0x091c4004),
  1981. 203: uint32(0x6c7b7b42),
  1982. 204: uint32(0x8d3fddd1),
  1983. 205: uint32(0xe858e697),
  1984. 206: uint32(0x47f1ab5d),
  1985. 207: uint32(0x2296901b),
  1986. 208: uint32(0xbecf4b1f),
  1987. 209: uint32(0xdba87059),
  1988. 210: uint32(0x74013d93),
  1989. 211: uint32(0x116606d5),
  1990. 212: uint32(0xf022a046),
  1991. 213: uint32(0x95459b00),
  1992. 214: uint32(0x3aecd6ca),
  1993. 215: uint32(0x5f8bed8c),
  1994. 216: uint32(0x23149dad),
  1995. 217: uint32(0x4673a6eb),
  1996. 218: uint32(0xe9daeb21),
  1997. 219: uint32(0x8cbdd067),
  1998. 220: uint32(0x6df976f4),
  1999. 221: uint32(0x089e4db2),
  2000. 222: uint32(0xa7370078),
  2001. 223: uint32(0xc2503b3e),
  2002. 224: uint32(0x44f5b031),
  2003. 225: uint32(0x21928b77),
  2004. 226: uint32(0x8e3bc6bd),
  2005. 227: uint32(0xeb5cfdfb),
  2006. 228: uint32(0x0a185b68),
  2007. 229: uint32(0x6f7f602e),
  2008. 230: uint32(0xc0d62de4),
  2009. 231: uint32(0xa5b116a2),
  2010. 232: uint32(0xd92e6683),
  2011. 233: uint32(0xbc495dc5),
  2012. 234: uint32(0x13e0100f),
  2013. 235: uint32(0x76872b49),
  2014. 236: uint32(0x97c38dda),
  2015. 237: uint32(0xf2a4b69c),
  2016. 238: uint32(0x5d0dfb56),
  2017. 239: uint32(0x386ac010),
  2018. 240: uint32(0xa4331b14),
  2019. 241: uint32(0xc1542052),
  2020. 242: uint32(0x6efd6d98),
  2021. 243: uint32(0x0b9a56de),
  2022. 244: uint32(0xeadef04d),
  2023. 245: uint32(0x8fb9cb0b),
  2024. 246: uint32(0x201086c1),
  2025. 247: uint32(0x4577bd87),
  2026. 248: uint32(0x39e8cda6),
  2027. 249: uint32(0x5c8ff6e0),
  2028. 250: uint32(0xf326bb2a),
  2029. 251: uint32(0x9641806c),
  2030. 252: uint32(0x770526ff),
  2031. 253: uint32(0x12621db9),
  2032. 254: uint32(0xbdcb5073),
  2033. 255: uint32(0xd8ac6b35),
  2034. },
  2035. 1: {
  2036. 1: uint32(0xd7e28058),
  2037. 2: uint32(0x74b406f1),
  2038. 3: uint32(0xa35686a9),
  2039. 4: uint32(0xe9680de2),
  2040. 5: uint32(0x3e8a8dba),
  2041. 6: uint32(0x9ddc0b13),
  2042. 7: uint32(0x4a3e8b4b),
  2043. 8: uint32(0x09a11d85),
  2044. 9: uint32(0xde439ddd),
  2045. 10: uint32(0x7d151b74),
  2046. 11: uint32(0xaaf79b2c),
  2047. 12: uint32(0xe0c91067),
  2048. 13: uint32(0x372b903f),
  2049. 14: uint32(0x947d1696),
  2050. 15: uint32(0x439f96ce),
  2051. 16: uint32(0x13423b0a),
  2052. 17: uint32(0xc4a0bb52),
  2053. 18: uint32(0x67f63dfb),
  2054. 19: uint32(0xb014bda3),
  2055. 20: uint32(0xfa2a36e8),
  2056. 21: uint32(0x2dc8b6b0),
  2057. 22: uint32(0x8e9e3019),
  2058. 23: uint32(0x597cb041),
  2059. 24: uint32(0x1ae3268f),
  2060. 25: uint32(0xcd01a6d7),
  2061. 26: uint32(0x6e57207e),
  2062. 27: uint32(0xb9b5a026),
  2063. 28: uint32(0xf38b2b6d),
  2064. 29: uint32(0x2469ab35),
  2065. 30: uint32(0x873f2d9c),
  2066. 31: uint32(0x50ddadc4),
  2067. 32: uint32(0x26847614),
  2068. 33: uint32(0xf166f64c),
  2069. 34: uint32(0x523070e5),
  2070. 35: uint32(0x85d2f0bd),
  2071. 36: uint32(0xcfec7bf6),
  2072. 37: uint32(0x180efbae),
  2073. 38: uint32(0xbb587d07),
  2074. 39: uint32(0x6cbafd5f),
  2075. 40: uint32(0x2f256b91),
  2076. 41: uint32(0xf8c7ebc9),
  2077. 42: uint32(0x5b916d60),
  2078. 43: uint32(0x8c73ed38),
  2079. 44: uint32(0xc64d6673),
  2080. 45: uint32(0x11afe62b),
  2081. 46: uint32(0xb2f96082),
  2082. 47: uint32(0x651be0da),
  2083. 48: uint32(0x35c64d1e),
  2084. 49: uint32(0xe224cd46),
  2085. 50: uint32(0x41724bef),
  2086. 51: uint32(0x9690cbb7),
  2087. 52: uint32(0xdcae40fc),
  2088. 53: uint32(0x0b4cc0a4),
  2089. 54: uint32(0xa81a460d),
  2090. 55: uint32(0x7ff8c655),
  2091. 56: uint32(0x3c67509b),
  2092. 57: uint32(0xeb85d0c3),
  2093. 58: uint32(0x48d3566a),
  2094. 59: uint32(0x9f31d632),
  2095. 60: uint32(0xd50f5d79),
  2096. 61: uint32(0x02eddd21),
  2097. 62: uint32(0xa1bb5b88),
  2098. 63: uint32(0x7659dbd0),
  2099. 64: uint32(0x4d08ec28),
  2100. 65: uint32(0x9aea6c70),
  2101. 66: uint32(0x39bcead9),
  2102. 67: uint32(0xee5e6a81),
  2103. 68: uint32(0xa460e1ca),
  2104. 69: uint32(0x73826192),
  2105. 70: uint32(0xd0d4e73b),
  2106. 71: uint32(0x07366763),
  2107. 72: uint32(0x44a9f1ad),
  2108. 73: uint32(0x934b71f5),
  2109. 74: uint32(0x301df75c),
  2110. 75: uint32(0xe7ff7704),
  2111. 76: uint32(0xadc1fc4f),
  2112. 77: uint32(0x7a237c17),
  2113. 78: uint32(0xd975fabe),
  2114. 79: uint32(0x0e977ae6),
  2115. 80: uint32(0x5e4ad722),
  2116. 81: uint32(0x89a8577a),
  2117. 82: uint32(0x2afed1d3),
  2118. 83: uint32(0xfd1c518b),
  2119. 84: uint32(0xb722dac0),
  2120. 85: uint32(0x60c05a98),
  2121. 86: uint32(0xc396dc31),
  2122. 87: uint32(0x14745c69),
  2123. 88: uint32(0x57ebcaa7),
  2124. 89: uint32(0x80094aff),
  2125. 90: uint32(0x235fcc56),
  2126. 91: uint32(0xf4bd4c0e),
  2127. 92: uint32(0xbe83c745),
  2128. 93: uint32(0x6961471d),
  2129. 94: uint32(0xca37c1b4),
  2130. 95: uint32(0x1dd541ec),
  2131. 96: uint32(0x6b8c9a3c),
  2132. 97: uint32(0xbc6e1a64),
  2133. 98: uint32(0x1f389ccd),
  2134. 99: uint32(0xc8da1c95),
  2135. 100: uint32(0x82e497de),
  2136. 101: uint32(0x55061786),
  2137. 102: uint32(0xf650912f),
  2138. 103: uint32(0x21b21177),
  2139. 104: uint32(0x622d87b9),
  2140. 105: uint32(0xb5cf07e1),
  2141. 106: uint32(0x16998148),
  2142. 107: uint32(0xc17b0110),
  2143. 108: uint32(0x8b458a5b),
  2144. 109: uint32(0x5ca70a03),
  2145. 110: uint32(0xfff18caa),
  2146. 111: uint32(0x28130cf2),
  2147. 112: uint32(0x78cea136),
  2148. 113: uint32(0xaf2c216e),
  2149. 114: uint32(0x0c7aa7c7),
  2150. 115: uint32(0xdb98279f),
  2151. 116: uint32(0x91a6acd4),
  2152. 117: uint32(0x46442c8c),
  2153. 118: uint32(0xe512aa25),
  2154. 119: uint32(0x32f02a7d),
  2155. 120: uint32(0x716fbcb3),
  2156. 121: uint32(0xa68d3ceb),
  2157. 122: uint32(0x05dbba42),
  2158. 123: uint32(0xd2393a1a),
  2159. 124: uint32(0x9807b151),
  2160. 125: uint32(0x4fe53109),
  2161. 126: uint32(0xecb3b7a0),
  2162. 127: uint32(0x3b5137f8),
  2163. 128: uint32(0x9a11d850),
  2164. 129: uint32(0x4df35808),
  2165. 130: uint32(0xeea5dea1),
  2166. 131: uint32(0x39475ef9),
  2167. 132: uint32(0x7379d5b2),
  2168. 133: uint32(0xa49b55ea),
  2169. 134: uint32(0x07cdd343),
  2170. 135: uint32(0xd02f531b),
  2171. 136: uint32(0x93b0c5d5),
  2172. 137: uint32(0x4452458d),
  2173. 138: uint32(0xe704c324),
  2174. 139: uint32(0x30e6437c),
  2175. 140: uint32(0x7ad8c837),
  2176. 141: uint32(0xad3a486f),
  2177. 142: uint32(0x0e6ccec6),
  2178. 143: uint32(0xd98e4e9e),
  2179. 144: uint32(0x8953e35a),
  2180. 145: uint32(0x5eb16302),
  2181. 146: uint32(0xfde7e5ab),
  2182. 147: uint32(0x2a0565f3),
  2183. 148: uint32(0x603beeb8),
  2184. 149: uint32(0xb7d96ee0),
  2185. 150: uint32(0x148fe849),
  2186. 151: uint32(0xc36d6811),
  2187. 152: uint32(0x80f2fedf),
  2188. 153: uint32(0x57107e87),
  2189. 154: uint32(0xf446f82e),
  2190. 155: uint32(0x23a47876),
  2191. 156: uint32(0x699af33d),
  2192. 157: uint32(0xbe787365),
  2193. 158: uint32(0x1d2ef5cc),
  2194. 159: uint32(0xcacc7594),
  2195. 160: uint32(0xbc95ae44),
  2196. 161: uint32(0x6b772e1c),
  2197. 162: uint32(0xc821a8b5),
  2198. 163: uint32(0x1fc328ed),
  2199. 164: uint32(0x55fda3a6),
  2200. 165: uint32(0x821f23fe),
  2201. 166: uint32(0x2149a557),
  2202. 167: uint32(0xf6ab250f),
  2203. 168: uint32(0xb534b3c1),
  2204. 169: uint32(0x62d63399),
  2205. 170: uint32(0xc180b530),
  2206. 171: uint32(0x16623568),
  2207. 172: uint32(0x5c5cbe23),
  2208. 173: uint32(0x8bbe3e7b),
  2209. 174: uint32(0x28e8b8d2),
  2210. 175: uint32(0xff0a388a),
  2211. 176: uint32(0xafd7954e),
  2212. 177: uint32(0x78351516),
  2213. 178: uint32(0xdb6393bf),
  2214. 179: uint32(0x0c8113e7),
  2215. 180: uint32(0x46bf98ac),
  2216. 181: uint32(0x915d18f4),
  2217. 182: uint32(0x320b9e5d),
  2218. 183: uint32(0xe5e91e05),
  2219. 184: uint32(0xa67688cb),
  2220. 185: uint32(0x71940893),
  2221. 186: uint32(0xd2c28e3a),
  2222. 187: uint32(0x05200e62),
  2223. 188: uint32(0x4f1e8529),
  2224. 189: uint32(0x98fc0571),
  2225. 190: uint32(0x3baa83d8),
  2226. 191: uint32(0xec480380),
  2227. 192: uint32(0xd7193478),
  2228. 193: uint32(0x00fbb420),
  2229. 194: uint32(0xa3ad3289),
  2230. 195: uint32(0x744fb2d1),
  2231. 196: uint32(0x3e71399a),
  2232. 197: uint32(0xe993b9c2),
  2233. 198: uint32(0x4ac53f6b),
  2234. 199: uint32(0x9d27bf33),
  2235. 200: uint32(0xdeb829fd),
  2236. 201: uint32(0x095aa9a5),
  2237. 202: uint32(0xaa0c2f0c),
  2238. 203: uint32(0x7deeaf54),
  2239. 204: uint32(0x37d0241f),
  2240. 205: uint32(0xe032a447),
  2241. 206: uint32(0x436422ee),
  2242. 207: uint32(0x9486a2b6),
  2243. 208: uint32(0xc45b0f72),
  2244. 209: uint32(0x13b98f2a),
  2245. 210: uint32(0xb0ef0983),
  2246. 211: uint32(0x670d89db),
  2247. 212: uint32(0x2d330290),
  2248. 213: uint32(0xfad182c8),
  2249. 214: uint32(0x59870461),
  2250. 215: uint32(0x8e658439),
  2251. 216: uint32(0xcdfa12f7),
  2252. 217: uint32(0x1a1892af),
  2253. 218: uint32(0xb94e1406),
  2254. 219: uint32(0x6eac945e),
  2255. 220: uint32(0x24921f15),
  2256. 221: uint32(0xf3709f4d),
  2257. 222: uint32(0x502619e4),
  2258. 223: uint32(0x87c499bc),
  2259. 224: uint32(0xf19d426c),
  2260. 225: uint32(0x267fc234),
  2261. 226: uint32(0x8529449d),
  2262. 227: uint32(0x52cbc4c5),
  2263. 228: uint32(0x18f54f8e),
  2264. 229: uint32(0xcf17cfd6),
  2265. 230: uint32(0x6c41497f),
  2266. 231: uint32(0xbba3c927),
  2267. 232: uint32(0xf83c5fe9),
  2268. 233: uint32(0x2fdedfb1),
  2269. 234: uint32(0x8c885918),
  2270. 235: uint32(0x5b6ad940),
  2271. 236: uint32(0x1154520b),
  2272. 237: uint32(0xc6b6d253),
  2273. 238: uint32(0x65e054fa),
  2274. 239: uint32(0xb202d4a2),
  2275. 240: uint32(0xe2df7966),
  2276. 241: uint32(0x353df93e),
  2277. 242: uint32(0x966b7f97),
  2278. 243: uint32(0x4189ffcf),
  2279. 244: uint32(0x0bb77484),
  2280. 245: uint32(0xdc55f4dc),
  2281. 246: uint32(0x7f037275),
  2282. 247: uint32(0xa8e1f22d),
  2283. 248: uint32(0xeb7e64e3),
  2284. 249: uint32(0x3c9ce4bb),
  2285. 250: uint32(0x9fca6212),
  2286. 251: uint32(0x4828e24a),
  2287. 252: uint32(0x02166901),
  2288. 253: uint32(0xd5f4e959),
  2289. 254: uint32(0x76a26ff0),
  2290. 255: uint32(0xa140efa8),
  2291. },
  2292. 2: {
  2293. 1: uint32(0xef52b6e1),
  2294. 2: uint32(0x05d46b83),
  2295. 3: uint32(0xea86dd62),
  2296. 4: uint32(0x0ba8d706),
  2297. 5: uint32(0xe4fa61e7),
  2298. 6: uint32(0x0e7cbc85),
  2299. 7: uint32(0xe12e0a64),
  2300. 8: uint32(0x1751ae0c),
  2301. 9: uint32(0xf80318ed),
  2302. 10: uint32(0x1285c58f),
  2303. 11: uint32(0xfdd7736e),
  2304. 12: uint32(0x1cf9790a),
  2305. 13: uint32(0xf3abcfeb),
  2306. 14: uint32(0x192d1289),
  2307. 15: uint32(0xf67fa468),
  2308. 16: uint32(0x2ea35c18),
  2309. 17: uint32(0xc1f1eaf9),
  2310. 18: uint32(0x2b77379b),
  2311. 19: uint32(0xc425817a),
  2312. 20: uint32(0x250b8b1e),
  2313. 21: uint32(0xca593dff),
  2314. 22: uint32(0x20dfe09d),
  2315. 23: uint32(0xcf8d567c),
  2316. 24: uint32(0x39f2f214),
  2317. 25: uint32(0xd6a044f5),
  2318. 26: uint32(0x3c269997),
  2319. 27: uint32(0xd3742f76),
  2320. 28: uint32(0x325a2512),
  2321. 29: uint32(0xdd0893f3),
  2322. 30: uint32(0x378e4e91),
  2323. 31: uint32(0xd8dcf870),
  2324. 32: uint32(0x5d46b830),
  2325. 33: uint32(0xb2140ed1),
  2326. 34: uint32(0x5892d3b3),
  2327. 35: uint32(0xb7c06552),
  2328. 36: uint32(0x56ee6f36),
  2329. 37: uint32(0xb9bcd9d7),
  2330. 38: uint32(0x533a04b5),
  2331. 39: uint32(0xbc68b254),
  2332. 40: uint32(0x4a17163c),
  2333. 41: uint32(0xa545a0dd),
  2334. 42: uint32(0x4fc37dbf),
  2335. 43: uint32(0xa091cb5e),
  2336. 44: uint32(0x41bfc13a),
  2337. 45: uint32(0xaeed77db),
  2338. 46: uint32(0x446baab9),
  2339. 47: uint32(0xab391c58),
  2340. 48: uint32(0x73e5e428),
  2341. 49: uint32(0x9cb752c9),
  2342. 50: uint32(0x76318fab),
  2343. 51: uint32(0x9963394a),
  2344. 52: uint32(0x784d332e),
  2345. 53: uint32(0x971f85cf),
  2346. 54: uint32(0x7d9958ad),
  2347. 55: uint32(0x92cbee4c),
  2348. 56: uint32(0x64b44a24),
  2349. 57: uint32(0x8be6fcc5),
  2350. 58: uint32(0x616021a7),
  2351. 59: uint32(0x8e329746),
  2352. 60: uint32(0x6f1c9d22),
  2353. 61: uint32(0x804e2bc3),
  2354. 62: uint32(0x6ac8f6a1),
  2355. 63: uint32(0x859a4040),
  2356. 64: uint32(0xba8d7060),
  2357. 65: uint32(0x55dfc681),
  2358. 66: uint32(0xbf591be3),
  2359. 67: uint32(0x500bad02),
  2360. 68: uint32(0xb125a766),
  2361. 69: uint32(0x5e771187),
  2362. 70: uint32(0xb4f1cce5),
  2363. 71: uint32(0x5ba37a04),
  2364. 72: uint32(0xaddcde6c),
  2365. 73: uint32(0x428e688d),
  2366. 74: uint32(0xa808b5ef),
  2367. 75: uint32(0x475a030e),
  2368. 76: uint32(0xa674096a),
  2369. 77: uint32(0x4926bf8b),
  2370. 78: uint32(0xa3a062e9),
  2371. 79: uint32(0x4cf2d408),
  2372. 80: uint32(0x942e2c78),
  2373. 81: uint32(0x7b7c9a99),
  2374. 82: uint32(0x91fa47fb),
  2375. 83: uint32(0x7ea8f11a),
  2376. 84: uint32(0x9f86fb7e),
  2377. 85: uint32(0x70d44d9f),
  2378. 86: uint32(0x9a5290fd),
  2379. 87: uint32(0x7500261c),
  2380. 88: uint32(0x837f8274),
  2381. 89: uint32(0x6c2d3495),
  2382. 90: uint32(0x86abe9f7),
  2383. 91: uint32(0x69f95f16),
  2384. 92: uint32(0x88d75572),
  2385. 93: uint32(0x6785e393),
  2386. 94: uint32(0x8d033ef1),
  2387. 95: uint32(0x62518810),
  2388. 96: uint32(0xe7cbc850),
  2389. 97: uint32(0x08997eb1),
  2390. 98: uint32(0xe21fa3d3),
  2391. 99: uint32(0x0d4d1532),
  2392. 100: uint32(0xec631f56),
  2393. 101: uint32(0x0331a9b7),
  2394. 102: uint32(0xe9b774d5),
  2395. 103: uint32(0x06e5c234),
  2396. 104: uint32(0xf09a665c),
  2397. 105: uint32(0x1fc8d0bd),
  2398. 106: uint32(0xf54e0ddf),
  2399. 107: uint32(0x1a1cbb3e),
  2400. 108: uint32(0xfb32b15a),
  2401. 109: uint32(0x146007bb),
  2402. 110: uint32(0xfee6dad9),
  2403. 111: uint32(0x11b46c38),
  2404. 112: uint32(0xc9689448),
  2405. 113: uint32(0x263a22a9),
  2406. 114: uint32(0xccbcffcb),
  2407. 115: uint32(0x23ee492a),
  2408. 116: uint32(0xc2c0434e),
  2409. 117: uint32(0x2d92f5af),
  2410. 118: uint32(0xc71428cd),
  2411. 119: uint32(0x28469e2c),
  2412. 120: uint32(0xde393a44),
  2413. 121: uint32(0x316b8ca5),
  2414. 122: uint32(0xdbed51c7),
  2415. 123: uint32(0x34bfe726),
  2416. 124: uint32(0xd591ed42),
  2417. 125: uint32(0x3ac35ba3),
  2418. 126: uint32(0xd04586c1),
  2419. 127: uint32(0x3f173020),
  2420. 128: uint32(0xae6be681),
  2421. 129: uint32(0x41395060),
  2422. 130: uint32(0xabbf8d02),
  2423. 131: uint32(0x44ed3be3),
  2424. 132: uint32(0xa5c33187),
  2425. 133: uint32(0x4a918766),
  2426. 134: uint32(0xa0175a04),
  2427. 135: uint32(0x4f45ece5),
  2428. 136: uint32(0xb93a488d),
  2429. 137: uint32(0x5668fe6c),
  2430. 138: uint32(0xbcee230e),
  2431. 139: uint32(0x53bc95ef),
  2432. 140: uint32(0xb2929f8b),
  2433. 141: uint32(0x5dc0296a),
  2434. 142: uint32(0xb746f408),
  2435. 143: uint32(0x581442e9),
  2436. 144: uint32(0x80c8ba99),
  2437. 145: uint32(0x6f9a0c78),
  2438. 146: uint32(0x851cd11a),
  2439. 147: uint32(0x6a4e67fb),
  2440. 148: uint32(0x8b606d9f),
  2441. 149: uint32(0x6432db7e),
  2442. 150: uint32(0x8eb4061c),
  2443. 151: uint32(0x61e6b0fd),
  2444. 152: uint32(0x97991495),
  2445. 153: uint32(0x78cba274),
  2446. 154: uint32(0x924d7f16),
  2447. 155: uint32(0x7d1fc9f7),
  2448. 156: uint32(0x9c31c393),
  2449. 157: uint32(0x73637572),
  2450. 158: uint32(0x99e5a810),
  2451. 159: uint32(0x76b71ef1),
  2452. 160: uint32(0xf32d5eb1),
  2453. 161: uint32(0x1c7fe850),
  2454. 162: uint32(0xf6f93532),
  2455. 163: uint32(0x19ab83d3),
  2456. 164: uint32(0xf88589b7),
  2457. 165: uint32(0x17d73f56),
  2458. 166: uint32(0xfd51e234),
  2459. 167: uint32(0x120354d5),
  2460. 168: uint32(0xe47cf0bd),
  2461. 169: uint32(0x0b2e465c),
  2462. 170: uint32(0xe1a89b3e),
  2463. 171: uint32(0x0efa2ddf),
  2464. 172: uint32(0xefd427bb),
  2465. 173: uint32(0x0086915a),
  2466. 174: uint32(0xea004c38),
  2467. 175: uint32(0x0552fad9),
  2468. 176: uint32(0xdd8e02a9),
  2469. 177: uint32(0x32dcb448),
  2470. 178: uint32(0xd85a692a),
  2471. 179: uint32(0x3708dfcb),
  2472. 180: uint32(0xd626d5af),
  2473. 181: uint32(0x3974634e),
  2474. 182: uint32(0xd3f2be2c),
  2475. 183: uint32(0x3ca008cd),
  2476. 184: uint32(0xcadfaca5),
  2477. 185: uint32(0x258d1a44),
  2478. 186: uint32(0xcf0bc726),
  2479. 187: uint32(0x205971c7),
  2480. 188: uint32(0xc1777ba3),
  2481. 189: uint32(0x2e25cd42),
  2482. 190: uint32(0xc4a31020),
  2483. 191: uint32(0x2bf1a6c1),
  2484. 192: uint32(0x14e696e1),
  2485. 193: uint32(0xfbb42000),
  2486. 194: uint32(0x1132fd62),
  2487. 195: uint32(0xfe604b83),
  2488. 196: uint32(0x1f4e41e7),
  2489. 197: uint32(0xf01cf706),
  2490. 198: uint32(0x1a9a2a64),
  2491. 199: uint32(0xf5c89c85),
  2492. 200: uint32(0x03b738ed),
  2493. 201: uint32(0xece58e0c),
  2494. 202: uint32(0x0663536e),
  2495. 203: uint32(0xe931e58f),
  2496. 204: uint32(0x081fefeb),
  2497. 205: uint32(0xe74d590a),
  2498. 206: uint32(0x0dcb8468),
  2499. 207: uint32(0xe2993289),
  2500. 208: uint32(0x3a45caf9),
  2501. 209: uint32(0xd5177c18),
  2502. 210: uint32(0x3f91a17a),
  2503. 211: uint32(0xd0c3179b),
  2504. 212: uint32(0x31ed1dff),
  2505. 213: uint32(0xdebfab1e),
  2506. 214: uint32(0x3439767c),
  2507. 215: uint32(0xdb6bc09d),
  2508. 216: uint32(0x2d1464f5),
  2509. 217: uint32(0xc246d214),
  2510. 218: uint32(0x28c00f76),
  2511. 219: uint32(0xc792b997),
  2512. 220: uint32(0x26bcb3f3),
  2513. 221: uint32(0xc9ee0512),
  2514. 222: uint32(0x2368d870),
  2515. 223: uint32(0xcc3a6e91),
  2516. 224: uint32(0x49a02ed1),
  2517. 225: uint32(0xa6f29830),
  2518. 226: uint32(0x4c744552),
  2519. 227: uint32(0xa326f3b3),
  2520. 228: uint32(0x4208f9d7),
  2521. 229: uint32(0xad5a4f36),
  2522. 230: uint32(0x47dc9254),
  2523. 231: uint32(0xa88e24b5),
  2524. 232: uint32(0x5ef180dd),
  2525. 233: uint32(0xb1a3363c),
  2526. 234: uint32(0x5b25eb5e),
  2527. 235: uint32(0xb4775dbf),
  2528. 236: uint32(0x555957db),
  2529. 237: uint32(0xba0be13a),
  2530. 238: uint32(0x508d3c58),
  2531. 239: uint32(0xbfdf8ab9),
  2532. 240: uint32(0x670372c9),
  2533. 241: uint32(0x8851c428),
  2534. 242: uint32(0x62d7194a),
  2535. 243: uint32(0x8d85afab),
  2536. 244: uint32(0x6caba5cf),
  2537. 245: uint32(0x83f9132e),
  2538. 246: uint32(0x697fce4c),
  2539. 247: uint32(0x862d78ad),
  2540. 248: uint32(0x7052dcc5),
  2541. 249: uint32(0x9f006a24),
  2542. 250: uint32(0x7586b746),
  2543. 251: uint32(0x9ad401a7),
  2544. 252: uint32(0x7bfa0bc3),
  2545. 253: uint32(0x94a8bd22),
  2546. 254: uint32(0x7e2e6040),
  2547. 255: uint32(0x917cd6a1),
  2548. },
  2549. 3: {
  2550. 1: uint32(0x87a6cb43),
  2551. 2: uint32(0xd43c90c7),
  2552. 3: uint32(0x539a5b84),
  2553. 4: uint32(0x730827cf),
  2554. 5: uint32(0xf4aeec8c),
  2555. 6: uint32(0xa734b708),
  2556. 7: uint32(0x20927c4b),
  2557. 8: uint32(0xe6104f9e),
  2558. 9: uint32(0x61b684dd),
  2559. 10: uint32(0x322cdf59),
  2560. 11: uint32(0xb58a141a),
  2561. 12: uint32(0x95186851),
  2562. 13: uint32(0x12bea312),
  2563. 14: uint32(0x4124f896),
  2564. 15: uint32(0xc68233d5),
  2565. 16: uint32(0x1751997d),
  2566. 17: uint32(0x90f7523e),
  2567. 18: uint32(0xc36d09ba),
  2568. 19: uint32(0x44cbc2f9),
  2569. 20: uint32(0x6459beb2),
  2570. 21: uint32(0xe3ff75f1),
  2571. 22: uint32(0xb0652e75),
  2572. 23: uint32(0x37c3e536),
  2573. 24: uint32(0xf141d6e3),
  2574. 25: uint32(0x76e71da0),
  2575. 26: uint32(0x257d4624),
  2576. 27: uint32(0xa2db8d67),
  2577. 28: uint32(0x8249f12c),
  2578. 29: uint32(0x05ef3a6f),
  2579. 30: uint32(0x567561eb),
  2580. 31: uint32(0xd1d3aaa8),
  2581. 32: uint32(0x2ea332fa),
  2582. 33: uint32(0xa905f9b9),
  2583. 34: uint32(0xfa9fa23d),
  2584. 35: uint32(0x7d39697e),
  2585. 36: uint32(0x5dab1535),
  2586. 37: uint32(0xda0dde76),
  2587. 38: uint32(0x899785f2),
  2588. 39: uint32(0x0e314eb1),
  2589. 40: uint32(0xc8b37d64),
  2590. 41: uint32(0x4f15b627),
  2591. 42: uint32(0x1c8feda3),
  2592. 43: uint32(0x9b2926e0),
  2593. 44: uint32(0xbbbb5aab),
  2594. 45: uint32(0x3c1d91e8),
  2595. 46: uint32(0x6f87ca6c),
  2596. 47: uint32(0xe821012f),
  2597. 48: uint32(0x39f2ab87),
  2598. 49: uint32(0xbe5460c4),
  2599. 50: uint32(0xedce3b40),
  2600. 51: uint32(0x6a68f003),
  2601. 52: uint32(0x4afa8c48),
  2602. 53: uint32(0xcd5c470b),
  2603. 54: uint32(0x9ec61c8f),
  2604. 55: uint32(0x1960d7cc),
  2605. 56: uint32(0xdfe2e419),
  2606. 57: uint32(0x58442f5a),
  2607. 58: uint32(0x0bde74de),
  2608. 59: uint32(0x8c78bf9d),
  2609. 60: uint32(0xaceac3d6),
  2610. 61: uint32(0x2b4c0895),
  2611. 62: uint32(0x78d65311),
  2612. 63: uint32(0xff709852),
  2613. 64: uint32(0x5d4665f4),
  2614. 65: uint32(0xdae0aeb7),
  2615. 66: uint32(0x897af533),
  2616. 67: uint32(0x0edc3e70),
  2617. 68: uint32(0x2e4e423b),
  2618. 69: uint32(0xa9e88978),
  2619. 70: uint32(0xfa72d2fc),
  2620. 71: uint32(0x7dd419bf),
  2621. 72: uint32(0xbb562a6a),
  2622. 73: uint32(0x3cf0e129),
  2623. 74: uint32(0x6f6abaad),
  2624. 75: uint32(0xe8cc71ee),
  2625. 76: uint32(0xc85e0da5),
  2626. 77: uint32(0x4ff8c6e6),
  2627. 78: uint32(0x1c629d62),
  2628. 79: uint32(0x9bc45621),
  2629. 80: uint32(0x4a17fc89),
  2630. 81: uint32(0xcdb137ca),
  2631. 82: uint32(0x9e2b6c4e),
  2632. 83: uint32(0x198da70d),
  2633. 84: uint32(0x391fdb46),
  2634. 85: uint32(0xbeb91005),
  2635. 86: uint32(0xed234b81),
  2636. 87: uint32(0x6a8580c2),
  2637. 88: uint32(0xac07b317),
  2638. 89: uint32(0x2ba17854),
  2639. 90: uint32(0x783b23d0),
  2640. 91: uint32(0xff9de893),
  2641. 92: uint32(0xdf0f94d8),
  2642. 93: uint32(0x58a95f9b),
  2643. 94: uint32(0x0b33041f),
  2644. 95: uint32(0x8c95cf5c),
  2645. 96: uint32(0x73e5570e),
  2646. 97: uint32(0xf4439c4d),
  2647. 98: uint32(0xa7d9c7c9),
  2648. 99: uint32(0x207f0c8a),
  2649. 100: uint32(0x00ed70c1),
  2650. 101: uint32(0x874bbb82),
  2651. 102: uint32(0xd4d1e006),
  2652. 103: uint32(0x53772b45),
  2653. 104: uint32(0x95f51890),
  2654. 105: uint32(0x1253d3d3),
  2655. 106: uint32(0x41c98857),
  2656. 107: uint32(0xc66f4314),
  2657. 108: uint32(0xe6fd3f5f),
  2658. 109: uint32(0x615bf41c),
  2659. 110: uint32(0x32c1af98),
  2660. 111: uint32(0xb56764db),
  2661. 112: uint32(0x64b4ce73),
  2662. 113: uint32(0xe3120530),
  2663. 114: uint32(0xb0885eb4),
  2664. 115: uint32(0x372e95f7),
  2665. 116: uint32(0x17bce9bc),
  2666. 117: uint32(0x901a22ff),
  2667. 118: uint32(0xc380797b),
  2668. 119: uint32(0x4426b238),
  2669. 120: uint32(0x82a481ed),
  2670. 121: uint32(0x05024aae),
  2671. 122: uint32(0x5698112a),
  2672. 123: uint32(0xd13eda69),
  2673. 124: uint32(0xf1aca622),
  2674. 125: uint32(0x760a6d61),
  2675. 126: uint32(0x259036e5),
  2676. 127: uint32(0xa236fda6),
  2677. 128: uint32(0xba8ccbe8),
  2678. 129: uint32(0x3d2a00ab),
  2679. 130: uint32(0x6eb05b2f),
  2680. 131: uint32(0xe916906c),
  2681. 132: uint32(0xc984ec27),
  2682. 133: uint32(0x4e222764),
  2683. 134: uint32(0x1db87ce0),
  2684. 135: uint32(0x9a1eb7a3),
  2685. 136: uint32(0x5c9c8476),
  2686. 137: uint32(0xdb3a4f35),
  2687. 138: uint32(0x88a014b1),
  2688. 139: uint32(0x0f06dff2),
  2689. 140: uint32(0x2f94a3b9),
  2690. 141: uint32(0xa83268fa),
  2691. 142: uint32(0xfba8337e),
  2692. 143: uint32(0x7c0ef83d),
  2693. 144: uint32(0xaddd5295),
  2694. 145: uint32(0x2a7b99d6),
  2695. 146: uint32(0x79e1c252),
  2696. 147: uint32(0xfe470911),
  2697. 148: uint32(0xded5755a),
  2698. 149: uint32(0x5973be19),
  2699. 150: uint32(0x0ae9e59d),
  2700. 151: uint32(0x8d4f2ede),
  2701. 152: uint32(0x4bcd1d0b),
  2702. 153: uint32(0xcc6bd648),
  2703. 154: uint32(0x9ff18dcc),
  2704. 155: uint32(0x1857468f),
  2705. 156: uint32(0x38c53ac4),
  2706. 157: uint32(0xbf63f187),
  2707. 158: uint32(0xecf9aa03),
  2708. 159: uint32(0x6b5f6140),
  2709. 160: uint32(0x942ff912),
  2710. 161: uint32(0x13893251),
  2711. 162: uint32(0x401369d5),
  2712. 163: uint32(0xc7b5a296),
  2713. 164: uint32(0xe727dedd),
  2714. 165: uint32(0x6081159e),
  2715. 166: uint32(0x331b4e1a),
  2716. 167: uint32(0xb4bd8559),
  2717. 168: uint32(0x723fb68c),
  2718. 169: uint32(0xf5997dcf),
  2719. 170: uint32(0xa603264b),
  2720. 171: uint32(0x21a5ed08),
  2721. 172: uint32(0x01379143),
  2722. 173: uint32(0x86915a00),
  2723. 174: uint32(0xd50b0184),
  2724. 175: uint32(0x52adcac7),
  2725. 176: uint32(0x837e606f),
  2726. 177: uint32(0x04d8ab2c),
  2727. 178: uint32(0x5742f0a8),
  2728. 179: uint32(0xd0e43beb),
  2729. 180: uint32(0xf07647a0),
  2730. 181: uint32(0x77d08ce3),
  2731. 182: uint32(0x244ad767),
  2732. 183: uint32(0xa3ec1c24),
  2733. 184: uint32(0x656e2ff1),
  2734. 185: uint32(0xe2c8e4b2),
  2735. 186: uint32(0xb152bf36),
  2736. 187: uint32(0x36f47475),
  2737. 188: uint32(0x1666083e),
  2738. 189: uint32(0x91c0c37d),
  2739. 190: uint32(0xc25a98f9),
  2740. 191: uint32(0x45fc53ba),
  2741. 192: uint32(0xe7caae1c),
  2742. 193: uint32(0x606c655f),
  2743. 194: uint32(0x33f63edb),
  2744. 195: uint32(0xb450f598),
  2745. 196: uint32(0x94c289d3),
  2746. 197: uint32(0x13644290),
  2747. 198: uint32(0x40fe1914),
  2748. 199: uint32(0xc758d257),
  2749. 200: uint32(0x01dae182),
  2750. 201: uint32(0x867c2ac1),
  2751. 202: uint32(0xd5e67145),
  2752. 203: uint32(0x5240ba06),
  2753. 204: uint32(0x72d2c64d),
  2754. 205: uint32(0xf5740d0e),
  2755. 206: uint32(0xa6ee568a),
  2756. 207: uint32(0x21489dc9),
  2757. 208: uint32(0xf09b3761),
  2758. 209: uint32(0x773dfc22),
  2759. 210: uint32(0x24a7a7a6),
  2760. 211: uint32(0xa3016ce5),
  2761. 212: uint32(0x839310ae),
  2762. 213: uint32(0x0435dbed),
  2763. 214: uint32(0x57af8069),
  2764. 215: uint32(0xd0094b2a),
  2765. 216: uint32(0x168b78ff),
  2766. 217: uint32(0x912db3bc),
  2767. 218: uint32(0xc2b7e838),
  2768. 219: uint32(0x4511237b),
  2769. 220: uint32(0x65835f30),
  2770. 221: uint32(0xe2259473),
  2771. 222: uint32(0xb1bfcff7),
  2772. 223: uint32(0x361904b4),
  2773. 224: uint32(0xc9699ce6),
  2774. 225: uint32(0x4ecf57a5),
  2775. 226: uint32(0x1d550c21),
  2776. 227: uint32(0x9af3c762),
  2777. 228: uint32(0xba61bb29),
  2778. 229: uint32(0x3dc7706a),
  2779. 230: uint32(0x6e5d2bee),
  2780. 231: uint32(0xe9fbe0ad),
  2781. 232: uint32(0x2f79d378),
  2782. 233: uint32(0xa8df183b),
  2783. 234: uint32(0xfb4543bf),
  2784. 235: uint32(0x7ce388fc),
  2785. 236: uint32(0x5c71f4b7),
  2786. 237: uint32(0xdbd73ff4),
  2787. 238: uint32(0x884d6470),
  2788. 239: uint32(0x0febaf33),
  2789. 240: uint32(0xde38059b),
  2790. 241: uint32(0x599eced8),
  2791. 242: uint32(0x0a04955c),
  2792. 243: uint32(0x8da25e1f),
  2793. 244: uint32(0xad302254),
  2794. 245: uint32(0x2a96e917),
  2795. 246: uint32(0x790cb293),
  2796. 247: uint32(0xfeaa79d0),
  2797. 248: uint32(0x38284a05),
  2798. 249: uint32(0xbf8e8146),
  2799. 250: uint32(0xec14dac2),
  2800. 251: uint32(0x6bb21181),
  2801. 252: uint32(0x4b206dca),
  2802. 253: uint32(0xcc86a689),
  2803. 254: uint32(0x9f1cfd0d),
  2804. 255: uint32(0x18ba364e),
  2805. },
  2806. }
  2807. var _crc_braid_big_table = [4][256]Tz_word_t{
  2808. 0: {
  2809. 1: uint32(0x43cba687),
  2810. 2: uint32(0xc7903cd4),
  2811. 3: uint32(0x845b9a53),
  2812. 4: uint32(0xcf270873),
  2813. 5: uint32(0x8cecaef4),
  2814. 6: uint32(0x08b734a7),
  2815. 7: uint32(0x4b7c9220),
  2816. 8: uint32(0x9e4f10e6),
  2817. 9: uint32(0xdd84b661),
  2818. 10: uint32(0x59df2c32),
  2819. 11: uint32(0x1a148ab5),
  2820. 12: uint32(0x51681895),
  2821. 13: uint32(0x12a3be12),
  2822. 14: uint32(0x96f82441),
  2823. 15: uint32(0xd53382c6),
  2824. 16: uint32(0x7d995117),
  2825. 17: uint32(0x3e52f790),
  2826. 18: uint32(0xba096dc3),
  2827. 19: uint32(0xf9c2cb44),
  2828. 20: uint32(0xb2be5964),
  2829. 21: uint32(0xf175ffe3),
  2830. 22: uint32(0x752e65b0),
  2831. 23: uint32(0x36e5c337),
  2832. 24: uint32(0xe3d641f1),
  2833. 25: uint32(0xa01de776),
  2834. 26: uint32(0x24467d25),
  2835. 27: uint32(0x678ddba2),
  2836. 28: uint32(0x2cf14982),
  2837. 29: uint32(0x6f3aef05),
  2838. 30: uint32(0xeb617556),
  2839. 31: uint32(0xa8aad3d1),
  2840. 32: uint32(0xfa32a32e),
  2841. 33: uint32(0xb9f905a9),
  2842. 34: uint32(0x3da29ffa),
  2843. 35: uint32(0x7e69397d),
  2844. 36: uint32(0x3515ab5d),
  2845. 37: uint32(0x76de0dda),
  2846. 38: uint32(0xf2859789),
  2847. 39: uint32(0xb14e310e),
  2848. 40: uint32(0x647db3c8),
  2849. 41: uint32(0x27b6154f),
  2850. 42: uint32(0xa3ed8f1c),
  2851. 43: uint32(0xe026299b),
  2852. 44: uint32(0xab5abbbb),
  2853. 45: uint32(0xe8911d3c),
  2854. 46: uint32(0x6cca876f),
  2855. 47: uint32(0x2f0121e8),
  2856. 48: uint32(0x87abf239),
  2857. 49: uint32(0xc46054be),
  2858. 50: uint32(0x403bceed),
  2859. 51: uint32(0x03f0686a),
  2860. 52: uint32(0x488cfa4a),
  2861. 53: uint32(0x0b475ccd),
  2862. 54: uint32(0x8f1cc69e),
  2863. 55: uint32(0xccd76019),
  2864. 56: uint32(0x19e4e2df),
  2865. 57: uint32(0x5a2f4458),
  2866. 58: uint32(0xde74de0b),
  2867. 59: uint32(0x9dbf788c),
  2868. 60: uint32(0xd6c3eaac),
  2869. 61: uint32(0x95084c2b),
  2870. 62: uint32(0x1153d678),
  2871. 63: uint32(0x529870ff),
  2872. 64: uint32(0xf465465d),
  2873. 65: uint32(0xb7aee0da),
  2874. 66: uint32(0x33f57a89),
  2875. 67: uint32(0x703edc0e),
  2876. 68: uint32(0x3b424e2e),
  2877. 69: uint32(0x7889e8a9),
  2878. 70: uint32(0xfcd272fa),
  2879. 71: uint32(0xbf19d47d),
  2880. 72: uint32(0x6a2a56bb),
  2881. 73: uint32(0x29e1f03c),
  2882. 74: uint32(0xadba6a6f),
  2883. 75: uint32(0xee71cce8),
  2884. 76: uint32(0xa50d5ec8),
  2885. 77: uint32(0xe6c6f84f),
  2886. 78: uint32(0x629d621c),
  2887. 79: uint32(0x2156c49b),
  2888. 80: uint32(0x89fc174a),
  2889. 81: uint32(0xca37b1cd),
  2890. 82: uint32(0x4e6c2b9e),
  2891. 83: uint32(0x0da78d19),
  2892. 84: uint32(0x46db1f39),
  2893. 85: uint32(0x0510b9be),
  2894. 86: uint32(0x814b23ed),
  2895. 87: uint32(0xc280856a),
  2896. 88: uint32(0x17b307ac),
  2897. 89: uint32(0x5478a12b),
  2898. 90: uint32(0xd0233b78),
  2899. 91: uint32(0x93e89dff),
  2900. 92: uint32(0xd8940fdf),
  2901. 93: uint32(0x9b5fa958),
  2902. 94: uint32(0x1f04330b),
  2903. 95: uint32(0x5ccf958c),
  2904. 96: uint32(0x0e57e573),
  2905. 97: uint32(0x4d9c43f4),
  2906. 98: uint32(0xc9c7d9a7),
  2907. 99: uint32(0x8a0c7f20),
  2908. 100: uint32(0xc170ed00),
  2909. 101: uint32(0x82bb4b87),
  2910. 102: uint32(0x06e0d1d4),
  2911. 103: uint32(0x452b7753),
  2912. 104: uint32(0x9018f595),
  2913. 105: uint32(0xd3d35312),
  2914. 106: uint32(0x5788c941),
  2915. 107: uint32(0x14436fc6),
  2916. 108: uint32(0x5f3ffde6),
  2917. 109: uint32(0x1cf45b61),
  2918. 110: uint32(0x98afc132),
  2919. 111: uint32(0xdb6467b5),
  2920. 112: uint32(0x73ceb464),
  2921. 113: uint32(0x300512e3),
  2922. 114: uint32(0xb45e88b0),
  2923. 115: uint32(0xf7952e37),
  2924. 116: uint32(0xbce9bc17),
  2925. 117: uint32(0xff221a90),
  2926. 118: uint32(0x7b7980c3),
  2927. 119: uint32(0x38b22644),
  2928. 120: uint32(0xed81a482),
  2929. 121: uint32(0xae4a0205),
  2930. 122: uint32(0x2a119856),
  2931. 123: uint32(0x69da3ed1),
  2932. 124: uint32(0x22a6acf1),
  2933. 125: uint32(0x616d0a76),
  2934. 126: uint32(0xe5369025),
  2935. 127: uint32(0xa6fd36a2),
  2936. 128: uint32(0xe8cb8cba),
  2937. 129: uint32(0xab002a3d),
  2938. 130: uint32(0x2f5bb06e),
  2939. 131: uint32(0x6c9016e9),
  2940. 132: uint32(0x27ec84c9),
  2941. 133: uint32(0x6427224e),
  2942. 134: uint32(0xe07cb81d),
  2943. 135: uint32(0xa3b71e9a),
  2944. 136: uint32(0x76849c5c),
  2945. 137: uint32(0x354f3adb),
  2946. 138: uint32(0xb114a088),
  2947. 139: uint32(0xf2df060f),
  2948. 140: uint32(0xb9a3942f),
  2949. 141: uint32(0xfa6832a8),
  2950. 142: uint32(0x7e33a8fb),
  2951. 143: uint32(0x3df80e7c),
  2952. 144: uint32(0x9552ddad),
  2953. 145: uint32(0xd6997b2a),
  2954. 146: uint32(0x52c2e179),
  2955. 147: uint32(0x110947fe),
  2956. 148: uint32(0x5a75d5de),
  2957. 149: uint32(0x19be7359),
  2958. 150: uint32(0x9de5e90a),
  2959. 151: uint32(0xde2e4f8d),
  2960. 152: uint32(0x0b1dcd4b),
  2961. 153: uint32(0x48d66bcc),
  2962. 154: uint32(0xcc8df19f),
  2963. 155: uint32(0x8f465718),
  2964. 156: uint32(0xc43ac538),
  2965. 157: uint32(0x87f163bf),
  2966. 158: uint32(0x03aaf9ec),
  2967. 159: uint32(0x40615f6b),
  2968. 160: uint32(0x12f92f94),
  2969. 161: uint32(0x51328913),
  2970. 162: uint32(0xd5691340),
  2971. 163: uint32(0x96a2b5c7),
  2972. 164: uint32(0xddde27e7),
  2973. 165: uint32(0x9e158160),
  2974. 166: uint32(0x1a4e1b33),
  2975. 167: uint32(0x5985bdb4),
  2976. 168: uint32(0x8cb63f72),
  2977. 169: uint32(0xcf7d99f5),
  2978. 170: uint32(0x4b2603a6),
  2979. 171: uint32(0x08eda521),
  2980. 172: uint32(0x43913701),
  2981. 173: uint32(0x005a9186),
  2982. 174: uint32(0x84010bd5),
  2983. 175: uint32(0xc7caad52),
  2984. 176: uint32(0x6f607e83),
  2985. 177: uint32(0x2cabd804),
  2986. 178: uint32(0xa8f04257),
  2987. 179: uint32(0xeb3be4d0),
  2988. 180: uint32(0xa04776f0),
  2989. 181: uint32(0xe38cd077),
  2990. 182: uint32(0x67d74a24),
  2991. 183: uint32(0x241ceca3),
  2992. 184: uint32(0xf12f6e65),
  2993. 185: uint32(0xb2e4c8e2),
  2994. 186: uint32(0x36bf52b1),
  2995. 187: uint32(0x7574f436),
  2996. 188: uint32(0x3e086616),
  2997. 189: uint32(0x7dc3c091),
  2998. 190: uint32(0xf9985ac2),
  2999. 191: uint32(0xba53fc45),
  3000. 192: uint32(0x1caecae7),
  3001. 193: uint32(0x5f656c60),
  3002. 194: uint32(0xdb3ef633),
  3003. 195: uint32(0x98f550b4),
  3004. 196: uint32(0xd389c294),
  3005. 197: uint32(0x90426413),
  3006. 198: uint32(0x1419fe40),
  3007. 199: uint32(0x57d258c7),
  3008. 200: uint32(0x82e1da01),
  3009. 201: uint32(0xc12a7c86),
  3010. 202: uint32(0x4571e6d5),
  3011. 203: uint32(0x06ba4052),
  3012. 204: uint32(0x4dc6d272),
  3013. 205: uint32(0x0e0d74f5),
  3014. 206: uint32(0x8a56eea6),
  3015. 207: uint32(0xc99d4821),
  3016. 208: uint32(0x61379bf0),
  3017. 209: uint32(0x22fc3d77),
  3018. 210: uint32(0xa6a7a724),
  3019. 211: uint32(0xe56c01a3),
  3020. 212: uint32(0xae109383),
  3021. 213: uint32(0xeddb3504),
  3022. 214: uint32(0x6980af57),
  3023. 215: uint32(0x2a4b09d0),
  3024. 216: uint32(0xff788b16),
  3025. 217: uint32(0xbcb32d91),
  3026. 218: uint32(0x38e8b7c2),
  3027. 219: uint32(0x7b231145),
  3028. 220: uint32(0x305f8365),
  3029. 221: uint32(0x739425e2),
  3030. 222: uint32(0xf7cfbfb1),
  3031. 223: uint32(0xb4041936),
  3032. 224: uint32(0xe69c69c9),
  3033. 225: uint32(0xa557cf4e),
  3034. 226: uint32(0x210c551d),
  3035. 227: uint32(0x62c7f39a),
  3036. 228: uint32(0x29bb61ba),
  3037. 229: uint32(0x6a70c73d),
  3038. 230: uint32(0xee2b5d6e),
  3039. 231: uint32(0xade0fbe9),
  3040. 232: uint32(0x78d3792f),
  3041. 233: uint32(0x3b18dfa8),
  3042. 234: uint32(0xbf4345fb),
  3043. 235: uint32(0xfc88e37c),
  3044. 236: uint32(0xb7f4715c),
  3045. 237: uint32(0xf43fd7db),
  3046. 238: uint32(0x70644d88),
  3047. 239: uint32(0x33afeb0f),
  3048. 240: uint32(0x9b0538de),
  3049. 241: uint32(0xd8ce9e59),
  3050. 242: uint32(0x5c95040a),
  3051. 243: uint32(0x1f5ea28d),
  3052. 244: uint32(0x542230ad),
  3053. 245: uint32(0x17e9962a),
  3054. 246: uint32(0x93b20c79),
  3055. 247: uint32(0xd079aafe),
  3056. 248: uint32(0x054a2838),
  3057. 249: uint32(0x46818ebf),
  3058. 250: uint32(0xc2da14ec),
  3059. 251: uint32(0x8111b26b),
  3060. 252: uint32(0xca6d204b),
  3061. 253: uint32(0x89a686cc),
  3062. 254: uint32(0x0dfd1c9f),
  3063. 255: uint32(0x4e36ba18),
  3064. },
  3065. 1: {
  3066. 1: uint32(0xe1b652ef),
  3067. 2: uint32(0x836bd405),
  3068. 3: uint32(0x62dd86ea),
  3069. 4: uint32(0x06d7a80b),
  3070. 5: uint32(0xe761fae4),
  3071. 6: uint32(0x85bc7c0e),
  3072. 7: uint32(0x640a2ee1),
  3073. 8: uint32(0x0cae5117),
  3074. 9: uint32(0xed1803f8),
  3075. 10: uint32(0x8fc58512),
  3076. 11: uint32(0x6e73d7fd),
  3077. 12: uint32(0x0a79f91c),
  3078. 13: uint32(0xebcfabf3),
  3079. 14: uint32(0x89122d19),
  3080. 15: uint32(0x68a47ff6),
  3081. 16: uint32(0x185ca32e),
  3082. 17: uint32(0xf9eaf1c1),
  3083. 18: uint32(0x9b37772b),
  3084. 19: uint32(0x7a8125c4),
  3085. 20: uint32(0x1e8b0b25),
  3086. 21: uint32(0xff3d59ca),
  3087. 22: uint32(0x9de0df20),
  3088. 23: uint32(0x7c568dcf),
  3089. 24: uint32(0x14f2f239),
  3090. 25: uint32(0xf544a0d6),
  3091. 26: uint32(0x9799263c),
  3092. 27: uint32(0x762f74d3),
  3093. 28: uint32(0x12255a32),
  3094. 29: uint32(0xf39308dd),
  3095. 30: uint32(0x914e8e37),
  3096. 31: uint32(0x70f8dcd8),
  3097. 32: uint32(0x30b8465d),
  3098. 33: uint32(0xd10e14b2),
  3099. 34: uint32(0xb3d39258),
  3100. 35: uint32(0x5265c0b7),
  3101. 36: uint32(0x366fee56),
  3102. 37: uint32(0xd7d9bcb9),
  3103. 38: uint32(0xb5043a53),
  3104. 39: uint32(0x54b268bc),
  3105. 40: uint32(0x3c16174a),
  3106. 41: uint32(0xdda045a5),
  3107. 42: uint32(0xbf7dc34f),
  3108. 43: uint32(0x5ecb91a0),
  3109. 44: uint32(0x3ac1bf41),
  3110. 45: uint32(0xdb77edae),
  3111. 46: uint32(0xb9aa6b44),
  3112. 47: uint32(0x581c39ab),
  3113. 48: uint32(0x28e4e573),
  3114. 49: uint32(0xc952b79c),
  3115. 50: uint32(0xab8f3176),
  3116. 51: uint32(0x4a396399),
  3117. 52: uint32(0x2e334d78),
  3118. 53: uint32(0xcf851f97),
  3119. 54: uint32(0xad58997d),
  3120. 55: uint32(0x4ceecb92),
  3121. 56: uint32(0x244ab464),
  3122. 57: uint32(0xc5fce68b),
  3123. 58: uint32(0xa7216061),
  3124. 59: uint32(0x4697328e),
  3125. 60: uint32(0x229d1c6f),
  3126. 61: uint32(0xc32b4e80),
  3127. 62: uint32(0xa1f6c86a),
  3128. 63: uint32(0x40409a85),
  3129. 64: uint32(0x60708dba),
  3130. 65: uint32(0x81c6df55),
  3131. 66: uint32(0xe31b59bf),
  3132. 67: uint32(0x02ad0b50),
  3133. 68: uint32(0x66a725b1),
  3134. 69: uint32(0x8711775e),
  3135. 70: uint32(0xe5ccf1b4),
  3136. 71: uint32(0x047aa35b),
  3137. 72: uint32(0x6cdedcad),
  3138. 73: uint32(0x8d688e42),
  3139. 74: uint32(0xefb508a8),
  3140. 75: uint32(0x0e035a47),
  3141. 76: uint32(0x6a0974a6),
  3142. 77: uint32(0x8bbf2649),
  3143. 78: uint32(0xe962a0a3),
  3144. 79: uint32(0x08d4f24c),
  3145. 80: uint32(0x782c2e94),
  3146. 81: uint32(0x999a7c7b),
  3147. 82: uint32(0xfb47fa91),
  3148. 83: uint32(0x1af1a87e),
  3149. 84: uint32(0x7efb869f),
  3150. 85: uint32(0x9f4dd470),
  3151. 86: uint32(0xfd90529a),
  3152. 87: uint32(0x1c260075),
  3153. 88: uint32(0x74827f83),
  3154. 89: uint32(0x95342d6c),
  3155. 90: uint32(0xf7e9ab86),
  3156. 91: uint32(0x165ff969),
  3157. 92: uint32(0x7255d788),
  3158. 93: uint32(0x93e38567),
  3159. 94: uint32(0xf13e038d),
  3160. 95: uint32(0x10885162),
  3161. 96: uint32(0x50c8cbe7),
  3162. 97: uint32(0xb17e9908),
  3163. 98: uint32(0xd3a31fe2),
  3164. 99: uint32(0x32154d0d),
  3165. 100: uint32(0x561f63ec),
  3166. 101: uint32(0xb7a93103),
  3167. 102: uint32(0xd574b7e9),
  3168. 103: uint32(0x34c2e506),
  3169. 104: uint32(0x5c669af0),
  3170. 105: uint32(0xbdd0c81f),
  3171. 106: uint32(0xdf0d4ef5),
  3172. 107: uint32(0x3ebb1c1a),
  3173. 108: uint32(0x5ab132fb),
  3174. 109: uint32(0xbb076014),
  3175. 110: uint32(0xd9dae6fe),
  3176. 111: uint32(0x386cb411),
  3177. 112: uint32(0x489468c9),
  3178. 113: uint32(0xa9223a26),
  3179. 114: uint32(0xcbffbccc),
  3180. 115: uint32(0x2a49ee23),
  3181. 116: uint32(0x4e43c0c2),
  3182. 117: uint32(0xaff5922d),
  3183. 118: uint32(0xcd2814c7),
  3184. 119: uint32(0x2c9e4628),
  3185. 120: uint32(0x443a39de),
  3186. 121: uint32(0xa58c6b31),
  3187. 122: uint32(0xc751eddb),
  3188. 123: uint32(0x26e7bf34),
  3189. 124: uint32(0x42ed91d5),
  3190. 125: uint32(0xa35bc33a),
  3191. 126: uint32(0xc18645d0),
  3192. 127: uint32(0x2030173f),
  3193. 128: uint32(0x81e66bae),
  3194. 129: uint32(0x60503941),
  3195. 130: uint32(0x028dbfab),
  3196. 131: uint32(0xe33bed44),
  3197. 132: uint32(0x8731c3a5),
  3198. 133: uint32(0x6687914a),
  3199. 134: uint32(0x045a17a0),
  3200. 135: uint32(0xe5ec454f),
  3201. 136: uint32(0x8d483ab9),
  3202. 137: uint32(0x6cfe6856),
  3203. 138: uint32(0x0e23eebc),
  3204. 139: uint32(0xef95bc53),
  3205. 140: uint32(0x8b9f92b2),
  3206. 141: uint32(0x6a29c05d),
  3207. 142: uint32(0x08f446b7),
  3208. 143: uint32(0xe9421458),
  3209. 144: uint32(0x99bac880),
  3210. 145: uint32(0x780c9a6f),
  3211. 146: uint32(0x1ad11c85),
  3212. 147: uint32(0xfb674e6a),
  3213. 148: uint32(0x9f6d608b),
  3214. 149: uint32(0x7edb3264),
  3215. 150: uint32(0x1c06b48e),
  3216. 151: uint32(0xfdb0e661),
  3217. 152: uint32(0x95149997),
  3218. 153: uint32(0x74a2cb78),
  3219. 154: uint32(0x167f4d92),
  3220. 155: uint32(0xf7c91f7d),
  3221. 156: uint32(0x93c3319c),
  3222. 157: uint32(0x72756373),
  3223. 158: uint32(0x10a8e599),
  3224. 159: uint32(0xf11eb776),
  3225. 160: uint32(0xb15e2df3),
  3226. 161: uint32(0x50e87f1c),
  3227. 162: uint32(0x3235f9f6),
  3228. 163: uint32(0xd383ab19),
  3229. 164: uint32(0xb78985f8),
  3230. 165: uint32(0x563fd717),
  3231. 166: uint32(0x34e251fd),
  3232. 167: uint32(0xd5540312),
  3233. 168: uint32(0xbdf07ce4),
  3234. 169: uint32(0x5c462e0b),
  3235. 170: uint32(0x3e9ba8e1),
  3236. 171: uint32(0xdf2dfa0e),
  3237. 172: uint32(0xbb27d4ef),
  3238. 173: uint32(0x5a918600),
  3239. 174: uint32(0x384c00ea),
  3240. 175: uint32(0xd9fa5205),
  3241. 176: uint32(0xa9028edd),
  3242. 177: uint32(0x48b4dc32),
  3243. 178: uint32(0x2a695ad8),
  3244. 179: uint32(0xcbdf0837),
  3245. 180: uint32(0xafd526d6),
  3246. 181: uint32(0x4e637439),
  3247. 182: uint32(0x2cbef2d3),
  3248. 183: uint32(0xcd08a03c),
  3249. 184: uint32(0xa5acdfca),
  3250. 185: uint32(0x441a8d25),
  3251. 186: uint32(0x26c70bcf),
  3252. 187: uint32(0xc7715920),
  3253. 188: uint32(0xa37b77c1),
  3254. 189: uint32(0x42cd252e),
  3255. 190: uint32(0x2010a3c4),
  3256. 191: uint32(0xc1a6f12b),
  3257. 192: uint32(0xe196e614),
  3258. 193: uint32(0x0020b4fb),
  3259. 194: uint32(0x62fd3211),
  3260. 195: uint32(0x834b60fe),
  3261. 196: uint32(0xe7414e1f),
  3262. 197: uint32(0x06f71cf0),
  3263. 198: uint32(0x642a9a1a),
  3264. 199: uint32(0x859cc8f5),
  3265. 200: uint32(0xed38b703),
  3266. 201: uint32(0x0c8ee5ec),
  3267. 202: uint32(0x6e536306),
  3268. 203: uint32(0x8fe531e9),
  3269. 204: uint32(0xebef1f08),
  3270. 205: uint32(0x0a594de7),
  3271. 206: uint32(0x6884cb0d),
  3272. 207: uint32(0x893299e2),
  3273. 208: uint32(0xf9ca453a),
  3274. 209: uint32(0x187c17d5),
  3275. 210: uint32(0x7aa1913f),
  3276. 211: uint32(0x9b17c3d0),
  3277. 212: uint32(0xff1ded31),
  3278. 213: uint32(0x1eabbfde),
  3279. 214: uint32(0x7c763934),
  3280. 215: uint32(0x9dc06bdb),
  3281. 216: uint32(0xf564142d),
  3282. 217: uint32(0x14d246c2),
  3283. 218: uint32(0x760fc028),
  3284. 219: uint32(0x97b992c7),
  3285. 220: uint32(0xf3b3bc26),
  3286. 221: uint32(0x1205eec9),
  3287. 222: uint32(0x70d86823),
  3288. 223: uint32(0x916e3acc),
  3289. 224: uint32(0xd12ea049),
  3290. 225: uint32(0x3098f2a6),
  3291. 226: uint32(0x5245744c),
  3292. 227: uint32(0xb3f326a3),
  3293. 228: uint32(0xd7f90842),
  3294. 229: uint32(0x364f5aad),
  3295. 230: uint32(0x5492dc47),
  3296. 231: uint32(0xb5248ea8),
  3297. 232: uint32(0xdd80f15e),
  3298. 233: uint32(0x3c36a3b1),
  3299. 234: uint32(0x5eeb255b),
  3300. 235: uint32(0xbf5d77b4),
  3301. 236: uint32(0xdb575955),
  3302. 237: uint32(0x3ae10bba),
  3303. 238: uint32(0x583c8d50),
  3304. 239: uint32(0xb98adfbf),
  3305. 240: uint32(0xc9720367),
  3306. 241: uint32(0x28c45188),
  3307. 242: uint32(0x4a19d762),
  3308. 243: uint32(0xabaf858d),
  3309. 244: uint32(0xcfa5ab6c),
  3310. 245: uint32(0x2e13f983),
  3311. 246: uint32(0x4cce7f69),
  3312. 247: uint32(0xad782d86),
  3313. 248: uint32(0xc5dc5270),
  3314. 249: uint32(0x246a009f),
  3315. 250: uint32(0x46b78675),
  3316. 251: uint32(0xa701d49a),
  3317. 252: uint32(0xc30bfa7b),
  3318. 253: uint32(0x22bda894),
  3319. 254: uint32(0x40602e7e),
  3320. 255: uint32(0xa1d67c91),
  3321. },
  3322. 2: {
  3323. 1: uint32(0x5880e2d7),
  3324. 2: uint32(0xf106b474),
  3325. 3: uint32(0xa98656a3),
  3326. 4: uint32(0xe20d68e9),
  3327. 5: uint32(0xba8d8a3e),
  3328. 6: uint32(0x130bdc9d),
  3329. 7: uint32(0x4b8b3e4a),
  3330. 8: uint32(0x851da109),
  3331. 9: uint32(0xdd9d43de),
  3332. 10: uint32(0x741b157d),
  3333. 11: uint32(0x2c9bf7aa),
  3334. 12: uint32(0x6710c9e0),
  3335. 13: uint32(0x3f902b37),
  3336. 14: uint32(0x96167d94),
  3337. 15: uint32(0xce969f43),
  3338. 16: uint32(0x0a3b4213),
  3339. 17: uint32(0x52bba0c4),
  3340. 18: uint32(0xfb3df667),
  3341. 19: uint32(0xa3bd14b0),
  3342. 20: uint32(0xe8362afa),
  3343. 21: uint32(0xb0b6c82d),
  3344. 22: uint32(0x19309e8e),
  3345. 23: uint32(0x41b07c59),
  3346. 24: uint32(0x8f26e31a),
  3347. 25: uint32(0xd7a601cd),
  3348. 26: uint32(0x7e20576e),
  3349. 27: uint32(0x26a0b5b9),
  3350. 28: uint32(0x6d2b8bf3),
  3351. 29: uint32(0x35ab6924),
  3352. 30: uint32(0x9c2d3f87),
  3353. 31: uint32(0xc4addd50),
  3354. 32: uint32(0x14768426),
  3355. 33: uint32(0x4cf666f1),
  3356. 34: uint32(0xe5703052),
  3357. 35: uint32(0xbdf0d285),
  3358. 36: uint32(0xf67beccf),
  3359. 37: uint32(0xaefb0e18),
  3360. 38: uint32(0x077d58bb),
  3361. 39: uint32(0x5ffdba6c),
  3362. 40: uint32(0x916b252f),
  3363. 41: uint32(0xc9ebc7f8),
  3364. 42: uint32(0x606d915b),
  3365. 43: uint32(0x38ed738c),
  3366. 44: uint32(0x73664dc6),
  3367. 45: uint32(0x2be6af11),
  3368. 46: uint32(0x8260f9b2),
  3369. 47: uint32(0xdae01b65),
  3370. 48: uint32(0x1e4dc635),
  3371. 49: uint32(0x46cd24e2),
  3372. 50: uint32(0xef4b7241),
  3373. 51: uint32(0xb7cb9096),
  3374. 52: uint32(0xfc40aedc),
  3375. 53: uint32(0xa4c04c0b),
  3376. 54: uint32(0x0d461aa8),
  3377. 55: uint32(0x55c6f87f),
  3378. 56: uint32(0x9b50673c),
  3379. 57: uint32(0xc3d085eb),
  3380. 58: uint32(0x6a56d348),
  3381. 59: uint32(0x32d6319f),
  3382. 60: uint32(0x795d0fd5),
  3383. 61: uint32(0x21dded02),
  3384. 62: uint32(0x885bbba1),
  3385. 63: uint32(0xd0db5976),
  3386. 64: uint32(0x28ec084d),
  3387. 65: uint32(0x706cea9a),
  3388. 66: uint32(0xd9eabc39),
  3389. 67: uint32(0x816a5eee),
  3390. 68: uint32(0xcae160a4),
  3391. 69: uint32(0x92618273),
  3392. 70: uint32(0x3be7d4d0),
  3393. 71: uint32(0x63673607),
  3394. 72: uint32(0xadf1a944),
  3395. 73: uint32(0xf5714b93),
  3396. 74: uint32(0x5cf71d30),
  3397. 75: uint32(0x0477ffe7),
  3398. 76: uint32(0x4ffcc1ad),
  3399. 77: uint32(0x177c237a),
  3400. 78: uint32(0xbefa75d9),
  3401. 79: uint32(0xe67a970e),
  3402. 80: uint32(0x22d74a5e),
  3403. 81: uint32(0x7a57a889),
  3404. 82: uint32(0xd3d1fe2a),
  3405. 83: uint32(0x8b511cfd),
  3406. 84: uint32(0xc0da22b7),
  3407. 85: uint32(0x985ac060),
  3408. 86: uint32(0x31dc96c3),
  3409. 87: uint32(0x695c7414),
  3410. 88: uint32(0xa7caeb57),
  3411. 89: uint32(0xff4a0980),
  3412. 90: uint32(0x56cc5f23),
  3413. 91: uint32(0x0e4cbdf4),
  3414. 92: uint32(0x45c783be),
  3415. 93: uint32(0x1d476169),
  3416. 94: uint32(0xb4c137ca),
  3417. 95: uint32(0xec41d51d),
  3418. 96: uint32(0x3c9a8c6b),
  3419. 97: uint32(0x641a6ebc),
  3420. 98: uint32(0xcd9c381f),
  3421. 99: uint32(0x951cdac8),
  3422. 100: uint32(0xde97e482),
  3423. 101: uint32(0x86170655),
  3424. 102: uint32(0x2f9150f6),
  3425. 103: uint32(0x7711b221),
  3426. 104: uint32(0xb9872d62),
  3427. 105: uint32(0xe107cfb5),
  3428. 106: uint32(0x48819916),
  3429. 107: uint32(0x10017bc1),
  3430. 108: uint32(0x5b8a458b),
  3431. 109: uint32(0x030aa75c),
  3432. 110: uint32(0xaa8cf1ff),
  3433. 111: uint32(0xf20c1328),
  3434. 112: uint32(0x36a1ce78),
  3435. 113: uint32(0x6e212caf),
  3436. 114: uint32(0xc7a77a0c),
  3437. 115: uint32(0x9f2798db),
  3438. 116: uint32(0xd4aca691),
  3439. 117: uint32(0x8c2c4446),
  3440. 118: uint32(0x25aa12e5),
  3441. 119: uint32(0x7d2af032),
  3442. 120: uint32(0xb3bc6f71),
  3443. 121: uint32(0xeb3c8da6),
  3444. 122: uint32(0x42badb05),
  3445. 123: uint32(0x1a3a39d2),
  3446. 124: uint32(0x51b10798),
  3447. 125: uint32(0x0931e54f),
  3448. 126: uint32(0xa0b7b3ec),
  3449. 127: uint32(0xf837513b),
  3450. 128: uint32(0x50d8119a),
  3451. 129: uint32(0x0858f34d),
  3452. 130: uint32(0xa1dea5ee),
  3453. 131: uint32(0xf95e4739),
  3454. 132: uint32(0xb2d57973),
  3455. 133: uint32(0xea559ba4),
  3456. 134: uint32(0x43d3cd07),
  3457. 135: uint32(0x1b532fd0),
  3458. 136: uint32(0xd5c5b093),
  3459. 137: uint32(0x8d455244),
  3460. 138: uint32(0x24c304e7),
  3461. 139: uint32(0x7c43e630),
  3462. 140: uint32(0x37c8d87a),
  3463. 141: uint32(0x6f483aad),
  3464. 142: uint32(0xc6ce6c0e),
  3465. 143: uint32(0x9e4e8ed9),
  3466. 144: uint32(0x5ae35389),
  3467. 145: uint32(0x0263b15e),
  3468. 146: uint32(0xabe5e7fd),
  3469. 147: uint32(0xf365052a),
  3470. 148: uint32(0xb8ee3b60),
  3471. 149: uint32(0xe06ed9b7),
  3472. 150: uint32(0x49e88f14),
  3473. 151: uint32(0x11686dc3),
  3474. 152: uint32(0xdffef280),
  3475. 153: uint32(0x877e1057),
  3476. 154: uint32(0x2ef846f4),
  3477. 155: uint32(0x7678a423),
  3478. 156: uint32(0x3df39a69),
  3479. 157: uint32(0x657378be),
  3480. 158: uint32(0xccf52e1d),
  3481. 159: uint32(0x9475ccca),
  3482. 160: uint32(0x44ae95bc),
  3483. 161: uint32(0x1c2e776b),
  3484. 162: uint32(0xb5a821c8),
  3485. 163: uint32(0xed28c31f),
  3486. 164: uint32(0xa6a3fd55),
  3487. 165: uint32(0xfe231f82),
  3488. 166: uint32(0x57a54921),
  3489. 167: uint32(0x0f25abf6),
  3490. 168: uint32(0xc1b334b5),
  3491. 169: uint32(0x9933d662),
  3492. 170: uint32(0x30b580c1),
  3493. 171: uint32(0x68356216),
  3494. 172: uint32(0x23be5c5c),
  3495. 173: uint32(0x7b3ebe8b),
  3496. 174: uint32(0xd2b8e828),
  3497. 175: uint32(0x8a380aff),
  3498. 176: uint32(0x4e95d7af),
  3499. 177: uint32(0x16153578),
  3500. 178: uint32(0xbf9363db),
  3501. 179: uint32(0xe713810c),
  3502. 180: uint32(0xac98bf46),
  3503. 181: uint32(0xf4185d91),
  3504. 182: uint32(0x5d9e0b32),
  3505. 183: uint32(0x051ee9e5),
  3506. 184: uint32(0xcb8876a6),
  3507. 185: uint32(0x93089471),
  3508. 186: uint32(0x3a8ec2d2),
  3509. 187: uint32(0x620e2005),
  3510. 188: uint32(0x29851e4f),
  3511. 189: uint32(0x7105fc98),
  3512. 190: uint32(0xd883aa3b),
  3513. 191: uint32(0x800348ec),
  3514. 192: uint32(0x783419d7),
  3515. 193: uint32(0x20b4fb00),
  3516. 194: uint32(0x8932ada3),
  3517. 195: uint32(0xd1b24f74),
  3518. 196: uint32(0x9a39713e),
  3519. 197: uint32(0xc2b993e9),
  3520. 198: uint32(0x6b3fc54a),
  3521. 199: uint32(0x33bf279d),
  3522. 200: uint32(0xfd29b8de),
  3523. 201: uint32(0xa5a95a09),
  3524. 202: uint32(0x0c2f0caa),
  3525. 203: uint32(0x54afee7d),
  3526. 204: uint32(0x1f24d037),
  3527. 205: uint32(0x47a432e0),
  3528. 206: uint32(0xee226443),
  3529. 207: uint32(0xb6a28694),
  3530. 208: uint32(0x720f5bc4),
  3531. 209: uint32(0x2a8fb913),
  3532. 210: uint32(0x8309efb0),
  3533. 211: uint32(0xdb890d67),
  3534. 212: uint32(0x9002332d),
  3535. 213: uint32(0xc882d1fa),
  3536. 214: uint32(0x61048759),
  3537. 215: uint32(0x3984658e),
  3538. 216: uint32(0xf712facd),
  3539. 217: uint32(0xaf92181a),
  3540. 218: uint32(0x06144eb9),
  3541. 219: uint32(0x5e94ac6e),
  3542. 220: uint32(0x151f9224),
  3543. 221: uint32(0x4d9f70f3),
  3544. 222: uint32(0xe4192650),
  3545. 223: uint32(0xbc99c487),
  3546. 224: uint32(0x6c429df1),
  3547. 225: uint32(0x34c27f26),
  3548. 226: uint32(0x9d442985),
  3549. 227: uint32(0xc5c4cb52),
  3550. 228: uint32(0x8e4ff518),
  3551. 229: uint32(0xd6cf17cf),
  3552. 230: uint32(0x7f49416c),
  3553. 231: uint32(0x27c9a3bb),
  3554. 232: uint32(0xe95f3cf8),
  3555. 233: uint32(0xb1dfde2f),
  3556. 234: uint32(0x1859888c),
  3557. 235: uint32(0x40d96a5b),
  3558. 236: uint32(0x0b525411),
  3559. 237: uint32(0x53d2b6c6),
  3560. 238: uint32(0xfa54e065),
  3561. 239: uint32(0xa2d402b2),
  3562. 240: uint32(0x6679dfe2),
  3563. 241: uint32(0x3ef93d35),
  3564. 242: uint32(0x977f6b96),
  3565. 243: uint32(0xcfff8941),
  3566. 244: uint32(0x8474b70b),
  3567. 245: uint32(0xdcf455dc),
  3568. 246: uint32(0x7572037f),
  3569. 247: uint32(0x2df2e1a8),
  3570. 248: uint32(0xe3647eeb),
  3571. 249: uint32(0xbbe49c3c),
  3572. 250: uint32(0x1262ca9f),
  3573. 251: uint32(0x4ae22848),
  3574. 252: uint32(0x01691602),
  3575. 253: uint32(0x59e9f4d5),
  3576. 254: uint32(0xf06fa276),
  3577. 255: uint32(0xa8ef40a1),
  3578. },
  3579. 3: {
  3580. 1: uint32(0x463b6765),
  3581. 2: uint32(0x8c76ceca),
  3582. 3: uint32(0xca4da9af),
  3583. 4: uint32(0x59ebed4e),
  3584. 5: uint32(0x1fd08a2b),
  3585. 6: uint32(0xd59d2384),
  3586. 7: uint32(0x93a644e1),
  3587. 8: uint32(0xb2d6db9d),
  3588. 9: uint32(0xf4edbcf8),
  3589. 10: uint32(0x3ea01557),
  3590. 11: uint32(0x789b7232),
  3591. 12: uint32(0xeb3d36d3),
  3592. 13: uint32(0xad0651b6),
  3593. 14: uint32(0x674bf819),
  3594. 15: uint32(0x21709f7c),
  3595. 16: uint32(0x25abc6e0),
  3596. 17: uint32(0x6390a185),
  3597. 18: uint32(0xa9dd082a),
  3598. 19: uint32(0xefe66f4f),
  3599. 20: uint32(0x7c402bae),
  3600. 21: uint32(0x3a7b4ccb),
  3601. 22: uint32(0xf036e564),
  3602. 23: uint32(0xb60d8201),
  3603. 24: uint32(0x977d1d7d),
  3604. 25: uint32(0xd1467a18),
  3605. 26: uint32(0x1b0bd3b7),
  3606. 27: uint32(0x5d30b4d2),
  3607. 28: uint32(0xce96f033),
  3608. 29: uint32(0x88ad9756),
  3609. 30: uint32(0x42e03ef9),
  3610. 31: uint32(0x04db599c),
  3611. 32: uint32(0x0b50fc1a),
  3612. 33: uint32(0x4d6b9b7f),
  3613. 34: uint32(0x872632d0),
  3614. 35: uint32(0xc11d55b5),
  3615. 36: uint32(0x52bb1154),
  3616. 37: uint32(0x14807631),
  3617. 38: uint32(0xdecddf9e),
  3618. 39: uint32(0x98f6b8fb),
  3619. 40: uint32(0xb9862787),
  3620. 41: uint32(0xffbd40e2),
  3621. 42: uint32(0x35f0e94d),
  3622. 43: uint32(0x73cb8e28),
  3623. 44: uint32(0xe06dcac9),
  3624. 45: uint32(0xa656adac),
  3625. 46: uint32(0x6c1b0403),
  3626. 47: uint32(0x2a206366),
  3627. 48: uint32(0x2efb3afa),
  3628. 49: uint32(0x68c05d9f),
  3629. 50: uint32(0xa28df430),
  3630. 51: uint32(0xe4b69355),
  3631. 52: uint32(0x7710d7b4),
  3632. 53: uint32(0x312bb0d1),
  3633. 54: uint32(0xfb66197e),
  3634. 55: uint32(0xbd5d7e1b),
  3635. 56: uint32(0x9c2de167),
  3636. 57: uint32(0xda168602),
  3637. 58: uint32(0x105b2fad),
  3638. 59: uint32(0x566048c8),
  3639. 60: uint32(0xc5c60c29),
  3640. 61: uint32(0x83fd6b4c),
  3641. 62: uint32(0x49b0c2e3),
  3642. 63: uint32(0x0f8ba586),
  3643. 64: uint32(0x16a0f835),
  3644. 65: uint32(0x509b9f50),
  3645. 66: uint32(0x9ad636ff),
  3646. 67: uint32(0xdced519a),
  3647. 68: uint32(0x4f4b157b),
  3648. 69: uint32(0x0970721e),
  3649. 70: uint32(0xc33ddbb1),
  3650. 71: uint32(0x8506bcd4),
  3651. 72: uint32(0xa47623a8),
  3652. 73: uint32(0xe24d44cd),
  3653. 74: uint32(0x2800ed62),
  3654. 75: uint32(0x6e3b8a07),
  3655. 76: uint32(0xfd9dcee6),
  3656. 77: uint32(0xbba6a983),
  3657. 78: uint32(0x71eb002c),
  3658. 79: uint32(0x37d06749),
  3659. 80: uint32(0x330b3ed5),
  3660. 81: uint32(0x753059b0),
  3661. 82: uint32(0xbf7df01f),
  3662. 83: uint32(0xf946977a),
  3663. 84: uint32(0x6ae0d39b),
  3664. 85: uint32(0x2cdbb4fe),
  3665. 86: uint32(0xe6961d51),
  3666. 87: uint32(0xa0ad7a34),
  3667. 88: uint32(0x81dde548),
  3668. 89: uint32(0xc7e6822d),
  3669. 90: uint32(0x0dab2b82),
  3670. 91: uint32(0x4b904ce7),
  3671. 92: uint32(0xd8360806),
  3672. 93: uint32(0x9e0d6f63),
  3673. 94: uint32(0x5440c6cc),
  3674. 95: uint32(0x127ba1a9),
  3675. 96: uint32(0x1df0042f),
  3676. 97: uint32(0x5bcb634a),
  3677. 98: uint32(0x9186cae5),
  3678. 99: uint32(0xd7bdad80),
  3679. 100: uint32(0x441be961),
  3680. 101: uint32(0x02208e04),
  3681. 102: uint32(0xc86d27ab),
  3682. 103: uint32(0x8e5640ce),
  3683. 104: uint32(0xaf26dfb2),
  3684. 105: uint32(0xe91db8d7),
  3685. 106: uint32(0x23501178),
  3686. 107: uint32(0x656b761d),
  3687. 108: uint32(0xf6cd32fc),
  3688. 109: uint32(0xb0f65599),
  3689. 110: uint32(0x7abbfc36),
  3690. 111: uint32(0x3c809b53),
  3691. 112: uint32(0x385bc2cf),
  3692. 113: uint32(0x7e60a5aa),
  3693. 114: uint32(0xb42d0c05),
  3694. 115: uint32(0xf2166b60),
  3695. 116: uint32(0x61b02f81),
  3696. 117: uint32(0x278b48e4),
  3697. 118: uint32(0xedc6e14b),
  3698. 119: uint32(0xabfd862e),
  3699. 120: uint32(0x8a8d1952),
  3700. 121: uint32(0xccb67e37),
  3701. 122: uint32(0x06fbd798),
  3702. 123: uint32(0x40c0b0fd),
  3703. 124: uint32(0xd366f41c),
  3704. 125: uint32(0x955d9379),
  3705. 126: uint32(0x5f103ad6),
  3706. 127: uint32(0x192b5db3),
  3707. 128: uint32(0x2c40f16b),
  3708. 129: uint32(0x6a7b960e),
  3709. 130: uint32(0xa0363fa1),
  3710. 131: uint32(0xe60d58c4),
  3711. 132: uint32(0x75ab1c25),
  3712. 133: uint32(0x33907b40),
  3713. 134: uint32(0xf9ddd2ef),
  3714. 135: uint32(0xbfe6b58a),
  3715. 136: uint32(0x9e962af6),
  3716. 137: uint32(0xd8ad4d93),
  3717. 138: uint32(0x12e0e43c),
  3718. 139: uint32(0x54db8359),
  3719. 140: uint32(0xc77dc7b8),
  3720. 141: uint32(0x8146a0dd),
  3721. 142: uint32(0x4b0b0972),
  3722. 143: uint32(0x0d306e17),
  3723. 144: uint32(0x09eb378b),
  3724. 145: uint32(0x4fd050ee),
  3725. 146: uint32(0x859df941),
  3726. 147: uint32(0xc3a69e24),
  3727. 148: uint32(0x5000dac5),
  3728. 149: uint32(0x163bbda0),
  3729. 150: uint32(0xdc76140f),
  3730. 151: uint32(0x9a4d736a),
  3731. 152: uint32(0xbb3dec16),
  3732. 153: uint32(0xfd068b73),
  3733. 154: uint32(0x374b22dc),
  3734. 155: uint32(0x717045b9),
  3735. 156: uint32(0xe2d60158),
  3736. 157: uint32(0xa4ed663d),
  3737. 158: uint32(0x6ea0cf92),
  3738. 159: uint32(0x289ba8f7),
  3739. 160: uint32(0x27100d71),
  3740. 161: uint32(0x612b6a14),
  3741. 162: uint32(0xab66c3bb),
  3742. 163: uint32(0xed5da4de),
  3743. 164: uint32(0x7efbe03f),
  3744. 165: uint32(0x38c0875a),
  3745. 166: uint32(0xf28d2ef5),
  3746. 167: uint32(0xb4b64990),
  3747. 168: uint32(0x95c6d6ec),
  3748. 169: uint32(0xd3fdb189),
  3749. 170: uint32(0x19b01826),
  3750. 171: uint32(0x5f8b7f43),
  3751. 172: uint32(0xcc2d3ba2),
  3752. 173: uint32(0x8a165cc7),
  3753. 174: uint32(0x405bf568),
  3754. 175: uint32(0x0660920d),
  3755. 176: uint32(0x02bbcb91),
  3756. 177: uint32(0x4480acf4),
  3757. 178: uint32(0x8ecd055b),
  3758. 179: uint32(0xc8f6623e),
  3759. 180: uint32(0x5b5026df),
  3760. 181: uint32(0x1d6b41ba),
  3761. 182: uint32(0xd726e815),
  3762. 183: uint32(0x911d8f70),
  3763. 184: uint32(0xb06d100c),
  3764. 185: uint32(0xf6567769),
  3765. 186: uint32(0x3c1bdec6),
  3766. 187: uint32(0x7a20b9a3),
  3767. 188: uint32(0xe986fd42),
  3768. 189: uint32(0xafbd9a27),
  3769. 190: uint32(0x65f03388),
  3770. 191: uint32(0x23cb54ed),
  3771. 192: uint32(0x3ae0095e),
  3772. 193: uint32(0x7cdb6e3b),
  3773. 194: uint32(0xb696c794),
  3774. 195: uint32(0xf0ada0f1),
  3775. 196: uint32(0x630be410),
  3776. 197: uint32(0x25308375),
  3777. 198: uint32(0xef7d2ada),
  3778. 199: uint32(0xa9464dbf),
  3779. 200: uint32(0x8836d2c3),
  3780. 201: uint32(0xce0db5a6),
  3781. 202: uint32(0x04401c09),
  3782. 203: uint32(0x427b7b6c),
  3783. 204: uint32(0xd1dd3f8d),
  3784. 205: uint32(0x97e658e8),
  3785. 206: uint32(0x5dabf147),
  3786. 207: uint32(0x1b909622),
  3787. 208: uint32(0x1f4bcfbe),
  3788. 209: uint32(0x5970a8db),
  3789. 210: uint32(0x933d0174),
  3790. 211: uint32(0xd5066611),
  3791. 212: uint32(0x46a022f0),
  3792. 213: uint32(0x009b4595),
  3793. 214: uint32(0xcad6ec3a),
  3794. 215: uint32(0x8ced8b5f),
  3795. 216: uint32(0xad9d1423),
  3796. 217: uint32(0xeba67346),
  3797. 218: uint32(0x21ebdae9),
  3798. 219: uint32(0x67d0bd8c),
  3799. 220: uint32(0xf476f96d),
  3800. 221: uint32(0xb24d9e08),
  3801. 222: uint32(0x780037a7),
  3802. 223: uint32(0x3e3b50c2),
  3803. 224: uint32(0x31b0f544),
  3804. 225: uint32(0x778b9221),
  3805. 226: uint32(0xbdc63b8e),
  3806. 227: uint32(0xfbfd5ceb),
  3807. 228: uint32(0x685b180a),
  3808. 229: uint32(0x2e607f6f),
  3809. 230: uint32(0xe42dd6c0),
  3810. 231: uint32(0xa216b1a5),
  3811. 232: uint32(0x83662ed9),
  3812. 233: uint32(0xc55d49bc),
  3813. 234: uint32(0x0f10e013),
  3814. 235: uint32(0x492b8776),
  3815. 236: uint32(0xda8dc397),
  3816. 237: uint32(0x9cb6a4f2),
  3817. 238: uint32(0x56fb0d5d),
  3818. 239: uint32(0x10c06a38),
  3819. 240: uint32(0x141b33a4),
  3820. 241: uint32(0x522054c1),
  3821. 242: uint32(0x986dfd6e),
  3822. 243: uint32(0xde569a0b),
  3823. 244: uint32(0x4df0deea),
  3824. 245: uint32(0x0bcbb98f),
  3825. 246: uint32(0xc1861020),
  3826. 247: uint32(0x87bd7745),
  3827. 248: uint32(0xa6cde839),
  3828. 249: uint32(0xe0f68f5c),
  3829. 250: uint32(0x2abb26f3),
  3830. 251: uint32(0x6c804196),
  3831. 252: uint32(0xff260577),
  3832. 253: uint32(0xb91d6212),
  3833. 254: uint32(0x7350cbbd),
  3834. 255: uint32(0x356bacd8),
  3835. },
  3836. }
  3837. var _x2n_table = [32]Tz_crc_t{
  3838. 0: uint32(0x40000000),
  3839. 1: uint32(0x20000000),
  3840. 2: uint32(0x08000000),
  3841. 3: uint32(0x00800000),
  3842. 4: uint32(0x00008000),
  3843. 5: uint32(0xedb88320),
  3844. 6: uint32(0xb1e6b092),
  3845. 7: uint32(0xa06a2517),
  3846. 8: uint32(0xed627dae),
  3847. 9: uint32(0x88d14467),
  3848. 10: uint32(0xd7bbfe6a),
  3849. 11: uint32(0xec447f11),
  3850. 12: uint32(0x8e7ea170),
  3851. 13: uint32(0x6427800e),
  3852. 14: uint32(0x4d47bae0),
  3853. 15: uint32(0x09fe548f),
  3854. 16: uint32(0x83852d0f),
  3855. 17: uint32(0x30362f1a),
  3856. 18: uint32(0x7b5a9cc3),
  3857. 19: uint32(0x31fec169),
  3858. 20: uint32(0x9fec022a),
  3859. 21: uint32(0x6c8dedc4),
  3860. 22: uint32(0x15d6874d),
  3861. 23: uint32(0x5fde7a4e),
  3862. 24: uint32(0xbad90e37),
  3863. 25: uint32(0x2e4e5eef),
  3864. 26: uint32(0x4eaba214),
  3865. 27: uint32(0xa8a472c0),
  3866. 28: uint32(0x429a969e),
  3867. 29: uint32(0x148d302a),
  3868. 30: uint32(0xc40ba6d0),
  3869. 31: uint32(0xc4e22c3c),
  3870. }
  3871. /* CRC polynomial. */
  3872. // C documentation
  3873. //
  3874. // /*
  3875. // Return a(x) multiplied by b(x) modulo p(x), where p(x) is the CRC polynomial,
  3876. // reflected. For speed, this requires that a not be zero.
  3877. // */
  3878. func _multmodp(tls *libc.TLS, a Tz_crc_t, b Tz_crc_t) (r Tz_crc_t) {
  3879. var m, p Tz_crc_t
  3880. var v2 uint32
  3881. _, _, _ = m, p, v2
  3882. m = libc.Uint32FromInt32(1) << libc.Int32FromInt32(31)
  3883. p = uint32(0)
  3884. for {
  3885. if a&m != 0 {
  3886. p ^= b
  3887. if a&(m-uint32(1)) == uint32(0) {
  3888. break
  3889. }
  3890. }
  3891. m >>= uint32(1)
  3892. if b&uint32(1) != 0 {
  3893. v2 = b>>libc.Int32FromInt32(1) ^ uint32(m_POLY)
  3894. } else {
  3895. v2 = b >> int32(1)
  3896. }
  3897. b = v2
  3898. goto _1
  3899. _1:
  3900. }
  3901. return p
  3902. }
  3903. // C documentation
  3904. //
  3905. // /*
  3906. // Return x^(n * 2^k) modulo p(x). Requires that x2n_table[] has been
  3907. // initialized.
  3908. // */
  3909. func _x2nmodp(tls *libc.TLS, n Toff_t, k uint32) (r Tz_crc_t) {
  3910. var p Tz_crc_t
  3911. _ = p
  3912. p = libc.Uint32FromInt32(1) << libc.Int32FromInt32(31) /* x^0 == 1 */
  3913. for n != 0 {
  3914. if n&int64(1) != 0 {
  3915. p = _multmodp(tls, _x2n_table[k&uint32(31)], p)
  3916. }
  3917. n >>= int64(1)
  3918. k++
  3919. }
  3920. return p
  3921. }
  3922. // C documentation
  3923. //
  3924. // /* =========================================================================
  3925. // * This function can be used by asm versions of crc32(), and to force the
  3926. // * generation of the CRC tables in a threaded application.
  3927. // */
  3928. func Xget_crc_table(tls *libc.TLS) (r uintptr) {
  3929. return uintptr(unsafe.Pointer(&_crc_table))
  3930. }
  3931. /* =========================================================================
  3932. * Use ARM machine instructions if available. This will compute the CRC about
  3933. * ten times faster than the braided calculation. This code does not check for
  3934. * the presence of the CRC instruction at run time. __ARM_FEATURE_CRC32 will
  3935. * only be defined if the compilation specifies an ARM processor architecture
  3936. * that has the instructions. For example, compiling with -march=armv8.1-a or
  3937. * -march=armv8-a+crc, or -march=native if the compile machine has the crc32
  3938. * instructions.
  3939. */
  3940. // C documentation
  3941. //
  3942. // /*
  3943. // Return the CRC of the W bytes in the word_t data, taking the
  3944. // least-significant byte of the word as the first byte of data, without any pre
  3945. // or post conditioning. This is used to combine the CRCs of each braid.
  3946. // */
  3947. func _crc_word(tls *libc.TLS, data Tz_word_t) (r Tz_crc_t) {
  3948. var k int32
  3949. _ = k
  3950. k = 0
  3951. for {
  3952. if !(k < int32(4)) {
  3953. break
  3954. }
  3955. data = data>>libc.Int32FromInt32(8) ^ _crc_table[data&uint32(0xff)]
  3956. goto _1
  3957. _1:
  3958. ;
  3959. k++
  3960. }
  3961. return data
  3962. }
  3963. func _crc_word_big(tls *libc.TLS, data Tz_word_t) (r Tz_word_t) {
  3964. var k int32
  3965. _ = k
  3966. k = 0
  3967. for {
  3968. if !(k < int32(4)) {
  3969. break
  3970. }
  3971. data = data<<libc.Int32FromInt32(8) ^ _crc_big_table[data>>((libc.Int32FromInt32(4)-libc.Int32FromInt32(1))<<libc.Int32FromInt32(3))&uint32(0xff)]
  3972. goto _1
  3973. _1:
  3974. ;
  3975. k++
  3976. }
  3977. return data
  3978. }
  3979. // C documentation
  3980. //
  3981. // /* ========================================================================= */
  3982. func Xcrc32_z(tls *libc.TLS, crc uint64, buf uintptr, len1 Tz_size_t) (r uint64) {
  3983. bp := tls.Alloc(16)
  3984. defer tls.Free(16)
  3985. var blks, v2, v4 Tz_size_t
  3986. var comb, crc01, crc11, crc21, crc31, crc41, word0, word01, word1, word11, word2, word21, word3, word31, word4, word41 Tz_word_t
  3987. var crc0, crc1, crc2, crc3, crc4 Tz_crc_t
  3988. var k int32
  3989. var words, v1, v10, v11, v12, v13, v14, v6, v7, v8, v9 uintptr
  3990. var _ /* endian at bp+0 */ uint32
  3991. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  3992. /* Return initial CRC, if requested. */
  3993. if buf == uintptr(m_Z_NULL) {
  3994. return uint64(0)
  3995. }
  3996. /* Pre-condition the CRC */
  3997. crc = ^crc & uint64(0xffffffff)
  3998. /* If provided enough bytes, do a braided CRC calculation. */
  3999. if len1 >= libc.Uint64FromInt32(libc.Int32FromInt32(m_N)*libc.Int32FromInt32(4)+libc.Int32FromInt32(4)-libc.Int32FromInt32(1)) {
  4000. /* Compute the CRC up to a z_word_t boundary. */
  4001. for len1 != 0 && uint64(buf)&libc.Uint64FromInt32(libc.Int32FromInt32(4)-libc.Int32FromInt32(1)) != uint64(0) {
  4002. len1--
  4003. v1 = buf
  4004. buf++
  4005. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v1))))&uint64(0xff)])
  4006. }
  4007. /* Compute the CRC on as many N z_word_t blocks as are available. */
  4008. blks = len1 / libc.Uint64FromInt32(libc.Int32FromInt32(m_N)*libc.Int32FromInt32(4))
  4009. len1 -= blks * uint64(m_N) * uint64(4)
  4010. words = buf
  4011. /* Do endian check at execution time instead of compile time, since ARM
  4012. processors can change the endianness at execution time. If the
  4013. compiler knows what the endianness will be, it can optimize out the
  4014. check and the unused branch. */
  4015. *(*uint32)(unsafe.Pointer(bp)) = uint32(1)
  4016. if *(*uint8)(unsafe.Pointer(bp)) != 0 {
  4017. /* Initialize the CRC for each braid. */
  4018. crc0 = uint32(crc)
  4019. crc1 = uint32(0)
  4020. crc2 = uint32(0)
  4021. crc3 = uint32(0)
  4022. crc4 = uint32(0)
  4023. /*
  4024. Process the first blks-1 blocks, computing the CRCs on each braid
  4025. independently.
  4026. */
  4027. for {
  4028. blks--
  4029. v2 = blks
  4030. if !(v2 != 0) {
  4031. break
  4032. }
  4033. /* Load the word for each braid into registers. */
  4034. word0 = crc0 ^ *(*Tz_word_t)(unsafe.Pointer(words))
  4035. word1 = crc1 ^ *(*Tz_word_t)(unsafe.Pointer(words + 1*4))
  4036. word2 = crc2 ^ *(*Tz_word_t)(unsafe.Pointer(words + 2*4))
  4037. word3 = crc3 ^ *(*Tz_word_t)(unsafe.Pointer(words + 3*4))
  4038. word4 = crc4 ^ *(*Tz_word_t)(unsafe.Pointer(words + 4*4))
  4039. words += uintptr(m_N) * 4
  4040. /* Compute and update the CRC for each word. The loop should
  4041. get unrolled. */
  4042. crc0 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word0&uint32(0xff))*4))
  4043. crc1 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word1&uint32(0xff))*4))
  4044. crc2 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word2&uint32(0xff))*4))
  4045. crc3 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word3&uint32(0xff))*4))
  4046. crc4 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word4&uint32(0xff))*4))
  4047. k = int32(1)
  4048. for {
  4049. if !(k < int32(4)) {
  4050. break
  4051. }
  4052. crc0 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word0>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  4053. crc1 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word1>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  4054. crc2 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word2>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  4055. crc3 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word3>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  4056. crc4 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word4>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  4057. goto _3
  4058. _3:
  4059. ;
  4060. k++
  4061. }
  4062. }
  4063. /*
  4064. Process the last block, combining the CRCs of the N braids at the
  4065. same time.
  4066. */
  4067. crc = uint64(_crc_word(tls, crc0^*(*Tz_word_t)(unsafe.Pointer(words))))
  4068. crc = uint64(_crc_word(tls, uint32(uint64(crc1^*(*Tz_word_t)(unsafe.Pointer(words + 1*4)))^crc)))
  4069. crc = uint64(_crc_word(tls, uint32(uint64(crc2^*(*Tz_word_t)(unsafe.Pointer(words + 2*4)))^crc)))
  4070. crc = uint64(_crc_word(tls, uint32(uint64(crc3^*(*Tz_word_t)(unsafe.Pointer(words + 3*4)))^crc)))
  4071. crc = uint64(_crc_word(tls, uint32(uint64(crc4^*(*Tz_word_t)(unsafe.Pointer(words + 4*4)))^crc)))
  4072. words += uintptr(m_N) * 4
  4073. } else {
  4074. /* Initialize the CRC for each braid. */
  4075. crc01 = _byte_swap(tls, uint32(crc))
  4076. crc11 = uint32(0)
  4077. crc21 = uint32(0)
  4078. crc31 = uint32(0)
  4079. crc41 = uint32(0)
  4080. /*
  4081. Process the first blks-1 blocks, computing the CRCs on each braid
  4082. independently.
  4083. */
  4084. for {
  4085. blks--
  4086. v4 = blks
  4087. if !(v4 != 0) {
  4088. break
  4089. }
  4090. /* Load the word for each braid into registers. */
  4091. word01 = crc01 ^ *(*Tz_word_t)(unsafe.Pointer(words))
  4092. word11 = crc11 ^ *(*Tz_word_t)(unsafe.Pointer(words + 1*4))
  4093. word21 = crc21 ^ *(*Tz_word_t)(unsafe.Pointer(words + 2*4))
  4094. word31 = crc31 ^ *(*Tz_word_t)(unsafe.Pointer(words + 3*4))
  4095. word41 = crc41 ^ *(*Tz_word_t)(unsafe.Pointer(words + 4*4))
  4096. words += uintptr(m_N) * 4
  4097. /* Compute and update the CRC for each word. The loop should
  4098. get unrolled. */
  4099. crc01 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word01&uint32(0xff))*4))
  4100. crc11 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word11&uint32(0xff))*4))
  4101. crc21 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word21&uint32(0xff))*4))
  4102. crc31 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word31&uint32(0xff))*4))
  4103. crc41 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word41&uint32(0xff))*4))
  4104. k = int32(1)
  4105. for {
  4106. if !(k < int32(4)) {
  4107. break
  4108. }
  4109. 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))
  4110. 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))
  4111. 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))
  4112. 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))
  4113. 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))
  4114. goto _5
  4115. _5:
  4116. ;
  4117. k++
  4118. }
  4119. }
  4120. /*
  4121. Process the last block, combining the CRCs of the N braids at the
  4122. same time.
  4123. */
  4124. comb = _crc_word_big(tls, crc01^*(*Tz_word_t)(unsafe.Pointer(words)))
  4125. comb = _crc_word_big(tls, crc11^*(*Tz_word_t)(unsafe.Pointer(words + 1*4))^comb)
  4126. comb = _crc_word_big(tls, crc21^*(*Tz_word_t)(unsafe.Pointer(words + 2*4))^comb)
  4127. comb = _crc_word_big(tls, crc31^*(*Tz_word_t)(unsafe.Pointer(words + 3*4))^comb)
  4128. comb = _crc_word_big(tls, crc41^*(*Tz_word_t)(unsafe.Pointer(words + 4*4))^comb)
  4129. words += uintptr(m_N) * 4
  4130. crc = uint64(_byte_swap(tls, comb))
  4131. }
  4132. /*
  4133. Update the pointer to the remaining bytes to process.
  4134. */
  4135. buf = words
  4136. }
  4137. /* Complete the computation of the CRC on any remaining bytes. */
  4138. for len1 >= uint64(8) {
  4139. len1 -= uint64(8)
  4140. v6 = buf
  4141. buf++
  4142. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v6))))&uint64(0xff)])
  4143. v7 = buf
  4144. buf++
  4145. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v7))))&uint64(0xff)])
  4146. v8 = buf
  4147. buf++
  4148. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v8))))&uint64(0xff)])
  4149. v9 = buf
  4150. buf++
  4151. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v9))))&uint64(0xff)])
  4152. v10 = buf
  4153. buf++
  4154. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v10))))&uint64(0xff)])
  4155. v11 = buf
  4156. buf++
  4157. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v11))))&uint64(0xff)])
  4158. v12 = buf
  4159. buf++
  4160. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v12))))&uint64(0xff)])
  4161. v13 = buf
  4162. buf++
  4163. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v13))))&uint64(0xff)])
  4164. }
  4165. for len1 != 0 {
  4166. len1--
  4167. v14 = buf
  4168. buf++
  4169. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v14))))&uint64(0xff)])
  4170. }
  4171. /* Return the CRC, post-conditioned. */
  4172. return crc ^ uint64(0xffffffff)
  4173. }
  4174. // C documentation
  4175. //
  4176. // /* ========================================================================= */
  4177. func Xcrc32(tls *libc.TLS, crc uint64, buf uintptr, len1 TuInt) (r uint64) {
  4178. return Xcrc32_z(tls, crc, buf, uint64(len1))
  4179. }
  4180. // C documentation
  4181. //
  4182. // /* ========================================================================= */
  4183. func Xcrc32_combine64(tls *libc.TLS, crc1 TuLong, crc2 TuLong, len2 Toff_t) (r TuLong) {
  4184. return uint64(_multmodp(tls, _x2nmodp(tls, len2, uint32(3)), uint32(crc1))) ^ crc2&uint64(0xffffffff)
  4185. }
  4186. // C documentation
  4187. //
  4188. // /* ========================================================================= */
  4189. func Xcrc32_combine(tls *libc.TLS, crc1 TuLong, crc2 TuLong, len2 Toff_t) (r TuLong) {
  4190. return Xcrc32_combine64(tls, crc1, crc2, len2)
  4191. }
  4192. // C documentation
  4193. //
  4194. // /* ========================================================================= */
  4195. func Xcrc32_combine_gen64(tls *libc.TLS, len2 Toff_t) (r TuLong) {
  4196. return uint64(_x2nmodp(tls, len2, uint32(3)))
  4197. }
  4198. // C documentation
  4199. //
  4200. // /* ========================================================================= */
  4201. func Xcrc32_combine_gen(tls *libc.TLS, len2 Toff_t) (r TuLong) {
  4202. return Xcrc32_combine_gen64(tls, len2)
  4203. }
  4204. // C documentation
  4205. //
  4206. // /* ========================================================================= */
  4207. func Xcrc32_combine_op(tls *libc.TLS, crc1 TuLong, crc2 TuLong, op TuLong) (r TuLong) {
  4208. return uint64(_multmodp(tls, uint32(op), uint32(crc1))) ^ crc2&uint64(0xffffffff)
  4209. }
  4210. const m_BL_CODES = 19
  4211. const m_BUSY_STATE = 113
  4212. const m_Buf_size = 16
  4213. const m_COMMENT_STATE = 91
  4214. const m_D_CODES = 30
  4215. const m_EXTRA_STATE = 69
  4216. const m_FINISH_STATE = 666
  4217. const m_GZIP_STATE = 57
  4218. const m_HCRC_STATE = 103
  4219. const m_INIT_STATE = 42
  4220. const m_LENGTH_CODES = 29
  4221. const m_LITERALS = 256
  4222. const m_LIT_BUFS = 4
  4223. const m_MAX_BITS = 15
  4224. const m_MAX_STORED = 65535
  4225. const m_NAME_STATE = 73
  4226. const m_NIL = 0
  4227. const m_PRESET_DICT1 = 32
  4228. const m_TOO_FAR = 4096
  4229. const m_WIN_INIT = "MAX_MATCH"
  4230. const m_max_insert_length = "max_lazy_match"
  4231. type Tinternal_state = struct {
  4232. Fstrm Tz_streamp
  4233. Fstatus int32
  4234. Fpending_buf uintptr
  4235. Fpending_buf_size Tulg
  4236. Fpending_out uintptr
  4237. Fpending Tulg
  4238. Fwrap int32
  4239. Fgzhead Tgz_headerp
  4240. Fgzindex Tulg
  4241. Fmethod TByte
  4242. Flast_flush int32
  4243. Fw_size TuInt
  4244. Fw_bits TuInt
  4245. Fw_mask TuInt
  4246. Fwindow uintptr
  4247. Fwindow_size Tulg
  4248. Fprev uintptr
  4249. Fhead uintptr
  4250. Fins_h TuInt
  4251. Fhash_size TuInt
  4252. Fhash_bits TuInt
  4253. Fhash_mask TuInt
  4254. Fhash_shift TuInt
  4255. Fblock_start int64
  4256. Fmatch_length TuInt
  4257. Fprev_match TIPos
  4258. Fmatch_available int32
  4259. Fstrstart TuInt
  4260. Fmatch_start TuInt
  4261. Flookahead TuInt
  4262. Fprev_length TuInt
  4263. Fmax_chain_length TuInt
  4264. Fmax_lazy_match TuInt
  4265. Flevel int32
  4266. Fstrategy int32
  4267. Fgood_match TuInt
  4268. Fnice_match int32
  4269. Fdyn_ltree [573]Tct_data_s
  4270. Fdyn_dtree [61]Tct_data_s
  4271. Fbl_tree [39]Tct_data_s
  4272. Fl_desc Ttree_desc_s
  4273. Fd_desc Ttree_desc_s
  4274. Fbl_desc Ttree_desc_s
  4275. Fbl_count [16]Tush
  4276. Fheap [573]int32
  4277. Fheap_len int32
  4278. Fheap_max int32
  4279. Fdepth [573]Tuch
  4280. Fsym_buf uintptr
  4281. Flit_bufsize TuInt
  4282. Fsym_next TuInt
  4283. Fsym_end TuInt
  4284. Fopt_len Tulg
  4285. Fstatic_len Tulg
  4286. Fmatches TuInt
  4287. Finsert TuInt
  4288. Fbi_buf Tush
  4289. Fbi_valid int32
  4290. Fhigh_water Tulg
  4291. }
  4292. type Tct_data = struct {
  4293. Ffc struct {
  4294. Fcode [0]Tush
  4295. Ffreq Tush
  4296. }
  4297. Fdl struct {
  4298. Flen1 [0]Tush
  4299. Fdad Tush
  4300. }
  4301. }
  4302. type Tct_data_s = Tct_data
  4303. type Ttree_desc = struct {
  4304. Fdyn_tree uintptr
  4305. Fmax_code int32
  4306. Fstat_desc uintptr
  4307. }
  4308. type Ttree_desc_s = Ttree_desc
  4309. type TPos = uint16
  4310. type TPosf = uint16
  4311. type TIPos = uint32
  4312. type Tdeflate_state = struct {
  4313. Fstrm Tz_streamp
  4314. Fstatus int32
  4315. Fpending_buf uintptr
  4316. Fpending_buf_size Tulg
  4317. Fpending_out uintptr
  4318. Fpending Tulg
  4319. Fwrap int32
  4320. Fgzhead Tgz_headerp
  4321. Fgzindex Tulg
  4322. Fmethod TByte
  4323. Flast_flush int32
  4324. Fw_size TuInt
  4325. Fw_bits TuInt
  4326. Fw_mask TuInt
  4327. Fwindow uintptr
  4328. Fwindow_size Tulg
  4329. Fprev uintptr
  4330. Fhead uintptr
  4331. Fins_h TuInt
  4332. Fhash_size TuInt
  4333. Fhash_bits TuInt
  4334. Fhash_mask TuInt
  4335. Fhash_shift TuInt
  4336. Fblock_start int64
  4337. Fmatch_length TuInt
  4338. Fprev_match TIPos
  4339. Fmatch_available int32
  4340. Fstrstart TuInt
  4341. Fmatch_start TuInt
  4342. Flookahead TuInt
  4343. Fprev_length TuInt
  4344. Fmax_chain_length TuInt
  4345. Fmax_lazy_match TuInt
  4346. Flevel int32
  4347. Fstrategy int32
  4348. Fgood_match TuInt
  4349. Fnice_match int32
  4350. Fdyn_ltree [573]Tct_data_s
  4351. Fdyn_dtree [61]Tct_data_s
  4352. Fbl_tree [39]Tct_data_s
  4353. Fl_desc Ttree_desc_s
  4354. Fd_desc Ttree_desc_s
  4355. Fbl_desc Ttree_desc_s
  4356. Fbl_count [16]Tush
  4357. Fheap [573]int32
  4358. Fheap_len int32
  4359. Fheap_max int32
  4360. Fdepth [573]Tuch
  4361. Fsym_buf uintptr
  4362. Flit_bufsize TuInt
  4363. Fsym_next TuInt
  4364. Fsym_end TuInt
  4365. Fopt_len Tulg
  4366. Fstatic_len Tulg
  4367. Fmatches TuInt
  4368. Finsert TuInt
  4369. Fbi_buf Tush
  4370. Fbi_valid int32
  4371. Fhigh_water Tulg
  4372. }
  4373. /*
  4374. If you use the zlib library in a product, an acknowledgment is welcome
  4375. in the documentation of your product. If for some reason you cannot
  4376. include such an acknowledgment, I would appreciate that you keep this
  4377. copyright string in the executable of your product.
  4378. */
  4379. type Tblock_state = int32
  4380. const _need_more = 0
  4381. const /* block not completed, need more input or more output */
  4382. _block_done = 1
  4383. const /* block flush performed */
  4384. _finish_started = 2
  4385. const /* finish started, need only more output at next deflate */
  4386. _finish_done = 3
  4387. type Tcompress_func = uintptr
  4388. /* ===========================================================================
  4389. * Local data
  4390. */
  4391. /* Tail of hash chains */
  4392. /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
  4393. // C documentation
  4394. //
  4395. // /* Values for max_lazy_match, good_match and max_chain_length, depending on
  4396. // * the desired pack level (0..9). The values given below have been tuned to
  4397. // * exclude worst case performance for pathological files. Better values may be
  4398. // * found for specific files.
  4399. // */
  4400. type Tconfig = struct {
  4401. Fgood_length Tush
  4402. Fmax_lazy Tush
  4403. Fnice_length Tush
  4404. Fmax_chain Tush
  4405. Ffunc1 Tcompress_func
  4406. }
  4407. /* ===========================================================================
  4408. * Local data
  4409. */
  4410. /* Tail of hash chains */
  4411. /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
  4412. // C documentation
  4413. //
  4414. // /* Values for max_lazy_match, good_match and max_chain_length, depending on
  4415. // * the desired pack level (0..9). The values given below have been tuned to
  4416. // * exclude worst case performance for pathological files. Better values may be
  4417. // * found for specific files.
  4418. // */
  4419. type Tconfig_s = Tconfig
  4420. var _configuration_table = [10]Tconfig{
  4421. 0: {},
  4422. 1: {
  4423. Fgood_length: uint16(4),
  4424. Fmax_lazy: uint16(4),
  4425. Fnice_length: uint16(8),
  4426. Fmax_chain: uint16(4),
  4427. },
  4428. 2: {
  4429. Fgood_length: uint16(4),
  4430. Fmax_lazy: uint16(5),
  4431. Fnice_length: uint16(16),
  4432. Fmax_chain: uint16(8),
  4433. },
  4434. 3: {
  4435. Fgood_length: uint16(4),
  4436. Fmax_lazy: uint16(6),
  4437. Fnice_length: uint16(32),
  4438. Fmax_chain: uint16(32),
  4439. },
  4440. 4: {
  4441. Fgood_length: uint16(4),
  4442. Fmax_lazy: uint16(4),
  4443. Fnice_length: uint16(16),
  4444. Fmax_chain: uint16(16),
  4445. },
  4446. 5: {
  4447. Fgood_length: uint16(8),
  4448. Fmax_lazy: uint16(16),
  4449. Fnice_length: uint16(32),
  4450. Fmax_chain: uint16(32),
  4451. },
  4452. 6: {
  4453. Fgood_length: uint16(8),
  4454. Fmax_lazy: uint16(16),
  4455. Fnice_length: uint16(128),
  4456. Fmax_chain: uint16(128),
  4457. },
  4458. 7: {
  4459. Fgood_length: uint16(8),
  4460. Fmax_lazy: uint16(32),
  4461. Fnice_length: uint16(128),
  4462. Fmax_chain: uint16(256),
  4463. },
  4464. 8: {
  4465. Fgood_length: uint16(32),
  4466. Fmax_lazy: uint16(128),
  4467. Fnice_length: uint16(258),
  4468. Fmax_chain: uint16(1024),
  4469. },
  4470. 9: {
  4471. Fgood_length: uint16(32),
  4472. Fmax_lazy: uint16(258),
  4473. Fnice_length: uint16(258),
  4474. Fmax_chain: uint16(4096),
  4475. },
  4476. }
  4477. func init() {
  4478. p := unsafe.Pointer(&_configuration_table)
  4479. *(*uintptr)(unsafe.Add(p, 8)) = __ccgo_fp(_deflate_stored)
  4480. *(*uintptr)(unsafe.Add(p, 24)) = __ccgo_fp(_deflate_fast)
  4481. *(*uintptr)(unsafe.Add(p, 40)) = __ccgo_fp(_deflate_fast)
  4482. *(*uintptr)(unsafe.Add(p, 56)) = __ccgo_fp(_deflate_fast)
  4483. *(*uintptr)(unsafe.Add(p, 72)) = __ccgo_fp(_deflate_slow)
  4484. *(*uintptr)(unsafe.Add(p, 88)) = __ccgo_fp(_deflate_slow)
  4485. *(*uintptr)(unsafe.Add(p, 104)) = __ccgo_fp(_deflate_slow)
  4486. *(*uintptr)(unsafe.Add(p, 120)) = __ccgo_fp(_deflate_slow)
  4487. *(*uintptr)(unsafe.Add(p, 136)) = __ccgo_fp(_deflate_slow)
  4488. *(*uintptr)(unsafe.Add(p, 152)) = __ccgo_fp(_deflate_slow)
  4489. }
  4490. /* max compression */
  4491. /* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4
  4492. * For deflate_fast() (levels <= 3) good is ignored and lazy has a different
  4493. * meaning.
  4494. */
  4495. /* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */
  4496. /* ===========================================================================
  4497. * Update a hash value with the given input byte
  4498. * IN assertion: all calls to UPDATE_HASH are made with consecutive input
  4499. * characters, so that a running hash key can be computed from the previous
  4500. * key instead of complete recalculation each time.
  4501. */
  4502. /* ===========================================================================
  4503. * Insert string str in the dictionary and set match_head to the previous head
  4504. * of the hash chain (the most recent string with same hash key). Return
  4505. * the previous length of the hash chain.
  4506. * If this file is compiled with -DFASTEST, the compression level is forced
  4507. * to 1, and no hash chains are maintained.
  4508. * IN assertion: all calls to INSERT_STRING are made with consecutive input
  4509. * characters and the first MIN_MATCH bytes of str are valid (except for
  4510. * the last MIN_MATCH-1 bytes of the input file).
  4511. */
  4512. /* ===========================================================================
  4513. * Initialize the hash table (avoiding 64K overflow for 16 bit systems).
  4514. * prev[] will be initialized on the fly.
  4515. */
  4516. // C documentation
  4517. //
  4518. // /* ===========================================================================
  4519. // * Slide the hash table when sliding the window down (could be avoided with 32
  4520. // * bit values at the expense of memory usage). We slide even when level == 0 to
  4521. // * keep the hash table consistent if we switch back to level > 0 later.
  4522. // */
  4523. func _slide_hash(tls *libc.TLS, s uintptr) {
  4524. var m, n, v1, v4, v5, v8 uint32
  4525. var p, v3, v7 uintptr
  4526. var wsize TuInt
  4527. _, _, _, _, _, _, _, _, _, _ = m, n, p, wsize, v1, v3, v4, v5, v7, v8
  4528. wsize = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4529. n = (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size
  4530. p = (*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr(n)*2
  4531. for {
  4532. p -= 2
  4533. v3 = p
  4534. m = uint32(*(*TPosf)(unsafe.Pointer(v3)))
  4535. if m >= wsize {
  4536. v4 = m - wsize
  4537. } else {
  4538. v4 = uint32(m_NIL)
  4539. }
  4540. *(*TPosf)(unsafe.Pointer(p)) = uint16(v4)
  4541. goto _2
  4542. _2:
  4543. ;
  4544. n--
  4545. v1 = n
  4546. if !(v1 != 0) {
  4547. break
  4548. }
  4549. }
  4550. n = wsize
  4551. p = (*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr(n)*2
  4552. for {
  4553. p -= 2
  4554. v7 = p
  4555. m = uint32(*(*TPosf)(unsafe.Pointer(v7)))
  4556. if m >= wsize {
  4557. v8 = m - wsize
  4558. } else {
  4559. v8 = uint32(m_NIL)
  4560. }
  4561. *(*TPosf)(unsafe.Pointer(p)) = uint16(v8)
  4562. /* If n is not on any hash chain, prev[n] is garbage but
  4563. * its value will never be used.
  4564. */
  4565. goto _6
  4566. _6:
  4567. ;
  4568. n--
  4569. v5 = n
  4570. if !(v5 != 0) {
  4571. break
  4572. }
  4573. }
  4574. }
  4575. // C documentation
  4576. //
  4577. // /* ===========================================================================
  4578. // * Read a new buffer from the current input stream, update the adler32
  4579. // * and total number of bytes read. All deflate() input goes through
  4580. // * this function so some applications may wish to modify it to avoid
  4581. // * allocating a large strm->next_in buffer and copying from it.
  4582. // * (See also flush_pending()).
  4583. // */
  4584. func _read_buf(tls *libc.TLS, strm Tz_streamp, buf uintptr, size uint32) (r uint32) {
  4585. var len1 uint32
  4586. _ = len1
  4587. len1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  4588. if len1 > size {
  4589. len1 = size
  4590. }
  4591. if len1 == uint32(0) {
  4592. return uint32(0)
  4593. }
  4594. *(*TuInt)(unsafe.Pointer(strm + 8)) -= len1
  4595. libc.Xmemcpy(tls, buf, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, uint64(len1))
  4596. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap == int32(1) {
  4597. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, buf, len1)
  4598. } else {
  4599. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap == int32(2) {
  4600. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, buf, len1)
  4601. }
  4602. }
  4603. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(len1)
  4604. *(*TuLong)(unsafe.Pointer(strm + 16)) += uint64(len1)
  4605. return len1
  4606. }
  4607. // C documentation
  4608. //
  4609. // /* ===========================================================================
  4610. // * Fill the window when the lookahead becomes insufficient.
  4611. // * Updates strstart and lookahead.
  4612. // *
  4613. // * IN assertion: lookahead < MIN_LOOKAHEAD
  4614. // * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
  4615. // * At least one byte has been read, or avail_in == 0; reads are
  4616. // * performed for at least two bytes (required for the zip translate_eol
  4617. // * option -- not supported here).
  4618. // */
  4619. func _fill_window(tls *libc.TLS, s uintptr) {
  4620. var curr, init1 Tulg
  4621. var more, n uint32
  4622. var str, wsize TuInt
  4623. _, _, _, _, _, _ = curr, init1, more, n, str, wsize /* Amount of free space at the end of the window. */
  4624. wsize = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4625. for cond := true; cond; cond = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in != uint32(0) {
  4626. more = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - uint64((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead) - uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  4627. /* Deal with !@#$% 64K limit: */
  4628. if uint64(4) <= uint64(2) {
  4629. if more == uint32(0) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart == uint32(0) && (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  4630. more = wsize
  4631. } else {
  4632. if more == libc.Uint32FromInt32(-libc.Int32FromInt32(1)) {
  4633. /* Very unlikely, but possible on 16 bit machine if
  4634. * strstart == 0 && lookahead == 1 (input done a byte at time)
  4635. */
  4636. more--
  4637. }
  4638. }
  4639. }
  4640. /* If the window is almost full and there is insufficient lookahead,
  4641. * move the upper half to the lower one to make room in the upper half.
  4642. */
  4643. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart >= wsize+((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1))) {
  4644. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr(wsize), uint64(wsize-more))
  4645. *(*TuInt)(unsafe.Pointer(s + 176)) -= wsize
  4646. *(*TuInt)(unsafe.Pointer(s + 172)) -= wsize /* we now have strstart >= MAX_DIST */
  4647. *(*int64)(unsafe.Pointer(s + 152)) -= libc.Int64FromUint32(wsize)
  4648. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  4649. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  4650. }
  4651. _slide_hash(tls, s)
  4652. more += wsize
  4653. }
  4654. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) {
  4655. break
  4656. }
  4657. /* If there was no sliding:
  4658. * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
  4659. * more == window_size - lookahead - strstart
  4660. * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
  4661. * => more >= window_size - 2*WSIZE + 2
  4662. * In the BIG_MEM or MMAP case (not yet supported),
  4663. * window_size == input_size + MIN_LOOKAHEAD &&
  4664. * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
  4665. * Otherwise, window_size == 2*WSIZE so more >= 2.
  4666. * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
  4667. */
  4668. 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)
  4669. *(*TuInt)(unsafe.Pointer(s + 180)) += n
  4670. /* Initialize the hash value now that we have some input: */
  4671. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead+(*Tdeflate_state)(unsafe.Pointer(s)).Finsert >= uint32(m_MIN_MATCH) {
  4672. str = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  4673. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(str))))
  4674. (*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
  4675. for (*Tdeflate_state)(unsafe.Pointer(s)).Finsert != 0 {
  4676. (*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
  4677. *(*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))
  4678. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16(str)
  4679. str++
  4680. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert--
  4681. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead+(*Tdeflate_state)(unsafe.Pointer(s)).Finsert < uint32(m_MIN_MATCH) {
  4682. break
  4683. }
  4684. }
  4685. }
  4686. /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
  4687. * but this is not important since only literal bytes will be emitted.
  4688. */
  4689. }
  4690. /* If the WIN_INIT bytes after the end of the current data have never been
  4691. * written, then zero those bytes in order to avoid memory check reports of
  4692. * the use of uninitialized (or uninitialised as Julian writes) bytes by
  4693. * the longest match routines. Update the high water mark for the next
  4694. * time through here. WIN_INIT is set to MAX_MATCH since the longest match
  4695. * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.
  4696. */
  4697. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size {
  4698. curr = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uint64((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead)
  4699. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < curr {
  4700. /* Previous high water mark below current data -- zero WIN_INIT
  4701. * bytes or up to end of window, whichever is less.
  4702. */
  4703. init1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - curr
  4704. if init1 > uint64(m_MAX_MATCH) {
  4705. init1 = uint64(m_MAX_MATCH)
  4706. }
  4707. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr(curr), 0, uint64(uint32(init1)))
  4708. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = curr + init1
  4709. } else {
  4710. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < curr+uint64(m_MAX_MATCH) {
  4711. /* High water mark at or above current data, but below current data
  4712. * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up
  4713. * to end of window, whichever is less.
  4714. */
  4715. init1 = curr + uint64(m_MAX_MATCH) - (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water
  4716. if init1 > (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size-(*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water {
  4717. init1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water
  4718. }
  4719. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water), 0, uint64(uint32(init1)))
  4720. *(*Tulg)(unsafe.Pointer(s + 5944)) += init1
  4721. }
  4722. }
  4723. }
  4724. }
  4725. // C documentation
  4726. //
  4727. // /* ========================================================================= */
  4728. func XdeflateInit_(tls *libc.TLS, strm Tz_streamp, level int32, version uintptr, stream_size int32) (r int32) {
  4729. 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)
  4730. /* To do: ignore strm->next_in if we use it as window */
  4731. }
  4732. // C documentation
  4733. //
  4734. // /* ========================================================================= */
  4735. 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) {
  4736. var s uintptr
  4737. var wrap int32
  4738. _, _ = s, wrap
  4739. wrap = int32(1)
  4740. if version == uintptr(m_Z_NULL) || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(version))) != libc.Int32FromUint8(_my_version[0]) || libc.Uint64FromInt32(stream_size) != uint64(112) {
  4741. return -int32(6)
  4742. }
  4743. if strm == uintptr(m_Z_NULL) {
  4744. return -int32(2)
  4745. }
  4746. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  4747. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  4748. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  4749. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  4750. }
  4751. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  4752. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  4753. }
  4754. if level == -int32(1) {
  4755. level = int32(6)
  4756. }
  4757. if windowBits < 0 { /* suppress zlib wrapper */
  4758. wrap = 0
  4759. if windowBits < -int32(15) {
  4760. return -int32(2)
  4761. }
  4762. windowBits = -windowBits
  4763. } else {
  4764. if windowBits > int32(15) {
  4765. wrap = int32(2) /* write gzip wrapper instead */
  4766. windowBits -= int32(16)
  4767. }
  4768. }
  4769. 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) {
  4770. return -int32(2)
  4771. }
  4772. if windowBits == int32(8) {
  4773. windowBits = int32(9)
  4774. } /* until 256-byte window bug fixed */
  4775. s = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, libc.Uint32FromInt32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(5952)))
  4776. if s == uintptr(m_Z_NULL) {
  4777. return -int32(4)
  4778. }
  4779. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = s
  4780. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm = strm
  4781. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_INIT_STATE) /* to pass state test in deflateReset() */
  4782. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = wrap
  4783. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead = uintptr(m_Z_NULL)
  4784. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits = libc.Uint32FromInt32(windowBits)
  4785. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size = libc.Uint32FromInt32(int32(1) << (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits)
  4786. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - uint32(1)
  4787. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits = libc.Uint32FromInt32(memLevel) + uint32(7)
  4788. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size = libc.Uint32FromInt32(int32(1) << (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits)
  4789. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask = (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size - uint32(1)
  4790. (*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)
  4791. (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size, uint32(libc.Uint64FromInt32(2)*libc.Uint64FromInt64(1)))
  4792. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size, uint32(libc.Uint64FromInt64(2)))
  4793. (*Tdeflate_state)(unsafe.Pointer(s)).Fhead = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size, uint32(libc.Uint64FromInt64(2)))
  4794. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint64(0) /* nothing written to s->window yet */
  4795. (*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize = libc.Uint32FromInt32(int32(1) << (memLevel + int32(6))) /* 16K elements by default */
  4796. /* We overlay pending_buf and sym_buf. This works since the average size
  4797. * for length/distance pairs over any compressed block is assured to be 31
  4798. * bits or less.
  4799. *
  4800. * Analysis: The longest fixed codes are a length code of 8 bits plus 5
  4801. * extra bits, for lengths 131 to 257. The longest fixed distance codes are
  4802. * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest
  4803. * possible fixed-codes length/distance pair is then 31 bits total.
  4804. *
  4805. * sym_buf starts one-fourth of the way into pending_buf. So there are
  4806. * three bytes in sym_buf for every four bytes in pending_buf. Each symbol
  4807. * in sym_buf is three bytes -- two for the distance and one for the
  4808. * literal/length. As each symbol is consumed, the pointer to the next
  4809. * sym_buf value to read moves forward three bytes. From that symbol, up to
  4810. * 31 bits are written to pending_buf. The closest the written pending_buf
  4811. * bits gets to the next sym_buf symbol to read is just before the last
  4812. * code is written. At that time, 31*(n - 2) bits have been written, just
  4813. * after 24*(n - 2) bits have been consumed from sym_buf. sym_buf starts at
  4814. * 8*n bits into pending_buf. (Note that the symbol buffer fills when n - 1
  4815. * symbols are written.) The closest the writing gets to what is unread is
  4816. * then n + 14 bits. Here n is lit_bufsize, which is 16384 by default, and
  4817. * can range from 128 to 32768.
  4818. *
  4819. * Therefore, at a minimum, there are 142 bits of space between what is
  4820. * written and what is read in the overlain buffers, so the symbols cannot
  4821. * be overwritten by the compressed data. That space is actually 139 bits,
  4822. * due to the three-bit fixed-code block header.
  4823. *
  4824. * That covers the case where either Z_FIXED is specified, forcing fixed
  4825. * codes, or when the use of fixed codes is chosen, because that choice
  4826. * results in a smaller compressed block than dynamic codes. That latter
  4827. * condition then assures that the above analysis also covers all dynamic
  4828. * blocks. A dynamic-code block will only be chosen to be emitted if it has
  4829. * fewer bits than a fixed-code block would for the same set of symbols.
  4830. * Therefore its average symbol length is assured to be less than 31. So
  4831. * the compressed data for a dynamic block also cannot overwrite the
  4832. * symbols from which it is being constructed.
  4833. */
  4834. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize, libc.Uint32FromInt32(libc.Int32FromInt32(m_LIT_BUFS)))
  4835. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize) * uint64(4)
  4836. 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) {
  4837. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_FINISH_STATE)
  4838. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(4)]
  4839. XdeflateEnd(tls, strm)
  4840. return -int32(4)
  4841. }
  4842. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize)
  4843. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end = ((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize - uint32(1)) * uint32(3)
  4844. /* We avoid equality with lit_bufsize*3 because of wraparound at 64K
  4845. * on 16 bit machines and because stored blocks are restricted to
  4846. * 64K-1 bytes.
  4847. */
  4848. (*Tdeflate_state)(unsafe.Pointer(s)).Flevel = level
  4849. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy = strategy
  4850. (*Tdeflate_state)(unsafe.Pointer(s)).Fmethod = libc.Uint8FromInt32(method)
  4851. return XdeflateReset(tls, strm)
  4852. }
  4853. var _my_version = [6]uint8{'1', '.', '3', '.', '1'}
  4854. // C documentation
  4855. //
  4856. // /* =========================================================================
  4857. // * Check for a valid deflate stream state. Return 0 if ok, 1 if not.
  4858. // */
  4859. func _deflateStateCheck(tls *libc.TLS, strm Tz_streamp) (r int32) {
  4860. var s uintptr
  4861. _ = s
  4862. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  4863. return int32(1)
  4864. }
  4865. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4866. 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) {
  4867. return int32(1)
  4868. }
  4869. return 0
  4870. }
  4871. // C documentation
  4872. //
  4873. // /* ========================================================================= */
  4874. func XdeflateSetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength TuInt) (r int32) {
  4875. var avail uint32
  4876. var n, str, v1, v3 TuInt
  4877. var next, s uintptr
  4878. var wrap int32
  4879. _, _, _, _, _, _, _, _ = avail, n, next, s, str, wrap, v1, v3
  4880. if _deflateStateCheck(tls, strm) != 0 || dictionary == uintptr(m_Z_NULL) {
  4881. return -int32(2)
  4882. }
  4883. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4884. wrap = (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap
  4885. if wrap == int32(2) || wrap == int32(1) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_INIT_STATE) || (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead != 0 {
  4886. return -int32(2)
  4887. }
  4888. /* when using zlib wrappers, compute Adler-32 for provided dictionary */
  4889. if wrap == int32(1) {
  4890. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, dictionary, dictLength)
  4891. }
  4892. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = 0 /* avoid computing Adler-32 in read_buf */
  4893. /* if dictionary would fill window, just replace the history */
  4894. if dictLength >= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  4895. if wrap == 0 { /* already empty otherwise */
  4896. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  4897. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  4898. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  4899. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  4900. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  4901. }
  4902. dictionary += uintptr(dictLength - (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) /* use the tail */
  4903. dictLength = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4904. }
  4905. /* insert dictionary into window and hash */
  4906. avail = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  4907. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  4908. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = dictLength
  4909. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = dictionary
  4910. _fill_window(tls, s)
  4911. for (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  4912. str = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  4913. n = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))
  4914. for {
  4915. (*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
  4916. *(*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))
  4917. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16(str)
  4918. str++
  4919. goto _2
  4920. _2:
  4921. ;
  4922. n--
  4923. v1 = n
  4924. if !(v1 != 0) {
  4925. break
  4926. }
  4927. }
  4928. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = str
  4929. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  4930. _fill_window(tls, s)
  4931. }
  4932. *(*TuInt)(unsafe.Pointer(s + 172)) += (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  4933. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  4934. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  4935. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(0)
  4936. v3 = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  4937. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = v3
  4938. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = v3
  4939. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  4940. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  4941. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = avail
  4942. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = wrap
  4943. return m_Z_OK
  4944. }
  4945. // C documentation
  4946. //
  4947. // /* ========================================================================= */
  4948. func XdeflateGetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength uintptr) (r int32) {
  4949. var len1 TuInt
  4950. var s uintptr
  4951. _, _ = len1, s
  4952. if _deflateStateCheck(tls, strm) != 0 {
  4953. return -int32(2)
  4954. }
  4955. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4956. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  4957. if len1 > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  4958. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4959. }
  4960. if dictionary != uintptr(m_Z_NULL) && len1 != 0 {
  4961. libc.Xmemcpy(tls, dictionary, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead)-uintptr(len1), uint64(len1))
  4962. }
  4963. if dictLength != uintptr(m_Z_NULL) {
  4964. *(*TuInt)(unsafe.Pointer(dictLength)) = len1
  4965. }
  4966. return m_Z_OK
  4967. }
  4968. // C documentation
  4969. //
  4970. // /* ========================================================================= */
  4971. func XdeflateResetKeep(tls *libc.TLS, strm Tz_streamp) (r int32) {
  4972. var s uintptr
  4973. var v1 TuLong
  4974. var v2 int32
  4975. var v3 uint64
  4976. _, _, _, _ = s, v1, v2, v3
  4977. if _deflateStateCheck(tls, strm) != 0 {
  4978. return -int32(2)
  4979. }
  4980. v1 = libc.Uint64FromInt32(0)
  4981. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = v1
  4982. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = v1
  4983. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* use zfree if we ever allocate msg dynamically */
  4984. (*Tz_stream)(unsafe.Pointer(strm)).Fdata_type = int32(m_Z_UNKNOWN)
  4985. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4986. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending = uint64(0)
  4987. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf
  4988. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap < 0 {
  4989. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = -(*Tdeflate_state)(unsafe.Pointer(s)).Fwrap /* was made negative by deflate(..., Z_FINISH); */
  4990. }
  4991. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  4992. v2 = int32(m_GZIP_STATE)
  4993. } else {
  4994. v2 = int32(m_INIT_STATE)
  4995. }
  4996. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = v2
  4997. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  4998. v3 = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  4999. } else {
  5000. v3 = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  5001. }
  5002. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v3
  5003. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(2)
  5004. x__tr_init(tls, s)
  5005. return m_Z_OK
  5006. }
  5007. // C documentation
  5008. //
  5009. // /* ===========================================================================
  5010. // * Initialize the "longest match" routines for a new zlib stream
  5011. // */
  5012. func _lm_init(tls *libc.TLS, s uintptr) {
  5013. var v1 TuInt
  5014. _ = v1
  5015. (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size = libc.Uint64FromInt64(2) * uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  5016. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  5017. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  5018. /* Set the default configuration parameters:
  5019. */
  5020. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fmax_lazy)
  5021. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fgood_length)
  5022. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = libc.Int32FromUint16(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fnice_length)
  5023. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fmax_chain)
  5024. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  5025. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  5026. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(0)
  5027. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  5028. v1 = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  5029. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = v1
  5030. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = v1
  5031. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  5032. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(0)
  5033. }
  5034. // C documentation
  5035. //
  5036. // /* ========================================================================= */
  5037. func XdeflateReset(tls *libc.TLS, strm Tz_streamp) (r int32) {
  5038. var ret int32
  5039. _ = ret
  5040. ret = XdeflateResetKeep(tls, strm)
  5041. if ret == m_Z_OK {
  5042. _lm_init(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fstate)
  5043. }
  5044. return ret
  5045. }
  5046. // C documentation
  5047. //
  5048. // /* ========================================================================= */
  5049. func XdeflateSetHeader(tls *libc.TLS, strm Tz_streamp, head Tgz_headerp) (r int32) {
  5050. if _deflateStateCheck(tls, strm) != 0 || (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap != int32(2) {
  5051. return -int32(2)
  5052. }
  5053. (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fgzhead = head
  5054. return m_Z_OK
  5055. }
  5056. // C documentation
  5057. //
  5058. // /* ========================================================================= */
  5059. func XdeflatePending(tls *libc.TLS, strm Tz_streamp, pending uintptr, bits uintptr) (r int32) {
  5060. if _deflateStateCheck(tls, strm) != 0 {
  5061. return -int32(2)
  5062. }
  5063. if pending != uintptr(m_Z_NULL) {
  5064. *(*uint32)(unsafe.Pointer(pending)) = uint32((*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending)
  5065. }
  5066. if bits != uintptr(m_Z_NULL) {
  5067. *(*int32)(unsafe.Pointer(bits)) = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fbi_valid
  5068. }
  5069. return m_Z_OK
  5070. }
  5071. // C documentation
  5072. //
  5073. // /* ========================================================================= */
  5074. func XdeflatePrime(tls *libc.TLS, strm Tz_streamp, bits int32, value int32) (r int32) {
  5075. var put int32
  5076. var s, p1 uintptr
  5077. _, _, _ = put, s, p1
  5078. if _deflateStateCheck(tls, strm) != 0 {
  5079. return -int32(2)
  5080. }
  5081. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5082. 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)) {
  5083. return -int32(5)
  5084. }
  5085. for cond := true; cond; cond = bits != 0 {
  5086. put = int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid
  5087. if put > bits {
  5088. put = bits
  5089. }
  5090. p1 = s + 5936
  5091. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | libc.Int32FromUint16(libc.Uint16FromInt32(value&(libc.Int32FromInt32(1)<<put-libc.Int32FromInt32(1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)))
  5092. *(*int32)(unsafe.Pointer(s + 5940)) += put
  5093. x__tr_flush_bits(tls, s)
  5094. value >>= put
  5095. bits -= put
  5096. }
  5097. return m_Z_OK
  5098. }
  5099. // C documentation
  5100. //
  5101. // /* ========================================================================= */
  5102. func XdeflateParams(tls *libc.TLS, strm Tz_streamp, level int32, strategy int32) (r int32) {
  5103. var err int32
  5104. var func1 Tcompress_func
  5105. var s uintptr
  5106. _, _, _ = err, func1, s
  5107. if _deflateStateCheck(tls, strm) != 0 {
  5108. return -int32(2)
  5109. }
  5110. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5111. if level == -int32(1) {
  5112. level = int32(6)
  5113. }
  5114. if level < 0 || level > int32(9) || strategy < 0 || strategy > int32(m_Z_FIXED) {
  5115. return -int32(2)
  5116. }
  5117. func1 = _configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Ffunc1
  5118. if (strategy != (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy || func1 != _configuration_table[level].Ffunc1) && (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush != -int32(2) {
  5119. /* Flush the last buffer: */
  5120. err = Xdeflate(tls, strm, int32(m_Z_BLOCK))
  5121. if err == -int32(2) {
  5122. return err
  5123. }
  5124. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 || libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start+libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead) != 0 {
  5125. return -int32(5)
  5126. }
  5127. }
  5128. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel != level {
  5129. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches != uint32(0) {
  5130. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches == uint32(1) {
  5131. _slide_hash(tls, s)
  5132. } else {
  5133. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  5134. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  5135. }
  5136. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = uint32(0)
  5137. }
  5138. (*Tdeflate_state)(unsafe.Pointer(s)).Flevel = level
  5139. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(_configuration_table[level].Fmax_lazy)
  5140. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(_configuration_table[level].Fgood_length)
  5141. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = libc.Int32FromUint16(_configuration_table[level].Fnice_length)
  5142. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(_configuration_table[level].Fmax_chain)
  5143. }
  5144. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy = strategy
  5145. return m_Z_OK
  5146. }
  5147. // C documentation
  5148. //
  5149. // /* ========================================================================= */
  5150. func XdeflateTune(tls *libc.TLS, strm Tz_streamp, good_length int32, max_lazy int32, nice_length int32, max_chain int32) (r int32) {
  5151. var s uintptr
  5152. _ = s
  5153. if _deflateStateCheck(tls, strm) != 0 {
  5154. return -int32(2)
  5155. }
  5156. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5157. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = libc.Uint32FromInt32(good_length)
  5158. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = libc.Uint32FromInt32(max_lazy)
  5159. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = nice_length
  5160. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = libc.Uint32FromInt32(max_chain)
  5161. return m_Z_OK
  5162. }
  5163. // C documentation
  5164. //
  5165. // /* =========================================================================
  5166. // * For the default windowBits of 15 and memLevel of 8, this function returns a
  5167. // * close to exact, as well as small, upper bound on the compressed size. This
  5168. // * is an expansion of ~0.03%, plus a small constant.
  5169. // *
  5170. // * For any setting other than those defaults for windowBits and memLevel, one
  5171. // * of two worst case bounds is returned. This is at most an expansion of ~4% or
  5172. // * ~13%, plus a small constant.
  5173. // *
  5174. // * Both the 0.03% and 4% derive from the overhead of stored blocks. The first
  5175. // * one is for stored blocks of 16383 bytes (memLevel == 8), whereas the second
  5176. // * is for stored blocks of 127 bytes (the worst case memLevel == 1). The
  5177. // * expansion results from five bytes of header for each stored block.
  5178. // *
  5179. // * The larger expansion of 13% results from a window size less than or equal to
  5180. // * the symbols buffer size (windowBits <= memLevel + 7). In that case some of
  5181. // * the data being compressed may have slid out of the sliding window, impeding
  5182. // * a stored block from being emitted. Then the only choice is a fixed or
  5183. // * dynamic block, where a fixed block limits the maximum expansion to 9 bits
  5184. // * per 8-bit byte, plus 10 bits for every block. The smallest block size for
  5185. // * which this can occur is 255 (memLevel == 2).
  5186. // *
  5187. // * Shifts are used to approximate divisions, for speed.
  5188. // */
  5189. func XdeflateBound(tls *libc.TLS, strm Tz_streamp, sourceLen TuLong) (r TuLong) {
  5190. var fixedlen, storelen, wraplen TuLong
  5191. var s, str, v3, v5 uintptr
  5192. var v1, v7 uint64
  5193. var v2 int32
  5194. _, _, _, _, _, _, _, _, _, _ = fixedlen, s, storelen, str, wraplen, v1, v2, v3, v5, v7
  5195. /* upper bound for fixed blocks with 9-bit literals and length 255
  5196. (memLevel == 2, which is the lowest that may not use stored blocks) --
  5197. ~13% overhead plus a small constant */
  5198. fixedlen = sourceLen + sourceLen>>libc.Int32FromInt32(3) + sourceLen>>libc.Int32FromInt32(8) + sourceLen>>libc.Int32FromInt32(9) + uint64(4)
  5199. /* upper bound for stored blocks with length 127 (memLevel == 1) --
  5200. ~4% overhead plus a small constant */
  5201. storelen = sourceLen + sourceLen>>libc.Int32FromInt32(5) + sourceLen>>libc.Int32FromInt32(7) + sourceLen>>libc.Int32FromInt32(11) + uint64(7)
  5202. /* if can't get parameters, return larger bound plus a zlib wrapper */
  5203. if _deflateStateCheck(tls, strm) != 0 {
  5204. if fixedlen > storelen {
  5205. v1 = fixedlen
  5206. } else {
  5207. v1 = storelen
  5208. }
  5209. return v1 + uint64(6)
  5210. }
  5211. /* compute wrapper length */
  5212. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5213. switch (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap {
  5214. case 0: /* raw deflate */
  5215. wraplen = uint64(0)
  5216. case int32(1): /* zlib wrapper */
  5217. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != 0 {
  5218. v2 = int32(4)
  5219. } else {
  5220. v2 = 0
  5221. }
  5222. wraplen = libc.Uint64FromInt32(int32(6) + v2)
  5223. case int32(2): /* gzip wrapper */
  5224. wraplen = uint64(18)
  5225. if (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead != uintptr(m_Z_NULL) {
  5226. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  5227. wraplen += uint64(uint32(2) + (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len)
  5228. }
  5229. str = (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname
  5230. if str != uintptr(m_Z_NULL) {
  5231. for {
  5232. wraplen++
  5233. goto _4
  5234. _4:
  5235. ;
  5236. v3 = str
  5237. str++
  5238. if !(*(*TBytef)(unsafe.Pointer(v3)) != 0) {
  5239. break
  5240. }
  5241. }
  5242. }
  5243. str = (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment
  5244. if str != uintptr(m_Z_NULL) {
  5245. for {
  5246. wraplen++
  5247. goto _6
  5248. _6:
  5249. ;
  5250. v5 = str
  5251. str++
  5252. if !(*(*TBytef)(unsafe.Pointer(v5)) != 0) {
  5253. break
  5254. }
  5255. }
  5256. }
  5257. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5258. wraplen += uint64(2)
  5259. }
  5260. }
  5261. default: /* for compiler happiness */
  5262. wraplen = uint64(6)
  5263. }
  5264. /* if not default parameters, return one of the conservative bounds */
  5265. if (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits != uint32(15) || (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits != libc.Uint32FromInt32(libc.Int32FromInt32(8)+libc.Int32FromInt32(7)) {
  5266. if (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits <= (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits && (*Tdeflate_state)(unsafe.Pointer(s)).Flevel != 0 {
  5267. v7 = fixedlen
  5268. } else {
  5269. v7 = storelen
  5270. }
  5271. return v7 + wraplen
  5272. }
  5273. /* default settings: return tight bound for that case -- ~0.03% overhead
  5274. plus a small constant */
  5275. return sourceLen + sourceLen>>libc.Int32FromInt32(12) + sourceLen>>libc.Int32FromInt32(14) + sourceLen>>libc.Int32FromInt32(25) + uint64(13) - uint64(6) + wraplen
  5276. }
  5277. // C documentation
  5278. //
  5279. // /* =========================================================================
  5280. // * Put a short in the pending buffer. The 16-bit value is put in MSB order.
  5281. // * IN assertion: the stream state is correct and there is enough room in
  5282. // * pending_buf.
  5283. // */
  5284. func _putShortMSB(tls *libc.TLS, s uintptr, b TuInt) {
  5285. var v1, v3 Tulg
  5286. var v2, v4 uintptr
  5287. _, _, _, _ = v1, v2, v3, v4
  5288. v2 = s + 40
  5289. v1 = *(*Tulg)(unsafe.Pointer(v2))
  5290. *(*Tulg)(unsafe.Pointer(v2))++
  5291. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = uint8(b >> libc.Int32FromInt32(8))
  5292. v4 = s + 40
  5293. v3 = *(*Tulg)(unsafe.Pointer(v4))
  5294. *(*Tulg)(unsafe.Pointer(v4))++
  5295. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(b & libc.Uint32FromInt32(0xff))
  5296. }
  5297. // C documentation
  5298. //
  5299. // /* =========================================================================
  5300. // * Flush as much pending output as possible. All deflate() output, except for
  5301. // * some deflate_stored() output, goes through this function so some
  5302. // * applications may wish to modify it to avoid allocating a large
  5303. // * strm->next_out buffer and copying into it. (See also read_buf()).
  5304. // */
  5305. func _flush_pending(tls *libc.TLS, strm Tz_streamp) {
  5306. var len1 uint32
  5307. var s uintptr
  5308. _, _ = len1, s
  5309. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5310. x__tr_flush_bits(tls, s)
  5311. len1 = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending)
  5312. if len1 > (*Tz_stream)(unsafe.Pointer(strm)).Favail_out {
  5313. len1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  5314. }
  5315. if len1 == uint32(0) {
  5316. return
  5317. }
  5318. libc.Xmemcpy(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out, uint64(len1))
  5319. *(*uintptr)(unsafe.Pointer(strm + 24)) += uintptr(len1)
  5320. *(*uintptr)(unsafe.Pointer(s + 32)) += uintptr(len1)
  5321. *(*TuLong)(unsafe.Pointer(strm + 40)) += uint64(len1)
  5322. *(*TuInt)(unsafe.Pointer(strm + 32)) -= len1
  5323. *(*Tulg)(unsafe.Pointer(s + 40)) -= uint64(len1)
  5324. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == uint64(0) {
  5325. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf
  5326. }
  5327. }
  5328. /* ===========================================================================
  5329. * Update the header CRC with the bytes s->pending_buf[beg..s->pending - 1].
  5330. */
  5331. // C documentation
  5332. //
  5333. // /* ========================================================================= */
  5334. func Xdeflate(tls *libc.TLS, strm Tz_streamp, flush int32) (r int32) {
  5335. 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
  5336. var bstate Tblock_state
  5337. var copy1, header, left, level_flags TuInt
  5338. var old_flush, val, val1, v1, v2, v22, v23, v28, v29, v30, v31, v32, v43, v44, v63, v64, v65, v82 int32
  5339. 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
  5340. var v3 bool
  5341. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  5342. if _deflateStateCheck(tls, strm) != 0 || flush > int32(m_Z_BLOCK) || flush < 0 {
  5343. return -int32(2)
  5344. }
  5345. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5346. 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) {
  5347. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(2)]
  5348. return -libc.Int32FromInt32(2)
  5349. }
  5350. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5351. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  5352. return -libc.Int32FromInt32(5)
  5353. }
  5354. old_flush = (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush
  5355. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = flush
  5356. /* Flush as much pending output as possible */
  5357. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5358. _flush_pending(tls, strm)
  5359. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5360. /* Since avail_out is 0, deflate will be called again with
  5361. * more output space, but possibly with both pending and
  5362. * avail_in equal to zero. There won't be anything to do,
  5363. * but this is not an error situation so make sure we
  5364. * return OK instead of BUF_ERROR at next call of deflate:
  5365. */
  5366. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5367. return m_Z_OK
  5368. }
  5369. /* Make sure there is something to do and avoid duplicate consecutive
  5370. * flushes. For repeated and useless calls with Z_FINISH, we keep
  5371. * returning Z_STREAM_END instead of Z_BUF_ERROR.
  5372. */
  5373. } else {
  5374. if v3 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0); v3 {
  5375. if flush > int32(4) {
  5376. v1 = int32(9)
  5377. } else {
  5378. v1 = 0
  5379. }
  5380. if old_flush > int32(4) {
  5381. v2 = int32(9)
  5382. } else {
  5383. v2 = 0
  5384. }
  5385. }
  5386. if v3 && flush*int32(2)-v1 <= old_flush*int32(2)-v2 && flush != int32(m_Z_FINISH) {
  5387. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  5388. return -libc.Int32FromInt32(5)
  5389. }
  5390. }
  5391. /* User must not provide more input after the first FINISH: */
  5392. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_FINISH_STATE) && (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != uint32(0) {
  5393. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  5394. return -libc.Int32FromInt32(5)
  5395. }
  5396. /* Write the header */
  5397. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_INIT_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == 0 {
  5398. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5399. }
  5400. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_INIT_STATE) {
  5401. /* zlib header */
  5402. header = (uint32(m_Z_DEFLATED) + ((*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits-uint32(8))<<int32(4)) << int32(8)
  5403. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  5404. level_flags = uint32(0)
  5405. } else {
  5406. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(6) {
  5407. level_flags = uint32(1)
  5408. } else {
  5409. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(6) {
  5410. level_flags = uint32(2)
  5411. } else {
  5412. level_flags = uint32(3)
  5413. }
  5414. }
  5415. }
  5416. header |= level_flags << libc.Int32FromInt32(6)
  5417. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != uint32(0) {
  5418. header |= uint32(m_PRESET_DICT1)
  5419. }
  5420. header += uint32(31) - header%uint32(31)
  5421. _putShortMSB(tls, s, header)
  5422. /* Save the adler32 of the preset dictionary: */
  5423. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != uint32(0) {
  5424. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler>>libc.Int32FromInt32(16)))
  5425. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler&libc.Uint64FromInt32(0xffff)))
  5426. }
  5427. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  5428. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5429. /* Compression must start with an empty pending buffer */
  5430. _flush_pending(tls, strm)
  5431. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5432. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5433. return m_Z_OK
  5434. }
  5435. }
  5436. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_GZIP_STATE) {
  5437. /* gzip header */
  5438. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  5439. v5 = s + 40
  5440. v4 = *(*Tulg)(unsafe.Pointer(v5))
  5441. *(*Tulg)(unsafe.Pointer(v5))++
  5442. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = libc.Uint8FromInt32(libc.Int32FromInt32(31))
  5443. v7 = s + 40
  5444. v6 = *(*Tulg)(unsafe.Pointer(v7))
  5445. *(*Tulg)(unsafe.Pointer(v7))++
  5446. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v6))) = libc.Uint8FromInt32(libc.Int32FromInt32(139))
  5447. v9 = s + 40
  5448. v8 = *(*Tulg)(unsafe.Pointer(v9))
  5449. *(*Tulg)(unsafe.Pointer(v9))++
  5450. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = libc.Uint8FromInt32(libc.Int32FromInt32(8))
  5451. if (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead == uintptr(m_Z_NULL) {
  5452. v11 = s + 40
  5453. v10 = *(*Tulg)(unsafe.Pointer(v11))
  5454. *(*Tulg)(unsafe.Pointer(v11))++
  5455. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = libc.Uint8FromInt32(libc.Int32FromInt32(0))
  5456. v13 = s + 40
  5457. v12 = *(*Tulg)(unsafe.Pointer(v13))
  5458. *(*Tulg)(unsafe.Pointer(v13))++
  5459. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v12))) = libc.Uint8FromInt32(libc.Int32FromInt32(0))
  5460. v15 = s + 40
  5461. v14 = *(*Tulg)(unsafe.Pointer(v15))
  5462. *(*Tulg)(unsafe.Pointer(v15))++
  5463. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = libc.Uint8FromInt32(libc.Int32FromInt32(0))
  5464. v17 = s + 40
  5465. v16 = *(*Tulg)(unsafe.Pointer(v17))
  5466. *(*Tulg)(unsafe.Pointer(v17))++
  5467. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v16))) = libc.Uint8FromInt32(libc.Int32FromInt32(0))
  5468. v19 = s + 40
  5469. v18 = *(*Tulg)(unsafe.Pointer(v19))
  5470. *(*Tulg)(unsafe.Pointer(v19))++
  5471. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v18))) = libc.Uint8FromInt32(libc.Int32FromInt32(0))
  5472. v21 = s + 40
  5473. v20 = *(*Tulg)(unsafe.Pointer(v21))
  5474. *(*Tulg)(unsafe.Pointer(v21))++
  5475. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(9) {
  5476. v22 = int32(2)
  5477. } else {
  5478. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  5479. v23 = int32(4)
  5480. } else {
  5481. v23 = 0
  5482. }
  5483. v22 = v23
  5484. }
  5485. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v20))) = libc.Uint8FromInt32(v22)
  5486. v25 = s + 40
  5487. v24 = *(*Tulg)(unsafe.Pointer(v25))
  5488. *(*Tulg)(unsafe.Pointer(v25))++
  5489. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = libc.Uint8FromInt32(libc.Int32FromInt32(m_OS_CODE))
  5490. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5491. /* Compression must start with an empty pending buffer */
  5492. _flush_pending(tls, strm)
  5493. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5494. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5495. return m_Z_OK
  5496. }
  5497. } else {
  5498. v27 = s + 40
  5499. v26 = *(*Tulg)(unsafe.Pointer(v27))
  5500. *(*Tulg)(unsafe.Pointer(v27))++
  5501. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftext != 0 {
  5502. v28 = int32(1)
  5503. } else {
  5504. v28 = 0
  5505. }
  5506. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5507. v29 = int32(2)
  5508. } else {
  5509. v29 = 0
  5510. }
  5511. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra == uintptr(m_Z_NULL) {
  5512. v30 = 0
  5513. } else {
  5514. v30 = int32(4)
  5515. }
  5516. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname == uintptr(m_Z_NULL) {
  5517. v31 = 0
  5518. } else {
  5519. v31 = int32(8)
  5520. }
  5521. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment == uintptr(m_Z_NULL) {
  5522. v32 = 0
  5523. } else {
  5524. v32 = int32(16)
  5525. }
  5526. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = libc.Uint8FromInt32(v28 + v29 + v30 + v31 + v32)
  5527. v34 = s + 40
  5528. v33 = *(*Tulg)(unsafe.Pointer(v34))
  5529. *(*Tulg)(unsafe.Pointer(v34))++
  5530. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v33))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftime & libc.Uint64FromInt32(0xff))
  5531. v36 = s + 40
  5532. v35 = *(*Tulg)(unsafe.Pointer(v36))
  5533. *(*Tulg)(unsafe.Pointer(v36))++
  5534. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v35))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftime >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(0xff))
  5535. v38 = s + 40
  5536. v37 = *(*Tulg)(unsafe.Pointer(v38))
  5537. *(*Tulg)(unsafe.Pointer(v38))++
  5538. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v37))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftime >> libc.Int32FromInt32(16) & libc.Uint64FromInt32(0xff))
  5539. v40 = s + 40
  5540. v39 = *(*Tulg)(unsafe.Pointer(v40))
  5541. *(*Tulg)(unsafe.Pointer(v40))++
  5542. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v39))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftime >> libc.Int32FromInt32(24) & libc.Uint64FromInt32(0xff))
  5543. v42 = s + 40
  5544. v41 = *(*Tulg)(unsafe.Pointer(v42))
  5545. *(*Tulg)(unsafe.Pointer(v42))++
  5546. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(9) {
  5547. v43 = int32(2)
  5548. } else {
  5549. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  5550. v44 = int32(4)
  5551. } else {
  5552. v44 = 0
  5553. }
  5554. v43 = v44
  5555. }
  5556. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v41))) = libc.Uint8FromInt32(v43)
  5557. v46 = s + 40
  5558. v45 = *(*Tulg)(unsafe.Pointer(v46))
  5559. *(*Tulg)(unsafe.Pointer(v46))++
  5560. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v45))) = libc.Uint8FromInt32((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fos & libc.Int32FromInt32(0xff))
  5561. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  5562. v48 = s + 40
  5563. v47 = *(*Tulg)(unsafe.Pointer(v48))
  5564. *(*Tulg)(unsafe.Pointer(v48))++
  5565. *(*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))
  5566. v50 = s + 40
  5567. v49 = *(*Tulg)(unsafe.Pointer(v50))
  5568. *(*Tulg)(unsafe.Pointer(v50))++
  5569. *(*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))
  5570. }
  5571. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5572. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf, uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending))
  5573. }
  5574. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint64(0)
  5575. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_EXTRA_STATE)
  5576. }
  5577. }
  5578. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_EXTRA_STATE) {
  5579. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  5580. beg = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending /* start of bytes to update crc */
  5581. left = uint32(uint64((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len&libc.Uint32FromInt32(0xffff)) - (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex)
  5582. for (*Tdeflate_state)(unsafe.Pointer(s)).Fpending+uint64(left) > (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5583. copy1 = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fpending)
  5584. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending), (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex), uint64(copy1))
  5585. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size
  5586. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg {
  5587. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg))
  5588. }
  5589. *(*Tulg)(unsafe.Pointer(s + 64)) += uint64(copy1)
  5590. _flush_pending(tls, strm)
  5591. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5592. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5593. return m_Z_OK
  5594. }
  5595. beg = uint64(0)
  5596. left -= copy1
  5597. }
  5598. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending), (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex), uint64(left))
  5599. *(*Tulg)(unsafe.Pointer(s + 40)) += uint64(left)
  5600. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg {
  5601. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg))
  5602. }
  5603. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint64(0)
  5604. }
  5605. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_NAME_STATE)
  5606. }
  5607. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_NAME_STATE) {
  5608. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname != uintptr(m_Z_NULL) {
  5609. beg1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  5610. for cond := true; cond; cond = val != 0 {
  5611. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5612. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg1 {
  5613. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg1), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg1))
  5614. }
  5615. _flush_pending(tls, strm)
  5616. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5617. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5618. return m_Z_OK
  5619. }
  5620. beg1 = uint64(0)
  5621. }
  5622. v52 = s + 64
  5623. v51 = *(*Tulg)(unsafe.Pointer(v52))
  5624. *(*Tulg)(unsafe.Pointer(v52))++
  5625. val = libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname + uintptr(v51))))
  5626. v54 = s + 40
  5627. v53 = *(*Tulg)(unsafe.Pointer(v54))
  5628. *(*Tulg)(unsafe.Pointer(v54))++
  5629. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v53))) = libc.Uint8FromInt32(val)
  5630. }
  5631. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg1 {
  5632. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg1), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg1))
  5633. }
  5634. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint64(0)
  5635. }
  5636. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_COMMENT_STATE)
  5637. }
  5638. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_COMMENT_STATE) {
  5639. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment != uintptr(m_Z_NULL) {
  5640. beg2 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  5641. for cond := true; cond; cond = val1 != 0 {
  5642. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5643. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg2 {
  5644. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg2), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg2))
  5645. }
  5646. _flush_pending(tls, strm)
  5647. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5648. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5649. return m_Z_OK
  5650. }
  5651. beg2 = uint64(0)
  5652. }
  5653. v56 = s + 64
  5654. v55 = *(*Tulg)(unsafe.Pointer(v56))
  5655. *(*Tulg)(unsafe.Pointer(v56))++
  5656. val1 = libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment + uintptr(v55))))
  5657. v58 = s + 40
  5658. v57 = *(*Tulg)(unsafe.Pointer(v58))
  5659. *(*Tulg)(unsafe.Pointer(v58))++
  5660. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v57))) = libc.Uint8FromInt32(val1)
  5661. }
  5662. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg2 {
  5663. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg2), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg2))
  5664. }
  5665. }
  5666. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_HCRC_STATE)
  5667. }
  5668. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_HCRC_STATE) {
  5669. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5670. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending+uint64(2) > (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5671. _flush_pending(tls, strm)
  5672. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5673. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5674. return m_Z_OK
  5675. }
  5676. }
  5677. v60 = s + 40
  5678. v59 = *(*Tulg)(unsafe.Pointer(v60))
  5679. *(*Tulg)(unsafe.Pointer(v60))++
  5680. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v59))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler & libc.Uint64FromInt32(0xff))
  5681. v62 = s + 40
  5682. v61 = *(*Tulg)(unsafe.Pointer(v62))
  5683. *(*Tulg)(unsafe.Pointer(v62))++
  5684. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v61))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(0xff))
  5685. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  5686. }
  5687. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5688. /* Compression must start with an empty pending buffer */
  5689. _flush_pending(tls, strm)
  5690. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5691. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5692. return m_Z_OK
  5693. }
  5694. }
  5695. /* Start a new block or continue the current one.
  5696. */
  5697. 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) {
  5698. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == 0 {
  5699. v63 = _deflate_stored(tls, s, flush)
  5700. } else {
  5701. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_HUFFMAN_ONLY) {
  5702. v64 = _deflate_huff(tls, s, flush)
  5703. } else {
  5704. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_RLE) {
  5705. v65 = _deflate_rle(tls, s, flush)
  5706. } else {
  5707. v65 = (*(*func(*libc.TLS, uintptr, int32) Tblock_state)(unsafe.Pointer(&struct{ uintptr }{_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Ffunc1})))(tls, s, flush)
  5708. }
  5709. v64 = v65
  5710. }
  5711. v63 = v64
  5712. }
  5713. bstate = v63
  5714. if bstate == int32(_finish_started) || bstate == int32(_finish_done) {
  5715. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_FINISH_STATE)
  5716. }
  5717. if bstate == int32(_need_more) || bstate == int32(_finish_started) {
  5718. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5719. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1) /* avoid BUF_ERROR next call, see above */
  5720. }
  5721. return m_Z_OK
  5722. /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
  5723. * of deflate should use the same flush parameter to make sure
  5724. * that the flush is complete. So we don't have to output an
  5725. * empty block here, this will be done at next call. This also
  5726. * ensures that for a very small output buffer, we emit at most
  5727. * one empty block.
  5728. */
  5729. }
  5730. if bstate == int32(_block_done) {
  5731. if flush == int32(m_Z_PARTIAL_FLUSH) {
  5732. x__tr_align(tls, s)
  5733. } else {
  5734. if flush != int32(m_Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */
  5735. x__tr_stored_block(tls, s, libc.UintptrFromInt32(0), uint64(0), 0)
  5736. /* For a full flush, this empty block will be recognized
  5737. * as a special marker by inflate_sync().
  5738. */
  5739. if flush == int32(m_Z_FULL_FLUSH) {
  5740. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  5741. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2)) /* forget history */
  5742. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  5743. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  5744. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  5745. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  5746. }
  5747. }
  5748. }
  5749. }
  5750. _flush_pending(tls, strm)
  5751. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5752. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1) /* avoid BUF_ERROR at next call, see above */
  5753. return m_Z_OK
  5754. }
  5755. }
  5756. }
  5757. if flush != int32(m_Z_FINISH) {
  5758. return m_Z_OK
  5759. }
  5760. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap <= 0 {
  5761. return int32(m_Z_STREAM_END)
  5762. }
  5763. /* Write the trailer */
  5764. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  5765. v67 = s + 40
  5766. v66 = *(*Tulg)(unsafe.Pointer(v67))
  5767. *(*Tulg)(unsafe.Pointer(v67))++
  5768. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v66))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler & libc.Uint64FromInt32(0xff))
  5769. v69 = s + 40
  5770. v68 = *(*Tulg)(unsafe.Pointer(v69))
  5771. *(*Tulg)(unsafe.Pointer(v69))++
  5772. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v68))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(0xff))
  5773. v71 = s + 40
  5774. v70 = *(*Tulg)(unsafe.Pointer(v71))
  5775. *(*Tulg)(unsafe.Pointer(v71))++
  5776. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v70))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(16) & libc.Uint64FromInt32(0xff))
  5777. v73 = s + 40
  5778. v72 = *(*Tulg)(unsafe.Pointer(v73))
  5779. *(*Tulg)(unsafe.Pointer(v73))++
  5780. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v72))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(24) & libc.Uint64FromInt32(0xff))
  5781. v75 = s + 40
  5782. v74 = *(*Tulg)(unsafe.Pointer(v75))
  5783. *(*Tulg)(unsafe.Pointer(v75))++
  5784. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v74))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in & libc.Uint64FromInt32(0xff))
  5785. v77 = s + 40
  5786. v76 = *(*Tulg)(unsafe.Pointer(v77))
  5787. *(*Tulg)(unsafe.Pointer(v77))++
  5788. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v76))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(0xff))
  5789. v79 = s + 40
  5790. v78 = *(*Tulg)(unsafe.Pointer(v79))
  5791. *(*Tulg)(unsafe.Pointer(v79))++
  5792. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v78))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(16) & libc.Uint64FromInt32(0xff))
  5793. v81 = s + 40
  5794. v80 = *(*Tulg)(unsafe.Pointer(v81))
  5795. *(*Tulg)(unsafe.Pointer(v81))++
  5796. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v80))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(24) & libc.Uint64FromInt32(0xff))
  5797. } else {
  5798. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler>>libc.Int32FromInt32(16)))
  5799. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler&libc.Uint64FromInt32(0xffff)))
  5800. }
  5801. _flush_pending(tls, strm)
  5802. /* If avail_out is zero, the application will call deflate again
  5803. * to flush the rest.
  5804. */
  5805. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap > 0 {
  5806. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = -(*Tdeflate_state)(unsafe.Pointer(s)).Fwrap
  5807. } /* write the trailer only once! */
  5808. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5809. v82 = m_Z_OK
  5810. } else {
  5811. v82 = int32(m_Z_STREAM_END)
  5812. }
  5813. return v82
  5814. }
  5815. // C documentation
  5816. //
  5817. // /* ========================================================================= */
  5818. func XdeflateEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  5819. var status, v1 int32
  5820. _, _ = status, v1
  5821. if _deflateStateCheck(tls, strm) != 0 {
  5822. return -int32(2)
  5823. }
  5824. status = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fstatus
  5825. /* Deallocate in reverse order of allocations: */
  5826. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending_buf != 0 {
  5827. (*(*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)
  5828. }
  5829. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fhead != 0 {
  5830. (*(*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)
  5831. }
  5832. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fprev != 0 {
  5833. (*(*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)
  5834. }
  5835. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwindow != 0 {
  5836. (*(*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)
  5837. }
  5838. (*(*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)
  5839. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  5840. if status == int32(m_BUSY_STATE) {
  5841. v1 = -int32(3)
  5842. } else {
  5843. v1 = m_Z_OK
  5844. }
  5845. return v1
  5846. }
  5847. // C documentation
  5848. //
  5849. // /* =========================================================================
  5850. // * Copy the source state to the destination state.
  5851. // * To simplify the source, this is not supported for 16-bit MSDOS (which
  5852. // * doesn't have enough memory anyway to duplicate compression states).
  5853. // */
  5854. func XdeflateCopy(tls *libc.TLS, dest Tz_streamp, source Tz_streamp) (r int32) {
  5855. var ds, ss uintptr
  5856. _, _ = ds, ss
  5857. if _deflateStateCheck(tls, source) != 0 || dest == uintptr(m_Z_NULL) {
  5858. return -int32(2)
  5859. }
  5860. ss = (*Tz_stream)(unsafe.Pointer(source)).Fstate
  5861. libc.Xmemcpy(tls, dest, source, uint64(112))
  5862. ds = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, libc.Uint32FromInt32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(5952)))
  5863. if ds == uintptr(m_Z_NULL) {
  5864. return -int32(4)
  5865. }
  5866. (*Tz_stream)(unsafe.Pointer(dest)).Fstate = ds
  5867. libc.Xmemcpy(tls, ds, ss, uint64(5952))
  5868. (*Tdeflate_state)(unsafe.Pointer(ds)).Fstrm = dest
  5869. (*Tdeflate_state)(unsafe.Pointer(ds)).Fwindow = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size, uint32(libc.Uint64FromInt32(2)*libc.Uint64FromInt64(1)))
  5870. (*Tdeflate_state)(unsafe.Pointer(ds)).Fprev = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size, uint32(libc.Uint64FromInt64(2)))
  5871. (*Tdeflate_state)(unsafe.Pointer(ds)).Fhead = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Fhash_size, uint32(libc.Uint64FromInt64(2)))
  5872. (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize, libc.Uint32FromInt32(libc.Int32FromInt32(m_LIT_BUFS)))
  5873. 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) {
  5874. XdeflateEnd(tls, dest)
  5875. return -int32(4)
  5876. }
  5877. /* following zmemcpy do not work for 16-bit MSDOS */
  5878. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(ss)).Fwindow, uint64((*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size*uint32(2))*uint64(1))
  5879. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fprev, (*Tdeflate_state)(unsafe.Pointer(ss)).Fprev, uint64((*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size)*uint64(2))
  5880. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fhead, (*Tdeflate_state)(unsafe.Pointer(ss)).Fhead, uint64((*Tdeflate_state)(unsafe.Pointer(ds)).Fhash_size)*uint64(2))
  5881. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf, (*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_buf, uint64((*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize*uint32(m_LIT_BUFS)))
  5882. (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf + uintptr(int64((*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_out)-int64((*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_buf))
  5883. (*Tdeflate_state)(unsafe.Pointer(ds)).Fsym_buf = (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize)
  5884. (*Tdeflate_state)(unsafe.Pointer(ds)).Fl_desc.Fdyn_tree = ds + 212
  5885. (*Tdeflate_state)(unsafe.Pointer(ds)).Fd_desc.Fdyn_tree = ds + 2504
  5886. (*Tdeflate_state)(unsafe.Pointer(ds)).Fbl_desc.Fdyn_tree = ds + 2748
  5887. return m_Z_OK
  5888. }
  5889. // C documentation
  5890. //
  5891. // /* ===========================================================================
  5892. // * Set match_start to the longest match starting at the given string and
  5893. // * return its length. Matches shorter or equal to prev_length are discarded,
  5894. // * in which case the result is equal to prev_length and match_start is
  5895. // * garbage.
  5896. // * IN assertions: cur_match is the head of the hash chain for the current
  5897. // * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
  5898. // * OUT assertion: the match length is not greater than s->lookahead.
  5899. // */
  5900. func _longest_match(tls *libc.TLS, s uintptr, cur_match TIPos) (r TuInt) {
  5901. var best_len, len1, nice_match int32
  5902. var chain_length, v1, v3 uint32
  5903. var limit, v2 TIPos
  5904. var match, prev, scan, strend, v10, v11, v13, v14, v16, v17, v19, v20, v22, v23, v25, v26, v28, v29, v6, v8, v9 uintptr
  5905. var scan_end, scan_end1 TByte
  5906. var wmask TuInt
  5907. var v12, v15, v18, v21, v24, v27, v30, v4, v7 bool
  5908. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  5909. chain_length = (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length /* max hash chain length */
  5910. scan = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) /* length of current match */
  5911. best_len = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length) /* best match length so far */
  5912. nice_match = (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match
  5913. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  5914. v1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - ((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)))
  5915. } else {
  5916. v1 = uint32(m_NIL)
  5917. } /* stop if match long enough */
  5918. limit = v1
  5919. /* Stop when cur_match becomes <= limit. To simplify the code,
  5920. * we prevent matches with the string of window index 0.
  5921. */
  5922. prev = (*Tdeflate_state)(unsafe.Pointer(s)).Fprev
  5923. wmask = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask
  5924. strend = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uintptr(m_MAX_MATCH)
  5925. scan_end1 = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len-int32(1))))
  5926. scan_end = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len)))
  5927. /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
  5928. * It is easy to get rid of this optimization if necessary.
  5929. */
  5930. /* Do not waste too much time if we already have a good match: */
  5931. if (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length >= (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match {
  5932. chain_length >>= uint32(2)
  5933. }
  5934. /* Do not look for matches beyond the end of the input. This is necessary
  5935. * to make deflate deterministic.
  5936. */
  5937. if libc.Uint32FromInt32(nice_match) > (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  5938. nice_match = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead)
  5939. }
  5940. for {
  5941. match = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(cur_match)
  5942. /* Skip to next match if the match length cannot increase
  5943. * or if the match length is less than 2. Note that the checks below
  5944. * for insufficient lookahead only occur occasionally for performance
  5945. * reasons. Therefore uninitialized memory will be accessed, and
  5946. * conditional jumps will be made that depend on those values.
  5947. * However the length of the match is limited to the lookahead, so
  5948. * the output of deflate is not affected by the uninitialized values.
  5949. */
  5950. if v7 = libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(match + uintptr(best_len)))) != libc.Int32FromUint8(scan_end) || libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(match + uintptr(best_len-int32(1))))) != libc.Int32FromUint8(scan_end1) || libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(match))) != libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(scan))); !v7 {
  5951. match++
  5952. v6 = match
  5953. }
  5954. if v7 || libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v6))) != libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(scan + 1))) {
  5955. goto _5
  5956. }
  5957. /* The check at best_len - 1 can be removed because it will be made
  5958. * again later. (This heuristic is not always a win.)
  5959. * It is not necessary to compare scan[2] and match[2] since they
  5960. * are always equal when the other bytes match, given that
  5961. * the hash keys are equal and that HASH_BITS >= 8.
  5962. */
  5963. scan += uintptr(2)
  5964. /* The check at best_len - 1 can be removed because it will be made
  5965. * again later. (This heuristic is not always a win.)
  5966. * It is not necessary to compare scan[2] and match[2] since they
  5967. * are always equal when the other bytes match, given that
  5968. * the hash keys are equal and that HASH_BITS >= 8.
  5969. */
  5970. match++
  5971. /* We check for insufficient lookahead only every 8th comparison;
  5972. * the 256th check will be made at strstart + 258.
  5973. */
  5974. for {
  5975. goto _31
  5976. _31:
  5977. ;
  5978. scan++
  5979. v8 = scan
  5980. match++
  5981. v9 = match
  5982. if v12 = libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v8))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v9))); v12 {
  5983. scan++
  5984. v10 = scan
  5985. match++
  5986. v11 = match
  5987. }
  5988. if v15 = v12 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v10))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v11))); v15 {
  5989. scan++
  5990. v13 = scan
  5991. match++
  5992. v14 = match
  5993. }
  5994. if v18 = v15 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v13))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v14))); v18 {
  5995. scan++
  5996. v16 = scan
  5997. match++
  5998. v17 = match
  5999. }
  6000. if v21 = v18 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v16))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v17))); v21 {
  6001. scan++
  6002. v19 = scan
  6003. match++
  6004. v20 = match
  6005. }
  6006. if v24 = v21 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v19))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v20))); v24 {
  6007. scan++
  6008. v22 = scan
  6009. match++
  6010. v23 = match
  6011. }
  6012. if v27 = v24 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v22))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v23))); v27 {
  6013. scan++
  6014. v25 = scan
  6015. match++
  6016. v26 = match
  6017. }
  6018. if v30 = v27 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v25))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v26))); v30 {
  6019. scan++
  6020. v28 = scan
  6021. match++
  6022. v29 = match
  6023. }
  6024. if !(v30 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v28))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v29))) && scan < strend) {
  6025. break
  6026. }
  6027. }
  6028. len1 = int32(m_MAX_MATCH) - int32(int64(strend)-int64(scan))
  6029. scan = strend - uintptr(m_MAX_MATCH)
  6030. if len1 > best_len {
  6031. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start = cur_match
  6032. best_len = len1
  6033. if len1 >= nice_match {
  6034. break
  6035. }
  6036. scan_end1 = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len-int32(1))))
  6037. scan_end = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len)))
  6038. }
  6039. goto _5
  6040. _5:
  6041. ;
  6042. v2 = uint32(*(*TPosf)(unsafe.Pointer(prev + uintptr(cur_match&wmask)*2)))
  6043. cur_match = v2
  6044. if v4 = v2 > limit; v4 {
  6045. chain_length--
  6046. v3 = chain_length
  6047. }
  6048. if !(v4 && v3 != uint32(0)) {
  6049. break
  6050. }
  6051. }
  6052. if libc.Uint32FromInt32(best_len) <= (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  6053. return libc.Uint32FromInt32(best_len)
  6054. }
  6055. return (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  6056. }
  6057. /* ===========================================================================
  6058. * Flush the current block, with given end-of-file flag.
  6059. * IN assertion: strstart is set to the end of the current match.
  6060. */
  6061. /* Same but force premature exit if necessary. */
  6062. /* Maximum stored block length in deflate format (not including header). */
  6063. /* Minimum of a and b. */
  6064. // C documentation
  6065. //
  6066. // /* ===========================================================================
  6067. // * Copy without compression as much as possible from the input stream, return
  6068. // * the current block state.
  6069. // *
  6070. // * In case deflateParams() is used to later switch to a non-zero compression
  6071. // * level, s->matches (otherwise unused when storing) keeps track of the number
  6072. // * of hash table slides to perform. If s->matches is 1, then one hash table
  6073. // * slide will be done when switching. If s->matches is 2, the maximum value
  6074. // * allowed here, then the hash table will be cleared, since two or more slides
  6075. // * is the same as a clear.
  6076. // *
  6077. // * deflate_stored() is written to minimize the number of times an input byte is
  6078. // * copied. It is most efficient with large input and output buffers, which
  6079. // * maximizes the opportunities to have a single copy from next_in to next_out.
  6080. // */
  6081. func _deflate_stored(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6082. var have, last, left, len1, min_block, used, v3, v4, v6, v7 uint32
  6083. var v1, v5 uint64
  6084. var v2, v8, v9 int32
  6085. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = have, last, left, len1, min_block, used, v1, v2, v3, v4, v5, v6, v7, v8, v9
  6086. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size-uint64(5) > uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) {
  6087. v1 = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  6088. } else {
  6089. v1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - uint64(5)
  6090. }
  6091. /* Smallest worthy block size when not flushing or finishing. By default
  6092. * this is 32K. This can be as small as 507 bytes for memLevel == 1. For
  6093. * large input and output buffers, the stored block size will be larger.
  6094. */
  6095. min_block = uint32(v1)
  6096. last = uint32(0)
  6097. used = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  6098. for cond := true; cond; cond = last == uint32(0) {
  6099. /* Set len to the maximum size block that we can copy directly with the
  6100. * available input data and output space. Set left to how much of that
  6101. * would be copied from what's left in the window.
  6102. */
  6103. len1 = uint32(m_MAX_STORED) /* maximum deflate stored block length */
  6104. have = libc.Uint32FromInt32(((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid + int32(42)) >> int32(3)) /* number of header bytes */
  6105. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out < have { /* need room for header */
  6106. break
  6107. }
  6108. /* maximum stored block length that will fit in avail_out: */
  6109. have = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out - have
  6110. left = libc.Uint32FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start) /* bytes left in window */
  6111. if uint64(len1) > uint64(left)+uint64((*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in) {
  6112. len1 = left + (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  6113. } /* limit len to the input */
  6114. if len1 > have {
  6115. len1 = have
  6116. } /* limit len to the output */
  6117. /* If the stored block would be less than min_block in length, or if
  6118. * unable to copy all of the available input when flushing, then try
  6119. * copying to the window and the pending buffer instead. Also don't
  6120. * write an empty block when flushing -- deflate() does that.
  6121. */
  6122. 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) {
  6123. break
  6124. }
  6125. /* Make a dummy stored block in pending to get the header bytes,
  6126. * including any pending bits. This also updates the debugging counts.
  6127. */
  6128. if flush == int32(m_Z_FINISH) && len1 == left+(*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  6129. v2 = int32(1)
  6130. } else {
  6131. v2 = 0
  6132. }
  6133. last = libc.Uint32FromInt32(v2)
  6134. x__tr_stored_block(tls, s, libc.UintptrFromInt32(0), uint64(0), libc.Int32FromUint32(last))
  6135. /* Replace the lengths in the dummy stored block with len. */
  6136. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(4)))) = uint8(len1)
  6137. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(3)))) = uint8(len1 >> int32(8))
  6138. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(2)))) = uint8(^len1)
  6139. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(1)))) = uint8(^len1 >> int32(8))
  6140. /* Write the stored block header bytes. */
  6141. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6142. /* Copy uncompressed bytes from the window to next_out. */
  6143. if left != 0 {
  6144. if left > len1 {
  6145. left = len1
  6146. }
  6147. libc.Xmemcpy(tls, (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_out, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), uint64(left))
  6148. *(*uintptr)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 24)) += uintptr(left)
  6149. *(*TuInt)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 32)) -= left
  6150. *(*TuLong)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 40)) += uint64(left)
  6151. *(*int64)(unsafe.Pointer(s + 152)) += libc.Int64FromUint32(left)
  6152. len1 -= left
  6153. }
  6154. /* Copy uncompressed bytes directly from next_in to next_out, updating
  6155. * the check value.
  6156. */
  6157. if len1 != 0 {
  6158. _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_out, len1)
  6159. *(*uintptr)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 24)) += uintptr(len1)
  6160. *(*TuInt)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 32)) -= len1
  6161. *(*TuLong)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 40)) += uint64(len1)
  6162. }
  6163. }
  6164. /* Update the sliding window with the last s->w_size bytes of the copied
  6165. * data, or append all of the copied data to the existing window if less
  6166. * than s->w_size bytes were copied. Also update the number of bytes to
  6167. * insert in the hash tables, in the event that deflateParams() switches to
  6168. * a non-zero compression level.
  6169. */
  6170. used -= (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in /* number of input bytes directly copied */
  6171. if used != 0 {
  6172. /* If any input was used, then no unused input remains in the window,
  6173. * therefore s->block_start == s->strstart.
  6174. */
  6175. if used >= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size { /* supplant the previous history */
  6176. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = uint32(2) /* clear hash */
  6177. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_in-uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size), uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size))
  6178. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6179. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6180. } else {
  6181. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size-uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) <= uint64(used) {
  6182. /* Slide the window down. */
  6183. *(*TuInt)(unsafe.Pointer(s + 172)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6184. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size), uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  6185. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches < uint32(2) {
  6186. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  6187. } /* add a pending slide_hash() */
  6188. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  6189. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6190. }
  6191. }
  6192. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart), (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_in-uintptr(used), uint64(used))
  6193. *(*TuInt)(unsafe.Pointer(s + 172)) += used
  6194. if used > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-(*Tdeflate_state)(unsafe.Pointer(s)).Finsert {
  6195. v3 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  6196. } else {
  6197. v3 = used
  6198. }
  6199. *(*TuInt)(unsafe.Pointer(s + 5932)) += v3
  6200. }
  6201. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6202. }
  6203. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) {
  6204. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6205. }
  6206. /* If the last block was written to next_out, then done. */
  6207. if last != 0 {
  6208. return int32(_finish_done)
  6209. }
  6210. /* If flushing and all input has been consumed, then done. */
  6211. if flush != m_Z_NO_FLUSH && flush != int32(m_Z_FINISH) && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) && libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) == (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start {
  6212. return int32(_block_done)
  6213. }
  6214. /* Fill the window with any remaining input. */
  6215. have = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  6216. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in > have && (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) {
  6217. /* Slide the window down. */
  6218. *(*int64)(unsafe.Pointer(s + 152)) -= libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  6219. *(*TuInt)(unsafe.Pointer(s + 172)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6220. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size), uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  6221. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches < uint32(2) {
  6222. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  6223. } /* add a pending slide_hash() */
  6224. have += (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size /* more space now */
  6225. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  6226. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6227. }
  6228. }
  6229. if have > (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  6230. have = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  6231. }
  6232. if have != 0 {
  6233. _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart), have)
  6234. *(*TuInt)(unsafe.Pointer(s + 172)) += have
  6235. if have > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-(*Tdeflate_state)(unsafe.Pointer(s)).Finsert {
  6236. v4 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  6237. } else {
  6238. v4 = have
  6239. }
  6240. *(*TuInt)(unsafe.Pointer(s + 5932)) += v4
  6241. }
  6242. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) {
  6243. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6244. }
  6245. /* There was not enough avail_out to write a complete worthy or flushed
  6246. * stored block to next_out. Write a stored block to pending instead, if we
  6247. * have enough input for a worthy block, or if flushing and there is enough
  6248. * room for the remaining input as a stored block in the pending buffer.
  6249. */
  6250. have = libc.Uint32FromInt32(((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid + int32(42)) >> int32(3)) /* number of header bytes */
  6251. /* maximum stored block length that will fit in pending: */
  6252. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size-uint64(have) > libc.Uint64FromInt32(libc.Int32FromInt32(m_MAX_STORED)) {
  6253. v5 = libc.Uint64FromInt32(libc.Int32FromInt32(m_MAX_STORED))
  6254. } else {
  6255. v5 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - uint64(have)
  6256. }
  6257. have = uint32(v5)
  6258. if have > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  6259. v6 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6260. } else {
  6261. v6 = have
  6262. }
  6263. min_block = v6
  6264. left = libc.Uint32FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start)
  6265. 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 {
  6266. if left > have {
  6267. v7 = have
  6268. } else {
  6269. v7 = left
  6270. }
  6271. len1 = v7
  6272. if flush == int32(m_Z_FINISH) && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) && len1 == left {
  6273. v8 = int32(1)
  6274. } else {
  6275. v8 = 0
  6276. }
  6277. last = libc.Uint32FromInt32(v8)
  6278. x__tr_stored_block(tls, s, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), uint64(len1), libc.Int32FromUint32(last))
  6279. *(*int64)(unsafe.Pointer(s + 152)) += libc.Int64FromUint32(len1)
  6280. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6281. }
  6282. /* We've done all we can with the available input and output. */
  6283. if last != 0 {
  6284. v9 = int32(_finish_started)
  6285. } else {
  6286. v9 = int32(_need_more)
  6287. }
  6288. return v9
  6289. }
  6290. // C documentation
  6291. //
  6292. // /* ===========================================================================
  6293. // * Compress as much as possible from the input stream, return the current
  6294. // * block state.
  6295. // * This function does not perform lazy evaluation of matches and inserts
  6296. // * new strings in the dictionary only for unmatched strings or for short
  6297. // * matches. It is used only for the fast compression options.
  6298. // */
  6299. func _deflate_fast(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6300. var bflush, v9 int32
  6301. var cc, len1 Tuch
  6302. var dist Tush
  6303. var hash_head TIPos
  6304. var v10, v14, v16, v18, v3, v5, v7 TuInt
  6305. var v11, v15, v17, v19, v20, v22, v23, v4, v6, v8 uintptr
  6306. var v13, v2 TPosf
  6307. var v21 uint32
  6308. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  6309. for {
  6310. /* Make sure that we always have enough lookahead, except
  6311. * at the end of the input file. We need MAX_MATCH bytes
  6312. * for the next match, plus MIN_MATCH bytes to insert the
  6313. * string following the next match.
  6314. */
  6315. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6316. _fill_window(tls, s)
  6317. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && flush == m_Z_NO_FLUSH {
  6318. return int32(_need_more)
  6319. }
  6320. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6321. break
  6322. } /* flush the current block */
  6323. }
  6324. /* Insert the string window[strstart .. strstart + 2] in the
  6325. * dictionary, and set hash_head to the head of the hash chain:
  6326. */
  6327. hash_head = uint32(m_NIL)
  6328. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  6329. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6330. v2 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6331. *(*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
  6332. hash_head = uint32(v2)
  6333. *(*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)
  6334. }
  6335. /* Find the longest match, discarding those <= prev_length.
  6336. * At this point we have always match_length < MIN_MATCH
  6337. */
  6338. if hash_head != uint32(m_NIL) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-hash_head <= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6339. /* To simplify the code, we prevent matches with the string
  6340. * of window index 0 (in particular we have to avoid a match
  6341. * of the string with itself at the start of the input file).
  6342. */
  6343. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = _longest_match(tls, s, hash_head)
  6344. /* longest_match() sets match_start */
  6345. }
  6346. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length >= uint32(m_MIN_MATCH) {
  6347. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length - libc.Uint32FromInt32(m_MIN_MATCH))
  6348. dist = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start)
  6349. v4 = s + 5900
  6350. v3 = *(*TuInt)(unsafe.Pointer(v4))
  6351. *(*TuInt)(unsafe.Pointer(v4))++
  6352. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist)
  6353. v6 = s + 5900
  6354. v5 = *(*TuInt)(unsafe.Pointer(v6))
  6355. *(*TuInt)(unsafe.Pointer(v6))++
  6356. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = libc.Uint8FromInt32(libc.Int32FromUint16(dist) >> libc.Int32FromInt32(8))
  6357. v8 = s + 5900
  6358. v7 = *(*TuInt)(unsafe.Pointer(v8))
  6359. *(*TuInt)(unsafe.Pointer(v8))++
  6360. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v7))) = len1
  6361. dist--
  6362. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(libc.Int32FromUint8(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  6363. if libc.Int32FromUint16(dist) < int32(256) {
  6364. v9 = libc.Int32FromUint8(x__dist_code[dist])
  6365. } else {
  6366. v9 = libc.Int32FromUint8(x__dist_code[int32(256)+libc.Int32FromUint16(dist)>>int32(7)])
  6367. }
  6368. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v9)*4))++
  6369. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6370. *(*TuInt)(unsafe.Pointer(s + 180)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6371. /* Insert new strings in the hash table only if the match length
  6372. * is not too large. This saves time but degrades compression.
  6373. */
  6374. 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) {
  6375. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length-- /* string at strstart already in table */
  6376. for {
  6377. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6378. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6379. v13 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6380. *(*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
  6381. hash_head = uint32(v13)
  6382. *(*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)
  6383. /* strstart never exceeds WSIZE-MAX_MATCH, so there are
  6384. * always MIN_MATCH bytes ahead.
  6385. */
  6386. goto _12
  6387. _12:
  6388. ;
  6389. v11 = s + 160
  6390. *(*TuInt)(unsafe.Pointer(v11))--
  6391. v10 = *(*TuInt)(unsafe.Pointer(v11))
  6392. if !(v10 != uint32(0)) {
  6393. break
  6394. }
  6395. }
  6396. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6397. } else {
  6398. *(*TuInt)(unsafe.Pointer(s + 172)) += (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6399. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6400. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))))
  6401. (*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
  6402. /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
  6403. * matter since it will be recomputed at next deflate call.
  6404. */
  6405. }
  6406. } else {
  6407. /* No match, output a literal byte */
  6408. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  6409. v15 = s + 5900
  6410. v14 = *(*TuInt)(unsafe.Pointer(v15))
  6411. *(*TuInt)(unsafe.Pointer(v15))++
  6412. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v14))) = uint8(0)
  6413. v17 = s + 5900
  6414. v16 = *(*TuInt)(unsafe.Pointer(v17))
  6415. *(*TuInt)(unsafe.Pointer(v17))++
  6416. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v16))) = uint8(0)
  6417. v19 = s + 5900
  6418. v18 = *(*TuInt)(unsafe.Pointer(v19))
  6419. *(*TuInt)(unsafe.Pointer(v19))++
  6420. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v18))) = cc
  6421. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  6422. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6423. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6424. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6425. }
  6426. if bflush != 0 {
  6427. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6428. v20 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6429. } else {
  6430. v20 = libc.UintptrFromInt32(m_Z_NULL)
  6431. }
  6432. x__tr_flush_block(tls, s, v20, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6433. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6434. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6435. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6436. return int32(_need_more)
  6437. }
  6438. }
  6439. goto _1
  6440. _1:
  6441. }
  6442. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart < libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1)) {
  6443. v21 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6444. } else {
  6445. v21 = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6446. }
  6447. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = v21
  6448. if flush == int32(m_Z_FINISH) {
  6449. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6450. v22 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6451. } else {
  6452. v22 = libc.UintptrFromInt32(m_Z_NULL)
  6453. }
  6454. x__tr_flush_block(tls, s, v22, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6455. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6456. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6457. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6458. return int32(_finish_started)
  6459. }
  6460. return int32(_finish_done)
  6461. }
  6462. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6463. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6464. v23 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6465. } else {
  6466. v23 = libc.UintptrFromInt32(m_Z_NULL)
  6467. }
  6468. x__tr_flush_block(tls, s, v23, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6469. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6470. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6471. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6472. return int32(_need_more)
  6473. }
  6474. }
  6475. return int32(_block_done)
  6476. }
  6477. // C documentation
  6478. //
  6479. // /* ===========================================================================
  6480. // * Same as above, but achieves better compression. We use a lazy
  6481. // * evaluation for matches: a match is finally adopted only if there is
  6482. // * no better match at the next window position.
  6483. // */
  6484. func _deflate_slow(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6485. var bflush, v9 int32
  6486. var cc, cc1, len1 Tuch
  6487. var dist Tush
  6488. var hash_head TIPos
  6489. var max_insert, v10, v13, v17, v19, v21, v24, v26, v28, v3, v5, v7 TuInt
  6490. var v11, v14, v16, v18, v20, v22, v23, v25, v27, v29, v31, v32, v4, v6, v8 uintptr
  6491. var v15, v2 TPosf
  6492. var v30 uint32
  6493. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  6494. /* Process the input block. */
  6495. for {
  6496. /* Make sure that we always have enough lookahead, except
  6497. * at the end of the input file. We need MAX_MATCH bytes
  6498. * for the next match, plus MIN_MATCH bytes to insert the
  6499. * string following the next match.
  6500. */
  6501. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6502. _fill_window(tls, s)
  6503. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && flush == m_Z_NO_FLUSH {
  6504. return int32(_need_more)
  6505. }
  6506. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6507. break
  6508. } /* flush the current block */
  6509. }
  6510. /* Insert the string window[strstart .. strstart + 2] in the
  6511. * dictionary, and set hash_head to the head of the hash chain:
  6512. */
  6513. hash_head = uint32(m_NIL)
  6514. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  6515. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6516. v2 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6517. *(*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
  6518. hash_head = uint32(v2)
  6519. *(*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)
  6520. }
  6521. /* Find the longest match, discarding those <= prev_length.
  6522. */
  6523. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6524. /* Find the longest match, discarding those <= prev_length.
  6525. */
  6526. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_match = (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start
  6527. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6528. if hash_head != uint32(m_NIL) && (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length < (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-hash_head <= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6529. /* To simplify the code, we prevent matches with the string
  6530. * of window index 0 (in particular we have to avoid a match
  6531. * of the string with itself at the start of the input file).
  6532. */
  6533. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = _longest_match(tls, s, hash_head)
  6534. /* longest_match() sets match_start */
  6535. 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)) {
  6536. /* If prev_match is also MIN_MATCH, match_start is garbage
  6537. * but we will ignore the current match anyway.
  6538. */
  6539. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6540. }
  6541. }
  6542. /* If there was a match at the previous step and the current
  6543. * match is not better, output the previous match:
  6544. */
  6545. 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 {
  6546. max_insert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - uint32(m_MIN_MATCH)
  6547. /* Do not insert strings in hash table beyond this. */
  6548. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length - libc.Uint32FromInt32(m_MIN_MATCH))
  6549. dist = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - libc.Uint32FromInt32(1) - (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_match)
  6550. v4 = s + 5900
  6551. v3 = *(*TuInt)(unsafe.Pointer(v4))
  6552. *(*TuInt)(unsafe.Pointer(v4))++
  6553. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist)
  6554. v6 = s + 5900
  6555. v5 = *(*TuInt)(unsafe.Pointer(v6))
  6556. *(*TuInt)(unsafe.Pointer(v6))++
  6557. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = libc.Uint8FromInt32(libc.Int32FromUint16(dist) >> libc.Int32FromInt32(8))
  6558. v8 = s + 5900
  6559. v7 = *(*TuInt)(unsafe.Pointer(v8))
  6560. *(*TuInt)(unsafe.Pointer(v8))++
  6561. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v7))) = len1
  6562. dist--
  6563. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(libc.Int32FromUint8(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  6564. if libc.Int32FromUint16(dist) < int32(256) {
  6565. v9 = libc.Int32FromUint8(x__dist_code[dist])
  6566. } else {
  6567. v9 = libc.Int32FromUint8(x__dist_code[int32(256)+libc.Int32FromUint16(dist)>>int32(7)])
  6568. }
  6569. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v9)*4))++
  6570. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6571. /* Insert in hash table all strings up to the end of the match.
  6572. * strstart - 1 and strstart are already inserted. If there is not
  6573. * enough lookahead, the last two strings are not inserted in
  6574. * the hash table.
  6575. */
  6576. *(*TuInt)(unsafe.Pointer(s + 180)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length - uint32(1)
  6577. *(*TuInt)(unsafe.Pointer(s + 184)) -= uint32(2)
  6578. for {
  6579. v14 = s + 172
  6580. *(*TuInt)(unsafe.Pointer(v14))++
  6581. v13 = *(*TuInt)(unsafe.Pointer(v14))
  6582. if v13 <= max_insert {
  6583. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6584. v15 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6585. *(*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
  6586. hash_head = uint32(v15)
  6587. *(*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)
  6588. }
  6589. goto _12
  6590. _12:
  6591. ;
  6592. v11 = s + 184
  6593. *(*TuInt)(unsafe.Pointer(v11))--
  6594. v10 = *(*TuInt)(unsafe.Pointer(v11))
  6595. if !(v10 != uint32(0)) {
  6596. break
  6597. }
  6598. }
  6599. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  6600. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6601. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6602. if bflush != 0 {
  6603. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6604. v16 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6605. } else {
  6606. v16 = libc.UintptrFromInt32(m_Z_NULL)
  6607. }
  6608. x__tr_flush_block(tls, s, v16, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6609. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6610. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6611. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6612. return int32(_need_more)
  6613. }
  6614. }
  6615. } else {
  6616. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available != 0 {
  6617. /* If there was no match at the previous position, output a
  6618. * single literal. If there was a match but the current match
  6619. * is longer, truncate the previous match to a single literal.
  6620. */
  6621. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-uint32(1))))
  6622. v18 = s + 5900
  6623. v17 = *(*TuInt)(unsafe.Pointer(v18))
  6624. *(*TuInt)(unsafe.Pointer(v18))++
  6625. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v17))) = uint8(0)
  6626. v20 = s + 5900
  6627. v19 = *(*TuInt)(unsafe.Pointer(v20))
  6628. *(*TuInt)(unsafe.Pointer(v20))++
  6629. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v19))) = uint8(0)
  6630. v22 = s + 5900
  6631. v21 = *(*TuInt)(unsafe.Pointer(v22))
  6632. *(*TuInt)(unsafe.Pointer(v22))++
  6633. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v21))) = cc
  6634. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  6635. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6636. if bflush != 0 {
  6637. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6638. v23 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6639. } else {
  6640. v23 = libc.UintptrFromInt32(m_Z_NULL)
  6641. }
  6642. x__tr_flush_block(tls, s, v23, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6643. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6644. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6645. }
  6646. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6647. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6648. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6649. return int32(_need_more)
  6650. }
  6651. } else {
  6652. /* There is no previous match to compare with, wait for
  6653. * the next step to decide.
  6654. */
  6655. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = int32(1)
  6656. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6657. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6658. }
  6659. }
  6660. goto _1
  6661. _1:
  6662. }
  6663. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available != 0 {
  6664. cc1 = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-uint32(1))))
  6665. v25 = s + 5900
  6666. v24 = *(*TuInt)(unsafe.Pointer(v25))
  6667. *(*TuInt)(unsafe.Pointer(v25))++
  6668. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v24))) = uint8(0)
  6669. v27 = s + 5900
  6670. v26 = *(*TuInt)(unsafe.Pointer(v27))
  6671. *(*TuInt)(unsafe.Pointer(v27))++
  6672. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v26))) = uint8(0)
  6673. v29 = s + 5900
  6674. v28 = *(*TuInt)(unsafe.Pointer(v29))
  6675. *(*TuInt)(unsafe.Pointer(v29))++
  6676. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v28))) = cc1
  6677. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc1)*4))++
  6678. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6679. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  6680. }
  6681. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart < libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1)) {
  6682. v30 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6683. } else {
  6684. v30 = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6685. }
  6686. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = v30
  6687. if flush == int32(m_Z_FINISH) {
  6688. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6689. v31 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6690. } else {
  6691. v31 = libc.UintptrFromInt32(m_Z_NULL)
  6692. }
  6693. x__tr_flush_block(tls, s, v31, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6694. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6695. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6696. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6697. return int32(_finish_started)
  6698. }
  6699. return int32(_finish_done)
  6700. }
  6701. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6702. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6703. v32 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6704. } else {
  6705. v32 = libc.UintptrFromInt32(m_Z_NULL)
  6706. }
  6707. x__tr_flush_block(tls, s, v32, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6708. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6709. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6710. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6711. return int32(_need_more)
  6712. }
  6713. }
  6714. return int32(_block_done)
  6715. }
  6716. // C documentation
  6717. //
  6718. // /* ===========================================================================
  6719. // * For Z_RLE, simply look for runs of bytes, generate matches only of distance
  6720. // * one. Do not maintain a hash table. (It will be regenerated if this run of
  6721. // * deflate switches away from Z_RLE.)
  6722. // */
  6723. func _deflate_rle(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6724. var bflush, v29 int32
  6725. var cc, len1 Tuch
  6726. var dist Tush
  6727. var prev, v23, v25, v27, v30, v32, v34 TuInt
  6728. var scan, strend, v10, v12, v14, v16, v18, v2, v20, v24, v26, v28, v3, v31, v33, v35, v36, v37, v38, v5, v7, v8 uintptr
  6729. var v11, v13, v15, v17, v19, v21, v4, v6, v9 bool
  6730. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  6731. for {
  6732. /* Make sure that we always have enough lookahead, except
  6733. * at the end of the input file. We need MAX_MATCH bytes
  6734. * for the longest run, plus one for the unrolled loop.
  6735. */
  6736. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead <= uint32(m_MAX_MATCH) {
  6737. _fill_window(tls, s)
  6738. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead <= uint32(m_MAX_MATCH) && flush == m_Z_NO_FLUSH {
  6739. return int32(_need_more)
  6740. }
  6741. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6742. break
  6743. } /* flush the current block */
  6744. }
  6745. /* See how many times the previous byte repeats */
  6746. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6747. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart > uint32(0) {
  6748. scan = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - uintptr(1)
  6749. prev = uint32(*(*TBytef)(unsafe.Pointer(scan)))
  6750. scan++
  6751. v2 = scan
  6752. if v4 = prev == uint32(*(*TBytef)(unsafe.Pointer(v2))); v4 {
  6753. scan++
  6754. v3 = scan
  6755. }
  6756. if v6 = v4 && prev == uint32(*(*TBytef)(unsafe.Pointer(v3))); v6 {
  6757. scan++
  6758. v5 = scan
  6759. }
  6760. if v6 && prev == uint32(*(*TBytef)(unsafe.Pointer(v5))) {
  6761. strend = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uintptr(m_MAX_MATCH)
  6762. for {
  6763. goto _22
  6764. _22:
  6765. ;
  6766. scan++
  6767. v7 = scan
  6768. if v9 = prev == uint32(*(*TBytef)(unsafe.Pointer(v7))); v9 {
  6769. scan++
  6770. v8 = scan
  6771. }
  6772. if v11 = v9 && prev == uint32(*(*TBytef)(unsafe.Pointer(v8))); v11 {
  6773. scan++
  6774. v10 = scan
  6775. }
  6776. if v13 = v11 && prev == uint32(*(*TBytef)(unsafe.Pointer(v10))); v13 {
  6777. scan++
  6778. v12 = scan
  6779. }
  6780. if v15 = v13 && prev == uint32(*(*TBytef)(unsafe.Pointer(v12))); v15 {
  6781. scan++
  6782. v14 = scan
  6783. }
  6784. if v17 = v15 && prev == uint32(*(*TBytef)(unsafe.Pointer(v14))); v17 {
  6785. scan++
  6786. v16 = scan
  6787. }
  6788. if v19 = v17 && prev == uint32(*(*TBytef)(unsafe.Pointer(v16))); v19 {
  6789. scan++
  6790. v18 = scan
  6791. }
  6792. if v21 = v19 && prev == uint32(*(*TBytef)(unsafe.Pointer(v18))); v21 {
  6793. scan++
  6794. v20 = scan
  6795. }
  6796. if !(v21 && prev == uint32(*(*TBytef)(unsafe.Pointer(v20))) && scan < strend) {
  6797. break
  6798. }
  6799. }
  6800. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(m_MAX_MATCH) - libc.Uint32FromInt64(int64(strend)-int64(scan))
  6801. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length > (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  6802. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  6803. }
  6804. }
  6805. }
  6806. /* Emit match if have run of MIN_MATCH or longer, else emit literal */
  6807. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length >= uint32(m_MIN_MATCH) {
  6808. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length - libc.Uint32FromInt32(m_MIN_MATCH))
  6809. dist = libc.Uint16FromInt32(libc.Int32FromInt32(1))
  6810. v24 = s + 5900
  6811. v23 = *(*TuInt)(unsafe.Pointer(v24))
  6812. *(*TuInt)(unsafe.Pointer(v24))++
  6813. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v23))) = uint8(dist)
  6814. v26 = s + 5900
  6815. v25 = *(*TuInt)(unsafe.Pointer(v26))
  6816. *(*TuInt)(unsafe.Pointer(v26))++
  6817. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v25))) = libc.Uint8FromInt32(libc.Int32FromUint16(dist) >> libc.Int32FromInt32(8))
  6818. v28 = s + 5900
  6819. v27 = *(*TuInt)(unsafe.Pointer(v28))
  6820. *(*TuInt)(unsafe.Pointer(v28))++
  6821. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v27))) = len1
  6822. dist--
  6823. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(libc.Int32FromUint8(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  6824. if libc.Int32FromUint16(dist) < int32(256) {
  6825. v29 = libc.Int32FromUint8(x__dist_code[dist])
  6826. } else {
  6827. v29 = libc.Int32FromUint8(x__dist_code[int32(256)+libc.Int32FromUint16(dist)>>int32(7)])
  6828. }
  6829. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v29)*4))++
  6830. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6831. *(*TuInt)(unsafe.Pointer(s + 180)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6832. *(*TuInt)(unsafe.Pointer(s + 172)) += (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6833. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6834. } else {
  6835. /* No match, output a literal byte */
  6836. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  6837. v31 = s + 5900
  6838. v30 = *(*TuInt)(unsafe.Pointer(v31))
  6839. *(*TuInt)(unsafe.Pointer(v31))++
  6840. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v30))) = uint8(0)
  6841. v33 = s + 5900
  6842. v32 = *(*TuInt)(unsafe.Pointer(v33))
  6843. *(*TuInt)(unsafe.Pointer(v33))++
  6844. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v32))) = uint8(0)
  6845. v35 = s + 5900
  6846. v34 = *(*TuInt)(unsafe.Pointer(v35))
  6847. *(*TuInt)(unsafe.Pointer(v35))++
  6848. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v34))) = cc
  6849. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  6850. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6851. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6852. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6853. }
  6854. if bflush != 0 {
  6855. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6856. v36 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6857. } else {
  6858. v36 = libc.UintptrFromInt32(m_Z_NULL)
  6859. }
  6860. x__tr_flush_block(tls, s, v36, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6861. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6862. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6863. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6864. return int32(_need_more)
  6865. }
  6866. }
  6867. goto _1
  6868. _1:
  6869. }
  6870. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  6871. if flush == int32(m_Z_FINISH) {
  6872. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6873. v37 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6874. } else {
  6875. v37 = libc.UintptrFromInt32(m_Z_NULL)
  6876. }
  6877. x__tr_flush_block(tls, s, v37, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6878. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6879. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6880. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6881. return int32(_finish_started)
  6882. }
  6883. return int32(_finish_done)
  6884. }
  6885. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6886. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6887. v38 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6888. } else {
  6889. v38 = libc.UintptrFromInt32(m_Z_NULL)
  6890. }
  6891. x__tr_flush_block(tls, s, v38, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6892. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6893. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6894. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6895. return int32(_need_more)
  6896. }
  6897. }
  6898. return int32(_block_done)
  6899. }
  6900. // C documentation
  6901. //
  6902. // /* ===========================================================================
  6903. // * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.
  6904. // * (It will be regenerated if this run of deflate switches away from Huffman.)
  6905. // */
  6906. func _deflate_huff(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6907. var bflush int32
  6908. var cc Tuch
  6909. var v10, v3, v5, v7, v8, v9 uintptr
  6910. var v2, v4, v6 TuInt
  6911. _, _, _, _, _, _, _, _, _, _, _ = bflush, cc, v10, v2, v3, v4, v5, v6, v7, v8, v9 /* set if current block must be flushed */
  6912. for {
  6913. /* Make sure that we have a literal to write. */
  6914. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6915. _fill_window(tls, s)
  6916. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6917. if flush == m_Z_NO_FLUSH {
  6918. return int32(_need_more)
  6919. }
  6920. break /* flush the current block */
  6921. }
  6922. }
  6923. /* Output a literal byte */
  6924. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6925. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  6926. v3 = s + 5900
  6927. v2 = *(*TuInt)(unsafe.Pointer(v3))
  6928. *(*TuInt)(unsafe.Pointer(v3))++
  6929. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v2))) = uint8(0)
  6930. v5 = s + 5900
  6931. v4 = *(*TuInt)(unsafe.Pointer(v5))
  6932. *(*TuInt)(unsafe.Pointer(v5))++
  6933. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v4))) = uint8(0)
  6934. v7 = s + 5900
  6935. v6 = *(*TuInt)(unsafe.Pointer(v7))
  6936. *(*TuInt)(unsafe.Pointer(v7))++
  6937. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v6))) = cc
  6938. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  6939. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6940. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6941. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6942. if bflush != 0 {
  6943. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6944. v8 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6945. } else {
  6946. v8 = libc.UintptrFromInt32(m_Z_NULL)
  6947. }
  6948. x__tr_flush_block(tls, s, v8, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6949. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6950. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6951. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6952. return int32(_need_more)
  6953. }
  6954. }
  6955. goto _1
  6956. _1:
  6957. }
  6958. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  6959. if flush == int32(m_Z_FINISH) {
  6960. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6961. v9 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6962. } else {
  6963. v9 = libc.UintptrFromInt32(m_Z_NULL)
  6964. }
  6965. x__tr_flush_block(tls, s, v9, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6966. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6967. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6968. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6969. return int32(_finish_started)
  6970. }
  6971. return int32(_finish_done)
  6972. }
  6973. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6974. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6975. v10 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6976. } else {
  6977. v10 = libc.UintptrFromInt32(m_Z_NULL)
  6978. }
  6979. x__tr_flush_block(tls, s, v10, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6980. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6981. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6982. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6983. return int32(_need_more)
  6984. }
  6985. }
  6986. return int32(_block_done)
  6987. }
  6988. const m_ENOUGH_DISTS = 592
  6989. const m_ENOUGH_LENS = 852
  6990. const m_PRESET_DICT2 = 0x20
  6991. type Tcode = struct {
  6992. Fop uint8
  6993. Fbits uint8
  6994. Fval uint16
  6995. }
  6996. type Tcodetype = int32
  6997. const _CODES = 0
  6998. const _LENS = 1
  6999. const _DISTS = 2
  7000. type Tinflate_mode = int32
  7001. const _HEAD = 16180
  7002. const _FLAGS = 16181
  7003. const _TIME = 16182
  7004. const _OS = 16183
  7005. const _EXLEN = 16184
  7006. const _EXTRA = 16185
  7007. const _NAME = 16186
  7008. const _COMMENT = 16187
  7009. const _HCRC = 16188
  7010. const _DICTID = 16189
  7011. const _DICT = 16190
  7012. const _TYPE = 16191
  7013. const _TYPEDO = 16192
  7014. const _STORED = 16193
  7015. const _COPY_ = 16194
  7016. const _COPY = 16195
  7017. const _TABLE = 16196
  7018. const _LENLENS = 16197
  7019. const _CODELENS = 16198
  7020. const _LEN_ = 16199
  7021. const _LEN = 16200
  7022. const _LENEXT = 16201
  7023. const _DIST = 16202
  7024. const _DISTEXT = 16203
  7025. const _MATCH = 16204
  7026. const _LIT = 16205
  7027. const _CHECK = 16206
  7028. const _LENGTH = 16207
  7029. const _DONE = 16208
  7030. const _BAD = 16209
  7031. const _MEM = 16210
  7032. const _SYNC = 16211
  7033. type Tinflate_state = struct {
  7034. Fstrm Tz_streamp
  7035. Fmode Tinflate_mode
  7036. Flast int32
  7037. Fwrap int32
  7038. Fhavedict int32
  7039. Fflags int32
  7040. Fdmax uint32
  7041. Fcheck uint64
  7042. Ftotal uint64
  7043. Fhead Tgz_headerp
  7044. Fwbits uint32
  7045. Fwsize uint32
  7046. Fwhave uint32
  7047. Fwnext uint32
  7048. Fwindow uintptr
  7049. Fhold uint64
  7050. Fbits uint32
  7051. Flength uint32
  7052. Foffset uint32
  7053. Fextra uint32
  7054. Flencode uintptr
  7055. Fdistcode uintptr
  7056. Flenbits uint32
  7057. Fdistbits uint32
  7058. Fncode uint32
  7059. Fnlen uint32
  7060. Fndist uint32
  7061. Fhave uint32
  7062. Fnext uintptr
  7063. Flens [320]uint16
  7064. Fwork [288]uint16
  7065. Fcodes [1444]Tcode
  7066. Fsane int32
  7067. Fback int32
  7068. Fwas uint32
  7069. }
  7070. // C documentation
  7071. //
  7072. // /*
  7073. // strm provides memory allocation functions in zalloc and zfree, or
  7074. // Z_NULL to use the library memory allocation functions.
  7075. //
  7076. // windowBits is in the range 8..15, and window is a user-supplied
  7077. // window and output buffer that is 2**windowBits bytes.
  7078. // */
  7079. func XinflateBackInit_(tls *libc.TLS, strm Tz_streamp, windowBits int32, window uintptr, version uintptr, stream_size int32) (r int32) {
  7080. var state uintptr
  7081. _ = state
  7082. if version == uintptr(m_Z_NULL) || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(version))) != libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(__ccgo_ts))) || stream_size != libc.Int32FromUint64(libc.Uint64FromInt64(112)) {
  7083. return -int32(6)
  7084. }
  7085. if strm == uintptr(m_Z_NULL) || window == uintptr(m_Z_NULL) || windowBits < int32(8) || windowBits > int32(15) {
  7086. return -int32(2)
  7087. }
  7088. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* in case we return an error */
  7089. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  7090. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  7091. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  7092. }
  7093. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  7094. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  7095. }
  7096. state = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, libc.Uint32FromInt32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(7160)))
  7097. if state == uintptr(m_Z_NULL) {
  7098. return -int32(4)
  7099. }
  7100. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = state
  7101. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(32768)
  7102. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = libc.Uint32FromInt32(windowBits)
  7103. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(1) << windowBits
  7104. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = window
  7105. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  7106. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  7107. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  7108. return m_Z_OK
  7109. }
  7110. // C documentation
  7111. //
  7112. // /*
  7113. // Return state with length and distance decoding tables and index sizes set to
  7114. // fixed code decoding. Normally this returns fixed tables from inffixed.h.
  7115. // If BUILDFIXED is defined, then instead this routine builds the tables the
  7116. // first time it's called, and returns those tables the first time and
  7117. // thereafter. This reduces the size of the code by about 2K bytes, in
  7118. // exchange for a little execution time. However, BUILDFIXED should not be
  7119. // used for threaded applications, since the rewriting of the tables and virgin
  7120. // may not be thread-safe.
  7121. // */
  7122. func _fixedtables(tls *libc.TLS, state uintptr) {
  7123. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = uintptr(unsafe.Pointer(&_lenfix))
  7124. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  7125. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = uintptr(unsafe.Pointer(&_distfix))
  7126. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(5)
  7127. }
  7128. var _lenfix = [512]Tcode{
  7129. 0: {
  7130. Fop: uint8(96),
  7131. Fbits: uint8(7),
  7132. },
  7133. 1: {
  7134. Fbits: uint8(8),
  7135. Fval: uint16(80),
  7136. },
  7137. 2: {
  7138. Fbits: uint8(8),
  7139. Fval: uint16(16),
  7140. },
  7141. 3: {
  7142. Fop: uint8(20),
  7143. Fbits: uint8(8),
  7144. Fval: uint16(115),
  7145. },
  7146. 4: {
  7147. Fop: uint8(18),
  7148. Fbits: uint8(7),
  7149. Fval: uint16(31),
  7150. },
  7151. 5: {
  7152. Fbits: uint8(8),
  7153. Fval: uint16(112),
  7154. },
  7155. 6: {
  7156. Fbits: uint8(8),
  7157. Fval: uint16(48),
  7158. },
  7159. 7: {
  7160. Fbits: uint8(9),
  7161. Fval: uint16(192),
  7162. },
  7163. 8: {
  7164. Fop: uint8(16),
  7165. Fbits: uint8(7),
  7166. Fval: uint16(10),
  7167. },
  7168. 9: {
  7169. Fbits: uint8(8),
  7170. Fval: uint16(96),
  7171. },
  7172. 10: {
  7173. Fbits: uint8(8),
  7174. Fval: uint16(32),
  7175. },
  7176. 11: {
  7177. Fbits: uint8(9),
  7178. Fval: uint16(160),
  7179. },
  7180. 12: {
  7181. Fbits: uint8(8),
  7182. },
  7183. 13: {
  7184. Fbits: uint8(8),
  7185. Fval: uint16(128),
  7186. },
  7187. 14: {
  7188. Fbits: uint8(8),
  7189. Fval: uint16(64),
  7190. },
  7191. 15: {
  7192. Fbits: uint8(9),
  7193. Fval: uint16(224),
  7194. },
  7195. 16: {
  7196. Fop: uint8(16),
  7197. Fbits: uint8(7),
  7198. Fval: uint16(6),
  7199. },
  7200. 17: {
  7201. Fbits: uint8(8),
  7202. Fval: uint16(88),
  7203. },
  7204. 18: {
  7205. Fbits: uint8(8),
  7206. Fval: uint16(24),
  7207. },
  7208. 19: {
  7209. Fbits: uint8(9),
  7210. Fval: uint16(144),
  7211. },
  7212. 20: {
  7213. Fop: uint8(19),
  7214. Fbits: uint8(7),
  7215. Fval: uint16(59),
  7216. },
  7217. 21: {
  7218. Fbits: uint8(8),
  7219. Fval: uint16(120),
  7220. },
  7221. 22: {
  7222. Fbits: uint8(8),
  7223. Fval: uint16(56),
  7224. },
  7225. 23: {
  7226. Fbits: uint8(9),
  7227. Fval: uint16(208),
  7228. },
  7229. 24: {
  7230. Fop: uint8(17),
  7231. Fbits: uint8(7),
  7232. Fval: uint16(17),
  7233. },
  7234. 25: {
  7235. Fbits: uint8(8),
  7236. Fval: uint16(104),
  7237. },
  7238. 26: {
  7239. Fbits: uint8(8),
  7240. Fval: uint16(40),
  7241. },
  7242. 27: {
  7243. Fbits: uint8(9),
  7244. Fval: uint16(176),
  7245. },
  7246. 28: {
  7247. Fbits: uint8(8),
  7248. Fval: uint16(8),
  7249. },
  7250. 29: {
  7251. Fbits: uint8(8),
  7252. Fval: uint16(136),
  7253. },
  7254. 30: {
  7255. Fbits: uint8(8),
  7256. Fval: uint16(72),
  7257. },
  7258. 31: {
  7259. Fbits: uint8(9),
  7260. Fval: uint16(240),
  7261. },
  7262. 32: {
  7263. Fop: uint8(16),
  7264. Fbits: uint8(7),
  7265. Fval: uint16(4),
  7266. },
  7267. 33: {
  7268. Fbits: uint8(8),
  7269. Fval: uint16(84),
  7270. },
  7271. 34: {
  7272. Fbits: uint8(8),
  7273. Fval: uint16(20),
  7274. },
  7275. 35: {
  7276. Fop: uint8(21),
  7277. Fbits: uint8(8),
  7278. Fval: uint16(227),
  7279. },
  7280. 36: {
  7281. Fop: uint8(19),
  7282. Fbits: uint8(7),
  7283. Fval: uint16(43),
  7284. },
  7285. 37: {
  7286. Fbits: uint8(8),
  7287. Fval: uint16(116),
  7288. },
  7289. 38: {
  7290. Fbits: uint8(8),
  7291. Fval: uint16(52),
  7292. },
  7293. 39: {
  7294. Fbits: uint8(9),
  7295. Fval: uint16(200),
  7296. },
  7297. 40: {
  7298. Fop: uint8(17),
  7299. Fbits: uint8(7),
  7300. Fval: uint16(13),
  7301. },
  7302. 41: {
  7303. Fbits: uint8(8),
  7304. Fval: uint16(100),
  7305. },
  7306. 42: {
  7307. Fbits: uint8(8),
  7308. Fval: uint16(36),
  7309. },
  7310. 43: {
  7311. Fbits: uint8(9),
  7312. Fval: uint16(168),
  7313. },
  7314. 44: {
  7315. Fbits: uint8(8),
  7316. Fval: uint16(4),
  7317. },
  7318. 45: {
  7319. Fbits: uint8(8),
  7320. Fval: uint16(132),
  7321. },
  7322. 46: {
  7323. Fbits: uint8(8),
  7324. Fval: uint16(68),
  7325. },
  7326. 47: {
  7327. Fbits: uint8(9),
  7328. Fval: uint16(232),
  7329. },
  7330. 48: {
  7331. Fop: uint8(16),
  7332. Fbits: uint8(7),
  7333. Fval: uint16(8),
  7334. },
  7335. 49: {
  7336. Fbits: uint8(8),
  7337. Fval: uint16(92),
  7338. },
  7339. 50: {
  7340. Fbits: uint8(8),
  7341. Fval: uint16(28),
  7342. },
  7343. 51: {
  7344. Fbits: uint8(9),
  7345. Fval: uint16(152),
  7346. },
  7347. 52: {
  7348. Fop: uint8(20),
  7349. Fbits: uint8(7),
  7350. Fval: uint16(83),
  7351. },
  7352. 53: {
  7353. Fbits: uint8(8),
  7354. Fval: uint16(124),
  7355. },
  7356. 54: {
  7357. Fbits: uint8(8),
  7358. Fval: uint16(60),
  7359. },
  7360. 55: {
  7361. Fbits: uint8(9),
  7362. Fval: uint16(216),
  7363. },
  7364. 56: {
  7365. Fop: uint8(18),
  7366. Fbits: uint8(7),
  7367. Fval: uint16(23),
  7368. },
  7369. 57: {
  7370. Fbits: uint8(8),
  7371. Fval: uint16(108),
  7372. },
  7373. 58: {
  7374. Fbits: uint8(8),
  7375. Fval: uint16(44),
  7376. },
  7377. 59: {
  7378. Fbits: uint8(9),
  7379. Fval: uint16(184),
  7380. },
  7381. 60: {
  7382. Fbits: uint8(8),
  7383. Fval: uint16(12),
  7384. },
  7385. 61: {
  7386. Fbits: uint8(8),
  7387. Fval: uint16(140),
  7388. },
  7389. 62: {
  7390. Fbits: uint8(8),
  7391. Fval: uint16(76),
  7392. },
  7393. 63: {
  7394. Fbits: uint8(9),
  7395. Fval: uint16(248),
  7396. },
  7397. 64: {
  7398. Fop: uint8(16),
  7399. Fbits: uint8(7),
  7400. Fval: uint16(3),
  7401. },
  7402. 65: {
  7403. Fbits: uint8(8),
  7404. Fval: uint16(82),
  7405. },
  7406. 66: {
  7407. Fbits: uint8(8),
  7408. Fval: uint16(18),
  7409. },
  7410. 67: {
  7411. Fop: uint8(21),
  7412. Fbits: uint8(8),
  7413. Fval: uint16(163),
  7414. },
  7415. 68: {
  7416. Fop: uint8(19),
  7417. Fbits: uint8(7),
  7418. Fval: uint16(35),
  7419. },
  7420. 69: {
  7421. Fbits: uint8(8),
  7422. Fval: uint16(114),
  7423. },
  7424. 70: {
  7425. Fbits: uint8(8),
  7426. Fval: uint16(50),
  7427. },
  7428. 71: {
  7429. Fbits: uint8(9),
  7430. Fval: uint16(196),
  7431. },
  7432. 72: {
  7433. Fop: uint8(17),
  7434. Fbits: uint8(7),
  7435. Fval: uint16(11),
  7436. },
  7437. 73: {
  7438. Fbits: uint8(8),
  7439. Fval: uint16(98),
  7440. },
  7441. 74: {
  7442. Fbits: uint8(8),
  7443. Fval: uint16(34),
  7444. },
  7445. 75: {
  7446. Fbits: uint8(9),
  7447. Fval: uint16(164),
  7448. },
  7449. 76: {
  7450. Fbits: uint8(8),
  7451. Fval: uint16(2),
  7452. },
  7453. 77: {
  7454. Fbits: uint8(8),
  7455. Fval: uint16(130),
  7456. },
  7457. 78: {
  7458. Fbits: uint8(8),
  7459. Fval: uint16(66),
  7460. },
  7461. 79: {
  7462. Fbits: uint8(9),
  7463. Fval: uint16(228),
  7464. },
  7465. 80: {
  7466. Fop: uint8(16),
  7467. Fbits: uint8(7),
  7468. Fval: uint16(7),
  7469. },
  7470. 81: {
  7471. Fbits: uint8(8),
  7472. Fval: uint16(90),
  7473. },
  7474. 82: {
  7475. Fbits: uint8(8),
  7476. Fval: uint16(26),
  7477. },
  7478. 83: {
  7479. Fbits: uint8(9),
  7480. Fval: uint16(148),
  7481. },
  7482. 84: {
  7483. Fop: uint8(20),
  7484. Fbits: uint8(7),
  7485. Fval: uint16(67),
  7486. },
  7487. 85: {
  7488. Fbits: uint8(8),
  7489. Fval: uint16(122),
  7490. },
  7491. 86: {
  7492. Fbits: uint8(8),
  7493. Fval: uint16(58),
  7494. },
  7495. 87: {
  7496. Fbits: uint8(9),
  7497. Fval: uint16(212),
  7498. },
  7499. 88: {
  7500. Fop: uint8(18),
  7501. Fbits: uint8(7),
  7502. Fval: uint16(19),
  7503. },
  7504. 89: {
  7505. Fbits: uint8(8),
  7506. Fval: uint16(106),
  7507. },
  7508. 90: {
  7509. Fbits: uint8(8),
  7510. Fval: uint16(42),
  7511. },
  7512. 91: {
  7513. Fbits: uint8(9),
  7514. Fval: uint16(180),
  7515. },
  7516. 92: {
  7517. Fbits: uint8(8),
  7518. Fval: uint16(10),
  7519. },
  7520. 93: {
  7521. Fbits: uint8(8),
  7522. Fval: uint16(138),
  7523. },
  7524. 94: {
  7525. Fbits: uint8(8),
  7526. Fval: uint16(74),
  7527. },
  7528. 95: {
  7529. Fbits: uint8(9),
  7530. Fval: uint16(244),
  7531. },
  7532. 96: {
  7533. Fop: uint8(16),
  7534. Fbits: uint8(7),
  7535. Fval: uint16(5),
  7536. },
  7537. 97: {
  7538. Fbits: uint8(8),
  7539. Fval: uint16(86),
  7540. },
  7541. 98: {
  7542. Fbits: uint8(8),
  7543. Fval: uint16(22),
  7544. },
  7545. 99: {
  7546. Fop: uint8(64),
  7547. Fbits: uint8(8),
  7548. },
  7549. 100: {
  7550. Fop: uint8(19),
  7551. Fbits: uint8(7),
  7552. Fval: uint16(51),
  7553. },
  7554. 101: {
  7555. Fbits: uint8(8),
  7556. Fval: uint16(118),
  7557. },
  7558. 102: {
  7559. Fbits: uint8(8),
  7560. Fval: uint16(54),
  7561. },
  7562. 103: {
  7563. Fbits: uint8(9),
  7564. Fval: uint16(204),
  7565. },
  7566. 104: {
  7567. Fop: uint8(17),
  7568. Fbits: uint8(7),
  7569. Fval: uint16(15),
  7570. },
  7571. 105: {
  7572. Fbits: uint8(8),
  7573. Fval: uint16(102),
  7574. },
  7575. 106: {
  7576. Fbits: uint8(8),
  7577. Fval: uint16(38),
  7578. },
  7579. 107: {
  7580. Fbits: uint8(9),
  7581. Fval: uint16(172),
  7582. },
  7583. 108: {
  7584. Fbits: uint8(8),
  7585. Fval: uint16(6),
  7586. },
  7587. 109: {
  7588. Fbits: uint8(8),
  7589. Fval: uint16(134),
  7590. },
  7591. 110: {
  7592. Fbits: uint8(8),
  7593. Fval: uint16(70),
  7594. },
  7595. 111: {
  7596. Fbits: uint8(9),
  7597. Fval: uint16(236),
  7598. },
  7599. 112: {
  7600. Fop: uint8(16),
  7601. Fbits: uint8(7),
  7602. Fval: uint16(9),
  7603. },
  7604. 113: {
  7605. Fbits: uint8(8),
  7606. Fval: uint16(94),
  7607. },
  7608. 114: {
  7609. Fbits: uint8(8),
  7610. Fval: uint16(30),
  7611. },
  7612. 115: {
  7613. Fbits: uint8(9),
  7614. Fval: uint16(156),
  7615. },
  7616. 116: {
  7617. Fop: uint8(20),
  7618. Fbits: uint8(7),
  7619. Fval: uint16(99),
  7620. },
  7621. 117: {
  7622. Fbits: uint8(8),
  7623. Fval: uint16(126),
  7624. },
  7625. 118: {
  7626. Fbits: uint8(8),
  7627. Fval: uint16(62),
  7628. },
  7629. 119: {
  7630. Fbits: uint8(9),
  7631. Fval: uint16(220),
  7632. },
  7633. 120: {
  7634. Fop: uint8(18),
  7635. Fbits: uint8(7),
  7636. Fval: uint16(27),
  7637. },
  7638. 121: {
  7639. Fbits: uint8(8),
  7640. Fval: uint16(110),
  7641. },
  7642. 122: {
  7643. Fbits: uint8(8),
  7644. Fval: uint16(46),
  7645. },
  7646. 123: {
  7647. Fbits: uint8(9),
  7648. Fval: uint16(188),
  7649. },
  7650. 124: {
  7651. Fbits: uint8(8),
  7652. Fval: uint16(14),
  7653. },
  7654. 125: {
  7655. Fbits: uint8(8),
  7656. Fval: uint16(142),
  7657. },
  7658. 126: {
  7659. Fbits: uint8(8),
  7660. Fval: uint16(78),
  7661. },
  7662. 127: {
  7663. Fbits: uint8(9),
  7664. Fval: uint16(252),
  7665. },
  7666. 128: {
  7667. Fop: uint8(96),
  7668. Fbits: uint8(7),
  7669. },
  7670. 129: {
  7671. Fbits: uint8(8),
  7672. Fval: uint16(81),
  7673. },
  7674. 130: {
  7675. Fbits: uint8(8),
  7676. Fval: uint16(17),
  7677. },
  7678. 131: {
  7679. Fop: uint8(21),
  7680. Fbits: uint8(8),
  7681. Fval: uint16(131),
  7682. },
  7683. 132: {
  7684. Fop: uint8(18),
  7685. Fbits: uint8(7),
  7686. Fval: uint16(31),
  7687. },
  7688. 133: {
  7689. Fbits: uint8(8),
  7690. Fval: uint16(113),
  7691. },
  7692. 134: {
  7693. Fbits: uint8(8),
  7694. Fval: uint16(49),
  7695. },
  7696. 135: {
  7697. Fbits: uint8(9),
  7698. Fval: uint16(194),
  7699. },
  7700. 136: {
  7701. Fop: uint8(16),
  7702. Fbits: uint8(7),
  7703. Fval: uint16(10),
  7704. },
  7705. 137: {
  7706. Fbits: uint8(8),
  7707. Fval: uint16(97),
  7708. },
  7709. 138: {
  7710. Fbits: uint8(8),
  7711. Fval: uint16(33),
  7712. },
  7713. 139: {
  7714. Fbits: uint8(9),
  7715. Fval: uint16(162),
  7716. },
  7717. 140: {
  7718. Fbits: uint8(8),
  7719. Fval: uint16(1),
  7720. },
  7721. 141: {
  7722. Fbits: uint8(8),
  7723. Fval: uint16(129),
  7724. },
  7725. 142: {
  7726. Fbits: uint8(8),
  7727. Fval: uint16(65),
  7728. },
  7729. 143: {
  7730. Fbits: uint8(9),
  7731. Fval: uint16(226),
  7732. },
  7733. 144: {
  7734. Fop: uint8(16),
  7735. Fbits: uint8(7),
  7736. Fval: uint16(6),
  7737. },
  7738. 145: {
  7739. Fbits: uint8(8),
  7740. Fval: uint16(89),
  7741. },
  7742. 146: {
  7743. Fbits: uint8(8),
  7744. Fval: uint16(25),
  7745. },
  7746. 147: {
  7747. Fbits: uint8(9),
  7748. Fval: uint16(146),
  7749. },
  7750. 148: {
  7751. Fop: uint8(19),
  7752. Fbits: uint8(7),
  7753. Fval: uint16(59),
  7754. },
  7755. 149: {
  7756. Fbits: uint8(8),
  7757. Fval: uint16(121),
  7758. },
  7759. 150: {
  7760. Fbits: uint8(8),
  7761. Fval: uint16(57),
  7762. },
  7763. 151: {
  7764. Fbits: uint8(9),
  7765. Fval: uint16(210),
  7766. },
  7767. 152: {
  7768. Fop: uint8(17),
  7769. Fbits: uint8(7),
  7770. Fval: uint16(17),
  7771. },
  7772. 153: {
  7773. Fbits: uint8(8),
  7774. Fval: uint16(105),
  7775. },
  7776. 154: {
  7777. Fbits: uint8(8),
  7778. Fval: uint16(41),
  7779. },
  7780. 155: {
  7781. Fbits: uint8(9),
  7782. Fval: uint16(178),
  7783. },
  7784. 156: {
  7785. Fbits: uint8(8),
  7786. Fval: uint16(9),
  7787. },
  7788. 157: {
  7789. Fbits: uint8(8),
  7790. Fval: uint16(137),
  7791. },
  7792. 158: {
  7793. Fbits: uint8(8),
  7794. Fval: uint16(73),
  7795. },
  7796. 159: {
  7797. Fbits: uint8(9),
  7798. Fval: uint16(242),
  7799. },
  7800. 160: {
  7801. Fop: uint8(16),
  7802. Fbits: uint8(7),
  7803. Fval: uint16(4),
  7804. },
  7805. 161: {
  7806. Fbits: uint8(8),
  7807. Fval: uint16(85),
  7808. },
  7809. 162: {
  7810. Fbits: uint8(8),
  7811. Fval: uint16(21),
  7812. },
  7813. 163: {
  7814. Fop: uint8(16),
  7815. Fbits: uint8(8),
  7816. Fval: uint16(258),
  7817. },
  7818. 164: {
  7819. Fop: uint8(19),
  7820. Fbits: uint8(7),
  7821. Fval: uint16(43),
  7822. },
  7823. 165: {
  7824. Fbits: uint8(8),
  7825. Fval: uint16(117),
  7826. },
  7827. 166: {
  7828. Fbits: uint8(8),
  7829. Fval: uint16(53),
  7830. },
  7831. 167: {
  7832. Fbits: uint8(9),
  7833. Fval: uint16(202),
  7834. },
  7835. 168: {
  7836. Fop: uint8(17),
  7837. Fbits: uint8(7),
  7838. Fval: uint16(13),
  7839. },
  7840. 169: {
  7841. Fbits: uint8(8),
  7842. Fval: uint16(101),
  7843. },
  7844. 170: {
  7845. Fbits: uint8(8),
  7846. Fval: uint16(37),
  7847. },
  7848. 171: {
  7849. Fbits: uint8(9),
  7850. Fval: uint16(170),
  7851. },
  7852. 172: {
  7853. Fbits: uint8(8),
  7854. Fval: uint16(5),
  7855. },
  7856. 173: {
  7857. Fbits: uint8(8),
  7858. Fval: uint16(133),
  7859. },
  7860. 174: {
  7861. Fbits: uint8(8),
  7862. Fval: uint16(69),
  7863. },
  7864. 175: {
  7865. Fbits: uint8(9),
  7866. Fval: uint16(234),
  7867. },
  7868. 176: {
  7869. Fop: uint8(16),
  7870. Fbits: uint8(7),
  7871. Fval: uint16(8),
  7872. },
  7873. 177: {
  7874. Fbits: uint8(8),
  7875. Fval: uint16(93),
  7876. },
  7877. 178: {
  7878. Fbits: uint8(8),
  7879. Fval: uint16(29),
  7880. },
  7881. 179: {
  7882. Fbits: uint8(9),
  7883. Fval: uint16(154),
  7884. },
  7885. 180: {
  7886. Fop: uint8(20),
  7887. Fbits: uint8(7),
  7888. Fval: uint16(83),
  7889. },
  7890. 181: {
  7891. Fbits: uint8(8),
  7892. Fval: uint16(125),
  7893. },
  7894. 182: {
  7895. Fbits: uint8(8),
  7896. Fval: uint16(61),
  7897. },
  7898. 183: {
  7899. Fbits: uint8(9),
  7900. Fval: uint16(218),
  7901. },
  7902. 184: {
  7903. Fop: uint8(18),
  7904. Fbits: uint8(7),
  7905. Fval: uint16(23),
  7906. },
  7907. 185: {
  7908. Fbits: uint8(8),
  7909. Fval: uint16(109),
  7910. },
  7911. 186: {
  7912. Fbits: uint8(8),
  7913. Fval: uint16(45),
  7914. },
  7915. 187: {
  7916. Fbits: uint8(9),
  7917. Fval: uint16(186),
  7918. },
  7919. 188: {
  7920. Fbits: uint8(8),
  7921. Fval: uint16(13),
  7922. },
  7923. 189: {
  7924. Fbits: uint8(8),
  7925. Fval: uint16(141),
  7926. },
  7927. 190: {
  7928. Fbits: uint8(8),
  7929. Fval: uint16(77),
  7930. },
  7931. 191: {
  7932. Fbits: uint8(9),
  7933. Fval: uint16(250),
  7934. },
  7935. 192: {
  7936. Fop: uint8(16),
  7937. Fbits: uint8(7),
  7938. Fval: uint16(3),
  7939. },
  7940. 193: {
  7941. Fbits: uint8(8),
  7942. Fval: uint16(83),
  7943. },
  7944. 194: {
  7945. Fbits: uint8(8),
  7946. Fval: uint16(19),
  7947. },
  7948. 195: {
  7949. Fop: uint8(21),
  7950. Fbits: uint8(8),
  7951. Fval: uint16(195),
  7952. },
  7953. 196: {
  7954. Fop: uint8(19),
  7955. Fbits: uint8(7),
  7956. Fval: uint16(35),
  7957. },
  7958. 197: {
  7959. Fbits: uint8(8),
  7960. Fval: uint16(115),
  7961. },
  7962. 198: {
  7963. Fbits: uint8(8),
  7964. Fval: uint16(51),
  7965. },
  7966. 199: {
  7967. Fbits: uint8(9),
  7968. Fval: uint16(198),
  7969. },
  7970. 200: {
  7971. Fop: uint8(17),
  7972. Fbits: uint8(7),
  7973. Fval: uint16(11),
  7974. },
  7975. 201: {
  7976. Fbits: uint8(8),
  7977. Fval: uint16(99),
  7978. },
  7979. 202: {
  7980. Fbits: uint8(8),
  7981. Fval: uint16(35),
  7982. },
  7983. 203: {
  7984. Fbits: uint8(9),
  7985. Fval: uint16(166),
  7986. },
  7987. 204: {
  7988. Fbits: uint8(8),
  7989. Fval: uint16(3),
  7990. },
  7991. 205: {
  7992. Fbits: uint8(8),
  7993. Fval: uint16(131),
  7994. },
  7995. 206: {
  7996. Fbits: uint8(8),
  7997. Fval: uint16(67),
  7998. },
  7999. 207: {
  8000. Fbits: uint8(9),
  8001. Fval: uint16(230),
  8002. },
  8003. 208: {
  8004. Fop: uint8(16),
  8005. Fbits: uint8(7),
  8006. Fval: uint16(7),
  8007. },
  8008. 209: {
  8009. Fbits: uint8(8),
  8010. Fval: uint16(91),
  8011. },
  8012. 210: {
  8013. Fbits: uint8(8),
  8014. Fval: uint16(27),
  8015. },
  8016. 211: {
  8017. Fbits: uint8(9),
  8018. Fval: uint16(150),
  8019. },
  8020. 212: {
  8021. Fop: uint8(20),
  8022. Fbits: uint8(7),
  8023. Fval: uint16(67),
  8024. },
  8025. 213: {
  8026. Fbits: uint8(8),
  8027. Fval: uint16(123),
  8028. },
  8029. 214: {
  8030. Fbits: uint8(8),
  8031. Fval: uint16(59),
  8032. },
  8033. 215: {
  8034. Fbits: uint8(9),
  8035. Fval: uint16(214),
  8036. },
  8037. 216: {
  8038. Fop: uint8(18),
  8039. Fbits: uint8(7),
  8040. Fval: uint16(19),
  8041. },
  8042. 217: {
  8043. Fbits: uint8(8),
  8044. Fval: uint16(107),
  8045. },
  8046. 218: {
  8047. Fbits: uint8(8),
  8048. Fval: uint16(43),
  8049. },
  8050. 219: {
  8051. Fbits: uint8(9),
  8052. Fval: uint16(182),
  8053. },
  8054. 220: {
  8055. Fbits: uint8(8),
  8056. Fval: uint16(11),
  8057. },
  8058. 221: {
  8059. Fbits: uint8(8),
  8060. Fval: uint16(139),
  8061. },
  8062. 222: {
  8063. Fbits: uint8(8),
  8064. Fval: uint16(75),
  8065. },
  8066. 223: {
  8067. Fbits: uint8(9),
  8068. Fval: uint16(246),
  8069. },
  8070. 224: {
  8071. Fop: uint8(16),
  8072. Fbits: uint8(7),
  8073. Fval: uint16(5),
  8074. },
  8075. 225: {
  8076. Fbits: uint8(8),
  8077. Fval: uint16(87),
  8078. },
  8079. 226: {
  8080. Fbits: uint8(8),
  8081. Fval: uint16(23),
  8082. },
  8083. 227: {
  8084. Fop: uint8(64),
  8085. Fbits: uint8(8),
  8086. },
  8087. 228: {
  8088. Fop: uint8(19),
  8089. Fbits: uint8(7),
  8090. Fval: uint16(51),
  8091. },
  8092. 229: {
  8093. Fbits: uint8(8),
  8094. Fval: uint16(119),
  8095. },
  8096. 230: {
  8097. Fbits: uint8(8),
  8098. Fval: uint16(55),
  8099. },
  8100. 231: {
  8101. Fbits: uint8(9),
  8102. Fval: uint16(206),
  8103. },
  8104. 232: {
  8105. Fop: uint8(17),
  8106. Fbits: uint8(7),
  8107. Fval: uint16(15),
  8108. },
  8109. 233: {
  8110. Fbits: uint8(8),
  8111. Fval: uint16(103),
  8112. },
  8113. 234: {
  8114. Fbits: uint8(8),
  8115. Fval: uint16(39),
  8116. },
  8117. 235: {
  8118. Fbits: uint8(9),
  8119. Fval: uint16(174),
  8120. },
  8121. 236: {
  8122. Fbits: uint8(8),
  8123. Fval: uint16(7),
  8124. },
  8125. 237: {
  8126. Fbits: uint8(8),
  8127. Fval: uint16(135),
  8128. },
  8129. 238: {
  8130. Fbits: uint8(8),
  8131. Fval: uint16(71),
  8132. },
  8133. 239: {
  8134. Fbits: uint8(9),
  8135. Fval: uint16(238),
  8136. },
  8137. 240: {
  8138. Fop: uint8(16),
  8139. Fbits: uint8(7),
  8140. Fval: uint16(9),
  8141. },
  8142. 241: {
  8143. Fbits: uint8(8),
  8144. Fval: uint16(95),
  8145. },
  8146. 242: {
  8147. Fbits: uint8(8),
  8148. Fval: uint16(31),
  8149. },
  8150. 243: {
  8151. Fbits: uint8(9),
  8152. Fval: uint16(158),
  8153. },
  8154. 244: {
  8155. Fop: uint8(20),
  8156. Fbits: uint8(7),
  8157. Fval: uint16(99),
  8158. },
  8159. 245: {
  8160. Fbits: uint8(8),
  8161. Fval: uint16(127),
  8162. },
  8163. 246: {
  8164. Fbits: uint8(8),
  8165. Fval: uint16(63),
  8166. },
  8167. 247: {
  8168. Fbits: uint8(9),
  8169. Fval: uint16(222),
  8170. },
  8171. 248: {
  8172. Fop: uint8(18),
  8173. Fbits: uint8(7),
  8174. Fval: uint16(27),
  8175. },
  8176. 249: {
  8177. Fbits: uint8(8),
  8178. Fval: uint16(111),
  8179. },
  8180. 250: {
  8181. Fbits: uint8(8),
  8182. Fval: uint16(47),
  8183. },
  8184. 251: {
  8185. Fbits: uint8(9),
  8186. Fval: uint16(190),
  8187. },
  8188. 252: {
  8189. Fbits: uint8(8),
  8190. Fval: uint16(15),
  8191. },
  8192. 253: {
  8193. Fbits: uint8(8),
  8194. Fval: uint16(143),
  8195. },
  8196. 254: {
  8197. Fbits: uint8(8),
  8198. Fval: uint16(79),
  8199. },
  8200. 255: {
  8201. Fbits: uint8(9),
  8202. Fval: uint16(254),
  8203. },
  8204. 256: {
  8205. Fop: uint8(96),
  8206. Fbits: uint8(7),
  8207. },
  8208. 257: {
  8209. Fbits: uint8(8),
  8210. Fval: uint16(80),
  8211. },
  8212. 258: {
  8213. Fbits: uint8(8),
  8214. Fval: uint16(16),
  8215. },
  8216. 259: {
  8217. Fop: uint8(20),
  8218. Fbits: uint8(8),
  8219. Fval: uint16(115),
  8220. },
  8221. 260: {
  8222. Fop: uint8(18),
  8223. Fbits: uint8(7),
  8224. Fval: uint16(31),
  8225. },
  8226. 261: {
  8227. Fbits: uint8(8),
  8228. Fval: uint16(112),
  8229. },
  8230. 262: {
  8231. Fbits: uint8(8),
  8232. Fval: uint16(48),
  8233. },
  8234. 263: {
  8235. Fbits: uint8(9),
  8236. Fval: uint16(193),
  8237. },
  8238. 264: {
  8239. Fop: uint8(16),
  8240. Fbits: uint8(7),
  8241. Fval: uint16(10),
  8242. },
  8243. 265: {
  8244. Fbits: uint8(8),
  8245. Fval: uint16(96),
  8246. },
  8247. 266: {
  8248. Fbits: uint8(8),
  8249. Fval: uint16(32),
  8250. },
  8251. 267: {
  8252. Fbits: uint8(9),
  8253. Fval: uint16(161),
  8254. },
  8255. 268: {
  8256. Fbits: uint8(8),
  8257. },
  8258. 269: {
  8259. Fbits: uint8(8),
  8260. Fval: uint16(128),
  8261. },
  8262. 270: {
  8263. Fbits: uint8(8),
  8264. Fval: uint16(64),
  8265. },
  8266. 271: {
  8267. Fbits: uint8(9),
  8268. Fval: uint16(225),
  8269. },
  8270. 272: {
  8271. Fop: uint8(16),
  8272. Fbits: uint8(7),
  8273. Fval: uint16(6),
  8274. },
  8275. 273: {
  8276. Fbits: uint8(8),
  8277. Fval: uint16(88),
  8278. },
  8279. 274: {
  8280. Fbits: uint8(8),
  8281. Fval: uint16(24),
  8282. },
  8283. 275: {
  8284. Fbits: uint8(9),
  8285. Fval: uint16(145),
  8286. },
  8287. 276: {
  8288. Fop: uint8(19),
  8289. Fbits: uint8(7),
  8290. Fval: uint16(59),
  8291. },
  8292. 277: {
  8293. Fbits: uint8(8),
  8294. Fval: uint16(120),
  8295. },
  8296. 278: {
  8297. Fbits: uint8(8),
  8298. Fval: uint16(56),
  8299. },
  8300. 279: {
  8301. Fbits: uint8(9),
  8302. Fval: uint16(209),
  8303. },
  8304. 280: {
  8305. Fop: uint8(17),
  8306. Fbits: uint8(7),
  8307. Fval: uint16(17),
  8308. },
  8309. 281: {
  8310. Fbits: uint8(8),
  8311. Fval: uint16(104),
  8312. },
  8313. 282: {
  8314. Fbits: uint8(8),
  8315. Fval: uint16(40),
  8316. },
  8317. 283: {
  8318. Fbits: uint8(9),
  8319. Fval: uint16(177),
  8320. },
  8321. 284: {
  8322. Fbits: uint8(8),
  8323. Fval: uint16(8),
  8324. },
  8325. 285: {
  8326. Fbits: uint8(8),
  8327. Fval: uint16(136),
  8328. },
  8329. 286: {
  8330. Fbits: uint8(8),
  8331. Fval: uint16(72),
  8332. },
  8333. 287: {
  8334. Fbits: uint8(9),
  8335. Fval: uint16(241),
  8336. },
  8337. 288: {
  8338. Fop: uint8(16),
  8339. Fbits: uint8(7),
  8340. Fval: uint16(4),
  8341. },
  8342. 289: {
  8343. Fbits: uint8(8),
  8344. Fval: uint16(84),
  8345. },
  8346. 290: {
  8347. Fbits: uint8(8),
  8348. Fval: uint16(20),
  8349. },
  8350. 291: {
  8351. Fop: uint8(21),
  8352. Fbits: uint8(8),
  8353. Fval: uint16(227),
  8354. },
  8355. 292: {
  8356. Fop: uint8(19),
  8357. Fbits: uint8(7),
  8358. Fval: uint16(43),
  8359. },
  8360. 293: {
  8361. Fbits: uint8(8),
  8362. Fval: uint16(116),
  8363. },
  8364. 294: {
  8365. Fbits: uint8(8),
  8366. Fval: uint16(52),
  8367. },
  8368. 295: {
  8369. Fbits: uint8(9),
  8370. Fval: uint16(201),
  8371. },
  8372. 296: {
  8373. Fop: uint8(17),
  8374. Fbits: uint8(7),
  8375. Fval: uint16(13),
  8376. },
  8377. 297: {
  8378. Fbits: uint8(8),
  8379. Fval: uint16(100),
  8380. },
  8381. 298: {
  8382. Fbits: uint8(8),
  8383. Fval: uint16(36),
  8384. },
  8385. 299: {
  8386. Fbits: uint8(9),
  8387. Fval: uint16(169),
  8388. },
  8389. 300: {
  8390. Fbits: uint8(8),
  8391. Fval: uint16(4),
  8392. },
  8393. 301: {
  8394. Fbits: uint8(8),
  8395. Fval: uint16(132),
  8396. },
  8397. 302: {
  8398. Fbits: uint8(8),
  8399. Fval: uint16(68),
  8400. },
  8401. 303: {
  8402. Fbits: uint8(9),
  8403. Fval: uint16(233),
  8404. },
  8405. 304: {
  8406. Fop: uint8(16),
  8407. Fbits: uint8(7),
  8408. Fval: uint16(8),
  8409. },
  8410. 305: {
  8411. Fbits: uint8(8),
  8412. Fval: uint16(92),
  8413. },
  8414. 306: {
  8415. Fbits: uint8(8),
  8416. Fval: uint16(28),
  8417. },
  8418. 307: {
  8419. Fbits: uint8(9),
  8420. Fval: uint16(153),
  8421. },
  8422. 308: {
  8423. Fop: uint8(20),
  8424. Fbits: uint8(7),
  8425. Fval: uint16(83),
  8426. },
  8427. 309: {
  8428. Fbits: uint8(8),
  8429. Fval: uint16(124),
  8430. },
  8431. 310: {
  8432. Fbits: uint8(8),
  8433. Fval: uint16(60),
  8434. },
  8435. 311: {
  8436. Fbits: uint8(9),
  8437. Fval: uint16(217),
  8438. },
  8439. 312: {
  8440. Fop: uint8(18),
  8441. Fbits: uint8(7),
  8442. Fval: uint16(23),
  8443. },
  8444. 313: {
  8445. Fbits: uint8(8),
  8446. Fval: uint16(108),
  8447. },
  8448. 314: {
  8449. Fbits: uint8(8),
  8450. Fval: uint16(44),
  8451. },
  8452. 315: {
  8453. Fbits: uint8(9),
  8454. Fval: uint16(185),
  8455. },
  8456. 316: {
  8457. Fbits: uint8(8),
  8458. Fval: uint16(12),
  8459. },
  8460. 317: {
  8461. Fbits: uint8(8),
  8462. Fval: uint16(140),
  8463. },
  8464. 318: {
  8465. Fbits: uint8(8),
  8466. Fval: uint16(76),
  8467. },
  8468. 319: {
  8469. Fbits: uint8(9),
  8470. Fval: uint16(249),
  8471. },
  8472. 320: {
  8473. Fop: uint8(16),
  8474. Fbits: uint8(7),
  8475. Fval: uint16(3),
  8476. },
  8477. 321: {
  8478. Fbits: uint8(8),
  8479. Fval: uint16(82),
  8480. },
  8481. 322: {
  8482. Fbits: uint8(8),
  8483. Fval: uint16(18),
  8484. },
  8485. 323: {
  8486. Fop: uint8(21),
  8487. Fbits: uint8(8),
  8488. Fval: uint16(163),
  8489. },
  8490. 324: {
  8491. Fop: uint8(19),
  8492. Fbits: uint8(7),
  8493. Fval: uint16(35),
  8494. },
  8495. 325: {
  8496. Fbits: uint8(8),
  8497. Fval: uint16(114),
  8498. },
  8499. 326: {
  8500. Fbits: uint8(8),
  8501. Fval: uint16(50),
  8502. },
  8503. 327: {
  8504. Fbits: uint8(9),
  8505. Fval: uint16(197),
  8506. },
  8507. 328: {
  8508. Fop: uint8(17),
  8509. Fbits: uint8(7),
  8510. Fval: uint16(11),
  8511. },
  8512. 329: {
  8513. Fbits: uint8(8),
  8514. Fval: uint16(98),
  8515. },
  8516. 330: {
  8517. Fbits: uint8(8),
  8518. Fval: uint16(34),
  8519. },
  8520. 331: {
  8521. Fbits: uint8(9),
  8522. Fval: uint16(165),
  8523. },
  8524. 332: {
  8525. Fbits: uint8(8),
  8526. Fval: uint16(2),
  8527. },
  8528. 333: {
  8529. Fbits: uint8(8),
  8530. Fval: uint16(130),
  8531. },
  8532. 334: {
  8533. Fbits: uint8(8),
  8534. Fval: uint16(66),
  8535. },
  8536. 335: {
  8537. Fbits: uint8(9),
  8538. Fval: uint16(229),
  8539. },
  8540. 336: {
  8541. Fop: uint8(16),
  8542. Fbits: uint8(7),
  8543. Fval: uint16(7),
  8544. },
  8545. 337: {
  8546. Fbits: uint8(8),
  8547. Fval: uint16(90),
  8548. },
  8549. 338: {
  8550. Fbits: uint8(8),
  8551. Fval: uint16(26),
  8552. },
  8553. 339: {
  8554. Fbits: uint8(9),
  8555. Fval: uint16(149),
  8556. },
  8557. 340: {
  8558. Fop: uint8(20),
  8559. Fbits: uint8(7),
  8560. Fval: uint16(67),
  8561. },
  8562. 341: {
  8563. Fbits: uint8(8),
  8564. Fval: uint16(122),
  8565. },
  8566. 342: {
  8567. Fbits: uint8(8),
  8568. Fval: uint16(58),
  8569. },
  8570. 343: {
  8571. Fbits: uint8(9),
  8572. Fval: uint16(213),
  8573. },
  8574. 344: {
  8575. Fop: uint8(18),
  8576. Fbits: uint8(7),
  8577. Fval: uint16(19),
  8578. },
  8579. 345: {
  8580. Fbits: uint8(8),
  8581. Fval: uint16(106),
  8582. },
  8583. 346: {
  8584. Fbits: uint8(8),
  8585. Fval: uint16(42),
  8586. },
  8587. 347: {
  8588. Fbits: uint8(9),
  8589. Fval: uint16(181),
  8590. },
  8591. 348: {
  8592. Fbits: uint8(8),
  8593. Fval: uint16(10),
  8594. },
  8595. 349: {
  8596. Fbits: uint8(8),
  8597. Fval: uint16(138),
  8598. },
  8599. 350: {
  8600. Fbits: uint8(8),
  8601. Fval: uint16(74),
  8602. },
  8603. 351: {
  8604. Fbits: uint8(9),
  8605. Fval: uint16(245),
  8606. },
  8607. 352: {
  8608. Fop: uint8(16),
  8609. Fbits: uint8(7),
  8610. Fval: uint16(5),
  8611. },
  8612. 353: {
  8613. Fbits: uint8(8),
  8614. Fval: uint16(86),
  8615. },
  8616. 354: {
  8617. Fbits: uint8(8),
  8618. Fval: uint16(22),
  8619. },
  8620. 355: {
  8621. Fop: uint8(64),
  8622. Fbits: uint8(8),
  8623. },
  8624. 356: {
  8625. Fop: uint8(19),
  8626. Fbits: uint8(7),
  8627. Fval: uint16(51),
  8628. },
  8629. 357: {
  8630. Fbits: uint8(8),
  8631. Fval: uint16(118),
  8632. },
  8633. 358: {
  8634. Fbits: uint8(8),
  8635. Fval: uint16(54),
  8636. },
  8637. 359: {
  8638. Fbits: uint8(9),
  8639. Fval: uint16(205),
  8640. },
  8641. 360: {
  8642. Fop: uint8(17),
  8643. Fbits: uint8(7),
  8644. Fval: uint16(15),
  8645. },
  8646. 361: {
  8647. Fbits: uint8(8),
  8648. Fval: uint16(102),
  8649. },
  8650. 362: {
  8651. Fbits: uint8(8),
  8652. Fval: uint16(38),
  8653. },
  8654. 363: {
  8655. Fbits: uint8(9),
  8656. Fval: uint16(173),
  8657. },
  8658. 364: {
  8659. Fbits: uint8(8),
  8660. Fval: uint16(6),
  8661. },
  8662. 365: {
  8663. Fbits: uint8(8),
  8664. Fval: uint16(134),
  8665. },
  8666. 366: {
  8667. Fbits: uint8(8),
  8668. Fval: uint16(70),
  8669. },
  8670. 367: {
  8671. Fbits: uint8(9),
  8672. Fval: uint16(237),
  8673. },
  8674. 368: {
  8675. Fop: uint8(16),
  8676. Fbits: uint8(7),
  8677. Fval: uint16(9),
  8678. },
  8679. 369: {
  8680. Fbits: uint8(8),
  8681. Fval: uint16(94),
  8682. },
  8683. 370: {
  8684. Fbits: uint8(8),
  8685. Fval: uint16(30),
  8686. },
  8687. 371: {
  8688. Fbits: uint8(9),
  8689. Fval: uint16(157),
  8690. },
  8691. 372: {
  8692. Fop: uint8(20),
  8693. Fbits: uint8(7),
  8694. Fval: uint16(99),
  8695. },
  8696. 373: {
  8697. Fbits: uint8(8),
  8698. Fval: uint16(126),
  8699. },
  8700. 374: {
  8701. Fbits: uint8(8),
  8702. Fval: uint16(62),
  8703. },
  8704. 375: {
  8705. Fbits: uint8(9),
  8706. Fval: uint16(221),
  8707. },
  8708. 376: {
  8709. Fop: uint8(18),
  8710. Fbits: uint8(7),
  8711. Fval: uint16(27),
  8712. },
  8713. 377: {
  8714. Fbits: uint8(8),
  8715. Fval: uint16(110),
  8716. },
  8717. 378: {
  8718. Fbits: uint8(8),
  8719. Fval: uint16(46),
  8720. },
  8721. 379: {
  8722. Fbits: uint8(9),
  8723. Fval: uint16(189),
  8724. },
  8725. 380: {
  8726. Fbits: uint8(8),
  8727. Fval: uint16(14),
  8728. },
  8729. 381: {
  8730. Fbits: uint8(8),
  8731. Fval: uint16(142),
  8732. },
  8733. 382: {
  8734. Fbits: uint8(8),
  8735. Fval: uint16(78),
  8736. },
  8737. 383: {
  8738. Fbits: uint8(9),
  8739. Fval: uint16(253),
  8740. },
  8741. 384: {
  8742. Fop: uint8(96),
  8743. Fbits: uint8(7),
  8744. },
  8745. 385: {
  8746. Fbits: uint8(8),
  8747. Fval: uint16(81),
  8748. },
  8749. 386: {
  8750. Fbits: uint8(8),
  8751. Fval: uint16(17),
  8752. },
  8753. 387: {
  8754. Fop: uint8(21),
  8755. Fbits: uint8(8),
  8756. Fval: uint16(131),
  8757. },
  8758. 388: {
  8759. Fop: uint8(18),
  8760. Fbits: uint8(7),
  8761. Fval: uint16(31),
  8762. },
  8763. 389: {
  8764. Fbits: uint8(8),
  8765. Fval: uint16(113),
  8766. },
  8767. 390: {
  8768. Fbits: uint8(8),
  8769. Fval: uint16(49),
  8770. },
  8771. 391: {
  8772. Fbits: uint8(9),
  8773. Fval: uint16(195),
  8774. },
  8775. 392: {
  8776. Fop: uint8(16),
  8777. Fbits: uint8(7),
  8778. Fval: uint16(10),
  8779. },
  8780. 393: {
  8781. Fbits: uint8(8),
  8782. Fval: uint16(97),
  8783. },
  8784. 394: {
  8785. Fbits: uint8(8),
  8786. Fval: uint16(33),
  8787. },
  8788. 395: {
  8789. Fbits: uint8(9),
  8790. Fval: uint16(163),
  8791. },
  8792. 396: {
  8793. Fbits: uint8(8),
  8794. Fval: uint16(1),
  8795. },
  8796. 397: {
  8797. Fbits: uint8(8),
  8798. Fval: uint16(129),
  8799. },
  8800. 398: {
  8801. Fbits: uint8(8),
  8802. Fval: uint16(65),
  8803. },
  8804. 399: {
  8805. Fbits: uint8(9),
  8806. Fval: uint16(227),
  8807. },
  8808. 400: {
  8809. Fop: uint8(16),
  8810. Fbits: uint8(7),
  8811. Fval: uint16(6),
  8812. },
  8813. 401: {
  8814. Fbits: uint8(8),
  8815. Fval: uint16(89),
  8816. },
  8817. 402: {
  8818. Fbits: uint8(8),
  8819. Fval: uint16(25),
  8820. },
  8821. 403: {
  8822. Fbits: uint8(9),
  8823. Fval: uint16(147),
  8824. },
  8825. 404: {
  8826. Fop: uint8(19),
  8827. Fbits: uint8(7),
  8828. Fval: uint16(59),
  8829. },
  8830. 405: {
  8831. Fbits: uint8(8),
  8832. Fval: uint16(121),
  8833. },
  8834. 406: {
  8835. Fbits: uint8(8),
  8836. Fval: uint16(57),
  8837. },
  8838. 407: {
  8839. Fbits: uint8(9),
  8840. Fval: uint16(211),
  8841. },
  8842. 408: {
  8843. Fop: uint8(17),
  8844. Fbits: uint8(7),
  8845. Fval: uint16(17),
  8846. },
  8847. 409: {
  8848. Fbits: uint8(8),
  8849. Fval: uint16(105),
  8850. },
  8851. 410: {
  8852. Fbits: uint8(8),
  8853. Fval: uint16(41),
  8854. },
  8855. 411: {
  8856. Fbits: uint8(9),
  8857. Fval: uint16(179),
  8858. },
  8859. 412: {
  8860. Fbits: uint8(8),
  8861. Fval: uint16(9),
  8862. },
  8863. 413: {
  8864. Fbits: uint8(8),
  8865. Fval: uint16(137),
  8866. },
  8867. 414: {
  8868. Fbits: uint8(8),
  8869. Fval: uint16(73),
  8870. },
  8871. 415: {
  8872. Fbits: uint8(9),
  8873. Fval: uint16(243),
  8874. },
  8875. 416: {
  8876. Fop: uint8(16),
  8877. Fbits: uint8(7),
  8878. Fval: uint16(4),
  8879. },
  8880. 417: {
  8881. Fbits: uint8(8),
  8882. Fval: uint16(85),
  8883. },
  8884. 418: {
  8885. Fbits: uint8(8),
  8886. Fval: uint16(21),
  8887. },
  8888. 419: {
  8889. Fop: uint8(16),
  8890. Fbits: uint8(8),
  8891. Fval: uint16(258),
  8892. },
  8893. 420: {
  8894. Fop: uint8(19),
  8895. Fbits: uint8(7),
  8896. Fval: uint16(43),
  8897. },
  8898. 421: {
  8899. Fbits: uint8(8),
  8900. Fval: uint16(117),
  8901. },
  8902. 422: {
  8903. Fbits: uint8(8),
  8904. Fval: uint16(53),
  8905. },
  8906. 423: {
  8907. Fbits: uint8(9),
  8908. Fval: uint16(203),
  8909. },
  8910. 424: {
  8911. Fop: uint8(17),
  8912. Fbits: uint8(7),
  8913. Fval: uint16(13),
  8914. },
  8915. 425: {
  8916. Fbits: uint8(8),
  8917. Fval: uint16(101),
  8918. },
  8919. 426: {
  8920. Fbits: uint8(8),
  8921. Fval: uint16(37),
  8922. },
  8923. 427: {
  8924. Fbits: uint8(9),
  8925. Fval: uint16(171),
  8926. },
  8927. 428: {
  8928. Fbits: uint8(8),
  8929. Fval: uint16(5),
  8930. },
  8931. 429: {
  8932. Fbits: uint8(8),
  8933. Fval: uint16(133),
  8934. },
  8935. 430: {
  8936. Fbits: uint8(8),
  8937. Fval: uint16(69),
  8938. },
  8939. 431: {
  8940. Fbits: uint8(9),
  8941. Fval: uint16(235),
  8942. },
  8943. 432: {
  8944. Fop: uint8(16),
  8945. Fbits: uint8(7),
  8946. Fval: uint16(8),
  8947. },
  8948. 433: {
  8949. Fbits: uint8(8),
  8950. Fval: uint16(93),
  8951. },
  8952. 434: {
  8953. Fbits: uint8(8),
  8954. Fval: uint16(29),
  8955. },
  8956. 435: {
  8957. Fbits: uint8(9),
  8958. Fval: uint16(155),
  8959. },
  8960. 436: {
  8961. Fop: uint8(20),
  8962. Fbits: uint8(7),
  8963. Fval: uint16(83),
  8964. },
  8965. 437: {
  8966. Fbits: uint8(8),
  8967. Fval: uint16(125),
  8968. },
  8969. 438: {
  8970. Fbits: uint8(8),
  8971. Fval: uint16(61),
  8972. },
  8973. 439: {
  8974. Fbits: uint8(9),
  8975. Fval: uint16(219),
  8976. },
  8977. 440: {
  8978. Fop: uint8(18),
  8979. Fbits: uint8(7),
  8980. Fval: uint16(23),
  8981. },
  8982. 441: {
  8983. Fbits: uint8(8),
  8984. Fval: uint16(109),
  8985. },
  8986. 442: {
  8987. Fbits: uint8(8),
  8988. Fval: uint16(45),
  8989. },
  8990. 443: {
  8991. Fbits: uint8(9),
  8992. Fval: uint16(187),
  8993. },
  8994. 444: {
  8995. Fbits: uint8(8),
  8996. Fval: uint16(13),
  8997. },
  8998. 445: {
  8999. Fbits: uint8(8),
  9000. Fval: uint16(141),
  9001. },
  9002. 446: {
  9003. Fbits: uint8(8),
  9004. Fval: uint16(77),
  9005. },
  9006. 447: {
  9007. Fbits: uint8(9),
  9008. Fval: uint16(251),
  9009. },
  9010. 448: {
  9011. Fop: uint8(16),
  9012. Fbits: uint8(7),
  9013. Fval: uint16(3),
  9014. },
  9015. 449: {
  9016. Fbits: uint8(8),
  9017. Fval: uint16(83),
  9018. },
  9019. 450: {
  9020. Fbits: uint8(8),
  9021. Fval: uint16(19),
  9022. },
  9023. 451: {
  9024. Fop: uint8(21),
  9025. Fbits: uint8(8),
  9026. Fval: uint16(195),
  9027. },
  9028. 452: {
  9029. Fop: uint8(19),
  9030. Fbits: uint8(7),
  9031. Fval: uint16(35),
  9032. },
  9033. 453: {
  9034. Fbits: uint8(8),
  9035. Fval: uint16(115),
  9036. },
  9037. 454: {
  9038. Fbits: uint8(8),
  9039. Fval: uint16(51),
  9040. },
  9041. 455: {
  9042. Fbits: uint8(9),
  9043. Fval: uint16(199),
  9044. },
  9045. 456: {
  9046. Fop: uint8(17),
  9047. Fbits: uint8(7),
  9048. Fval: uint16(11),
  9049. },
  9050. 457: {
  9051. Fbits: uint8(8),
  9052. Fval: uint16(99),
  9053. },
  9054. 458: {
  9055. Fbits: uint8(8),
  9056. Fval: uint16(35),
  9057. },
  9058. 459: {
  9059. Fbits: uint8(9),
  9060. Fval: uint16(167),
  9061. },
  9062. 460: {
  9063. Fbits: uint8(8),
  9064. Fval: uint16(3),
  9065. },
  9066. 461: {
  9067. Fbits: uint8(8),
  9068. Fval: uint16(131),
  9069. },
  9070. 462: {
  9071. Fbits: uint8(8),
  9072. Fval: uint16(67),
  9073. },
  9074. 463: {
  9075. Fbits: uint8(9),
  9076. Fval: uint16(231),
  9077. },
  9078. 464: {
  9079. Fop: uint8(16),
  9080. Fbits: uint8(7),
  9081. Fval: uint16(7),
  9082. },
  9083. 465: {
  9084. Fbits: uint8(8),
  9085. Fval: uint16(91),
  9086. },
  9087. 466: {
  9088. Fbits: uint8(8),
  9089. Fval: uint16(27),
  9090. },
  9091. 467: {
  9092. Fbits: uint8(9),
  9093. Fval: uint16(151),
  9094. },
  9095. 468: {
  9096. Fop: uint8(20),
  9097. Fbits: uint8(7),
  9098. Fval: uint16(67),
  9099. },
  9100. 469: {
  9101. Fbits: uint8(8),
  9102. Fval: uint16(123),
  9103. },
  9104. 470: {
  9105. Fbits: uint8(8),
  9106. Fval: uint16(59),
  9107. },
  9108. 471: {
  9109. Fbits: uint8(9),
  9110. Fval: uint16(215),
  9111. },
  9112. 472: {
  9113. Fop: uint8(18),
  9114. Fbits: uint8(7),
  9115. Fval: uint16(19),
  9116. },
  9117. 473: {
  9118. Fbits: uint8(8),
  9119. Fval: uint16(107),
  9120. },
  9121. 474: {
  9122. Fbits: uint8(8),
  9123. Fval: uint16(43),
  9124. },
  9125. 475: {
  9126. Fbits: uint8(9),
  9127. Fval: uint16(183),
  9128. },
  9129. 476: {
  9130. Fbits: uint8(8),
  9131. Fval: uint16(11),
  9132. },
  9133. 477: {
  9134. Fbits: uint8(8),
  9135. Fval: uint16(139),
  9136. },
  9137. 478: {
  9138. Fbits: uint8(8),
  9139. Fval: uint16(75),
  9140. },
  9141. 479: {
  9142. Fbits: uint8(9),
  9143. Fval: uint16(247),
  9144. },
  9145. 480: {
  9146. Fop: uint8(16),
  9147. Fbits: uint8(7),
  9148. Fval: uint16(5),
  9149. },
  9150. 481: {
  9151. Fbits: uint8(8),
  9152. Fval: uint16(87),
  9153. },
  9154. 482: {
  9155. Fbits: uint8(8),
  9156. Fval: uint16(23),
  9157. },
  9158. 483: {
  9159. Fop: uint8(64),
  9160. Fbits: uint8(8),
  9161. },
  9162. 484: {
  9163. Fop: uint8(19),
  9164. Fbits: uint8(7),
  9165. Fval: uint16(51),
  9166. },
  9167. 485: {
  9168. Fbits: uint8(8),
  9169. Fval: uint16(119),
  9170. },
  9171. 486: {
  9172. Fbits: uint8(8),
  9173. Fval: uint16(55),
  9174. },
  9175. 487: {
  9176. Fbits: uint8(9),
  9177. Fval: uint16(207),
  9178. },
  9179. 488: {
  9180. Fop: uint8(17),
  9181. Fbits: uint8(7),
  9182. Fval: uint16(15),
  9183. },
  9184. 489: {
  9185. Fbits: uint8(8),
  9186. Fval: uint16(103),
  9187. },
  9188. 490: {
  9189. Fbits: uint8(8),
  9190. Fval: uint16(39),
  9191. },
  9192. 491: {
  9193. Fbits: uint8(9),
  9194. Fval: uint16(175),
  9195. },
  9196. 492: {
  9197. Fbits: uint8(8),
  9198. Fval: uint16(7),
  9199. },
  9200. 493: {
  9201. Fbits: uint8(8),
  9202. Fval: uint16(135),
  9203. },
  9204. 494: {
  9205. Fbits: uint8(8),
  9206. Fval: uint16(71),
  9207. },
  9208. 495: {
  9209. Fbits: uint8(9),
  9210. Fval: uint16(239),
  9211. },
  9212. 496: {
  9213. Fop: uint8(16),
  9214. Fbits: uint8(7),
  9215. Fval: uint16(9),
  9216. },
  9217. 497: {
  9218. Fbits: uint8(8),
  9219. Fval: uint16(95),
  9220. },
  9221. 498: {
  9222. Fbits: uint8(8),
  9223. Fval: uint16(31),
  9224. },
  9225. 499: {
  9226. Fbits: uint8(9),
  9227. Fval: uint16(159),
  9228. },
  9229. 500: {
  9230. Fop: uint8(20),
  9231. Fbits: uint8(7),
  9232. Fval: uint16(99),
  9233. },
  9234. 501: {
  9235. Fbits: uint8(8),
  9236. Fval: uint16(127),
  9237. },
  9238. 502: {
  9239. Fbits: uint8(8),
  9240. Fval: uint16(63),
  9241. },
  9242. 503: {
  9243. Fbits: uint8(9),
  9244. Fval: uint16(223),
  9245. },
  9246. 504: {
  9247. Fop: uint8(18),
  9248. Fbits: uint8(7),
  9249. Fval: uint16(27),
  9250. },
  9251. 505: {
  9252. Fbits: uint8(8),
  9253. Fval: uint16(111),
  9254. },
  9255. 506: {
  9256. Fbits: uint8(8),
  9257. Fval: uint16(47),
  9258. },
  9259. 507: {
  9260. Fbits: uint8(9),
  9261. Fval: uint16(191),
  9262. },
  9263. 508: {
  9264. Fbits: uint8(8),
  9265. Fval: uint16(15),
  9266. },
  9267. 509: {
  9268. Fbits: uint8(8),
  9269. Fval: uint16(143),
  9270. },
  9271. 510: {
  9272. Fbits: uint8(8),
  9273. Fval: uint16(79),
  9274. },
  9275. 511: {
  9276. Fbits: uint8(9),
  9277. Fval: uint16(255),
  9278. },
  9279. }
  9280. var _distfix = [32]Tcode{
  9281. 0: {
  9282. Fop: uint8(16),
  9283. Fbits: uint8(5),
  9284. Fval: uint16(1),
  9285. },
  9286. 1: {
  9287. Fop: uint8(23),
  9288. Fbits: uint8(5),
  9289. Fval: uint16(257),
  9290. },
  9291. 2: {
  9292. Fop: uint8(19),
  9293. Fbits: uint8(5),
  9294. Fval: uint16(17),
  9295. },
  9296. 3: {
  9297. Fop: uint8(27),
  9298. Fbits: uint8(5),
  9299. Fval: uint16(4097),
  9300. },
  9301. 4: {
  9302. Fop: uint8(17),
  9303. Fbits: uint8(5),
  9304. Fval: uint16(5),
  9305. },
  9306. 5: {
  9307. Fop: uint8(25),
  9308. Fbits: uint8(5),
  9309. Fval: uint16(1025),
  9310. },
  9311. 6: {
  9312. Fop: uint8(21),
  9313. Fbits: uint8(5),
  9314. Fval: uint16(65),
  9315. },
  9316. 7: {
  9317. Fop: uint8(29),
  9318. Fbits: uint8(5),
  9319. Fval: uint16(16385),
  9320. },
  9321. 8: {
  9322. Fop: uint8(16),
  9323. Fbits: uint8(5),
  9324. Fval: uint16(3),
  9325. },
  9326. 9: {
  9327. Fop: uint8(24),
  9328. Fbits: uint8(5),
  9329. Fval: uint16(513),
  9330. },
  9331. 10: {
  9332. Fop: uint8(20),
  9333. Fbits: uint8(5),
  9334. Fval: uint16(33),
  9335. },
  9336. 11: {
  9337. Fop: uint8(28),
  9338. Fbits: uint8(5),
  9339. Fval: uint16(8193),
  9340. },
  9341. 12: {
  9342. Fop: uint8(18),
  9343. Fbits: uint8(5),
  9344. Fval: uint16(9),
  9345. },
  9346. 13: {
  9347. Fop: uint8(26),
  9348. Fbits: uint8(5),
  9349. Fval: uint16(2049),
  9350. },
  9351. 14: {
  9352. Fop: uint8(22),
  9353. Fbits: uint8(5),
  9354. Fval: uint16(129),
  9355. },
  9356. 15: {
  9357. Fop: uint8(64),
  9358. Fbits: uint8(5),
  9359. },
  9360. 16: {
  9361. Fop: uint8(16),
  9362. Fbits: uint8(5),
  9363. Fval: uint16(2),
  9364. },
  9365. 17: {
  9366. Fop: uint8(23),
  9367. Fbits: uint8(5),
  9368. Fval: uint16(385),
  9369. },
  9370. 18: {
  9371. Fop: uint8(19),
  9372. Fbits: uint8(5),
  9373. Fval: uint16(25),
  9374. },
  9375. 19: {
  9376. Fop: uint8(27),
  9377. Fbits: uint8(5),
  9378. Fval: uint16(6145),
  9379. },
  9380. 20: {
  9381. Fop: uint8(17),
  9382. Fbits: uint8(5),
  9383. Fval: uint16(7),
  9384. },
  9385. 21: {
  9386. Fop: uint8(25),
  9387. Fbits: uint8(5),
  9388. Fval: uint16(1537),
  9389. },
  9390. 22: {
  9391. Fop: uint8(21),
  9392. Fbits: uint8(5),
  9393. Fval: uint16(97),
  9394. },
  9395. 23: {
  9396. Fop: uint8(29),
  9397. Fbits: uint8(5),
  9398. Fval: uint16(24577),
  9399. },
  9400. 24: {
  9401. Fop: uint8(16),
  9402. Fbits: uint8(5),
  9403. Fval: uint16(4),
  9404. },
  9405. 25: {
  9406. Fop: uint8(24),
  9407. Fbits: uint8(5),
  9408. Fval: uint16(769),
  9409. },
  9410. 26: {
  9411. Fop: uint8(20),
  9412. Fbits: uint8(5),
  9413. Fval: uint16(49),
  9414. },
  9415. 27: {
  9416. Fop: uint8(28),
  9417. Fbits: uint8(5),
  9418. Fval: uint16(12289),
  9419. },
  9420. 28: {
  9421. Fop: uint8(18),
  9422. Fbits: uint8(5),
  9423. Fval: uint16(13),
  9424. },
  9425. 29: {
  9426. Fop: uint8(26),
  9427. Fbits: uint8(5),
  9428. Fval: uint16(3073),
  9429. },
  9430. 30: {
  9431. Fop: uint8(22),
  9432. Fbits: uint8(5),
  9433. Fval: uint16(193),
  9434. },
  9435. 31: {
  9436. Fop: uint8(64),
  9437. Fbits: uint8(5),
  9438. },
  9439. }
  9440. /* Macros for inflateBack(): */
  9441. /* Load returned state from inflate_fast() */
  9442. /* Set state from registers for inflate_fast() */
  9443. /* Clear the input bit accumulator */
  9444. /* Assure that some input is available. If input is requested, but denied,
  9445. then return a Z_BUF_ERROR from inflateBack(). */
  9446. /* Get a byte of input into the bit accumulator, or return from inflateBack()
  9447. with an error if there is no input available. */
  9448. /* Assure that there are at least n bits in the bit accumulator. If there is
  9449. not enough available input to do that, then return from inflateBack() with
  9450. an error. */
  9451. /* Return the low n bits of the bit accumulator (n < 16) */
  9452. /* Remove n bits from the bit accumulator */
  9453. /* Remove zero to seven bits as needed to go to a byte boundary */
  9454. /* Assure that some output space is available, by writing out the window
  9455. if it's full. If the write fails, return from inflateBack() with a
  9456. Z_BUF_ERROR. */
  9457. // C documentation
  9458. //
  9459. // /*
  9460. // strm provides the memory allocation functions and window buffer on input,
  9461. // and provides information on the unused input on return. For Z_DATA_ERROR
  9462. // returns, strm will also provide an error message.
  9463. //
  9464. // in() and out() are the call-back input and output functions. When
  9465. // inflateBack() needs more input, it calls in(). When inflateBack() has
  9466. // filled the window with output, or when it completes with data in the
  9467. // window, it calls out() to write out the data. The application must not
  9468. // change the provided input until in() is called again or inflateBack()
  9469. // returns. The application must not change the window/output buffer until
  9470. // inflateBack() returns.
  9471. //
  9472. // in() and out() are called with a descriptor parameter provided in the
  9473. // inflateBack() call. This parameter can be a structure that provides the
  9474. // information required to do the read or write, as well as accumulated
  9475. // information on the input and output such as totals and check values.
  9476. //
  9477. // in() should return zero on failure. out() should return non-zero on
  9478. // failure. If either in() or out() fails, than inflateBack() returns a
  9479. // Z_BUF_ERROR. strm->next_in can be checked for Z_NULL to see whether it
  9480. // was in() or out() that caused in the error. Otherwise, inflateBack()
  9481. // returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format
  9482. // error, or Z_MEM_ERROR if it could not allocate memory for the state.
  9483. // inflateBack() can also return Z_STREAM_ERROR if the input parameters
  9484. // are not correct, i.e. strm is Z_NULL or the state was not initialized.
  9485. // */
  9486. func XinflateBack(tls *libc.TLS, strm Tz_streamp, in Tin_func, in_desc uintptr, out Tout_func, out_desc uintptr) (r int32) {
  9487. bp := tls.Alloc(16)
  9488. defer tls.Free(16)
  9489. var bits, copy1, have, left, len1, v1, v18, v20, v24, v29, v30, v43, v44 uint32
  9490. 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
  9491. var here, last Tcode
  9492. var hold uint64
  9493. var ret int32
  9494. var _ /* next at bp+0 */ uintptr
  9495. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  9496. /* Check that the strm exists and that the state was initialized */
  9497. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fstate == uintptr(m_Z_NULL) {
  9498. return -int32(2)
  9499. }
  9500. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  9501. /* Reset the state */
  9502. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  9503. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  9504. (*Tinflate_state)(unsafe.Pointer(state)).Flast = 0
  9505. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  9506. *(*uintptr)(unsafe.Pointer(bp)) = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  9507. if *(*uintptr)(unsafe.Pointer(bp)) != uintptr(m_Z_NULL) {
  9508. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  9509. } else {
  9510. v1 = uint32(0)
  9511. }
  9512. have = v1
  9513. hold = uint64(0)
  9514. bits = uint32(0)
  9515. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  9516. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  9517. /* Inflate until end of block marked as last */
  9518. for {
  9519. switch (*Tinflate_state)(unsafe.Pointer(state)).Fmode {
  9520. case int32(_TYPE):
  9521. goto _3
  9522. case int32(_STORED):
  9523. goto _4
  9524. case int32(_TABLE):
  9525. goto _5
  9526. case int32(_LEN):
  9527. goto _6
  9528. case int32(_DONE):
  9529. goto _7
  9530. case int32(_BAD):
  9531. goto _8
  9532. default:
  9533. goto _9
  9534. }
  9535. goto _10
  9536. _3:
  9537. ;
  9538. /* determine and dispatch block type */
  9539. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  9540. hold >>= uint64(bits & uint32(7))
  9541. bits -= bits & uint32(7)
  9542. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DONE)
  9543. goto _10
  9544. }
  9545. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(3)) {
  9546. if have == uint32(0) {
  9547. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9548. if have == uint32(0) {
  9549. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9550. ret = -int32(5)
  9551. goto inf_leave
  9552. }
  9553. }
  9554. have--
  9555. v11 = *(*uintptr)(unsafe.Pointer(bp))
  9556. *(*uintptr)(unsafe.Pointer(bp))++
  9557. hold += uint64(*(*uint8)(unsafe.Pointer(v11))) << bits
  9558. bits += uint32(8)
  9559. }
  9560. (*Tinflate_state)(unsafe.Pointer(state)).Flast = libc.Int32FromUint32(uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(1) - libc.Uint32FromInt32(1)))
  9561. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(1))
  9562. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(1))
  9563. switch uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2) - libc.Uint32FromInt32(1)) {
  9564. case uint32(0): /* stored block */
  9565. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_STORED)
  9566. case uint32(1): /* fixed block */
  9567. _fixedtables(tls, state)
  9568. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN) /* decode codes */
  9569. case uint32(2): /* dynamic block */
  9570. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TABLE)
  9571. case uint32(3):
  9572. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 6
  9573. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9574. }
  9575. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(2))
  9576. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  9577. goto _10
  9578. _4:
  9579. ;
  9580. /* get and verify stored block length */
  9581. _14:
  9582. ;
  9583. hold >>= uint64(bits & uint32(7))
  9584. bits -= bits & uint32(7)
  9585. goto _13
  9586. _13:
  9587. ;
  9588. if 0 != 0 {
  9589. goto _14
  9590. }
  9591. goto _12
  9592. _12:
  9593. ; /* go to byte boundary */
  9594. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  9595. if have == uint32(0) {
  9596. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9597. if have == uint32(0) {
  9598. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9599. ret = -int32(5)
  9600. goto inf_leave
  9601. }
  9602. }
  9603. have--
  9604. v15 = *(*uintptr)(unsafe.Pointer(bp))
  9605. *(*uintptr)(unsafe.Pointer(bp))++
  9606. hold += uint64(*(*uint8)(unsafe.Pointer(v15))) << bits
  9607. bits += uint32(8)
  9608. }
  9609. if hold&uint64(0xffff) != hold>>int32(16)^uint64(0xffff) {
  9610. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 25
  9611. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9612. goto _10
  9613. }
  9614. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(hold) & uint32(0xffff)
  9615. hold = uint64(0)
  9616. bits = uint32(0)
  9617. /* copy stored block from input to output */
  9618. for (*Tinflate_state)(unsafe.Pointer(state)).Flength != uint32(0) {
  9619. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  9620. if have == uint32(0) {
  9621. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9622. if have == uint32(0) {
  9623. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9624. ret = -int32(5)
  9625. goto inf_leave
  9626. }
  9627. }
  9628. if left == uint32(0) {
  9629. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  9630. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  9631. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  9632. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  9633. ret = -int32(5)
  9634. goto inf_leave
  9635. }
  9636. }
  9637. if copy1 > have {
  9638. copy1 = have
  9639. }
  9640. if copy1 > left {
  9641. copy1 = left
  9642. }
  9643. libc.Xmemcpy(tls, put, *(*uintptr)(unsafe.Pointer(bp)), uint64(copy1))
  9644. have -= copy1
  9645. *(*uintptr)(unsafe.Pointer(bp)) += uintptr(copy1)
  9646. left -= copy1
  9647. put += uintptr(copy1)
  9648. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  9649. }
  9650. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  9651. goto _10
  9652. _5:
  9653. ;
  9654. /* get dynamic table entries descriptor */
  9655. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(14)) {
  9656. if have == uint32(0) {
  9657. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9658. if have == uint32(0) {
  9659. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9660. ret = -int32(5)
  9661. goto inf_leave
  9662. }
  9663. }
  9664. have--
  9665. v16 = *(*uintptr)(unsafe.Pointer(bp))
  9666. *(*uintptr)(unsafe.Pointer(bp))++
  9667. hold += uint64(*(*uint8)(unsafe.Pointer(v16))) << bits
  9668. bits += uint32(8)
  9669. }
  9670. (*Tinflate_state)(unsafe.Pointer(state)).Fnlen = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(257)
  9671. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(5))
  9672. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(5))
  9673. (*Tinflate_state)(unsafe.Pointer(state)).Fndist = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(1)
  9674. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(5))
  9675. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(5))
  9676. (*Tinflate_state)(unsafe.Pointer(state)).Fncode = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(4)
  9677. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(4))
  9678. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(4))
  9679. if (*Tinflate_state)(unsafe.Pointer(state)).Fnlen > uint32(286) || (*Tinflate_state)(unsafe.Pointer(state)).Fndist > uint32(30) {
  9680. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 54
  9681. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9682. goto _10
  9683. }
  9684. /* get code length code lengths (not a typo) */
  9685. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  9686. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fncode {
  9687. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(3)) {
  9688. if have == uint32(0) {
  9689. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9690. if have == uint32(0) {
  9691. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9692. ret = -int32(5)
  9693. goto inf_leave
  9694. }
  9695. }
  9696. have--
  9697. v17 = *(*uintptr)(unsafe.Pointer(bp))
  9698. *(*uintptr)(unsafe.Pointer(bp))++
  9699. hold += uint64(*(*uint8)(unsafe.Pointer(v17))) << bits
  9700. bits += uint32(8)
  9701. }
  9702. v19 = state + 140
  9703. v18 = *(*uint32)(unsafe.Pointer(v19))
  9704. *(*uint32)(unsafe.Pointer(v19))++
  9705. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order[v18])*2)) = uint16(uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3) - libc.Uint32FromInt32(1)))
  9706. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(3))
  9707. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(3))
  9708. }
  9709. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < uint32(19) {
  9710. v21 = state + 140
  9711. v20 = *(*uint32)(unsafe.Pointer(v21))
  9712. *(*uint32)(unsafe.Pointer(v21))++
  9713. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order[v20])*2)) = uint16(0)
  9714. }
  9715. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  9716. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  9717. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(7)
  9718. ret = Xinflate_table(tls, int32(_CODES), state+152, uint32(19), state+144, state+120, state+792)
  9719. if ret != 0 {
  9720. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 90
  9721. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9722. goto _10
  9723. }
  9724. /* get length and distance code code lengths */
  9725. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  9726. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  9727. for {
  9728. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(hold)&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  9729. if uint32(here.Fbits) <= bits {
  9730. break
  9731. }
  9732. if have == uint32(0) {
  9733. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9734. if have == uint32(0) {
  9735. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9736. ret = -int32(5)
  9737. goto inf_leave
  9738. }
  9739. }
  9740. have--
  9741. v23 = *(*uintptr)(unsafe.Pointer(bp))
  9742. *(*uintptr)(unsafe.Pointer(bp))++
  9743. hold += uint64(*(*uint8)(unsafe.Pointer(v23))) << bits
  9744. bits += uint32(8)
  9745. goto _22
  9746. _22:
  9747. }
  9748. if libc.Int32FromUint16(here.Fval) < int32(16) {
  9749. hold >>= uint64(here.Fbits)
  9750. bits -= uint32(here.Fbits)
  9751. v25 = state + 140
  9752. v24 = *(*uint32)(unsafe.Pointer(v25))
  9753. *(*uint32)(unsafe.Pointer(v25))++
  9754. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v24)*2)) = here.Fval
  9755. } else {
  9756. if libc.Int32FromUint16(here.Fval) == int32(16) {
  9757. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(2)) {
  9758. if have == uint32(0) {
  9759. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9760. if have == uint32(0) {
  9761. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9762. ret = -int32(5)
  9763. goto inf_leave
  9764. }
  9765. }
  9766. have--
  9767. v26 = *(*uintptr)(unsafe.Pointer(bp))
  9768. *(*uintptr)(unsafe.Pointer(bp))++
  9769. hold += uint64(*(*uint8)(unsafe.Pointer(v26))) << bits
  9770. bits += uint32(8)
  9771. }
  9772. hold >>= uint64(here.Fbits)
  9773. bits -= uint32(here.Fbits)
  9774. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave == uint32(0) {
  9775. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 115
  9776. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9777. break
  9778. }
  9779. len1 = uint32(*(*uint16)(unsafe.Pointer(state + 152 + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fhave-uint32(1))*2)))
  9780. copy1 = uint32(3) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2)-libc.Uint32FromInt32(1))
  9781. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(2))
  9782. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  9783. } else {
  9784. if libc.Int32FromUint16(here.Fval) == int32(17) {
  9785. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(3)) {
  9786. if have == uint32(0) {
  9787. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9788. if have == uint32(0) {
  9789. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9790. ret = -int32(5)
  9791. goto inf_leave
  9792. }
  9793. }
  9794. have--
  9795. v27 = *(*uintptr)(unsafe.Pointer(bp))
  9796. *(*uintptr)(unsafe.Pointer(bp))++
  9797. hold += uint64(*(*uint8)(unsafe.Pointer(v27))) << bits
  9798. bits += uint32(8)
  9799. }
  9800. hold >>= uint64(here.Fbits)
  9801. bits -= uint32(here.Fbits)
  9802. len1 = uint32(0)
  9803. copy1 = uint32(3) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3)-libc.Uint32FromInt32(1))
  9804. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(3))
  9805. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(3))
  9806. } else {
  9807. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(7)) {
  9808. if have == uint32(0) {
  9809. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9810. if have == uint32(0) {
  9811. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9812. ret = -int32(5)
  9813. goto inf_leave
  9814. }
  9815. }
  9816. have--
  9817. v28 = *(*uintptr)(unsafe.Pointer(bp))
  9818. *(*uintptr)(unsafe.Pointer(bp))++
  9819. hold += uint64(*(*uint8)(unsafe.Pointer(v28))) << bits
  9820. bits += uint32(8)
  9821. }
  9822. hold >>= uint64(here.Fbits)
  9823. bits -= uint32(here.Fbits)
  9824. len1 = uint32(0)
  9825. copy1 = uint32(11) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(7)-libc.Uint32FromInt32(1))
  9826. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(7))
  9827. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(7))
  9828. }
  9829. }
  9830. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave+copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  9831. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 115
  9832. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9833. break
  9834. }
  9835. for {
  9836. v29 = copy1
  9837. copy1--
  9838. if !(v29 != 0) {
  9839. break
  9840. }
  9841. v31 = state + 140
  9842. v30 = *(*uint32)(unsafe.Pointer(v31))
  9843. *(*uint32)(unsafe.Pointer(v31))++
  9844. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v30)*2)) = uint16(len1)
  9845. }
  9846. }
  9847. }
  9848. /* handle error breaks in while */
  9849. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_BAD) {
  9850. goto _10
  9851. }
  9852. /* check for end-of-block code (better have one) */
  9853. if libc.Int32FromUint16(*(*uint16)(unsafe.Pointer(state + 152 + 256*2))) == 0 {
  9854. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 141
  9855. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9856. goto _10
  9857. }
  9858. /* build code tables -- note: do not change the lenbits or distbits
  9859. values here (9 and 6) without reading the comments in inftrees.h
  9860. concerning the ENOUGH constants, which depend on those values */
  9861. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  9862. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  9863. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  9864. ret = Xinflate_table(tls, int32(_LENS), state+152, (*Tinflate_state)(unsafe.Pointer(state)).Fnlen, state+144, state+120, state+792)
  9865. if ret != 0 {
  9866. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 178
  9867. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9868. goto _10
  9869. }
  9870. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  9871. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(6)
  9872. ret = Xinflate_table(tls, int32(_DISTS), state+152+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fnlen)*2, (*Tinflate_state)(unsafe.Pointer(state)).Fndist, state+144, state+124, state+792)
  9873. if ret != 0 {
  9874. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 206
  9875. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9876. goto _10
  9877. }
  9878. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  9879. /* fallthrough */
  9880. _6:
  9881. ;
  9882. /* use inflate_fast() if we have enough input and output */
  9883. if have >= uint32(6) && left >= uint32(258) {
  9884. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  9885. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  9886. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = *(*uintptr)(unsafe.Pointer(bp))
  9887. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  9888. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  9889. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  9890. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  9891. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - left
  9892. }
  9893. Xinflate_fast(tls, strm, (*Tinflate_state)(unsafe.Pointer(state)).Fwsize)
  9894. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  9895. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  9896. *(*uintptr)(unsafe.Pointer(bp)) = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  9897. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  9898. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  9899. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  9900. goto _10
  9901. }
  9902. /* get a literal, length, or end-of-block code */
  9903. for {
  9904. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(hold)&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  9905. if uint32(here.Fbits) <= bits {
  9906. break
  9907. }
  9908. if have == uint32(0) {
  9909. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9910. if have == uint32(0) {
  9911. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9912. ret = -int32(5)
  9913. goto inf_leave
  9914. }
  9915. }
  9916. have--
  9917. v33 = *(*uintptr)(unsafe.Pointer(bp))
  9918. *(*uintptr)(unsafe.Pointer(bp))++
  9919. hold += uint64(*(*uint8)(unsafe.Pointer(v33))) << bits
  9920. bits += uint32(8)
  9921. goto _32
  9922. _32:
  9923. }
  9924. if here.Fop != 0 && libc.Int32FromUint8(here.Fop)&int32(0xf0) == 0 {
  9925. last = here
  9926. for {
  9927. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(last.Fval)+uint32(hold)&(uint32(1)<<(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(last.Fop))-uint32(1))>>last.Fbits)*4))
  9928. if libc.Uint32FromInt32(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(here.Fbits)) <= bits {
  9929. break
  9930. }
  9931. if have == uint32(0) {
  9932. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9933. if have == uint32(0) {
  9934. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9935. ret = -int32(5)
  9936. goto inf_leave
  9937. }
  9938. }
  9939. have--
  9940. v35 = *(*uintptr)(unsafe.Pointer(bp))
  9941. *(*uintptr)(unsafe.Pointer(bp))++
  9942. hold += uint64(*(*uint8)(unsafe.Pointer(v35))) << bits
  9943. bits += uint32(8)
  9944. goto _34
  9945. _34:
  9946. }
  9947. hold >>= uint64(last.Fbits)
  9948. bits -= uint32(last.Fbits)
  9949. }
  9950. hold >>= uint64(here.Fbits)
  9951. bits -= uint32(here.Fbits)
  9952. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(here.Fval)
  9953. /* process literal */
  9954. if libc.Int32FromUint8(here.Fop) == 0 {
  9955. if left == uint32(0) {
  9956. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  9957. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  9958. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  9959. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  9960. ret = -int32(5)
  9961. goto inf_leave
  9962. }
  9963. }
  9964. v36 = put
  9965. put++
  9966. *(*uint8)(unsafe.Pointer(v36)) = uint8((*Tinflate_state)(unsafe.Pointer(state)).Flength)
  9967. left--
  9968. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  9969. goto _10
  9970. }
  9971. /* process end of block */
  9972. if libc.Int32FromUint8(here.Fop)&int32(32) != 0 {
  9973. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  9974. goto _10
  9975. }
  9976. /* invalid code */
  9977. if libc.Int32FromUint8(here.Fop)&int32(64) != 0 {
  9978. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 228
  9979. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9980. goto _10
  9981. }
  9982. /* length code -- get extra bits, if any */
  9983. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  9984. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != uint32(0) {
  9985. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  9986. if have == uint32(0) {
  9987. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9988. if have == uint32(0) {
  9989. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9990. ret = -int32(5)
  9991. goto inf_leave
  9992. }
  9993. }
  9994. have--
  9995. v37 = *(*uintptr)(unsafe.Pointer(bp))
  9996. *(*uintptr)(unsafe.Pointer(bp))++
  9997. hold += uint64(*(*uint8)(unsafe.Pointer(v37))) << bits
  9998. bits += uint32(8)
  9999. }
  10000. *(*uint32)(unsafe.Pointer(state + 92)) += uint32(hold) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  10001. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  10002. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  10003. }
  10004. /* get distance code */
  10005. for {
  10006. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(hold)&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits-libc.Uint32FromInt32(1)))*4))
  10007. if uint32(here.Fbits) <= bits {
  10008. break
  10009. }
  10010. if have == uint32(0) {
  10011. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  10012. if have == uint32(0) {
  10013. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  10014. ret = -int32(5)
  10015. goto inf_leave
  10016. }
  10017. }
  10018. have--
  10019. v39 = *(*uintptr)(unsafe.Pointer(bp))
  10020. *(*uintptr)(unsafe.Pointer(bp))++
  10021. hold += uint64(*(*uint8)(unsafe.Pointer(v39))) << bits
  10022. bits += uint32(8)
  10023. goto _38
  10024. _38:
  10025. }
  10026. if libc.Int32FromUint8(here.Fop)&int32(0xf0) == 0 {
  10027. last = here
  10028. for {
  10029. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(last.Fval)+uint32(hold)&(uint32(1)<<(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(last.Fop))-uint32(1))>>last.Fbits)*4))
  10030. if libc.Uint32FromInt32(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(here.Fbits)) <= bits {
  10031. break
  10032. }
  10033. if have == uint32(0) {
  10034. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  10035. if have == uint32(0) {
  10036. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  10037. ret = -int32(5)
  10038. goto inf_leave
  10039. }
  10040. }
  10041. have--
  10042. v41 = *(*uintptr)(unsafe.Pointer(bp))
  10043. *(*uintptr)(unsafe.Pointer(bp))++
  10044. hold += uint64(*(*uint8)(unsafe.Pointer(v41))) << bits
  10045. bits += uint32(8)
  10046. goto _40
  10047. _40:
  10048. }
  10049. hold >>= uint64(last.Fbits)
  10050. bits -= uint32(last.Fbits)
  10051. }
  10052. hold >>= uint64(here.Fbits)
  10053. bits -= uint32(here.Fbits)
  10054. if libc.Int32FromUint8(here.Fop)&int32(64) != 0 {
  10055. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 256
  10056. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10057. goto _10
  10058. }
  10059. (*Tinflate_state)(unsafe.Pointer(state)).Foffset = uint32(here.Fval)
  10060. /* get distance extra bits, if any */
  10061. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  10062. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != uint32(0) {
  10063. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  10064. if have == uint32(0) {
  10065. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  10066. if have == uint32(0) {
  10067. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  10068. ret = -int32(5)
  10069. goto inf_leave
  10070. }
  10071. }
  10072. have--
  10073. v42 = *(*uintptr)(unsafe.Pointer(bp))
  10074. *(*uintptr)(unsafe.Pointer(bp))++
  10075. hold += uint64(*(*uint8)(unsafe.Pointer(v42))) << bits
  10076. bits += uint32(8)
  10077. }
  10078. *(*uint32)(unsafe.Pointer(state + 96)) += uint32(hold) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  10079. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  10080. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  10081. }
  10082. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  10083. v43 = left
  10084. } else {
  10085. v43 = uint32(0)
  10086. }
  10087. if (*Tinflate_state)(unsafe.Pointer(state)).Foffset > (*Tinflate_state)(unsafe.Pointer(state)).Fwsize-v43 {
  10088. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 278
  10089. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10090. goto _10
  10091. }
  10092. /* copy match from window to output */
  10093. for cond := true; cond; cond = (*Tinflate_state)(unsafe.Pointer(state)).Flength != uint32(0) {
  10094. if left == uint32(0) {
  10095. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  10096. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  10097. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  10098. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  10099. ret = -int32(5)
  10100. goto inf_leave
  10101. }
  10102. }
  10103. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - (*Tinflate_state)(unsafe.Pointer(state)).Foffset
  10104. if copy1 < left {
  10105. from = put + uintptr(copy1)
  10106. copy1 = left - copy1
  10107. } else {
  10108. from = put - uintptr((*Tinflate_state)(unsafe.Pointer(state)).Foffset)
  10109. copy1 = left
  10110. }
  10111. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Flength {
  10112. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  10113. }
  10114. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  10115. left -= copy1
  10116. for {
  10117. v46 = put
  10118. put++
  10119. v47 = from
  10120. from++
  10121. *(*uint8)(unsafe.Pointer(v46)) = *(*uint8)(unsafe.Pointer(v47))
  10122. goto _45
  10123. _45:
  10124. ;
  10125. copy1--
  10126. v44 = copy1
  10127. if !(v44 != 0) {
  10128. break
  10129. }
  10130. }
  10131. }
  10132. goto _10
  10133. _7:
  10134. ;
  10135. /* inflate stream terminated properly */
  10136. ret = int32(m_Z_STREAM_END)
  10137. goto inf_leave
  10138. _8:
  10139. ;
  10140. ret = -int32(3)
  10141. goto inf_leave
  10142. _9:
  10143. ;
  10144. /* can't happen, but makes compilers happy */
  10145. ret = -int32(2)
  10146. goto inf_leave
  10147. _10:
  10148. ;
  10149. goto _2
  10150. _2:
  10151. }
  10152. /* Write leftover output and return unused input */
  10153. goto inf_leave
  10154. inf_leave:
  10155. ;
  10156. if left < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  10157. 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) {
  10158. ret = -int32(5)
  10159. }
  10160. }
  10161. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = *(*uintptr)(unsafe.Pointer(bp))
  10162. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  10163. return ret
  10164. }
  10165. var _order = [19]uint16{
  10166. 0: uint16(16),
  10167. 1: uint16(17),
  10168. 2: uint16(18),
  10169. 4: uint16(8),
  10170. 5: uint16(7),
  10171. 6: uint16(9),
  10172. 7: uint16(6),
  10173. 8: uint16(10),
  10174. 9: uint16(5),
  10175. 10: uint16(11),
  10176. 11: uint16(4),
  10177. 12: uint16(12),
  10178. 13: uint16(3),
  10179. 14: uint16(13),
  10180. 15: uint16(2),
  10181. 16: uint16(14),
  10182. 17: uint16(1),
  10183. 18: uint16(15),
  10184. }
  10185. func XinflateBackEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  10186. 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) {
  10187. return -int32(2)
  10188. }
  10189. (*(*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)
  10190. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  10191. return m_Z_OK
  10192. }
  10193. // C documentation
  10194. //
  10195. // /*
  10196. // Decode literal, length, and distance codes and write out the resulting
  10197. // literal and match bytes until either not enough input or output is
  10198. // available, an end-of-block is encountered, or a data error is encountered.
  10199. // When large enough input and output buffers are supplied to inflate(), for
  10200. // example, a 16K input buffer and a 64K output buffer, more than 95% of the
  10201. // inflate execution time is spent in this routine.
  10202. //
  10203. // Entry assumptions:
  10204. //
  10205. // state->mode == LEN
  10206. // strm->avail_in >= 6
  10207. // strm->avail_out >= 258
  10208. // start >= strm->avail_out
  10209. // state->bits < 8
  10210. //
  10211. // On return, state->mode is one of:
  10212. //
  10213. // LEN -- ran out of enough output space or enough available input
  10214. // TYPE -- reached end of block code, inflate() to interpret next block
  10215. // BAD -- error in block data
  10216. //
  10217. // Notes:
  10218. //
  10219. // - The maximum input bits used by a length/distance pair is 15 bits for the
  10220. // length code, 5 bits for the length extra, 15 bits for the distance code,
  10221. // and 13 bits for the distance extra. This totals 48 bits, or six bytes.
  10222. // Therefore if strm->avail_in >= 6, then there is enough input to avoid
  10223. // checking for available input while decoding.
  10224. //
  10225. // - The maximum bytes that a single length/distance pair can output is 258
  10226. // bytes, which is the maximum length that can be coded. inflate_fast()
  10227. // requires strm->avail_out >= 258 for each loop to avoid checking for
  10228. // output space.
  10229. // */
  10230. func Xinflate_fast(tls *libc.TLS, strm Tz_streamp, start uint32) {
  10231. 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
  10232. var bits, dist, dmask, len1, lmask, op, whave, wnext, wsize, v13, v17, v21, v9 uint32
  10233. var hold uint64
  10234. var v45, v46 int64
  10235. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  10236. /* copy state to local variables */
  10237. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10238. in = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  10239. last = in + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in-libc.Uint32FromInt32(5))
  10240. out = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  10241. beg = out - uintptr(start-(*Tz_stream)(unsafe.Pointer(strm)).Favail_out)
  10242. end = out + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_out-libc.Uint32FromInt32(257))
  10243. wsize = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  10244. whave = (*Tinflate_state)(unsafe.Pointer(state)).Fwhave
  10245. wnext = (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  10246. window = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  10247. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  10248. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  10249. lcode = (*Tinflate_state)(unsafe.Pointer(state)).Flencode
  10250. dcode = (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode
  10251. lmask = uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits - uint32(1)
  10252. dmask = uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits - uint32(1)
  10253. /* decode literals and length/distances until end-of-block or not enough
  10254. input data or output space */
  10255. for cond := true; cond; cond = in < last && out < end {
  10256. if bits < uint32(15) {
  10257. v1 = in
  10258. in++
  10259. hold += uint64(*(*uint8)(unsafe.Pointer(v1))) << bits
  10260. bits += uint32(8)
  10261. v2 = in
  10262. in++
  10263. hold += uint64(*(*uint8)(unsafe.Pointer(v2))) << bits
  10264. bits += uint32(8)
  10265. }
  10266. here = lcode + uintptr(hold&uint64(lmask))*4
  10267. goto dolen
  10268. dolen:
  10269. ;
  10270. op = uint32((*Tcode)(unsafe.Pointer(here)).Fbits)
  10271. hold >>= uint64(op)
  10272. bits -= op
  10273. op = uint32((*Tcode)(unsafe.Pointer(here)).Fop)
  10274. if op == uint32(0) { /* literal */
  10275. v3 = out
  10276. out++
  10277. *(*uint8)(unsafe.Pointer(v3)) = uint8((*Tcode)(unsafe.Pointer(here)).Fval)
  10278. } else {
  10279. if op&uint32(16) != 0 { /* length base */
  10280. len1 = uint32((*Tcode)(unsafe.Pointer(here)).Fval)
  10281. op &= uint32(15) /* number of extra bits */
  10282. if op != 0 {
  10283. if bits < op {
  10284. v4 = in
  10285. in++
  10286. hold += uint64(*(*uint8)(unsafe.Pointer(v4))) << bits
  10287. bits += uint32(8)
  10288. }
  10289. len1 += uint32(hold) & (uint32(1)<<op - uint32(1))
  10290. hold >>= uint64(op)
  10291. bits -= op
  10292. }
  10293. if bits < uint32(15) {
  10294. v5 = in
  10295. in++
  10296. hold += uint64(*(*uint8)(unsafe.Pointer(v5))) << bits
  10297. bits += uint32(8)
  10298. v6 = in
  10299. in++
  10300. hold += uint64(*(*uint8)(unsafe.Pointer(v6))) << bits
  10301. bits += uint32(8)
  10302. }
  10303. here = dcode + uintptr(hold&uint64(dmask))*4
  10304. goto dodist
  10305. dodist:
  10306. ;
  10307. op = uint32((*Tcode)(unsafe.Pointer(here)).Fbits)
  10308. hold >>= uint64(op)
  10309. bits -= op
  10310. op = uint32((*Tcode)(unsafe.Pointer(here)).Fop)
  10311. if op&uint32(16) != 0 { /* distance base */
  10312. dist = uint32((*Tcode)(unsafe.Pointer(here)).Fval)
  10313. op &= uint32(15) /* number of extra bits */
  10314. if bits < op {
  10315. v7 = in
  10316. in++
  10317. hold += uint64(*(*uint8)(unsafe.Pointer(v7))) << bits
  10318. bits += uint32(8)
  10319. if bits < op {
  10320. v8 = in
  10321. in++
  10322. hold += uint64(*(*uint8)(unsafe.Pointer(v8))) << bits
  10323. bits += uint32(8)
  10324. }
  10325. }
  10326. dist += uint32(hold) & (uint32(1)<<op - uint32(1))
  10327. hold >>= uint64(op)
  10328. bits -= op
  10329. op = libc.Uint32FromInt64(int64(out) - int64(beg)) /* max distance in output */
  10330. if dist > op { /* see if copy from window */
  10331. op = dist - op /* distance back in window */
  10332. if op > whave {
  10333. if (*Tinflate_state)(unsafe.Pointer(state)).Fsane != 0 {
  10334. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 278
  10335. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10336. break
  10337. }
  10338. }
  10339. from = window
  10340. if wnext == uint32(0) { /* very common case */
  10341. from += uintptr(wsize - op)
  10342. if op < len1 { /* some from window */
  10343. len1 -= op
  10344. for {
  10345. v11 = out
  10346. out++
  10347. v12 = from
  10348. from++
  10349. *(*uint8)(unsafe.Pointer(v11)) = *(*uint8)(unsafe.Pointer(v12))
  10350. goto _10
  10351. _10:
  10352. ;
  10353. op--
  10354. v9 = op
  10355. if !(v9 != 0) {
  10356. break
  10357. }
  10358. }
  10359. from = out - uintptr(dist) /* rest from output */
  10360. }
  10361. } else {
  10362. if wnext < op { /* wrap around window */
  10363. from += uintptr(wsize + wnext - op)
  10364. op -= wnext
  10365. if op < len1 { /* some from end of window */
  10366. len1 -= op
  10367. for {
  10368. v15 = out
  10369. out++
  10370. v16 = from
  10371. from++
  10372. *(*uint8)(unsafe.Pointer(v15)) = *(*uint8)(unsafe.Pointer(v16))
  10373. goto _14
  10374. _14:
  10375. ;
  10376. op--
  10377. v13 = op
  10378. if !(v13 != 0) {
  10379. break
  10380. }
  10381. }
  10382. from = window
  10383. if wnext < len1 { /* some from start of window */
  10384. op = wnext
  10385. len1 -= op
  10386. for {
  10387. v19 = out
  10388. out++
  10389. v20 = from
  10390. from++
  10391. *(*uint8)(unsafe.Pointer(v19)) = *(*uint8)(unsafe.Pointer(v20))
  10392. goto _18
  10393. _18:
  10394. ;
  10395. op--
  10396. v17 = op
  10397. if !(v17 != 0) {
  10398. break
  10399. }
  10400. }
  10401. from = out - uintptr(dist) /* rest from output */
  10402. }
  10403. }
  10404. } else { /* contiguous in window */
  10405. from += uintptr(wnext - op)
  10406. if op < len1 { /* some from window */
  10407. len1 -= op
  10408. for {
  10409. v23 = out
  10410. out++
  10411. v24 = from
  10412. from++
  10413. *(*uint8)(unsafe.Pointer(v23)) = *(*uint8)(unsafe.Pointer(v24))
  10414. goto _22
  10415. _22:
  10416. ;
  10417. op--
  10418. v21 = op
  10419. if !(v21 != 0) {
  10420. break
  10421. }
  10422. }
  10423. from = out - uintptr(dist) /* rest from output */
  10424. }
  10425. }
  10426. }
  10427. for len1 > uint32(2) {
  10428. v25 = out
  10429. out++
  10430. v26 = from
  10431. from++
  10432. *(*uint8)(unsafe.Pointer(v25)) = *(*uint8)(unsafe.Pointer(v26))
  10433. v27 = out
  10434. out++
  10435. v28 = from
  10436. from++
  10437. *(*uint8)(unsafe.Pointer(v27)) = *(*uint8)(unsafe.Pointer(v28))
  10438. v29 = out
  10439. out++
  10440. v30 = from
  10441. from++
  10442. *(*uint8)(unsafe.Pointer(v29)) = *(*uint8)(unsafe.Pointer(v30))
  10443. len1 -= uint32(3)
  10444. }
  10445. if len1 != 0 {
  10446. v31 = out
  10447. out++
  10448. v32 = from
  10449. from++
  10450. *(*uint8)(unsafe.Pointer(v31)) = *(*uint8)(unsafe.Pointer(v32))
  10451. if len1 > uint32(1) {
  10452. v33 = out
  10453. out++
  10454. v34 = from
  10455. from++
  10456. *(*uint8)(unsafe.Pointer(v33)) = *(*uint8)(unsafe.Pointer(v34))
  10457. }
  10458. }
  10459. } else {
  10460. from = out - uintptr(dist) /* copy direct from output */
  10461. for cond := true; cond; cond = len1 > uint32(2) { /* minimum length is three */
  10462. v35 = out
  10463. out++
  10464. v36 = from
  10465. from++
  10466. *(*uint8)(unsafe.Pointer(v35)) = *(*uint8)(unsafe.Pointer(v36))
  10467. v37 = out
  10468. out++
  10469. v38 = from
  10470. from++
  10471. *(*uint8)(unsafe.Pointer(v37)) = *(*uint8)(unsafe.Pointer(v38))
  10472. v39 = out
  10473. out++
  10474. v40 = from
  10475. from++
  10476. *(*uint8)(unsafe.Pointer(v39)) = *(*uint8)(unsafe.Pointer(v40))
  10477. len1 -= uint32(3)
  10478. }
  10479. if len1 != 0 {
  10480. v41 = out
  10481. out++
  10482. v42 = from
  10483. from++
  10484. *(*uint8)(unsafe.Pointer(v41)) = *(*uint8)(unsafe.Pointer(v42))
  10485. if len1 > uint32(1) {
  10486. v43 = out
  10487. out++
  10488. v44 = from
  10489. from++
  10490. *(*uint8)(unsafe.Pointer(v43)) = *(*uint8)(unsafe.Pointer(v44))
  10491. }
  10492. }
  10493. }
  10494. } else {
  10495. if op&uint32(64) == uint32(0) { /* 2nd level distance code */
  10496. here = dcode + uintptr((*Tcode)(unsafe.Pointer(here)).Fval)*4 + uintptr(hold&uint64(libc.Uint32FromUint32(1)<<op-libc.Uint32FromInt32(1)))*4
  10497. goto dodist
  10498. } else {
  10499. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 256
  10500. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10501. break
  10502. }
  10503. }
  10504. } else {
  10505. if op&uint32(64) == uint32(0) { /* 2nd level length code */
  10506. here = lcode + uintptr((*Tcode)(unsafe.Pointer(here)).Fval)*4 + uintptr(hold&uint64(libc.Uint32FromUint32(1)<<op-libc.Uint32FromInt32(1)))*4
  10507. goto dolen
  10508. } else {
  10509. if op&uint32(32) != 0 { /* end-of-block */
  10510. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  10511. break
  10512. } else {
  10513. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 228
  10514. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10515. break
  10516. }
  10517. }
  10518. }
  10519. }
  10520. }
  10521. /* return unused bytes (on entry, bits < 8, so in won't go too far back) */
  10522. len1 = bits >> int32(3)
  10523. in -= uintptr(len1)
  10524. bits -= len1 << int32(3)
  10525. hold &= uint64(uint32(1)<<bits - uint32(1))
  10526. /* update state and return */
  10527. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = in
  10528. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = out
  10529. if in < last {
  10530. v45 = int64(5) + (int64(last) - int64(in))
  10531. } else {
  10532. v45 = int64(5) - (int64(in) - int64(last))
  10533. }
  10534. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = libc.Uint32FromInt64(v45)
  10535. if out < end {
  10536. v46 = int64(257) + (int64(end) - int64(out))
  10537. } else {
  10538. v46 = int64(257) - (int64(out) - int64(end))
  10539. }
  10540. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = libc.Uint32FromInt64(v46)
  10541. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  10542. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  10543. return
  10544. }
  10545. func _inflateStateCheck(tls *libc.TLS, strm Tz_streamp) (r int32) {
  10546. var state uintptr
  10547. _ = state
  10548. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  10549. return int32(1)
  10550. }
  10551. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10552. 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) {
  10553. return int32(1)
  10554. }
  10555. return 0
  10556. }
  10557. func XinflateResetKeep(tls *libc.TLS, strm Tz_streamp) (r int32) {
  10558. var state, v3, v4 uintptr
  10559. var v1 TuLong
  10560. var v2 uint64
  10561. _, _, _, _, _ = state, v1, v2, v3, v4
  10562. if _inflateStateCheck(tls, strm) != 0 {
  10563. return -int32(2)
  10564. }
  10565. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10566. v2 = libc.Uint64FromInt32(0)
  10567. (*Tinflate_state)(unsafe.Pointer(state)).Ftotal = v2
  10568. v1 = v2
  10569. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = v1
  10570. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = v1
  10571. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  10572. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 { /* to support ill-conceived Java test suite */
  10573. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = libc.Uint64FromInt32((*Tinflate_state)(unsafe.Pointer(state)).Fwrap & int32(1))
  10574. }
  10575. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HEAD)
  10576. (*Tinflate_state)(unsafe.Pointer(state)).Flast = 0
  10577. (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict = 0
  10578. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = -int32(1)
  10579. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(32768)
  10580. (*Tinflate_state)(unsafe.Pointer(state)).Fhead = uintptr(m_Z_NULL)
  10581. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = uint64(0)
  10582. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = uint32(0)
  10583. v4 = state + 1368
  10584. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = v4
  10585. v3 = v4
  10586. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = v3
  10587. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = v3
  10588. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  10589. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  10590. return m_Z_OK
  10591. }
  10592. func XinflateReset(tls *libc.TLS, strm Tz_streamp) (r int32) {
  10593. var state uintptr
  10594. _ = state
  10595. if _inflateStateCheck(tls, strm) != 0 {
  10596. return -int32(2)
  10597. }
  10598. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10599. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(0)
  10600. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  10601. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  10602. return XinflateResetKeep(tls, strm)
  10603. }
  10604. func XinflateReset2(tls *libc.TLS, strm Tz_streamp, windowBits int32) (r int32) {
  10605. var state uintptr
  10606. var wrap int32
  10607. _, _ = state, wrap
  10608. /* get the state */
  10609. if _inflateStateCheck(tls, strm) != 0 {
  10610. return -int32(2)
  10611. }
  10612. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10613. /* extract wrap request from windowBits parameter */
  10614. if windowBits < 0 {
  10615. if windowBits < -int32(15) {
  10616. return -int32(2)
  10617. }
  10618. wrap = 0
  10619. windowBits = -windowBits
  10620. } else {
  10621. wrap = windowBits>>int32(4) + int32(5)
  10622. if windowBits < int32(48) {
  10623. windowBits &= int32(15)
  10624. }
  10625. }
  10626. /* set number of window bits, free window if different */
  10627. if windowBits != 0 && (windowBits < int32(8) || windowBits > int32(15)) {
  10628. return -int32(2)
  10629. }
  10630. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) && (*Tinflate_state)(unsafe.Pointer(state)).Fwbits != libc.Uint32FromInt32(windowBits) {
  10631. (*(*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)
  10632. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = uintptr(m_Z_NULL)
  10633. }
  10634. /* update state and reset the rest of it */
  10635. (*Tinflate_state)(unsafe.Pointer(state)).Fwrap = wrap
  10636. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = libc.Uint32FromInt32(windowBits)
  10637. return XinflateReset(tls, strm)
  10638. }
  10639. func XinflateInit2_(tls *libc.TLS, strm Tz_streamp, windowBits int32, version uintptr, stream_size int32) (r int32) {
  10640. var ret int32
  10641. var state uintptr
  10642. _, _ = ret, state
  10643. if version == uintptr(m_Z_NULL) || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(version))) != libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(__ccgo_ts))) || stream_size != libc.Int32FromUint64(libc.Uint64FromInt64(112)) {
  10644. return -int32(6)
  10645. }
  10646. if strm == uintptr(m_Z_NULL) {
  10647. return -int32(2)
  10648. }
  10649. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* in case we return an error */
  10650. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  10651. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  10652. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  10653. }
  10654. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  10655. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  10656. }
  10657. state = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, libc.Uint32FromInt32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(7160)))
  10658. if state == uintptr(m_Z_NULL) {
  10659. return -int32(4)
  10660. }
  10661. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = state
  10662. (*Tinflate_state)(unsafe.Pointer(state)).Fstrm = strm
  10663. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = uintptr(m_Z_NULL)
  10664. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HEAD) /* to pass state test in inflateReset2() */
  10665. ret = XinflateReset2(tls, strm, windowBits)
  10666. if ret != m_Z_OK {
  10667. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, state)
  10668. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  10669. }
  10670. return ret
  10671. }
  10672. func XinflateInit_(tls *libc.TLS, strm Tz_streamp, version uintptr, stream_size int32) (r int32) {
  10673. return XinflateInit2_(tls, strm, int32(m_MAX_WBITS), version, stream_size)
  10674. }
  10675. func XinflatePrime(tls *libc.TLS, strm Tz_streamp, bits int32, value int32) (r int32) {
  10676. var state uintptr
  10677. _ = state
  10678. if _inflateStateCheck(tls, strm) != 0 {
  10679. return -int32(2)
  10680. }
  10681. if bits == 0 {
  10682. return m_Z_OK
  10683. }
  10684. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10685. if bits < 0 {
  10686. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = uint64(0)
  10687. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = uint32(0)
  10688. return m_Z_OK
  10689. }
  10690. if bits > int32(16) || (*Tinflate_state)(unsafe.Pointer(state)).Fbits+libc.Uint32FromInt32(bits) > uint32(32) {
  10691. return -int32(2)
  10692. }
  10693. value = int32(int64(value) & (libc.Int64FromInt64(1)<<bits - libc.Int64FromInt32(1)))
  10694. *(*uint64)(unsafe.Pointer(state + 80)) += uint64(libc.Uint32FromInt32(value) << (*Tinflate_state)(unsafe.Pointer(state)).Fbits)
  10695. *(*uint32)(unsafe.Pointer(state + 88)) += libc.Uint32FromInt32(bits)
  10696. return m_Z_OK
  10697. }
  10698. // C documentation
  10699. //
  10700. // /*
  10701. // Return state with length and distance decoding tables and index sizes set to
  10702. // fixed code decoding. Normally this returns fixed tables from inffixed.h.
  10703. // If BUILDFIXED is defined, then instead this routine builds the tables the
  10704. // first time it's called, and returns those tables the first time and
  10705. // thereafter. This reduces the size of the code by about 2K bytes, in
  10706. // exchange for a little execution time. However, BUILDFIXED should not be
  10707. // used for threaded applications, since the rewriting of the tables and virgin
  10708. // may not be thread-safe.
  10709. // */
  10710. func _fixedtables1(tls *libc.TLS, state uintptr) {
  10711. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = uintptr(unsafe.Pointer(&_lenfix1))
  10712. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  10713. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = uintptr(unsafe.Pointer(&_distfix1))
  10714. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(5)
  10715. }
  10716. var _lenfix1 = [512]Tcode{
  10717. 0: {
  10718. Fop: uint8(96),
  10719. Fbits: uint8(7),
  10720. },
  10721. 1: {
  10722. Fbits: uint8(8),
  10723. Fval: uint16(80),
  10724. },
  10725. 2: {
  10726. Fbits: uint8(8),
  10727. Fval: uint16(16),
  10728. },
  10729. 3: {
  10730. Fop: uint8(20),
  10731. Fbits: uint8(8),
  10732. Fval: uint16(115),
  10733. },
  10734. 4: {
  10735. Fop: uint8(18),
  10736. Fbits: uint8(7),
  10737. Fval: uint16(31),
  10738. },
  10739. 5: {
  10740. Fbits: uint8(8),
  10741. Fval: uint16(112),
  10742. },
  10743. 6: {
  10744. Fbits: uint8(8),
  10745. Fval: uint16(48),
  10746. },
  10747. 7: {
  10748. Fbits: uint8(9),
  10749. Fval: uint16(192),
  10750. },
  10751. 8: {
  10752. Fop: uint8(16),
  10753. Fbits: uint8(7),
  10754. Fval: uint16(10),
  10755. },
  10756. 9: {
  10757. Fbits: uint8(8),
  10758. Fval: uint16(96),
  10759. },
  10760. 10: {
  10761. Fbits: uint8(8),
  10762. Fval: uint16(32),
  10763. },
  10764. 11: {
  10765. Fbits: uint8(9),
  10766. Fval: uint16(160),
  10767. },
  10768. 12: {
  10769. Fbits: uint8(8),
  10770. },
  10771. 13: {
  10772. Fbits: uint8(8),
  10773. Fval: uint16(128),
  10774. },
  10775. 14: {
  10776. Fbits: uint8(8),
  10777. Fval: uint16(64),
  10778. },
  10779. 15: {
  10780. Fbits: uint8(9),
  10781. Fval: uint16(224),
  10782. },
  10783. 16: {
  10784. Fop: uint8(16),
  10785. Fbits: uint8(7),
  10786. Fval: uint16(6),
  10787. },
  10788. 17: {
  10789. Fbits: uint8(8),
  10790. Fval: uint16(88),
  10791. },
  10792. 18: {
  10793. Fbits: uint8(8),
  10794. Fval: uint16(24),
  10795. },
  10796. 19: {
  10797. Fbits: uint8(9),
  10798. Fval: uint16(144),
  10799. },
  10800. 20: {
  10801. Fop: uint8(19),
  10802. Fbits: uint8(7),
  10803. Fval: uint16(59),
  10804. },
  10805. 21: {
  10806. Fbits: uint8(8),
  10807. Fval: uint16(120),
  10808. },
  10809. 22: {
  10810. Fbits: uint8(8),
  10811. Fval: uint16(56),
  10812. },
  10813. 23: {
  10814. Fbits: uint8(9),
  10815. Fval: uint16(208),
  10816. },
  10817. 24: {
  10818. Fop: uint8(17),
  10819. Fbits: uint8(7),
  10820. Fval: uint16(17),
  10821. },
  10822. 25: {
  10823. Fbits: uint8(8),
  10824. Fval: uint16(104),
  10825. },
  10826. 26: {
  10827. Fbits: uint8(8),
  10828. Fval: uint16(40),
  10829. },
  10830. 27: {
  10831. Fbits: uint8(9),
  10832. Fval: uint16(176),
  10833. },
  10834. 28: {
  10835. Fbits: uint8(8),
  10836. Fval: uint16(8),
  10837. },
  10838. 29: {
  10839. Fbits: uint8(8),
  10840. Fval: uint16(136),
  10841. },
  10842. 30: {
  10843. Fbits: uint8(8),
  10844. Fval: uint16(72),
  10845. },
  10846. 31: {
  10847. Fbits: uint8(9),
  10848. Fval: uint16(240),
  10849. },
  10850. 32: {
  10851. Fop: uint8(16),
  10852. Fbits: uint8(7),
  10853. Fval: uint16(4),
  10854. },
  10855. 33: {
  10856. Fbits: uint8(8),
  10857. Fval: uint16(84),
  10858. },
  10859. 34: {
  10860. Fbits: uint8(8),
  10861. Fval: uint16(20),
  10862. },
  10863. 35: {
  10864. Fop: uint8(21),
  10865. Fbits: uint8(8),
  10866. Fval: uint16(227),
  10867. },
  10868. 36: {
  10869. Fop: uint8(19),
  10870. Fbits: uint8(7),
  10871. Fval: uint16(43),
  10872. },
  10873. 37: {
  10874. Fbits: uint8(8),
  10875. Fval: uint16(116),
  10876. },
  10877. 38: {
  10878. Fbits: uint8(8),
  10879. Fval: uint16(52),
  10880. },
  10881. 39: {
  10882. Fbits: uint8(9),
  10883. Fval: uint16(200),
  10884. },
  10885. 40: {
  10886. Fop: uint8(17),
  10887. Fbits: uint8(7),
  10888. Fval: uint16(13),
  10889. },
  10890. 41: {
  10891. Fbits: uint8(8),
  10892. Fval: uint16(100),
  10893. },
  10894. 42: {
  10895. Fbits: uint8(8),
  10896. Fval: uint16(36),
  10897. },
  10898. 43: {
  10899. Fbits: uint8(9),
  10900. Fval: uint16(168),
  10901. },
  10902. 44: {
  10903. Fbits: uint8(8),
  10904. Fval: uint16(4),
  10905. },
  10906. 45: {
  10907. Fbits: uint8(8),
  10908. Fval: uint16(132),
  10909. },
  10910. 46: {
  10911. Fbits: uint8(8),
  10912. Fval: uint16(68),
  10913. },
  10914. 47: {
  10915. Fbits: uint8(9),
  10916. Fval: uint16(232),
  10917. },
  10918. 48: {
  10919. Fop: uint8(16),
  10920. Fbits: uint8(7),
  10921. Fval: uint16(8),
  10922. },
  10923. 49: {
  10924. Fbits: uint8(8),
  10925. Fval: uint16(92),
  10926. },
  10927. 50: {
  10928. Fbits: uint8(8),
  10929. Fval: uint16(28),
  10930. },
  10931. 51: {
  10932. Fbits: uint8(9),
  10933. Fval: uint16(152),
  10934. },
  10935. 52: {
  10936. Fop: uint8(20),
  10937. Fbits: uint8(7),
  10938. Fval: uint16(83),
  10939. },
  10940. 53: {
  10941. Fbits: uint8(8),
  10942. Fval: uint16(124),
  10943. },
  10944. 54: {
  10945. Fbits: uint8(8),
  10946. Fval: uint16(60),
  10947. },
  10948. 55: {
  10949. Fbits: uint8(9),
  10950. Fval: uint16(216),
  10951. },
  10952. 56: {
  10953. Fop: uint8(18),
  10954. Fbits: uint8(7),
  10955. Fval: uint16(23),
  10956. },
  10957. 57: {
  10958. Fbits: uint8(8),
  10959. Fval: uint16(108),
  10960. },
  10961. 58: {
  10962. Fbits: uint8(8),
  10963. Fval: uint16(44),
  10964. },
  10965. 59: {
  10966. Fbits: uint8(9),
  10967. Fval: uint16(184),
  10968. },
  10969. 60: {
  10970. Fbits: uint8(8),
  10971. Fval: uint16(12),
  10972. },
  10973. 61: {
  10974. Fbits: uint8(8),
  10975. Fval: uint16(140),
  10976. },
  10977. 62: {
  10978. Fbits: uint8(8),
  10979. Fval: uint16(76),
  10980. },
  10981. 63: {
  10982. Fbits: uint8(9),
  10983. Fval: uint16(248),
  10984. },
  10985. 64: {
  10986. Fop: uint8(16),
  10987. Fbits: uint8(7),
  10988. Fval: uint16(3),
  10989. },
  10990. 65: {
  10991. Fbits: uint8(8),
  10992. Fval: uint16(82),
  10993. },
  10994. 66: {
  10995. Fbits: uint8(8),
  10996. Fval: uint16(18),
  10997. },
  10998. 67: {
  10999. Fop: uint8(21),
  11000. Fbits: uint8(8),
  11001. Fval: uint16(163),
  11002. },
  11003. 68: {
  11004. Fop: uint8(19),
  11005. Fbits: uint8(7),
  11006. Fval: uint16(35),
  11007. },
  11008. 69: {
  11009. Fbits: uint8(8),
  11010. Fval: uint16(114),
  11011. },
  11012. 70: {
  11013. Fbits: uint8(8),
  11014. Fval: uint16(50),
  11015. },
  11016. 71: {
  11017. Fbits: uint8(9),
  11018. Fval: uint16(196),
  11019. },
  11020. 72: {
  11021. Fop: uint8(17),
  11022. Fbits: uint8(7),
  11023. Fval: uint16(11),
  11024. },
  11025. 73: {
  11026. Fbits: uint8(8),
  11027. Fval: uint16(98),
  11028. },
  11029. 74: {
  11030. Fbits: uint8(8),
  11031. Fval: uint16(34),
  11032. },
  11033. 75: {
  11034. Fbits: uint8(9),
  11035. Fval: uint16(164),
  11036. },
  11037. 76: {
  11038. Fbits: uint8(8),
  11039. Fval: uint16(2),
  11040. },
  11041. 77: {
  11042. Fbits: uint8(8),
  11043. Fval: uint16(130),
  11044. },
  11045. 78: {
  11046. Fbits: uint8(8),
  11047. Fval: uint16(66),
  11048. },
  11049. 79: {
  11050. Fbits: uint8(9),
  11051. Fval: uint16(228),
  11052. },
  11053. 80: {
  11054. Fop: uint8(16),
  11055. Fbits: uint8(7),
  11056. Fval: uint16(7),
  11057. },
  11058. 81: {
  11059. Fbits: uint8(8),
  11060. Fval: uint16(90),
  11061. },
  11062. 82: {
  11063. Fbits: uint8(8),
  11064. Fval: uint16(26),
  11065. },
  11066. 83: {
  11067. Fbits: uint8(9),
  11068. Fval: uint16(148),
  11069. },
  11070. 84: {
  11071. Fop: uint8(20),
  11072. Fbits: uint8(7),
  11073. Fval: uint16(67),
  11074. },
  11075. 85: {
  11076. Fbits: uint8(8),
  11077. Fval: uint16(122),
  11078. },
  11079. 86: {
  11080. Fbits: uint8(8),
  11081. Fval: uint16(58),
  11082. },
  11083. 87: {
  11084. Fbits: uint8(9),
  11085. Fval: uint16(212),
  11086. },
  11087. 88: {
  11088. Fop: uint8(18),
  11089. Fbits: uint8(7),
  11090. Fval: uint16(19),
  11091. },
  11092. 89: {
  11093. Fbits: uint8(8),
  11094. Fval: uint16(106),
  11095. },
  11096. 90: {
  11097. Fbits: uint8(8),
  11098. Fval: uint16(42),
  11099. },
  11100. 91: {
  11101. Fbits: uint8(9),
  11102. Fval: uint16(180),
  11103. },
  11104. 92: {
  11105. Fbits: uint8(8),
  11106. Fval: uint16(10),
  11107. },
  11108. 93: {
  11109. Fbits: uint8(8),
  11110. Fval: uint16(138),
  11111. },
  11112. 94: {
  11113. Fbits: uint8(8),
  11114. Fval: uint16(74),
  11115. },
  11116. 95: {
  11117. Fbits: uint8(9),
  11118. Fval: uint16(244),
  11119. },
  11120. 96: {
  11121. Fop: uint8(16),
  11122. Fbits: uint8(7),
  11123. Fval: uint16(5),
  11124. },
  11125. 97: {
  11126. Fbits: uint8(8),
  11127. Fval: uint16(86),
  11128. },
  11129. 98: {
  11130. Fbits: uint8(8),
  11131. Fval: uint16(22),
  11132. },
  11133. 99: {
  11134. Fop: uint8(64),
  11135. Fbits: uint8(8),
  11136. },
  11137. 100: {
  11138. Fop: uint8(19),
  11139. Fbits: uint8(7),
  11140. Fval: uint16(51),
  11141. },
  11142. 101: {
  11143. Fbits: uint8(8),
  11144. Fval: uint16(118),
  11145. },
  11146. 102: {
  11147. Fbits: uint8(8),
  11148. Fval: uint16(54),
  11149. },
  11150. 103: {
  11151. Fbits: uint8(9),
  11152. Fval: uint16(204),
  11153. },
  11154. 104: {
  11155. Fop: uint8(17),
  11156. Fbits: uint8(7),
  11157. Fval: uint16(15),
  11158. },
  11159. 105: {
  11160. Fbits: uint8(8),
  11161. Fval: uint16(102),
  11162. },
  11163. 106: {
  11164. Fbits: uint8(8),
  11165. Fval: uint16(38),
  11166. },
  11167. 107: {
  11168. Fbits: uint8(9),
  11169. Fval: uint16(172),
  11170. },
  11171. 108: {
  11172. Fbits: uint8(8),
  11173. Fval: uint16(6),
  11174. },
  11175. 109: {
  11176. Fbits: uint8(8),
  11177. Fval: uint16(134),
  11178. },
  11179. 110: {
  11180. Fbits: uint8(8),
  11181. Fval: uint16(70),
  11182. },
  11183. 111: {
  11184. Fbits: uint8(9),
  11185. Fval: uint16(236),
  11186. },
  11187. 112: {
  11188. Fop: uint8(16),
  11189. Fbits: uint8(7),
  11190. Fval: uint16(9),
  11191. },
  11192. 113: {
  11193. Fbits: uint8(8),
  11194. Fval: uint16(94),
  11195. },
  11196. 114: {
  11197. Fbits: uint8(8),
  11198. Fval: uint16(30),
  11199. },
  11200. 115: {
  11201. Fbits: uint8(9),
  11202. Fval: uint16(156),
  11203. },
  11204. 116: {
  11205. Fop: uint8(20),
  11206. Fbits: uint8(7),
  11207. Fval: uint16(99),
  11208. },
  11209. 117: {
  11210. Fbits: uint8(8),
  11211. Fval: uint16(126),
  11212. },
  11213. 118: {
  11214. Fbits: uint8(8),
  11215. Fval: uint16(62),
  11216. },
  11217. 119: {
  11218. Fbits: uint8(9),
  11219. Fval: uint16(220),
  11220. },
  11221. 120: {
  11222. Fop: uint8(18),
  11223. Fbits: uint8(7),
  11224. Fval: uint16(27),
  11225. },
  11226. 121: {
  11227. Fbits: uint8(8),
  11228. Fval: uint16(110),
  11229. },
  11230. 122: {
  11231. Fbits: uint8(8),
  11232. Fval: uint16(46),
  11233. },
  11234. 123: {
  11235. Fbits: uint8(9),
  11236. Fval: uint16(188),
  11237. },
  11238. 124: {
  11239. Fbits: uint8(8),
  11240. Fval: uint16(14),
  11241. },
  11242. 125: {
  11243. Fbits: uint8(8),
  11244. Fval: uint16(142),
  11245. },
  11246. 126: {
  11247. Fbits: uint8(8),
  11248. Fval: uint16(78),
  11249. },
  11250. 127: {
  11251. Fbits: uint8(9),
  11252. Fval: uint16(252),
  11253. },
  11254. 128: {
  11255. Fop: uint8(96),
  11256. Fbits: uint8(7),
  11257. },
  11258. 129: {
  11259. Fbits: uint8(8),
  11260. Fval: uint16(81),
  11261. },
  11262. 130: {
  11263. Fbits: uint8(8),
  11264. Fval: uint16(17),
  11265. },
  11266. 131: {
  11267. Fop: uint8(21),
  11268. Fbits: uint8(8),
  11269. Fval: uint16(131),
  11270. },
  11271. 132: {
  11272. Fop: uint8(18),
  11273. Fbits: uint8(7),
  11274. Fval: uint16(31),
  11275. },
  11276. 133: {
  11277. Fbits: uint8(8),
  11278. Fval: uint16(113),
  11279. },
  11280. 134: {
  11281. Fbits: uint8(8),
  11282. Fval: uint16(49),
  11283. },
  11284. 135: {
  11285. Fbits: uint8(9),
  11286. Fval: uint16(194),
  11287. },
  11288. 136: {
  11289. Fop: uint8(16),
  11290. Fbits: uint8(7),
  11291. Fval: uint16(10),
  11292. },
  11293. 137: {
  11294. Fbits: uint8(8),
  11295. Fval: uint16(97),
  11296. },
  11297. 138: {
  11298. Fbits: uint8(8),
  11299. Fval: uint16(33),
  11300. },
  11301. 139: {
  11302. Fbits: uint8(9),
  11303. Fval: uint16(162),
  11304. },
  11305. 140: {
  11306. Fbits: uint8(8),
  11307. Fval: uint16(1),
  11308. },
  11309. 141: {
  11310. Fbits: uint8(8),
  11311. Fval: uint16(129),
  11312. },
  11313. 142: {
  11314. Fbits: uint8(8),
  11315. Fval: uint16(65),
  11316. },
  11317. 143: {
  11318. Fbits: uint8(9),
  11319. Fval: uint16(226),
  11320. },
  11321. 144: {
  11322. Fop: uint8(16),
  11323. Fbits: uint8(7),
  11324. Fval: uint16(6),
  11325. },
  11326. 145: {
  11327. Fbits: uint8(8),
  11328. Fval: uint16(89),
  11329. },
  11330. 146: {
  11331. Fbits: uint8(8),
  11332. Fval: uint16(25),
  11333. },
  11334. 147: {
  11335. Fbits: uint8(9),
  11336. Fval: uint16(146),
  11337. },
  11338. 148: {
  11339. Fop: uint8(19),
  11340. Fbits: uint8(7),
  11341. Fval: uint16(59),
  11342. },
  11343. 149: {
  11344. Fbits: uint8(8),
  11345. Fval: uint16(121),
  11346. },
  11347. 150: {
  11348. Fbits: uint8(8),
  11349. Fval: uint16(57),
  11350. },
  11351. 151: {
  11352. Fbits: uint8(9),
  11353. Fval: uint16(210),
  11354. },
  11355. 152: {
  11356. Fop: uint8(17),
  11357. Fbits: uint8(7),
  11358. Fval: uint16(17),
  11359. },
  11360. 153: {
  11361. Fbits: uint8(8),
  11362. Fval: uint16(105),
  11363. },
  11364. 154: {
  11365. Fbits: uint8(8),
  11366. Fval: uint16(41),
  11367. },
  11368. 155: {
  11369. Fbits: uint8(9),
  11370. Fval: uint16(178),
  11371. },
  11372. 156: {
  11373. Fbits: uint8(8),
  11374. Fval: uint16(9),
  11375. },
  11376. 157: {
  11377. Fbits: uint8(8),
  11378. Fval: uint16(137),
  11379. },
  11380. 158: {
  11381. Fbits: uint8(8),
  11382. Fval: uint16(73),
  11383. },
  11384. 159: {
  11385. Fbits: uint8(9),
  11386. Fval: uint16(242),
  11387. },
  11388. 160: {
  11389. Fop: uint8(16),
  11390. Fbits: uint8(7),
  11391. Fval: uint16(4),
  11392. },
  11393. 161: {
  11394. Fbits: uint8(8),
  11395. Fval: uint16(85),
  11396. },
  11397. 162: {
  11398. Fbits: uint8(8),
  11399. Fval: uint16(21),
  11400. },
  11401. 163: {
  11402. Fop: uint8(16),
  11403. Fbits: uint8(8),
  11404. Fval: uint16(258),
  11405. },
  11406. 164: {
  11407. Fop: uint8(19),
  11408. Fbits: uint8(7),
  11409. Fval: uint16(43),
  11410. },
  11411. 165: {
  11412. Fbits: uint8(8),
  11413. Fval: uint16(117),
  11414. },
  11415. 166: {
  11416. Fbits: uint8(8),
  11417. Fval: uint16(53),
  11418. },
  11419. 167: {
  11420. Fbits: uint8(9),
  11421. Fval: uint16(202),
  11422. },
  11423. 168: {
  11424. Fop: uint8(17),
  11425. Fbits: uint8(7),
  11426. Fval: uint16(13),
  11427. },
  11428. 169: {
  11429. Fbits: uint8(8),
  11430. Fval: uint16(101),
  11431. },
  11432. 170: {
  11433. Fbits: uint8(8),
  11434. Fval: uint16(37),
  11435. },
  11436. 171: {
  11437. Fbits: uint8(9),
  11438. Fval: uint16(170),
  11439. },
  11440. 172: {
  11441. Fbits: uint8(8),
  11442. Fval: uint16(5),
  11443. },
  11444. 173: {
  11445. Fbits: uint8(8),
  11446. Fval: uint16(133),
  11447. },
  11448. 174: {
  11449. Fbits: uint8(8),
  11450. Fval: uint16(69),
  11451. },
  11452. 175: {
  11453. Fbits: uint8(9),
  11454. Fval: uint16(234),
  11455. },
  11456. 176: {
  11457. Fop: uint8(16),
  11458. Fbits: uint8(7),
  11459. Fval: uint16(8),
  11460. },
  11461. 177: {
  11462. Fbits: uint8(8),
  11463. Fval: uint16(93),
  11464. },
  11465. 178: {
  11466. Fbits: uint8(8),
  11467. Fval: uint16(29),
  11468. },
  11469. 179: {
  11470. Fbits: uint8(9),
  11471. Fval: uint16(154),
  11472. },
  11473. 180: {
  11474. Fop: uint8(20),
  11475. Fbits: uint8(7),
  11476. Fval: uint16(83),
  11477. },
  11478. 181: {
  11479. Fbits: uint8(8),
  11480. Fval: uint16(125),
  11481. },
  11482. 182: {
  11483. Fbits: uint8(8),
  11484. Fval: uint16(61),
  11485. },
  11486. 183: {
  11487. Fbits: uint8(9),
  11488. Fval: uint16(218),
  11489. },
  11490. 184: {
  11491. Fop: uint8(18),
  11492. Fbits: uint8(7),
  11493. Fval: uint16(23),
  11494. },
  11495. 185: {
  11496. Fbits: uint8(8),
  11497. Fval: uint16(109),
  11498. },
  11499. 186: {
  11500. Fbits: uint8(8),
  11501. Fval: uint16(45),
  11502. },
  11503. 187: {
  11504. Fbits: uint8(9),
  11505. Fval: uint16(186),
  11506. },
  11507. 188: {
  11508. Fbits: uint8(8),
  11509. Fval: uint16(13),
  11510. },
  11511. 189: {
  11512. Fbits: uint8(8),
  11513. Fval: uint16(141),
  11514. },
  11515. 190: {
  11516. Fbits: uint8(8),
  11517. Fval: uint16(77),
  11518. },
  11519. 191: {
  11520. Fbits: uint8(9),
  11521. Fval: uint16(250),
  11522. },
  11523. 192: {
  11524. Fop: uint8(16),
  11525. Fbits: uint8(7),
  11526. Fval: uint16(3),
  11527. },
  11528. 193: {
  11529. Fbits: uint8(8),
  11530. Fval: uint16(83),
  11531. },
  11532. 194: {
  11533. Fbits: uint8(8),
  11534. Fval: uint16(19),
  11535. },
  11536. 195: {
  11537. Fop: uint8(21),
  11538. Fbits: uint8(8),
  11539. Fval: uint16(195),
  11540. },
  11541. 196: {
  11542. Fop: uint8(19),
  11543. Fbits: uint8(7),
  11544. Fval: uint16(35),
  11545. },
  11546. 197: {
  11547. Fbits: uint8(8),
  11548. Fval: uint16(115),
  11549. },
  11550. 198: {
  11551. Fbits: uint8(8),
  11552. Fval: uint16(51),
  11553. },
  11554. 199: {
  11555. Fbits: uint8(9),
  11556. Fval: uint16(198),
  11557. },
  11558. 200: {
  11559. Fop: uint8(17),
  11560. Fbits: uint8(7),
  11561. Fval: uint16(11),
  11562. },
  11563. 201: {
  11564. Fbits: uint8(8),
  11565. Fval: uint16(99),
  11566. },
  11567. 202: {
  11568. Fbits: uint8(8),
  11569. Fval: uint16(35),
  11570. },
  11571. 203: {
  11572. Fbits: uint8(9),
  11573. Fval: uint16(166),
  11574. },
  11575. 204: {
  11576. Fbits: uint8(8),
  11577. Fval: uint16(3),
  11578. },
  11579. 205: {
  11580. Fbits: uint8(8),
  11581. Fval: uint16(131),
  11582. },
  11583. 206: {
  11584. Fbits: uint8(8),
  11585. Fval: uint16(67),
  11586. },
  11587. 207: {
  11588. Fbits: uint8(9),
  11589. Fval: uint16(230),
  11590. },
  11591. 208: {
  11592. Fop: uint8(16),
  11593. Fbits: uint8(7),
  11594. Fval: uint16(7),
  11595. },
  11596. 209: {
  11597. Fbits: uint8(8),
  11598. Fval: uint16(91),
  11599. },
  11600. 210: {
  11601. Fbits: uint8(8),
  11602. Fval: uint16(27),
  11603. },
  11604. 211: {
  11605. Fbits: uint8(9),
  11606. Fval: uint16(150),
  11607. },
  11608. 212: {
  11609. Fop: uint8(20),
  11610. Fbits: uint8(7),
  11611. Fval: uint16(67),
  11612. },
  11613. 213: {
  11614. Fbits: uint8(8),
  11615. Fval: uint16(123),
  11616. },
  11617. 214: {
  11618. Fbits: uint8(8),
  11619. Fval: uint16(59),
  11620. },
  11621. 215: {
  11622. Fbits: uint8(9),
  11623. Fval: uint16(214),
  11624. },
  11625. 216: {
  11626. Fop: uint8(18),
  11627. Fbits: uint8(7),
  11628. Fval: uint16(19),
  11629. },
  11630. 217: {
  11631. Fbits: uint8(8),
  11632. Fval: uint16(107),
  11633. },
  11634. 218: {
  11635. Fbits: uint8(8),
  11636. Fval: uint16(43),
  11637. },
  11638. 219: {
  11639. Fbits: uint8(9),
  11640. Fval: uint16(182),
  11641. },
  11642. 220: {
  11643. Fbits: uint8(8),
  11644. Fval: uint16(11),
  11645. },
  11646. 221: {
  11647. Fbits: uint8(8),
  11648. Fval: uint16(139),
  11649. },
  11650. 222: {
  11651. Fbits: uint8(8),
  11652. Fval: uint16(75),
  11653. },
  11654. 223: {
  11655. Fbits: uint8(9),
  11656. Fval: uint16(246),
  11657. },
  11658. 224: {
  11659. Fop: uint8(16),
  11660. Fbits: uint8(7),
  11661. Fval: uint16(5),
  11662. },
  11663. 225: {
  11664. Fbits: uint8(8),
  11665. Fval: uint16(87),
  11666. },
  11667. 226: {
  11668. Fbits: uint8(8),
  11669. Fval: uint16(23),
  11670. },
  11671. 227: {
  11672. Fop: uint8(64),
  11673. Fbits: uint8(8),
  11674. },
  11675. 228: {
  11676. Fop: uint8(19),
  11677. Fbits: uint8(7),
  11678. Fval: uint16(51),
  11679. },
  11680. 229: {
  11681. Fbits: uint8(8),
  11682. Fval: uint16(119),
  11683. },
  11684. 230: {
  11685. Fbits: uint8(8),
  11686. Fval: uint16(55),
  11687. },
  11688. 231: {
  11689. Fbits: uint8(9),
  11690. Fval: uint16(206),
  11691. },
  11692. 232: {
  11693. Fop: uint8(17),
  11694. Fbits: uint8(7),
  11695. Fval: uint16(15),
  11696. },
  11697. 233: {
  11698. Fbits: uint8(8),
  11699. Fval: uint16(103),
  11700. },
  11701. 234: {
  11702. Fbits: uint8(8),
  11703. Fval: uint16(39),
  11704. },
  11705. 235: {
  11706. Fbits: uint8(9),
  11707. Fval: uint16(174),
  11708. },
  11709. 236: {
  11710. Fbits: uint8(8),
  11711. Fval: uint16(7),
  11712. },
  11713. 237: {
  11714. Fbits: uint8(8),
  11715. Fval: uint16(135),
  11716. },
  11717. 238: {
  11718. Fbits: uint8(8),
  11719. Fval: uint16(71),
  11720. },
  11721. 239: {
  11722. Fbits: uint8(9),
  11723. Fval: uint16(238),
  11724. },
  11725. 240: {
  11726. Fop: uint8(16),
  11727. Fbits: uint8(7),
  11728. Fval: uint16(9),
  11729. },
  11730. 241: {
  11731. Fbits: uint8(8),
  11732. Fval: uint16(95),
  11733. },
  11734. 242: {
  11735. Fbits: uint8(8),
  11736. Fval: uint16(31),
  11737. },
  11738. 243: {
  11739. Fbits: uint8(9),
  11740. Fval: uint16(158),
  11741. },
  11742. 244: {
  11743. Fop: uint8(20),
  11744. Fbits: uint8(7),
  11745. Fval: uint16(99),
  11746. },
  11747. 245: {
  11748. Fbits: uint8(8),
  11749. Fval: uint16(127),
  11750. },
  11751. 246: {
  11752. Fbits: uint8(8),
  11753. Fval: uint16(63),
  11754. },
  11755. 247: {
  11756. Fbits: uint8(9),
  11757. Fval: uint16(222),
  11758. },
  11759. 248: {
  11760. Fop: uint8(18),
  11761. Fbits: uint8(7),
  11762. Fval: uint16(27),
  11763. },
  11764. 249: {
  11765. Fbits: uint8(8),
  11766. Fval: uint16(111),
  11767. },
  11768. 250: {
  11769. Fbits: uint8(8),
  11770. Fval: uint16(47),
  11771. },
  11772. 251: {
  11773. Fbits: uint8(9),
  11774. Fval: uint16(190),
  11775. },
  11776. 252: {
  11777. Fbits: uint8(8),
  11778. Fval: uint16(15),
  11779. },
  11780. 253: {
  11781. Fbits: uint8(8),
  11782. Fval: uint16(143),
  11783. },
  11784. 254: {
  11785. Fbits: uint8(8),
  11786. Fval: uint16(79),
  11787. },
  11788. 255: {
  11789. Fbits: uint8(9),
  11790. Fval: uint16(254),
  11791. },
  11792. 256: {
  11793. Fop: uint8(96),
  11794. Fbits: uint8(7),
  11795. },
  11796. 257: {
  11797. Fbits: uint8(8),
  11798. Fval: uint16(80),
  11799. },
  11800. 258: {
  11801. Fbits: uint8(8),
  11802. Fval: uint16(16),
  11803. },
  11804. 259: {
  11805. Fop: uint8(20),
  11806. Fbits: uint8(8),
  11807. Fval: uint16(115),
  11808. },
  11809. 260: {
  11810. Fop: uint8(18),
  11811. Fbits: uint8(7),
  11812. Fval: uint16(31),
  11813. },
  11814. 261: {
  11815. Fbits: uint8(8),
  11816. Fval: uint16(112),
  11817. },
  11818. 262: {
  11819. Fbits: uint8(8),
  11820. Fval: uint16(48),
  11821. },
  11822. 263: {
  11823. Fbits: uint8(9),
  11824. Fval: uint16(193),
  11825. },
  11826. 264: {
  11827. Fop: uint8(16),
  11828. Fbits: uint8(7),
  11829. Fval: uint16(10),
  11830. },
  11831. 265: {
  11832. Fbits: uint8(8),
  11833. Fval: uint16(96),
  11834. },
  11835. 266: {
  11836. Fbits: uint8(8),
  11837. Fval: uint16(32),
  11838. },
  11839. 267: {
  11840. Fbits: uint8(9),
  11841. Fval: uint16(161),
  11842. },
  11843. 268: {
  11844. Fbits: uint8(8),
  11845. },
  11846. 269: {
  11847. Fbits: uint8(8),
  11848. Fval: uint16(128),
  11849. },
  11850. 270: {
  11851. Fbits: uint8(8),
  11852. Fval: uint16(64),
  11853. },
  11854. 271: {
  11855. Fbits: uint8(9),
  11856. Fval: uint16(225),
  11857. },
  11858. 272: {
  11859. Fop: uint8(16),
  11860. Fbits: uint8(7),
  11861. Fval: uint16(6),
  11862. },
  11863. 273: {
  11864. Fbits: uint8(8),
  11865. Fval: uint16(88),
  11866. },
  11867. 274: {
  11868. Fbits: uint8(8),
  11869. Fval: uint16(24),
  11870. },
  11871. 275: {
  11872. Fbits: uint8(9),
  11873. Fval: uint16(145),
  11874. },
  11875. 276: {
  11876. Fop: uint8(19),
  11877. Fbits: uint8(7),
  11878. Fval: uint16(59),
  11879. },
  11880. 277: {
  11881. Fbits: uint8(8),
  11882. Fval: uint16(120),
  11883. },
  11884. 278: {
  11885. Fbits: uint8(8),
  11886. Fval: uint16(56),
  11887. },
  11888. 279: {
  11889. Fbits: uint8(9),
  11890. Fval: uint16(209),
  11891. },
  11892. 280: {
  11893. Fop: uint8(17),
  11894. Fbits: uint8(7),
  11895. Fval: uint16(17),
  11896. },
  11897. 281: {
  11898. Fbits: uint8(8),
  11899. Fval: uint16(104),
  11900. },
  11901. 282: {
  11902. Fbits: uint8(8),
  11903. Fval: uint16(40),
  11904. },
  11905. 283: {
  11906. Fbits: uint8(9),
  11907. Fval: uint16(177),
  11908. },
  11909. 284: {
  11910. Fbits: uint8(8),
  11911. Fval: uint16(8),
  11912. },
  11913. 285: {
  11914. Fbits: uint8(8),
  11915. Fval: uint16(136),
  11916. },
  11917. 286: {
  11918. Fbits: uint8(8),
  11919. Fval: uint16(72),
  11920. },
  11921. 287: {
  11922. Fbits: uint8(9),
  11923. Fval: uint16(241),
  11924. },
  11925. 288: {
  11926. Fop: uint8(16),
  11927. Fbits: uint8(7),
  11928. Fval: uint16(4),
  11929. },
  11930. 289: {
  11931. Fbits: uint8(8),
  11932. Fval: uint16(84),
  11933. },
  11934. 290: {
  11935. Fbits: uint8(8),
  11936. Fval: uint16(20),
  11937. },
  11938. 291: {
  11939. Fop: uint8(21),
  11940. Fbits: uint8(8),
  11941. Fval: uint16(227),
  11942. },
  11943. 292: {
  11944. Fop: uint8(19),
  11945. Fbits: uint8(7),
  11946. Fval: uint16(43),
  11947. },
  11948. 293: {
  11949. Fbits: uint8(8),
  11950. Fval: uint16(116),
  11951. },
  11952. 294: {
  11953. Fbits: uint8(8),
  11954. Fval: uint16(52),
  11955. },
  11956. 295: {
  11957. Fbits: uint8(9),
  11958. Fval: uint16(201),
  11959. },
  11960. 296: {
  11961. Fop: uint8(17),
  11962. Fbits: uint8(7),
  11963. Fval: uint16(13),
  11964. },
  11965. 297: {
  11966. Fbits: uint8(8),
  11967. Fval: uint16(100),
  11968. },
  11969. 298: {
  11970. Fbits: uint8(8),
  11971. Fval: uint16(36),
  11972. },
  11973. 299: {
  11974. Fbits: uint8(9),
  11975. Fval: uint16(169),
  11976. },
  11977. 300: {
  11978. Fbits: uint8(8),
  11979. Fval: uint16(4),
  11980. },
  11981. 301: {
  11982. Fbits: uint8(8),
  11983. Fval: uint16(132),
  11984. },
  11985. 302: {
  11986. Fbits: uint8(8),
  11987. Fval: uint16(68),
  11988. },
  11989. 303: {
  11990. Fbits: uint8(9),
  11991. Fval: uint16(233),
  11992. },
  11993. 304: {
  11994. Fop: uint8(16),
  11995. Fbits: uint8(7),
  11996. Fval: uint16(8),
  11997. },
  11998. 305: {
  11999. Fbits: uint8(8),
  12000. Fval: uint16(92),
  12001. },
  12002. 306: {
  12003. Fbits: uint8(8),
  12004. Fval: uint16(28),
  12005. },
  12006. 307: {
  12007. Fbits: uint8(9),
  12008. Fval: uint16(153),
  12009. },
  12010. 308: {
  12011. Fop: uint8(20),
  12012. Fbits: uint8(7),
  12013. Fval: uint16(83),
  12014. },
  12015. 309: {
  12016. Fbits: uint8(8),
  12017. Fval: uint16(124),
  12018. },
  12019. 310: {
  12020. Fbits: uint8(8),
  12021. Fval: uint16(60),
  12022. },
  12023. 311: {
  12024. Fbits: uint8(9),
  12025. Fval: uint16(217),
  12026. },
  12027. 312: {
  12028. Fop: uint8(18),
  12029. Fbits: uint8(7),
  12030. Fval: uint16(23),
  12031. },
  12032. 313: {
  12033. Fbits: uint8(8),
  12034. Fval: uint16(108),
  12035. },
  12036. 314: {
  12037. Fbits: uint8(8),
  12038. Fval: uint16(44),
  12039. },
  12040. 315: {
  12041. Fbits: uint8(9),
  12042. Fval: uint16(185),
  12043. },
  12044. 316: {
  12045. Fbits: uint8(8),
  12046. Fval: uint16(12),
  12047. },
  12048. 317: {
  12049. Fbits: uint8(8),
  12050. Fval: uint16(140),
  12051. },
  12052. 318: {
  12053. Fbits: uint8(8),
  12054. Fval: uint16(76),
  12055. },
  12056. 319: {
  12057. Fbits: uint8(9),
  12058. Fval: uint16(249),
  12059. },
  12060. 320: {
  12061. Fop: uint8(16),
  12062. Fbits: uint8(7),
  12063. Fval: uint16(3),
  12064. },
  12065. 321: {
  12066. Fbits: uint8(8),
  12067. Fval: uint16(82),
  12068. },
  12069. 322: {
  12070. Fbits: uint8(8),
  12071. Fval: uint16(18),
  12072. },
  12073. 323: {
  12074. Fop: uint8(21),
  12075. Fbits: uint8(8),
  12076. Fval: uint16(163),
  12077. },
  12078. 324: {
  12079. Fop: uint8(19),
  12080. Fbits: uint8(7),
  12081. Fval: uint16(35),
  12082. },
  12083. 325: {
  12084. Fbits: uint8(8),
  12085. Fval: uint16(114),
  12086. },
  12087. 326: {
  12088. Fbits: uint8(8),
  12089. Fval: uint16(50),
  12090. },
  12091. 327: {
  12092. Fbits: uint8(9),
  12093. Fval: uint16(197),
  12094. },
  12095. 328: {
  12096. Fop: uint8(17),
  12097. Fbits: uint8(7),
  12098. Fval: uint16(11),
  12099. },
  12100. 329: {
  12101. Fbits: uint8(8),
  12102. Fval: uint16(98),
  12103. },
  12104. 330: {
  12105. Fbits: uint8(8),
  12106. Fval: uint16(34),
  12107. },
  12108. 331: {
  12109. Fbits: uint8(9),
  12110. Fval: uint16(165),
  12111. },
  12112. 332: {
  12113. Fbits: uint8(8),
  12114. Fval: uint16(2),
  12115. },
  12116. 333: {
  12117. Fbits: uint8(8),
  12118. Fval: uint16(130),
  12119. },
  12120. 334: {
  12121. Fbits: uint8(8),
  12122. Fval: uint16(66),
  12123. },
  12124. 335: {
  12125. Fbits: uint8(9),
  12126. Fval: uint16(229),
  12127. },
  12128. 336: {
  12129. Fop: uint8(16),
  12130. Fbits: uint8(7),
  12131. Fval: uint16(7),
  12132. },
  12133. 337: {
  12134. Fbits: uint8(8),
  12135. Fval: uint16(90),
  12136. },
  12137. 338: {
  12138. Fbits: uint8(8),
  12139. Fval: uint16(26),
  12140. },
  12141. 339: {
  12142. Fbits: uint8(9),
  12143. Fval: uint16(149),
  12144. },
  12145. 340: {
  12146. Fop: uint8(20),
  12147. Fbits: uint8(7),
  12148. Fval: uint16(67),
  12149. },
  12150. 341: {
  12151. Fbits: uint8(8),
  12152. Fval: uint16(122),
  12153. },
  12154. 342: {
  12155. Fbits: uint8(8),
  12156. Fval: uint16(58),
  12157. },
  12158. 343: {
  12159. Fbits: uint8(9),
  12160. Fval: uint16(213),
  12161. },
  12162. 344: {
  12163. Fop: uint8(18),
  12164. Fbits: uint8(7),
  12165. Fval: uint16(19),
  12166. },
  12167. 345: {
  12168. Fbits: uint8(8),
  12169. Fval: uint16(106),
  12170. },
  12171. 346: {
  12172. Fbits: uint8(8),
  12173. Fval: uint16(42),
  12174. },
  12175. 347: {
  12176. Fbits: uint8(9),
  12177. Fval: uint16(181),
  12178. },
  12179. 348: {
  12180. Fbits: uint8(8),
  12181. Fval: uint16(10),
  12182. },
  12183. 349: {
  12184. Fbits: uint8(8),
  12185. Fval: uint16(138),
  12186. },
  12187. 350: {
  12188. Fbits: uint8(8),
  12189. Fval: uint16(74),
  12190. },
  12191. 351: {
  12192. Fbits: uint8(9),
  12193. Fval: uint16(245),
  12194. },
  12195. 352: {
  12196. Fop: uint8(16),
  12197. Fbits: uint8(7),
  12198. Fval: uint16(5),
  12199. },
  12200. 353: {
  12201. Fbits: uint8(8),
  12202. Fval: uint16(86),
  12203. },
  12204. 354: {
  12205. Fbits: uint8(8),
  12206. Fval: uint16(22),
  12207. },
  12208. 355: {
  12209. Fop: uint8(64),
  12210. Fbits: uint8(8),
  12211. },
  12212. 356: {
  12213. Fop: uint8(19),
  12214. Fbits: uint8(7),
  12215. Fval: uint16(51),
  12216. },
  12217. 357: {
  12218. Fbits: uint8(8),
  12219. Fval: uint16(118),
  12220. },
  12221. 358: {
  12222. Fbits: uint8(8),
  12223. Fval: uint16(54),
  12224. },
  12225. 359: {
  12226. Fbits: uint8(9),
  12227. Fval: uint16(205),
  12228. },
  12229. 360: {
  12230. Fop: uint8(17),
  12231. Fbits: uint8(7),
  12232. Fval: uint16(15),
  12233. },
  12234. 361: {
  12235. Fbits: uint8(8),
  12236. Fval: uint16(102),
  12237. },
  12238. 362: {
  12239. Fbits: uint8(8),
  12240. Fval: uint16(38),
  12241. },
  12242. 363: {
  12243. Fbits: uint8(9),
  12244. Fval: uint16(173),
  12245. },
  12246. 364: {
  12247. Fbits: uint8(8),
  12248. Fval: uint16(6),
  12249. },
  12250. 365: {
  12251. Fbits: uint8(8),
  12252. Fval: uint16(134),
  12253. },
  12254. 366: {
  12255. Fbits: uint8(8),
  12256. Fval: uint16(70),
  12257. },
  12258. 367: {
  12259. Fbits: uint8(9),
  12260. Fval: uint16(237),
  12261. },
  12262. 368: {
  12263. Fop: uint8(16),
  12264. Fbits: uint8(7),
  12265. Fval: uint16(9),
  12266. },
  12267. 369: {
  12268. Fbits: uint8(8),
  12269. Fval: uint16(94),
  12270. },
  12271. 370: {
  12272. Fbits: uint8(8),
  12273. Fval: uint16(30),
  12274. },
  12275. 371: {
  12276. Fbits: uint8(9),
  12277. Fval: uint16(157),
  12278. },
  12279. 372: {
  12280. Fop: uint8(20),
  12281. Fbits: uint8(7),
  12282. Fval: uint16(99),
  12283. },
  12284. 373: {
  12285. Fbits: uint8(8),
  12286. Fval: uint16(126),
  12287. },
  12288. 374: {
  12289. Fbits: uint8(8),
  12290. Fval: uint16(62),
  12291. },
  12292. 375: {
  12293. Fbits: uint8(9),
  12294. Fval: uint16(221),
  12295. },
  12296. 376: {
  12297. Fop: uint8(18),
  12298. Fbits: uint8(7),
  12299. Fval: uint16(27),
  12300. },
  12301. 377: {
  12302. Fbits: uint8(8),
  12303. Fval: uint16(110),
  12304. },
  12305. 378: {
  12306. Fbits: uint8(8),
  12307. Fval: uint16(46),
  12308. },
  12309. 379: {
  12310. Fbits: uint8(9),
  12311. Fval: uint16(189),
  12312. },
  12313. 380: {
  12314. Fbits: uint8(8),
  12315. Fval: uint16(14),
  12316. },
  12317. 381: {
  12318. Fbits: uint8(8),
  12319. Fval: uint16(142),
  12320. },
  12321. 382: {
  12322. Fbits: uint8(8),
  12323. Fval: uint16(78),
  12324. },
  12325. 383: {
  12326. Fbits: uint8(9),
  12327. Fval: uint16(253),
  12328. },
  12329. 384: {
  12330. Fop: uint8(96),
  12331. Fbits: uint8(7),
  12332. },
  12333. 385: {
  12334. Fbits: uint8(8),
  12335. Fval: uint16(81),
  12336. },
  12337. 386: {
  12338. Fbits: uint8(8),
  12339. Fval: uint16(17),
  12340. },
  12341. 387: {
  12342. Fop: uint8(21),
  12343. Fbits: uint8(8),
  12344. Fval: uint16(131),
  12345. },
  12346. 388: {
  12347. Fop: uint8(18),
  12348. Fbits: uint8(7),
  12349. Fval: uint16(31),
  12350. },
  12351. 389: {
  12352. Fbits: uint8(8),
  12353. Fval: uint16(113),
  12354. },
  12355. 390: {
  12356. Fbits: uint8(8),
  12357. Fval: uint16(49),
  12358. },
  12359. 391: {
  12360. Fbits: uint8(9),
  12361. Fval: uint16(195),
  12362. },
  12363. 392: {
  12364. Fop: uint8(16),
  12365. Fbits: uint8(7),
  12366. Fval: uint16(10),
  12367. },
  12368. 393: {
  12369. Fbits: uint8(8),
  12370. Fval: uint16(97),
  12371. },
  12372. 394: {
  12373. Fbits: uint8(8),
  12374. Fval: uint16(33),
  12375. },
  12376. 395: {
  12377. Fbits: uint8(9),
  12378. Fval: uint16(163),
  12379. },
  12380. 396: {
  12381. Fbits: uint8(8),
  12382. Fval: uint16(1),
  12383. },
  12384. 397: {
  12385. Fbits: uint8(8),
  12386. Fval: uint16(129),
  12387. },
  12388. 398: {
  12389. Fbits: uint8(8),
  12390. Fval: uint16(65),
  12391. },
  12392. 399: {
  12393. Fbits: uint8(9),
  12394. Fval: uint16(227),
  12395. },
  12396. 400: {
  12397. Fop: uint8(16),
  12398. Fbits: uint8(7),
  12399. Fval: uint16(6),
  12400. },
  12401. 401: {
  12402. Fbits: uint8(8),
  12403. Fval: uint16(89),
  12404. },
  12405. 402: {
  12406. Fbits: uint8(8),
  12407. Fval: uint16(25),
  12408. },
  12409. 403: {
  12410. Fbits: uint8(9),
  12411. Fval: uint16(147),
  12412. },
  12413. 404: {
  12414. Fop: uint8(19),
  12415. Fbits: uint8(7),
  12416. Fval: uint16(59),
  12417. },
  12418. 405: {
  12419. Fbits: uint8(8),
  12420. Fval: uint16(121),
  12421. },
  12422. 406: {
  12423. Fbits: uint8(8),
  12424. Fval: uint16(57),
  12425. },
  12426. 407: {
  12427. Fbits: uint8(9),
  12428. Fval: uint16(211),
  12429. },
  12430. 408: {
  12431. Fop: uint8(17),
  12432. Fbits: uint8(7),
  12433. Fval: uint16(17),
  12434. },
  12435. 409: {
  12436. Fbits: uint8(8),
  12437. Fval: uint16(105),
  12438. },
  12439. 410: {
  12440. Fbits: uint8(8),
  12441. Fval: uint16(41),
  12442. },
  12443. 411: {
  12444. Fbits: uint8(9),
  12445. Fval: uint16(179),
  12446. },
  12447. 412: {
  12448. Fbits: uint8(8),
  12449. Fval: uint16(9),
  12450. },
  12451. 413: {
  12452. Fbits: uint8(8),
  12453. Fval: uint16(137),
  12454. },
  12455. 414: {
  12456. Fbits: uint8(8),
  12457. Fval: uint16(73),
  12458. },
  12459. 415: {
  12460. Fbits: uint8(9),
  12461. Fval: uint16(243),
  12462. },
  12463. 416: {
  12464. Fop: uint8(16),
  12465. Fbits: uint8(7),
  12466. Fval: uint16(4),
  12467. },
  12468. 417: {
  12469. Fbits: uint8(8),
  12470. Fval: uint16(85),
  12471. },
  12472. 418: {
  12473. Fbits: uint8(8),
  12474. Fval: uint16(21),
  12475. },
  12476. 419: {
  12477. Fop: uint8(16),
  12478. Fbits: uint8(8),
  12479. Fval: uint16(258),
  12480. },
  12481. 420: {
  12482. Fop: uint8(19),
  12483. Fbits: uint8(7),
  12484. Fval: uint16(43),
  12485. },
  12486. 421: {
  12487. Fbits: uint8(8),
  12488. Fval: uint16(117),
  12489. },
  12490. 422: {
  12491. Fbits: uint8(8),
  12492. Fval: uint16(53),
  12493. },
  12494. 423: {
  12495. Fbits: uint8(9),
  12496. Fval: uint16(203),
  12497. },
  12498. 424: {
  12499. Fop: uint8(17),
  12500. Fbits: uint8(7),
  12501. Fval: uint16(13),
  12502. },
  12503. 425: {
  12504. Fbits: uint8(8),
  12505. Fval: uint16(101),
  12506. },
  12507. 426: {
  12508. Fbits: uint8(8),
  12509. Fval: uint16(37),
  12510. },
  12511. 427: {
  12512. Fbits: uint8(9),
  12513. Fval: uint16(171),
  12514. },
  12515. 428: {
  12516. Fbits: uint8(8),
  12517. Fval: uint16(5),
  12518. },
  12519. 429: {
  12520. Fbits: uint8(8),
  12521. Fval: uint16(133),
  12522. },
  12523. 430: {
  12524. Fbits: uint8(8),
  12525. Fval: uint16(69),
  12526. },
  12527. 431: {
  12528. Fbits: uint8(9),
  12529. Fval: uint16(235),
  12530. },
  12531. 432: {
  12532. Fop: uint8(16),
  12533. Fbits: uint8(7),
  12534. Fval: uint16(8),
  12535. },
  12536. 433: {
  12537. Fbits: uint8(8),
  12538. Fval: uint16(93),
  12539. },
  12540. 434: {
  12541. Fbits: uint8(8),
  12542. Fval: uint16(29),
  12543. },
  12544. 435: {
  12545. Fbits: uint8(9),
  12546. Fval: uint16(155),
  12547. },
  12548. 436: {
  12549. Fop: uint8(20),
  12550. Fbits: uint8(7),
  12551. Fval: uint16(83),
  12552. },
  12553. 437: {
  12554. Fbits: uint8(8),
  12555. Fval: uint16(125),
  12556. },
  12557. 438: {
  12558. Fbits: uint8(8),
  12559. Fval: uint16(61),
  12560. },
  12561. 439: {
  12562. Fbits: uint8(9),
  12563. Fval: uint16(219),
  12564. },
  12565. 440: {
  12566. Fop: uint8(18),
  12567. Fbits: uint8(7),
  12568. Fval: uint16(23),
  12569. },
  12570. 441: {
  12571. Fbits: uint8(8),
  12572. Fval: uint16(109),
  12573. },
  12574. 442: {
  12575. Fbits: uint8(8),
  12576. Fval: uint16(45),
  12577. },
  12578. 443: {
  12579. Fbits: uint8(9),
  12580. Fval: uint16(187),
  12581. },
  12582. 444: {
  12583. Fbits: uint8(8),
  12584. Fval: uint16(13),
  12585. },
  12586. 445: {
  12587. Fbits: uint8(8),
  12588. Fval: uint16(141),
  12589. },
  12590. 446: {
  12591. Fbits: uint8(8),
  12592. Fval: uint16(77),
  12593. },
  12594. 447: {
  12595. Fbits: uint8(9),
  12596. Fval: uint16(251),
  12597. },
  12598. 448: {
  12599. Fop: uint8(16),
  12600. Fbits: uint8(7),
  12601. Fval: uint16(3),
  12602. },
  12603. 449: {
  12604. Fbits: uint8(8),
  12605. Fval: uint16(83),
  12606. },
  12607. 450: {
  12608. Fbits: uint8(8),
  12609. Fval: uint16(19),
  12610. },
  12611. 451: {
  12612. Fop: uint8(21),
  12613. Fbits: uint8(8),
  12614. Fval: uint16(195),
  12615. },
  12616. 452: {
  12617. Fop: uint8(19),
  12618. Fbits: uint8(7),
  12619. Fval: uint16(35),
  12620. },
  12621. 453: {
  12622. Fbits: uint8(8),
  12623. Fval: uint16(115),
  12624. },
  12625. 454: {
  12626. Fbits: uint8(8),
  12627. Fval: uint16(51),
  12628. },
  12629. 455: {
  12630. Fbits: uint8(9),
  12631. Fval: uint16(199),
  12632. },
  12633. 456: {
  12634. Fop: uint8(17),
  12635. Fbits: uint8(7),
  12636. Fval: uint16(11),
  12637. },
  12638. 457: {
  12639. Fbits: uint8(8),
  12640. Fval: uint16(99),
  12641. },
  12642. 458: {
  12643. Fbits: uint8(8),
  12644. Fval: uint16(35),
  12645. },
  12646. 459: {
  12647. Fbits: uint8(9),
  12648. Fval: uint16(167),
  12649. },
  12650. 460: {
  12651. Fbits: uint8(8),
  12652. Fval: uint16(3),
  12653. },
  12654. 461: {
  12655. Fbits: uint8(8),
  12656. Fval: uint16(131),
  12657. },
  12658. 462: {
  12659. Fbits: uint8(8),
  12660. Fval: uint16(67),
  12661. },
  12662. 463: {
  12663. Fbits: uint8(9),
  12664. Fval: uint16(231),
  12665. },
  12666. 464: {
  12667. Fop: uint8(16),
  12668. Fbits: uint8(7),
  12669. Fval: uint16(7),
  12670. },
  12671. 465: {
  12672. Fbits: uint8(8),
  12673. Fval: uint16(91),
  12674. },
  12675. 466: {
  12676. Fbits: uint8(8),
  12677. Fval: uint16(27),
  12678. },
  12679. 467: {
  12680. Fbits: uint8(9),
  12681. Fval: uint16(151),
  12682. },
  12683. 468: {
  12684. Fop: uint8(20),
  12685. Fbits: uint8(7),
  12686. Fval: uint16(67),
  12687. },
  12688. 469: {
  12689. Fbits: uint8(8),
  12690. Fval: uint16(123),
  12691. },
  12692. 470: {
  12693. Fbits: uint8(8),
  12694. Fval: uint16(59),
  12695. },
  12696. 471: {
  12697. Fbits: uint8(9),
  12698. Fval: uint16(215),
  12699. },
  12700. 472: {
  12701. Fop: uint8(18),
  12702. Fbits: uint8(7),
  12703. Fval: uint16(19),
  12704. },
  12705. 473: {
  12706. Fbits: uint8(8),
  12707. Fval: uint16(107),
  12708. },
  12709. 474: {
  12710. Fbits: uint8(8),
  12711. Fval: uint16(43),
  12712. },
  12713. 475: {
  12714. Fbits: uint8(9),
  12715. Fval: uint16(183),
  12716. },
  12717. 476: {
  12718. Fbits: uint8(8),
  12719. Fval: uint16(11),
  12720. },
  12721. 477: {
  12722. Fbits: uint8(8),
  12723. Fval: uint16(139),
  12724. },
  12725. 478: {
  12726. Fbits: uint8(8),
  12727. Fval: uint16(75),
  12728. },
  12729. 479: {
  12730. Fbits: uint8(9),
  12731. Fval: uint16(247),
  12732. },
  12733. 480: {
  12734. Fop: uint8(16),
  12735. Fbits: uint8(7),
  12736. Fval: uint16(5),
  12737. },
  12738. 481: {
  12739. Fbits: uint8(8),
  12740. Fval: uint16(87),
  12741. },
  12742. 482: {
  12743. Fbits: uint8(8),
  12744. Fval: uint16(23),
  12745. },
  12746. 483: {
  12747. Fop: uint8(64),
  12748. Fbits: uint8(8),
  12749. },
  12750. 484: {
  12751. Fop: uint8(19),
  12752. Fbits: uint8(7),
  12753. Fval: uint16(51),
  12754. },
  12755. 485: {
  12756. Fbits: uint8(8),
  12757. Fval: uint16(119),
  12758. },
  12759. 486: {
  12760. Fbits: uint8(8),
  12761. Fval: uint16(55),
  12762. },
  12763. 487: {
  12764. Fbits: uint8(9),
  12765. Fval: uint16(207),
  12766. },
  12767. 488: {
  12768. Fop: uint8(17),
  12769. Fbits: uint8(7),
  12770. Fval: uint16(15),
  12771. },
  12772. 489: {
  12773. Fbits: uint8(8),
  12774. Fval: uint16(103),
  12775. },
  12776. 490: {
  12777. Fbits: uint8(8),
  12778. Fval: uint16(39),
  12779. },
  12780. 491: {
  12781. Fbits: uint8(9),
  12782. Fval: uint16(175),
  12783. },
  12784. 492: {
  12785. Fbits: uint8(8),
  12786. Fval: uint16(7),
  12787. },
  12788. 493: {
  12789. Fbits: uint8(8),
  12790. Fval: uint16(135),
  12791. },
  12792. 494: {
  12793. Fbits: uint8(8),
  12794. Fval: uint16(71),
  12795. },
  12796. 495: {
  12797. Fbits: uint8(9),
  12798. Fval: uint16(239),
  12799. },
  12800. 496: {
  12801. Fop: uint8(16),
  12802. Fbits: uint8(7),
  12803. Fval: uint16(9),
  12804. },
  12805. 497: {
  12806. Fbits: uint8(8),
  12807. Fval: uint16(95),
  12808. },
  12809. 498: {
  12810. Fbits: uint8(8),
  12811. Fval: uint16(31),
  12812. },
  12813. 499: {
  12814. Fbits: uint8(9),
  12815. Fval: uint16(159),
  12816. },
  12817. 500: {
  12818. Fop: uint8(20),
  12819. Fbits: uint8(7),
  12820. Fval: uint16(99),
  12821. },
  12822. 501: {
  12823. Fbits: uint8(8),
  12824. Fval: uint16(127),
  12825. },
  12826. 502: {
  12827. Fbits: uint8(8),
  12828. Fval: uint16(63),
  12829. },
  12830. 503: {
  12831. Fbits: uint8(9),
  12832. Fval: uint16(223),
  12833. },
  12834. 504: {
  12835. Fop: uint8(18),
  12836. Fbits: uint8(7),
  12837. Fval: uint16(27),
  12838. },
  12839. 505: {
  12840. Fbits: uint8(8),
  12841. Fval: uint16(111),
  12842. },
  12843. 506: {
  12844. Fbits: uint8(8),
  12845. Fval: uint16(47),
  12846. },
  12847. 507: {
  12848. Fbits: uint8(9),
  12849. Fval: uint16(191),
  12850. },
  12851. 508: {
  12852. Fbits: uint8(8),
  12853. Fval: uint16(15),
  12854. },
  12855. 509: {
  12856. Fbits: uint8(8),
  12857. Fval: uint16(143),
  12858. },
  12859. 510: {
  12860. Fbits: uint8(8),
  12861. Fval: uint16(79),
  12862. },
  12863. 511: {
  12864. Fbits: uint8(9),
  12865. Fval: uint16(255),
  12866. },
  12867. }
  12868. var _distfix1 = [32]Tcode{
  12869. 0: {
  12870. Fop: uint8(16),
  12871. Fbits: uint8(5),
  12872. Fval: uint16(1),
  12873. },
  12874. 1: {
  12875. Fop: uint8(23),
  12876. Fbits: uint8(5),
  12877. Fval: uint16(257),
  12878. },
  12879. 2: {
  12880. Fop: uint8(19),
  12881. Fbits: uint8(5),
  12882. Fval: uint16(17),
  12883. },
  12884. 3: {
  12885. Fop: uint8(27),
  12886. Fbits: uint8(5),
  12887. Fval: uint16(4097),
  12888. },
  12889. 4: {
  12890. Fop: uint8(17),
  12891. Fbits: uint8(5),
  12892. Fval: uint16(5),
  12893. },
  12894. 5: {
  12895. Fop: uint8(25),
  12896. Fbits: uint8(5),
  12897. Fval: uint16(1025),
  12898. },
  12899. 6: {
  12900. Fop: uint8(21),
  12901. Fbits: uint8(5),
  12902. Fval: uint16(65),
  12903. },
  12904. 7: {
  12905. Fop: uint8(29),
  12906. Fbits: uint8(5),
  12907. Fval: uint16(16385),
  12908. },
  12909. 8: {
  12910. Fop: uint8(16),
  12911. Fbits: uint8(5),
  12912. Fval: uint16(3),
  12913. },
  12914. 9: {
  12915. Fop: uint8(24),
  12916. Fbits: uint8(5),
  12917. Fval: uint16(513),
  12918. },
  12919. 10: {
  12920. Fop: uint8(20),
  12921. Fbits: uint8(5),
  12922. Fval: uint16(33),
  12923. },
  12924. 11: {
  12925. Fop: uint8(28),
  12926. Fbits: uint8(5),
  12927. Fval: uint16(8193),
  12928. },
  12929. 12: {
  12930. Fop: uint8(18),
  12931. Fbits: uint8(5),
  12932. Fval: uint16(9),
  12933. },
  12934. 13: {
  12935. Fop: uint8(26),
  12936. Fbits: uint8(5),
  12937. Fval: uint16(2049),
  12938. },
  12939. 14: {
  12940. Fop: uint8(22),
  12941. Fbits: uint8(5),
  12942. Fval: uint16(129),
  12943. },
  12944. 15: {
  12945. Fop: uint8(64),
  12946. Fbits: uint8(5),
  12947. },
  12948. 16: {
  12949. Fop: uint8(16),
  12950. Fbits: uint8(5),
  12951. Fval: uint16(2),
  12952. },
  12953. 17: {
  12954. Fop: uint8(23),
  12955. Fbits: uint8(5),
  12956. Fval: uint16(385),
  12957. },
  12958. 18: {
  12959. Fop: uint8(19),
  12960. Fbits: uint8(5),
  12961. Fval: uint16(25),
  12962. },
  12963. 19: {
  12964. Fop: uint8(27),
  12965. Fbits: uint8(5),
  12966. Fval: uint16(6145),
  12967. },
  12968. 20: {
  12969. Fop: uint8(17),
  12970. Fbits: uint8(5),
  12971. Fval: uint16(7),
  12972. },
  12973. 21: {
  12974. Fop: uint8(25),
  12975. Fbits: uint8(5),
  12976. Fval: uint16(1537),
  12977. },
  12978. 22: {
  12979. Fop: uint8(21),
  12980. Fbits: uint8(5),
  12981. Fval: uint16(97),
  12982. },
  12983. 23: {
  12984. Fop: uint8(29),
  12985. Fbits: uint8(5),
  12986. Fval: uint16(24577),
  12987. },
  12988. 24: {
  12989. Fop: uint8(16),
  12990. Fbits: uint8(5),
  12991. Fval: uint16(4),
  12992. },
  12993. 25: {
  12994. Fop: uint8(24),
  12995. Fbits: uint8(5),
  12996. Fval: uint16(769),
  12997. },
  12998. 26: {
  12999. Fop: uint8(20),
  13000. Fbits: uint8(5),
  13001. Fval: uint16(49),
  13002. },
  13003. 27: {
  13004. Fop: uint8(28),
  13005. Fbits: uint8(5),
  13006. Fval: uint16(12289),
  13007. },
  13008. 28: {
  13009. Fop: uint8(18),
  13010. Fbits: uint8(5),
  13011. Fval: uint16(13),
  13012. },
  13013. 29: {
  13014. Fop: uint8(26),
  13015. Fbits: uint8(5),
  13016. Fval: uint16(3073),
  13017. },
  13018. 30: {
  13019. Fop: uint8(22),
  13020. Fbits: uint8(5),
  13021. Fval: uint16(193),
  13022. },
  13023. 31: {
  13024. Fop: uint8(64),
  13025. Fbits: uint8(5),
  13026. },
  13027. }
  13028. // C documentation
  13029. //
  13030. // /*
  13031. // Update the window with the last wsize (normally 32K) bytes written before
  13032. // returning. If window does not exist yet, create it. This is only called
  13033. // when a window is already in use, or when output has been written during this
  13034. // inflate call, but the end of the deflate stream has not been reached yet.
  13035. // It is also called to create a window for dictionary data when a dictionary
  13036. // is loaded.
  13037. //
  13038. // Providing output buffers larger than 32K to inflate() should provide a speed
  13039. // advantage, since only the last 32K of output is copied to the sliding window
  13040. // upon return from inflate(), and since all distances after the first 32K of
  13041. // output will fall in the output data, making match copies simpler and faster.
  13042. // The advantage may be dependent on the size of the processor's data caches.
  13043. // */
  13044. func _updatewindow(tls *libc.TLS, strm Tz_streamp, end uintptr, copy1 uint32) (r int32) {
  13045. var dist uint32
  13046. var state uintptr
  13047. _, _ = dist, state
  13048. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  13049. /* if it hasn't been done already, allocate space for the window */
  13050. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow == uintptr(m_Z_NULL) {
  13051. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fwbits, uint32(libc.Uint64FromInt64(1)))
  13052. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow == uintptr(m_Z_NULL) {
  13053. return int32(1)
  13054. }
  13055. }
  13056. /* if window not in use yet, initialize */
  13057. if (*Tinflate_state)(unsafe.Pointer(state)).Fwsize == uint32(0) {
  13058. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(1) << (*Tinflate_state)(unsafe.Pointer(state)).Fwbits
  13059. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  13060. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  13061. }
  13062. /* copy state->wsize or less output bytes into the circular window */
  13063. if copy1 >= (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  13064. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, end-uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwsize), uint64((*Tinflate_state)(unsafe.Pointer(state)).Fwsize))
  13065. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  13066. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  13067. } else {
  13068. dist = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  13069. if dist > copy1 {
  13070. dist = copy1
  13071. }
  13072. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), end-uintptr(copy1), uint64(dist))
  13073. copy1 -= dist
  13074. if copy1 != 0 {
  13075. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, end-uintptr(copy1), uint64(copy1))
  13076. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = copy1
  13077. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  13078. } else {
  13079. *(*uint32)(unsafe.Pointer(state + 68)) += dist
  13080. if (*Tinflate_state)(unsafe.Pointer(state)).Fwnext == (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  13081. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  13082. }
  13083. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  13084. *(*uint32)(unsafe.Pointer(state + 64)) += dist
  13085. }
  13086. }
  13087. }
  13088. return 0
  13089. }
  13090. /* Macros for inflate(): */
  13091. /* check function to use adler32() for zlib or crc32() for gzip */
  13092. /* check macros for header crc */
  13093. /* Load registers with state in inflate() for speed */
  13094. /* Restore state from registers in inflate() */
  13095. /* Clear the input bit accumulator */
  13096. /* Get a byte of input into the bit accumulator, or return from inflate()
  13097. if there is no input available. */
  13098. /* Assure that there are at least n bits in the bit accumulator. If there is
  13099. not enough available input to do that, then return from inflate(). */
  13100. /* Return the low n bits of the bit accumulator (n < 16) */
  13101. /* Remove n bits from the bit accumulator */
  13102. /* Remove zero to seven bits as needed to go to a byte boundary */
  13103. /*
  13104. inflate() uses a state machine to process as much input data and generate as
  13105. much output data as possible before returning. The state machine is
  13106. structured roughly as follows:
  13107. for (;;) switch (state) {
  13108. ...
  13109. case STATEn:
  13110. if (not enough input data or output space to make progress)
  13111. return;
  13112. ... make progress ...
  13113. state = STATEm;
  13114. break;
  13115. ...
  13116. }
  13117. so when inflate() is called again, the same case is attempted again, and
  13118. if the appropriate resources are provided, the machine proceeds to the
  13119. next state. The NEEDBITS() macro is usually the way the state evaluates
  13120. whether it can proceed or should return. NEEDBITS() does the return if
  13121. the requested bits are not available. The typical use of the BITS macros
  13122. is:
  13123. NEEDBITS(n);
  13124. ... do something with BITS(n) ...
  13125. DROPBITS(n);
  13126. where NEEDBITS(n) either returns from inflate() if there isn't enough
  13127. input left to load n bits into the accumulator, or it continues. BITS(n)
  13128. gives the low n bits in the accumulator. When done, DROPBITS(n) drops
  13129. the low n bits off the accumulator. INITBITS() clears the accumulator
  13130. and sets the number of available bits to zero. BYTEBITS() discards just
  13131. enough bits to put the accumulator on a byte boundary. After BYTEBITS()
  13132. and a NEEDBITS(8), then BITS(8) would return the next byte in the stream.
  13133. NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return
  13134. if there is no input available. The decoding of variable length codes uses
  13135. PULLBYTE() directly in order to pull just enough bytes to decode the next
  13136. code, and no more.
  13137. Some states loop until they get enough input, making sure that enough
  13138. state information is maintained to continue the loop where it left off
  13139. if NEEDBITS() returns in the loop. For example, want, need, and keep
  13140. would all have to actually be part of the saved state in case NEEDBITS()
  13141. returns:
  13142. case STATEw:
  13143. while (want < need) {
  13144. NEEDBITS(n);
  13145. keep[want++] = BITS(n);
  13146. DROPBITS(n);
  13147. }
  13148. state = STATEx;
  13149. case STATEx:
  13150. As shown above, if the next state is also the next case, then the break
  13151. is omitted.
  13152. A state may also return if there is not enough output space available to
  13153. complete that state. Those states are copying stored data, writing a
  13154. literal byte, and copying a matching string.
  13155. When returning, a "goto inf_leave" is used to update the total counters,
  13156. update the check value, and determine whether any progress has been made
  13157. during that inflate() call in order to return the proper return code.
  13158. Progress is defined as a change in either strm->avail_in or strm->avail_out.
  13159. When there is a window, goto inf_leave will update the window with the last
  13160. output written. If a goto inf_leave occurs in the middle of decompression
  13161. and there is no window currently, goto inf_leave will create one and copy
  13162. output to the window for the next call of inflate().
  13163. In this implementation, the flush parameter of inflate() only affects the
  13164. return code (per zlib.h). inflate() always writes as much as possible to
  13165. strm->next_out, given the space available and the provided input--the effect
  13166. documented in zlib.h of Z_SYNC_FLUSH. Furthermore, inflate() always defers
  13167. the allocation of and copying into a sliding window until necessary, which
  13168. provides the effect documented in zlib.h for Z_FINISH when the entire input
  13169. stream available. So the only thing the flush parameter actually does is:
  13170. when flush is set to Z_FINISH, inflate() cannot return Z_OK. Instead it
  13171. will return Z_BUF_ERROR if it has not reached the end of the stream.
  13172. */
  13173. func Xinflate(tls *libc.TLS, strm Tz_streamp, flush int32) (r int32) {
  13174. bp := tls.Alloc(16)
  13175. defer tls.Free(16)
  13176. var bits, copy1, have, in, left, len1, out, v46, v48, v49, v50, v52, v53, v64, v66, v70, v75, v76, v90 uint32
  13177. 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
  13178. var here, last Tcode
  13179. var hold, v101, v102, v37, v56, v58, v59, v96, v97, v98 uint64
  13180. var ret, v103, v104, v105, v38 int32
  13181. var v47, v99 bool
  13182. var _ /* hbuf at bp+0 */ [4]uint8
  13183. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  13184. 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) {
  13185. return -int32(2)
  13186. }
  13187. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  13188. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  13189. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPEDO)
  13190. } /* skip check */
  13191. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  13192. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  13193. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  13194. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  13195. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  13196. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  13197. in = have
  13198. out = left
  13199. ret = m_Z_OK
  13200. for {
  13201. switch (*Tinflate_state)(unsafe.Pointer(state)).Fmode {
  13202. case int32(_HEAD):
  13203. goto _2
  13204. case int32(_FLAGS):
  13205. goto _3
  13206. case int32(_TIME):
  13207. goto _4
  13208. case int32(_OS):
  13209. goto _5
  13210. case int32(_EXLEN):
  13211. goto _6
  13212. case int32(_EXTRA):
  13213. goto _7
  13214. case int32(_NAME):
  13215. goto _8
  13216. case int32(_COMMENT):
  13217. goto _9
  13218. case int32(_HCRC):
  13219. goto _10
  13220. case int32(_DICTID):
  13221. goto _11
  13222. case int32(_DICT):
  13223. goto _12
  13224. case int32(_TYPE):
  13225. goto _13
  13226. case int32(_TYPEDO):
  13227. goto _14
  13228. case int32(_STORED):
  13229. goto _15
  13230. case int32(_COPY_):
  13231. goto _16
  13232. case int32(_COPY):
  13233. goto _17
  13234. case int32(_TABLE):
  13235. goto _18
  13236. case int32(_LENLENS):
  13237. goto _19
  13238. case int32(_CODELENS):
  13239. goto _20
  13240. case int32(_LEN_):
  13241. goto _21
  13242. case int32(_LEN):
  13243. goto _22
  13244. case int32(_LENEXT):
  13245. goto _23
  13246. case int32(_DIST):
  13247. goto _24
  13248. case int32(_DISTEXT):
  13249. goto _25
  13250. case int32(_MATCH):
  13251. goto _26
  13252. case int32(_LIT):
  13253. goto _27
  13254. case int32(_CHECK):
  13255. goto _28
  13256. case int32(_LENGTH):
  13257. goto _29
  13258. case int32(_DONE):
  13259. goto _30
  13260. case int32(_BAD):
  13261. goto _31
  13262. case int32(_MEM):
  13263. goto _32
  13264. default:
  13265. goto _33
  13266. case int32(_SYNC):
  13267. goto _34
  13268. }
  13269. goto _35
  13270. _2:
  13271. ;
  13272. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap == 0 {
  13273. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPEDO)
  13274. goto _35
  13275. }
  13276. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(16)) {
  13277. if have == uint32(0) {
  13278. goto inf_leave
  13279. }
  13280. have--
  13281. v36 = next
  13282. next++
  13283. hold += uint64(*(*uint8)(unsafe.Pointer(v36))) << bits
  13284. bits += uint32(8)
  13285. }
  13286. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(2) != 0 && hold == uint64(0x8b1f) { /* gzip header */
  13287. if (*Tinflate_state)(unsafe.Pointer(state)).Fwbits == uint32(0) {
  13288. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = uint32(15)
  13289. }
  13290. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  13291. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13292. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13293. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  13294. hold = uint64(0)
  13295. bits = uint32(0)
  13296. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_FLAGS)
  13297. goto _35
  13298. }
  13299. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13300. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fdone = -int32(1)
  13301. }
  13302. if !((*Tinflate_state)(unsafe.Pointer(state)).Fwrap&libc.Int32FromInt32(1) != 0) || (uint64(uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(8)-libc.Uint32FromInt32(1))<<libc.Int32FromInt32(8))+hold>>int32(8))%uint64(31) != 0 {
  13303. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 308
  13304. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13305. goto _35
  13306. }
  13307. if uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) != uint32(m_Z_DEFLATED) {
  13308. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 331
  13309. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13310. goto _35
  13311. }
  13312. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(4))
  13313. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(4))
  13314. len1 = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(8)
  13315. if (*Tinflate_state)(unsafe.Pointer(state)).Fwbits == uint32(0) {
  13316. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = len1
  13317. }
  13318. if len1 > uint32(15) || len1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwbits {
  13319. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 358
  13320. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13321. goto _35
  13322. }
  13323. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(1) << len1
  13324. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = 0 /* indicate zlib header */
  13325. v37 = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  13326. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v37
  13327. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v37
  13328. if hold&uint64(0x200) != 0 {
  13329. v38 = int32(_DICTID)
  13330. } else {
  13331. v38 = int32(_TYPE)
  13332. }
  13333. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = v38
  13334. hold = uint64(0)
  13335. bits = uint32(0)
  13336. goto _35
  13337. _3:
  13338. ;
  13339. _41:
  13340. ;
  13341. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(16)) {
  13342. if have == uint32(0) {
  13343. goto inf_leave
  13344. }
  13345. have--
  13346. v42 = next
  13347. next++
  13348. hold += uint64(*(*uint8)(unsafe.Pointer(v42))) << bits
  13349. bits += uint32(8)
  13350. }
  13351. goto _40
  13352. _40:
  13353. ;
  13354. if 0 != 0 {
  13355. goto _41
  13356. }
  13357. goto _39
  13358. _39:
  13359. ;
  13360. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = libc.Int32FromUint64(hold)
  13361. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0xff) != int32(m_Z_DEFLATED) {
  13362. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 331
  13363. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13364. goto _35
  13365. }
  13366. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0xe000) != 0 {
  13367. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 378
  13368. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13369. goto _35
  13370. }
  13371. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13372. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Ftext = libc.Int32FromUint64(hold >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(1))
  13373. }
  13374. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13375. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13376. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13377. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  13378. }
  13379. hold = uint64(0)
  13380. bits = uint32(0)
  13381. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TIME)
  13382. /* fallthrough */
  13383. _4:
  13384. ;
  13385. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  13386. if have == uint32(0) {
  13387. goto inf_leave
  13388. }
  13389. have--
  13390. v43 = next
  13391. next++
  13392. hold += uint64(*(*uint8)(unsafe.Pointer(v43))) << bits
  13393. bits += uint32(8)
  13394. }
  13395. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13396. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Ftime = hold
  13397. }
  13398. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13399. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13400. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13401. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(2)] = uint8(hold >> libc.Int32FromInt32(16))
  13402. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(3)] = uint8(hold >> libc.Int32FromInt32(24))
  13403. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(4))
  13404. }
  13405. hold = uint64(0)
  13406. bits = uint32(0)
  13407. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_OS)
  13408. /* fallthrough */
  13409. _5:
  13410. ;
  13411. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(16)) {
  13412. if have == uint32(0) {
  13413. goto inf_leave
  13414. }
  13415. have--
  13416. v44 = next
  13417. next++
  13418. hold += uint64(*(*uint8)(unsafe.Pointer(v44))) << bits
  13419. bits += uint32(8)
  13420. }
  13421. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13422. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fxflags = libc.Int32FromUint64(hold & libc.Uint64FromInt32(0xff))
  13423. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fos = libc.Int32FromUint64(hold >> libc.Int32FromInt32(8))
  13424. }
  13425. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13426. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13427. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13428. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  13429. }
  13430. hold = uint64(0)
  13431. bits = uint32(0)
  13432. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_EXLEN)
  13433. /* fallthrough */
  13434. _6:
  13435. ;
  13436. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0400) != 0 {
  13437. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(16)) {
  13438. if have == uint32(0) {
  13439. goto inf_leave
  13440. }
  13441. have--
  13442. v45 = next
  13443. next++
  13444. hold += uint64(*(*uint8)(unsafe.Pointer(v45))) << bits
  13445. bits += uint32(8)
  13446. }
  13447. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(hold)
  13448. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13449. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_len = uint32(hold)
  13450. }
  13451. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13452. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13453. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13454. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  13455. }
  13456. hold = uint64(0)
  13457. bits = uint32(0)
  13458. } else {
  13459. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13460. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra = uintptr(m_Z_NULL)
  13461. }
  13462. }
  13463. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_EXTRA)
  13464. /* fallthrough */
  13465. _7:
  13466. ;
  13467. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0400) != 0 {
  13468. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  13469. if copy1 > have {
  13470. copy1 = have
  13471. }
  13472. if copy1 != 0 {
  13473. 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 {
  13474. v46 = (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_len - (*Tinflate_state)(unsafe.Pointer(state)).Flength
  13475. len1 = v46
  13476. }
  13477. if v47 && v46 < (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max {
  13478. if len1+copy1 > (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max {
  13479. v48 = (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max - len1
  13480. } else {
  13481. v48 = copy1
  13482. }
  13483. libc.Xmemcpy(tls, (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra+uintptr(len1), next, uint64(v48))
  13484. }
  13485. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13486. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  13487. }
  13488. have -= copy1
  13489. next += uintptr(copy1)
  13490. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  13491. }
  13492. if (*Tinflate_state)(unsafe.Pointer(state)).Flength != 0 {
  13493. goto inf_leave
  13494. }
  13495. }
  13496. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(0)
  13497. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_NAME)
  13498. /* fallthrough */
  13499. _8:
  13500. ;
  13501. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0800) != 0 {
  13502. if have == uint32(0) {
  13503. goto inf_leave
  13504. }
  13505. copy1 = uint32(0)
  13506. for cond := true; cond; cond = len1 != 0 && copy1 < have {
  13507. v49 = copy1
  13508. copy1++
  13509. len1 = uint32(*(*uint8)(unsafe.Pointer(next + uintptr(v49))))
  13510. 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 {
  13511. v51 = state + 92
  13512. v50 = *(*uint32)(unsafe.Pointer(v51))
  13513. *(*uint32)(unsafe.Pointer(v51))++
  13514. *(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname + uintptr(v50))) = uint8(len1)
  13515. }
  13516. }
  13517. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13518. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  13519. }
  13520. have -= copy1
  13521. next += uintptr(copy1)
  13522. if len1 != 0 {
  13523. goto inf_leave
  13524. }
  13525. } else {
  13526. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13527. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname = uintptr(m_Z_NULL)
  13528. }
  13529. }
  13530. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(0)
  13531. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COMMENT)
  13532. /* fallthrough */
  13533. _9:
  13534. ;
  13535. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x1000) != 0 {
  13536. if have == uint32(0) {
  13537. goto inf_leave
  13538. }
  13539. copy1 = uint32(0)
  13540. for cond := true; cond; cond = len1 != 0 && copy1 < have {
  13541. v52 = copy1
  13542. copy1++
  13543. len1 = uint32(*(*uint8)(unsafe.Pointer(next + uintptr(v52))))
  13544. 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 {
  13545. v54 = state + 92
  13546. v53 = *(*uint32)(unsafe.Pointer(v54))
  13547. *(*uint32)(unsafe.Pointer(v54))++
  13548. *(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment + uintptr(v53))) = uint8(len1)
  13549. }
  13550. }
  13551. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13552. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  13553. }
  13554. have -= copy1
  13555. next += uintptr(copy1)
  13556. if len1 != 0 {
  13557. goto inf_leave
  13558. }
  13559. } else {
  13560. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13561. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment = uintptr(m_Z_NULL)
  13562. }
  13563. }
  13564. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HCRC)
  13565. /* fallthrough */
  13566. _10:
  13567. ;
  13568. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 {
  13569. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(16)) {
  13570. if have == uint32(0) {
  13571. goto inf_leave
  13572. }
  13573. have--
  13574. v55 = next
  13575. next++
  13576. hold += uint64(*(*uint8)(unsafe.Pointer(v55))) << bits
  13577. bits += uint32(8)
  13578. }
  13579. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && hold != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck&uint64(0xffff) {
  13580. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 403
  13581. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13582. goto _35
  13583. }
  13584. hold = uint64(0)
  13585. bits = uint32(0)
  13586. }
  13587. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13588. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fhcrc = (*Tinflate_state)(unsafe.Pointer(state)).Fflags >> libc.Int32FromInt32(9) & libc.Int32FromInt32(1)
  13589. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fdone = int32(1)
  13590. }
  13591. v56 = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  13592. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v56
  13593. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v56
  13594. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  13595. goto _35
  13596. _11:
  13597. ;
  13598. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  13599. if have == uint32(0) {
  13600. goto inf_leave
  13601. }
  13602. have--
  13603. v57 = next
  13604. next++
  13605. hold += uint64(*(*uint8)(unsafe.Pointer(v57))) << bits
  13606. bits += uint32(8)
  13607. }
  13608. v58 = hold>>libc.Int32FromInt32(24)&libc.Uint64FromInt32(0xff) + hold>>libc.Int32FromInt32(8)&libc.Uint64FromInt32(0xff00) + hold&libc.Uint64FromInt32(0xff00)<<libc.Int32FromInt32(8) + hold&libc.Uint64FromInt32(0xff)<<libc.Int32FromInt32(24)
  13609. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v58
  13610. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v58
  13611. hold = uint64(0)
  13612. bits = uint32(0)
  13613. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DICT)
  13614. /* fallthrough */
  13615. _12:
  13616. ;
  13617. if (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict == 0 {
  13618. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  13619. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  13620. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  13621. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  13622. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  13623. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  13624. return int32(m_Z_NEED_DICT)
  13625. }
  13626. v59 = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  13627. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v59
  13628. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v59
  13629. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  13630. /* fallthrough */
  13631. _13:
  13632. ;
  13633. if flush == int32(m_Z_BLOCK) || flush == int32(m_Z_TREES) {
  13634. goto inf_leave
  13635. }
  13636. /* fallthrough */
  13637. _14:
  13638. ;
  13639. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  13640. hold >>= uint64(bits & uint32(7))
  13641. bits -= bits & uint32(7)
  13642. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_CHECK)
  13643. goto _35
  13644. }
  13645. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(3)) {
  13646. if have == uint32(0) {
  13647. goto inf_leave
  13648. }
  13649. have--
  13650. v60 = next
  13651. next++
  13652. hold += uint64(*(*uint8)(unsafe.Pointer(v60))) << bits
  13653. bits += uint32(8)
  13654. }
  13655. (*Tinflate_state)(unsafe.Pointer(state)).Flast = libc.Int32FromUint32(uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(1) - libc.Uint32FromInt32(1)))
  13656. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(1))
  13657. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(1))
  13658. switch uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2) - libc.Uint32FromInt32(1)) {
  13659. case uint32(0): /* stored block */
  13660. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_STORED)
  13661. case uint32(1): /* fixed block */
  13662. _fixedtables1(tls, state)
  13663. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN_) /* decode codes */
  13664. if flush == int32(m_Z_TREES) {
  13665. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(2))
  13666. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  13667. goto inf_leave
  13668. }
  13669. case uint32(2): /* dynamic block */
  13670. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TABLE)
  13671. case uint32(3):
  13672. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 6
  13673. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13674. }
  13675. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(2))
  13676. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  13677. goto _35
  13678. _15:
  13679. ;
  13680. hold >>= uint64(bits & uint32(7))
  13681. bits -= bits & uint32(7) /* go to byte boundary */
  13682. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  13683. if have == uint32(0) {
  13684. goto inf_leave
  13685. }
  13686. have--
  13687. v61 = next
  13688. next++
  13689. hold += uint64(*(*uint8)(unsafe.Pointer(v61))) << bits
  13690. bits += uint32(8)
  13691. }
  13692. if hold&uint64(0xffff) != hold>>int32(16)^uint64(0xffff) {
  13693. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 25
  13694. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13695. goto _35
  13696. }
  13697. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(hold) & uint32(0xffff)
  13698. hold = uint64(0)
  13699. bits = uint32(0)
  13700. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COPY_)
  13701. if flush == int32(m_Z_TREES) {
  13702. goto inf_leave
  13703. }
  13704. /* fallthrough */
  13705. _16:
  13706. ;
  13707. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COPY)
  13708. /* fallthrough */
  13709. _17:
  13710. ;
  13711. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  13712. if copy1 != 0 {
  13713. if copy1 > have {
  13714. copy1 = have
  13715. }
  13716. if copy1 > left {
  13717. copy1 = left
  13718. }
  13719. if copy1 == uint32(0) {
  13720. goto inf_leave
  13721. }
  13722. libc.Xmemcpy(tls, put, next, uint64(copy1))
  13723. have -= copy1
  13724. next += uintptr(copy1)
  13725. left -= copy1
  13726. put += uintptr(copy1)
  13727. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  13728. goto _35
  13729. }
  13730. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  13731. goto _35
  13732. _18:
  13733. ;
  13734. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(14)) {
  13735. if have == uint32(0) {
  13736. goto inf_leave
  13737. }
  13738. have--
  13739. v62 = next
  13740. next++
  13741. hold += uint64(*(*uint8)(unsafe.Pointer(v62))) << bits
  13742. bits += uint32(8)
  13743. }
  13744. (*Tinflate_state)(unsafe.Pointer(state)).Fnlen = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(257)
  13745. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(5))
  13746. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(5))
  13747. (*Tinflate_state)(unsafe.Pointer(state)).Fndist = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(1)
  13748. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(5))
  13749. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(5))
  13750. (*Tinflate_state)(unsafe.Pointer(state)).Fncode = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(4)
  13751. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(4))
  13752. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(4))
  13753. if (*Tinflate_state)(unsafe.Pointer(state)).Fnlen > uint32(286) || (*Tinflate_state)(unsafe.Pointer(state)).Fndist > uint32(30) {
  13754. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 54
  13755. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13756. goto _35
  13757. }
  13758. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  13759. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENLENS)
  13760. /* fallthrough */
  13761. _19:
  13762. ;
  13763. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fncode {
  13764. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(3)) {
  13765. if have == uint32(0) {
  13766. goto inf_leave
  13767. }
  13768. have--
  13769. v63 = next
  13770. next++
  13771. hold += uint64(*(*uint8)(unsafe.Pointer(v63))) << bits
  13772. bits += uint32(8)
  13773. }
  13774. v65 = state + 140
  13775. v64 = *(*uint32)(unsafe.Pointer(v65))
  13776. *(*uint32)(unsafe.Pointer(v65))++
  13777. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order1[v64])*2)) = uint16(uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3) - libc.Uint32FromInt32(1)))
  13778. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(3))
  13779. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(3))
  13780. }
  13781. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < uint32(19) {
  13782. v67 = state + 140
  13783. v66 = *(*uint32)(unsafe.Pointer(v67))
  13784. *(*uint32)(unsafe.Pointer(v67))++
  13785. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order1[v66])*2)) = uint16(0)
  13786. }
  13787. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  13788. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  13789. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(7)
  13790. ret = Xinflate_table(tls, int32(_CODES), state+152, uint32(19), state+144, state+120, state+792)
  13791. if ret != 0 {
  13792. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 90
  13793. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13794. goto _35
  13795. }
  13796. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  13797. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_CODELENS)
  13798. /* fallthrough */
  13799. _20:
  13800. ;
  13801. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  13802. for {
  13803. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(hold)&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  13804. if uint32(here.Fbits) <= bits {
  13805. break
  13806. }
  13807. if have == uint32(0) {
  13808. goto inf_leave
  13809. }
  13810. have--
  13811. v69 = next
  13812. next++
  13813. hold += uint64(*(*uint8)(unsafe.Pointer(v69))) << bits
  13814. bits += uint32(8)
  13815. goto _68
  13816. _68:
  13817. }
  13818. if libc.Int32FromUint16(here.Fval) < int32(16) {
  13819. hold >>= uint64(here.Fbits)
  13820. bits -= uint32(here.Fbits)
  13821. v71 = state + 140
  13822. v70 = *(*uint32)(unsafe.Pointer(v71))
  13823. *(*uint32)(unsafe.Pointer(v71))++
  13824. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v70)*2)) = here.Fval
  13825. } else {
  13826. if libc.Int32FromUint16(here.Fval) == int32(16) {
  13827. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(2)) {
  13828. if have == uint32(0) {
  13829. goto inf_leave
  13830. }
  13831. have--
  13832. v72 = next
  13833. next++
  13834. hold += uint64(*(*uint8)(unsafe.Pointer(v72))) << bits
  13835. bits += uint32(8)
  13836. }
  13837. hold >>= uint64(here.Fbits)
  13838. bits -= uint32(here.Fbits)
  13839. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave == uint32(0) {
  13840. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 115
  13841. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13842. break
  13843. }
  13844. len1 = uint32(*(*uint16)(unsafe.Pointer(state + 152 + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fhave-uint32(1))*2)))
  13845. copy1 = uint32(3) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2)-libc.Uint32FromInt32(1))
  13846. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(2))
  13847. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  13848. } else {
  13849. if libc.Int32FromUint16(here.Fval) == int32(17) {
  13850. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(3)) {
  13851. if have == uint32(0) {
  13852. goto inf_leave
  13853. }
  13854. have--
  13855. v73 = next
  13856. next++
  13857. hold += uint64(*(*uint8)(unsafe.Pointer(v73))) << bits
  13858. bits += uint32(8)
  13859. }
  13860. hold >>= uint64(here.Fbits)
  13861. bits -= uint32(here.Fbits)
  13862. len1 = uint32(0)
  13863. copy1 = uint32(3) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3)-libc.Uint32FromInt32(1))
  13864. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(3))
  13865. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(3))
  13866. } else {
  13867. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(7)) {
  13868. if have == uint32(0) {
  13869. goto inf_leave
  13870. }
  13871. have--
  13872. v74 = next
  13873. next++
  13874. hold += uint64(*(*uint8)(unsafe.Pointer(v74))) << bits
  13875. bits += uint32(8)
  13876. }
  13877. hold >>= uint64(here.Fbits)
  13878. bits -= uint32(here.Fbits)
  13879. len1 = uint32(0)
  13880. copy1 = uint32(11) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(7)-libc.Uint32FromInt32(1))
  13881. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(7))
  13882. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(7))
  13883. }
  13884. }
  13885. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave+copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  13886. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 115
  13887. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13888. break
  13889. }
  13890. for {
  13891. v75 = copy1
  13892. copy1--
  13893. if !(v75 != 0) {
  13894. break
  13895. }
  13896. v77 = state + 140
  13897. v76 = *(*uint32)(unsafe.Pointer(v77))
  13898. *(*uint32)(unsafe.Pointer(v77))++
  13899. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v76)*2)) = uint16(len1)
  13900. }
  13901. }
  13902. }
  13903. /* handle error breaks in while */
  13904. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_BAD) {
  13905. goto _35
  13906. }
  13907. /* check for end-of-block code (better have one) */
  13908. if libc.Int32FromUint16(*(*uint16)(unsafe.Pointer(state + 152 + 256*2))) == 0 {
  13909. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 141
  13910. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13911. goto _35
  13912. }
  13913. /* build code tables -- note: do not change the lenbits or distbits
  13914. values here (9 and 6) without reading the comments in inftrees.h
  13915. concerning the ENOUGH constants, which depend on those values */
  13916. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  13917. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  13918. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  13919. ret = Xinflate_table(tls, int32(_LENS), state+152, (*Tinflate_state)(unsafe.Pointer(state)).Fnlen, state+144, state+120, state+792)
  13920. if ret != 0 {
  13921. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 178
  13922. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13923. goto _35
  13924. }
  13925. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  13926. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(6)
  13927. ret = Xinflate_table(tls, int32(_DISTS), state+152+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fnlen)*2, (*Tinflate_state)(unsafe.Pointer(state)).Fndist, state+144, state+124, state+792)
  13928. if ret != 0 {
  13929. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 206
  13930. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13931. goto _35
  13932. }
  13933. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN_)
  13934. if flush == int32(m_Z_TREES) {
  13935. goto inf_leave
  13936. }
  13937. /* fallthrough */
  13938. _21:
  13939. ;
  13940. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  13941. /* fallthrough */
  13942. _22:
  13943. ;
  13944. if have >= uint32(6) && left >= uint32(258) {
  13945. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  13946. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  13947. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  13948. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  13949. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  13950. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  13951. Xinflate_fast(tls, strm, out)
  13952. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  13953. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  13954. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  13955. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  13956. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  13957. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  13958. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  13959. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  13960. }
  13961. goto _35
  13962. }
  13963. (*Tinflate_state)(unsafe.Pointer(state)).Fback = 0
  13964. for {
  13965. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(hold)&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  13966. if uint32(here.Fbits) <= bits {
  13967. break
  13968. }
  13969. if have == uint32(0) {
  13970. goto inf_leave
  13971. }
  13972. have--
  13973. v79 = next
  13974. next++
  13975. hold += uint64(*(*uint8)(unsafe.Pointer(v79))) << bits
  13976. bits += uint32(8)
  13977. goto _78
  13978. _78:
  13979. }
  13980. if here.Fop != 0 && libc.Int32FromUint8(here.Fop)&int32(0xf0) == 0 {
  13981. last = here
  13982. for {
  13983. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(last.Fval)+uint32(hold)&(uint32(1)<<(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(last.Fop))-uint32(1))>>last.Fbits)*4))
  13984. if libc.Uint32FromInt32(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(here.Fbits)) <= bits {
  13985. break
  13986. }
  13987. if have == uint32(0) {
  13988. goto inf_leave
  13989. }
  13990. have--
  13991. v81 = next
  13992. next++
  13993. hold += uint64(*(*uint8)(unsafe.Pointer(v81))) << bits
  13994. bits += uint32(8)
  13995. goto _80
  13996. _80:
  13997. }
  13998. hold >>= uint64(last.Fbits)
  13999. bits -= uint32(last.Fbits)
  14000. *(*int32)(unsafe.Pointer(state + 7148)) += libc.Int32FromUint8(last.Fbits)
  14001. }
  14002. hold >>= uint64(here.Fbits)
  14003. bits -= uint32(here.Fbits)
  14004. *(*int32)(unsafe.Pointer(state + 7148)) += libc.Int32FromUint8(here.Fbits)
  14005. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(here.Fval)
  14006. if libc.Int32FromUint8(here.Fop) == 0 {
  14007. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LIT)
  14008. goto _35
  14009. }
  14010. if libc.Int32FromUint8(here.Fop)&int32(32) != 0 {
  14011. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  14012. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  14013. goto _35
  14014. }
  14015. if libc.Int32FromUint8(here.Fop)&int32(64) != 0 {
  14016. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 228
  14017. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14018. goto _35
  14019. }
  14020. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  14021. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENEXT)
  14022. /* fallthrough */
  14023. _23:
  14024. ;
  14025. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != 0 {
  14026. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  14027. if have == uint32(0) {
  14028. goto inf_leave
  14029. }
  14030. have--
  14031. v82 = next
  14032. next++
  14033. hold += uint64(*(*uint8)(unsafe.Pointer(v82))) << bits
  14034. bits += uint32(8)
  14035. }
  14036. *(*uint32)(unsafe.Pointer(state + 92)) += uint32(hold) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  14037. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  14038. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  14039. p83 = state + 7148
  14040. *(*int32)(unsafe.Pointer(p83)) = int32(uint32(*(*int32)(unsafe.Pointer(p83))) + (*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  14041. }
  14042. (*Tinflate_state)(unsafe.Pointer(state)).Fwas = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14043. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DIST)
  14044. /* fallthrough */
  14045. _24:
  14046. ;
  14047. for {
  14048. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(hold)&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits-libc.Uint32FromInt32(1)))*4))
  14049. if uint32(here.Fbits) <= bits {
  14050. break
  14051. }
  14052. if have == uint32(0) {
  14053. goto inf_leave
  14054. }
  14055. have--
  14056. v85 = next
  14057. next++
  14058. hold += uint64(*(*uint8)(unsafe.Pointer(v85))) << bits
  14059. bits += uint32(8)
  14060. goto _84
  14061. _84:
  14062. }
  14063. if libc.Int32FromUint8(here.Fop)&int32(0xf0) == 0 {
  14064. last = here
  14065. for {
  14066. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(last.Fval)+uint32(hold)&(uint32(1)<<(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(last.Fop))-uint32(1))>>last.Fbits)*4))
  14067. if libc.Uint32FromInt32(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(here.Fbits)) <= bits {
  14068. break
  14069. }
  14070. if have == uint32(0) {
  14071. goto inf_leave
  14072. }
  14073. have--
  14074. v87 = next
  14075. next++
  14076. hold += uint64(*(*uint8)(unsafe.Pointer(v87))) << bits
  14077. bits += uint32(8)
  14078. goto _86
  14079. _86:
  14080. }
  14081. hold >>= uint64(last.Fbits)
  14082. bits -= uint32(last.Fbits)
  14083. *(*int32)(unsafe.Pointer(state + 7148)) += libc.Int32FromUint8(last.Fbits)
  14084. }
  14085. hold >>= uint64(here.Fbits)
  14086. bits -= uint32(here.Fbits)
  14087. *(*int32)(unsafe.Pointer(state + 7148)) += libc.Int32FromUint8(here.Fbits)
  14088. if libc.Int32FromUint8(here.Fop)&int32(64) != 0 {
  14089. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 256
  14090. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14091. goto _35
  14092. }
  14093. (*Tinflate_state)(unsafe.Pointer(state)).Foffset = uint32(here.Fval)
  14094. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  14095. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DISTEXT)
  14096. /* fallthrough */
  14097. _25:
  14098. ;
  14099. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != 0 {
  14100. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  14101. if have == uint32(0) {
  14102. goto inf_leave
  14103. }
  14104. have--
  14105. v88 = next
  14106. next++
  14107. hold += uint64(*(*uint8)(unsafe.Pointer(v88))) << bits
  14108. bits += uint32(8)
  14109. }
  14110. *(*uint32)(unsafe.Pointer(state + 96)) += uint32(hold) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  14111. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  14112. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  14113. p89 = state + 7148
  14114. *(*int32)(unsafe.Pointer(p89)) = int32(uint32(*(*int32)(unsafe.Pointer(p89))) + (*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  14115. }
  14116. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MATCH)
  14117. /* fallthrough */
  14118. _26:
  14119. ;
  14120. if left == uint32(0) {
  14121. goto inf_leave
  14122. }
  14123. copy1 = out - left
  14124. if (*Tinflate_state)(unsafe.Pointer(state)).Foffset > copy1 { /* copy from window */
  14125. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Foffset - copy1
  14126. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwhave {
  14127. if (*Tinflate_state)(unsafe.Pointer(state)).Fsane != 0 {
  14128. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 278
  14129. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14130. goto _35
  14131. }
  14132. }
  14133. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwnext {
  14134. copy1 -= (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  14135. from = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwsize-copy1)
  14136. } else {
  14137. from = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext-copy1)
  14138. }
  14139. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Flength {
  14140. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14141. }
  14142. } else { /* copy from output */
  14143. from = put - uintptr((*Tinflate_state)(unsafe.Pointer(state)).Foffset)
  14144. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14145. }
  14146. if copy1 > left {
  14147. copy1 = left
  14148. }
  14149. left -= copy1
  14150. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  14151. for {
  14152. v92 = put
  14153. put++
  14154. v93 = from
  14155. from++
  14156. *(*uint8)(unsafe.Pointer(v92)) = *(*uint8)(unsafe.Pointer(v93))
  14157. goto _91
  14158. _91:
  14159. ;
  14160. copy1--
  14161. v90 = copy1
  14162. if !(v90 != 0) {
  14163. break
  14164. }
  14165. }
  14166. if (*Tinflate_state)(unsafe.Pointer(state)).Flength == uint32(0) {
  14167. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  14168. }
  14169. goto _35
  14170. _27:
  14171. ;
  14172. if left == uint32(0) {
  14173. goto inf_leave
  14174. }
  14175. v94 = put
  14176. put++
  14177. *(*uint8)(unsafe.Pointer(v94)) = uint8((*Tinflate_state)(unsafe.Pointer(state)).Flength)
  14178. left--
  14179. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  14180. goto _35
  14181. _28:
  14182. ;
  14183. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 {
  14184. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  14185. if have == uint32(0) {
  14186. goto inf_leave
  14187. }
  14188. have--
  14189. v95 = next
  14190. next++
  14191. hold += uint64(*(*uint8)(unsafe.Pointer(v95))) << bits
  14192. bits += uint32(8)
  14193. }
  14194. out -= left
  14195. *(*TuLong)(unsafe.Pointer(strm + 40)) += uint64(out)
  14196. *(*uint64)(unsafe.Pointer(state + 40)) += uint64(out)
  14197. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && out != 0 {
  14198. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  14199. v97 = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, put-uintptr(out), out)
  14200. } else {
  14201. v97 = Xadler32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, put-uintptr(out), out)
  14202. }
  14203. v96 = v97
  14204. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v96
  14205. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v96
  14206. }
  14207. out = left
  14208. if v99 = (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0; v99 {
  14209. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  14210. v98 = hold
  14211. } else {
  14212. v98 = hold>>int32(24)&uint64(0xff) + hold>>int32(8)&uint64(0xff00) + hold&uint64(0xff00)<<int32(8) + hold&uint64(0xff)<<int32(24)
  14213. }
  14214. }
  14215. if v99 && v98 != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck {
  14216. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 423
  14217. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14218. goto _35
  14219. }
  14220. hold = uint64(0)
  14221. bits = uint32(0)
  14222. }
  14223. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENGTH)
  14224. /* fallthrough */
  14225. _29:
  14226. ;
  14227. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  14228. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  14229. if have == uint32(0) {
  14230. goto inf_leave
  14231. }
  14232. have--
  14233. v100 = next
  14234. next++
  14235. hold += uint64(*(*uint8)(unsafe.Pointer(v100))) << bits
  14236. bits += uint32(8)
  14237. }
  14238. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && hold != (*Tinflate_state)(unsafe.Pointer(state)).Ftotal&uint64(0xffffffff) {
  14239. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 444
  14240. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14241. goto _35
  14242. }
  14243. hold = uint64(0)
  14244. bits = uint32(0)
  14245. }
  14246. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DONE)
  14247. /* fallthrough */
  14248. _30:
  14249. ;
  14250. ret = int32(m_Z_STREAM_END)
  14251. goto inf_leave
  14252. _31:
  14253. ;
  14254. ret = -int32(3)
  14255. goto inf_leave
  14256. _32:
  14257. ;
  14258. return -int32(4)
  14259. _34:
  14260. ;
  14261. /* fallthrough */
  14262. _33:
  14263. ;
  14264. return -int32(2)
  14265. _35:
  14266. ;
  14267. goto _1
  14268. _1:
  14269. }
  14270. /*
  14271. Return from inflate(), updating the total counts and the check value.
  14272. If there was no progress during the inflate() call, return a buffer
  14273. error. Call updatewindow() to create and/or update the window state.
  14274. Note: a memory error from inflate() is non-recoverable.
  14275. */
  14276. goto inf_leave
  14277. inf_leave:
  14278. ;
  14279. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  14280. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  14281. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  14282. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  14283. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  14284. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  14285. 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)) {
  14286. if _updatewindow(tls, strm, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out, out-(*Tz_stream)(unsafe.Pointer(strm)).Favail_out) != 0 {
  14287. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MEM)
  14288. return -int32(4)
  14289. }
  14290. }
  14291. in -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  14292. out -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  14293. *(*TuLong)(unsafe.Pointer(strm + 16)) += uint64(in)
  14294. *(*TuLong)(unsafe.Pointer(strm + 40)) += uint64(out)
  14295. *(*uint64)(unsafe.Pointer(state + 40)) += uint64(out)
  14296. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && out != 0 {
  14297. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  14298. v102 = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out-uintptr(out), out)
  14299. } else {
  14300. v102 = Xadler32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out-uintptr(out), out)
  14301. }
  14302. v101 = v102
  14303. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v101
  14304. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v101
  14305. }
  14306. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  14307. v103 = int32(64)
  14308. } else {
  14309. v103 = 0
  14310. }
  14311. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  14312. v104 = int32(128)
  14313. } else {
  14314. v104 = 0
  14315. }
  14316. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_LEN_) || (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_COPY_) {
  14317. v105 = int32(256)
  14318. } else {
  14319. v105 = 0
  14320. }
  14321. (*Tz_stream)(unsafe.Pointer(strm)).Fdata_type = libc.Int32FromUint32((*Tinflate_state)(unsafe.Pointer(state)).Fbits) + v103 + v104 + v105
  14322. if (in == uint32(0) && out == uint32(0) || flush == int32(m_Z_FINISH)) && ret == m_Z_OK {
  14323. ret = -int32(5)
  14324. }
  14325. return ret
  14326. }
  14327. var _order1 = [19]uint16{
  14328. 0: uint16(16),
  14329. 1: uint16(17),
  14330. 2: uint16(18),
  14331. 4: uint16(8),
  14332. 5: uint16(7),
  14333. 6: uint16(9),
  14334. 7: uint16(6),
  14335. 8: uint16(10),
  14336. 9: uint16(5),
  14337. 10: uint16(11),
  14338. 11: uint16(4),
  14339. 12: uint16(12),
  14340. 13: uint16(3),
  14341. 14: uint16(13),
  14342. 15: uint16(2),
  14343. 16: uint16(14),
  14344. 17: uint16(1),
  14345. 18: uint16(15),
  14346. }
  14347. func XinflateEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  14348. var state uintptr
  14349. _ = state
  14350. if _inflateStateCheck(tls, strm) != 0 {
  14351. return -int32(2)
  14352. }
  14353. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14354. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) {
  14355. (*(*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)
  14356. }
  14357. (*(*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)
  14358. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  14359. return m_Z_OK
  14360. }
  14361. func XinflateGetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength uintptr) (r int32) {
  14362. var state uintptr
  14363. _ = state
  14364. /* check state */
  14365. if _inflateStateCheck(tls, strm) != 0 {
  14366. return -int32(2)
  14367. }
  14368. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14369. /* copy dictionary */
  14370. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave != 0 && dictionary != uintptr(m_Z_NULL) {
  14371. libc.Xmemcpy(tls, dictionary, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), uint64((*Tinflate_state)(unsafe.Pointer(state)).Fwhave-(*Tinflate_state)(unsafe.Pointer(state)).Fwnext))
  14372. libc.Xmemcpy(tls, dictionary+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwhave)-uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, uint64((*Tinflate_state)(unsafe.Pointer(state)).Fwnext))
  14373. }
  14374. if dictLength != uintptr(m_Z_NULL) {
  14375. *(*TuInt)(unsafe.Pointer(dictLength)) = (*Tinflate_state)(unsafe.Pointer(state)).Fwhave
  14376. }
  14377. return m_Z_OK
  14378. }
  14379. func XinflateSetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength TuInt) (r int32) {
  14380. var dictid uint64
  14381. var ret int32
  14382. var state uintptr
  14383. _, _, _ = dictid, ret, state
  14384. /* check state */
  14385. if _inflateStateCheck(tls, strm) != 0 {
  14386. return -int32(2)
  14387. }
  14388. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14389. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fmode != int32(_DICT) {
  14390. return -int32(2)
  14391. }
  14392. /* check for correct dictionary identifier */
  14393. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_DICT) {
  14394. dictid = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  14395. dictid = Xadler32(tls, dictid, dictionary, dictLength)
  14396. if dictid != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck {
  14397. return -int32(3)
  14398. }
  14399. }
  14400. /* copy dictionary to window using updatewindow(), which will amend the
  14401. existing dictionary if appropriate */
  14402. ret = _updatewindow(tls, strm, dictionary+uintptr(dictLength), dictLength)
  14403. if ret != 0 {
  14404. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MEM)
  14405. return -int32(4)
  14406. }
  14407. (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict = int32(1)
  14408. return m_Z_OK
  14409. }
  14410. func XinflateGetHeader(tls *libc.TLS, strm Tz_streamp, head Tgz_headerp) (r int32) {
  14411. var state uintptr
  14412. _ = state
  14413. /* check state */
  14414. if _inflateStateCheck(tls, strm) != 0 {
  14415. return -int32(2)
  14416. }
  14417. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14418. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(2) == 0 {
  14419. return -int32(2)
  14420. }
  14421. /* save header structure */
  14422. (*Tinflate_state)(unsafe.Pointer(state)).Fhead = head
  14423. (*Tgz_header)(unsafe.Pointer(head)).Fdone = 0
  14424. return m_Z_OK
  14425. }
  14426. // C documentation
  14427. //
  14428. // /*
  14429. // Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff. Return when found
  14430. // or when out of input. When called, *have is the number of pattern bytes
  14431. // found in order so far, in 0..3. On return *have is updated to the new
  14432. // state. If on return *have equals four, then the pattern was found and the
  14433. // return value is how many bytes were read including the last byte of the
  14434. // pattern. If *have is less than four, then the pattern has not been found
  14435. // yet and the return value is len. In the latter case, syncsearch() can be
  14436. // called again with more data and the *have state. *have is initialized to
  14437. // zero for the first call.
  14438. // */
  14439. func _syncsearch(tls *libc.TLS, have uintptr, buf uintptr, len1 uint32) (r uint32) {
  14440. var got, next uint32
  14441. var v1 int32
  14442. _, _, _ = got, next, v1
  14443. got = *(*uint32)(unsafe.Pointer(have))
  14444. next = uint32(0)
  14445. for next < len1 && got < uint32(4) {
  14446. if got < uint32(2) {
  14447. v1 = 0
  14448. } else {
  14449. v1 = int32(0xff)
  14450. }
  14451. if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(buf + uintptr(next)))) == v1 {
  14452. got++
  14453. } else {
  14454. if *(*uint8)(unsafe.Pointer(buf + uintptr(next))) != 0 {
  14455. got = uint32(0)
  14456. } else {
  14457. got = uint32(4) - got
  14458. }
  14459. }
  14460. next++
  14461. }
  14462. *(*uint32)(unsafe.Pointer(have)) = got
  14463. return next
  14464. }
  14465. func XinflateSync(tls *libc.TLS, strm Tz_streamp) (r int32) {
  14466. bp := tls.Alloc(16)
  14467. defer tls.Free(16)
  14468. var flags int32
  14469. var in, out uint64
  14470. var len1, v1 uint32
  14471. var state uintptr
  14472. var _ /* buf at bp+0 */ [4]uint8
  14473. _, _, _, _, _, _ = flags, in, len1, out, state, v1
  14474. /* check parameters */
  14475. if _inflateStateCheck(tls, strm) != 0 {
  14476. return -int32(2)
  14477. }
  14478. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14479. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) && (*Tinflate_state)(unsafe.Pointer(state)).Fbits < uint32(8) {
  14480. return -int32(5)
  14481. }
  14482. /* if first time, start search in bit buffer */
  14483. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode != int32(_SYNC) {
  14484. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_SYNC)
  14485. *(*uint64)(unsafe.Pointer(state + 80)) >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fbits & uint32(7))
  14486. *(*uint32)(unsafe.Pointer(state + 88)) -= (*Tinflate_state)(unsafe.Pointer(state)).Fbits & uint32(7)
  14487. len1 = uint32(0)
  14488. for (*Tinflate_state)(unsafe.Pointer(state)).Fbits >= uint32(8) {
  14489. v1 = len1
  14490. len1++
  14491. (*(*[4]uint8)(unsafe.Pointer(bp)))[v1] = uint8((*Tinflate_state)(unsafe.Pointer(state)).Fhold)
  14492. *(*uint64)(unsafe.Pointer(state + 80)) >>= uint64(8)
  14493. *(*uint32)(unsafe.Pointer(state + 88)) -= uint32(8)
  14494. }
  14495. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  14496. _syncsearch(tls, state+140, bp, len1)
  14497. }
  14498. /* search available input */
  14499. len1 = _syncsearch(tls, state+140, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, (*Tz_stream)(unsafe.Pointer(strm)).Favail_in)
  14500. *(*TuInt)(unsafe.Pointer(strm + 8)) -= len1
  14501. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(len1)
  14502. *(*TuLong)(unsafe.Pointer(strm + 16)) += uint64(len1)
  14503. /* return no joy or set up to restart inflate() on a new block */
  14504. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave != uint32(4) {
  14505. return -int32(3)
  14506. }
  14507. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags == -int32(1) {
  14508. (*Tinflate_state)(unsafe.Pointer(state)).Fwrap = 0
  14509. } else {
  14510. *(*int32)(unsafe.Pointer(state + 16)) &= ^libc.Int32FromInt32(4)
  14511. } /* no point in computing a check value now */
  14512. flags = (*Tinflate_state)(unsafe.Pointer(state)).Fflags
  14513. in = (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in
  14514. out = (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out
  14515. XinflateReset(tls, strm)
  14516. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = in
  14517. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = out
  14518. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = flags
  14519. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  14520. return m_Z_OK
  14521. }
  14522. // C documentation
  14523. //
  14524. // /*
  14525. // Returns true if inflate is currently at the end of a block generated by
  14526. // Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP
  14527. // implementation to provide an additional safety check. PPP uses
  14528. // Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored
  14529. // block. When decompressing, PPP checks that at the end of input packet,
  14530. // inflate is waiting for these length bytes.
  14531. // */
  14532. func XinflateSyncPoint(tls *libc.TLS, strm Tz_streamp) (r int32) {
  14533. var state uintptr
  14534. _ = state
  14535. if _inflateStateCheck(tls, strm) != 0 {
  14536. return -int32(2)
  14537. }
  14538. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14539. return libc.BoolInt32((*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_STORED) && (*Tinflate_state)(unsafe.Pointer(state)).Fbits == uint32(0))
  14540. }
  14541. func XinflateCopy(tls *libc.TLS, dest Tz_streamp, source Tz_streamp) (r int32) {
  14542. var copy1, state, window uintptr
  14543. var wsize uint32
  14544. _, _, _, _ = copy1, state, window, wsize
  14545. /* check input */
  14546. if _inflateStateCheck(tls, source) != 0 || dest == uintptr(m_Z_NULL) {
  14547. return -int32(2)
  14548. }
  14549. state = (*Tz_stream)(unsafe.Pointer(source)).Fstate
  14550. /* allocate space */
  14551. copy1 = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(source)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(source)).Fopaque, libc.Uint32FromInt32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(7160)))
  14552. if copy1 == uintptr(m_Z_NULL) {
  14553. return -int32(4)
  14554. }
  14555. window = uintptr(m_Z_NULL)
  14556. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) {
  14557. window = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(source)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(source)).Fopaque, libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fwbits, uint32(libc.Uint64FromInt64(1)))
  14558. if window == uintptr(m_Z_NULL) {
  14559. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(source)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(source)).Fopaque, copy1)
  14560. return -int32(4)
  14561. }
  14562. }
  14563. /* copy state */
  14564. libc.Xmemcpy(tls, dest, source, uint64(112))
  14565. libc.Xmemcpy(tls, copy1, state, uint64(7160))
  14566. (*Tinflate_state)(unsafe.Pointer(copy1)).Fstrm = dest
  14567. if (*Tinflate_state)(unsafe.Pointer(state)).Flencode >= state+1368 && (*Tinflate_state)(unsafe.Pointer(state)).Flencode <= state+1368+uintptr(libc.Int32FromInt32(m_ENOUGH_LENS)+libc.Int32FromInt32(m_ENOUGH_DISTS))*4-uintptr(1)*4 {
  14568. (*Tinflate_state)(unsafe.Pointer(copy1)).Flencode = copy1 + 1368 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Flencode)-t__predefined_ptrdiff_t(state+1368))/4)*4
  14569. (*Tinflate_state)(unsafe.Pointer(copy1)).Fdistcode = copy1 + 1368 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode)-t__predefined_ptrdiff_t(state+1368))/4)*4
  14570. }
  14571. (*Tinflate_state)(unsafe.Pointer(copy1)).Fnext = copy1 + 1368 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Fnext)-t__predefined_ptrdiff_t(state+1368))/4)*4
  14572. if window != uintptr(m_Z_NULL) {
  14573. wsize = uint32(1) << (*Tinflate_state)(unsafe.Pointer(state)).Fwbits
  14574. libc.Xmemcpy(tls, window, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, uint64(wsize))
  14575. }
  14576. (*Tinflate_state)(unsafe.Pointer(copy1)).Fwindow = window
  14577. (*Tz_stream)(unsafe.Pointer(dest)).Fstate = copy1
  14578. return m_Z_OK
  14579. }
  14580. func XinflateUndermine(tls *libc.TLS, strm Tz_streamp, subvert int32) (r int32) {
  14581. var state uintptr
  14582. _ = state
  14583. if _inflateStateCheck(tls, strm) != 0 {
  14584. return -int32(2)
  14585. }
  14586. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14587. _ = subvert
  14588. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  14589. return -int32(3)
  14590. }
  14591. func XinflateValidate(tls *libc.TLS, strm Tz_streamp, check int32) (r int32) {
  14592. var state uintptr
  14593. _ = state
  14594. if _inflateStateCheck(tls, strm) != 0 {
  14595. return -int32(2)
  14596. }
  14597. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14598. if check != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 {
  14599. *(*int32)(unsafe.Pointer(state + 16)) |= int32(4)
  14600. } else {
  14601. *(*int32)(unsafe.Pointer(state + 16)) &= ^libc.Int32FromInt32(4)
  14602. }
  14603. return m_Z_OK
  14604. }
  14605. func XinflateMark(tls *libc.TLS, strm Tz_streamp) (r int64) {
  14606. var state uintptr
  14607. var v1, v2 uint32
  14608. _, _, _ = state, v1, v2
  14609. if _inflateStateCheck(tls, strm) != 0 {
  14610. return -(libc.Int64FromInt64(1) << libc.Int32FromInt32(16))
  14611. }
  14612. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14613. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_COPY) {
  14614. v1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14615. } else {
  14616. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_MATCH) {
  14617. v2 = (*Tinflate_state)(unsafe.Pointer(state)).Fwas - (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14618. } else {
  14619. v2 = uint32(0)
  14620. }
  14621. v1 = v2
  14622. }
  14623. return libc.Int64FromUint64(libc.Uint64FromInt64(int64((*Tinflate_state)(unsafe.Pointer(state)).Fback))<<libc.Int32FromInt32(16)) + libc.Int64FromUint32(v1)
  14624. }
  14625. func XinflateCodesUsed(tls *libc.TLS, strm Tz_streamp) (r uint64) {
  14626. var state uintptr
  14627. _ = state
  14628. if _inflateStateCheck(tls, strm) != 0 {
  14629. return libc.Uint64FromInt32(-libc.Int32FromInt32(1))
  14630. }
  14631. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14632. return libc.Uint64FromInt64((int64((*Tinflate_state)(unsafe.Pointer(state)).Fnext) - t__predefined_ptrdiff_t(state+1368)) / 4)
  14633. }
  14634. const m_MAXBITS = 15
  14635. /*
  14636. If you use the zlib library in a product, an acknowledgment is welcome
  14637. in the documentation of your product. If for some reason you cannot
  14638. include such an acknowledgment, I would appreciate that you keep this
  14639. copyright string in the executable of your product.
  14640. */
  14641. // C documentation
  14642. //
  14643. // /*
  14644. // Build a set of tables to decode the provided canonical Huffman code.
  14645. // The code lengths are lens[0..codes-1]. The result starts at *table,
  14646. // whose indices are 0..2^bits-1. work is a writable array of at least
  14647. // lens shorts, which is used as a work area. type is the type of code
  14648. // to be generated, CODES, LENS, or DISTS. On return, zero is success,
  14649. // -1 is an invalid code, and +1 means that ENOUGH isn't enough. table
  14650. // on return points to the next available entry's address. bits is the
  14651. // requested root table index bits, and on return it is the actual root
  14652. // table index bits. It will differ if the request is greater than the
  14653. // longest code or if it is less than the shortest code.
  14654. // */
  14655. func Xinflate_table(tls *libc.TLS, type1 Tcodetype, lens uintptr, codes uint32, table uintptr, bits uintptr, work uintptr) (r int32) {
  14656. bp := tls.Alloc(64)
  14657. defer tls.Free(64)
  14658. var base, extra, next, v13, v14, v17, v4, v5, v6, v7 uintptr
  14659. var curr, drop, fill, huff, incr, len1, low, mask, match, max, min, root, sym, used uint32
  14660. var here Tcode
  14661. var left int32
  14662. var v12, v16 uint16
  14663. var _ /* count at bp+0 */ [16]uint16
  14664. var _ /* offs at bp+32 */ [16]uint16
  14665. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  14666. /*
  14667. Process a set of code lengths to create a canonical Huffman code. The
  14668. code lengths are lens[0..codes-1]. Each length corresponds to the
  14669. symbols 0..codes-1. The Huffman code is generated by first sorting the
  14670. symbols by length from short to long, and retaining the symbol order
  14671. for codes with equal lengths. Then the code starts with all zero bits
  14672. for the first code of the shortest length, and the codes are integer
  14673. increments for the same length, and zeros are appended as the length
  14674. increases. For the deflate format, these bits are stored backwards
  14675. from their more natural integer increment ordering, and so when the
  14676. decoding tables are built in the large loop below, the integer codes
  14677. are incremented backwards.
  14678. This routine assumes, but does not check, that all of the entries in
  14679. lens[] are in the range 0..MAXBITS. The caller must assure this.
  14680. 1..MAXBITS is interpreted as that code length. zero means that that
  14681. symbol does not occur in this code.
  14682. The codes are sorted by computing a count of codes for each length,
  14683. creating from that a table of starting indices for each length in the
  14684. sorted table, and then entering the symbols in order in the sorted
  14685. table. The sorted table is work[], with that space being provided by
  14686. the caller.
  14687. The length counts are used for other purposes as well, i.e. finding
  14688. the minimum and maximum length codes, determining if there are any
  14689. codes at all, checking for a valid set of lengths, and looking ahead
  14690. at length counts to determine sub-table sizes when building the
  14691. decoding tables.
  14692. */
  14693. /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */
  14694. len1 = uint32(0)
  14695. for {
  14696. if !(len1 <= uint32(m_MAXBITS)) {
  14697. break
  14698. }
  14699. (*(*[16]uint16)(unsafe.Pointer(bp)))[len1] = uint16(0)
  14700. goto _1
  14701. _1:
  14702. ;
  14703. len1++
  14704. }
  14705. sym = uint32(0)
  14706. for {
  14707. if !(sym < codes) {
  14708. break
  14709. }
  14710. (*(*[16]uint16)(unsafe.Pointer(bp)))[*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2))]++
  14711. goto _2
  14712. _2:
  14713. ;
  14714. sym++
  14715. }
  14716. /* bound code lengths, force root to be within code lengths */
  14717. root = *(*uint32)(unsafe.Pointer(bits))
  14718. max = uint32(m_MAXBITS)
  14719. for {
  14720. if !(max >= uint32(1)) {
  14721. break
  14722. }
  14723. if libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp)))[max]) != 0 {
  14724. break
  14725. }
  14726. goto _3
  14727. _3:
  14728. ;
  14729. max--
  14730. }
  14731. if root > max {
  14732. root = max
  14733. }
  14734. if max == uint32(0) { /* no symbols to code at all */
  14735. here.Fop = libc.Uint8FromInt32(64) /* invalid code marker */
  14736. here.Fbits = libc.Uint8FromInt32(1)
  14737. here.Fval = libc.Uint16FromInt32(0)
  14738. v5 = table
  14739. v4 = *(*uintptr)(unsafe.Pointer(v5))
  14740. *(*uintptr)(unsafe.Pointer(v5)) += 4
  14741. *(*Tcode)(unsafe.Pointer(v4)) = here /* make a table to force an error */
  14742. v7 = table
  14743. v6 = *(*uintptr)(unsafe.Pointer(v7))
  14744. *(*uintptr)(unsafe.Pointer(v7)) += 4
  14745. *(*Tcode)(unsafe.Pointer(v6)) = here
  14746. *(*uint32)(unsafe.Pointer(bits)) = uint32(1)
  14747. return 0 /* no symbols, but wait for decoding to report error */
  14748. }
  14749. min = uint32(1)
  14750. for {
  14751. if !(min < max) {
  14752. break
  14753. }
  14754. if libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp)))[min]) != 0 {
  14755. break
  14756. }
  14757. goto _8
  14758. _8:
  14759. ;
  14760. min++
  14761. }
  14762. if root < min {
  14763. root = min
  14764. }
  14765. /* check for an over-subscribed or incomplete set of lengths */
  14766. left = int32(1)
  14767. len1 = uint32(1)
  14768. for {
  14769. if !(len1 <= uint32(m_MAXBITS)) {
  14770. break
  14771. }
  14772. left <<= int32(1)
  14773. left -= libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp)))[len1])
  14774. if left < 0 {
  14775. return -int32(1)
  14776. } /* over-subscribed */
  14777. goto _9
  14778. _9:
  14779. ;
  14780. len1++
  14781. }
  14782. if left > 0 && (type1 == int32(_CODES) || max != uint32(1)) {
  14783. return -int32(1)
  14784. } /* incomplete set */
  14785. /* generate offsets into symbol table for each length for sorting */
  14786. (*(*[16]uint16)(unsafe.Pointer(bp + 32)))[int32(1)] = uint16(0)
  14787. len1 = uint32(1)
  14788. for {
  14789. if !(len1 < uint32(m_MAXBITS)) {
  14790. break
  14791. }
  14792. (*(*[16]uint16)(unsafe.Pointer(bp + 32)))[len1+uint32(1)] = libc.Uint16FromInt32(libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp + 32)))[len1]) + libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp)))[len1]))
  14793. goto _10
  14794. _10:
  14795. ;
  14796. len1++
  14797. }
  14798. /* sort symbols by length, by symbol order within each length */
  14799. sym = uint32(0)
  14800. for {
  14801. if !(sym < codes) {
  14802. break
  14803. }
  14804. if libc.Int32FromUint16(*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2))) != 0 {
  14805. v13 = bp + 32 + uintptr(*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2)))*2
  14806. v12 = *(*uint16)(unsafe.Pointer(v13))
  14807. *(*uint16)(unsafe.Pointer(v13))++
  14808. *(*uint16)(unsafe.Pointer(work + uintptr(v12)*2)) = uint16(sym)
  14809. }
  14810. goto _11
  14811. _11:
  14812. ;
  14813. sym++
  14814. }
  14815. /*
  14816. Create and fill in decoding tables. In this loop, the table being
  14817. filled is at next and has curr index bits. The code being used is huff
  14818. with length len. That code is converted to an index by dropping drop
  14819. bits off of the bottom. For codes where len is less than drop + curr,
  14820. those top drop + curr - len bits are incremented through all values to
  14821. fill the table with replicated entries.
  14822. root is the number of index bits for the root table. When len exceeds
  14823. root, sub-tables are created pointed to by the root entry with an index
  14824. of the low root bits of huff. This is saved in low to check for when a
  14825. new sub-table should be started. drop is zero when the root table is
  14826. being filled, and drop is root when sub-tables are being filled.
  14827. When a new sub-table is needed, it is necessary to look ahead in the
  14828. code lengths to determine what size sub-table is needed. The length
  14829. counts are used for this, and so count[] is decremented as codes are
  14830. entered in the tables.
  14831. used keeps track of how many table entries have been allocated from the
  14832. provided *table space. It is checked for LENS and DIST tables against
  14833. the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in
  14834. the initial root table size constants. See the comments in inftrees.h
  14835. for more information.
  14836. sym increments through all symbols, and the loop terminates when
  14837. all codes of length max, i.e. all codes, have been processed. This
  14838. routine permits incomplete codes, so another loop after this one fills
  14839. in the rest of the decoding tables with invalid code markers.
  14840. */
  14841. /* set up for code type */
  14842. switch type1 {
  14843. case int32(_CODES):
  14844. v14 = work
  14845. extra = v14
  14846. base = v14 /* dummy value--not used */
  14847. match = uint32(20)
  14848. case int32(_LENS):
  14849. base = uintptr(unsafe.Pointer(&_lbase))
  14850. extra = uintptr(unsafe.Pointer(&_lext))
  14851. match = uint32(257)
  14852. default: /* DISTS */
  14853. base = uintptr(unsafe.Pointer(&_dbase))
  14854. extra = uintptr(unsafe.Pointer(&_dext))
  14855. match = uint32(0)
  14856. }
  14857. /* initialize state for loop */
  14858. huff = uint32(0) /* starting code */
  14859. sym = uint32(0) /* starting code symbol */
  14860. len1 = min /* starting code length */
  14861. next = *(*uintptr)(unsafe.Pointer(table)) /* current table to fill in */
  14862. curr = root /* current table index bits */
  14863. drop = uint32(0) /* current bits to drop from code for index */
  14864. low = libc.Uint32FromInt32(-libc.Int32FromInt32(1)) /* trigger new sub-table when len > root */
  14865. used = uint32(1) << root /* use root table entries */
  14866. mask = used - uint32(1) /* mask for comparing low */
  14867. /* check available table space */
  14868. if type1 == int32(_LENS) && used > uint32(m_ENOUGH_LENS) || type1 == int32(_DISTS) && used > uint32(m_ENOUGH_DISTS) {
  14869. return int32(1)
  14870. }
  14871. /* process all codes and make table entries */
  14872. for {
  14873. /* create table entry */
  14874. here.Fbits = uint8(len1 - drop)
  14875. if uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))+uint32(1) < match {
  14876. here.Fop = libc.Uint8FromInt32(0)
  14877. here.Fval = *(*uint16)(unsafe.Pointer(work + uintptr(sym)*2))
  14878. } else {
  14879. if uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2))) >= match {
  14880. here.Fop = uint8(*(*uint16)(unsafe.Pointer(extra + uintptr(uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))-match)*2)))
  14881. here.Fval = *(*uint16)(unsafe.Pointer(base + uintptr(uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))-match)*2))
  14882. } else {
  14883. here.Fop = libc.Uint8FromInt32(libc.Int32FromInt32(32) + libc.Int32FromInt32(64)) /* end of block */
  14884. here.Fval = uint16(0)
  14885. }
  14886. }
  14887. /* replicate for those indices with low len bits equal to huff */
  14888. incr = uint32(1) << (len1 - drop)
  14889. fill = uint32(1) << curr
  14890. min = fill /* save offset to next table */
  14891. for cond := true; cond; cond = fill != uint32(0) {
  14892. fill -= incr
  14893. *(*Tcode)(unsafe.Pointer(next + uintptr(huff>>drop+fill)*4)) = here
  14894. }
  14895. /* backwards increment the len-bit code huff */
  14896. incr = uint32(1) << (len1 - uint32(1))
  14897. for huff&incr != 0 {
  14898. incr >>= uint32(1)
  14899. }
  14900. if incr != uint32(0) {
  14901. huff &= incr - uint32(1)
  14902. huff += incr
  14903. } else {
  14904. huff = uint32(0)
  14905. }
  14906. /* go to next symbol, update count, len */
  14907. sym++
  14908. v17 = bp + uintptr(len1)*2
  14909. *(*uint16)(unsafe.Pointer(v17))--
  14910. v16 = *(*uint16)(unsafe.Pointer(v17))
  14911. if libc.Int32FromUint16(v16) == 0 {
  14912. if len1 == max {
  14913. break
  14914. }
  14915. len1 = uint32(*(*uint16)(unsafe.Pointer(lens + uintptr(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))*2)))
  14916. }
  14917. /* create new sub-table if needed */
  14918. if len1 > root && huff&mask != low {
  14919. /* if first time, transition to sub-tables */
  14920. if drop == uint32(0) {
  14921. drop = root
  14922. }
  14923. /* increment past last table */
  14924. next += uintptr(min) * 4 /* here min is 1 << curr */
  14925. /* determine length of next table */
  14926. curr = len1 - drop
  14927. left = libc.Int32FromInt32(1) << curr
  14928. for curr+drop < max {
  14929. left -= libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp)))[curr+drop])
  14930. if left <= 0 {
  14931. break
  14932. }
  14933. curr++
  14934. left <<= int32(1)
  14935. }
  14936. /* check for enough space */
  14937. used += uint32(1) << curr
  14938. if type1 == int32(_LENS) && used > uint32(m_ENOUGH_LENS) || type1 == int32(_DISTS) && used > uint32(m_ENOUGH_DISTS) {
  14939. return int32(1)
  14940. }
  14941. /* point entry in root table to sub-table */
  14942. low = huff & mask
  14943. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fop = uint8(curr)
  14944. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fbits = uint8(root)
  14945. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fval = libc.Uint16FromInt64((int64(next) - int64(*(*uintptr)(unsafe.Pointer(table)))) / 4)
  14946. }
  14947. goto _15
  14948. _15:
  14949. }
  14950. /* fill in remaining table entry if code is incomplete (guaranteed to have
  14951. at most one remaining entry, since if the code is incomplete, the
  14952. maximum code length that was allowed to get this far is one bit) */
  14953. if huff != uint32(0) {
  14954. here.Fop = libc.Uint8FromInt32(64) /* invalid code marker */
  14955. here.Fbits = uint8(len1 - drop)
  14956. here.Fval = libc.Uint16FromInt32(0)
  14957. *(*Tcode)(unsafe.Pointer(next + uintptr(huff)*4)) = here
  14958. }
  14959. /* set return parameters */
  14960. *(*uintptr)(unsafe.Pointer(table)) += uintptr(used) * 4
  14961. *(*uint32)(unsafe.Pointer(bits)) = root
  14962. return 0
  14963. }
  14964. var _lbase = [31]uint16{
  14965. 0: uint16(3),
  14966. 1: uint16(4),
  14967. 2: uint16(5),
  14968. 3: uint16(6),
  14969. 4: uint16(7),
  14970. 5: uint16(8),
  14971. 6: uint16(9),
  14972. 7: uint16(10),
  14973. 8: uint16(11),
  14974. 9: uint16(13),
  14975. 10: uint16(15),
  14976. 11: uint16(17),
  14977. 12: uint16(19),
  14978. 13: uint16(23),
  14979. 14: uint16(27),
  14980. 15: uint16(31),
  14981. 16: uint16(35),
  14982. 17: uint16(43),
  14983. 18: uint16(51),
  14984. 19: uint16(59),
  14985. 20: uint16(67),
  14986. 21: uint16(83),
  14987. 22: uint16(99),
  14988. 23: uint16(115),
  14989. 24: uint16(131),
  14990. 25: uint16(163),
  14991. 26: uint16(195),
  14992. 27: uint16(227),
  14993. 28: uint16(258),
  14994. }
  14995. var _lext = [31]uint16{
  14996. 0: uint16(16),
  14997. 1: uint16(16),
  14998. 2: uint16(16),
  14999. 3: uint16(16),
  15000. 4: uint16(16),
  15001. 5: uint16(16),
  15002. 6: uint16(16),
  15003. 7: uint16(16),
  15004. 8: uint16(17),
  15005. 9: uint16(17),
  15006. 10: uint16(17),
  15007. 11: uint16(17),
  15008. 12: uint16(18),
  15009. 13: uint16(18),
  15010. 14: uint16(18),
  15011. 15: uint16(18),
  15012. 16: uint16(19),
  15013. 17: uint16(19),
  15014. 18: uint16(19),
  15015. 19: uint16(19),
  15016. 20: uint16(20),
  15017. 21: uint16(20),
  15018. 22: uint16(20),
  15019. 23: uint16(20),
  15020. 24: uint16(21),
  15021. 25: uint16(21),
  15022. 26: uint16(21),
  15023. 27: uint16(21),
  15024. 28: uint16(16),
  15025. 29: uint16(203),
  15026. 30: uint16(77),
  15027. }
  15028. var _dbase = [32]uint16{
  15029. 0: uint16(1),
  15030. 1: uint16(2),
  15031. 2: uint16(3),
  15032. 3: uint16(4),
  15033. 4: uint16(5),
  15034. 5: uint16(7),
  15035. 6: uint16(9),
  15036. 7: uint16(13),
  15037. 8: uint16(17),
  15038. 9: uint16(25),
  15039. 10: uint16(33),
  15040. 11: uint16(49),
  15041. 12: uint16(65),
  15042. 13: uint16(97),
  15043. 14: uint16(129),
  15044. 15: uint16(193),
  15045. 16: uint16(257),
  15046. 17: uint16(385),
  15047. 18: uint16(513),
  15048. 19: uint16(769),
  15049. 20: uint16(1025),
  15050. 21: uint16(1537),
  15051. 22: uint16(2049),
  15052. 23: uint16(3073),
  15053. 24: uint16(4097),
  15054. 25: uint16(6145),
  15055. 26: uint16(8193),
  15056. 27: uint16(12289),
  15057. 28: uint16(16385),
  15058. 29: uint16(24577),
  15059. }
  15060. var _dext = [32]uint16{
  15061. 0: uint16(16),
  15062. 1: uint16(16),
  15063. 2: uint16(16),
  15064. 3: uint16(16),
  15065. 4: uint16(17),
  15066. 5: uint16(17),
  15067. 6: uint16(18),
  15068. 7: uint16(18),
  15069. 8: uint16(19),
  15070. 9: uint16(19),
  15071. 10: uint16(20),
  15072. 11: uint16(20),
  15073. 12: uint16(21),
  15074. 13: uint16(21),
  15075. 14: uint16(22),
  15076. 15: uint16(22),
  15077. 16: uint16(23),
  15078. 17: uint16(23),
  15079. 18: uint16(24),
  15080. 19: uint16(24),
  15081. 20: uint16(25),
  15082. 21: uint16(25),
  15083. 22: uint16(26),
  15084. 23: uint16(26),
  15085. 24: uint16(27),
  15086. 25: uint16(27),
  15087. 26: uint16(28),
  15088. 27: uint16(28),
  15089. 28: uint16(29),
  15090. 29: uint16(29),
  15091. 30: uint16(64),
  15092. 31: uint16(64),
  15093. }
  15094. const m_DIST_CODE_LEN = 512
  15095. const m_END_BLOCK = 256
  15096. const m_MAX_BL_BITS = 7
  15097. const m_REPZ_11_138 = 18
  15098. const m_REPZ_3_10 = 17
  15099. const m_REP_3_6 = 16
  15100. const m_SMALLEST = 1
  15101. const m_TCONST = "const"
  15102. type Tstatic_tree_desc = struct {
  15103. Fstatic_tree uintptr
  15104. Fextra_bits uintptr
  15105. Fextra_base int32
  15106. Felems int32
  15107. Fmax_length int32
  15108. }
  15109. type Tstatic_tree_desc_s = Tstatic_tree_desc
  15110. /* ===========================================================================
  15111. * Constants
  15112. */
  15113. /* Bit length codes must not exceed MAX_BL_BITS bits */
  15114. /* end of block literal code */
  15115. /* repeat previous bit length 3-6 times (2 bits of repeat count) */
  15116. /* repeat a zero length 3-10 times (3 bits of repeat count) */
  15117. /* repeat a zero length 11-138 times (7 bits of repeat count) */
  15118. var _extra_lbits = [29]int32{
  15119. 8: int32(1),
  15120. 9: int32(1),
  15121. 10: int32(1),
  15122. 11: int32(1),
  15123. 12: int32(2),
  15124. 13: int32(2),
  15125. 14: int32(2),
  15126. 15: int32(2),
  15127. 16: int32(3),
  15128. 17: int32(3),
  15129. 18: int32(3),
  15130. 19: int32(3),
  15131. 20: int32(4),
  15132. 21: int32(4),
  15133. 22: int32(4),
  15134. 23: int32(4),
  15135. 24: int32(5),
  15136. 25: int32(5),
  15137. 26: int32(5),
  15138. 27: int32(5),
  15139. }
  15140. var _extra_dbits = [30]int32{
  15141. 4: int32(1),
  15142. 5: int32(1),
  15143. 6: int32(2),
  15144. 7: int32(2),
  15145. 8: int32(3),
  15146. 9: int32(3),
  15147. 10: int32(4),
  15148. 11: int32(4),
  15149. 12: int32(5),
  15150. 13: int32(5),
  15151. 14: int32(6),
  15152. 15: int32(6),
  15153. 16: int32(7),
  15154. 17: int32(7),
  15155. 18: int32(8),
  15156. 19: int32(8),
  15157. 20: int32(9),
  15158. 21: int32(9),
  15159. 22: int32(10),
  15160. 23: int32(10),
  15161. 24: int32(11),
  15162. 25: int32(11),
  15163. 26: int32(12),
  15164. 27: int32(12),
  15165. 28: int32(13),
  15166. 29: int32(13),
  15167. }
  15168. var _extra_blbits = [19]int32{
  15169. 16: int32(2),
  15170. 17: int32(3),
  15171. 18: int32(7),
  15172. }
  15173. var _bl_order = [19]Tuch{
  15174. 0: uint8(16),
  15175. 1: uint8(17),
  15176. 2: uint8(18),
  15177. 4: uint8(8),
  15178. 5: uint8(7),
  15179. 6: uint8(9),
  15180. 7: uint8(6),
  15181. 8: uint8(10),
  15182. 9: uint8(5),
  15183. 10: uint8(11),
  15184. 11: uint8(4),
  15185. 12: uint8(12),
  15186. 13: uint8(3),
  15187. 14: uint8(13),
  15188. 15: uint8(2),
  15189. 16: uint8(14),
  15190. 17: uint8(1),
  15191. 18: uint8(15),
  15192. }
  15193. var _static_ltree = [288]Tct_data{
  15194. 0: {
  15195. Ffc: *(*struct {
  15196. Fcode [0]Tush
  15197. Ffreq Tush
  15198. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(12)})),
  15199. Fdl: *(*struct {
  15200. Flen1 [0]Tush
  15201. Fdad Tush
  15202. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15203. },
  15204. 1: {
  15205. Ffc: *(*struct {
  15206. Fcode [0]Tush
  15207. Ffreq Tush
  15208. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(140)})),
  15209. Fdl: *(*struct {
  15210. Flen1 [0]Tush
  15211. Fdad Tush
  15212. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15213. },
  15214. 2: {
  15215. Ffc: *(*struct {
  15216. Fcode [0]Tush
  15217. Ffreq Tush
  15218. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(76)})),
  15219. Fdl: *(*struct {
  15220. Flen1 [0]Tush
  15221. Fdad Tush
  15222. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15223. },
  15224. 3: {
  15225. Ffc: *(*struct {
  15226. Fcode [0]Tush
  15227. Ffreq Tush
  15228. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(204)})),
  15229. Fdl: *(*struct {
  15230. Flen1 [0]Tush
  15231. Fdad Tush
  15232. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15233. },
  15234. 4: {
  15235. Ffc: *(*struct {
  15236. Fcode [0]Tush
  15237. Ffreq Tush
  15238. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(44)})),
  15239. Fdl: *(*struct {
  15240. Flen1 [0]Tush
  15241. Fdad Tush
  15242. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15243. },
  15244. 5: {
  15245. Ffc: *(*struct {
  15246. Fcode [0]Tush
  15247. Ffreq Tush
  15248. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(172)})),
  15249. Fdl: *(*struct {
  15250. Flen1 [0]Tush
  15251. Fdad Tush
  15252. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15253. },
  15254. 6: {
  15255. Ffc: *(*struct {
  15256. Fcode [0]Tush
  15257. Ffreq Tush
  15258. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(108)})),
  15259. Fdl: *(*struct {
  15260. Flen1 [0]Tush
  15261. Fdad Tush
  15262. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15263. },
  15264. 7: {
  15265. Ffc: *(*struct {
  15266. Fcode [0]Tush
  15267. Ffreq Tush
  15268. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(236)})),
  15269. Fdl: *(*struct {
  15270. Flen1 [0]Tush
  15271. Fdad Tush
  15272. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15273. },
  15274. 8: {
  15275. Ffc: *(*struct {
  15276. Fcode [0]Tush
  15277. Ffreq Tush
  15278. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(28)})),
  15279. Fdl: *(*struct {
  15280. Flen1 [0]Tush
  15281. Fdad Tush
  15282. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15283. },
  15284. 9: {
  15285. Ffc: *(*struct {
  15286. Fcode [0]Tush
  15287. Ffreq Tush
  15288. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(156)})),
  15289. Fdl: *(*struct {
  15290. Flen1 [0]Tush
  15291. Fdad Tush
  15292. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15293. },
  15294. 10: {
  15295. Ffc: *(*struct {
  15296. Fcode [0]Tush
  15297. Ffreq Tush
  15298. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(92)})),
  15299. Fdl: *(*struct {
  15300. Flen1 [0]Tush
  15301. Fdad Tush
  15302. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15303. },
  15304. 11: {
  15305. Ffc: *(*struct {
  15306. Fcode [0]Tush
  15307. Ffreq Tush
  15308. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(220)})),
  15309. Fdl: *(*struct {
  15310. Flen1 [0]Tush
  15311. Fdad Tush
  15312. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15313. },
  15314. 12: {
  15315. Ffc: *(*struct {
  15316. Fcode [0]Tush
  15317. Ffreq Tush
  15318. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(60)})),
  15319. Fdl: *(*struct {
  15320. Flen1 [0]Tush
  15321. Fdad Tush
  15322. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15323. },
  15324. 13: {
  15325. Ffc: *(*struct {
  15326. Fcode [0]Tush
  15327. Ffreq Tush
  15328. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(188)})),
  15329. Fdl: *(*struct {
  15330. Flen1 [0]Tush
  15331. Fdad Tush
  15332. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15333. },
  15334. 14: {
  15335. Ffc: *(*struct {
  15336. Fcode [0]Tush
  15337. Ffreq Tush
  15338. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(124)})),
  15339. Fdl: *(*struct {
  15340. Flen1 [0]Tush
  15341. Fdad Tush
  15342. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15343. },
  15344. 15: {
  15345. Ffc: *(*struct {
  15346. Fcode [0]Tush
  15347. Ffreq Tush
  15348. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(252)})),
  15349. Fdl: *(*struct {
  15350. Flen1 [0]Tush
  15351. Fdad Tush
  15352. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15353. },
  15354. 16: {
  15355. Ffc: *(*struct {
  15356. Fcode [0]Tush
  15357. Ffreq Tush
  15358. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(2)})),
  15359. Fdl: *(*struct {
  15360. Flen1 [0]Tush
  15361. Fdad Tush
  15362. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15363. },
  15364. 17: {
  15365. Ffc: *(*struct {
  15366. Fcode [0]Tush
  15367. Ffreq Tush
  15368. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(130)})),
  15369. Fdl: *(*struct {
  15370. Flen1 [0]Tush
  15371. Fdad Tush
  15372. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15373. },
  15374. 18: {
  15375. Ffc: *(*struct {
  15376. Fcode [0]Tush
  15377. Ffreq Tush
  15378. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(66)})),
  15379. Fdl: *(*struct {
  15380. Flen1 [0]Tush
  15381. Fdad Tush
  15382. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15383. },
  15384. 19: {
  15385. Ffc: *(*struct {
  15386. Fcode [0]Tush
  15387. Ffreq Tush
  15388. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(194)})),
  15389. Fdl: *(*struct {
  15390. Flen1 [0]Tush
  15391. Fdad Tush
  15392. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15393. },
  15394. 20: {
  15395. Ffc: *(*struct {
  15396. Fcode [0]Tush
  15397. Ffreq Tush
  15398. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(34)})),
  15399. Fdl: *(*struct {
  15400. Flen1 [0]Tush
  15401. Fdad Tush
  15402. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15403. },
  15404. 21: {
  15405. Ffc: *(*struct {
  15406. Fcode [0]Tush
  15407. Ffreq Tush
  15408. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(162)})),
  15409. Fdl: *(*struct {
  15410. Flen1 [0]Tush
  15411. Fdad Tush
  15412. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15413. },
  15414. 22: {
  15415. Ffc: *(*struct {
  15416. Fcode [0]Tush
  15417. Ffreq Tush
  15418. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(98)})),
  15419. Fdl: *(*struct {
  15420. Flen1 [0]Tush
  15421. Fdad Tush
  15422. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15423. },
  15424. 23: {
  15425. Ffc: *(*struct {
  15426. Fcode [0]Tush
  15427. Ffreq Tush
  15428. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(226)})),
  15429. Fdl: *(*struct {
  15430. Flen1 [0]Tush
  15431. Fdad Tush
  15432. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15433. },
  15434. 24: {
  15435. Ffc: *(*struct {
  15436. Fcode [0]Tush
  15437. Ffreq Tush
  15438. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(18)})),
  15439. Fdl: *(*struct {
  15440. Flen1 [0]Tush
  15441. Fdad Tush
  15442. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15443. },
  15444. 25: {
  15445. Ffc: *(*struct {
  15446. Fcode [0]Tush
  15447. Ffreq Tush
  15448. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(146)})),
  15449. Fdl: *(*struct {
  15450. Flen1 [0]Tush
  15451. Fdad Tush
  15452. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15453. },
  15454. 26: {
  15455. Ffc: *(*struct {
  15456. Fcode [0]Tush
  15457. Ffreq Tush
  15458. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(82)})),
  15459. Fdl: *(*struct {
  15460. Flen1 [0]Tush
  15461. Fdad Tush
  15462. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15463. },
  15464. 27: {
  15465. Ffc: *(*struct {
  15466. Fcode [0]Tush
  15467. Ffreq Tush
  15468. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(210)})),
  15469. Fdl: *(*struct {
  15470. Flen1 [0]Tush
  15471. Fdad Tush
  15472. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15473. },
  15474. 28: {
  15475. Ffc: *(*struct {
  15476. Fcode [0]Tush
  15477. Ffreq Tush
  15478. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(50)})),
  15479. Fdl: *(*struct {
  15480. Flen1 [0]Tush
  15481. Fdad Tush
  15482. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15483. },
  15484. 29: {
  15485. Ffc: *(*struct {
  15486. Fcode [0]Tush
  15487. Ffreq Tush
  15488. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(178)})),
  15489. Fdl: *(*struct {
  15490. Flen1 [0]Tush
  15491. Fdad Tush
  15492. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15493. },
  15494. 30: {
  15495. Ffc: *(*struct {
  15496. Fcode [0]Tush
  15497. Ffreq Tush
  15498. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(114)})),
  15499. Fdl: *(*struct {
  15500. Flen1 [0]Tush
  15501. Fdad Tush
  15502. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15503. },
  15504. 31: {
  15505. Ffc: *(*struct {
  15506. Fcode [0]Tush
  15507. Ffreq Tush
  15508. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(242)})),
  15509. Fdl: *(*struct {
  15510. Flen1 [0]Tush
  15511. Fdad Tush
  15512. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15513. },
  15514. 32: {
  15515. Ffc: *(*struct {
  15516. Fcode [0]Tush
  15517. Ffreq Tush
  15518. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(10)})),
  15519. Fdl: *(*struct {
  15520. Flen1 [0]Tush
  15521. Fdad Tush
  15522. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15523. },
  15524. 33: {
  15525. Ffc: *(*struct {
  15526. Fcode [0]Tush
  15527. Ffreq Tush
  15528. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(138)})),
  15529. Fdl: *(*struct {
  15530. Flen1 [0]Tush
  15531. Fdad Tush
  15532. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15533. },
  15534. 34: {
  15535. Ffc: *(*struct {
  15536. Fcode [0]Tush
  15537. Ffreq Tush
  15538. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(74)})),
  15539. Fdl: *(*struct {
  15540. Flen1 [0]Tush
  15541. Fdad Tush
  15542. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15543. },
  15544. 35: {
  15545. Ffc: *(*struct {
  15546. Fcode [0]Tush
  15547. Ffreq Tush
  15548. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(202)})),
  15549. Fdl: *(*struct {
  15550. Flen1 [0]Tush
  15551. Fdad Tush
  15552. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15553. },
  15554. 36: {
  15555. Ffc: *(*struct {
  15556. Fcode [0]Tush
  15557. Ffreq Tush
  15558. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(42)})),
  15559. Fdl: *(*struct {
  15560. Flen1 [0]Tush
  15561. Fdad Tush
  15562. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15563. },
  15564. 37: {
  15565. Ffc: *(*struct {
  15566. Fcode [0]Tush
  15567. Ffreq Tush
  15568. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(170)})),
  15569. Fdl: *(*struct {
  15570. Flen1 [0]Tush
  15571. Fdad Tush
  15572. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15573. },
  15574. 38: {
  15575. Ffc: *(*struct {
  15576. Fcode [0]Tush
  15577. Ffreq Tush
  15578. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(106)})),
  15579. Fdl: *(*struct {
  15580. Flen1 [0]Tush
  15581. Fdad Tush
  15582. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15583. },
  15584. 39: {
  15585. Ffc: *(*struct {
  15586. Fcode [0]Tush
  15587. Ffreq Tush
  15588. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(234)})),
  15589. Fdl: *(*struct {
  15590. Flen1 [0]Tush
  15591. Fdad Tush
  15592. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15593. },
  15594. 40: {
  15595. Ffc: *(*struct {
  15596. Fcode [0]Tush
  15597. Ffreq Tush
  15598. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(26)})),
  15599. Fdl: *(*struct {
  15600. Flen1 [0]Tush
  15601. Fdad Tush
  15602. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15603. },
  15604. 41: {
  15605. Ffc: *(*struct {
  15606. Fcode [0]Tush
  15607. Ffreq Tush
  15608. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(154)})),
  15609. Fdl: *(*struct {
  15610. Flen1 [0]Tush
  15611. Fdad Tush
  15612. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15613. },
  15614. 42: {
  15615. Ffc: *(*struct {
  15616. Fcode [0]Tush
  15617. Ffreq Tush
  15618. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(90)})),
  15619. Fdl: *(*struct {
  15620. Flen1 [0]Tush
  15621. Fdad Tush
  15622. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15623. },
  15624. 43: {
  15625. Ffc: *(*struct {
  15626. Fcode [0]Tush
  15627. Ffreq Tush
  15628. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(218)})),
  15629. Fdl: *(*struct {
  15630. Flen1 [0]Tush
  15631. Fdad Tush
  15632. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15633. },
  15634. 44: {
  15635. Ffc: *(*struct {
  15636. Fcode [0]Tush
  15637. Ffreq Tush
  15638. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(58)})),
  15639. Fdl: *(*struct {
  15640. Flen1 [0]Tush
  15641. Fdad Tush
  15642. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15643. },
  15644. 45: {
  15645. Ffc: *(*struct {
  15646. Fcode [0]Tush
  15647. Ffreq Tush
  15648. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(186)})),
  15649. Fdl: *(*struct {
  15650. Flen1 [0]Tush
  15651. Fdad Tush
  15652. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15653. },
  15654. 46: {
  15655. Ffc: *(*struct {
  15656. Fcode [0]Tush
  15657. Ffreq Tush
  15658. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(122)})),
  15659. Fdl: *(*struct {
  15660. Flen1 [0]Tush
  15661. Fdad Tush
  15662. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15663. },
  15664. 47: {
  15665. Ffc: *(*struct {
  15666. Fcode [0]Tush
  15667. Ffreq Tush
  15668. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(250)})),
  15669. Fdl: *(*struct {
  15670. Flen1 [0]Tush
  15671. Fdad Tush
  15672. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15673. },
  15674. 48: {
  15675. Ffc: *(*struct {
  15676. Fcode [0]Tush
  15677. Ffreq Tush
  15678. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(6)})),
  15679. Fdl: *(*struct {
  15680. Flen1 [0]Tush
  15681. Fdad Tush
  15682. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15683. },
  15684. 49: {
  15685. Ffc: *(*struct {
  15686. Fcode [0]Tush
  15687. Ffreq Tush
  15688. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(134)})),
  15689. Fdl: *(*struct {
  15690. Flen1 [0]Tush
  15691. Fdad Tush
  15692. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15693. },
  15694. 50: {
  15695. Ffc: *(*struct {
  15696. Fcode [0]Tush
  15697. Ffreq Tush
  15698. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(70)})),
  15699. Fdl: *(*struct {
  15700. Flen1 [0]Tush
  15701. Fdad Tush
  15702. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15703. },
  15704. 51: {
  15705. Ffc: *(*struct {
  15706. Fcode [0]Tush
  15707. Ffreq Tush
  15708. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(198)})),
  15709. Fdl: *(*struct {
  15710. Flen1 [0]Tush
  15711. Fdad Tush
  15712. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15713. },
  15714. 52: {
  15715. Ffc: *(*struct {
  15716. Fcode [0]Tush
  15717. Ffreq Tush
  15718. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(38)})),
  15719. Fdl: *(*struct {
  15720. Flen1 [0]Tush
  15721. Fdad Tush
  15722. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15723. },
  15724. 53: {
  15725. Ffc: *(*struct {
  15726. Fcode [0]Tush
  15727. Ffreq Tush
  15728. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(166)})),
  15729. Fdl: *(*struct {
  15730. Flen1 [0]Tush
  15731. Fdad Tush
  15732. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15733. },
  15734. 54: {
  15735. Ffc: *(*struct {
  15736. Fcode [0]Tush
  15737. Ffreq Tush
  15738. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(102)})),
  15739. Fdl: *(*struct {
  15740. Flen1 [0]Tush
  15741. Fdad Tush
  15742. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15743. },
  15744. 55: {
  15745. Ffc: *(*struct {
  15746. Fcode [0]Tush
  15747. Ffreq Tush
  15748. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(230)})),
  15749. Fdl: *(*struct {
  15750. Flen1 [0]Tush
  15751. Fdad Tush
  15752. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15753. },
  15754. 56: {
  15755. Ffc: *(*struct {
  15756. Fcode [0]Tush
  15757. Ffreq Tush
  15758. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(22)})),
  15759. Fdl: *(*struct {
  15760. Flen1 [0]Tush
  15761. Fdad Tush
  15762. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15763. },
  15764. 57: {
  15765. Ffc: *(*struct {
  15766. Fcode [0]Tush
  15767. Ffreq Tush
  15768. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(150)})),
  15769. Fdl: *(*struct {
  15770. Flen1 [0]Tush
  15771. Fdad Tush
  15772. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15773. },
  15774. 58: {
  15775. Ffc: *(*struct {
  15776. Fcode [0]Tush
  15777. Ffreq Tush
  15778. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(86)})),
  15779. Fdl: *(*struct {
  15780. Flen1 [0]Tush
  15781. Fdad Tush
  15782. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15783. },
  15784. 59: {
  15785. Ffc: *(*struct {
  15786. Fcode [0]Tush
  15787. Ffreq Tush
  15788. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(214)})),
  15789. Fdl: *(*struct {
  15790. Flen1 [0]Tush
  15791. Fdad Tush
  15792. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15793. },
  15794. 60: {
  15795. Ffc: *(*struct {
  15796. Fcode [0]Tush
  15797. Ffreq Tush
  15798. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(54)})),
  15799. Fdl: *(*struct {
  15800. Flen1 [0]Tush
  15801. Fdad Tush
  15802. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15803. },
  15804. 61: {
  15805. Ffc: *(*struct {
  15806. Fcode [0]Tush
  15807. Ffreq Tush
  15808. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(182)})),
  15809. Fdl: *(*struct {
  15810. Flen1 [0]Tush
  15811. Fdad Tush
  15812. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15813. },
  15814. 62: {
  15815. Ffc: *(*struct {
  15816. Fcode [0]Tush
  15817. Ffreq Tush
  15818. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(118)})),
  15819. Fdl: *(*struct {
  15820. Flen1 [0]Tush
  15821. Fdad Tush
  15822. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15823. },
  15824. 63: {
  15825. Ffc: *(*struct {
  15826. Fcode [0]Tush
  15827. Ffreq Tush
  15828. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(246)})),
  15829. Fdl: *(*struct {
  15830. Flen1 [0]Tush
  15831. Fdad Tush
  15832. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15833. },
  15834. 64: {
  15835. Ffc: *(*struct {
  15836. Fcode [0]Tush
  15837. Ffreq Tush
  15838. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(14)})),
  15839. Fdl: *(*struct {
  15840. Flen1 [0]Tush
  15841. Fdad Tush
  15842. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15843. },
  15844. 65: {
  15845. Ffc: *(*struct {
  15846. Fcode [0]Tush
  15847. Ffreq Tush
  15848. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(142)})),
  15849. Fdl: *(*struct {
  15850. Flen1 [0]Tush
  15851. Fdad Tush
  15852. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15853. },
  15854. 66: {
  15855. Ffc: *(*struct {
  15856. Fcode [0]Tush
  15857. Ffreq Tush
  15858. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(78)})),
  15859. Fdl: *(*struct {
  15860. Flen1 [0]Tush
  15861. Fdad Tush
  15862. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15863. },
  15864. 67: {
  15865. Ffc: *(*struct {
  15866. Fcode [0]Tush
  15867. Ffreq Tush
  15868. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(206)})),
  15869. Fdl: *(*struct {
  15870. Flen1 [0]Tush
  15871. Fdad Tush
  15872. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15873. },
  15874. 68: {
  15875. Ffc: *(*struct {
  15876. Fcode [0]Tush
  15877. Ffreq Tush
  15878. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(46)})),
  15879. Fdl: *(*struct {
  15880. Flen1 [0]Tush
  15881. Fdad Tush
  15882. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15883. },
  15884. 69: {
  15885. Ffc: *(*struct {
  15886. Fcode [0]Tush
  15887. Ffreq Tush
  15888. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(174)})),
  15889. Fdl: *(*struct {
  15890. Flen1 [0]Tush
  15891. Fdad Tush
  15892. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15893. },
  15894. 70: {
  15895. Ffc: *(*struct {
  15896. Fcode [0]Tush
  15897. Ffreq Tush
  15898. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(110)})),
  15899. Fdl: *(*struct {
  15900. Flen1 [0]Tush
  15901. Fdad Tush
  15902. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15903. },
  15904. 71: {
  15905. Ffc: *(*struct {
  15906. Fcode [0]Tush
  15907. Ffreq Tush
  15908. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(238)})),
  15909. Fdl: *(*struct {
  15910. Flen1 [0]Tush
  15911. Fdad Tush
  15912. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15913. },
  15914. 72: {
  15915. Ffc: *(*struct {
  15916. Fcode [0]Tush
  15917. Ffreq Tush
  15918. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(30)})),
  15919. Fdl: *(*struct {
  15920. Flen1 [0]Tush
  15921. Fdad Tush
  15922. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15923. },
  15924. 73: {
  15925. Ffc: *(*struct {
  15926. Fcode [0]Tush
  15927. Ffreq Tush
  15928. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(158)})),
  15929. Fdl: *(*struct {
  15930. Flen1 [0]Tush
  15931. Fdad Tush
  15932. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15933. },
  15934. 74: {
  15935. Ffc: *(*struct {
  15936. Fcode [0]Tush
  15937. Ffreq Tush
  15938. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(94)})),
  15939. Fdl: *(*struct {
  15940. Flen1 [0]Tush
  15941. Fdad Tush
  15942. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15943. },
  15944. 75: {
  15945. Ffc: *(*struct {
  15946. Fcode [0]Tush
  15947. Ffreq Tush
  15948. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(222)})),
  15949. Fdl: *(*struct {
  15950. Flen1 [0]Tush
  15951. Fdad Tush
  15952. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15953. },
  15954. 76: {
  15955. Ffc: *(*struct {
  15956. Fcode [0]Tush
  15957. Ffreq Tush
  15958. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(62)})),
  15959. Fdl: *(*struct {
  15960. Flen1 [0]Tush
  15961. Fdad Tush
  15962. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15963. },
  15964. 77: {
  15965. Ffc: *(*struct {
  15966. Fcode [0]Tush
  15967. Ffreq Tush
  15968. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(190)})),
  15969. Fdl: *(*struct {
  15970. Flen1 [0]Tush
  15971. Fdad Tush
  15972. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15973. },
  15974. 78: {
  15975. Ffc: *(*struct {
  15976. Fcode [0]Tush
  15977. Ffreq Tush
  15978. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(126)})),
  15979. Fdl: *(*struct {
  15980. Flen1 [0]Tush
  15981. Fdad Tush
  15982. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15983. },
  15984. 79: {
  15985. Ffc: *(*struct {
  15986. Fcode [0]Tush
  15987. Ffreq Tush
  15988. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(254)})),
  15989. Fdl: *(*struct {
  15990. Flen1 [0]Tush
  15991. Fdad Tush
  15992. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15993. },
  15994. 80: {
  15995. Ffc: *(*struct {
  15996. Fcode [0]Tush
  15997. Ffreq Tush
  15998. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(1)})),
  15999. Fdl: *(*struct {
  16000. Flen1 [0]Tush
  16001. Fdad Tush
  16002. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16003. },
  16004. 81: {
  16005. Ffc: *(*struct {
  16006. Fcode [0]Tush
  16007. Ffreq Tush
  16008. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(129)})),
  16009. Fdl: *(*struct {
  16010. Flen1 [0]Tush
  16011. Fdad Tush
  16012. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16013. },
  16014. 82: {
  16015. Ffc: *(*struct {
  16016. Fcode [0]Tush
  16017. Ffreq Tush
  16018. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(65)})),
  16019. Fdl: *(*struct {
  16020. Flen1 [0]Tush
  16021. Fdad Tush
  16022. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16023. },
  16024. 83: {
  16025. Ffc: *(*struct {
  16026. Fcode [0]Tush
  16027. Ffreq Tush
  16028. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(193)})),
  16029. Fdl: *(*struct {
  16030. Flen1 [0]Tush
  16031. Fdad Tush
  16032. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16033. },
  16034. 84: {
  16035. Ffc: *(*struct {
  16036. Fcode [0]Tush
  16037. Ffreq Tush
  16038. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(33)})),
  16039. Fdl: *(*struct {
  16040. Flen1 [0]Tush
  16041. Fdad Tush
  16042. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16043. },
  16044. 85: {
  16045. Ffc: *(*struct {
  16046. Fcode [0]Tush
  16047. Ffreq Tush
  16048. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(161)})),
  16049. Fdl: *(*struct {
  16050. Flen1 [0]Tush
  16051. Fdad Tush
  16052. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16053. },
  16054. 86: {
  16055. Ffc: *(*struct {
  16056. Fcode [0]Tush
  16057. Ffreq Tush
  16058. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(97)})),
  16059. Fdl: *(*struct {
  16060. Flen1 [0]Tush
  16061. Fdad Tush
  16062. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16063. },
  16064. 87: {
  16065. Ffc: *(*struct {
  16066. Fcode [0]Tush
  16067. Ffreq Tush
  16068. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(225)})),
  16069. Fdl: *(*struct {
  16070. Flen1 [0]Tush
  16071. Fdad Tush
  16072. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16073. },
  16074. 88: {
  16075. Ffc: *(*struct {
  16076. Fcode [0]Tush
  16077. Ffreq Tush
  16078. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(17)})),
  16079. Fdl: *(*struct {
  16080. Flen1 [0]Tush
  16081. Fdad Tush
  16082. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16083. },
  16084. 89: {
  16085. Ffc: *(*struct {
  16086. Fcode [0]Tush
  16087. Ffreq Tush
  16088. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(145)})),
  16089. Fdl: *(*struct {
  16090. Flen1 [0]Tush
  16091. Fdad Tush
  16092. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16093. },
  16094. 90: {
  16095. Ffc: *(*struct {
  16096. Fcode [0]Tush
  16097. Ffreq Tush
  16098. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(81)})),
  16099. Fdl: *(*struct {
  16100. Flen1 [0]Tush
  16101. Fdad Tush
  16102. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16103. },
  16104. 91: {
  16105. Ffc: *(*struct {
  16106. Fcode [0]Tush
  16107. Ffreq Tush
  16108. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(209)})),
  16109. Fdl: *(*struct {
  16110. Flen1 [0]Tush
  16111. Fdad Tush
  16112. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16113. },
  16114. 92: {
  16115. Ffc: *(*struct {
  16116. Fcode [0]Tush
  16117. Ffreq Tush
  16118. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(49)})),
  16119. Fdl: *(*struct {
  16120. Flen1 [0]Tush
  16121. Fdad Tush
  16122. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16123. },
  16124. 93: {
  16125. Ffc: *(*struct {
  16126. Fcode [0]Tush
  16127. Ffreq Tush
  16128. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(177)})),
  16129. Fdl: *(*struct {
  16130. Flen1 [0]Tush
  16131. Fdad Tush
  16132. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16133. },
  16134. 94: {
  16135. Ffc: *(*struct {
  16136. Fcode [0]Tush
  16137. Ffreq Tush
  16138. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(113)})),
  16139. Fdl: *(*struct {
  16140. Flen1 [0]Tush
  16141. Fdad Tush
  16142. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16143. },
  16144. 95: {
  16145. Ffc: *(*struct {
  16146. Fcode [0]Tush
  16147. Ffreq Tush
  16148. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(241)})),
  16149. Fdl: *(*struct {
  16150. Flen1 [0]Tush
  16151. Fdad Tush
  16152. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16153. },
  16154. 96: {
  16155. Ffc: *(*struct {
  16156. Fcode [0]Tush
  16157. Ffreq Tush
  16158. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16159. Fdl: *(*struct {
  16160. Flen1 [0]Tush
  16161. Fdad Tush
  16162. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16163. },
  16164. 97: {
  16165. Ffc: *(*struct {
  16166. Fcode [0]Tush
  16167. Ffreq Tush
  16168. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(137)})),
  16169. Fdl: *(*struct {
  16170. Flen1 [0]Tush
  16171. Fdad Tush
  16172. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16173. },
  16174. 98: {
  16175. Ffc: *(*struct {
  16176. Fcode [0]Tush
  16177. Ffreq Tush
  16178. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(73)})),
  16179. Fdl: *(*struct {
  16180. Flen1 [0]Tush
  16181. Fdad Tush
  16182. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16183. },
  16184. 99: {
  16185. Ffc: *(*struct {
  16186. Fcode [0]Tush
  16187. Ffreq Tush
  16188. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(201)})),
  16189. Fdl: *(*struct {
  16190. Flen1 [0]Tush
  16191. Fdad Tush
  16192. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16193. },
  16194. 100: {
  16195. Ffc: *(*struct {
  16196. Fcode [0]Tush
  16197. Ffreq Tush
  16198. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(41)})),
  16199. Fdl: *(*struct {
  16200. Flen1 [0]Tush
  16201. Fdad Tush
  16202. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16203. },
  16204. 101: {
  16205. Ffc: *(*struct {
  16206. Fcode [0]Tush
  16207. Ffreq Tush
  16208. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(169)})),
  16209. Fdl: *(*struct {
  16210. Flen1 [0]Tush
  16211. Fdad Tush
  16212. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16213. },
  16214. 102: {
  16215. Ffc: *(*struct {
  16216. Fcode [0]Tush
  16217. Ffreq Tush
  16218. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(105)})),
  16219. Fdl: *(*struct {
  16220. Flen1 [0]Tush
  16221. Fdad Tush
  16222. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16223. },
  16224. 103: {
  16225. Ffc: *(*struct {
  16226. Fcode [0]Tush
  16227. Ffreq Tush
  16228. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(233)})),
  16229. Fdl: *(*struct {
  16230. Flen1 [0]Tush
  16231. Fdad Tush
  16232. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16233. },
  16234. 104: {
  16235. Ffc: *(*struct {
  16236. Fcode [0]Tush
  16237. Ffreq Tush
  16238. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(25)})),
  16239. Fdl: *(*struct {
  16240. Flen1 [0]Tush
  16241. Fdad Tush
  16242. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16243. },
  16244. 105: {
  16245. Ffc: *(*struct {
  16246. Fcode [0]Tush
  16247. Ffreq Tush
  16248. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(153)})),
  16249. Fdl: *(*struct {
  16250. Flen1 [0]Tush
  16251. Fdad Tush
  16252. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16253. },
  16254. 106: {
  16255. Ffc: *(*struct {
  16256. Fcode [0]Tush
  16257. Ffreq Tush
  16258. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(89)})),
  16259. Fdl: *(*struct {
  16260. Flen1 [0]Tush
  16261. Fdad Tush
  16262. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16263. },
  16264. 107: {
  16265. Ffc: *(*struct {
  16266. Fcode [0]Tush
  16267. Ffreq Tush
  16268. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(217)})),
  16269. Fdl: *(*struct {
  16270. Flen1 [0]Tush
  16271. Fdad Tush
  16272. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16273. },
  16274. 108: {
  16275. Ffc: *(*struct {
  16276. Fcode [0]Tush
  16277. Ffreq Tush
  16278. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(57)})),
  16279. Fdl: *(*struct {
  16280. Flen1 [0]Tush
  16281. Fdad Tush
  16282. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16283. },
  16284. 109: {
  16285. Ffc: *(*struct {
  16286. Fcode [0]Tush
  16287. Ffreq Tush
  16288. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(185)})),
  16289. Fdl: *(*struct {
  16290. Flen1 [0]Tush
  16291. Fdad Tush
  16292. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16293. },
  16294. 110: {
  16295. Ffc: *(*struct {
  16296. Fcode [0]Tush
  16297. Ffreq Tush
  16298. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(121)})),
  16299. Fdl: *(*struct {
  16300. Flen1 [0]Tush
  16301. Fdad Tush
  16302. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16303. },
  16304. 111: {
  16305. Ffc: *(*struct {
  16306. Fcode [0]Tush
  16307. Ffreq Tush
  16308. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(249)})),
  16309. Fdl: *(*struct {
  16310. Flen1 [0]Tush
  16311. Fdad Tush
  16312. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16313. },
  16314. 112: {
  16315. Ffc: *(*struct {
  16316. Fcode [0]Tush
  16317. Ffreq Tush
  16318. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  16319. Fdl: *(*struct {
  16320. Flen1 [0]Tush
  16321. Fdad Tush
  16322. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16323. },
  16324. 113: {
  16325. Ffc: *(*struct {
  16326. Fcode [0]Tush
  16327. Ffreq Tush
  16328. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(133)})),
  16329. Fdl: *(*struct {
  16330. Flen1 [0]Tush
  16331. Fdad Tush
  16332. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16333. },
  16334. 114: {
  16335. Ffc: *(*struct {
  16336. Fcode [0]Tush
  16337. Ffreq Tush
  16338. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(69)})),
  16339. Fdl: *(*struct {
  16340. Flen1 [0]Tush
  16341. Fdad Tush
  16342. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16343. },
  16344. 115: {
  16345. Ffc: *(*struct {
  16346. Fcode [0]Tush
  16347. Ffreq Tush
  16348. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(197)})),
  16349. Fdl: *(*struct {
  16350. Flen1 [0]Tush
  16351. Fdad Tush
  16352. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16353. },
  16354. 116: {
  16355. Ffc: *(*struct {
  16356. Fcode [0]Tush
  16357. Ffreq Tush
  16358. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(37)})),
  16359. Fdl: *(*struct {
  16360. Flen1 [0]Tush
  16361. Fdad Tush
  16362. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16363. },
  16364. 117: {
  16365. Ffc: *(*struct {
  16366. Fcode [0]Tush
  16367. Ffreq Tush
  16368. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(165)})),
  16369. Fdl: *(*struct {
  16370. Flen1 [0]Tush
  16371. Fdad Tush
  16372. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16373. },
  16374. 118: {
  16375. Ffc: *(*struct {
  16376. Fcode [0]Tush
  16377. Ffreq Tush
  16378. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(101)})),
  16379. Fdl: *(*struct {
  16380. Flen1 [0]Tush
  16381. Fdad Tush
  16382. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16383. },
  16384. 119: {
  16385. Ffc: *(*struct {
  16386. Fcode [0]Tush
  16387. Ffreq Tush
  16388. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(229)})),
  16389. Fdl: *(*struct {
  16390. Flen1 [0]Tush
  16391. Fdad Tush
  16392. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16393. },
  16394. 120: {
  16395. Ffc: *(*struct {
  16396. Fcode [0]Tush
  16397. Ffreq Tush
  16398. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(21)})),
  16399. Fdl: *(*struct {
  16400. Flen1 [0]Tush
  16401. Fdad Tush
  16402. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16403. },
  16404. 121: {
  16405. Ffc: *(*struct {
  16406. Fcode [0]Tush
  16407. Ffreq Tush
  16408. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(149)})),
  16409. Fdl: *(*struct {
  16410. Flen1 [0]Tush
  16411. Fdad Tush
  16412. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16413. },
  16414. 122: {
  16415. Ffc: *(*struct {
  16416. Fcode [0]Tush
  16417. Ffreq Tush
  16418. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(85)})),
  16419. Fdl: *(*struct {
  16420. Flen1 [0]Tush
  16421. Fdad Tush
  16422. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16423. },
  16424. 123: {
  16425. Ffc: *(*struct {
  16426. Fcode [0]Tush
  16427. Ffreq Tush
  16428. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(213)})),
  16429. Fdl: *(*struct {
  16430. Flen1 [0]Tush
  16431. Fdad Tush
  16432. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16433. },
  16434. 124: {
  16435. Ffc: *(*struct {
  16436. Fcode [0]Tush
  16437. Ffreq Tush
  16438. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(53)})),
  16439. Fdl: *(*struct {
  16440. Flen1 [0]Tush
  16441. Fdad Tush
  16442. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16443. },
  16444. 125: {
  16445. Ffc: *(*struct {
  16446. Fcode [0]Tush
  16447. Ffreq Tush
  16448. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(181)})),
  16449. Fdl: *(*struct {
  16450. Flen1 [0]Tush
  16451. Fdad Tush
  16452. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16453. },
  16454. 126: {
  16455. Ffc: *(*struct {
  16456. Fcode [0]Tush
  16457. Ffreq Tush
  16458. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(117)})),
  16459. Fdl: *(*struct {
  16460. Flen1 [0]Tush
  16461. Fdad Tush
  16462. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16463. },
  16464. 127: {
  16465. Ffc: *(*struct {
  16466. Fcode [0]Tush
  16467. Ffreq Tush
  16468. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(245)})),
  16469. Fdl: *(*struct {
  16470. Flen1 [0]Tush
  16471. Fdad Tush
  16472. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16473. },
  16474. 128: {
  16475. Ffc: *(*struct {
  16476. Fcode [0]Tush
  16477. Ffreq Tush
  16478. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(13)})),
  16479. Fdl: *(*struct {
  16480. Flen1 [0]Tush
  16481. Fdad Tush
  16482. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16483. },
  16484. 129: {
  16485. Ffc: *(*struct {
  16486. Fcode [0]Tush
  16487. Ffreq Tush
  16488. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(141)})),
  16489. Fdl: *(*struct {
  16490. Flen1 [0]Tush
  16491. Fdad Tush
  16492. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16493. },
  16494. 130: {
  16495. Ffc: *(*struct {
  16496. Fcode [0]Tush
  16497. Ffreq Tush
  16498. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(77)})),
  16499. Fdl: *(*struct {
  16500. Flen1 [0]Tush
  16501. Fdad Tush
  16502. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16503. },
  16504. 131: {
  16505. Ffc: *(*struct {
  16506. Fcode [0]Tush
  16507. Ffreq Tush
  16508. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(205)})),
  16509. Fdl: *(*struct {
  16510. Flen1 [0]Tush
  16511. Fdad Tush
  16512. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16513. },
  16514. 132: {
  16515. Ffc: *(*struct {
  16516. Fcode [0]Tush
  16517. Ffreq Tush
  16518. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(45)})),
  16519. Fdl: *(*struct {
  16520. Flen1 [0]Tush
  16521. Fdad Tush
  16522. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16523. },
  16524. 133: {
  16525. Ffc: *(*struct {
  16526. Fcode [0]Tush
  16527. Ffreq Tush
  16528. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(173)})),
  16529. Fdl: *(*struct {
  16530. Flen1 [0]Tush
  16531. Fdad Tush
  16532. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16533. },
  16534. 134: {
  16535. Ffc: *(*struct {
  16536. Fcode [0]Tush
  16537. Ffreq Tush
  16538. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(109)})),
  16539. Fdl: *(*struct {
  16540. Flen1 [0]Tush
  16541. Fdad Tush
  16542. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16543. },
  16544. 135: {
  16545. Ffc: *(*struct {
  16546. Fcode [0]Tush
  16547. Ffreq Tush
  16548. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(237)})),
  16549. Fdl: *(*struct {
  16550. Flen1 [0]Tush
  16551. Fdad Tush
  16552. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16553. },
  16554. 136: {
  16555. Ffc: *(*struct {
  16556. Fcode [0]Tush
  16557. Ffreq Tush
  16558. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(29)})),
  16559. Fdl: *(*struct {
  16560. Flen1 [0]Tush
  16561. Fdad Tush
  16562. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16563. },
  16564. 137: {
  16565. Ffc: *(*struct {
  16566. Fcode [0]Tush
  16567. Ffreq Tush
  16568. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(157)})),
  16569. Fdl: *(*struct {
  16570. Flen1 [0]Tush
  16571. Fdad Tush
  16572. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16573. },
  16574. 138: {
  16575. Ffc: *(*struct {
  16576. Fcode [0]Tush
  16577. Ffreq Tush
  16578. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(93)})),
  16579. Fdl: *(*struct {
  16580. Flen1 [0]Tush
  16581. Fdad Tush
  16582. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16583. },
  16584. 139: {
  16585. Ffc: *(*struct {
  16586. Fcode [0]Tush
  16587. Ffreq Tush
  16588. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(221)})),
  16589. Fdl: *(*struct {
  16590. Flen1 [0]Tush
  16591. Fdad Tush
  16592. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16593. },
  16594. 140: {
  16595. Ffc: *(*struct {
  16596. Fcode [0]Tush
  16597. Ffreq Tush
  16598. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(61)})),
  16599. Fdl: *(*struct {
  16600. Flen1 [0]Tush
  16601. Fdad Tush
  16602. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16603. },
  16604. 141: {
  16605. Ffc: *(*struct {
  16606. Fcode [0]Tush
  16607. Ffreq Tush
  16608. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(189)})),
  16609. Fdl: *(*struct {
  16610. Flen1 [0]Tush
  16611. Fdad Tush
  16612. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16613. },
  16614. 142: {
  16615. Ffc: *(*struct {
  16616. Fcode [0]Tush
  16617. Ffreq Tush
  16618. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(125)})),
  16619. Fdl: *(*struct {
  16620. Flen1 [0]Tush
  16621. Fdad Tush
  16622. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16623. },
  16624. 143: {
  16625. Ffc: *(*struct {
  16626. Fcode [0]Tush
  16627. Ffreq Tush
  16628. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(253)})),
  16629. Fdl: *(*struct {
  16630. Flen1 [0]Tush
  16631. Fdad Tush
  16632. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16633. },
  16634. 144: {
  16635. Ffc: *(*struct {
  16636. Fcode [0]Tush
  16637. Ffreq Tush
  16638. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(19)})),
  16639. Fdl: *(*struct {
  16640. Flen1 [0]Tush
  16641. Fdad Tush
  16642. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16643. },
  16644. 145: {
  16645. Ffc: *(*struct {
  16646. Fcode [0]Tush
  16647. Ffreq Tush
  16648. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(275)})),
  16649. Fdl: *(*struct {
  16650. Flen1 [0]Tush
  16651. Fdad Tush
  16652. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16653. },
  16654. 146: {
  16655. Ffc: *(*struct {
  16656. Fcode [0]Tush
  16657. Ffreq Tush
  16658. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(147)})),
  16659. Fdl: *(*struct {
  16660. Flen1 [0]Tush
  16661. Fdad Tush
  16662. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16663. },
  16664. 147: {
  16665. Ffc: *(*struct {
  16666. Fcode [0]Tush
  16667. Ffreq Tush
  16668. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(403)})),
  16669. Fdl: *(*struct {
  16670. Flen1 [0]Tush
  16671. Fdad Tush
  16672. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16673. },
  16674. 148: {
  16675. Ffc: *(*struct {
  16676. Fcode [0]Tush
  16677. Ffreq Tush
  16678. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(83)})),
  16679. Fdl: *(*struct {
  16680. Flen1 [0]Tush
  16681. Fdad Tush
  16682. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16683. },
  16684. 149: {
  16685. Ffc: *(*struct {
  16686. Fcode [0]Tush
  16687. Ffreq Tush
  16688. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(339)})),
  16689. Fdl: *(*struct {
  16690. Flen1 [0]Tush
  16691. Fdad Tush
  16692. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16693. },
  16694. 150: {
  16695. Ffc: *(*struct {
  16696. Fcode [0]Tush
  16697. Ffreq Tush
  16698. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(211)})),
  16699. Fdl: *(*struct {
  16700. Flen1 [0]Tush
  16701. Fdad Tush
  16702. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16703. },
  16704. 151: {
  16705. Ffc: *(*struct {
  16706. Fcode [0]Tush
  16707. Ffreq Tush
  16708. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(467)})),
  16709. Fdl: *(*struct {
  16710. Flen1 [0]Tush
  16711. Fdad Tush
  16712. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16713. },
  16714. 152: {
  16715. Ffc: *(*struct {
  16716. Fcode [0]Tush
  16717. Ffreq Tush
  16718. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(51)})),
  16719. Fdl: *(*struct {
  16720. Flen1 [0]Tush
  16721. Fdad Tush
  16722. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16723. },
  16724. 153: {
  16725. Ffc: *(*struct {
  16726. Fcode [0]Tush
  16727. Ffreq Tush
  16728. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(307)})),
  16729. Fdl: *(*struct {
  16730. Flen1 [0]Tush
  16731. Fdad Tush
  16732. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16733. },
  16734. 154: {
  16735. Ffc: *(*struct {
  16736. Fcode [0]Tush
  16737. Ffreq Tush
  16738. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(179)})),
  16739. Fdl: *(*struct {
  16740. Flen1 [0]Tush
  16741. Fdad Tush
  16742. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16743. },
  16744. 155: {
  16745. Ffc: *(*struct {
  16746. Fcode [0]Tush
  16747. Ffreq Tush
  16748. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(435)})),
  16749. Fdl: *(*struct {
  16750. Flen1 [0]Tush
  16751. Fdad Tush
  16752. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16753. },
  16754. 156: {
  16755. Ffc: *(*struct {
  16756. Fcode [0]Tush
  16757. Ffreq Tush
  16758. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(115)})),
  16759. Fdl: *(*struct {
  16760. Flen1 [0]Tush
  16761. Fdad Tush
  16762. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16763. },
  16764. 157: {
  16765. Ffc: *(*struct {
  16766. Fcode [0]Tush
  16767. Ffreq Tush
  16768. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(371)})),
  16769. Fdl: *(*struct {
  16770. Flen1 [0]Tush
  16771. Fdad Tush
  16772. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16773. },
  16774. 158: {
  16775. Ffc: *(*struct {
  16776. Fcode [0]Tush
  16777. Ffreq Tush
  16778. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(243)})),
  16779. Fdl: *(*struct {
  16780. Flen1 [0]Tush
  16781. Fdad Tush
  16782. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16783. },
  16784. 159: {
  16785. Ffc: *(*struct {
  16786. Fcode [0]Tush
  16787. Ffreq Tush
  16788. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(499)})),
  16789. Fdl: *(*struct {
  16790. Flen1 [0]Tush
  16791. Fdad Tush
  16792. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16793. },
  16794. 160: {
  16795. Ffc: *(*struct {
  16796. Fcode [0]Tush
  16797. Ffreq Tush
  16798. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(11)})),
  16799. Fdl: *(*struct {
  16800. Flen1 [0]Tush
  16801. Fdad Tush
  16802. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16803. },
  16804. 161: {
  16805. Ffc: *(*struct {
  16806. Fcode [0]Tush
  16807. Ffreq Tush
  16808. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(267)})),
  16809. Fdl: *(*struct {
  16810. Flen1 [0]Tush
  16811. Fdad Tush
  16812. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16813. },
  16814. 162: {
  16815. Ffc: *(*struct {
  16816. Fcode [0]Tush
  16817. Ffreq Tush
  16818. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(139)})),
  16819. Fdl: *(*struct {
  16820. Flen1 [0]Tush
  16821. Fdad Tush
  16822. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16823. },
  16824. 163: {
  16825. Ffc: *(*struct {
  16826. Fcode [0]Tush
  16827. Ffreq Tush
  16828. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(395)})),
  16829. Fdl: *(*struct {
  16830. Flen1 [0]Tush
  16831. Fdad Tush
  16832. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16833. },
  16834. 164: {
  16835. Ffc: *(*struct {
  16836. Fcode [0]Tush
  16837. Ffreq Tush
  16838. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(75)})),
  16839. Fdl: *(*struct {
  16840. Flen1 [0]Tush
  16841. Fdad Tush
  16842. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16843. },
  16844. 165: {
  16845. Ffc: *(*struct {
  16846. Fcode [0]Tush
  16847. Ffreq Tush
  16848. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(331)})),
  16849. Fdl: *(*struct {
  16850. Flen1 [0]Tush
  16851. Fdad Tush
  16852. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16853. },
  16854. 166: {
  16855. Ffc: *(*struct {
  16856. Fcode [0]Tush
  16857. Ffreq Tush
  16858. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(203)})),
  16859. Fdl: *(*struct {
  16860. Flen1 [0]Tush
  16861. Fdad Tush
  16862. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16863. },
  16864. 167: {
  16865. Ffc: *(*struct {
  16866. Fcode [0]Tush
  16867. Ffreq Tush
  16868. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(459)})),
  16869. Fdl: *(*struct {
  16870. Flen1 [0]Tush
  16871. Fdad Tush
  16872. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16873. },
  16874. 168: {
  16875. Ffc: *(*struct {
  16876. Fcode [0]Tush
  16877. Ffreq Tush
  16878. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(43)})),
  16879. Fdl: *(*struct {
  16880. Flen1 [0]Tush
  16881. Fdad Tush
  16882. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16883. },
  16884. 169: {
  16885. Ffc: *(*struct {
  16886. Fcode [0]Tush
  16887. Ffreq Tush
  16888. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(299)})),
  16889. Fdl: *(*struct {
  16890. Flen1 [0]Tush
  16891. Fdad Tush
  16892. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16893. },
  16894. 170: {
  16895. Ffc: *(*struct {
  16896. Fcode [0]Tush
  16897. Ffreq Tush
  16898. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(171)})),
  16899. Fdl: *(*struct {
  16900. Flen1 [0]Tush
  16901. Fdad Tush
  16902. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16903. },
  16904. 171: {
  16905. Ffc: *(*struct {
  16906. Fcode [0]Tush
  16907. Ffreq Tush
  16908. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(427)})),
  16909. Fdl: *(*struct {
  16910. Flen1 [0]Tush
  16911. Fdad Tush
  16912. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16913. },
  16914. 172: {
  16915. Ffc: *(*struct {
  16916. Fcode [0]Tush
  16917. Ffreq Tush
  16918. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(107)})),
  16919. Fdl: *(*struct {
  16920. Flen1 [0]Tush
  16921. Fdad Tush
  16922. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16923. },
  16924. 173: {
  16925. Ffc: *(*struct {
  16926. Fcode [0]Tush
  16927. Ffreq Tush
  16928. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(363)})),
  16929. Fdl: *(*struct {
  16930. Flen1 [0]Tush
  16931. Fdad Tush
  16932. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16933. },
  16934. 174: {
  16935. Ffc: *(*struct {
  16936. Fcode [0]Tush
  16937. Ffreq Tush
  16938. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(235)})),
  16939. Fdl: *(*struct {
  16940. Flen1 [0]Tush
  16941. Fdad Tush
  16942. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16943. },
  16944. 175: {
  16945. Ffc: *(*struct {
  16946. Fcode [0]Tush
  16947. Ffreq Tush
  16948. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(491)})),
  16949. Fdl: *(*struct {
  16950. Flen1 [0]Tush
  16951. Fdad Tush
  16952. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16953. },
  16954. 176: {
  16955. Ffc: *(*struct {
  16956. Fcode [0]Tush
  16957. Ffreq Tush
  16958. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(27)})),
  16959. Fdl: *(*struct {
  16960. Flen1 [0]Tush
  16961. Fdad Tush
  16962. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16963. },
  16964. 177: {
  16965. Ffc: *(*struct {
  16966. Fcode [0]Tush
  16967. Ffreq Tush
  16968. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(283)})),
  16969. Fdl: *(*struct {
  16970. Flen1 [0]Tush
  16971. Fdad Tush
  16972. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16973. },
  16974. 178: {
  16975. Ffc: *(*struct {
  16976. Fcode [0]Tush
  16977. Ffreq Tush
  16978. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(155)})),
  16979. Fdl: *(*struct {
  16980. Flen1 [0]Tush
  16981. Fdad Tush
  16982. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16983. },
  16984. 179: {
  16985. Ffc: *(*struct {
  16986. Fcode [0]Tush
  16987. Ffreq Tush
  16988. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(411)})),
  16989. Fdl: *(*struct {
  16990. Flen1 [0]Tush
  16991. Fdad Tush
  16992. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16993. },
  16994. 180: {
  16995. Ffc: *(*struct {
  16996. Fcode [0]Tush
  16997. Ffreq Tush
  16998. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(91)})),
  16999. Fdl: *(*struct {
  17000. Flen1 [0]Tush
  17001. Fdad Tush
  17002. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17003. },
  17004. 181: {
  17005. Ffc: *(*struct {
  17006. Fcode [0]Tush
  17007. Ffreq Tush
  17008. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(347)})),
  17009. Fdl: *(*struct {
  17010. Flen1 [0]Tush
  17011. Fdad Tush
  17012. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17013. },
  17014. 182: {
  17015. Ffc: *(*struct {
  17016. Fcode [0]Tush
  17017. Ffreq Tush
  17018. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(219)})),
  17019. Fdl: *(*struct {
  17020. Flen1 [0]Tush
  17021. Fdad Tush
  17022. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17023. },
  17024. 183: {
  17025. Ffc: *(*struct {
  17026. Fcode [0]Tush
  17027. Ffreq Tush
  17028. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(475)})),
  17029. Fdl: *(*struct {
  17030. Flen1 [0]Tush
  17031. Fdad Tush
  17032. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17033. },
  17034. 184: {
  17035. Ffc: *(*struct {
  17036. Fcode [0]Tush
  17037. Ffreq Tush
  17038. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(59)})),
  17039. Fdl: *(*struct {
  17040. Flen1 [0]Tush
  17041. Fdad Tush
  17042. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17043. },
  17044. 185: {
  17045. Ffc: *(*struct {
  17046. Fcode [0]Tush
  17047. Ffreq Tush
  17048. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(315)})),
  17049. Fdl: *(*struct {
  17050. Flen1 [0]Tush
  17051. Fdad Tush
  17052. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17053. },
  17054. 186: {
  17055. Ffc: *(*struct {
  17056. Fcode [0]Tush
  17057. Ffreq Tush
  17058. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(187)})),
  17059. Fdl: *(*struct {
  17060. Flen1 [0]Tush
  17061. Fdad Tush
  17062. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17063. },
  17064. 187: {
  17065. Ffc: *(*struct {
  17066. Fcode [0]Tush
  17067. Ffreq Tush
  17068. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(443)})),
  17069. Fdl: *(*struct {
  17070. Flen1 [0]Tush
  17071. Fdad Tush
  17072. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17073. },
  17074. 188: {
  17075. Ffc: *(*struct {
  17076. Fcode [0]Tush
  17077. Ffreq Tush
  17078. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(123)})),
  17079. Fdl: *(*struct {
  17080. Flen1 [0]Tush
  17081. Fdad Tush
  17082. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17083. },
  17084. 189: {
  17085. Ffc: *(*struct {
  17086. Fcode [0]Tush
  17087. Ffreq Tush
  17088. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(379)})),
  17089. Fdl: *(*struct {
  17090. Flen1 [0]Tush
  17091. Fdad Tush
  17092. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17093. },
  17094. 190: {
  17095. Ffc: *(*struct {
  17096. Fcode [0]Tush
  17097. Ffreq Tush
  17098. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(251)})),
  17099. Fdl: *(*struct {
  17100. Flen1 [0]Tush
  17101. Fdad Tush
  17102. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17103. },
  17104. 191: {
  17105. Ffc: *(*struct {
  17106. Fcode [0]Tush
  17107. Ffreq Tush
  17108. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(507)})),
  17109. Fdl: *(*struct {
  17110. Flen1 [0]Tush
  17111. Fdad Tush
  17112. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17113. },
  17114. 192: {
  17115. Ffc: *(*struct {
  17116. Fcode [0]Tush
  17117. Ffreq Tush
  17118. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17119. Fdl: *(*struct {
  17120. Flen1 [0]Tush
  17121. Fdad Tush
  17122. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17123. },
  17124. 193: {
  17125. Ffc: *(*struct {
  17126. Fcode [0]Tush
  17127. Ffreq Tush
  17128. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(263)})),
  17129. Fdl: *(*struct {
  17130. Flen1 [0]Tush
  17131. Fdad Tush
  17132. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17133. },
  17134. 194: {
  17135. Ffc: *(*struct {
  17136. Fcode [0]Tush
  17137. Ffreq Tush
  17138. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(135)})),
  17139. Fdl: *(*struct {
  17140. Flen1 [0]Tush
  17141. Fdad Tush
  17142. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17143. },
  17144. 195: {
  17145. Ffc: *(*struct {
  17146. Fcode [0]Tush
  17147. Ffreq Tush
  17148. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(391)})),
  17149. Fdl: *(*struct {
  17150. Flen1 [0]Tush
  17151. Fdad Tush
  17152. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17153. },
  17154. 196: {
  17155. Ffc: *(*struct {
  17156. Fcode [0]Tush
  17157. Ffreq Tush
  17158. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(71)})),
  17159. Fdl: *(*struct {
  17160. Flen1 [0]Tush
  17161. Fdad Tush
  17162. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17163. },
  17164. 197: {
  17165. Ffc: *(*struct {
  17166. Fcode [0]Tush
  17167. Ffreq Tush
  17168. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(327)})),
  17169. Fdl: *(*struct {
  17170. Flen1 [0]Tush
  17171. Fdad Tush
  17172. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17173. },
  17174. 198: {
  17175. Ffc: *(*struct {
  17176. Fcode [0]Tush
  17177. Ffreq Tush
  17178. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(199)})),
  17179. Fdl: *(*struct {
  17180. Flen1 [0]Tush
  17181. Fdad Tush
  17182. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17183. },
  17184. 199: {
  17185. Ffc: *(*struct {
  17186. Fcode [0]Tush
  17187. Ffreq Tush
  17188. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(455)})),
  17189. Fdl: *(*struct {
  17190. Flen1 [0]Tush
  17191. Fdad Tush
  17192. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17193. },
  17194. 200: {
  17195. Ffc: *(*struct {
  17196. Fcode [0]Tush
  17197. Ffreq Tush
  17198. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(39)})),
  17199. Fdl: *(*struct {
  17200. Flen1 [0]Tush
  17201. Fdad Tush
  17202. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17203. },
  17204. 201: {
  17205. Ffc: *(*struct {
  17206. Fcode [0]Tush
  17207. Ffreq Tush
  17208. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(295)})),
  17209. Fdl: *(*struct {
  17210. Flen1 [0]Tush
  17211. Fdad Tush
  17212. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17213. },
  17214. 202: {
  17215. Ffc: *(*struct {
  17216. Fcode [0]Tush
  17217. Ffreq Tush
  17218. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(167)})),
  17219. Fdl: *(*struct {
  17220. Flen1 [0]Tush
  17221. Fdad Tush
  17222. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17223. },
  17224. 203: {
  17225. Ffc: *(*struct {
  17226. Fcode [0]Tush
  17227. Ffreq Tush
  17228. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(423)})),
  17229. Fdl: *(*struct {
  17230. Flen1 [0]Tush
  17231. Fdad Tush
  17232. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17233. },
  17234. 204: {
  17235. Ffc: *(*struct {
  17236. Fcode [0]Tush
  17237. Ffreq Tush
  17238. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(103)})),
  17239. Fdl: *(*struct {
  17240. Flen1 [0]Tush
  17241. Fdad Tush
  17242. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17243. },
  17244. 205: {
  17245. Ffc: *(*struct {
  17246. Fcode [0]Tush
  17247. Ffreq Tush
  17248. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(359)})),
  17249. Fdl: *(*struct {
  17250. Flen1 [0]Tush
  17251. Fdad Tush
  17252. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17253. },
  17254. 206: {
  17255. Ffc: *(*struct {
  17256. Fcode [0]Tush
  17257. Ffreq Tush
  17258. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(231)})),
  17259. Fdl: *(*struct {
  17260. Flen1 [0]Tush
  17261. Fdad Tush
  17262. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17263. },
  17264. 207: {
  17265. Ffc: *(*struct {
  17266. Fcode [0]Tush
  17267. Ffreq Tush
  17268. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(487)})),
  17269. Fdl: *(*struct {
  17270. Flen1 [0]Tush
  17271. Fdad Tush
  17272. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17273. },
  17274. 208: {
  17275. Ffc: *(*struct {
  17276. Fcode [0]Tush
  17277. Ffreq Tush
  17278. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(23)})),
  17279. Fdl: *(*struct {
  17280. Flen1 [0]Tush
  17281. Fdad Tush
  17282. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17283. },
  17284. 209: {
  17285. Ffc: *(*struct {
  17286. Fcode [0]Tush
  17287. Ffreq Tush
  17288. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(279)})),
  17289. Fdl: *(*struct {
  17290. Flen1 [0]Tush
  17291. Fdad Tush
  17292. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17293. },
  17294. 210: {
  17295. Ffc: *(*struct {
  17296. Fcode [0]Tush
  17297. Ffreq Tush
  17298. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(151)})),
  17299. Fdl: *(*struct {
  17300. Flen1 [0]Tush
  17301. Fdad Tush
  17302. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17303. },
  17304. 211: {
  17305. Ffc: *(*struct {
  17306. Fcode [0]Tush
  17307. Ffreq Tush
  17308. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(407)})),
  17309. Fdl: *(*struct {
  17310. Flen1 [0]Tush
  17311. Fdad Tush
  17312. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17313. },
  17314. 212: {
  17315. Ffc: *(*struct {
  17316. Fcode [0]Tush
  17317. Ffreq Tush
  17318. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(87)})),
  17319. Fdl: *(*struct {
  17320. Flen1 [0]Tush
  17321. Fdad Tush
  17322. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17323. },
  17324. 213: {
  17325. Ffc: *(*struct {
  17326. Fcode [0]Tush
  17327. Ffreq Tush
  17328. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(343)})),
  17329. Fdl: *(*struct {
  17330. Flen1 [0]Tush
  17331. Fdad Tush
  17332. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17333. },
  17334. 214: {
  17335. Ffc: *(*struct {
  17336. Fcode [0]Tush
  17337. Ffreq Tush
  17338. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(215)})),
  17339. Fdl: *(*struct {
  17340. Flen1 [0]Tush
  17341. Fdad Tush
  17342. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17343. },
  17344. 215: {
  17345. Ffc: *(*struct {
  17346. Fcode [0]Tush
  17347. Ffreq Tush
  17348. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(471)})),
  17349. Fdl: *(*struct {
  17350. Flen1 [0]Tush
  17351. Fdad Tush
  17352. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17353. },
  17354. 216: {
  17355. Ffc: *(*struct {
  17356. Fcode [0]Tush
  17357. Ffreq Tush
  17358. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(55)})),
  17359. Fdl: *(*struct {
  17360. Flen1 [0]Tush
  17361. Fdad Tush
  17362. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17363. },
  17364. 217: {
  17365. Ffc: *(*struct {
  17366. Fcode [0]Tush
  17367. Ffreq Tush
  17368. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(311)})),
  17369. Fdl: *(*struct {
  17370. Flen1 [0]Tush
  17371. Fdad Tush
  17372. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17373. },
  17374. 218: {
  17375. Ffc: *(*struct {
  17376. Fcode [0]Tush
  17377. Ffreq Tush
  17378. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(183)})),
  17379. Fdl: *(*struct {
  17380. Flen1 [0]Tush
  17381. Fdad Tush
  17382. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17383. },
  17384. 219: {
  17385. Ffc: *(*struct {
  17386. Fcode [0]Tush
  17387. Ffreq Tush
  17388. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(439)})),
  17389. Fdl: *(*struct {
  17390. Flen1 [0]Tush
  17391. Fdad Tush
  17392. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17393. },
  17394. 220: {
  17395. Ffc: *(*struct {
  17396. Fcode [0]Tush
  17397. Ffreq Tush
  17398. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(119)})),
  17399. Fdl: *(*struct {
  17400. Flen1 [0]Tush
  17401. Fdad Tush
  17402. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17403. },
  17404. 221: {
  17405. Ffc: *(*struct {
  17406. Fcode [0]Tush
  17407. Ffreq Tush
  17408. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(375)})),
  17409. Fdl: *(*struct {
  17410. Flen1 [0]Tush
  17411. Fdad Tush
  17412. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17413. },
  17414. 222: {
  17415. Ffc: *(*struct {
  17416. Fcode [0]Tush
  17417. Ffreq Tush
  17418. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(247)})),
  17419. Fdl: *(*struct {
  17420. Flen1 [0]Tush
  17421. Fdad Tush
  17422. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17423. },
  17424. 223: {
  17425. Ffc: *(*struct {
  17426. Fcode [0]Tush
  17427. Ffreq Tush
  17428. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(503)})),
  17429. Fdl: *(*struct {
  17430. Flen1 [0]Tush
  17431. Fdad Tush
  17432. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17433. },
  17434. 224: {
  17435. Ffc: *(*struct {
  17436. Fcode [0]Tush
  17437. Ffreq Tush
  17438. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(15)})),
  17439. Fdl: *(*struct {
  17440. Flen1 [0]Tush
  17441. Fdad Tush
  17442. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17443. },
  17444. 225: {
  17445. Ffc: *(*struct {
  17446. Fcode [0]Tush
  17447. Ffreq Tush
  17448. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(271)})),
  17449. Fdl: *(*struct {
  17450. Flen1 [0]Tush
  17451. Fdad Tush
  17452. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17453. },
  17454. 226: {
  17455. Ffc: *(*struct {
  17456. Fcode [0]Tush
  17457. Ffreq Tush
  17458. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(143)})),
  17459. Fdl: *(*struct {
  17460. Flen1 [0]Tush
  17461. Fdad Tush
  17462. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17463. },
  17464. 227: {
  17465. Ffc: *(*struct {
  17466. Fcode [0]Tush
  17467. Ffreq Tush
  17468. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(399)})),
  17469. Fdl: *(*struct {
  17470. Flen1 [0]Tush
  17471. Fdad Tush
  17472. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17473. },
  17474. 228: {
  17475. Ffc: *(*struct {
  17476. Fcode [0]Tush
  17477. Ffreq Tush
  17478. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(79)})),
  17479. Fdl: *(*struct {
  17480. Flen1 [0]Tush
  17481. Fdad Tush
  17482. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17483. },
  17484. 229: {
  17485. Ffc: *(*struct {
  17486. Fcode [0]Tush
  17487. Ffreq Tush
  17488. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(335)})),
  17489. Fdl: *(*struct {
  17490. Flen1 [0]Tush
  17491. Fdad Tush
  17492. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17493. },
  17494. 230: {
  17495. Ffc: *(*struct {
  17496. Fcode [0]Tush
  17497. Ffreq Tush
  17498. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(207)})),
  17499. Fdl: *(*struct {
  17500. Flen1 [0]Tush
  17501. Fdad Tush
  17502. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17503. },
  17504. 231: {
  17505. Ffc: *(*struct {
  17506. Fcode [0]Tush
  17507. Ffreq Tush
  17508. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(463)})),
  17509. Fdl: *(*struct {
  17510. Flen1 [0]Tush
  17511. Fdad Tush
  17512. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17513. },
  17514. 232: {
  17515. Ffc: *(*struct {
  17516. Fcode [0]Tush
  17517. Ffreq Tush
  17518. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(47)})),
  17519. Fdl: *(*struct {
  17520. Flen1 [0]Tush
  17521. Fdad Tush
  17522. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17523. },
  17524. 233: {
  17525. Ffc: *(*struct {
  17526. Fcode [0]Tush
  17527. Ffreq Tush
  17528. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(303)})),
  17529. Fdl: *(*struct {
  17530. Flen1 [0]Tush
  17531. Fdad Tush
  17532. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17533. },
  17534. 234: {
  17535. Ffc: *(*struct {
  17536. Fcode [0]Tush
  17537. Ffreq Tush
  17538. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(175)})),
  17539. Fdl: *(*struct {
  17540. Flen1 [0]Tush
  17541. Fdad Tush
  17542. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17543. },
  17544. 235: {
  17545. Ffc: *(*struct {
  17546. Fcode [0]Tush
  17547. Ffreq Tush
  17548. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(431)})),
  17549. Fdl: *(*struct {
  17550. Flen1 [0]Tush
  17551. Fdad Tush
  17552. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17553. },
  17554. 236: {
  17555. Ffc: *(*struct {
  17556. Fcode [0]Tush
  17557. Ffreq Tush
  17558. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(111)})),
  17559. Fdl: *(*struct {
  17560. Flen1 [0]Tush
  17561. Fdad Tush
  17562. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17563. },
  17564. 237: {
  17565. Ffc: *(*struct {
  17566. Fcode [0]Tush
  17567. Ffreq Tush
  17568. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(367)})),
  17569. Fdl: *(*struct {
  17570. Flen1 [0]Tush
  17571. Fdad Tush
  17572. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17573. },
  17574. 238: {
  17575. Ffc: *(*struct {
  17576. Fcode [0]Tush
  17577. Ffreq Tush
  17578. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(239)})),
  17579. Fdl: *(*struct {
  17580. Flen1 [0]Tush
  17581. Fdad Tush
  17582. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17583. },
  17584. 239: {
  17585. Ffc: *(*struct {
  17586. Fcode [0]Tush
  17587. Ffreq Tush
  17588. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(495)})),
  17589. Fdl: *(*struct {
  17590. Flen1 [0]Tush
  17591. Fdad Tush
  17592. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17593. },
  17594. 240: {
  17595. Ffc: *(*struct {
  17596. Fcode [0]Tush
  17597. Ffreq Tush
  17598. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(31)})),
  17599. Fdl: *(*struct {
  17600. Flen1 [0]Tush
  17601. Fdad Tush
  17602. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17603. },
  17604. 241: {
  17605. Ffc: *(*struct {
  17606. Fcode [0]Tush
  17607. Ffreq Tush
  17608. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(287)})),
  17609. Fdl: *(*struct {
  17610. Flen1 [0]Tush
  17611. Fdad Tush
  17612. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17613. },
  17614. 242: {
  17615. Ffc: *(*struct {
  17616. Fcode [0]Tush
  17617. Ffreq Tush
  17618. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(159)})),
  17619. Fdl: *(*struct {
  17620. Flen1 [0]Tush
  17621. Fdad Tush
  17622. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17623. },
  17624. 243: {
  17625. Ffc: *(*struct {
  17626. Fcode [0]Tush
  17627. Ffreq Tush
  17628. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(415)})),
  17629. Fdl: *(*struct {
  17630. Flen1 [0]Tush
  17631. Fdad Tush
  17632. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17633. },
  17634. 244: {
  17635. Ffc: *(*struct {
  17636. Fcode [0]Tush
  17637. Ffreq Tush
  17638. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(95)})),
  17639. Fdl: *(*struct {
  17640. Flen1 [0]Tush
  17641. Fdad Tush
  17642. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17643. },
  17644. 245: {
  17645. Ffc: *(*struct {
  17646. Fcode [0]Tush
  17647. Ffreq Tush
  17648. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(351)})),
  17649. Fdl: *(*struct {
  17650. Flen1 [0]Tush
  17651. Fdad Tush
  17652. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17653. },
  17654. 246: {
  17655. Ffc: *(*struct {
  17656. Fcode [0]Tush
  17657. Ffreq Tush
  17658. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(223)})),
  17659. Fdl: *(*struct {
  17660. Flen1 [0]Tush
  17661. Fdad Tush
  17662. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17663. },
  17664. 247: {
  17665. Ffc: *(*struct {
  17666. Fcode [0]Tush
  17667. Ffreq Tush
  17668. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(479)})),
  17669. Fdl: *(*struct {
  17670. Flen1 [0]Tush
  17671. Fdad Tush
  17672. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17673. },
  17674. 248: {
  17675. Ffc: *(*struct {
  17676. Fcode [0]Tush
  17677. Ffreq Tush
  17678. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(63)})),
  17679. Fdl: *(*struct {
  17680. Flen1 [0]Tush
  17681. Fdad Tush
  17682. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17683. },
  17684. 249: {
  17685. Ffc: *(*struct {
  17686. Fcode [0]Tush
  17687. Ffreq Tush
  17688. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(319)})),
  17689. Fdl: *(*struct {
  17690. Flen1 [0]Tush
  17691. Fdad Tush
  17692. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17693. },
  17694. 250: {
  17695. Ffc: *(*struct {
  17696. Fcode [0]Tush
  17697. Ffreq Tush
  17698. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(191)})),
  17699. Fdl: *(*struct {
  17700. Flen1 [0]Tush
  17701. Fdad Tush
  17702. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17703. },
  17704. 251: {
  17705. Ffc: *(*struct {
  17706. Fcode [0]Tush
  17707. Ffreq Tush
  17708. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(447)})),
  17709. Fdl: *(*struct {
  17710. Flen1 [0]Tush
  17711. Fdad Tush
  17712. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17713. },
  17714. 252: {
  17715. Ffc: *(*struct {
  17716. Fcode [0]Tush
  17717. Ffreq Tush
  17718. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(127)})),
  17719. Fdl: *(*struct {
  17720. Flen1 [0]Tush
  17721. Fdad Tush
  17722. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17723. },
  17724. 253: {
  17725. Ffc: *(*struct {
  17726. Fcode [0]Tush
  17727. Ffreq Tush
  17728. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(383)})),
  17729. Fdl: *(*struct {
  17730. Flen1 [0]Tush
  17731. Fdad Tush
  17732. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17733. },
  17734. 254: {
  17735. Ffc: *(*struct {
  17736. Fcode [0]Tush
  17737. Ffreq Tush
  17738. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(255)})),
  17739. Fdl: *(*struct {
  17740. Flen1 [0]Tush
  17741. Fdad Tush
  17742. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17743. },
  17744. 255: {
  17745. Ffc: *(*struct {
  17746. Fcode [0]Tush
  17747. Ffreq Tush
  17748. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(511)})),
  17749. Fdl: *(*struct {
  17750. Flen1 [0]Tush
  17751. Fdad Tush
  17752. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17753. },
  17754. 256: {
  17755. Fdl: *(*struct {
  17756. Flen1 [0]Tush
  17757. Fdad Tush
  17758. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17759. },
  17760. 257: {
  17761. Ffc: *(*struct {
  17762. Fcode [0]Tush
  17763. Ffreq Tush
  17764. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(64)})),
  17765. Fdl: *(*struct {
  17766. Flen1 [0]Tush
  17767. Fdad Tush
  17768. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17769. },
  17770. 258: {
  17771. Ffc: *(*struct {
  17772. Fcode [0]Tush
  17773. Ffreq Tush
  17774. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(32)})),
  17775. Fdl: *(*struct {
  17776. Flen1 [0]Tush
  17777. Fdad Tush
  17778. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17779. },
  17780. 259: {
  17781. Ffc: *(*struct {
  17782. Fcode [0]Tush
  17783. Ffreq Tush
  17784. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(96)})),
  17785. Fdl: *(*struct {
  17786. Flen1 [0]Tush
  17787. Fdad Tush
  17788. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17789. },
  17790. 260: {
  17791. Ffc: *(*struct {
  17792. Fcode [0]Tush
  17793. Ffreq Tush
  17794. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(16)})),
  17795. Fdl: *(*struct {
  17796. Flen1 [0]Tush
  17797. Fdad Tush
  17798. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17799. },
  17800. 261: {
  17801. Ffc: *(*struct {
  17802. Fcode [0]Tush
  17803. Ffreq Tush
  17804. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(80)})),
  17805. Fdl: *(*struct {
  17806. Flen1 [0]Tush
  17807. Fdad Tush
  17808. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17809. },
  17810. 262: {
  17811. Ffc: *(*struct {
  17812. Fcode [0]Tush
  17813. Ffreq Tush
  17814. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(48)})),
  17815. Fdl: *(*struct {
  17816. Flen1 [0]Tush
  17817. Fdad Tush
  17818. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17819. },
  17820. 263: {
  17821. Ffc: *(*struct {
  17822. Fcode [0]Tush
  17823. Ffreq Tush
  17824. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(112)})),
  17825. Fdl: *(*struct {
  17826. Flen1 [0]Tush
  17827. Fdad Tush
  17828. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17829. },
  17830. 264: {
  17831. Ffc: *(*struct {
  17832. Fcode [0]Tush
  17833. Ffreq Tush
  17834. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17835. Fdl: *(*struct {
  17836. Flen1 [0]Tush
  17837. Fdad Tush
  17838. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17839. },
  17840. 265: {
  17841. Ffc: *(*struct {
  17842. Fcode [0]Tush
  17843. Ffreq Tush
  17844. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(72)})),
  17845. Fdl: *(*struct {
  17846. Flen1 [0]Tush
  17847. Fdad Tush
  17848. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17849. },
  17850. 266: {
  17851. Ffc: *(*struct {
  17852. Fcode [0]Tush
  17853. Ffreq Tush
  17854. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(40)})),
  17855. Fdl: *(*struct {
  17856. Flen1 [0]Tush
  17857. Fdad Tush
  17858. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17859. },
  17860. 267: {
  17861. Ffc: *(*struct {
  17862. Fcode [0]Tush
  17863. Ffreq Tush
  17864. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(104)})),
  17865. Fdl: *(*struct {
  17866. Flen1 [0]Tush
  17867. Fdad Tush
  17868. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17869. },
  17870. 268: {
  17871. Ffc: *(*struct {
  17872. Fcode [0]Tush
  17873. Ffreq Tush
  17874. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(24)})),
  17875. Fdl: *(*struct {
  17876. Flen1 [0]Tush
  17877. Fdad Tush
  17878. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17879. },
  17880. 269: {
  17881. Ffc: *(*struct {
  17882. Fcode [0]Tush
  17883. Ffreq Tush
  17884. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(88)})),
  17885. Fdl: *(*struct {
  17886. Flen1 [0]Tush
  17887. Fdad Tush
  17888. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17889. },
  17890. 270: {
  17891. Ffc: *(*struct {
  17892. Fcode [0]Tush
  17893. Ffreq Tush
  17894. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(56)})),
  17895. Fdl: *(*struct {
  17896. Flen1 [0]Tush
  17897. Fdad Tush
  17898. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17899. },
  17900. 271: {
  17901. Ffc: *(*struct {
  17902. Fcode [0]Tush
  17903. Ffreq Tush
  17904. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(120)})),
  17905. Fdl: *(*struct {
  17906. Flen1 [0]Tush
  17907. Fdad Tush
  17908. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17909. },
  17910. 272: {
  17911. Ffc: *(*struct {
  17912. Fcode [0]Tush
  17913. Ffreq Tush
  17914. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(4)})),
  17915. Fdl: *(*struct {
  17916. Flen1 [0]Tush
  17917. Fdad Tush
  17918. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17919. },
  17920. 273: {
  17921. Ffc: *(*struct {
  17922. Fcode [0]Tush
  17923. Ffreq Tush
  17924. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(68)})),
  17925. Fdl: *(*struct {
  17926. Flen1 [0]Tush
  17927. Fdad Tush
  17928. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17929. },
  17930. 274: {
  17931. Ffc: *(*struct {
  17932. Fcode [0]Tush
  17933. Ffreq Tush
  17934. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(36)})),
  17935. Fdl: *(*struct {
  17936. Flen1 [0]Tush
  17937. Fdad Tush
  17938. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17939. },
  17940. 275: {
  17941. Ffc: *(*struct {
  17942. Fcode [0]Tush
  17943. Ffreq Tush
  17944. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(100)})),
  17945. Fdl: *(*struct {
  17946. Flen1 [0]Tush
  17947. Fdad Tush
  17948. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17949. },
  17950. 276: {
  17951. Ffc: *(*struct {
  17952. Fcode [0]Tush
  17953. Ffreq Tush
  17954. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(20)})),
  17955. Fdl: *(*struct {
  17956. Flen1 [0]Tush
  17957. Fdad Tush
  17958. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17959. },
  17960. 277: {
  17961. Ffc: *(*struct {
  17962. Fcode [0]Tush
  17963. Ffreq Tush
  17964. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(84)})),
  17965. Fdl: *(*struct {
  17966. Flen1 [0]Tush
  17967. Fdad Tush
  17968. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17969. },
  17970. 278: {
  17971. Ffc: *(*struct {
  17972. Fcode [0]Tush
  17973. Ffreq Tush
  17974. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(52)})),
  17975. Fdl: *(*struct {
  17976. Flen1 [0]Tush
  17977. Fdad Tush
  17978. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17979. },
  17980. 279: {
  17981. Ffc: *(*struct {
  17982. Fcode [0]Tush
  17983. Ffreq Tush
  17984. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(116)})),
  17985. Fdl: *(*struct {
  17986. Flen1 [0]Tush
  17987. Fdad Tush
  17988. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17989. },
  17990. 280: {
  17991. Ffc: *(*struct {
  17992. Fcode [0]Tush
  17993. Ffreq Tush
  17994. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(3)})),
  17995. Fdl: *(*struct {
  17996. Flen1 [0]Tush
  17997. Fdad Tush
  17998. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17999. },
  18000. 281: {
  18001. Ffc: *(*struct {
  18002. Fcode [0]Tush
  18003. Ffreq Tush
  18004. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(131)})),
  18005. Fdl: *(*struct {
  18006. Flen1 [0]Tush
  18007. Fdad Tush
  18008. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18009. },
  18010. 282: {
  18011. Ffc: *(*struct {
  18012. Fcode [0]Tush
  18013. Ffreq Tush
  18014. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(67)})),
  18015. Fdl: *(*struct {
  18016. Flen1 [0]Tush
  18017. Fdad Tush
  18018. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18019. },
  18020. 283: {
  18021. Ffc: *(*struct {
  18022. Fcode [0]Tush
  18023. Ffreq Tush
  18024. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(195)})),
  18025. Fdl: *(*struct {
  18026. Flen1 [0]Tush
  18027. Fdad Tush
  18028. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18029. },
  18030. 284: {
  18031. Ffc: *(*struct {
  18032. Fcode [0]Tush
  18033. Ffreq Tush
  18034. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(35)})),
  18035. Fdl: *(*struct {
  18036. Flen1 [0]Tush
  18037. Fdad Tush
  18038. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18039. },
  18040. 285: {
  18041. Ffc: *(*struct {
  18042. Fcode [0]Tush
  18043. Ffreq Tush
  18044. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(163)})),
  18045. Fdl: *(*struct {
  18046. Flen1 [0]Tush
  18047. Fdad Tush
  18048. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18049. },
  18050. 286: {
  18051. Ffc: *(*struct {
  18052. Fcode [0]Tush
  18053. Ffreq Tush
  18054. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(99)})),
  18055. Fdl: *(*struct {
  18056. Flen1 [0]Tush
  18057. Fdad Tush
  18058. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18059. },
  18060. 287: {
  18061. Ffc: *(*struct {
  18062. Fcode [0]Tush
  18063. Ffreq Tush
  18064. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(227)})),
  18065. Fdl: *(*struct {
  18066. Flen1 [0]Tush
  18067. Fdad Tush
  18068. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18069. },
  18070. }
  18071. var _static_dtree = [30]Tct_data{
  18072. 0: {
  18073. Fdl: *(*struct {
  18074. Flen1 [0]Tush
  18075. Fdad Tush
  18076. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18077. },
  18078. 1: {
  18079. Ffc: *(*struct {
  18080. Fcode [0]Tush
  18081. Ffreq Tush
  18082. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(16)})),
  18083. Fdl: *(*struct {
  18084. Flen1 [0]Tush
  18085. Fdad Tush
  18086. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18087. },
  18088. 2: {
  18089. Ffc: *(*struct {
  18090. Fcode [0]Tush
  18091. Ffreq Tush
  18092. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18093. Fdl: *(*struct {
  18094. Flen1 [0]Tush
  18095. Fdad Tush
  18096. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18097. },
  18098. 3: {
  18099. Ffc: *(*struct {
  18100. Fcode [0]Tush
  18101. Ffreq Tush
  18102. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(24)})),
  18103. Fdl: *(*struct {
  18104. Flen1 [0]Tush
  18105. Fdad Tush
  18106. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18107. },
  18108. 4: {
  18109. Ffc: *(*struct {
  18110. Fcode [0]Tush
  18111. Ffreq Tush
  18112. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(4)})),
  18113. Fdl: *(*struct {
  18114. Flen1 [0]Tush
  18115. Fdad Tush
  18116. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18117. },
  18118. 5: {
  18119. Ffc: *(*struct {
  18120. Fcode [0]Tush
  18121. Ffreq Tush
  18122. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(20)})),
  18123. Fdl: *(*struct {
  18124. Flen1 [0]Tush
  18125. Fdad Tush
  18126. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18127. },
  18128. 6: {
  18129. Ffc: *(*struct {
  18130. Fcode [0]Tush
  18131. Ffreq Tush
  18132. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(12)})),
  18133. Fdl: *(*struct {
  18134. Flen1 [0]Tush
  18135. Fdad Tush
  18136. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18137. },
  18138. 7: {
  18139. Ffc: *(*struct {
  18140. Fcode [0]Tush
  18141. Ffreq Tush
  18142. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(28)})),
  18143. Fdl: *(*struct {
  18144. Flen1 [0]Tush
  18145. Fdad Tush
  18146. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18147. },
  18148. 8: {
  18149. Ffc: *(*struct {
  18150. Fcode [0]Tush
  18151. Ffreq Tush
  18152. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(2)})),
  18153. Fdl: *(*struct {
  18154. Flen1 [0]Tush
  18155. Fdad Tush
  18156. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18157. },
  18158. 9: {
  18159. Ffc: *(*struct {
  18160. Fcode [0]Tush
  18161. Ffreq Tush
  18162. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(18)})),
  18163. Fdl: *(*struct {
  18164. Flen1 [0]Tush
  18165. Fdad Tush
  18166. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18167. },
  18168. 10: {
  18169. Ffc: *(*struct {
  18170. Fcode [0]Tush
  18171. Ffreq Tush
  18172. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(10)})),
  18173. Fdl: *(*struct {
  18174. Flen1 [0]Tush
  18175. Fdad Tush
  18176. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18177. },
  18178. 11: {
  18179. Ffc: *(*struct {
  18180. Fcode [0]Tush
  18181. Ffreq Tush
  18182. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(26)})),
  18183. Fdl: *(*struct {
  18184. Flen1 [0]Tush
  18185. Fdad Tush
  18186. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18187. },
  18188. 12: {
  18189. Ffc: *(*struct {
  18190. Fcode [0]Tush
  18191. Ffreq Tush
  18192. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(6)})),
  18193. Fdl: *(*struct {
  18194. Flen1 [0]Tush
  18195. Fdad Tush
  18196. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18197. },
  18198. 13: {
  18199. Ffc: *(*struct {
  18200. Fcode [0]Tush
  18201. Ffreq Tush
  18202. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(22)})),
  18203. Fdl: *(*struct {
  18204. Flen1 [0]Tush
  18205. Fdad Tush
  18206. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18207. },
  18208. 14: {
  18209. Ffc: *(*struct {
  18210. Fcode [0]Tush
  18211. Ffreq Tush
  18212. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(14)})),
  18213. Fdl: *(*struct {
  18214. Flen1 [0]Tush
  18215. Fdad Tush
  18216. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18217. },
  18218. 15: {
  18219. Ffc: *(*struct {
  18220. Fcode [0]Tush
  18221. Ffreq Tush
  18222. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(30)})),
  18223. Fdl: *(*struct {
  18224. Flen1 [0]Tush
  18225. Fdad Tush
  18226. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18227. },
  18228. 16: {
  18229. Ffc: *(*struct {
  18230. Fcode [0]Tush
  18231. Ffreq Tush
  18232. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(1)})),
  18233. Fdl: *(*struct {
  18234. Flen1 [0]Tush
  18235. Fdad Tush
  18236. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18237. },
  18238. 17: {
  18239. Ffc: *(*struct {
  18240. Fcode [0]Tush
  18241. Ffreq Tush
  18242. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(17)})),
  18243. Fdl: *(*struct {
  18244. Flen1 [0]Tush
  18245. Fdad Tush
  18246. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18247. },
  18248. 18: {
  18249. Ffc: *(*struct {
  18250. Fcode [0]Tush
  18251. Ffreq Tush
  18252. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18253. Fdl: *(*struct {
  18254. Flen1 [0]Tush
  18255. Fdad Tush
  18256. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18257. },
  18258. 19: {
  18259. Ffc: *(*struct {
  18260. Fcode [0]Tush
  18261. Ffreq Tush
  18262. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(25)})),
  18263. Fdl: *(*struct {
  18264. Flen1 [0]Tush
  18265. Fdad Tush
  18266. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18267. },
  18268. 20: {
  18269. Ffc: *(*struct {
  18270. Fcode [0]Tush
  18271. Ffreq Tush
  18272. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18273. Fdl: *(*struct {
  18274. Flen1 [0]Tush
  18275. Fdad Tush
  18276. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18277. },
  18278. 21: {
  18279. Ffc: *(*struct {
  18280. Fcode [0]Tush
  18281. Ffreq Tush
  18282. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(21)})),
  18283. Fdl: *(*struct {
  18284. Flen1 [0]Tush
  18285. Fdad Tush
  18286. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18287. },
  18288. 22: {
  18289. Ffc: *(*struct {
  18290. Fcode [0]Tush
  18291. Ffreq Tush
  18292. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(13)})),
  18293. Fdl: *(*struct {
  18294. Flen1 [0]Tush
  18295. Fdad Tush
  18296. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18297. },
  18298. 23: {
  18299. Ffc: *(*struct {
  18300. Fcode [0]Tush
  18301. Ffreq Tush
  18302. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(29)})),
  18303. Fdl: *(*struct {
  18304. Flen1 [0]Tush
  18305. Fdad Tush
  18306. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18307. },
  18308. 24: {
  18309. Ffc: *(*struct {
  18310. Fcode [0]Tush
  18311. Ffreq Tush
  18312. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(3)})),
  18313. Fdl: *(*struct {
  18314. Flen1 [0]Tush
  18315. Fdad Tush
  18316. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18317. },
  18318. 25: {
  18319. Ffc: *(*struct {
  18320. Fcode [0]Tush
  18321. Ffreq Tush
  18322. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(19)})),
  18323. Fdl: *(*struct {
  18324. Flen1 [0]Tush
  18325. Fdad Tush
  18326. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18327. },
  18328. 26: {
  18329. Ffc: *(*struct {
  18330. Fcode [0]Tush
  18331. Ffreq Tush
  18332. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(11)})),
  18333. Fdl: *(*struct {
  18334. Flen1 [0]Tush
  18335. Fdad Tush
  18336. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18337. },
  18338. 27: {
  18339. Ffc: *(*struct {
  18340. Fcode [0]Tush
  18341. Ffreq Tush
  18342. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(27)})),
  18343. Fdl: *(*struct {
  18344. Flen1 [0]Tush
  18345. Fdad Tush
  18346. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18347. },
  18348. 28: {
  18349. Ffc: *(*struct {
  18350. Fcode [0]Tush
  18351. Ffreq Tush
  18352. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  18353. Fdl: *(*struct {
  18354. Flen1 [0]Tush
  18355. Fdad Tush
  18356. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18357. },
  18358. 29: {
  18359. Ffc: *(*struct {
  18360. Fcode [0]Tush
  18361. Ffreq Tush
  18362. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(23)})),
  18363. Fdl: *(*struct {
  18364. Flen1 [0]Tush
  18365. Fdad Tush
  18366. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18367. },
  18368. }
  18369. var _base_length = [29]int32{
  18370. 1: int32(1),
  18371. 2: int32(2),
  18372. 3: int32(3),
  18373. 4: int32(4),
  18374. 5: int32(5),
  18375. 6: int32(6),
  18376. 7: int32(7),
  18377. 8: int32(8),
  18378. 9: int32(10),
  18379. 10: int32(12),
  18380. 11: int32(14),
  18381. 12: int32(16),
  18382. 13: int32(20),
  18383. 14: int32(24),
  18384. 15: int32(28),
  18385. 16: int32(32),
  18386. 17: int32(40),
  18387. 18: int32(48),
  18388. 19: int32(56),
  18389. 20: int32(64),
  18390. 21: int32(80),
  18391. 22: int32(96),
  18392. 23: int32(112),
  18393. 24: int32(128),
  18394. 25: int32(160),
  18395. 26: int32(192),
  18396. 27: int32(224),
  18397. }
  18398. var _base_dist = [30]int32{
  18399. 1: int32(1),
  18400. 2: int32(2),
  18401. 3: int32(3),
  18402. 4: int32(4),
  18403. 5: int32(6),
  18404. 6: int32(8),
  18405. 7: int32(12),
  18406. 8: int32(16),
  18407. 9: int32(24),
  18408. 10: int32(32),
  18409. 11: int32(48),
  18410. 12: int32(64),
  18411. 13: int32(96),
  18412. 14: int32(128),
  18413. 15: int32(192),
  18414. 16: int32(256),
  18415. 17: int32(384),
  18416. 18: int32(512),
  18417. 19: int32(768),
  18418. 20: int32(1024),
  18419. 21: int32(1536),
  18420. 22: int32(2048),
  18421. 23: int32(3072),
  18422. 24: int32(4096),
  18423. 25: int32(6144),
  18424. 26: int32(8192),
  18425. 27: int32(12288),
  18426. 28: int32(16384),
  18427. 29: int32(24576),
  18428. }
  18429. var _static_l_desc = Tstatic_tree_desc{
  18430. Fstatic_tree: uintptr(unsafe.Pointer(&_static_ltree)),
  18431. Fextra_bits: uintptr(unsafe.Pointer(&_extra_lbits)),
  18432. Fextra_base: libc.Int32FromInt32(m_LITERALS) + libc.Int32FromInt32(1),
  18433. Felems: libc.Int32FromInt32(m_LITERALS) + libc.Int32FromInt32(1) + libc.Int32FromInt32(m_LENGTH_CODES),
  18434. Fmax_length: int32(m_MAX_BITS),
  18435. }
  18436. var _static_d_desc = Tstatic_tree_desc{
  18437. Fstatic_tree: uintptr(unsafe.Pointer(&_static_dtree)),
  18438. Fextra_bits: uintptr(unsafe.Pointer(&_extra_dbits)),
  18439. Felems: int32(m_D_CODES),
  18440. Fmax_length: int32(m_MAX_BITS),
  18441. }
  18442. var _static_bl_desc = Tstatic_tree_desc{
  18443. Fextra_bits: uintptr(unsafe.Pointer(&_extra_blbits)),
  18444. Felems: int32(m_BL_CODES),
  18445. Fmax_length: int32(m_MAX_BL_BITS),
  18446. }
  18447. /* ===========================================================================
  18448. * Output a short LSB first on the stream.
  18449. * IN assertion: there is enough room in pendingBuf.
  18450. */
  18451. // C documentation
  18452. //
  18453. // /* ===========================================================================
  18454. // * Reverse the first len bits of a code, using straightforward code (a faster
  18455. // * method would use a table)
  18456. // * IN assertion: 1 <= len <= 15
  18457. // */
  18458. func _bi_reverse(tls *libc.TLS, code uint32, len1 int32) (r uint32) {
  18459. var res uint32
  18460. var v1 int32
  18461. _, _ = res, v1
  18462. res = uint32(0)
  18463. for {
  18464. res |= code & uint32(1)
  18465. code >>= uint32(1)
  18466. res <<= uint32(1)
  18467. goto _2
  18468. _2:
  18469. ;
  18470. len1--
  18471. v1 = len1
  18472. if !(v1 > 0) {
  18473. break
  18474. }
  18475. }
  18476. return res >> int32(1)
  18477. }
  18478. // C documentation
  18479. //
  18480. // /* ===========================================================================
  18481. // * Flush the bit buffer, keeping at most 7 bits in it.
  18482. // */
  18483. func _bi_flush(tls *libc.TLS, s uintptr) {
  18484. var v1, v3, v5 Tulg
  18485. var v2, v4, v6, p7 uintptr
  18486. _, _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6, p7
  18487. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid == int32(16) {
  18488. v2 = s + 40
  18489. v1 = *(*Tulg)(unsafe.Pointer(v2))
  18490. *(*Tulg)(unsafe.Pointer(v2))++
  18491. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  18492. v4 = s + 40
  18493. v3 = *(*Tulg)(unsafe.Pointer(v4))
  18494. *(*Tulg)(unsafe.Pointer(v4))++
  18495. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  18496. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  18497. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  18498. } else {
  18499. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid >= int32(8) {
  18500. v6 = s + 40
  18501. v5 = *(*Tulg)(unsafe.Pointer(v6))
  18502. *(*Tulg)(unsafe.Pointer(v6))++
  18503. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf)
  18504. p7 = s + 5936
  18505. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) >> libc.Int32FromInt32(8))
  18506. *(*int32)(unsafe.Pointer(s + 5940)) -= int32(8)
  18507. }
  18508. }
  18509. }
  18510. // C documentation
  18511. //
  18512. // /* ===========================================================================
  18513. // * Flush the bit buffer and align the output on a byte boundary
  18514. // */
  18515. func _bi_windup(tls *libc.TLS, s uintptr) {
  18516. var v1, v3, v5 Tulg
  18517. var v2, v4, v6 uintptr
  18518. _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6
  18519. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > int32(8) {
  18520. v2 = s + 40
  18521. v1 = *(*Tulg)(unsafe.Pointer(v2))
  18522. *(*Tulg)(unsafe.Pointer(v2))++
  18523. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  18524. v4 = s + 40
  18525. v3 = *(*Tulg)(unsafe.Pointer(v4))
  18526. *(*Tulg)(unsafe.Pointer(v4))++
  18527. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  18528. } else {
  18529. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > 0 {
  18530. v6 = s + 40
  18531. v5 = *(*Tulg)(unsafe.Pointer(v6))
  18532. *(*Tulg)(unsafe.Pointer(v6))++
  18533. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf)
  18534. }
  18535. }
  18536. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  18537. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  18538. }
  18539. // C documentation
  18540. //
  18541. // /* ===========================================================================
  18542. // * Generate the codes for a given tree and bit counts (which need not be
  18543. // * optimal).
  18544. // * IN assertion: the array bl_count contains the bit length statistics for
  18545. // * the given tree and the field len is set for all tree elements.
  18546. // * OUT assertion: the field code is set for all tree elements of non
  18547. // * zero code length.
  18548. // */
  18549. func _gen_codes(tls *libc.TLS, tree uintptr, max_code int32, bl_count uintptr) {
  18550. bp := tls.Alloc(32)
  18551. defer tls.Free(32)
  18552. var bits, len1, n int32
  18553. var code uint32
  18554. var v3 Tush
  18555. var v4 uintptr
  18556. var _ /* next_code at bp+0 */ [16]Tush
  18557. _, _, _, _, _, _ = bits, code, len1, n, v3, v4 /* next code value for each bit length */
  18558. code = uint32(0) /* code index */
  18559. /* The distribution counts are first used to generate the code values
  18560. * without bit reversal.
  18561. */
  18562. bits = int32(1)
  18563. for {
  18564. if !(bits <= int32(m_MAX_BITS)) {
  18565. break
  18566. }
  18567. code = (code + uint32(*(*Tushf)(unsafe.Pointer(bl_count + uintptr(bits-int32(1))*2)))) << int32(1)
  18568. (*(*[16]Tush)(unsafe.Pointer(bp)))[bits] = uint16(code)
  18569. goto _1
  18570. _1:
  18571. ;
  18572. bits++
  18573. }
  18574. /* Check that the bit counts in bl_count are consistent. The last code
  18575. * must be all ones.
  18576. */
  18577. n = 0
  18578. for {
  18579. if !(n <= max_code) {
  18580. break
  18581. }
  18582. len1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)))
  18583. if len1 == 0 {
  18584. goto _2
  18585. }
  18586. /* Now reverse the bits */
  18587. v4 = bp + uintptr(len1)*2
  18588. v3 = *(*Tush)(unsafe.Pointer(v4))
  18589. *(*Tush)(unsafe.Pointer(v4))++
  18590. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4)) = uint16(_bi_reverse(tls, uint32(v3), len1))
  18591. goto _2
  18592. _2:
  18593. ;
  18594. n++
  18595. }
  18596. }
  18597. /* Send a code of the given tree. c and tree must not have side effects */
  18598. /* ===========================================================================
  18599. * Send a value on a given number of bits.
  18600. * IN assertion: length <= 16 and value fits in length bits.
  18601. */
  18602. /* the arguments must not have side effects */
  18603. // C documentation
  18604. //
  18605. // /* ===========================================================================
  18606. // * Initialize the various 'constant' tables.
  18607. // */
  18608. func _tr_static_init(tls *libc.TLS) {
  18609. }
  18610. /* ===========================================================================
  18611. * Generate the file trees.h describing the static trees.
  18612. */
  18613. // C documentation
  18614. //
  18615. // /* ===========================================================================
  18616. // * Initialize a new block.
  18617. // */
  18618. func _init_block(tls *libc.TLS, s uintptr) {
  18619. var n int32
  18620. var v4 Tulg
  18621. var v5 TuInt
  18622. _, _, _ = n, v4, v5 /* iterates over tree elements */
  18623. /* Initialize the trees. */
  18624. n = 0
  18625. for {
  18626. if !(n < libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES)) {
  18627. break
  18628. }
  18629. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(n)*4)) = uint16(0)
  18630. goto _1
  18631. _1:
  18632. ;
  18633. n++
  18634. }
  18635. n = 0
  18636. for {
  18637. if !(n < int32(m_D_CODES)) {
  18638. break
  18639. }
  18640. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(n)*4)) = uint16(0)
  18641. goto _2
  18642. _2:
  18643. ;
  18644. n++
  18645. }
  18646. n = 0
  18647. for {
  18648. if !(n < int32(m_BL_CODES)) {
  18649. break
  18650. }
  18651. *(*Tush)(unsafe.Pointer(s + 2748 + uintptr(n)*4)) = uint16(0)
  18652. goto _3
  18653. _3:
  18654. ;
  18655. n++
  18656. }
  18657. *(*Tush)(unsafe.Pointer(s + 212 + 256*4)) = uint16(1)
  18658. v4 = libc.Uint64FromInt64(0)
  18659. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatic_len = v4
  18660. (*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len = v4
  18661. v5 = libc.Uint32FromInt32(0)
  18662. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = v5
  18663. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next = v5
  18664. }
  18665. // C documentation
  18666. //
  18667. // /* ===========================================================================
  18668. // * Initialize the tree data structures for a new zlib stream.
  18669. // */
  18670. func x__tr_init(tls *libc.TLS, s uintptr) {
  18671. _tr_static_init(tls)
  18672. (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fdyn_tree = s + 212
  18673. (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_l_desc))
  18674. (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fdyn_tree = s + 2504
  18675. (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_d_desc))
  18676. (*Tdeflate_state)(unsafe.Pointer(s)).Fbl_desc.Fdyn_tree = s + 2748
  18677. (*Tdeflate_state)(unsafe.Pointer(s)).Fbl_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_bl_desc))
  18678. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  18679. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  18680. /* Initialize the first block of the first file: */
  18681. _init_block(tls, s)
  18682. }
  18683. /* Index within the heap array of least frequent node in the Huffman tree */
  18684. /* ===========================================================================
  18685. * Remove the smallest element from the heap and recreate the heap with
  18686. * one less element. Updates heap and heap_len.
  18687. */
  18688. /* ===========================================================================
  18689. * Compares to subtrees, using the tree depth as tie breaker when
  18690. * the subtrees have equal frequency. This minimizes the worst case length.
  18691. */
  18692. // C documentation
  18693. //
  18694. // /* ===========================================================================
  18695. // * Restore the heap property by moving down the tree starting at node k,
  18696. // * exchanging a node with the smallest of its two sons if necessary, stopping
  18697. // * when the heap property is re-established (each father smaller than its
  18698. // * two sons).
  18699. // */
  18700. func _pqdownheap(tls *libc.TLS, s uintptr, tree uintptr, k int32) {
  18701. var j, v int32
  18702. _, _ = j, v
  18703. v = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(k)*4))
  18704. j = k << int32(1) /* left son of k */
  18705. for j <= (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len {
  18706. /* Set j to the smallest of the two sons: */
  18707. if j < (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len && (libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j+int32(1))*4)))*4))) < libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) || libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j+int32(1))*4)))*4))) == libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) && libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j+int32(1))*4)))))) <= libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4))))))) {
  18708. j++
  18709. }
  18710. /* Exit if v is smaller than both sons */
  18711. if libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(v)*4))) < libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) || libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(v)*4))) == libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) && libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(v)))) <= libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))))) {
  18712. break
  18713. }
  18714. /* Exchange v with the smallest son */
  18715. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(k)*4)) = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4))
  18716. k = j
  18717. /* And continue down the tree, setting j to the left son of k */
  18718. j <<= int32(1)
  18719. }
  18720. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(k)*4)) = v
  18721. }
  18722. // C documentation
  18723. //
  18724. // /* ===========================================================================
  18725. // * Compute the optimal bit lengths for a tree and update the total bit length
  18726. // * for the current block.
  18727. // * IN assertion: the fields freq and dad are set, heap[heap_max] and
  18728. // * above are the tree nodes sorted by increasing frequency.
  18729. // * OUT assertions: the field len is set to the optimal bit length, the
  18730. // * array bl_count contains the frequencies for each bit length.
  18731. // * The length opt_len is updated; static_len is also updated if stree is
  18732. // * not null.
  18733. // */
  18734. func _gen_bitlen(tls *libc.TLS, s uintptr, desc uintptr) {
  18735. var base, bits, h, m, max_code, max_length, n, overflow, xbits, v5 int32
  18736. var extra, stree, tree, p3 uintptr
  18737. var f Tush
  18738. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = base, bits, extra, f, h, m, max_code, max_length, n, overflow, stree, tree, xbits, v5, p3
  18739. tree = (*Ttree_desc)(unsafe.Pointer(desc)).Fdyn_tree
  18740. max_code = (*Ttree_desc)(unsafe.Pointer(desc)).Fmax_code
  18741. stree = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fstatic_tree
  18742. extra = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fextra_bits
  18743. base = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fextra_base
  18744. max_length = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fmax_length /* frequency */
  18745. overflow = 0 /* number of elements with bit length too large */
  18746. bits = 0
  18747. for {
  18748. if !(bits <= int32(m_MAX_BITS)) {
  18749. break
  18750. }
  18751. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2)) = uint16(0)
  18752. goto _1
  18753. _1:
  18754. ;
  18755. bits++
  18756. }
  18757. /* In a first pass, compute the optimal bit lengths (which may
  18758. * overflow in the case of the bit length tree).
  18759. */
  18760. *(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fheap_max)*4)))*4 + 2)) = uint16(0) /* root of the heap */
  18761. h = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_max + int32(1)
  18762. for {
  18763. if !(h < libc.Int32FromInt32(2)*(libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES))+libc.Int32FromInt32(1)) {
  18764. break
  18765. }
  18766. n = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(h)*4))
  18767. bits = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)))*4 + 2))) + int32(1)
  18768. if bits > max_length {
  18769. bits = max_length
  18770. overflow++
  18771. }
  18772. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = libc.Uint16FromInt32(bits)
  18773. /* We overwrite tree[n].Dad which is no longer needed */
  18774. if n > max_code {
  18775. goto _2
  18776. } /* not a leaf node */
  18777. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2))++
  18778. xbits = 0
  18779. if n >= base {
  18780. xbits = *(*Tintf)(unsafe.Pointer(extra + uintptr(n-base)*4))
  18781. }
  18782. f = *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))
  18783. *(*Tulg)(unsafe.Pointer(s + 5912)) += uint64(f) * uint64(libc.Uint32FromInt32(bits+xbits))
  18784. if stree != 0 {
  18785. *(*Tulg)(unsafe.Pointer(s + 5920)) += uint64(f) * uint64(libc.Uint32FromInt32(libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(stree + uintptr(n)*4 + 2)))+xbits))
  18786. }
  18787. goto _2
  18788. _2:
  18789. ;
  18790. h++
  18791. }
  18792. if overflow == 0 {
  18793. return
  18794. }
  18795. /* This happens for example on obj2 and pic of the Calgary corpus */
  18796. /* Find the first bit length which could increase: */
  18797. for cond := true; cond; cond = overflow > 0 {
  18798. bits = max_length - int32(1)
  18799. for libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2))) == 0 {
  18800. bits--
  18801. }
  18802. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2))-- /* move one leaf down the tree */
  18803. p3 = s + 2976 + uintptr(bits+int32(1))*2
  18804. *(*Tush)(unsafe.Pointer(p3)) = Tush(int32(*(*Tush)(unsafe.Pointer(p3))) + libc.Int32FromInt32(2)) /* move one overflow item as its brother */
  18805. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(max_length)*2))--
  18806. /* The brother of the overflow item also moves one step up,
  18807. * but this does not affect bl_count[max_length]
  18808. */
  18809. overflow -= int32(2)
  18810. }
  18811. /* Now recompute all bit lengths, scanning in increasing frequency.
  18812. * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
  18813. * lengths instead of fixing only the wrong ones. This idea is taken
  18814. * from 'ar' written by Haruhiko Okumura.)
  18815. */
  18816. bits = max_length
  18817. for {
  18818. if !(bits != 0) {
  18819. break
  18820. }
  18821. n = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2)))
  18822. for n != 0 {
  18823. h--
  18824. v5 = h
  18825. m = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v5)*4))
  18826. if m > max_code {
  18827. continue
  18828. }
  18829. if uint32(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2))) != libc.Uint32FromInt32(bits) {
  18830. *(*Tulg)(unsafe.Pointer(s + 5912)) += (libc.Uint64FromInt32(bits) - uint64(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)))) * uint64(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4)))
  18831. *(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)) = libc.Uint16FromInt32(bits)
  18832. }
  18833. n--
  18834. }
  18835. goto _4
  18836. _4:
  18837. ;
  18838. bits--
  18839. }
  18840. }
  18841. // C documentation
  18842. //
  18843. // /* ===========================================================================
  18844. // * Construct one Huffman tree and assigns the code bit strings and lengths.
  18845. // * Update the total bit length for the current block.
  18846. // * IN assertion: the field freq is set for all tree elements.
  18847. // * OUT assertions: the fields len and code are set to the optimal bit length
  18848. // * and corresponding code. The length opt_len is updated; static_len is
  18849. // * also updated if stree is not null. The field max_code is set.
  18850. // */
  18851. func _build_tree(tls *libc.TLS, s uintptr, desc uintptr) {
  18852. var elems, m, max_code, n, node, v11, v13, v15, v17, v19, v2, v20, v4, v5, v6, v7, v8 int32
  18853. var stree, tree, v12, v14, v16, v21, v3, v9 uintptr
  18854. var v18 Tush
  18855. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  18856. tree = (*Ttree_desc)(unsafe.Pointer(desc)).Fdyn_tree
  18857. stree = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fstatic_tree
  18858. elems = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Felems /* iterate over heap elements */
  18859. max_code = -int32(1) /* new node being created */
  18860. /* Construct the initial heap, with least frequent element in
  18861. * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n + 1].
  18862. * heap[0] is not used.
  18863. */
  18864. (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len = 0 /* new node being created */
  18865. /* Construct the initial heap, with least frequent element in
  18866. * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n + 1].
  18867. * heap[0] is not used.
  18868. */
  18869. (*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)
  18870. n = 0
  18871. for {
  18872. if !(n < elems) {
  18873. break
  18874. }
  18875. if libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))) != 0 {
  18876. v3 = s + 5300
  18877. *(*int32)(unsafe.Pointer(v3))++
  18878. v2 = *(*int32)(unsafe.Pointer(v3))
  18879. v4 = n
  18880. max_code = v4
  18881. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v2)*4)) = v4
  18882. *(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(n))) = uint8(0)
  18883. } else {
  18884. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = uint16(0)
  18885. }
  18886. goto _1
  18887. _1:
  18888. ;
  18889. n++
  18890. }
  18891. /* The pkzip format requires that at least one distance code exists,
  18892. * and that at least one bit should be sent even if there is only one
  18893. * possible code. So to avoid special checks later on we force at least
  18894. * two codes of non zero frequency.
  18895. */
  18896. for (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len < int32(2) {
  18897. if max_code < int32(2) {
  18898. max_code++
  18899. v7 = max_code
  18900. v6 = v7
  18901. } else {
  18902. v6 = 0
  18903. }
  18904. v5 = v6
  18905. v9 = s + 5300
  18906. *(*int32)(unsafe.Pointer(v9))++
  18907. v8 = *(*int32)(unsafe.Pointer(v9))
  18908. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v8)*4)) = v5
  18909. node = v5
  18910. *(*Tush)(unsafe.Pointer(tree + uintptr(node)*4)) = uint16(1)
  18911. *(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(node))) = uint8(0)
  18912. (*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len--
  18913. if stree != 0 {
  18914. *(*Tulg)(unsafe.Pointer(s + 5920)) -= uint64(*(*Tush)(unsafe.Pointer(stree + uintptr(node)*4 + 2)))
  18915. }
  18916. /* node is 0 or 1 so it does not have extra bits */
  18917. }
  18918. (*Ttree_desc)(unsafe.Pointer(desc)).Fmax_code = max_code
  18919. /* The elements heap[heap_len/2 + 1 .. heap_len] are leaves of the tree,
  18920. * establish sub-heaps of increasing lengths:
  18921. */
  18922. n = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len / int32(2)
  18923. for {
  18924. if !(n >= int32(1)) {
  18925. break
  18926. }
  18927. _pqdownheap(tls, s, tree, n)
  18928. goto _10
  18929. _10:
  18930. ;
  18931. n--
  18932. }
  18933. /* Construct the Huffman tree by repeatedly combining the least two
  18934. * frequent nodes.
  18935. */
  18936. node = elems /* next internal node of the tree */
  18937. for cond := true; cond; cond = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len >= int32(2) {
  18938. n = *(*int32)(unsafe.Pointer(s + 3008 + 1*4))
  18939. v12 = s + 5300
  18940. v11 = *(*int32)(unsafe.Pointer(v12))
  18941. *(*int32)(unsafe.Pointer(v12))--
  18942. *(*int32)(unsafe.Pointer(s + 3008 + 1*4)) = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v11)*4))
  18943. _pqdownheap(tls, s, tree, int32(m_SMALLEST)) /* n = node of least frequency */
  18944. m = *(*int32)(unsafe.Pointer(s + 3008 + 1*4)) /* m = node of next least frequency */
  18945. v14 = s + 5304
  18946. *(*int32)(unsafe.Pointer(v14))--
  18947. v13 = *(*int32)(unsafe.Pointer(v14))
  18948. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v13)*4)) = n /* keep the nodes sorted by frequency */
  18949. v16 = s + 5304
  18950. *(*int32)(unsafe.Pointer(v16))--
  18951. v15 = *(*int32)(unsafe.Pointer(v16))
  18952. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v15)*4)) = m
  18953. /* Create a new node father of n and m */
  18954. *(*Tush)(unsafe.Pointer(tree + uintptr(node)*4)) = libc.Uint16FromInt32(libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))) + libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4))))
  18955. if libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(n)))) >= libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(m)))) {
  18956. v17 = libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(n))))
  18957. } else {
  18958. v17 = libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(m))))
  18959. }
  18960. *(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(node))) = libc.Uint8FromInt32(v17 + libc.Int32FromInt32(1))
  18961. v18 = libc.Uint16FromInt32(node)
  18962. *(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)) = v18
  18963. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = v18
  18964. /* and insert the new node in the heap */
  18965. v19 = node
  18966. node++
  18967. *(*int32)(unsafe.Pointer(s + 3008 + 1*4)) = v19
  18968. _pqdownheap(tls, s, tree, int32(m_SMALLEST))
  18969. }
  18970. v21 = s + 5304
  18971. *(*int32)(unsafe.Pointer(v21))--
  18972. v20 = *(*int32)(unsafe.Pointer(v21))
  18973. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v20)*4)) = *(*int32)(unsafe.Pointer(s + 3008 + 1*4))
  18974. /* At this point, the fields freq and dad are set. We can now
  18975. * generate the bit lengths.
  18976. */
  18977. _gen_bitlen(tls, s, desc)
  18978. /* The field len is now set, we can generate the bit codes */
  18979. _gen_codes(tls, tree, max_code, s+2976)
  18980. }
  18981. // C documentation
  18982. //
  18983. // /* ===========================================================================
  18984. // * Scan a literal or distance tree to determine the frequencies of the codes
  18985. // * in the bit length tree.
  18986. // */
  18987. func _scan_tree(tls *libc.TLS, s uintptr, tree uintptr, max_code int32) {
  18988. var count, curlen, max_count, min_count, n, nextlen, prevlen, v2 int32
  18989. var p3 uintptr
  18990. _, _, _, _, _, _, _, _, _ = count, curlen, max_count, min_count, n, nextlen, prevlen, v2, p3 /* iterates over all tree elements */
  18991. prevlen = -int32(1) /* length of current code */
  18992. nextlen = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + 2))) /* length of next code */
  18993. count = 0 /* repeat count of the current code */
  18994. max_count = int32(7) /* max repeat count */
  18995. min_count = int32(4) /* min repeat count */
  18996. if nextlen == 0 {
  18997. max_count = int32(138)
  18998. min_count = libc.Int32FromInt32(3)
  18999. }
  19000. *(*Tush)(unsafe.Pointer(tree + uintptr(max_code+int32(1))*4 + 2)) = libc.Uint16FromInt32(0xffff) /* guard */
  19001. n = 0
  19002. for {
  19003. if !(n <= max_code) {
  19004. break
  19005. }
  19006. curlen = nextlen
  19007. nextlen = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(n+int32(1))*4 + 2)))
  19008. count++
  19009. v2 = count
  19010. if v2 < max_count && curlen == nextlen {
  19011. goto _1
  19012. } else {
  19013. if count < min_count {
  19014. p3 = s + 2748 + uintptr(curlen)*4
  19015. *(*Tush)(unsafe.Pointer(p3)) = Tush(int32(*(*Tush)(unsafe.Pointer(p3))) + count)
  19016. } else {
  19017. if curlen != 0 {
  19018. if curlen != prevlen {
  19019. *(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4))++
  19020. }
  19021. *(*Tush)(unsafe.Pointer(s + 2748 + 16*4))++
  19022. } else {
  19023. if count <= int32(10) {
  19024. *(*Tush)(unsafe.Pointer(s + 2748 + 17*4))++
  19025. } else {
  19026. *(*Tush)(unsafe.Pointer(s + 2748 + 18*4))++
  19027. }
  19028. }
  19029. }
  19030. }
  19031. count = 0
  19032. prevlen = curlen
  19033. if nextlen == 0 {
  19034. max_count = int32(138)
  19035. min_count = libc.Int32FromInt32(3)
  19036. } else {
  19037. if curlen == nextlen {
  19038. max_count = int32(6)
  19039. min_count = libc.Int32FromInt32(3)
  19040. } else {
  19041. max_count = int32(7)
  19042. min_count = libc.Int32FromInt32(4)
  19043. }
  19044. }
  19045. goto _1
  19046. _1:
  19047. ;
  19048. n++
  19049. }
  19050. }
  19051. // C documentation
  19052. //
  19053. // /* ===========================================================================
  19054. // * Send a literal or distance tree in compressed form, using the codes in
  19055. // * bl_tree.
  19056. // */
  19057. func _send_tree(tls *libc.TLS, s uintptr, tree uintptr, max_code int32) {
  19058. 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
  19059. var v12, v14, v18, v20, v24, v26, v30, v32, v36, v38, v42, v44, v48, v50, v6, v8 Tulg
  19060. 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
  19061. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  19062. prevlen = -int32(1) /* length of current code */
  19063. nextlen = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + 2))) /* length of next code */
  19064. count = 0 /* repeat count of the current code */
  19065. max_count = int32(7) /* max repeat count */
  19066. min_count = int32(4) /* min repeat count */
  19067. /* tree[max_code + 1].Len = -1; */ /* guard already set */
  19068. if nextlen == 0 {
  19069. max_count = int32(138)
  19070. min_count = libc.Int32FromInt32(3)
  19071. }
  19072. n = 0
  19073. for {
  19074. if !(n <= max_code) {
  19075. break
  19076. }
  19077. curlen = nextlen
  19078. nextlen = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(n+int32(1))*4 + 2)))
  19079. count++
  19080. v2 = count
  19081. if v2 < max_count && curlen == nextlen {
  19082. goto _1
  19083. } else {
  19084. if count < min_count {
  19085. for {
  19086. len1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4 + 2)))
  19087. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19088. val = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))
  19089. p5 = s + 5936
  19090. *(*Tush)(unsafe.Pointer(p5)) = Tush(int32(*(*Tush)(unsafe.Pointer(p5))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19091. v7 = s + 40
  19092. v6 = *(*Tulg)(unsafe.Pointer(v7))
  19093. *(*Tulg)(unsafe.Pointer(v7))++
  19094. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v6))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19095. v9 = s + 40
  19096. v8 = *(*Tulg)(unsafe.Pointer(v9))
  19097. *(*Tulg)(unsafe.Pointer(v9))++
  19098. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19099. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19100. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19101. } else {
  19102. p10 = s + 5936
  19103. *(*Tush)(unsafe.Pointer(p10)) = Tush(int32(*(*Tush)(unsafe.Pointer(p10))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19104. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19105. }
  19106. goto _4
  19107. _4:
  19108. ;
  19109. count--
  19110. v3 = count
  19111. if !(v3 != 0) {
  19112. break
  19113. }
  19114. }
  19115. } else {
  19116. if curlen != 0 {
  19117. if curlen != prevlen {
  19118. len11 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4 + 2)))
  19119. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19120. val1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))
  19121. p11 = s + 5936
  19122. *(*Tush)(unsafe.Pointer(p11)) = Tush(int32(*(*Tush)(unsafe.Pointer(p11))) | libc.Int32FromUint16(libc.Uint16FromInt32(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19123. v13 = s + 40
  19124. v12 = *(*Tulg)(unsafe.Pointer(v13))
  19125. *(*Tulg)(unsafe.Pointer(v13))++
  19126. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v12))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19127. v15 = s + 40
  19128. v14 = *(*Tulg)(unsafe.Pointer(v15))
  19129. *(*Tulg)(unsafe.Pointer(v15))++
  19130. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19131. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19132. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  19133. } else {
  19134. p16 = s + 5936
  19135. *(*Tush)(unsafe.Pointer(p16)) = Tush(int32(*(*Tush)(unsafe.Pointer(p16))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19136. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  19137. }
  19138. count--
  19139. }
  19140. len2 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 16*4 + 2)))
  19141. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  19142. val2 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 16*4)))
  19143. p17 = s + 5936
  19144. *(*Tush)(unsafe.Pointer(p17)) = Tush(int32(*(*Tush)(unsafe.Pointer(p17))) | libc.Int32FromUint16(libc.Uint16FromInt32(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19145. v19 = s + 40
  19146. v18 = *(*Tulg)(unsafe.Pointer(v19))
  19147. *(*Tulg)(unsafe.Pointer(v19))++
  19148. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v18))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19149. v21 = s + 40
  19150. v20 = *(*Tulg)(unsafe.Pointer(v21))
  19151. *(*Tulg)(unsafe.Pointer(v21))++
  19152. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v20))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19153. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19154. *(*int32)(unsafe.Pointer(s + 5940)) += len2 - int32(m_Buf_size)
  19155. } else {
  19156. p22 = s + 5936
  19157. *(*Tush)(unsafe.Pointer(p22)) = Tush(int32(*(*Tush)(unsafe.Pointer(p22))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 16*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19158. *(*int32)(unsafe.Pointer(s + 5940)) += len2
  19159. }
  19160. len3 = int32(2)
  19161. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  19162. val3 = count - int32(3)
  19163. p23 = s + 5936
  19164. *(*Tush)(unsafe.Pointer(p23)) = Tush(int32(*(*Tush)(unsafe.Pointer(p23))) | libc.Int32FromUint16(libc.Uint16FromInt32(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19165. v25 = s + 40
  19166. v24 = *(*Tulg)(unsafe.Pointer(v25))
  19167. *(*Tulg)(unsafe.Pointer(v25))++
  19168. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19169. v27 = s + 40
  19170. v26 = *(*Tulg)(unsafe.Pointer(v27))
  19171. *(*Tulg)(unsafe.Pointer(v27))++
  19172. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19173. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19174. *(*int32)(unsafe.Pointer(s + 5940)) += len3 - int32(m_Buf_size)
  19175. } else {
  19176. p28 = s + 5936
  19177. *(*Tush)(unsafe.Pointer(p28)) = Tush(int32(*(*Tush)(unsafe.Pointer(p28))) | libc.Int32FromUint16(libc.Uint16FromInt32(count-libc.Int32FromInt32(3)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19178. *(*int32)(unsafe.Pointer(s + 5940)) += len3
  19179. }
  19180. } else {
  19181. if count <= int32(10) {
  19182. len4 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 17*4 + 2)))
  19183. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len4 {
  19184. val4 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 17*4)))
  19185. p29 = s + 5936
  19186. *(*Tush)(unsafe.Pointer(p29)) = Tush(int32(*(*Tush)(unsafe.Pointer(p29))) | libc.Int32FromUint16(libc.Uint16FromInt32(val4))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19187. v31 = s + 40
  19188. v30 = *(*Tulg)(unsafe.Pointer(v31))
  19189. *(*Tulg)(unsafe.Pointer(v31))++
  19190. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v30))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19191. v33 = s + 40
  19192. v32 = *(*Tulg)(unsafe.Pointer(v33))
  19193. *(*Tulg)(unsafe.Pointer(v33))++
  19194. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v32))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19195. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val4)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19196. *(*int32)(unsafe.Pointer(s + 5940)) += len4 - int32(m_Buf_size)
  19197. } else {
  19198. p34 = s + 5936
  19199. *(*Tush)(unsafe.Pointer(p34)) = Tush(int32(*(*Tush)(unsafe.Pointer(p34))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 17*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19200. *(*int32)(unsafe.Pointer(s + 5940)) += len4
  19201. }
  19202. len5 = int32(3)
  19203. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len5 {
  19204. val5 = count - int32(3)
  19205. p35 = s + 5936
  19206. *(*Tush)(unsafe.Pointer(p35)) = Tush(int32(*(*Tush)(unsafe.Pointer(p35))) | libc.Int32FromUint16(libc.Uint16FromInt32(val5))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19207. v37 = s + 40
  19208. v36 = *(*Tulg)(unsafe.Pointer(v37))
  19209. *(*Tulg)(unsafe.Pointer(v37))++
  19210. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v36))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19211. v39 = s + 40
  19212. v38 = *(*Tulg)(unsafe.Pointer(v39))
  19213. *(*Tulg)(unsafe.Pointer(v39))++
  19214. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v38))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19215. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val5)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19216. *(*int32)(unsafe.Pointer(s + 5940)) += len5 - int32(m_Buf_size)
  19217. } else {
  19218. p40 = s + 5936
  19219. *(*Tush)(unsafe.Pointer(p40)) = Tush(int32(*(*Tush)(unsafe.Pointer(p40))) | libc.Int32FromUint16(libc.Uint16FromInt32(count-libc.Int32FromInt32(3)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19220. *(*int32)(unsafe.Pointer(s + 5940)) += len5
  19221. }
  19222. } else {
  19223. len6 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 18*4 + 2)))
  19224. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len6 {
  19225. val6 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 18*4)))
  19226. p41 = s + 5936
  19227. *(*Tush)(unsafe.Pointer(p41)) = Tush(int32(*(*Tush)(unsafe.Pointer(p41))) | libc.Int32FromUint16(libc.Uint16FromInt32(val6))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19228. v43 = s + 40
  19229. v42 = *(*Tulg)(unsafe.Pointer(v43))
  19230. *(*Tulg)(unsafe.Pointer(v43))++
  19231. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v42))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19232. v45 = s + 40
  19233. v44 = *(*Tulg)(unsafe.Pointer(v45))
  19234. *(*Tulg)(unsafe.Pointer(v45))++
  19235. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v44))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19236. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val6)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19237. *(*int32)(unsafe.Pointer(s + 5940)) += len6 - int32(m_Buf_size)
  19238. } else {
  19239. p46 = s + 5936
  19240. *(*Tush)(unsafe.Pointer(p46)) = Tush(int32(*(*Tush)(unsafe.Pointer(p46))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 18*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19241. *(*int32)(unsafe.Pointer(s + 5940)) += len6
  19242. }
  19243. len7 = int32(7)
  19244. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len7 {
  19245. val7 = count - int32(11)
  19246. p47 = s + 5936
  19247. *(*Tush)(unsafe.Pointer(p47)) = Tush(int32(*(*Tush)(unsafe.Pointer(p47))) | libc.Int32FromUint16(libc.Uint16FromInt32(val7))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19248. v49 = s + 40
  19249. v48 = *(*Tulg)(unsafe.Pointer(v49))
  19250. *(*Tulg)(unsafe.Pointer(v49))++
  19251. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v48))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19252. v51 = s + 40
  19253. v50 = *(*Tulg)(unsafe.Pointer(v51))
  19254. *(*Tulg)(unsafe.Pointer(v51))++
  19255. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v50))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19256. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val7)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19257. *(*int32)(unsafe.Pointer(s + 5940)) += len7 - int32(m_Buf_size)
  19258. } else {
  19259. p52 = s + 5936
  19260. *(*Tush)(unsafe.Pointer(p52)) = Tush(int32(*(*Tush)(unsafe.Pointer(p52))) | libc.Int32FromUint16(libc.Uint16FromInt32(count-libc.Int32FromInt32(11)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19261. *(*int32)(unsafe.Pointer(s + 5940)) += len7
  19262. }
  19263. }
  19264. }
  19265. }
  19266. }
  19267. count = 0
  19268. prevlen = curlen
  19269. if nextlen == 0 {
  19270. max_count = int32(138)
  19271. min_count = libc.Int32FromInt32(3)
  19272. } else {
  19273. if curlen == nextlen {
  19274. max_count = int32(6)
  19275. min_count = libc.Int32FromInt32(3)
  19276. } else {
  19277. max_count = int32(7)
  19278. min_count = libc.Int32FromInt32(4)
  19279. }
  19280. }
  19281. goto _1
  19282. _1:
  19283. ;
  19284. n++
  19285. }
  19286. }
  19287. // C documentation
  19288. //
  19289. // /* ===========================================================================
  19290. // * Construct the Huffman tree for the bit lengths and return the index in
  19291. // * bl_order of the last bit length code to send.
  19292. // */
  19293. func _build_bl_tree(tls *libc.TLS, s uintptr) (r int32) {
  19294. var max_blindex int32
  19295. _ = max_blindex /* index of last bit length code of non zero freq */
  19296. /* Determine the bit length frequencies for literal and distance trees */
  19297. _scan_tree(tls, s, s+212, (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fmax_code)
  19298. _scan_tree(tls, s, s+2504, (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fmax_code)
  19299. /* Build the bit length tree: */
  19300. _build_tree(tls, s, s+2952)
  19301. /* opt_len now includes the length of the tree representations, except the
  19302. * lengths of the bit lengths codes and the 5 + 5 + 4 bits for the counts.
  19303. */
  19304. /* Determine the number of bit length codes to send. The pkzip format
  19305. * requires that at least 4 bit length codes be sent. (appnote.txt says
  19306. * 3 but the actual value used is 4.)
  19307. */
  19308. max_blindex = libc.Int32FromInt32(m_BL_CODES) - libc.Int32FromInt32(1)
  19309. for {
  19310. if !(max_blindex >= int32(3)) {
  19311. break
  19312. }
  19313. if libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(_bl_order[max_blindex])*4 + 2))) != 0 {
  19314. break
  19315. }
  19316. goto _1
  19317. _1:
  19318. ;
  19319. max_blindex--
  19320. }
  19321. /* Update opt_len to include the bit length tree and counts */
  19322. *(*Tulg)(unsafe.Pointer(s + 5912)) += uint64(3)*(libc.Uint64FromInt32(max_blindex)+uint64(1)) + uint64(5) + uint64(5) + uint64(4)
  19323. return max_blindex
  19324. }
  19325. // C documentation
  19326. //
  19327. // /* ===========================================================================
  19328. // * Send the header for a block using dynamic Huffman trees: the counts, the
  19329. // * lengths of the bit length codes, the literal tree and the distance tree.
  19330. // * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
  19331. // */
  19332. func _send_all_trees(tls *libc.TLS, s uintptr, lcodes int32, dcodes int32, blcodes int32) {
  19333. var len1, len11, len2, len3, rank, val, val1, val2, val3 int32
  19334. var v10, v14, v16, v2, v21, v23, v4, v8 Tulg
  19335. var v11, v15, v17, v22, v24, v3, v5, v9, p1, p12, p13, p18, p20, p25, p6, p7 uintptr
  19336. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  19337. len1 = int32(5)
  19338. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19339. val = lcodes - int32(257)
  19340. p1 = s + 5936
  19341. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19342. v3 = s + 40
  19343. v2 = *(*Tulg)(unsafe.Pointer(v3))
  19344. *(*Tulg)(unsafe.Pointer(v3))++
  19345. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19346. v5 = s + 40
  19347. v4 = *(*Tulg)(unsafe.Pointer(v5))
  19348. *(*Tulg)(unsafe.Pointer(v5))++
  19349. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19350. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19351. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19352. } else {
  19353. p6 = s + 5936
  19354. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | libc.Int32FromUint16(libc.Uint16FromInt32(lcodes-libc.Int32FromInt32(257)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19355. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19356. } /* not +255 as stated in appnote.txt */
  19357. len11 = int32(5)
  19358. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19359. val1 = dcodes - int32(1)
  19360. p7 = s + 5936
  19361. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | libc.Int32FromUint16(libc.Uint16FromInt32(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19362. v9 = s + 40
  19363. v8 = *(*Tulg)(unsafe.Pointer(v9))
  19364. *(*Tulg)(unsafe.Pointer(v9))++
  19365. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19366. v11 = s + 40
  19367. v10 = *(*Tulg)(unsafe.Pointer(v11))
  19368. *(*Tulg)(unsafe.Pointer(v11))++
  19369. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19370. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19371. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  19372. } else {
  19373. p12 = s + 5936
  19374. *(*Tush)(unsafe.Pointer(p12)) = Tush(int32(*(*Tush)(unsafe.Pointer(p12))) | libc.Int32FromUint16(libc.Uint16FromInt32(dcodes-libc.Int32FromInt32(1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19375. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  19376. }
  19377. len2 = int32(4)
  19378. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  19379. val2 = blcodes - int32(4)
  19380. p13 = s + 5936
  19381. *(*Tush)(unsafe.Pointer(p13)) = Tush(int32(*(*Tush)(unsafe.Pointer(p13))) | libc.Int32FromUint16(libc.Uint16FromInt32(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19382. v15 = s + 40
  19383. v14 = *(*Tulg)(unsafe.Pointer(v15))
  19384. *(*Tulg)(unsafe.Pointer(v15))++
  19385. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19386. v17 = s + 40
  19387. v16 = *(*Tulg)(unsafe.Pointer(v17))
  19388. *(*Tulg)(unsafe.Pointer(v17))++
  19389. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v16))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19390. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19391. *(*int32)(unsafe.Pointer(s + 5940)) += len2 - int32(m_Buf_size)
  19392. } else {
  19393. p18 = s + 5936
  19394. *(*Tush)(unsafe.Pointer(p18)) = Tush(int32(*(*Tush)(unsafe.Pointer(p18))) | libc.Int32FromUint16(libc.Uint16FromInt32(blcodes-libc.Int32FromInt32(4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19395. *(*int32)(unsafe.Pointer(s + 5940)) += len2
  19396. } /* not -3 as stated in appnote.txt */
  19397. rank = 0
  19398. for {
  19399. if !(rank < blcodes) {
  19400. break
  19401. }
  19402. len3 = int32(3)
  19403. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  19404. val3 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(_bl_order[rank])*4 + 2)))
  19405. p20 = s + 5936
  19406. *(*Tush)(unsafe.Pointer(p20)) = Tush(int32(*(*Tush)(unsafe.Pointer(p20))) | libc.Int32FromUint16(libc.Uint16FromInt32(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19407. v22 = s + 40
  19408. v21 = *(*Tulg)(unsafe.Pointer(v22))
  19409. *(*Tulg)(unsafe.Pointer(v22))++
  19410. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v21))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19411. v24 = s + 40
  19412. v23 = *(*Tulg)(unsafe.Pointer(v24))
  19413. *(*Tulg)(unsafe.Pointer(v24))++
  19414. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v23))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19415. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19416. *(*int32)(unsafe.Pointer(s + 5940)) += len3 - int32(m_Buf_size)
  19417. } else {
  19418. p25 = s + 5936
  19419. *(*Tush)(unsafe.Pointer(p25)) = Tush(int32(*(*Tush)(unsafe.Pointer(p25))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(_bl_order[rank])*4 + 2)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19420. *(*int32)(unsafe.Pointer(s + 5940)) += len3
  19421. }
  19422. goto _19
  19423. _19:
  19424. ;
  19425. rank++
  19426. }
  19427. _send_tree(tls, s, s+212, lcodes-int32(1)) /* literal tree */
  19428. _send_tree(tls, s, s+2504, dcodes-int32(1)) /* distance tree */
  19429. }
  19430. // C documentation
  19431. //
  19432. // /* ===========================================================================
  19433. // * Send a stored block
  19434. // */
  19435. func x__tr_stored_block(tls *libc.TLS, s uintptr, buf uintptr, stored_len Tulg, last int32) {
  19436. var len1, val int32
  19437. var v10, v12, v14, v3, v5, v8, p1, p6 uintptr
  19438. var v11, v13, v2, v4, v7, v9 Tulg
  19439. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, val, v10, v11, v12, v13, v14, v2, v3, v4, v5, v7, v8, v9, p1, p6
  19440. len1 = int32(3)
  19441. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19442. val = libc.Int32FromInt32(m_STORED_BLOCK)<<libc.Int32FromInt32(1) + last
  19443. p1 = s + 5936
  19444. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19445. v3 = s + 40
  19446. v2 = *(*Tulg)(unsafe.Pointer(v3))
  19447. *(*Tulg)(unsafe.Pointer(v3))++
  19448. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19449. v5 = s + 40
  19450. v4 = *(*Tulg)(unsafe.Pointer(v5))
  19451. *(*Tulg)(unsafe.Pointer(v5))++
  19452. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19453. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19454. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19455. } else {
  19456. p6 = s + 5936
  19457. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | libc.Int32FromUint16(libc.Uint16FromInt32(libc.Int32FromInt32(m_STORED_BLOCK)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19458. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19459. } /* send block type */
  19460. _bi_windup(tls, s) /* align on byte boundary */
  19461. v8 = s + 40
  19462. v7 = *(*Tulg)(unsafe.Pointer(v8))
  19463. *(*Tulg)(unsafe.Pointer(v8))++
  19464. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v7))) = libc.Uint8FromInt32(libc.Int32FromUint16(uint16(stored_len)) & libc.Int32FromInt32(0xff))
  19465. v10 = s + 40
  19466. v9 = *(*Tulg)(unsafe.Pointer(v10))
  19467. *(*Tulg)(unsafe.Pointer(v10))++
  19468. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v9))) = libc.Uint8FromInt32(libc.Int32FromUint16(uint16(stored_len)) >> libc.Int32FromInt32(8))
  19469. v12 = s + 40
  19470. v11 = *(*Tulg)(unsafe.Pointer(v12))
  19471. *(*Tulg)(unsafe.Pointer(v12))++
  19472. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = libc.Uint8FromInt32(libc.Int32FromUint16(uint16(^stored_len)) & libc.Int32FromInt32(0xff))
  19473. v14 = s + 40
  19474. v13 = *(*Tulg)(unsafe.Pointer(v14))
  19475. *(*Tulg)(unsafe.Pointer(v14))++
  19476. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v13))) = libc.Uint8FromInt32(libc.Int32FromUint16(uint16(^stored_len)) >> libc.Int32FromInt32(8))
  19477. if stored_len != 0 {
  19478. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending), buf, stored_len)
  19479. }
  19480. *(*Tulg)(unsafe.Pointer(s + 40)) += stored_len
  19481. }
  19482. // C documentation
  19483. //
  19484. // /* ===========================================================================
  19485. // * Flush the bits in the bit buffer to pending output (leaves at most 7 bits)
  19486. // */
  19487. func x__tr_flush_bits(tls *libc.TLS, s uintptr) {
  19488. _bi_flush(tls, s)
  19489. }
  19490. // C documentation
  19491. //
  19492. // /* ===========================================================================
  19493. // * Send one empty static block to give enough lookahead for inflate.
  19494. // * This takes 10 bits, of which 7 may remain in the bit buffer.
  19495. // */
  19496. func x__tr_align(tls *libc.TLS, s uintptr) {
  19497. var len1, len11, val, val1 int32
  19498. var v10, v2, v4, v8 Tulg
  19499. var v11, v3, v5, v9, p1, p12, p6, p7 uintptr
  19500. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, len11, val, val1, v10, v11, v2, v3, v4, v5, v8, v9, p1, p12, p6, p7
  19501. len1 = int32(3)
  19502. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19503. val = libc.Int32FromInt32(m_STATIC_TREES) << libc.Int32FromInt32(1)
  19504. p1 = s + 5936
  19505. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19506. v3 = s + 40
  19507. v2 = *(*Tulg)(unsafe.Pointer(v3))
  19508. *(*Tulg)(unsafe.Pointer(v3))++
  19509. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19510. v5 = s + 40
  19511. v4 = *(*Tulg)(unsafe.Pointer(v5))
  19512. *(*Tulg)(unsafe.Pointer(v5))++
  19513. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19514. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19515. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19516. } else {
  19517. p6 = s + 5936
  19518. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | libc.Int32FromUint16(libc.Uint16FromInt32(libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19519. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19520. }
  19521. len11 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4 + 2)))
  19522. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19523. val1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4)))
  19524. p7 = s + 5936
  19525. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | libc.Int32FromUint16(libc.Uint16FromInt32(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19526. v9 = s + 40
  19527. v8 = *(*Tulg)(unsafe.Pointer(v9))
  19528. *(*Tulg)(unsafe.Pointer(v9))++
  19529. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19530. v11 = s + 40
  19531. v10 = *(*Tulg)(unsafe.Pointer(v11))
  19532. *(*Tulg)(unsafe.Pointer(v11))++
  19533. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19534. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19535. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  19536. } else {
  19537. p12 = s + 5936
  19538. *(*Tush)(unsafe.Pointer(p12)) = Tush(int32(*(*Tush)(unsafe.Pointer(p12))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19539. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  19540. }
  19541. _bi_flush(tls, s)
  19542. }
  19543. // C documentation
  19544. //
  19545. // /* ===========================================================================
  19546. // * Send the block data compressed using the given Huffman trees
  19547. // */
  19548. func _compress_block(tls *libc.TLS, s uintptr, ltree uintptr, dtree uintptr) {
  19549. var code, dist, sx, v1, v2, v3 uint32
  19550. var extra, lc, len1, len11, len2, len3, len4, len5, val, val1, val2, val3, val4, val5, v22 int32
  19551. var v11, v13, v17, v19, v24, v26, v30, v32, v36, v38, v5, v7 Tulg
  19552. 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
  19553. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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) */
  19554. sx = uint32(0) /* number of extra bits to send */
  19555. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != uint32(0) {
  19556. for cond := true; cond; cond = sx < (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next {
  19557. v1 = sx
  19558. sx++
  19559. dist = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v1)))) & int32(0xff))
  19560. v2 = sx
  19561. sx++
  19562. dist += libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v2))))&libc.Int32FromInt32(0xff)) << int32(8)
  19563. v3 = sx
  19564. sx++
  19565. lc = libc.Int32FromUint8(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))))
  19566. if dist == uint32(0) {
  19567. len1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4 + 2)))
  19568. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19569. val = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4)))
  19570. p4 = s + 5936
  19571. *(*Tush)(unsafe.Pointer(p4)) = Tush(int32(*(*Tush)(unsafe.Pointer(p4))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19572. v6 = s + 40
  19573. v5 = *(*Tulg)(unsafe.Pointer(v6))
  19574. *(*Tulg)(unsafe.Pointer(v6))++
  19575. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19576. v8 = s + 40
  19577. v7 = *(*Tulg)(unsafe.Pointer(v8))
  19578. *(*Tulg)(unsafe.Pointer(v8))++
  19579. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v7))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19580. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19581. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19582. } else {
  19583. p9 = s + 5936
  19584. *(*Tush)(unsafe.Pointer(p9)) = Tush(int32(*(*Tush)(unsafe.Pointer(p9))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19585. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19586. } /* send a literal byte */
  19587. } else {
  19588. /* Here, lc is the match length - MIN_MATCH */
  19589. code = uint32(x__length_code[lc])
  19590. len11 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4 + 2)))
  19591. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19592. val1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4)))
  19593. p10 = s + 5936
  19594. *(*Tush)(unsafe.Pointer(p10)) = Tush(int32(*(*Tush)(unsafe.Pointer(p10))) | libc.Int32FromUint16(libc.Uint16FromInt32(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19595. v12 = s + 40
  19596. v11 = *(*Tulg)(unsafe.Pointer(v12))
  19597. *(*Tulg)(unsafe.Pointer(v12))++
  19598. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19599. v14 = s + 40
  19600. v13 = *(*Tulg)(unsafe.Pointer(v14))
  19601. *(*Tulg)(unsafe.Pointer(v14))++
  19602. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v13))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19603. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19604. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  19605. } else {
  19606. p15 = s + 5936
  19607. *(*Tush)(unsafe.Pointer(p15)) = Tush(int32(*(*Tush)(unsafe.Pointer(p15))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19608. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  19609. } /* send length code */
  19610. extra = _extra_lbits[code]
  19611. if extra != 0 {
  19612. lc -= _base_length[code]
  19613. len2 = extra
  19614. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  19615. val2 = lc
  19616. p16 = s + 5936
  19617. *(*Tush)(unsafe.Pointer(p16)) = Tush(int32(*(*Tush)(unsafe.Pointer(p16))) | libc.Int32FromUint16(libc.Uint16FromInt32(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19618. v18 = s + 40
  19619. v17 = *(*Tulg)(unsafe.Pointer(v18))
  19620. *(*Tulg)(unsafe.Pointer(v18))++
  19621. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v17))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19622. v20 = s + 40
  19623. v19 = *(*Tulg)(unsafe.Pointer(v20))
  19624. *(*Tulg)(unsafe.Pointer(v20))++
  19625. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v19))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19626. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19627. *(*int32)(unsafe.Pointer(s + 5940)) += len2 - int32(m_Buf_size)
  19628. } else {
  19629. p21 = s + 5936
  19630. *(*Tush)(unsafe.Pointer(p21)) = Tush(int32(*(*Tush)(unsafe.Pointer(p21))) | libc.Int32FromUint16(libc.Uint16FromInt32(lc))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19631. *(*int32)(unsafe.Pointer(s + 5940)) += len2
  19632. } /* send the extra length bits */
  19633. }
  19634. dist-- /* dist is now the match distance - 1 */
  19635. if dist < uint32(256) {
  19636. v22 = libc.Int32FromUint8(x__dist_code[dist])
  19637. } else {
  19638. v22 = libc.Int32FromUint8(x__dist_code[uint32(256)+dist>>int32(7)])
  19639. }
  19640. code = libc.Uint32FromInt32(v22)
  19641. len3 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4 + 2)))
  19642. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  19643. val3 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4)))
  19644. p23 = s + 5936
  19645. *(*Tush)(unsafe.Pointer(p23)) = Tush(int32(*(*Tush)(unsafe.Pointer(p23))) | libc.Int32FromUint16(libc.Uint16FromInt32(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19646. v25 = s + 40
  19647. v24 = *(*Tulg)(unsafe.Pointer(v25))
  19648. *(*Tulg)(unsafe.Pointer(v25))++
  19649. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19650. v27 = s + 40
  19651. v26 = *(*Tulg)(unsafe.Pointer(v27))
  19652. *(*Tulg)(unsafe.Pointer(v27))++
  19653. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19654. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19655. *(*int32)(unsafe.Pointer(s + 5940)) += len3 - int32(m_Buf_size)
  19656. } else {
  19657. p28 = s + 5936
  19658. *(*Tush)(unsafe.Pointer(p28)) = Tush(int32(*(*Tush)(unsafe.Pointer(p28))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19659. *(*int32)(unsafe.Pointer(s + 5940)) += len3
  19660. } /* send the distance code */
  19661. extra = _extra_dbits[code]
  19662. if extra != 0 {
  19663. dist -= libc.Uint32FromInt32(_base_dist[code])
  19664. len4 = extra
  19665. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len4 {
  19666. val4 = libc.Int32FromUint32(dist)
  19667. p29 = s + 5936
  19668. *(*Tush)(unsafe.Pointer(p29)) = Tush(int32(*(*Tush)(unsafe.Pointer(p29))) | libc.Int32FromUint16(libc.Uint16FromInt32(val4))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19669. v31 = s + 40
  19670. v30 = *(*Tulg)(unsafe.Pointer(v31))
  19671. *(*Tulg)(unsafe.Pointer(v31))++
  19672. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v30))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19673. v33 = s + 40
  19674. v32 = *(*Tulg)(unsafe.Pointer(v33))
  19675. *(*Tulg)(unsafe.Pointer(v33))++
  19676. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v32))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19677. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val4)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19678. *(*int32)(unsafe.Pointer(s + 5940)) += len4 - int32(m_Buf_size)
  19679. } else {
  19680. p34 = s + 5936
  19681. *(*Tush)(unsafe.Pointer(p34)) = Tush(int32(*(*Tush)(unsafe.Pointer(p34))) | libc.Int32FromUint16(uint16(dist))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19682. *(*int32)(unsafe.Pointer(s + 5940)) += len4
  19683. } /* send the extra distance bits */
  19684. }
  19685. } /* literal or match pair ? */
  19686. /* Check for no overlay of pending_buf on needed symbols */
  19687. }
  19688. }
  19689. len5 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + 256*4 + 2)))
  19690. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len5 {
  19691. val5 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + 256*4)))
  19692. p35 = s + 5936
  19693. *(*Tush)(unsafe.Pointer(p35)) = Tush(int32(*(*Tush)(unsafe.Pointer(p35))) | libc.Int32FromUint16(libc.Uint16FromInt32(val5))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19694. v37 = s + 40
  19695. v36 = *(*Tulg)(unsafe.Pointer(v37))
  19696. *(*Tulg)(unsafe.Pointer(v37))++
  19697. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v36))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19698. v39 = s + 40
  19699. v38 = *(*Tulg)(unsafe.Pointer(v39))
  19700. *(*Tulg)(unsafe.Pointer(v39))++
  19701. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v38))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19702. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val5)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19703. *(*int32)(unsafe.Pointer(s + 5940)) += len5 - int32(m_Buf_size)
  19704. } else {
  19705. p40 = s + 5936
  19706. *(*Tush)(unsafe.Pointer(p40)) = Tush(int32(*(*Tush)(unsafe.Pointer(p40))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + 256*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19707. *(*int32)(unsafe.Pointer(s + 5940)) += len5
  19708. }
  19709. }
  19710. // C documentation
  19711. //
  19712. // /* ===========================================================================
  19713. // * Check if the data type is TEXT or BINARY, using the following algorithm:
  19714. // * - TEXT if the two conditions below are satisfied:
  19715. // * a) There are no non-portable control characters belonging to the
  19716. // * "block list" (0..6, 14..25, 28..31).
  19717. // * b) There is at least one printable character belonging to the
  19718. // * "allow list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).
  19719. // * - BINARY otherwise.
  19720. // * - The following partially-portable control characters form a
  19721. // * "gray list" that is ignored in this detection algorithm:
  19722. // * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).
  19723. // * IN assertion: the fields Freq of dyn_ltree are set.
  19724. // */
  19725. func _detect_data_type(tls *libc.TLS, s uintptr) (r int32) {
  19726. var block_mask uint64
  19727. var n int32
  19728. _, _ = block_mask, n
  19729. /* block_mask is the bit mask of block-listed bytes
  19730. * set bits 0..6, 14..25, and 28..31
  19731. * 0xf3ffc07f = binary 11110011111111111100000001111111
  19732. */
  19733. block_mask = uint64(0xf3ffc07f)
  19734. /* Check for non-textual ("block-listed") bytes. */
  19735. n = 0
  19736. for {
  19737. if !(n <= int32(31)) {
  19738. break
  19739. }
  19740. if block_mask&uint64(1) != 0 && libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 212 + uintptr(n)*4))) != 0 {
  19741. return m_Z_BINARY
  19742. }
  19743. goto _1
  19744. _1:
  19745. ;
  19746. n++
  19747. block_mask >>= uint64(1)
  19748. }
  19749. /* Check for textual ("allow-listed") bytes. */
  19750. if libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 212 + 9*4))) != 0 || libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 212 + 10*4))) != 0 || libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 212 + 13*4))) != 0 {
  19751. return int32(m_Z_TEXT)
  19752. }
  19753. n = int32(32)
  19754. for {
  19755. if !(n < int32(m_LITERALS)) {
  19756. break
  19757. }
  19758. if libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 212 + uintptr(n)*4))) != 0 {
  19759. return int32(m_Z_TEXT)
  19760. }
  19761. goto _2
  19762. _2:
  19763. ;
  19764. n++
  19765. }
  19766. /* There are no "block-listed" or "allow-listed" bytes:
  19767. * this stream either is empty or has tolerated ("gray-listed") bytes only.
  19768. */
  19769. return m_Z_BINARY
  19770. }
  19771. // C documentation
  19772. //
  19773. // /* ===========================================================================
  19774. // * Determine the best encoding for the current block: dynamic trees, static
  19775. // * trees or store, and write out the encoded block.
  19776. // */
  19777. func x__tr_flush_block(tls *libc.TLS, s uintptr, buf uintptr, stored_len Tulg, last int32) {
  19778. var len1, len11, max_blindex, val, val1 int32
  19779. var opt_lenb, static_lenb, v1, v11, v3, v5, v9 Tulg
  19780. var v10, v12, v4, v6, p13, p2, p7, p8 uintptr
  19781. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  19782. max_blindex = 0 /* index of last bit length code of non zero freq */
  19783. /* Build the Huffman trees unless a stored block is forced */
  19784. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel > 0 {
  19785. /* Check if the file is binary or text */
  19786. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fdata_type == int32(m_Z_UNKNOWN) {
  19787. (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fdata_type = _detect_data_type(tls, s)
  19788. }
  19789. /* Construct the literal and distance trees */
  19790. _build_tree(tls, s, s+2904)
  19791. _build_tree(tls, s, s+2928)
  19792. /* At this point, opt_len and static_len are the total bit lengths of
  19793. * the compressed block data, excluding the tree representations.
  19794. */
  19795. /* Build the bit length tree for the above two trees, and get the index
  19796. * in bl_order of the last bit length code to send.
  19797. */
  19798. max_blindex = _build_bl_tree(tls, s)
  19799. /* Determine the best encoding. Compute the block lengths in bytes. */
  19800. opt_lenb = ((*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len + uint64(3) + uint64(7)) >> int32(3)
  19801. static_lenb = ((*Tdeflate_state)(unsafe.Pointer(s)).Fstatic_len + uint64(3) + uint64(7)) >> int32(3)
  19802. if static_lenb <= opt_lenb || (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_FIXED) {
  19803. opt_lenb = static_lenb
  19804. }
  19805. } else {
  19806. v1 = stored_len + libc.Uint64FromInt32(5)
  19807. static_lenb = v1
  19808. opt_lenb = v1 /* force a stored block */
  19809. }
  19810. if stored_len+uint64(4) <= opt_lenb && buf != libc.UintptrFromInt32(0) {
  19811. /* 4: two words for the lengths */
  19812. /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
  19813. * Otherwise we can't have processed more than WSIZE input bytes since
  19814. * the last block flush, because compression would have been
  19815. * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
  19816. * transform a block into a stored block.
  19817. */
  19818. x__tr_stored_block(tls, s, buf, stored_len, last)
  19819. } else {
  19820. if static_lenb == opt_lenb {
  19821. len1 = int32(3)
  19822. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19823. val = libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1) + last
  19824. p2 = s + 5936
  19825. *(*Tush)(unsafe.Pointer(p2)) = Tush(int32(*(*Tush)(unsafe.Pointer(p2))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19826. v4 = s + 40
  19827. v3 = *(*Tulg)(unsafe.Pointer(v4))
  19828. *(*Tulg)(unsafe.Pointer(v4))++
  19829. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19830. v6 = s + 40
  19831. v5 = *(*Tulg)(unsafe.Pointer(v6))
  19832. *(*Tulg)(unsafe.Pointer(v6))++
  19833. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19834. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19835. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19836. } else {
  19837. p7 = s + 5936
  19838. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | libc.Int32FromUint16(libc.Uint16FromInt32(libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19839. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19840. }
  19841. _compress_block(tls, s, uintptr(unsafe.Pointer(&_static_ltree)), uintptr(unsafe.Pointer(&_static_dtree)))
  19842. } else {
  19843. len11 = int32(3)
  19844. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19845. val1 = libc.Int32FromInt32(m_DYN_TREES)<<libc.Int32FromInt32(1) + last
  19846. p8 = s + 5936
  19847. *(*Tush)(unsafe.Pointer(p8)) = Tush(int32(*(*Tush)(unsafe.Pointer(p8))) | libc.Int32FromUint16(libc.Uint16FromInt32(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19848. v10 = s + 40
  19849. v9 = *(*Tulg)(unsafe.Pointer(v10))
  19850. *(*Tulg)(unsafe.Pointer(v10))++
  19851. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v9))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19852. v12 = s + 40
  19853. v11 = *(*Tulg)(unsafe.Pointer(v12))
  19854. *(*Tulg)(unsafe.Pointer(v12))++
  19855. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19856. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19857. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  19858. } else {
  19859. p13 = s + 5936
  19860. *(*Tush)(unsafe.Pointer(p13)) = Tush(int32(*(*Tush)(unsafe.Pointer(p13))) | libc.Int32FromUint16(libc.Uint16FromInt32(libc.Int32FromInt32(m_DYN_TREES)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19861. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  19862. }
  19863. _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))
  19864. _compress_block(tls, s, s+212, s+2504)
  19865. }
  19866. }
  19867. /* The above check is made mod 2^32, for files larger than 512 MB
  19868. * and uLong implemented on 32 bits.
  19869. */
  19870. _init_block(tls, s)
  19871. if last != 0 {
  19872. _bi_windup(tls, s)
  19873. }
  19874. }
  19875. // C documentation
  19876. //
  19877. // /* ===========================================================================
  19878. // * Save the match info and tally the frequency counts. Return true if
  19879. // * the current block must be flushed.
  19880. // */
  19881. func x__tr_tally(tls *libc.TLS, s uintptr, dist uint32, lc uint32) (r int32) {
  19882. var v1, v3, v5 TuInt
  19883. var v2, v4, v6 uintptr
  19884. var v7 int32
  19885. _, _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6, v7
  19886. v2 = s + 5900
  19887. v1 = *(*TuInt)(unsafe.Pointer(v2))
  19888. *(*TuInt)(unsafe.Pointer(v2))++
  19889. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v1))) = uint8(dist)
  19890. v4 = s + 5900
  19891. v3 = *(*TuInt)(unsafe.Pointer(v4))
  19892. *(*TuInt)(unsafe.Pointer(v4))++
  19893. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist >> libc.Int32FromInt32(8))
  19894. v6 = s + 5900
  19895. v5 = *(*TuInt)(unsafe.Pointer(v6))
  19896. *(*TuInt)(unsafe.Pointer(v6))++
  19897. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = uint8(lc)
  19898. if dist == uint32(0) {
  19899. /* lc is the unmatched char */
  19900. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(lc)*4))++
  19901. } else {
  19902. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  19903. /* Here, lc is the match length - MIN_MATCH */
  19904. dist-- /* dist = match distance - 1 */
  19905. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(libc.Int32FromUint8(x__length_code[lc])+int32(m_LITERALS)+int32(1))*4))++
  19906. if dist < uint32(256) {
  19907. v7 = libc.Int32FromUint8(x__dist_code[dist])
  19908. } else {
  19909. v7 = libc.Int32FromUint8(x__dist_code[uint32(256)+dist>>int32(7)])
  19910. }
  19911. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v7)*4))++
  19912. }
  19913. return libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  19914. }
  19915. const m_AT_EACCESS = 0x200
  19916. const m_AT_EMPTY_PATH = 0x1000
  19917. const m_AT_NO_AUTOMOUNT = 0x800
  19918. const m_AT_RECURSIVE = 0x8000
  19919. const m_AT_REMOVEDIR = 0x200
  19920. const m_AT_STATX_DONT_SYNC = 0x4000
  19921. const m_AT_STATX_FORCE_SYNC = 0x2000
  19922. const m_AT_STATX_SYNC_AS_STAT = 0x0000
  19923. const m_AT_STATX_SYNC_TYPE = 0x6000
  19924. const m_AT_SYMLINK_FOLLOW = 0x400
  19925. const m_AT_SYMLINK_NOFOLLOW = 0x100
  19926. const m_BUFSIZ = 1024
  19927. const m_COPY = 1
  19928. const m_DN_ACCESS = 0x00000001
  19929. const m_DN_ATTRIB = 0x00000020
  19930. const m_DN_CREATE = 0x00000004
  19931. const m_DN_DELETE = 0x00000008
  19932. const m_DN_MODIFY = 0x00000002
  19933. const m_DN_MULTISHOT = 0x80000000
  19934. const m_DN_RENAME = 0x00000010
  19935. const m_E2BIG = 7
  19936. const m_EACCES = 13
  19937. const m_EADDRINUSE = 98
  19938. const m_EADDRNOTAVAIL = 99
  19939. const m_EADV = 68
  19940. const m_EAFNOSUPPORT = 97
  19941. const m_EAGAIN = 11
  19942. const m_EALREADY = 114
  19943. const m_EBADE = 52
  19944. const m_EBADF = 9
  19945. const m_EBADFD = 77
  19946. const m_EBADMSG = 74
  19947. const m_EBADR = 53
  19948. const m_EBADRQC = 56
  19949. const m_EBADSLT = 57
  19950. const m_EBFONT = 59
  19951. const m_EBUSY = 16
  19952. const m_ECANCELED = 125
  19953. const m_ECHILD = 10
  19954. const m_ECHRNG = 44
  19955. const m_ECOMM = 70
  19956. const m_ECONNABORTED = 103
  19957. const m_ECONNREFUSED = 111
  19958. const m_ECONNRESET = 104
  19959. const m_EDEADLK = 35
  19960. const m_EDEADLOCK = 58
  19961. const m_EDESTADDRREQ = 89
  19962. const m_EDOM = 33
  19963. const m_EDOTDOT = 73
  19964. const m_EDQUOT = 122
  19965. const m_EEXIST = 17
  19966. const m_EFAULT = 14
  19967. const m_EFBIG = 27
  19968. const m_EHOSTDOWN = 112
  19969. const m_EHOSTUNREACH = 113
  19970. const m_EHWPOISON = 133
  19971. const m_EIDRM = 43
  19972. const m_EILSEQ = 84
  19973. const m_EINPROGRESS = 115
  19974. const m_EINTR = 4
  19975. const m_EINVAL = 22
  19976. const m_EIO = 5
  19977. const m_EISCONN = 106
  19978. const m_EISDIR = 21
  19979. const m_EISNAM = 120
  19980. const m_EKEYEXPIRED = 127
  19981. const m_EKEYREJECTED = 129
  19982. const m_EKEYREVOKED = 128
  19983. const m_EL2HLT = 51
  19984. const m_EL2NSYNC = 45
  19985. const m_EL3HLT = 46
  19986. const m_EL3RST = 47
  19987. const m_ELIBACC = 79
  19988. const m_ELIBBAD = 80
  19989. const m_ELIBEXEC = 83
  19990. const m_ELIBMAX = 82
  19991. const m_ELIBSCN = 81
  19992. const m_ELNRNG = 48
  19993. const m_ELOOP = 40
  19994. const m_EMEDIUMTYPE = 124
  19995. const m_EMFILE = 24
  19996. const m_EMLINK = 31
  19997. const m_EMSGSIZE = 90
  19998. const m_EMULTIHOP = 72
  19999. const m_ENAMETOOLONG = 36
  20000. const m_ENAVAIL = 119
  20001. const m_ENETDOWN = 100
  20002. const m_ENETRESET = 102
  20003. const m_ENETUNREACH = 101
  20004. const m_ENFILE = 23
  20005. const m_ENOANO = 55
  20006. const m_ENOBUFS = 105
  20007. const m_ENOCSI = 50
  20008. const m_ENODATA = 61
  20009. const m_ENODEV = 19
  20010. const m_ENOENT = 2
  20011. const m_ENOEXEC = 8
  20012. const m_ENOKEY = 126
  20013. const m_ENOLCK = 37
  20014. const m_ENOLINK = 67
  20015. const m_ENOMEDIUM = 123
  20016. const m_ENOMEM = 12
  20017. const m_ENOMSG = 42
  20018. const m_ENONET = 64
  20019. const m_ENOPKG = 65
  20020. const m_ENOPROTOOPT = 92
  20021. const m_ENOSPC = 28
  20022. const m_ENOSR = 63
  20023. const m_ENOSTR = 60
  20024. const m_ENOSYS = 38
  20025. const m_ENOTBLK = 15
  20026. const m_ENOTCONN = 107
  20027. const m_ENOTDIR = 20
  20028. const m_ENOTEMPTY = 39
  20029. const m_ENOTNAM = 118
  20030. const m_ENOTRECOVERABLE = 131
  20031. const m_ENOTSOCK = 88
  20032. const m_ENOTSUP = "EOPNOTSUPP"
  20033. const m_ENOTTY = 25
  20034. const m_ENOTUNIQ = 76
  20035. const m_ENXIO = 6
  20036. const m_EOPNOTSUPP = 95
  20037. const m_EOVERFLOW = 75
  20038. const m_EOWNERDEAD = 130
  20039. const m_EPERM = 1
  20040. const m_EPFNOSUPPORT = 96
  20041. const m_EPIPE = 32
  20042. const m_EPROTO = 71
  20043. const m_EPROTONOSUPPORT = 93
  20044. const m_EPROTOTYPE = 91
  20045. const m_ERANGE = 34
  20046. const m_EREMCHG = 78
  20047. const m_EREMOTE = 66
  20048. const m_EREMOTEIO = 121
  20049. const m_ERESTART = 85
  20050. const m_ERFKILL = 132
  20051. const m_EROFS = 30
  20052. const m_ESHUTDOWN = 108
  20053. const m_ESOCKTNOSUPPORT = 94
  20054. const m_ESPIPE = 29
  20055. const m_ESRCH = 3
  20056. const m_ESRMNT = 69
  20057. const m_ESTALE = 116
  20058. const m_ESTRPIPE = 86
  20059. const m_ETIME = 62
  20060. const m_ETIMEDOUT = 110
  20061. const m_ETOOMANYREFS = 109
  20062. const m_ETXTBSY = 26
  20063. const m_EUCLEAN = 117
  20064. const m_EUNATCH = 49
  20065. const m_EUSERS = 87
  20066. const m_EWOULDBLOCK = "EAGAIN"
  20067. const m_EXDEV = 18
  20068. const m_EXFULL = 54
  20069. const m_FALLOC_FL_KEEP_SIZE = 1
  20070. const m_FALLOC_FL_PUNCH_HOLE = 2
  20071. const m_FAPPEND = "O_APPEND"
  20072. const m_FASYNC = "O_ASYNC"
  20073. const m_FD_CLOEXEC = 1
  20074. const m_FFSYNC = "O_SYNC"
  20075. const m_FILENAME_MAX = 4096
  20076. const m_FNDELAY = "O_NDELAY"
  20077. const m_FNONBLOCK = "O_NONBLOCK"
  20078. const m_FOPEN_MAX = 1000
  20079. const m_F_ADD_SEALS = 1033
  20080. const m_F_CANCELLK = 1029
  20081. const m_F_DUPFD = 0
  20082. const m_F_DUPFD_CLOEXEC = 1030
  20083. const m_F_GETFD = 1
  20084. const m_F_GETFL = 3
  20085. const m_F_GETLEASE = 1025
  20086. const m_F_GETLK = 5
  20087. const m_F_GETLK64 = "F_GETLK"
  20088. const m_F_GETOWN = 9
  20089. const m_F_GETOWNER_UIDS = 17
  20090. const m_F_GETOWN_EX = 16
  20091. const m_F_GETPIPE_SZ = 1032
  20092. const m_F_GETSIG = 11
  20093. const m_F_GET_FILE_RW_HINT = 1037
  20094. const m_F_GET_RW_HINT = 1035
  20095. const m_F_GET_SEALS = 1034
  20096. const m_F_NOTIFY = 1026
  20097. const m_F_OFD_GETLK = 36
  20098. const m_F_OFD_SETLK = 37
  20099. const m_F_OFD_SETLKW = 38
  20100. const m_F_OWNER_GID = 2
  20101. const m_F_OWNER_PGRP = 2
  20102. const m_F_OWNER_PID = 1
  20103. const m_F_OWNER_TID = 0
  20104. const m_F_RDLCK = 0
  20105. const m_F_SEAL_FUTURE_WRITE = 0x0010
  20106. const m_F_SEAL_GROW = 0x0004
  20107. const m_F_SEAL_SEAL = 0x0001
  20108. const m_F_SEAL_SHRINK = 0x0002
  20109. const m_F_SEAL_WRITE = 0x0008
  20110. const m_F_SETFD = 2
  20111. const m_F_SETFL = 4
  20112. const m_F_SETLEASE = 1024
  20113. const m_F_SETLK = 6
  20114. const m_F_SETLK64 = "F_SETLK"
  20115. const m_F_SETLKW = 7
  20116. const m_F_SETLKW64 = "F_SETLKW"
  20117. const m_F_SETOWN = 8
  20118. const m_F_SETOWN_EX = 15
  20119. const m_F_SETPIPE_SZ = 1031
  20120. const m_F_SETSIG = 10
  20121. const m_F_SET_FILE_RW_HINT = 1038
  20122. const m_F_SET_RW_HINT = 1036
  20123. const m_F_UNLCK = 2
  20124. const m_F_WRLCK = 1
  20125. const m_GZBUFSIZE = 8192
  20126. const m_GZIP = 2
  20127. const m_GZ_APPEND = 1
  20128. const m_GZ_NONE = 0
  20129. const m_GZ_READ = 7247
  20130. const m_GZ_WRITE = 31153
  20131. const m_LOOK = 0
  20132. const m_L_ctermid = 20
  20133. const m_L_cuserid = 20
  20134. const m_L_tmpnam = 20
  20135. const m_MAX_HANDLE_SZ = 128
  20136. const m_O_APPEND = 02000
  20137. const m_O_ASYNC = 020000
  20138. const m_O_CLOEXEC = 02000000
  20139. const m_O_CREAT = 0100
  20140. const m_O_DIRECT = 0400000
  20141. const m_O_DIRECTORY = 040000
  20142. const m_O_DSYNC = 010000
  20143. const m_O_EXCL = 0200
  20144. const m_O_EXEC = "O_PATH"
  20145. const m_O_LARGEFILE = 0200000
  20146. const m_O_NDELAY = "O_NONBLOCK"
  20147. const m_O_NOATIME = 01000000
  20148. const m_O_NOCTTY = 0400
  20149. const m_O_NOFOLLOW = 0100000
  20150. const m_O_NONBLOCK = 04000
  20151. const m_O_PATH = 010000000
  20152. const m_O_RDONLY = 00
  20153. const m_O_RDWR = 02
  20154. const m_O_RSYNC = 04010000
  20155. const m_O_SEARCH = "O_PATH"
  20156. const m_O_SYNC = 04010000
  20157. const m_O_TMPFILE = 020040000
  20158. const m_O_TRUNC = 01000
  20159. const m_O_TTY_INIT = 0
  20160. const m_O_WRONLY = 01
  20161. const m_POSIX_FADV_DONTNEED = 4
  20162. const m_POSIX_FADV_NOREUSE = 5
  20163. const m_POSIX_FADV_NORMAL = 0
  20164. const m_POSIX_FADV_RANDOM = 1
  20165. const m_POSIX_FADV_SEQUENTIAL = 2
  20166. const m_POSIX_FADV_WILLNEED = 3
  20167. const m_P_tmpdir = "/tmp"
  20168. const m_RWF_WRITE_LIFE_NOT_SET = 0
  20169. const m_RWH_WRITE_LIFE_EXTREME = 5
  20170. const m_RWH_WRITE_LIFE_LONG = 4
  20171. const m_RWH_WRITE_LIFE_MEDIUM = 3
  20172. const m_RWH_WRITE_LIFE_NONE = 1
  20173. const m_RWH_WRITE_LIFE_SHORT = 2
  20174. const m_SPLICE_F_GIFT = 8
  20175. const m_SPLICE_F_MORE = 4
  20176. const m_SPLICE_F_MOVE = 1
  20177. const m_SPLICE_F_NONBLOCK = 2
  20178. const m_SYNC_FILE_RANGE_WAIT_AFTER = 4
  20179. const m_SYNC_FILE_RANGE_WAIT_BEFORE = 1
  20180. const m_SYNC_FILE_RANGE_WRITE = 2
  20181. const m_S_IRGRP = 0040
  20182. const m_S_IROTH = 0004
  20183. const m_S_IRUSR = 0400
  20184. const m_S_IRWXG = 0070
  20185. const m_S_IRWXO = 0007
  20186. const m_S_IRWXU = 0700
  20187. const m_S_ISGID = 02000
  20188. const m_S_ISUID = 04000
  20189. const m_S_ISVTX = 01000
  20190. const m_S_IWGRP = 0020
  20191. const m_S_IWOTH = 0002
  20192. const m_S_IWUSR = 0200
  20193. const m_S_IXGRP = 0010
  20194. const m_S_IXOTH = 0001
  20195. const m_S_IXUSR = 0100
  20196. const m_TMP_MAX = 10000
  20197. const m__IOFBF = 0
  20198. const m__IOLBF = 1
  20199. const m__IONBF = 2
  20200. const m__LARGEFILE_SOURCE = 1
  20201. const m_creat64 = "creat"
  20202. const m_fallocate64 = "fallocate"
  20203. const m_fgetpos64 = "fgetpos"
  20204. const m_flock64 = "flock"
  20205. const m_fopen64 = "fopen"
  20206. const m_fpos64_t = "fpos_t"
  20207. const m_freopen64 = "freopen"
  20208. const m_fseeko64 = "fseeko"
  20209. const m_fsetpos64 = "fsetpos"
  20210. const m_ftello64 = "ftello"
  20211. const m_loff_t = "off_t"
  20212. const m_open64 = "open"
  20213. const m_openat64 = "openat"
  20214. const m_posix_fadvise64 = "posix_fadvise"
  20215. const m_posix_fallocate64 = "posix_fallocate"
  20216. const m_tmpfile64 = "tmpfile"
  20217. type t__isoc_va_list = uintptr
  20218. type Tfpos_t = struct {
  20219. F__lldata [0]int64
  20220. F__align [0]float64
  20221. F__opaque [16]uint8
  20222. }
  20223. type T_G_fpos64_t = Tfpos_t
  20224. type Tcookie_io_functions_t = struct {
  20225. Fread uintptr
  20226. Fwrite uintptr
  20227. Fseek uintptr
  20228. Fclose1 uintptr
  20229. }
  20230. type T_IO_cookie_io_functions_t = Tcookie_io_functions_t
  20231. type Tiovec = struct {
  20232. Fiov_base uintptr
  20233. Fiov_len Tsize_t
  20234. }
  20235. type Tflock = struct {
  20236. Fl_type int16
  20237. Fl_whence int16
  20238. Fl_start Toff_t
  20239. Fl_len Toff_t
  20240. Fl_pid Tpid_t
  20241. }
  20242. type Tfile_handle = struct {
  20243. Fhandle_bytes uint32
  20244. Fhandle_type int32
  20245. }
  20246. type Tf_owner_ex = struct {
  20247. Ftype1 int32
  20248. Fpid Tpid_t
  20249. }
  20250. type Tgz_state = struct {
  20251. Fx TgzFile_s
  20252. Fmode int32
  20253. Ffd int32
  20254. Fpath uintptr
  20255. Fsize uint32
  20256. Fwant uint32
  20257. Fin uintptr
  20258. Fout uintptr
  20259. Fdirect int32
  20260. Fhow int32
  20261. Fstart Toff_t
  20262. Feof int32
  20263. Fpast int32
  20264. Flevel int32
  20265. Fstrategy int32
  20266. Freset int32
  20267. Fskip Toff_t
  20268. Fseek int32
  20269. Ferr int32
  20270. Fmsg uintptr
  20271. Fstrm Tz_stream
  20272. }
  20273. type Tgz_statep = uintptr
  20274. func XzlibVersion(tls *libc.TLS) (r uintptr) {
  20275. return __ccgo_ts
  20276. }
  20277. func XzlibCompileFlags(tls *libc.TLS) (r TuLong) {
  20278. var flags TuLong
  20279. _ = flags
  20280. flags = uint64(0)
  20281. switch libc.Int32FromUint64(libc.Uint64FromInt64(4)) {
  20282. case int32(2):
  20283. case int32(4):
  20284. flags += uint64(1)
  20285. case int32(8):
  20286. flags += uint64(2)
  20287. default:
  20288. flags += uint64(3)
  20289. }
  20290. switch libc.Int32FromUint64(libc.Uint64FromInt64(8)) {
  20291. case int32(2):
  20292. case int32(4):
  20293. flags += libc.Uint64FromInt32(libc.Int32FromInt32(1) << libc.Int32FromInt32(2))
  20294. case int32(8):
  20295. flags += libc.Uint64FromInt32(libc.Int32FromInt32(2) << libc.Int32FromInt32(2))
  20296. default:
  20297. flags += libc.Uint64FromInt32(libc.Int32FromInt32(3) << libc.Int32FromInt32(2))
  20298. }
  20299. switch libc.Int32FromUint64(libc.Uint64FromInt64(8)) {
  20300. case int32(2):
  20301. case int32(4):
  20302. flags += libc.Uint64FromInt32(libc.Int32FromInt32(1) << libc.Int32FromInt32(4))
  20303. case int32(8):
  20304. flags += libc.Uint64FromInt32(libc.Int32FromInt32(2) << libc.Int32FromInt32(4))
  20305. default:
  20306. flags += libc.Uint64FromInt32(libc.Int32FromInt32(3) << libc.Int32FromInt32(4))
  20307. }
  20308. switch libc.Int32FromUint64(libc.Uint64FromInt64(8)) {
  20309. case int32(2):
  20310. case int32(4):
  20311. flags += libc.Uint64FromInt32(libc.Int32FromInt32(1) << libc.Int32FromInt32(6))
  20312. case int32(8):
  20313. flags += libc.Uint64FromInt32(libc.Int32FromInt32(2) << libc.Int32FromInt32(6))
  20314. default:
  20315. flags += libc.Uint64FromInt32(libc.Int32FromInt32(3) << libc.Int32FromInt32(6))
  20316. }
  20317. /*
  20318. #if defined(ASMV) || defined(ASMINF)
  20319. flags += 1 << 9;
  20320. #endif
  20321. */
  20322. return flags
  20323. }
  20324. // C documentation
  20325. //
  20326. // /* exported to allow conversion of error code to string for compress() and
  20327. // * uncompress()
  20328. // */
  20329. func XzError(tls *libc.TLS, err int32) (r uintptr) {
  20330. var v1 int32
  20331. _ = v1
  20332. if err < -int32(6) || err > int32(2) {
  20333. v1 = int32(9)
  20334. } else {
  20335. v1 = int32(2) - err
  20336. }
  20337. return Xz_errmsg[v1]
  20338. }
  20339. func Xzcalloc(tls *libc.TLS, opaque Tvoidpf, items uint32, size uint32) (r Tvoidpf) {
  20340. _ = opaque
  20341. return libc.Xmalloc(tls, uint64(items*size))
  20342. }
  20343. func Xzcfree(tls *libc.TLS, opaque Tvoidpf, ptr Tvoidpf) {
  20344. _ = opaque
  20345. libc.Xfree(tls, ptr)
  20346. }
  20347. // C documentation
  20348. //
  20349. // /* ===========================================================================
  20350. // Compresses the source buffer into the destination buffer. The level
  20351. // parameter has the same meaning as in deflateInit. sourceLen is the byte
  20352. // length of the source buffer. Upon entry, destLen is the total size of the
  20353. // destination buffer, which must be at least 0.1% larger than sourceLen plus
  20354. // 12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
  20355. //
  20356. // compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
  20357. // memory, Z_BUF_ERROR if there was not enough room in the output buffer,
  20358. // Z_STREAM_ERROR if the level parameter is invalid.
  20359. // */
  20360. func Xcompress2(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen TuLong, level int32) (r int32) {
  20361. bp := tls.Alloc(112)
  20362. defer tls.Free(112)
  20363. var err, v3, v4 int32
  20364. var left TuLong
  20365. var max TuInt
  20366. var v1, v2 uint32
  20367. var _ /* stream at bp+0 */ Tz_stream
  20368. _, _, _, _, _, _, _ = err, left, max, v1, v2, v3, v4
  20369. max = libc.Uint32FromInt32(-libc.Int32FromInt32(1))
  20370. left = *(*TuLongf)(unsafe.Pointer(destLen))
  20371. *(*TuLongf)(unsafe.Pointer(destLen)) = uint64(0)
  20372. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzalloc = libc.UintptrFromInt32(0)
  20373. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzfree = libc.UintptrFromInt32(0)
  20374. (*(*Tz_stream)(unsafe.Pointer(bp))).Fopaque = libc.UintptrFromInt32(0)
  20375. err = XdeflateInit_(tls, bp, level, __ccgo_ts, libc.Int32FromInt64(112))
  20376. if err != m_Z_OK {
  20377. return err
  20378. }
  20379. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_out = dest
  20380. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = uint32(0)
  20381. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_in = source
  20382. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = uint32(0)
  20383. for cond := true; cond; cond = err == m_Z_OK {
  20384. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out == uint32(0) {
  20385. if left > uint64(max) {
  20386. v1 = max
  20387. } else {
  20388. v1 = uint32(left)
  20389. }
  20390. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = v1
  20391. left -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out)
  20392. }
  20393. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in == uint32(0) {
  20394. if sourceLen > uint64(max) {
  20395. v2 = max
  20396. } else {
  20397. v2 = uint32(sourceLen)
  20398. }
  20399. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = v2
  20400. sourceLen -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in)
  20401. }
  20402. if sourceLen != 0 {
  20403. v3 = m_Z_NO_FLUSH
  20404. } else {
  20405. v3 = int32(m_Z_FINISH)
  20406. }
  20407. err = Xdeflate(tls, bp, v3)
  20408. }
  20409. *(*TuLongf)(unsafe.Pointer(destLen)) = (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out
  20410. XdeflateEnd(tls, bp)
  20411. if err == int32(m_Z_STREAM_END) {
  20412. v4 = m_Z_OK
  20413. } else {
  20414. v4 = err
  20415. }
  20416. return v4
  20417. }
  20418. // C documentation
  20419. //
  20420. // /* ===========================================================================
  20421. // */
  20422. func Xcompress(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen TuLong) (r int32) {
  20423. return Xcompress2(tls, dest, destLen, source, sourceLen, -int32(1))
  20424. }
  20425. // C documentation
  20426. //
  20427. // /* ===========================================================================
  20428. // If the default memLevel or windowBits for deflateInit() is changed, then
  20429. // this function needs to be updated.
  20430. // */
  20431. func XcompressBound(tls *libc.TLS, sourceLen TuLong) (r TuLong) {
  20432. return sourceLen + sourceLen>>libc.Int32FromInt32(12) + sourceLen>>libc.Int32FromInt32(14) + sourceLen>>libc.Int32FromInt32(25) + uint64(13)
  20433. }
  20434. // C documentation
  20435. //
  20436. // /* ===========================================================================
  20437. // Decompresses the source buffer into the destination buffer. *sourceLen is
  20438. // the byte length of the source buffer. Upon entry, *destLen is the total size
  20439. // of the destination buffer, which must be large enough to hold the entire
  20440. // uncompressed data. (The size of the uncompressed data must have been saved
  20441. // previously by the compressor and transmitted to the decompressor by some
  20442. // mechanism outside the scope of this compression library.) Upon exit,
  20443. // *destLen is the size of the decompressed data and *sourceLen is the number
  20444. // of source bytes consumed. Upon return, source + *sourceLen points to the
  20445. // first unused input byte.
  20446. //
  20447. // uncompress returns Z_OK if success, Z_MEM_ERROR if there was not enough
  20448. // memory, Z_BUF_ERROR if there was not enough room in the output buffer, or
  20449. // Z_DATA_ERROR if the input data was corrupted, including if the input data is
  20450. // an incomplete zlib stream.
  20451. // */
  20452. func Xuncompress2(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen uintptr) (r int32) {
  20453. bp := tls.Alloc(128)
  20454. defer tls.Free(128)
  20455. var err, v3, v4, v5 int32
  20456. var left, len1 TuLong
  20457. var max TuInt
  20458. var v1, v2 uint32
  20459. var _ /* buf at bp+112 */ [1]TByte
  20460. var _ /* stream at bp+0 */ Tz_stream
  20461. _, _, _, _, _, _, _, _, _ = err, left, len1, max, v1, v2, v3, v4, v5
  20462. max = libc.Uint32FromInt32(-libc.Int32FromInt32(1)) /* for detection of incomplete stream when *destLen == 0 */
  20463. len1 = *(*TuLong)(unsafe.Pointer(sourceLen))
  20464. if *(*TuLongf)(unsafe.Pointer(destLen)) != 0 {
  20465. left = *(*TuLongf)(unsafe.Pointer(destLen))
  20466. *(*TuLongf)(unsafe.Pointer(destLen)) = uint64(0)
  20467. } else {
  20468. left = uint64(1)
  20469. dest = bp + 112
  20470. }
  20471. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_in = source
  20472. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = uint32(0)
  20473. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzalloc = libc.UintptrFromInt32(0)
  20474. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzfree = libc.UintptrFromInt32(0)
  20475. (*(*Tz_stream)(unsafe.Pointer(bp))).Fopaque = libc.UintptrFromInt32(0)
  20476. err = XinflateInit_(tls, bp, __ccgo_ts, libc.Int32FromInt64(112))
  20477. if err != m_Z_OK {
  20478. return err
  20479. }
  20480. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_out = dest
  20481. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = uint32(0)
  20482. for cond := true; cond; cond = err == m_Z_OK {
  20483. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out == uint32(0) {
  20484. if left > uint64(max) {
  20485. v1 = max
  20486. } else {
  20487. v1 = uint32(left)
  20488. }
  20489. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = v1
  20490. left -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out)
  20491. }
  20492. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in == uint32(0) {
  20493. if len1 > uint64(max) {
  20494. v2 = max
  20495. } else {
  20496. v2 = uint32(len1)
  20497. }
  20498. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = v2
  20499. len1 -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in)
  20500. }
  20501. err = Xinflate(tls, bp, m_Z_NO_FLUSH)
  20502. }
  20503. *(*TuLong)(unsafe.Pointer(sourceLen)) -= len1 + uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in)
  20504. if dest != bp+112 {
  20505. *(*TuLongf)(unsafe.Pointer(destLen)) = (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out
  20506. } else {
  20507. if (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out != 0 && err == -int32(5) {
  20508. left = uint64(1)
  20509. }
  20510. }
  20511. XinflateEnd(tls, bp)
  20512. if err == int32(m_Z_STREAM_END) {
  20513. v3 = m_Z_OK
  20514. } else {
  20515. if err == int32(m_Z_NEED_DICT) {
  20516. v4 = -int32(3)
  20517. } else {
  20518. if err == -int32(5) && left+uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out) != 0 {
  20519. v5 = -int32(3)
  20520. } else {
  20521. v5 = err
  20522. }
  20523. v4 = v5
  20524. }
  20525. v3 = v4
  20526. }
  20527. return v3
  20528. }
  20529. func Xuncompress(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, _sourceLen TuLong) (r int32) {
  20530. bp := tls.Alloc(16)
  20531. defer tls.Free(16)
  20532. *(*TuLong)(unsafe.Pointer(bp)) = _sourceLen
  20533. return Xuncompress2(tls, dest, destLen, source, bp)
  20534. }
  20535. // C documentation
  20536. //
  20537. // /* gzclose() is in a separate file so that it is linked in only if it is used.
  20538. // That way the other gzclose functions can be used instead to avoid linking in
  20539. // unneeded compression or decompression routines. */
  20540. func Xgzclose(tls *libc.TLS, file TgzFile) (r int32) {
  20541. var state Tgz_statep
  20542. var v1 int32
  20543. _, _ = state, v1
  20544. if file == libc.UintptrFromInt32(0) {
  20545. return -int32(2)
  20546. }
  20547. state = file
  20548. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20549. v1 = Xgzclose_r(tls, file)
  20550. } else {
  20551. v1 = Xgzclose_w(tls, file)
  20552. }
  20553. return v1
  20554. }
  20555. const m_INT_MAX1 = 2147483647
  20556. const m_LSEEK = "lseek"
  20557. const m_O_APPEND1 = 1024
  20558. const m_O_CLOEXEC1 = 524288
  20559. const m_O_CREAT1 = 64
  20560. const m_O_EXCL1 = 128
  20561. const m_O_LARGEFILE1 = 65536
  20562. const m_O_RDONLY1 = 0
  20563. const m_O_TRUNC1 = 512
  20564. const m_O_WRONLY1 = 1
  20565. // C documentation
  20566. //
  20567. // /* Reset gzip file state */
  20568. func _gz_reset(tls *libc.TLS, state Tgz_statep) {
  20569. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0) /* no output data available */
  20570. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) { /* for reading ... */
  20571. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0 /* not at end of file */
  20572. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0 /* have not read past end yet */
  20573. (*Tgz_state)(unsafe.Pointer(state)).Fhow = m_LOOK /* look for gzip header */
  20574. } else { /* for writing ... */
  20575. (*Tgz_state)(unsafe.Pointer(state)).Freset = 0
  20576. } /* no deflateReset pending */
  20577. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0 /* no seek request pending */
  20578. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0)) /* clear error */
  20579. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos = 0 /* no uncompressed data yet */
  20580. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0) /* no input data yet */
  20581. }
  20582. // C documentation
  20583. //
  20584. // /* Open a gzip file either by name or file descriptor. */
  20585. func _gz_open(tls *libc.TLS, path uintptr, fd int32, mode uintptr) (r TgzFile) {
  20586. bp := tls.Alloc(16)
  20587. defer tls.Free(16)
  20588. var cloexec, exclusive, oflag, v1, v2, v3, v4, v5 int32
  20589. var len1 Tz_size_t
  20590. var state Tgz_statep
  20591. _, _, _, _, _, _, _, _, _, _ = cloexec, exclusive, len1, oflag, state, v1, v2, v3, v4, v5
  20592. cloexec = 0
  20593. exclusive = 0
  20594. /* check input */
  20595. if path == libc.UintptrFromInt32(0) {
  20596. return libc.UintptrFromInt32(0)
  20597. }
  20598. /* allocate gzFile structure to return */
  20599. state = libc.Xmalloc(tls, uint64(240))
  20600. if state == libc.UintptrFromInt32(0) {
  20601. return libc.UintptrFromInt32(0)
  20602. }
  20603. (*Tgz_state)(unsafe.Pointer(state)).Fsize = uint32(0) /* no buffers allocated yet */
  20604. (*Tgz_state)(unsafe.Pointer(state)).Fwant = uint32(m_GZBUFSIZE) /* requested buffer size */
  20605. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = libc.UintptrFromInt32(0) /* no error message yet */
  20606. /* interpret mode */
  20607. (*Tgz_state)(unsafe.Pointer(state)).Fmode = m_GZ_NONE
  20608. (*Tgz_state)(unsafe.Pointer(state)).Flevel = -int32(1)
  20609. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = m_Z_DEFAULT_STRATEGY
  20610. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = 0
  20611. for *(*uint8)(unsafe.Pointer(mode)) != 0 {
  20612. if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(mode))) >= int32('0') && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(mode))) <= int32('9') {
  20613. (*Tgz_state)(unsafe.Pointer(state)).Flevel = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(mode))) - int32('0')
  20614. } else {
  20615. switch libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(mode))) {
  20616. case int32('r'):
  20617. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_READ)
  20618. case int32('w'):
  20619. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_WRITE)
  20620. case int32('a'):
  20621. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_APPEND)
  20622. case int32('+'): /* can't read and write at the same time */
  20623. libc.Xfree(tls, state)
  20624. return libc.UintptrFromInt32(0)
  20625. case int32('b'): /* ignore -- will request binary anyway */
  20626. case int32('e'):
  20627. cloexec = int32(1)
  20628. case int32('x'):
  20629. exclusive = int32(1)
  20630. case int32('f'):
  20631. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_FILTERED)
  20632. case int32('h'):
  20633. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_HUFFMAN_ONLY)
  20634. case int32('R'):
  20635. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_RLE)
  20636. case int32('F'):
  20637. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_FIXED)
  20638. case int32('T'):
  20639. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1)
  20640. default: /* could consider as an error, but just ignore */
  20641. }
  20642. }
  20643. mode++
  20644. }
  20645. /* must provide an "r", "w", or "a" */
  20646. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == m_GZ_NONE {
  20647. libc.Xfree(tls, state)
  20648. return libc.UintptrFromInt32(0)
  20649. }
  20650. /* can't force transparent read */
  20651. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20652. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  20653. libc.Xfree(tls, state)
  20654. return libc.UintptrFromInt32(0)
  20655. }
  20656. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1) /* for empty file */
  20657. }
  20658. /* save the path name for error messages */
  20659. len1 = libc.Xstrlen(tls, path)
  20660. (*Tgz_state)(unsafe.Pointer(state)).Fpath = libc.Xmalloc(tls, len1+uint64(1))
  20661. if (*Tgz_state)(unsafe.Pointer(state)).Fpath == libc.UintptrFromInt32(0) {
  20662. libc.Xfree(tls, state)
  20663. return libc.UintptrFromInt32(0)
  20664. }
  20665. libc.X__builtin_snprintf(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath, len1+uint64(1), __ccgo_ts+584, libc.VaList(bp+8, path))
  20666. /* compute the flags for open() */
  20667. if cloexec != 0 {
  20668. v1 = int32(m_O_CLOEXEC1)
  20669. } else {
  20670. v1 = 0
  20671. }
  20672. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20673. v2 = m_O_RDONLY1
  20674. } else {
  20675. if exclusive != 0 {
  20676. v3 = int32(m_O_EXCL1)
  20677. } else {
  20678. v3 = 0
  20679. }
  20680. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_WRITE) {
  20681. v4 = int32(m_O_TRUNC1)
  20682. } else {
  20683. v4 = int32(m_O_APPEND1)
  20684. }
  20685. v2 = libc.Int32FromInt32(m_O_WRONLY1) | libc.Int32FromInt32(m_O_CREAT1) | v3 | v4
  20686. }
  20687. oflag = int32(m_O_LARGEFILE1) | v1 | v2
  20688. /* open the file with the appropriate flags (or just use fd) */
  20689. if fd > -int32(1) {
  20690. v5 = fd
  20691. } else {
  20692. v5 = libc.Xopen(tls, path, oflag, libc.VaList(bp+8, int32(0666)))
  20693. }
  20694. (*Tgz_state)(unsafe.Pointer(state)).Ffd = v5
  20695. if (*Tgz_state)(unsafe.Pointer(state)).Ffd == -int32(1) {
  20696. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  20697. libc.Xfree(tls, state)
  20698. return libc.UintptrFromInt32(0)
  20699. }
  20700. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_APPEND) {
  20701. libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(2)) /* so gzoffset() is correct */
  20702. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_WRITE) /* simplify later checks */
  20703. }
  20704. /* save the current position for rewinding (only if reading) */
  20705. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20706. (*Tgz_state)(unsafe.Pointer(state)).Fstart = libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(1))
  20707. if (*Tgz_state)(unsafe.Pointer(state)).Fstart == int64(-int32(1)) {
  20708. (*Tgz_state)(unsafe.Pointer(state)).Fstart = 0
  20709. }
  20710. }
  20711. /* initialize stream */
  20712. _gz_reset(tls, state)
  20713. /* return stream */
  20714. return state
  20715. }
  20716. // C documentation
  20717. //
  20718. // /* -- see zlib.h -- */
  20719. func Xgzopen(tls *libc.TLS, path uintptr, mode uintptr) (r TgzFile) {
  20720. return _gz_open(tls, path, -int32(1), mode)
  20721. }
  20722. // C documentation
  20723. //
  20724. // /* -- see zlib.h -- */
  20725. func Xgzopen64(tls *libc.TLS, path uintptr, mode uintptr) (r TgzFile) {
  20726. return _gz_open(tls, path, -int32(1), mode)
  20727. }
  20728. // C documentation
  20729. //
  20730. // /* -- see zlib.h -- */
  20731. func Xgzdopen(tls *libc.TLS, fd int32, mode uintptr) (r TgzFile) {
  20732. bp := tls.Alloc(16)
  20733. defer tls.Free(16)
  20734. var gz TgzFile
  20735. var path, v1 uintptr
  20736. var v2 bool
  20737. _, _, _, _ = gz, path, v1, v2
  20738. if v2 = fd == -int32(1); !v2 {
  20739. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(7)+libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))
  20740. path = v1
  20741. }
  20742. if v2 || v1 == libc.UintptrFromInt32(0) {
  20743. return libc.UintptrFromInt32(0)
  20744. }
  20745. libc.X__builtin_snprintf(tls, path, libc.Uint64FromInt32(7)+libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4), __ccgo_ts+587, libc.VaList(bp+8, fd))
  20746. gz = _gz_open(tls, path, fd, mode)
  20747. libc.Xfree(tls, path)
  20748. return gz
  20749. }
  20750. /* -- see zlib.h -- */
  20751. // C documentation
  20752. //
  20753. // /* -- see zlib.h -- */
  20754. func Xgzbuffer(tls *libc.TLS, file TgzFile, size uint32) (r int32) {
  20755. var state Tgz_statep
  20756. _ = state
  20757. /* get internal structure and check integrity */
  20758. if file == libc.UintptrFromInt32(0) {
  20759. return -int32(1)
  20760. }
  20761. state = file
  20762. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20763. return -int32(1)
  20764. }
  20765. /* make sure we haven't already allocated memory */
  20766. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != uint32(0) {
  20767. return -int32(1)
  20768. }
  20769. /* check and set requested size */
  20770. if size<<int32(1) < size {
  20771. return -int32(1)
  20772. } /* need to be able to double it */
  20773. if size < uint32(8) {
  20774. size = uint32(8)
  20775. } /* needed to behave well with flushing */
  20776. (*Tgz_state)(unsafe.Pointer(state)).Fwant = size
  20777. return 0
  20778. }
  20779. // C documentation
  20780. //
  20781. // /* -- see zlib.h -- */
  20782. func Xgzrewind(tls *libc.TLS, file TgzFile) (r int32) {
  20783. var state Tgz_statep
  20784. _ = state
  20785. /* get internal structure */
  20786. if file == libc.UintptrFromInt32(0) {
  20787. return -int32(1)
  20788. }
  20789. state = file
  20790. /* check that we're reading and that there's no error */
  20791. 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) {
  20792. return -int32(1)
  20793. }
  20794. /* back up and start over */
  20795. if libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tgz_state)(unsafe.Pointer(state)).Fstart, 0) == int64(-int32(1)) {
  20796. return -int32(1)
  20797. }
  20798. _gz_reset(tls, state)
  20799. return 0
  20800. }
  20801. // C documentation
  20802. //
  20803. // /* -- see zlib.h -- */
  20804. func Xgzseek64(tls *libc.TLS, file TgzFile, offset Toff_t, whence int32) (r Toff_t) {
  20805. var n, v1 uint32
  20806. var ret Toff_t
  20807. var state Tgz_statep
  20808. _, _, _, _ = n, ret, state, v1
  20809. /* get internal structure and check integrity */
  20810. if file == libc.UintptrFromInt32(0) {
  20811. return int64(-int32(1))
  20812. }
  20813. state = file
  20814. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20815. return int64(-int32(1))
  20816. }
  20817. /* check that there's no error */
  20818. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  20819. return int64(-int32(1))
  20820. }
  20821. /* can only seek from start or relative to current position */
  20822. if whence != 0 && whence != int32(1) {
  20823. return int64(-int32(1))
  20824. }
  20825. /* normalize offset to a SEEK_CUR specification */
  20826. if whence == 0 {
  20827. offset -= (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  20828. } else {
  20829. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  20830. offset += (*Tgz_state)(unsafe.Pointer(state)).Fskip
  20831. }
  20832. }
  20833. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  20834. /* if within raw area while reading, just go there */
  20835. 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 {
  20836. ret = libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, offset-libc.Int64FromUint32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave), int32(1))
  20837. if ret == int64(-int32(1)) {
  20838. return int64(-int32(1))
  20839. }
  20840. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  20841. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0
  20842. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  20843. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  20844. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  20845. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0)
  20846. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += offset
  20847. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  20848. }
  20849. /* calculate skip amount, rewinding if needed for back seek when reading */
  20850. if offset < 0 {
  20851. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) { /* writing -- can't go backwards */
  20852. return int64(-int32(1))
  20853. }
  20854. offset += (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  20855. if offset < 0 { /* before start of file! */
  20856. return int64(-int32(1))
  20857. }
  20858. if Xgzrewind(tls, file) == -int32(1) { /* rewind, then skip to offset */
  20859. return int64(-int32(1))
  20860. }
  20861. }
  20862. /* if reading, skip what's in output buffer (one less gzgetc() check) */
  20863. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20864. if libc.Bool(libc.Bool(uint64(4) == uint64(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > Xgz_intmax(tls)) || libc.Int64FromUint32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave) > offset {
  20865. v1 = libc.Uint32FromInt64(offset)
  20866. } else {
  20867. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  20868. }
  20869. n = v1
  20870. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  20871. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  20872. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(n)
  20873. offset -= libc.Int64FromUint32(n)
  20874. }
  20875. /* request skip (if not zero) */
  20876. if offset != 0 {
  20877. (*Tgz_state)(unsafe.Pointer(state)).Fseek = int32(1)
  20878. (*Tgz_state)(unsafe.Pointer(state)).Fskip = offset
  20879. }
  20880. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos + offset
  20881. }
  20882. // C documentation
  20883. //
  20884. // /* -- see zlib.h -- */
  20885. func Xgzseek(tls *libc.TLS, file TgzFile, offset Toff_t, whence int32) (r Toff_t) {
  20886. var ret Toff_t
  20887. var v1 int64
  20888. _, _ = ret, v1
  20889. ret = Xgzseek64(tls, file, offset, whence)
  20890. if ret == ret {
  20891. v1 = ret
  20892. } else {
  20893. v1 = int64(-int32(1))
  20894. }
  20895. return v1
  20896. }
  20897. // C documentation
  20898. //
  20899. // /* -- see zlib.h -- */
  20900. func Xgztell64(tls *libc.TLS, file TgzFile) (r Toff_t) {
  20901. var state Tgz_statep
  20902. var v1 int64
  20903. _, _ = state, v1
  20904. /* get internal structure and check integrity */
  20905. if file == libc.UintptrFromInt32(0) {
  20906. return int64(-int32(1))
  20907. }
  20908. state = file
  20909. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20910. return int64(-int32(1))
  20911. }
  20912. /* return position */
  20913. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  20914. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fskip
  20915. } else {
  20916. v1 = 0
  20917. }
  20918. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos + v1
  20919. }
  20920. // C documentation
  20921. //
  20922. // /* -- see zlib.h -- */
  20923. func Xgztell(tls *libc.TLS, file TgzFile) (r Toff_t) {
  20924. var ret Toff_t
  20925. var v1 int64
  20926. _, _ = ret, v1
  20927. ret = Xgztell64(tls, file)
  20928. if ret == ret {
  20929. v1 = ret
  20930. } else {
  20931. v1 = int64(-int32(1))
  20932. }
  20933. return v1
  20934. }
  20935. // C documentation
  20936. //
  20937. // /* -- see zlib.h -- */
  20938. func Xgzoffset64(tls *libc.TLS, file TgzFile) (r Toff_t) {
  20939. var offset Toff_t
  20940. var state Tgz_statep
  20941. _, _ = offset, state
  20942. /* get internal structure and check integrity */
  20943. if file == libc.UintptrFromInt32(0) {
  20944. return int64(-int32(1))
  20945. }
  20946. state = file
  20947. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20948. return int64(-int32(1))
  20949. }
  20950. /* compute and return effective offset in file */
  20951. offset = libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(1))
  20952. if offset == int64(-int32(1)) {
  20953. return int64(-int32(1))
  20954. }
  20955. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) { /* reading */
  20956. offset -= libc.Int64FromUint32((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in)
  20957. } /* don't count buffered input */
  20958. return offset
  20959. }
  20960. // C documentation
  20961. //
  20962. // /* -- see zlib.h -- */
  20963. func Xgzoffset(tls *libc.TLS, file TgzFile) (r Toff_t) {
  20964. var ret Toff_t
  20965. var v1 int64
  20966. _, _ = ret, v1
  20967. ret = Xgzoffset64(tls, file)
  20968. if ret == ret {
  20969. v1 = ret
  20970. } else {
  20971. v1 = int64(-int32(1))
  20972. }
  20973. return v1
  20974. }
  20975. // C documentation
  20976. //
  20977. // /* -- see zlib.h -- */
  20978. func Xgzeof(tls *libc.TLS, file TgzFile) (r int32) {
  20979. var state Tgz_statep
  20980. var v1 int32
  20981. _, _ = state, v1
  20982. /* get internal structure and check integrity */
  20983. if file == libc.UintptrFromInt32(0) {
  20984. return 0
  20985. }
  20986. state = file
  20987. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20988. return 0
  20989. }
  20990. /* return end-of-file state */
  20991. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20992. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fpast
  20993. } else {
  20994. v1 = 0
  20995. }
  20996. return v1
  20997. }
  20998. // C documentation
  20999. //
  21000. // /* -- see zlib.h -- */
  21001. func Xgzerror(tls *libc.TLS, file TgzFile, errnum uintptr) (r uintptr) {
  21002. var state Tgz_statep
  21003. var v1, v2 uintptr
  21004. _, _, _ = state, v1, v2
  21005. /* get internal structure and check integrity */
  21006. if file == libc.UintptrFromInt32(0) {
  21007. return libc.UintptrFromInt32(0)
  21008. }
  21009. state = file
  21010. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  21011. return libc.UintptrFromInt32(0)
  21012. }
  21013. /* return error information */
  21014. if errnum != libc.UintptrFromInt32(0) {
  21015. *(*int32)(unsafe.Pointer(errnum)) = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  21016. }
  21017. if (*Tgz_state)(unsafe.Pointer(state)).Ferr == -int32(4) {
  21018. v1 = __ccgo_ts + 595
  21019. } else {
  21020. if (*Tgz_state)(unsafe.Pointer(state)).Fmsg == libc.UintptrFromInt32(0) {
  21021. v2 = __ccgo_ts + 494
  21022. } else {
  21023. v2 = (*Tgz_state)(unsafe.Pointer(state)).Fmsg
  21024. }
  21025. v1 = v2
  21026. }
  21027. return v1
  21028. }
  21029. // C documentation
  21030. //
  21031. // /* -- see zlib.h -- */
  21032. func Xgzclearerr(tls *libc.TLS, file TgzFile) {
  21033. var state Tgz_statep
  21034. _ = state
  21035. /* get internal structure and check integrity */
  21036. if file == libc.UintptrFromInt32(0) {
  21037. return
  21038. }
  21039. state = file
  21040. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  21041. return
  21042. }
  21043. /* clear error and end-of-file */
  21044. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  21045. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0
  21046. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  21047. }
  21048. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  21049. }
  21050. // C documentation
  21051. //
  21052. // /* Create an error message in allocated memory and set state->err and
  21053. // state->msg accordingly. Free any previous error message already there. Do
  21054. // not try to free or allocate space if the error is Z_MEM_ERROR (out of
  21055. // memory). Simply save the error message as a static string. If there is an
  21056. // allocation failure constructing the error message, then convert the error to
  21057. // out of memory. */
  21058. func Xgz_error(tls *libc.TLS, state Tgz_statep, err int32, msg uintptr) {
  21059. bp := tls.Alloc(32)
  21060. defer tls.Free(32)
  21061. var v1 uintptr
  21062. _ = v1
  21063. /* free previously allocated message and clear */
  21064. if (*Tgz_state)(unsafe.Pointer(state)).Fmsg != libc.UintptrFromInt32(0) {
  21065. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(4) {
  21066. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fmsg)
  21067. }
  21068. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = libc.UintptrFromInt32(0)
  21069. }
  21070. /* if fatal, set state->x.have to 0 so that the gzgetc() macro fails */
  21071. if err != m_Z_OK && err != -int32(5) {
  21072. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  21073. }
  21074. /* set error code, and if no message, then done */
  21075. (*Tgz_state)(unsafe.Pointer(state)).Ferr = err
  21076. if msg == libc.UintptrFromInt32(0) {
  21077. return
  21078. }
  21079. /* for an out of memory error, return literal string when requested */
  21080. if err == -int32(4) {
  21081. return
  21082. }
  21083. /* construct error message with path */
  21084. v1 = libc.Xmalloc(tls, libc.Xstrlen(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)+libc.Xstrlen(tls, msg)+uint64(3))
  21085. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = v1
  21086. if v1 == libc.UintptrFromInt32(0) {
  21087. (*Tgz_state)(unsafe.Pointer(state)).Ferr = -int32(4)
  21088. return
  21089. }
  21090. libc.X__builtin_snprintf(tls, (*Tgz_state)(unsafe.Pointer(state)).Fmsg, libc.Xstrlen(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)+libc.Xstrlen(tls, msg)+uint64(3), __ccgo_ts+609, libc.VaList(bp+8, (*Tgz_state)(unsafe.Pointer(state)).Fpath, __ccgo_ts+616, msg))
  21091. }
  21092. // C documentation
  21093. //
  21094. // /* portably return maximum value for an int (when limits.h presumed not
  21095. // available) -- we need to do this to cover cases where 2's complement not
  21096. // used, since C standard permits 1's complement and sign-bit representations,
  21097. // otherwise we could just use ((unsigned)-1) >> 1 */
  21098. func Xgz_intmax(tls *libc.TLS) (r uint32) {
  21099. return uint32(m_INT_MAX1)
  21100. }
  21101. const m_INT_MAX2 = 0x7fffffff
  21102. const m_O_APPEND2 = 02000
  21103. const m_O_CLOEXEC2 = 02000000
  21104. const m_O_CREAT2 = 0100
  21105. const m_O_EXCL2 = 0200
  21106. const m_O_LARGEFILE2 = 0200000
  21107. const m_O_RDONLY2 = 00
  21108. const m_O_TRUNC2 = 01000
  21109. const m_O_WRONLY2 = 01
  21110. // C documentation
  21111. //
  21112. // /* Use read() to load a buffer -- return -1 on error, otherwise 0. Read from
  21113. // state->fd, and update state->eof, state->err, and state->msg as appropriate.
  21114. // This function needs to loop on read(), since read() is not guaranteed to
  21115. // read the number of bytes requested, depending on the type of descriptor. */
  21116. func _gz_load(tls *libc.TLS, state Tgz_statep, buf uintptr, len1 uint32, have uintptr) (r int32) {
  21117. var get, max uint32
  21118. var ret int32
  21119. _, _, _ = get, max, ret
  21120. max = libc.Uint32FromInt32(-libc.Int32FromInt32(1))>>libc.Int32FromInt32(2) + libc.Uint32FromInt32(1)
  21121. *(*uint32)(unsafe.Pointer(have)) = uint32(0)
  21122. for cond := true; cond; cond = *(*uint32)(unsafe.Pointer(have)) < len1 {
  21123. get = len1 - *(*uint32)(unsafe.Pointer(have))
  21124. if get > max {
  21125. get = max
  21126. }
  21127. ret = int32(libc.Xread(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, buf+uintptr(*(*uint32)(unsafe.Pointer(have))), uint64(get)))
  21128. if ret <= 0 {
  21129. break
  21130. }
  21131. *(*uint32)(unsafe.Pointer(have)) += libc.Uint32FromInt32(ret)
  21132. }
  21133. if ret < 0 {
  21134. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))))
  21135. return -int32(1)
  21136. }
  21137. if ret == 0 {
  21138. (*Tgz_state)(unsafe.Pointer(state)).Feof = int32(1)
  21139. }
  21140. return 0
  21141. }
  21142. // C documentation
  21143. //
  21144. // /* Load up input buffer and set eof flag if last data loaded -- return -1 on
  21145. // error, 0 otherwise. Note that the eof flag is set when the end of the input
  21146. // file is reached, even though there may be unused data in the buffer. Once
  21147. // that data has been used, no more attempts will be made to read the file.
  21148. // If strm->avail_in != 0, then the current data is moved to the beginning of
  21149. // the input buffer, and then the remainder of the buffer is loaded with the
  21150. // available data from the input file. */
  21151. func _gz_avail(tls *libc.TLS, state Tgz_statep) (r int32) {
  21152. bp := tls.Alloc(16)
  21153. defer tls.Free(16)
  21154. var n, v1 uint32
  21155. var p, q, v3, v4 uintptr
  21156. var strm Tz_streamp
  21157. var _ /* got at bp+0 */ uint32
  21158. _, _, _, _, _, _, _ = n, p, q, strm, v1, v3, v4
  21159. strm = state + 128
  21160. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  21161. return -int32(1)
  21162. }
  21163. if (*Tgz_state)(unsafe.Pointer(state)).Feof == 0 {
  21164. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 { /* copy what's there to the start */
  21165. p = (*Tgz_state)(unsafe.Pointer(state)).Fin
  21166. q = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  21167. n = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  21168. for {
  21169. v3 = p
  21170. p++
  21171. v4 = q
  21172. q++
  21173. *(*uint8)(unsafe.Pointer(v3)) = *(*uint8)(unsafe.Pointer(v4))
  21174. goto _2
  21175. _2:
  21176. ;
  21177. n--
  21178. v1 = n
  21179. if !(v1 != 0) {
  21180. break
  21181. }
  21182. }
  21183. }
  21184. 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) {
  21185. return -int32(1)
  21186. }
  21187. *(*TuInt)(unsafe.Pointer(strm + 8)) += *(*uint32)(unsafe.Pointer(bp))
  21188. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  21189. }
  21190. return 0
  21191. }
  21192. // C documentation
  21193. //
  21194. // /* Look for gzip header, set up for inflate or copy. state->x.have must be 0.
  21195. // If this is the first time in, allocate required memory. state->how will be
  21196. // left unchanged if there is no more input data available, will be set to COPY
  21197. // if there is no gzip header and direct copying will be performed, or it will
  21198. // be set to GZIP for decompression. If direct copying, then leftover input
  21199. // data from the input buffer will be copied to the output buffer. In that
  21200. // case, all further file reads will be directly to either the output buffer or
  21201. // a user buffer. If decompressing, the inflate state will be initialized.
  21202. // gz_look() will return 0 on success or -1 on failure. */
  21203. func _gz_look(tls *libc.TLS, state Tgz_statep) (r int32) {
  21204. var strm Tz_streamp
  21205. _ = strm
  21206. strm = state + 128
  21207. /* allocate read buffers and inflate memory */
  21208. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) {
  21209. /* allocate buffers */
  21210. (*Tgz_state)(unsafe.Pointer(state)).Fin = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant))
  21211. (*Tgz_state)(unsafe.Pointer(state)).Fout = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant<<int32(1)))
  21212. if (*Tgz_state)(unsafe.Pointer(state)).Fin == libc.UintptrFromInt32(0) || (*Tgz_state)(unsafe.Pointer(state)).Fout == libc.UintptrFromInt32(0) {
  21213. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  21214. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21215. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21216. return -int32(1)
  21217. }
  21218. (*Tgz_state)(unsafe.Pointer(state)).Fsize = (*Tgz_state)(unsafe.Pointer(state)).Fwant
  21219. /* allocate inflate memory */
  21220. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fzalloc = uintptr(m_Z_NULL)
  21221. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fzfree = uintptr(m_Z_NULL)
  21222. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fopaque = uintptr(m_Z_NULL)
  21223. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0)
  21224. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = uintptr(m_Z_NULL)
  21225. if XinflateInit2_(tls, state+128, libc.Int32FromInt32(15)+libc.Int32FromInt32(16), __ccgo_ts, libc.Int32FromInt64(112)) != m_Z_OK { /* gunzip */
  21226. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  21227. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21228. (*Tgz_state)(unsafe.Pointer(state)).Fsize = uint32(0)
  21229. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21230. return -int32(1)
  21231. }
  21232. }
  21233. /* get at least the magic bytes in the input buffer */
  21234. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in < uint32(2) {
  21235. if _gz_avail(tls, state) == -int32(1) {
  21236. return -int32(1)
  21237. }
  21238. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  21239. return 0
  21240. }
  21241. }
  21242. /* look for gzip magic bytes -- if there, do gzip decoding (note: there is
  21243. a logical dilemma here when considering the case of a partially written
  21244. gzip file, to wit, if a single 31 byte is written, then we cannot tell
  21245. whether this is a single-byte file, or just a partially written gzip
  21246. file -- for here we assume that if a gzip file is being written, then
  21247. the header will be written in a single operation, so that reading a
  21248. single byte is sufficient indication that it is not a gzip file) */
  21249. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in > uint32(1) && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in))) == int32(31) && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in + 1))) == int32(139) {
  21250. XinflateReset(tls, strm)
  21251. (*Tgz_state)(unsafe.Pointer(state)).Fhow = int32(m_GZIP)
  21252. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = 0
  21253. return 0
  21254. }
  21255. /* no gzip header -- if we were decoding gzip before, then this is trailing
  21256. garbage. Ignore the trailing garbage and finish. */
  21257. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect == 0 {
  21258. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(0)
  21259. (*Tgz_state)(unsafe.Pointer(state)).Feof = int32(1)
  21260. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  21261. return 0
  21262. }
  21263. /* doing raw i/o, copy any leftover input to output -- this assumes that
  21264. the output buffer is larger than the input buffer, which also assures
  21265. space for gzungetc() */
  21266. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21267. libc.Xmemcpy(tls, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, uint64((*Tz_stream)(unsafe.Pointer(strm)).Favail_in))
  21268. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  21269. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(0)
  21270. (*Tgz_state)(unsafe.Pointer(state)).Fhow = int32(m_COPY)
  21271. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1)
  21272. return 0
  21273. }
  21274. // C documentation
  21275. //
  21276. // /* Decompress from input to the provided next_out and avail_out in the state.
  21277. // On return, state->x.have and state->x.next point to the just decompressed
  21278. // data. If the gzip stream completes, state->how is reset to LOOK to look for
  21279. // the next gzip stream or raw data, once state->x.have is depleted. Returns 0
  21280. // on success, -1 on failure. */
  21281. func _gz_decomp(tls *libc.TLS, state Tgz_statep) (r int32) {
  21282. var had uint32
  21283. var ret int32
  21284. var strm Tz_streamp
  21285. var v1 uintptr
  21286. _, _, _, _ = had, ret, strm, v1
  21287. ret = m_Z_OK
  21288. strm = state + 128
  21289. /* fill output buffer up to end of deflate stream */
  21290. had = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  21291. for cond := true; cond; cond = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out != 0 && ret != int32(m_Z_STREAM_END) {
  21292. /* get more input for inflate() */
  21293. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) && _gz_avail(tls, state) == -int32(1) {
  21294. return -int32(1)
  21295. }
  21296. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  21297. Xgz_error(tls, state, -int32(5), __ccgo_ts+619)
  21298. break
  21299. }
  21300. /* decompress and handle errors */
  21301. ret = Xinflate(tls, strm, m_Z_NO_FLUSH)
  21302. if ret == -int32(2) || ret == int32(m_Z_NEED_DICT) {
  21303. Xgz_error(tls, state, -int32(2), __ccgo_ts+642)
  21304. return -int32(1)
  21305. }
  21306. if ret == -int32(4) {
  21307. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21308. return -int32(1)
  21309. }
  21310. if ret == -int32(3) { /* deflate stream invalid */
  21311. if (*Tz_stream)(unsafe.Pointer(strm)).Fmsg == libc.UintptrFromInt32(0) {
  21312. v1 = __ccgo_ts + 681
  21313. } else {
  21314. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Fmsg
  21315. }
  21316. Xgz_error(tls, state, -int32(3), v1)
  21317. return -int32(1)
  21318. }
  21319. }
  21320. /* update available output */
  21321. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = had - (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  21322. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out - uintptr((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave)
  21323. /* if the gzip stream completed successfully, look for another */
  21324. if ret == int32(m_Z_STREAM_END) {
  21325. (*Tgz_state)(unsafe.Pointer(state)).Fhow = m_LOOK
  21326. }
  21327. /* good decompression */
  21328. return 0
  21329. }
  21330. // C documentation
  21331. //
  21332. // /* Fetch data and put it in the output buffer. Assumes state->x.have is 0.
  21333. // Data is either copied from the input file or decompressed from the input
  21334. // file depending on state->how. If state->how is LOOK, then a gzip header is
  21335. // looked for to determine whether to copy or decompress. Returns -1 on error,
  21336. // otherwise 0. gz_fetch() will leave state->how as COPY or GZIP unless the
  21337. // end of the input file has been reached and all data has been processed. */
  21338. func _gz_fetch(tls *libc.TLS, state Tgz_statep) (r int32) {
  21339. var strm Tz_streamp
  21340. _ = strm
  21341. strm = state + 128
  21342. 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) {
  21343. switch (*Tgz_state)(unsafe.Pointer(state)).Fhow {
  21344. case m_LOOK: /* -> LOOK, COPY (only if never GZIP), or GZIP */
  21345. if _gz_look(tls, state) == -int32(1) {
  21346. return -int32(1)
  21347. }
  21348. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK {
  21349. return 0
  21350. }
  21351. case int32(m_COPY): /* -> COPY */
  21352. if _gz_load(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fout, (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1), state) == -int32(1) {
  21353. return -int32(1)
  21354. }
  21355. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21356. return 0
  21357. case int32(m_GZIP): /* -> GZIP or LOOK (if end of gzip stream) */
  21358. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize << int32(1)
  21359. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21360. if _gz_decomp(tls, state) == -int32(1) {
  21361. return -int32(1)
  21362. }
  21363. }
  21364. }
  21365. return 0
  21366. }
  21367. // C documentation
  21368. //
  21369. // /* Skip len uncompressed bytes of output. Return -1 on error, 0 on success. */
  21370. func _gz_skip(tls *libc.TLS, state Tgz_statep, len1 Toff_t) (r int32) {
  21371. var n, v1 uint32
  21372. _, _ = n, v1
  21373. /* skip over len bytes or reach end-of-file, whichever comes first */
  21374. for len1 != 0 {
  21375. /* skip over whatever is in output buffer */
  21376. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  21377. if libc.Bool(libc.Bool(uint64(4) == uint64(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > Xgz_intmax(tls)) || libc.Int64FromUint32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave) > len1 {
  21378. v1 = libc.Uint32FromInt64(len1)
  21379. } else {
  21380. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  21381. }
  21382. n = v1
  21383. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  21384. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  21385. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(n)
  21386. len1 -= libc.Int64FromUint32(n)
  21387. } else {
  21388. if (*Tgz_state)(unsafe.Pointer(state)).Feof != 0 && (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  21389. break
  21390. } else {
  21391. /* get more output, looking for header if required */
  21392. if _gz_fetch(tls, state) == -int32(1) {
  21393. return -int32(1)
  21394. }
  21395. }
  21396. }
  21397. }
  21398. return 0
  21399. }
  21400. // C documentation
  21401. //
  21402. // /* Read len bytes into buf from file, or less than len up to the end of the
  21403. // input. Return the number of bytes read. If zero is returned, either the
  21404. // end of file was reached, or there was an error. state->err must be
  21405. // consulted in that case to determine which. */
  21406. func _gz_read(tls *libc.TLS, state Tgz_statep, buf Tvoidp, len1 Tz_size_t) (r Tz_size_t) {
  21407. bp := tls.Alloc(16)
  21408. defer tls.Free(16)
  21409. var got Tz_size_t
  21410. var _ /* n at bp+0 */ uint32
  21411. _ = got
  21412. /* if len is zero, avoid unnecessary operations */
  21413. if len1 == uint64(0) {
  21414. return uint64(0)
  21415. }
  21416. /* process a skip request */
  21417. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21418. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21419. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21420. return uint64(0)
  21421. }
  21422. }
  21423. /* get len bytes to buf, or less than len if at the end */
  21424. got = uint64(0)
  21425. for cond := true; cond; cond = len1 != 0 {
  21426. /* set n to the maximum amount of len that fits in an unsigned int */
  21427. *(*uint32)(unsafe.Pointer(bp)) = libc.Uint32FromInt32(-libc.Int32FromInt32(1))
  21428. if uint64(*(*uint32)(unsafe.Pointer(bp))) > len1 {
  21429. *(*uint32)(unsafe.Pointer(bp)) = uint32(len1)
  21430. }
  21431. /* first just try copying data from the output buffer */
  21432. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  21433. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave < *(*uint32)(unsafe.Pointer(bp)) {
  21434. *(*uint32)(unsafe.Pointer(bp)) = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  21435. }
  21436. libc.Xmemcpy(tls, buf, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, uint64(*(*uint32)(unsafe.Pointer(bp))))
  21437. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(*(*uint32)(unsafe.Pointer(bp)))
  21438. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= *(*uint32)(unsafe.Pointer(bp))
  21439. } else {
  21440. if (*Tgz_state)(unsafe.Pointer(state)).Feof != 0 && (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  21441. (*Tgz_state)(unsafe.Pointer(state)).Fpast = int32(1) /* tried to read past end */
  21442. break
  21443. } else {
  21444. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK || *(*uint32)(unsafe.Pointer(bp)) < (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1) {
  21445. /* get more output, looking for header if required */
  21446. if _gz_fetch(tls, state) == -int32(1) {
  21447. return uint64(0)
  21448. }
  21449. continue /* no progress yet -- go back to copy above */
  21450. /* the copy above assures that we will leave with space in the
  21451. output buffer, allowing at least one gzungetc() to succeed */
  21452. } else {
  21453. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == int32(m_COPY) { /* read directly */
  21454. if _gz_load(tls, state, buf, *(*uint32)(unsafe.Pointer(bp)), bp) == -int32(1) {
  21455. return uint64(0)
  21456. }
  21457. } else { /* state->how == GZIP */
  21458. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_out = *(*uint32)(unsafe.Pointer(bp))
  21459. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_out = buf
  21460. if _gz_decomp(tls, state) == -int32(1) {
  21461. return uint64(0)
  21462. }
  21463. *(*uint32)(unsafe.Pointer(bp)) = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  21464. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  21465. }
  21466. }
  21467. }
  21468. }
  21469. /* update progress */
  21470. len1 -= uint64(*(*uint32)(unsafe.Pointer(bp)))
  21471. buf = buf + uintptr(*(*uint32)(unsafe.Pointer(bp)))
  21472. got += uint64(*(*uint32)(unsafe.Pointer(bp)))
  21473. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(*(*uint32)(unsafe.Pointer(bp)))
  21474. }
  21475. /* return number of bytes read into user buffer */
  21476. return got
  21477. }
  21478. // C documentation
  21479. //
  21480. // /* -- see zlib.h -- */
  21481. func Xgzread(tls *libc.TLS, file TgzFile, buf Tvoidp, len1 uint32) (r int32) {
  21482. var state Tgz_statep
  21483. _ = state
  21484. /* get internal structure */
  21485. if file == libc.UintptrFromInt32(0) {
  21486. return -int32(1)
  21487. }
  21488. state = file
  21489. /* check that we're reading and that there's no (serious) error */
  21490. 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) {
  21491. return -int32(1)
  21492. }
  21493. /* since an int is returned, make sure len fits in one, otherwise return
  21494. with an error (this avoids a flaw in the interface) */
  21495. if libc.Int32FromUint32(len1) < 0 {
  21496. Xgz_error(tls, state, -int32(2), __ccgo_ts+703)
  21497. return -int32(1)
  21498. }
  21499. /* read len or fewer bytes to buf */
  21500. len1 = uint32(_gz_read(tls, state, buf, uint64(len1)))
  21501. /* check for an error */
  21502. if len1 == uint32(0) && (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  21503. return -int32(1)
  21504. }
  21505. /* return the number of bytes read (this is assured to fit in an int) */
  21506. return libc.Int32FromUint32(len1)
  21507. }
  21508. // C documentation
  21509. //
  21510. // /* -- see zlib.h -- */
  21511. func Xgzfread(tls *libc.TLS, buf Tvoidp, size Tz_size_t, nitems Tz_size_t, file TgzFile) (r Tz_size_t) {
  21512. var len1 Tz_size_t
  21513. var state Tgz_statep
  21514. var v1 uint64
  21515. _, _, _ = len1, state, v1
  21516. /* get internal structure */
  21517. if file == libc.UintptrFromInt32(0) {
  21518. return uint64(0)
  21519. }
  21520. state = file
  21521. /* check that we're reading and that there's no (serious) error */
  21522. 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) {
  21523. return uint64(0)
  21524. }
  21525. /* compute bytes to read -- error on overflow */
  21526. len1 = nitems * size
  21527. if size != 0 && len1/size != nitems {
  21528. Xgz_error(tls, state, -int32(2), __ccgo_ts+734)
  21529. return uint64(0)
  21530. }
  21531. /* read len or fewer bytes to buf, return the number of full items read */
  21532. if len1 != 0 {
  21533. v1 = _gz_read(tls, state, buf, len1) / size
  21534. } else {
  21535. v1 = uint64(0)
  21536. }
  21537. return v1
  21538. }
  21539. // C documentation
  21540. //
  21541. // /* -- see zlib.h -- */
  21542. func Xgzgetc(tls *libc.TLS, file TgzFile) (r int32) {
  21543. bp := tls.Alloc(16)
  21544. defer tls.Free(16)
  21545. var state Tgz_statep
  21546. var v1, v2 uintptr
  21547. var v3 int32
  21548. var _ /* buf at bp+0 */ [1]uint8
  21549. _, _, _, _ = state, v1, v2, v3
  21550. /* get internal structure */
  21551. if file == libc.UintptrFromInt32(0) {
  21552. return -int32(1)
  21553. }
  21554. state = file
  21555. /* check that we're reading and that there's no (serious) error */
  21556. 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) {
  21557. return -int32(1)
  21558. }
  21559. /* try output buffer (no need to check for skip request) */
  21560. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  21561. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave--
  21562. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos++
  21563. v2 = state + 8
  21564. v1 = *(*uintptr)(unsafe.Pointer(v2))
  21565. *(*uintptr)(unsafe.Pointer(v2))++
  21566. return libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(v1)))
  21567. }
  21568. /* nothing there -- try gz_read() */
  21569. if _gz_read(tls, state, bp, uint64(1)) < uint64(1) {
  21570. v3 = -int32(1)
  21571. } else {
  21572. v3 = libc.Int32FromUint8((*(*[1]uint8)(unsafe.Pointer(bp)))[0])
  21573. }
  21574. return v3
  21575. }
  21576. func Xgzgetc_(tls *libc.TLS, file TgzFile) (r int32) {
  21577. return Xgzgetc(tls, file)
  21578. }
  21579. // C documentation
  21580. //
  21581. // /* -- see zlib.h -- */
  21582. func Xgzungetc(tls *libc.TLS, c int32, file TgzFile) (r int32) {
  21583. var dest, src, v1, v2 uintptr
  21584. var state Tgz_statep
  21585. _, _, _, _, _ = dest, src, state, v1, v2
  21586. /* get internal structure */
  21587. if file == libc.UintptrFromInt32(0) {
  21588. return -int32(1)
  21589. }
  21590. state = file
  21591. /* in case this was just opened, set up the input buffer */
  21592. 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) {
  21593. _gz_look(tls, state)
  21594. }
  21595. /* check that we're reading and that there's no (serious) error */
  21596. 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) {
  21597. return -int32(1)
  21598. }
  21599. /* process a skip request */
  21600. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21601. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21602. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21603. return -int32(1)
  21604. }
  21605. }
  21606. /* can't push EOF */
  21607. if c < 0 {
  21608. return -int32(1)
  21609. }
  21610. /* if output buffer empty, put byte at end (allows more pushing) */
  21611. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) {
  21612. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(1)
  21613. (*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)
  21614. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) = libc.Uint8FromInt32(c)
  21615. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos--
  21616. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  21617. return c
  21618. }
  21619. /* if no room, give up (must have already done a gzungetc()) */
  21620. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1) {
  21621. Xgz_error(tls, state, -int32(3), __ccgo_ts+767)
  21622. return -int32(1)
  21623. }
  21624. /* slide output data if needed and insert byte before existing data */
  21625. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext == (*Tgz_state)(unsafe.Pointer(state)).Fout {
  21626. src = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave)
  21627. dest = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize<<libc.Int32FromInt32(1))
  21628. for src > (*Tgz_state)(unsafe.Pointer(state)).Fout {
  21629. dest--
  21630. v1 = dest
  21631. src--
  21632. v2 = src
  21633. *(*uint8)(unsafe.Pointer(v1)) = *(*uint8)(unsafe.Pointer(v2))
  21634. }
  21635. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = dest
  21636. }
  21637. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave++
  21638. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext--
  21639. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) = libc.Uint8FromInt32(c)
  21640. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos--
  21641. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  21642. return c
  21643. }
  21644. // C documentation
  21645. //
  21646. // /* -- see zlib.h -- */
  21647. func Xgzgets(tls *libc.TLS, file TgzFile, buf uintptr, len1 int32) (r uintptr) {
  21648. var eol, str uintptr
  21649. var left, n, v1 uint32
  21650. var state Tgz_statep
  21651. _, _, _, _, _, _ = eol, left, n, state, str, v1
  21652. /* check parameters and get internal structure */
  21653. if file == libc.UintptrFromInt32(0) || buf == libc.UintptrFromInt32(0) || len1 < int32(1) {
  21654. return libc.UintptrFromInt32(0)
  21655. }
  21656. state = file
  21657. /* check that we're reading and that there's no (serious) error */
  21658. 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) {
  21659. return libc.UintptrFromInt32(0)
  21660. }
  21661. /* process a skip request */
  21662. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21663. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21664. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21665. return libc.UintptrFromInt32(0)
  21666. }
  21667. }
  21668. /* copy output bytes up to new line or len - 1, whichever comes first --
  21669. append a terminating zero to the string (we don't check for a zero in
  21670. the contents, let the user worry about that) */
  21671. str = buf
  21672. left = libc.Uint32FromInt32(len1) - uint32(1)
  21673. if left != 0 {
  21674. for cond := true; cond; cond = left != 0 && eol == libc.UintptrFromInt32(0) {
  21675. /* assure that something is in the output buffer */
  21676. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) && _gz_fetch(tls, state) == -int32(1) {
  21677. return libc.UintptrFromInt32(0)
  21678. } /* error */
  21679. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) { /* end of file */
  21680. (*Tgz_state)(unsafe.Pointer(state)).Fpast = int32(1) /* read past end */
  21681. break /* return what we have */
  21682. }
  21683. /* look for end-of-line in current output buffer */
  21684. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > left {
  21685. v1 = left
  21686. } else {
  21687. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  21688. }
  21689. n = v1
  21690. eol = libc.Xmemchr(tls, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, int32('\n'), uint64(n))
  21691. if eol != libc.UintptrFromInt32(0) {
  21692. n = libc.Uint32FromInt64(int64(eol)-int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) + uint32(1)
  21693. }
  21694. /* copy through end-of-line, or remainder if not found */
  21695. libc.Xmemcpy(tls, buf, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, uint64(n))
  21696. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  21697. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  21698. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(n)
  21699. left -= n
  21700. buf += uintptr(n)
  21701. }
  21702. }
  21703. /* return terminated string, or if nothing, end of file */
  21704. if buf == str {
  21705. return libc.UintptrFromInt32(0)
  21706. }
  21707. *(*uint8)(unsafe.Pointer(buf)) = uint8(0)
  21708. return str
  21709. }
  21710. // C documentation
  21711. //
  21712. // /* -- see zlib.h -- */
  21713. func Xgzdirect(tls *libc.TLS, file TgzFile) (r int32) {
  21714. var state Tgz_statep
  21715. _ = state
  21716. /* get internal structure */
  21717. if file == libc.UintptrFromInt32(0) {
  21718. return 0
  21719. }
  21720. state = file
  21721. /* if the state is not known, but we can find out, then do so (this is
  21722. mainly for right after a gzopen() or gzdopen()) */
  21723. 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) {
  21724. _gz_look(tls, state)
  21725. }
  21726. /* return 1 if transparent, 0 if processing a gzip stream */
  21727. return (*Tgz_state)(unsafe.Pointer(state)).Fdirect
  21728. }
  21729. // C documentation
  21730. //
  21731. // /* -- see zlib.h -- */
  21732. func Xgzclose_r(tls *libc.TLS, file TgzFile) (r int32) {
  21733. var err, ret, v1, v2 int32
  21734. var state Tgz_statep
  21735. _, _, _, _, _ = err, ret, state, v1, v2
  21736. /* get internal structure */
  21737. if file == libc.UintptrFromInt32(0) {
  21738. return -int32(2)
  21739. }
  21740. state = file
  21741. /* check that we're reading */
  21742. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) {
  21743. return -int32(2)
  21744. }
  21745. /* free memory and close file */
  21746. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  21747. XinflateEnd(tls, state+128)
  21748. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  21749. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21750. }
  21751. if (*Tgz_state)(unsafe.Pointer(state)).Ferr == -int32(5) {
  21752. v1 = -int32(5)
  21753. } else {
  21754. v1 = m_Z_OK
  21755. }
  21756. err = v1
  21757. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  21758. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  21759. ret = libc.Xclose(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd)
  21760. libc.Xfree(tls, state)
  21761. if ret != 0 {
  21762. v2 = -int32(1)
  21763. } else {
  21764. v2 = err
  21765. }
  21766. return v2
  21767. }
  21768. // C documentation
  21769. //
  21770. // /* Initialize state for writing a gzip file. Mark initialization by setting
  21771. // state->size to non-zero. Return -1 on a memory allocation failure, or 0 on
  21772. // success. */
  21773. func _gz_init(tls *libc.TLS, state Tgz_statep) (r int32) {
  21774. var ret int32
  21775. var strm Tz_streamp
  21776. _, _ = ret, strm
  21777. strm = state + 128
  21778. /* allocate input buffer (double size for gzprintf) */
  21779. (*Tgz_state)(unsafe.Pointer(state)).Fin = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant<<int32(1)))
  21780. if (*Tgz_state)(unsafe.Pointer(state)).Fin == libc.UintptrFromInt32(0) {
  21781. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21782. return -int32(1)
  21783. }
  21784. /* only need output buffer and deflate state if compressing */
  21785. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  21786. /* allocate output buffer */
  21787. (*Tgz_state)(unsafe.Pointer(state)).Fout = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant))
  21788. if (*Tgz_state)(unsafe.Pointer(state)).Fout == libc.UintptrFromInt32(0) {
  21789. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21790. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21791. return -int32(1)
  21792. }
  21793. /* allocate deflate memory, set up for gzip compression */
  21794. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = uintptr(m_Z_NULL)
  21795. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = uintptr(m_Z_NULL)
  21796. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = uintptr(m_Z_NULL)
  21797. ret = XdeflateInit2_(tls, strm, (*Tgz_state)(unsafe.Pointer(state)).Flevel, int32(m_Z_DEFLATED), libc.Int32FromInt32(m_MAX_WBITS)+libc.Int32FromInt32(16), int32(m_DEF_MEM_LEVEL), (*Tgz_state)(unsafe.Pointer(state)).Fstrategy, __ccgo_ts, libc.Int32FromInt64(112))
  21798. if ret != m_Z_OK {
  21799. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  21800. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21801. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21802. return -int32(1)
  21803. }
  21804. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = libc.UintptrFromInt32(0)
  21805. }
  21806. /* mark state as initialized */
  21807. (*Tgz_state)(unsafe.Pointer(state)).Fsize = (*Tgz_state)(unsafe.Pointer(state)).Fwant
  21808. /* initialize write buffer if compressing */
  21809. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  21810. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  21811. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21812. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  21813. }
  21814. return 0
  21815. }
  21816. // C documentation
  21817. //
  21818. // /* Compress whatever is at avail_in and next_in and write to the output file.
  21819. // Return -1 if there is an error writing to the output file or if gz_init()
  21820. // fails to allocate memory, otherwise 0. flush is assumed to be a valid
  21821. // deflate() flush value. If flush is Z_FINISH, then the deflate() state is
  21822. // reset to start a new gzip stream. If gz->direct is true, then simply write
  21823. // to the output file without compressing, and ignore flush. */
  21824. func _gz_comp(tls *libc.TLS, state Tgz_statep, flush int32) (r int32) {
  21825. var have, max, put, v1, v2 uint32
  21826. var ret, writ int32
  21827. var strm Tz_streamp
  21828. _, _, _, _, _, _, _, _ = have, max, put, ret, strm, writ, v1, v2
  21829. max = libc.Uint32FromInt32(-libc.Int32FromInt32(1))>>libc.Int32FromInt32(2) + libc.Uint32FromInt32(1)
  21830. strm = state + 128
  21831. /* allocate memory if this is the first time through */
  21832. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  21833. return -int32(1)
  21834. }
  21835. /* write directly if requested */
  21836. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  21837. for (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 {
  21838. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in > max {
  21839. v1 = max
  21840. } else {
  21841. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  21842. }
  21843. put = v1
  21844. writ = int32(libc.Xwrite(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, uint64(put)))
  21845. if writ < 0 {
  21846. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))))
  21847. return -int32(1)
  21848. }
  21849. *(*TuInt)(unsafe.Pointer(strm + 8)) -= libc.Uint32FromInt32(writ)
  21850. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(writ)
  21851. }
  21852. return 0
  21853. }
  21854. /* check for a pending reset */
  21855. if (*Tgz_state)(unsafe.Pointer(state)).Freset != 0 {
  21856. /* don't start a new gzip member unless there is data to write */
  21857. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  21858. return 0
  21859. }
  21860. XdeflateReset(tls, strm)
  21861. (*Tgz_state)(unsafe.Pointer(state)).Freset = 0
  21862. }
  21863. /* run deflate() on provided input until it produces no more output */
  21864. ret = m_Z_OK
  21865. for cond := true; cond; cond = have != 0 {
  21866. /* write out current buffer contents if full, or if flushing, but if
  21867. doing Z_FINISH then don't write until we get to Z_STREAM_END */
  21868. 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)) {
  21869. for (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out > (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext {
  21870. if int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_out)-int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext) > int64(libc.Int32FromUint32(max)) {
  21871. v2 = max
  21872. } else {
  21873. v2 = libc.Uint32FromInt64(int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_out) - int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext))
  21874. }
  21875. put = v2
  21876. writ = int32(libc.Xwrite(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, uint64(put)))
  21877. if writ < 0 {
  21878. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))))
  21879. return -int32(1)
  21880. }
  21881. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(writ)
  21882. }
  21883. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  21884. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  21885. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21886. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21887. }
  21888. }
  21889. /* compress */
  21890. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  21891. ret = Xdeflate(tls, strm, flush)
  21892. if ret == -int32(2) {
  21893. Xgz_error(tls, state, -int32(2), __ccgo_ts+798)
  21894. return -int32(1)
  21895. }
  21896. have -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  21897. }
  21898. /* if that completed a deflate stream, allow another to start */
  21899. if flush == int32(m_Z_FINISH) {
  21900. (*Tgz_state)(unsafe.Pointer(state)).Freset = int32(1)
  21901. }
  21902. /* all done, no errors */
  21903. return 0
  21904. }
  21905. // C documentation
  21906. //
  21907. // /* Compress len zeros to output. Return -1 on a write error or memory
  21908. // allocation failure by gz_comp(), or 0 on success. */
  21909. func _gz_zero(tls *libc.TLS, state Tgz_statep, len1 Toff_t) (r int32) {
  21910. var first int32
  21911. var n, v1 uint32
  21912. var strm Tz_streamp
  21913. _, _, _, _ = first, n, strm, v1
  21914. strm = state + 128
  21915. /* consume whatever's left in the input buffer */
  21916. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21917. return -int32(1)
  21918. }
  21919. /* compress len zeros (len guaranteed > 0) */
  21920. first = int32(1)
  21921. for len1 != 0 {
  21922. if libc.Bool(libc.Bool(uint64(4) == uint64(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fsize > Xgz_intmax(tls)) || libc.Int64FromUint32((*Tgz_state)(unsafe.Pointer(state)).Fsize) > len1 {
  21923. v1 = libc.Uint32FromInt64(len1)
  21924. } else {
  21925. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  21926. }
  21927. n = v1
  21928. if first != 0 {
  21929. libc.Xmemset(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin, 0, uint64(n))
  21930. first = 0
  21931. }
  21932. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = n
  21933. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  21934. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(n)
  21935. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21936. return -int32(1)
  21937. }
  21938. len1 -= libc.Int64FromUint32(n)
  21939. }
  21940. return 0
  21941. }
  21942. // C documentation
  21943. //
  21944. // /* Write len bytes from buf to file. Return the number of bytes written. If
  21945. // the returned value is less than len, then there was an error. */
  21946. func _gz_write(tls *libc.TLS, state Tgz_statep, buf Tvoidpc, len1 Tz_size_t) (r Tz_size_t) {
  21947. var copy1, have, n uint32
  21948. var put Tz_size_t
  21949. _, _, _, _ = copy1, have, n, put
  21950. put = len1
  21951. /* if len is zero, avoid unnecessary operations */
  21952. if len1 == uint64(0) {
  21953. return uint64(0)
  21954. }
  21955. /* allocate memory if this is the first time through */
  21956. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  21957. return uint64(0)
  21958. }
  21959. /* check for seek request */
  21960. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21961. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21962. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21963. return uint64(0)
  21964. }
  21965. }
  21966. /* for small len, copy to input buffer, otherwise compress directly */
  21967. if len1 < uint64((*Tgz_state)(unsafe.Pointer(state)).Fsize) {
  21968. /* copy to input buffer, compress when full */
  21969. for cond := true; cond; cond = len1 != 0 {
  21970. if (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  21971. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  21972. }
  21973. have = libc.Uint32FromInt64(int64((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in+uintptr((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in)) - int64((*Tgz_state)(unsafe.Pointer(state)).Fin))
  21974. copy1 = (*Tgz_state)(unsafe.Pointer(state)).Fsize - have
  21975. if uint64(copy1) > len1 {
  21976. copy1 = uint32(len1)
  21977. }
  21978. libc.Xmemcpy(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr(have), buf, uint64(copy1))
  21979. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in += copy1
  21980. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(copy1)
  21981. buf = buf + uintptr(copy1)
  21982. len1 -= uint64(copy1)
  21983. if len1 != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21984. return uint64(0)
  21985. }
  21986. }
  21987. } else {
  21988. /* consume whatever's left in the input buffer */
  21989. if (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21990. return uint64(0)
  21991. }
  21992. /* directly compress user buffer to file */
  21993. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = buf
  21994. for cond := true; cond; cond = len1 != 0 {
  21995. n = libc.Uint32FromInt32(-libc.Int32FromInt32(1))
  21996. if uint64(n) > len1 {
  21997. n = uint32(len1)
  21998. }
  21999. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = n
  22000. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(n)
  22001. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  22002. return uint64(0)
  22003. }
  22004. len1 -= uint64(n)
  22005. }
  22006. }
  22007. /* input was all buffered or compressed */
  22008. return put
  22009. }
  22010. // C documentation
  22011. //
  22012. // /* -- see zlib.h -- */
  22013. func Xgzwrite(tls *libc.TLS, file TgzFile, buf Tvoidpc, len1 uint32) (r int32) {
  22014. var state Tgz_statep
  22015. _ = state
  22016. /* get internal structure */
  22017. if file == libc.UintptrFromInt32(0) {
  22018. return 0
  22019. }
  22020. state = file
  22021. /* check that we're writing and that there's no error */
  22022. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22023. return 0
  22024. }
  22025. /* since an int is returned, make sure len fits in one, otherwise return
  22026. with an error (this avoids a flaw in the interface) */
  22027. if libc.Int32FromUint32(len1) < 0 {
  22028. Xgz_error(tls, state, -int32(3), __ccgo_ts+837)
  22029. return 0
  22030. }
  22031. /* write len bytes from buf (the return value will fit in an int) */
  22032. return libc.Int32FromUint64(_gz_write(tls, state, buf, uint64(len1)))
  22033. }
  22034. // C documentation
  22035. //
  22036. // /* -- see zlib.h -- */
  22037. func Xgzfwrite(tls *libc.TLS, buf Tvoidpc, size Tz_size_t, nitems Tz_size_t, file TgzFile) (r Tz_size_t) {
  22038. var len1 Tz_size_t
  22039. var state Tgz_statep
  22040. var v1 uint64
  22041. _, _, _ = len1, state, v1
  22042. /* get internal structure */
  22043. if file == libc.UintptrFromInt32(0) {
  22044. return uint64(0)
  22045. }
  22046. state = file
  22047. /* check that we're writing and that there's no error */
  22048. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22049. return uint64(0)
  22050. }
  22051. /* compute bytes to read -- error on overflow */
  22052. len1 = nitems * size
  22053. if size != 0 && len1/size != nitems {
  22054. Xgz_error(tls, state, -int32(2), __ccgo_ts+734)
  22055. return uint64(0)
  22056. }
  22057. /* write len bytes to buf, return the number of full items written */
  22058. if len1 != 0 {
  22059. v1 = _gz_write(tls, state, buf, len1) / size
  22060. } else {
  22061. v1 = uint64(0)
  22062. }
  22063. return v1
  22064. }
  22065. // C documentation
  22066. //
  22067. // /* -- see zlib.h -- */
  22068. func Xgzputc(tls *libc.TLS, file TgzFile, c int32) (r int32) {
  22069. bp := tls.Alloc(16)
  22070. defer tls.Free(16)
  22071. var have uint32
  22072. var state Tgz_statep
  22073. var strm Tz_streamp
  22074. var _ /* buf at bp+0 */ [1]uint8
  22075. _, _, _ = have, state, strm
  22076. /* get internal structure */
  22077. if file == libc.UintptrFromInt32(0) {
  22078. return -int32(1)
  22079. }
  22080. state = file
  22081. strm = state + 128
  22082. /* check that we're writing and that there's no error */
  22083. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22084. return -int32(1)
  22085. }
  22086. /* check for seek request */
  22087. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22088. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22089. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22090. return -int32(1)
  22091. }
  22092. }
  22093. /* try writing to input buffer for speed (state->size == 0 if buffer not
  22094. initialized) */
  22095. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  22096. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  22097. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  22098. }
  22099. have = libc.Uint32FromInt64(int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in+uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in)) - int64((*Tgz_state)(unsafe.Pointer(state)).Fin))
  22100. if have < (*Tgz_state)(unsafe.Pointer(state)).Fsize {
  22101. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fin + uintptr(have))) = libc.Uint8FromInt32(c)
  22102. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in++
  22103. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos++
  22104. return c & int32(0xff)
  22105. }
  22106. }
  22107. /* no room in buffer or not initialized, use gz_write() */
  22108. (*(*[1]uint8)(unsafe.Pointer(bp)))[0] = libc.Uint8FromInt32(c)
  22109. if _gz_write(tls, state, bp, uint64(1)) != uint64(1) {
  22110. return -int32(1)
  22111. }
  22112. return c & int32(0xff)
  22113. }
  22114. // C documentation
  22115. //
  22116. // /* -- see zlib.h -- */
  22117. func Xgzputs(tls *libc.TLS, file TgzFile, s uintptr) (r int32) {
  22118. var len1, put Tz_size_t
  22119. var state Tgz_statep
  22120. var v1 int32
  22121. _, _, _, _ = len1, put, state, v1
  22122. /* get internal structure */
  22123. if file == libc.UintptrFromInt32(0) {
  22124. return -int32(1)
  22125. }
  22126. state = file
  22127. /* check that we're writing and that there's no error */
  22128. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22129. return -int32(1)
  22130. }
  22131. /* write string */
  22132. len1 = libc.Xstrlen(tls, s)
  22133. if libc.Int32FromUint64(len1) < 0 || uint64(uint32(len1)) != len1 {
  22134. Xgz_error(tls, state, -int32(2), __ccgo_ts+874)
  22135. return -int32(1)
  22136. }
  22137. put = _gz_write(tls, state, s, len1)
  22138. if put < len1 {
  22139. v1 = -int32(1)
  22140. } else {
  22141. v1 = libc.Int32FromUint64(len1)
  22142. }
  22143. return v1
  22144. }
  22145. // C documentation
  22146. //
  22147. // /* -- see zlib.h -- */
  22148. func Xgzvprintf(tls *libc.TLS, file TgzFile, format uintptr, va Tva_list) (r int32) {
  22149. var left uint32
  22150. var len1 int32
  22151. var next uintptr
  22152. var state Tgz_statep
  22153. var strm Tz_streamp
  22154. _, _, _, _, _ = left, len1, next, state, strm
  22155. /* get internal structure */
  22156. if file == libc.UintptrFromInt32(0) {
  22157. return -int32(2)
  22158. }
  22159. state = file
  22160. strm = state + 128
  22161. /* check that we're writing and that there's no error */
  22162. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22163. return -int32(2)
  22164. }
  22165. /* make sure we have some buffer space */
  22166. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  22167. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22168. }
  22169. /* check for seek request */
  22170. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22171. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22172. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22173. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22174. }
  22175. }
  22176. /* do the printf() into the input buffer, put length in len -- the input
  22177. buffer is double-sized just for this function, so there is guaranteed to
  22178. be state->size bytes available after the current contents */
  22179. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  22180. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  22181. }
  22182. next = (*Tgz_state)(unsafe.Pointer(state)).Fin + uintptr(int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in)-int64((*Tgz_state)(unsafe.Pointer(state)).Fin)) + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in)
  22183. *(*uint8)(unsafe.Pointer(next + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize-uint32(1)))) = uint8(0)
  22184. len1 = libc.X__builtin_vsnprintf(tls, next, uint64((*Tgz_state)(unsafe.Pointer(state)).Fsize), format, va)
  22185. /* check that printf() results fit in buffer */
  22186. if len1 == 0 || libc.Uint32FromInt32(len1) >= (*Tgz_state)(unsafe.Pointer(state)).Fsize || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(next + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize-uint32(1))))) != 0 {
  22187. return 0
  22188. }
  22189. /* update buffer and position, compress first half if past that */
  22190. *(*TuInt)(unsafe.Pointer(strm + 8)) += libc.Uint32FromInt32(len1)
  22191. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(len1)
  22192. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in >= (*Tgz_state)(unsafe.Pointer(state)).Fsize {
  22193. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in - (*Tgz_state)(unsafe.Pointer(state)).Fsize
  22194. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  22195. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  22196. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22197. }
  22198. libc.Xmemmove(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize), uint64(left))
  22199. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  22200. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = left
  22201. }
  22202. return len1
  22203. }
  22204. func Xgzprintf(tls *libc.TLS, file TgzFile, format uintptr, va1 uintptr) (r int32) {
  22205. var ret int32
  22206. var va Tva_list
  22207. _, _ = ret, va
  22208. va = va1
  22209. ret = Xgzvprintf(tls, file, format, va)
  22210. _ = va
  22211. return ret
  22212. }
  22213. // C documentation
  22214. //
  22215. // /* -- see zlib.h -- */
  22216. func Xgzflush(tls *libc.TLS, file TgzFile, flush int32) (r int32) {
  22217. var state Tgz_statep
  22218. _ = state
  22219. /* get internal structure */
  22220. if file == libc.UintptrFromInt32(0) {
  22221. return -int32(2)
  22222. }
  22223. state = file
  22224. /* check that we're writing and that there's no error */
  22225. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22226. return -int32(2)
  22227. }
  22228. /* check flush parameter */
  22229. if flush < 0 || flush > int32(m_Z_FINISH) {
  22230. return -int32(2)
  22231. }
  22232. /* check for seek request */
  22233. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22234. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22235. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22236. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22237. }
  22238. }
  22239. /* compress remaining data with requested flush */
  22240. _gz_comp(tls, state, flush)
  22241. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22242. }
  22243. // C documentation
  22244. //
  22245. // /* -- see zlib.h -- */
  22246. func Xgzsetparams(tls *libc.TLS, file TgzFile, level int32, strategy int32) (r int32) {
  22247. var state Tgz_statep
  22248. var strm Tz_streamp
  22249. _, _ = state, strm
  22250. /* get internal structure */
  22251. if file == libc.UintptrFromInt32(0) {
  22252. return -int32(2)
  22253. }
  22254. state = file
  22255. strm = state + 128
  22256. /* check that we're writing and that there's no error */
  22257. 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 {
  22258. return -int32(2)
  22259. }
  22260. /* if no change is requested, then do nothing */
  22261. if level == (*Tgz_state)(unsafe.Pointer(state)).Flevel && strategy == (*Tgz_state)(unsafe.Pointer(state)).Fstrategy {
  22262. return m_Z_OK
  22263. }
  22264. /* check for seek request */
  22265. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22266. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22267. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22268. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22269. }
  22270. }
  22271. /* change compression parameters for subsequent input */
  22272. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  22273. /* flush previous input with previous parameters before changing */
  22274. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 && _gz_comp(tls, state, int32(m_Z_BLOCK)) == -int32(1) {
  22275. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22276. }
  22277. XdeflateParams(tls, strm, level, strategy)
  22278. }
  22279. (*Tgz_state)(unsafe.Pointer(state)).Flevel = level
  22280. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = strategy
  22281. return m_Z_OK
  22282. }
  22283. // C documentation
  22284. //
  22285. // /* -- see zlib.h -- */
  22286. func Xgzclose_w(tls *libc.TLS, file TgzFile) (r int32) {
  22287. var ret int32
  22288. var state Tgz_statep
  22289. _, _ = ret, state
  22290. ret = m_Z_OK
  22291. /* get internal structure */
  22292. if file == libc.UintptrFromInt32(0) {
  22293. return -int32(2)
  22294. }
  22295. state = file
  22296. /* check that we're writing */
  22297. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  22298. return -int32(2)
  22299. }
  22300. /* check for seek request */
  22301. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22302. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22303. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22304. ret = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22305. }
  22306. }
  22307. /* flush, free memory, and close file */
  22308. if _gz_comp(tls, state, int32(m_Z_FINISH)) == -int32(1) {
  22309. ret = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22310. }
  22311. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  22312. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  22313. XdeflateEnd(tls, state+128)
  22314. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  22315. }
  22316. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  22317. }
  22318. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  22319. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  22320. if libc.Xclose(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd) == -int32(1) {
  22321. ret = -int32(1)
  22322. }
  22323. libc.Xfree(tls, state)
  22324. return ret
  22325. }
  22326. func __ccgo_fp(f interface{}) uintptr {
  22327. type iface [2]uintptr
  22328. return (*iface)(unsafe.Pointer(&f))[1]
  22329. }
  22330. var x__dist_code = [512]Tuch{
  22331. 1: uint8(1),
  22332. 2: uint8(2),
  22333. 3: uint8(3),
  22334. 4: uint8(4),
  22335. 5: uint8(4),
  22336. 6: uint8(5),
  22337. 7: uint8(5),
  22338. 8: uint8(6),
  22339. 9: uint8(6),
  22340. 10: uint8(6),
  22341. 11: uint8(6),
  22342. 12: uint8(7),
  22343. 13: uint8(7),
  22344. 14: uint8(7),
  22345. 15: uint8(7),
  22346. 16: uint8(8),
  22347. 17: uint8(8),
  22348. 18: uint8(8),
  22349. 19: uint8(8),
  22350. 20: uint8(8),
  22351. 21: uint8(8),
  22352. 22: uint8(8),
  22353. 23: uint8(8),
  22354. 24: uint8(9),
  22355. 25: uint8(9),
  22356. 26: uint8(9),
  22357. 27: uint8(9),
  22358. 28: uint8(9),
  22359. 29: uint8(9),
  22360. 30: uint8(9),
  22361. 31: uint8(9),
  22362. 32: uint8(10),
  22363. 33: uint8(10),
  22364. 34: uint8(10),
  22365. 35: uint8(10),
  22366. 36: uint8(10),
  22367. 37: uint8(10),
  22368. 38: uint8(10),
  22369. 39: uint8(10),
  22370. 40: uint8(10),
  22371. 41: uint8(10),
  22372. 42: uint8(10),
  22373. 43: uint8(10),
  22374. 44: uint8(10),
  22375. 45: uint8(10),
  22376. 46: uint8(10),
  22377. 47: uint8(10),
  22378. 48: uint8(11),
  22379. 49: uint8(11),
  22380. 50: uint8(11),
  22381. 51: uint8(11),
  22382. 52: uint8(11),
  22383. 53: uint8(11),
  22384. 54: uint8(11),
  22385. 55: uint8(11),
  22386. 56: uint8(11),
  22387. 57: uint8(11),
  22388. 58: uint8(11),
  22389. 59: uint8(11),
  22390. 60: uint8(11),
  22391. 61: uint8(11),
  22392. 62: uint8(11),
  22393. 63: uint8(11),
  22394. 64: uint8(12),
  22395. 65: uint8(12),
  22396. 66: uint8(12),
  22397. 67: uint8(12),
  22398. 68: uint8(12),
  22399. 69: uint8(12),
  22400. 70: uint8(12),
  22401. 71: uint8(12),
  22402. 72: uint8(12),
  22403. 73: uint8(12),
  22404. 74: uint8(12),
  22405. 75: uint8(12),
  22406. 76: uint8(12),
  22407. 77: uint8(12),
  22408. 78: uint8(12),
  22409. 79: uint8(12),
  22410. 80: uint8(12),
  22411. 81: uint8(12),
  22412. 82: uint8(12),
  22413. 83: uint8(12),
  22414. 84: uint8(12),
  22415. 85: uint8(12),
  22416. 86: uint8(12),
  22417. 87: uint8(12),
  22418. 88: uint8(12),
  22419. 89: uint8(12),
  22420. 90: uint8(12),
  22421. 91: uint8(12),
  22422. 92: uint8(12),
  22423. 93: uint8(12),
  22424. 94: uint8(12),
  22425. 95: uint8(12),
  22426. 96: uint8(13),
  22427. 97: uint8(13),
  22428. 98: uint8(13),
  22429. 99: uint8(13),
  22430. 100: uint8(13),
  22431. 101: uint8(13),
  22432. 102: uint8(13),
  22433. 103: uint8(13),
  22434. 104: uint8(13),
  22435. 105: uint8(13),
  22436. 106: uint8(13),
  22437. 107: uint8(13),
  22438. 108: uint8(13),
  22439. 109: uint8(13),
  22440. 110: uint8(13),
  22441. 111: uint8(13),
  22442. 112: uint8(13),
  22443. 113: uint8(13),
  22444. 114: uint8(13),
  22445. 115: uint8(13),
  22446. 116: uint8(13),
  22447. 117: uint8(13),
  22448. 118: uint8(13),
  22449. 119: uint8(13),
  22450. 120: uint8(13),
  22451. 121: uint8(13),
  22452. 122: uint8(13),
  22453. 123: uint8(13),
  22454. 124: uint8(13),
  22455. 125: uint8(13),
  22456. 126: uint8(13),
  22457. 127: uint8(13),
  22458. 128: uint8(14),
  22459. 129: uint8(14),
  22460. 130: uint8(14),
  22461. 131: uint8(14),
  22462. 132: uint8(14),
  22463. 133: uint8(14),
  22464. 134: uint8(14),
  22465. 135: uint8(14),
  22466. 136: uint8(14),
  22467. 137: uint8(14),
  22468. 138: uint8(14),
  22469. 139: uint8(14),
  22470. 140: uint8(14),
  22471. 141: uint8(14),
  22472. 142: uint8(14),
  22473. 143: uint8(14),
  22474. 144: uint8(14),
  22475. 145: uint8(14),
  22476. 146: uint8(14),
  22477. 147: uint8(14),
  22478. 148: uint8(14),
  22479. 149: uint8(14),
  22480. 150: uint8(14),
  22481. 151: uint8(14),
  22482. 152: uint8(14),
  22483. 153: uint8(14),
  22484. 154: uint8(14),
  22485. 155: uint8(14),
  22486. 156: uint8(14),
  22487. 157: uint8(14),
  22488. 158: uint8(14),
  22489. 159: uint8(14),
  22490. 160: uint8(14),
  22491. 161: uint8(14),
  22492. 162: uint8(14),
  22493. 163: uint8(14),
  22494. 164: uint8(14),
  22495. 165: uint8(14),
  22496. 166: uint8(14),
  22497. 167: uint8(14),
  22498. 168: uint8(14),
  22499. 169: uint8(14),
  22500. 170: uint8(14),
  22501. 171: uint8(14),
  22502. 172: uint8(14),
  22503. 173: uint8(14),
  22504. 174: uint8(14),
  22505. 175: uint8(14),
  22506. 176: uint8(14),
  22507. 177: uint8(14),
  22508. 178: uint8(14),
  22509. 179: uint8(14),
  22510. 180: uint8(14),
  22511. 181: uint8(14),
  22512. 182: uint8(14),
  22513. 183: uint8(14),
  22514. 184: uint8(14),
  22515. 185: uint8(14),
  22516. 186: uint8(14),
  22517. 187: uint8(14),
  22518. 188: uint8(14),
  22519. 189: uint8(14),
  22520. 190: uint8(14),
  22521. 191: uint8(14),
  22522. 192: uint8(15),
  22523. 193: uint8(15),
  22524. 194: uint8(15),
  22525. 195: uint8(15),
  22526. 196: uint8(15),
  22527. 197: uint8(15),
  22528. 198: uint8(15),
  22529. 199: uint8(15),
  22530. 200: uint8(15),
  22531. 201: uint8(15),
  22532. 202: uint8(15),
  22533. 203: uint8(15),
  22534. 204: uint8(15),
  22535. 205: uint8(15),
  22536. 206: uint8(15),
  22537. 207: uint8(15),
  22538. 208: uint8(15),
  22539. 209: uint8(15),
  22540. 210: uint8(15),
  22541. 211: uint8(15),
  22542. 212: uint8(15),
  22543. 213: uint8(15),
  22544. 214: uint8(15),
  22545. 215: uint8(15),
  22546. 216: uint8(15),
  22547. 217: uint8(15),
  22548. 218: uint8(15),
  22549. 219: uint8(15),
  22550. 220: uint8(15),
  22551. 221: uint8(15),
  22552. 222: uint8(15),
  22553. 223: uint8(15),
  22554. 224: uint8(15),
  22555. 225: uint8(15),
  22556. 226: uint8(15),
  22557. 227: uint8(15),
  22558. 228: uint8(15),
  22559. 229: uint8(15),
  22560. 230: uint8(15),
  22561. 231: uint8(15),
  22562. 232: uint8(15),
  22563. 233: uint8(15),
  22564. 234: uint8(15),
  22565. 235: uint8(15),
  22566. 236: uint8(15),
  22567. 237: uint8(15),
  22568. 238: uint8(15),
  22569. 239: uint8(15),
  22570. 240: uint8(15),
  22571. 241: uint8(15),
  22572. 242: uint8(15),
  22573. 243: uint8(15),
  22574. 244: uint8(15),
  22575. 245: uint8(15),
  22576. 246: uint8(15),
  22577. 247: uint8(15),
  22578. 248: uint8(15),
  22579. 249: uint8(15),
  22580. 250: uint8(15),
  22581. 251: uint8(15),
  22582. 252: uint8(15),
  22583. 253: uint8(15),
  22584. 254: uint8(15),
  22585. 255: uint8(15),
  22586. 258: uint8(16),
  22587. 259: uint8(17),
  22588. 260: uint8(18),
  22589. 261: uint8(18),
  22590. 262: uint8(19),
  22591. 263: uint8(19),
  22592. 264: uint8(20),
  22593. 265: uint8(20),
  22594. 266: uint8(20),
  22595. 267: uint8(20),
  22596. 268: uint8(21),
  22597. 269: uint8(21),
  22598. 270: uint8(21),
  22599. 271: uint8(21),
  22600. 272: uint8(22),
  22601. 273: uint8(22),
  22602. 274: uint8(22),
  22603. 275: uint8(22),
  22604. 276: uint8(22),
  22605. 277: uint8(22),
  22606. 278: uint8(22),
  22607. 279: uint8(22),
  22608. 280: uint8(23),
  22609. 281: uint8(23),
  22610. 282: uint8(23),
  22611. 283: uint8(23),
  22612. 284: uint8(23),
  22613. 285: uint8(23),
  22614. 286: uint8(23),
  22615. 287: uint8(23),
  22616. 288: uint8(24),
  22617. 289: uint8(24),
  22618. 290: uint8(24),
  22619. 291: uint8(24),
  22620. 292: uint8(24),
  22621. 293: uint8(24),
  22622. 294: uint8(24),
  22623. 295: uint8(24),
  22624. 296: uint8(24),
  22625. 297: uint8(24),
  22626. 298: uint8(24),
  22627. 299: uint8(24),
  22628. 300: uint8(24),
  22629. 301: uint8(24),
  22630. 302: uint8(24),
  22631. 303: uint8(24),
  22632. 304: uint8(25),
  22633. 305: uint8(25),
  22634. 306: uint8(25),
  22635. 307: uint8(25),
  22636. 308: uint8(25),
  22637. 309: uint8(25),
  22638. 310: uint8(25),
  22639. 311: uint8(25),
  22640. 312: uint8(25),
  22641. 313: uint8(25),
  22642. 314: uint8(25),
  22643. 315: uint8(25),
  22644. 316: uint8(25),
  22645. 317: uint8(25),
  22646. 318: uint8(25),
  22647. 319: uint8(25),
  22648. 320: uint8(26),
  22649. 321: uint8(26),
  22650. 322: uint8(26),
  22651. 323: uint8(26),
  22652. 324: uint8(26),
  22653. 325: uint8(26),
  22654. 326: uint8(26),
  22655. 327: uint8(26),
  22656. 328: uint8(26),
  22657. 329: uint8(26),
  22658. 330: uint8(26),
  22659. 331: uint8(26),
  22660. 332: uint8(26),
  22661. 333: uint8(26),
  22662. 334: uint8(26),
  22663. 335: uint8(26),
  22664. 336: uint8(26),
  22665. 337: uint8(26),
  22666. 338: uint8(26),
  22667. 339: uint8(26),
  22668. 340: uint8(26),
  22669. 341: uint8(26),
  22670. 342: uint8(26),
  22671. 343: uint8(26),
  22672. 344: uint8(26),
  22673. 345: uint8(26),
  22674. 346: uint8(26),
  22675. 347: uint8(26),
  22676. 348: uint8(26),
  22677. 349: uint8(26),
  22678. 350: uint8(26),
  22679. 351: uint8(26),
  22680. 352: uint8(27),
  22681. 353: uint8(27),
  22682. 354: uint8(27),
  22683. 355: uint8(27),
  22684. 356: uint8(27),
  22685. 357: uint8(27),
  22686. 358: uint8(27),
  22687. 359: uint8(27),
  22688. 360: uint8(27),
  22689. 361: uint8(27),
  22690. 362: uint8(27),
  22691. 363: uint8(27),
  22692. 364: uint8(27),
  22693. 365: uint8(27),
  22694. 366: uint8(27),
  22695. 367: uint8(27),
  22696. 368: uint8(27),
  22697. 369: uint8(27),
  22698. 370: uint8(27),
  22699. 371: uint8(27),
  22700. 372: uint8(27),
  22701. 373: uint8(27),
  22702. 374: uint8(27),
  22703. 375: uint8(27),
  22704. 376: uint8(27),
  22705. 377: uint8(27),
  22706. 378: uint8(27),
  22707. 379: uint8(27),
  22708. 380: uint8(27),
  22709. 381: uint8(27),
  22710. 382: uint8(27),
  22711. 383: uint8(27),
  22712. 384: uint8(28),
  22713. 385: uint8(28),
  22714. 386: uint8(28),
  22715. 387: uint8(28),
  22716. 388: uint8(28),
  22717. 389: uint8(28),
  22718. 390: uint8(28),
  22719. 391: uint8(28),
  22720. 392: uint8(28),
  22721. 393: uint8(28),
  22722. 394: uint8(28),
  22723. 395: uint8(28),
  22724. 396: uint8(28),
  22725. 397: uint8(28),
  22726. 398: uint8(28),
  22727. 399: uint8(28),
  22728. 400: uint8(28),
  22729. 401: uint8(28),
  22730. 402: uint8(28),
  22731. 403: uint8(28),
  22732. 404: uint8(28),
  22733. 405: uint8(28),
  22734. 406: uint8(28),
  22735. 407: uint8(28),
  22736. 408: uint8(28),
  22737. 409: uint8(28),
  22738. 410: uint8(28),
  22739. 411: uint8(28),
  22740. 412: uint8(28),
  22741. 413: uint8(28),
  22742. 414: uint8(28),
  22743. 415: uint8(28),
  22744. 416: uint8(28),
  22745. 417: uint8(28),
  22746. 418: uint8(28),
  22747. 419: uint8(28),
  22748. 420: uint8(28),
  22749. 421: uint8(28),
  22750. 422: uint8(28),
  22751. 423: uint8(28),
  22752. 424: uint8(28),
  22753. 425: uint8(28),
  22754. 426: uint8(28),
  22755. 427: uint8(28),
  22756. 428: uint8(28),
  22757. 429: uint8(28),
  22758. 430: uint8(28),
  22759. 431: uint8(28),
  22760. 432: uint8(28),
  22761. 433: uint8(28),
  22762. 434: uint8(28),
  22763. 435: uint8(28),
  22764. 436: uint8(28),
  22765. 437: uint8(28),
  22766. 438: uint8(28),
  22767. 439: uint8(28),
  22768. 440: uint8(28),
  22769. 441: uint8(28),
  22770. 442: uint8(28),
  22771. 443: uint8(28),
  22772. 444: uint8(28),
  22773. 445: uint8(28),
  22774. 446: uint8(28),
  22775. 447: uint8(28),
  22776. 448: uint8(29),
  22777. 449: uint8(29),
  22778. 450: uint8(29),
  22779. 451: uint8(29),
  22780. 452: uint8(29),
  22781. 453: uint8(29),
  22782. 454: uint8(29),
  22783. 455: uint8(29),
  22784. 456: uint8(29),
  22785. 457: uint8(29),
  22786. 458: uint8(29),
  22787. 459: uint8(29),
  22788. 460: uint8(29),
  22789. 461: uint8(29),
  22790. 462: uint8(29),
  22791. 463: uint8(29),
  22792. 464: uint8(29),
  22793. 465: uint8(29),
  22794. 466: uint8(29),
  22795. 467: uint8(29),
  22796. 468: uint8(29),
  22797. 469: uint8(29),
  22798. 470: uint8(29),
  22799. 471: uint8(29),
  22800. 472: uint8(29),
  22801. 473: uint8(29),
  22802. 474: uint8(29),
  22803. 475: uint8(29),
  22804. 476: uint8(29),
  22805. 477: uint8(29),
  22806. 478: uint8(29),
  22807. 479: uint8(29),
  22808. 480: uint8(29),
  22809. 481: uint8(29),
  22810. 482: uint8(29),
  22811. 483: uint8(29),
  22812. 484: uint8(29),
  22813. 485: uint8(29),
  22814. 486: uint8(29),
  22815. 487: uint8(29),
  22816. 488: uint8(29),
  22817. 489: uint8(29),
  22818. 490: uint8(29),
  22819. 491: uint8(29),
  22820. 492: uint8(29),
  22821. 493: uint8(29),
  22822. 494: uint8(29),
  22823. 495: uint8(29),
  22824. 496: uint8(29),
  22825. 497: uint8(29),
  22826. 498: uint8(29),
  22827. 499: uint8(29),
  22828. 500: uint8(29),
  22829. 501: uint8(29),
  22830. 502: uint8(29),
  22831. 503: uint8(29),
  22832. 504: uint8(29),
  22833. 505: uint8(29),
  22834. 506: uint8(29),
  22835. 507: uint8(29),
  22836. 508: uint8(29),
  22837. 509: uint8(29),
  22838. 510: uint8(29),
  22839. 511: uint8(29),
  22840. }
  22841. var x__length_code = [256]Tuch{
  22842. 1: uint8(1),
  22843. 2: uint8(2),
  22844. 3: uint8(3),
  22845. 4: uint8(4),
  22846. 5: uint8(5),
  22847. 6: uint8(6),
  22848. 7: uint8(7),
  22849. 8: uint8(8),
  22850. 9: uint8(8),
  22851. 10: uint8(9),
  22852. 11: uint8(9),
  22853. 12: uint8(10),
  22854. 13: uint8(10),
  22855. 14: uint8(11),
  22856. 15: uint8(11),
  22857. 16: uint8(12),
  22858. 17: uint8(12),
  22859. 18: uint8(12),
  22860. 19: uint8(12),
  22861. 20: uint8(13),
  22862. 21: uint8(13),
  22863. 22: uint8(13),
  22864. 23: uint8(13),
  22865. 24: uint8(14),
  22866. 25: uint8(14),
  22867. 26: uint8(14),
  22868. 27: uint8(14),
  22869. 28: uint8(15),
  22870. 29: uint8(15),
  22871. 30: uint8(15),
  22872. 31: uint8(15),
  22873. 32: uint8(16),
  22874. 33: uint8(16),
  22875. 34: uint8(16),
  22876. 35: uint8(16),
  22877. 36: uint8(16),
  22878. 37: uint8(16),
  22879. 38: uint8(16),
  22880. 39: uint8(16),
  22881. 40: uint8(17),
  22882. 41: uint8(17),
  22883. 42: uint8(17),
  22884. 43: uint8(17),
  22885. 44: uint8(17),
  22886. 45: uint8(17),
  22887. 46: uint8(17),
  22888. 47: uint8(17),
  22889. 48: uint8(18),
  22890. 49: uint8(18),
  22891. 50: uint8(18),
  22892. 51: uint8(18),
  22893. 52: uint8(18),
  22894. 53: uint8(18),
  22895. 54: uint8(18),
  22896. 55: uint8(18),
  22897. 56: uint8(19),
  22898. 57: uint8(19),
  22899. 58: uint8(19),
  22900. 59: uint8(19),
  22901. 60: uint8(19),
  22902. 61: uint8(19),
  22903. 62: uint8(19),
  22904. 63: uint8(19),
  22905. 64: uint8(20),
  22906. 65: uint8(20),
  22907. 66: uint8(20),
  22908. 67: uint8(20),
  22909. 68: uint8(20),
  22910. 69: uint8(20),
  22911. 70: uint8(20),
  22912. 71: uint8(20),
  22913. 72: uint8(20),
  22914. 73: uint8(20),
  22915. 74: uint8(20),
  22916. 75: uint8(20),
  22917. 76: uint8(20),
  22918. 77: uint8(20),
  22919. 78: uint8(20),
  22920. 79: uint8(20),
  22921. 80: uint8(21),
  22922. 81: uint8(21),
  22923. 82: uint8(21),
  22924. 83: uint8(21),
  22925. 84: uint8(21),
  22926. 85: uint8(21),
  22927. 86: uint8(21),
  22928. 87: uint8(21),
  22929. 88: uint8(21),
  22930. 89: uint8(21),
  22931. 90: uint8(21),
  22932. 91: uint8(21),
  22933. 92: uint8(21),
  22934. 93: uint8(21),
  22935. 94: uint8(21),
  22936. 95: uint8(21),
  22937. 96: uint8(22),
  22938. 97: uint8(22),
  22939. 98: uint8(22),
  22940. 99: uint8(22),
  22941. 100: uint8(22),
  22942. 101: uint8(22),
  22943. 102: uint8(22),
  22944. 103: uint8(22),
  22945. 104: uint8(22),
  22946. 105: uint8(22),
  22947. 106: uint8(22),
  22948. 107: uint8(22),
  22949. 108: uint8(22),
  22950. 109: uint8(22),
  22951. 110: uint8(22),
  22952. 111: uint8(22),
  22953. 112: uint8(23),
  22954. 113: uint8(23),
  22955. 114: uint8(23),
  22956. 115: uint8(23),
  22957. 116: uint8(23),
  22958. 117: uint8(23),
  22959. 118: uint8(23),
  22960. 119: uint8(23),
  22961. 120: uint8(23),
  22962. 121: uint8(23),
  22963. 122: uint8(23),
  22964. 123: uint8(23),
  22965. 124: uint8(23),
  22966. 125: uint8(23),
  22967. 126: uint8(23),
  22968. 127: uint8(23),
  22969. 128: uint8(24),
  22970. 129: uint8(24),
  22971. 130: uint8(24),
  22972. 131: uint8(24),
  22973. 132: uint8(24),
  22974. 133: uint8(24),
  22975. 134: uint8(24),
  22976. 135: uint8(24),
  22977. 136: uint8(24),
  22978. 137: uint8(24),
  22979. 138: uint8(24),
  22980. 139: uint8(24),
  22981. 140: uint8(24),
  22982. 141: uint8(24),
  22983. 142: uint8(24),
  22984. 143: uint8(24),
  22985. 144: uint8(24),
  22986. 145: uint8(24),
  22987. 146: uint8(24),
  22988. 147: uint8(24),
  22989. 148: uint8(24),
  22990. 149: uint8(24),
  22991. 150: uint8(24),
  22992. 151: uint8(24),
  22993. 152: uint8(24),
  22994. 153: uint8(24),
  22995. 154: uint8(24),
  22996. 155: uint8(24),
  22997. 156: uint8(24),
  22998. 157: uint8(24),
  22999. 158: uint8(24),
  23000. 159: uint8(24),
  23001. 160: uint8(25),
  23002. 161: uint8(25),
  23003. 162: uint8(25),
  23004. 163: uint8(25),
  23005. 164: uint8(25),
  23006. 165: uint8(25),
  23007. 166: uint8(25),
  23008. 167: uint8(25),
  23009. 168: uint8(25),
  23010. 169: uint8(25),
  23011. 170: uint8(25),
  23012. 171: uint8(25),
  23013. 172: uint8(25),
  23014. 173: uint8(25),
  23015. 174: uint8(25),
  23016. 175: uint8(25),
  23017. 176: uint8(25),
  23018. 177: uint8(25),
  23019. 178: uint8(25),
  23020. 179: uint8(25),
  23021. 180: uint8(25),
  23022. 181: uint8(25),
  23023. 182: uint8(25),
  23024. 183: uint8(25),
  23025. 184: uint8(25),
  23026. 185: uint8(25),
  23027. 186: uint8(25),
  23028. 187: uint8(25),
  23029. 188: uint8(25),
  23030. 189: uint8(25),
  23031. 190: uint8(25),
  23032. 191: uint8(25),
  23033. 192: uint8(26),
  23034. 193: uint8(26),
  23035. 194: uint8(26),
  23036. 195: uint8(26),
  23037. 196: uint8(26),
  23038. 197: uint8(26),
  23039. 198: uint8(26),
  23040. 199: uint8(26),
  23041. 200: uint8(26),
  23042. 201: uint8(26),
  23043. 202: uint8(26),
  23044. 203: uint8(26),
  23045. 204: uint8(26),
  23046. 205: uint8(26),
  23047. 206: uint8(26),
  23048. 207: uint8(26),
  23049. 208: uint8(26),
  23050. 209: uint8(26),
  23051. 210: uint8(26),
  23052. 211: uint8(26),
  23053. 212: uint8(26),
  23054. 213: uint8(26),
  23055. 214: uint8(26),
  23056. 215: uint8(26),
  23057. 216: uint8(26),
  23058. 217: uint8(26),
  23059. 218: uint8(26),
  23060. 219: uint8(26),
  23061. 220: uint8(26),
  23062. 221: uint8(26),
  23063. 222: uint8(26),
  23064. 223: uint8(26),
  23065. 224: uint8(27),
  23066. 225: uint8(27),
  23067. 226: uint8(27),
  23068. 227: uint8(27),
  23069. 228: uint8(27),
  23070. 229: uint8(27),
  23071. 230: uint8(27),
  23072. 231: uint8(27),
  23073. 232: uint8(27),
  23074. 233: uint8(27),
  23075. 234: uint8(27),
  23076. 235: uint8(27),
  23077. 236: uint8(27),
  23078. 237: uint8(27),
  23079. 238: uint8(27),
  23080. 239: uint8(27),
  23081. 240: uint8(27),
  23082. 241: uint8(27),
  23083. 242: uint8(27),
  23084. 243: uint8(27),
  23085. 244: uint8(27),
  23086. 245: uint8(27),
  23087. 246: uint8(27),
  23088. 247: uint8(27),
  23089. 248: uint8(27),
  23090. 249: uint8(27),
  23091. 250: uint8(27),
  23092. 251: uint8(27),
  23093. 252: uint8(27),
  23094. 253: uint8(27),
  23095. 254: uint8(27),
  23096. 255: uint8(28),
  23097. }
  23098. var Xdeflate_copyright = [68]uint8{' ', 'd', 'e', 'f', 'l', 'a', 't', 'e', ' ', '1', '.', '3', '.', '1', ' ', 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '1', '9', '9', '5', '-', '2', '0', '2', '4', ' ', 'J', 'e', 'a', 'n', '-', 'l', 'o', 'u', 'p', ' ', 'G', 'a', 'i', 'l', 'l', 'y', ' ', 'a', 'n', 'd', ' ', 'M', 'a', 'r', 'k', ' ', 'A', 'd', 'l', 'e', 'r', ' '}
  23099. var Xinflate_copyright = [47]uint8{' ', 'i', 'n', 'f', 'l', 'a', 't', 'e', ' ', '1', '.', '3', '.', '1', ' ', 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '1', '9', '9', '5', '-', '2', '0', '2', '4', ' ', 'M', 'a', 'r', 'k', ' ', 'A', 'd', 'l', 'e', 'r', ' '}
  23100. var Xz_errmsg = [10]uintptr{
  23101. 0: __ccgo_ts + 467,
  23102. 1: __ccgo_ts + 483,
  23103. 2: __ccgo_ts + 494,
  23104. 3: __ccgo_ts + 495,
  23105. 4: __ccgo_ts + 506,
  23106. 5: __ccgo_ts + 519,
  23107. 6: __ccgo_ts + 530,
  23108. 7: __ccgo_ts + 550,
  23109. 8: __ccgo_ts + 563,
  23110. 9: __ccgo_ts + 494,
  23111. }
  23112. var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data
  23113. var __ccgo_ts1 = "1.3.1\x00invalid block type\x00invalid stored block lengths\x00too many length or distance symbols\x00invalid code lengths set\x00invalid bit length repeat\x00invalid code -- missing end-of-block\x00invalid literal/lengths set\x00invalid distances set\x00invalid literal/length code\x00invalid distance code\x00invalid distance too far back\x00incorrect header check\x00unknown compression method\x00invalid window size\x00unknown header flags set\x00header crc mismatch\x00incorrect data check\x00incorrect length check\x00need dictionary\x00stream end\x00\x00file error\x00stream error\x00data error\x00insufficient memory\x00buffer error\x00incompatible version\x00%s\x00<fd:%d>\x00out of memory\x00%s%s%s\x00: \x00unexpected end of file\x00internal error: inflate stream corrupt\x00compressed data error\x00request does not fit in an int\x00request does not fit in a size_t\x00out of room to push characters\x00internal error: deflate stream corrupt\x00requested length does not fit in int\x00string length does not fit in int\x00"