| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089210902109121092210932109421095210962109721098210992110021101211022110321104211052110621107211082110921110211112111221113211142111521116211172111821119211202112121122211232112421125211262112721128211292113021131211322113321134211352113621137211382113921140211412114221143211442114521146211472114821149211502115121152211532115421155211562115721158211592116021161211622116321164211652116621167211682116921170211712117221173211742117521176211772117821179211802118121182211832118421185211862118721188211892119021191211922119321194211952119621197211982119921200212012120221203212042120521206212072120821209212102121121212212132121421215212162121721218212192122021221212222122321224212252122621227212282122921230212312123221233212342123521236212372123821239212402124121242212432124421245212462124721248212492125021251212522125321254212552125621257212582125921260212612126221263212642126521266212672126821269212702127121272212732127421275212762127721278212792128021281212822128321284212852128621287212882128921290212912129221293212942129521296212972129821299213002130121302213032130421305213062130721308213092131021311213122131321314213152131621317213182131921320213212132221323213242132521326213272132821329213302133121332213332133421335213362133721338213392134021341213422134321344213452134621347213482134921350213512135221353213542135521356213572135821359213602136121362213632136421365213662136721368213692137021371213722137321374213752137621377213782137921380213812138221383213842138521386213872138821389213902139121392213932139421395213962139721398213992140021401214022140321404214052140621407214082140921410214112141221413214142141521416214172141821419214202142121422214232142421425214262142721428214292143021431214322143321434214352143621437214382143921440214412144221443214442144521446214472144821449214502145121452214532145421455214562145721458214592146021461214622146321464214652146621467214682146921470214712147221473214742147521476214772147821479214802148121482214832148421485214862148721488214892149021491214922149321494214952149621497214982149921500215012150221503215042150521506215072150821509215102151121512215132151421515215162151721518215192152021521215222152321524215252152621527215282152921530215312153221533215342153521536215372153821539215402154121542215432154421545215462154721548215492155021551215522155321554215552155621557215582155921560215612156221563215642156521566215672156821569215702157121572215732157421575215762157721578215792158021581215822158321584215852158621587215882158921590215912159221593215942159521596215972159821599216002160121602216032160421605216062160721608216092161021611216122161321614216152161621617216182161921620216212162221623216242162521626216272162821629216302163121632216332163421635216362163721638216392164021641216422164321644216452164621647216482164921650216512165221653216542165521656216572165821659216602166121662216632166421665216662166721668216692167021671216722167321674216752167621677216782167921680216812168221683216842168521686216872168821689216902169121692216932169421695216962169721698216992170021701217022170321704217052170621707217082170921710217112171221713217142171521716217172171821719217202172121722217232172421725217262172721728217292173021731217322173321734217352173621737217382173921740217412174221743217442174521746217472174821749217502175121752217532175421755217562175721758217592176021761217622176321764217652176621767217682176921770217712177221773217742177521776217772177821779217802178121782217832178421785217862178721788217892179021791217922179321794217952179621797217982179921800218012180221803218042180521806218072180821809218102181121812218132181421815218162181721818218192182021821218222182321824218252182621827218282182921830218312183221833218342183521836218372183821839218402184121842218432184421845218462184721848218492185021851218522185321854218552185621857218582185921860218612186221863218642186521866218672186821869218702187121872218732187421875218762187721878218792188021881218822188321884218852188621887218882188921890218912189221893218942189521896218972189821899219002190121902219032190421905219062190721908219092191021911219122191321914219152191621917219182191921920219212192221923219242192521926219272192821929219302193121932219332193421935219362193721938219392194021941219422194321944219452194621947219482194921950219512195221953219542195521956219572195821959219602196121962219632196421965219662196721968219692197021971219722197321974219752197621977219782197921980219812198221983219842198521986219872198821989219902199121992219932199421995219962199721998219992200022001220022200322004220052200622007220082200922010220112201222013220142201522016220172201822019220202202122022220232202422025220262202722028220292203022031220322203322034220352203622037220382203922040220412204222043220442204522046220472204822049220502205122052220532205422055220562205722058220592206022061220622206322064220652206622067220682206922070220712207222073220742207522076220772207822079220802208122082220832208422085220862208722088220892209022091220922209322094220952209622097220982209922100221012210222103221042210522106221072210822109221102211122112221132211422115221162211722118221192212022121221222212322124221252212622127221282212922130221312213222133221342213522136221372213822139221402214122142221432214422145221462214722148221492215022151221522215322154221552215622157221582215922160221612216222163221642216522166221672216822169221702217122172221732217422175221762217722178221792218022181221822218322184221852218622187221882218922190221912219222193221942219522196221972219822199222002220122202222032220422205222062220722208222092221022211222122221322214222152221622217222182221922220222212222222223222242222522226222272222822229222302223122232222332223422235222362223722238222392224022241222422224322244222452224622247222482224922250222512225222253222542225522256222572225822259222602226122262222632226422265222662226722268222692227022271222722227322274222752227622277222782227922280222812228222283222842228522286222872228822289222902229122292222932229422295222962229722298222992230022301223022230322304223052230622307223082230922310223112231222313223142231522316223172231822319223202232122322223232232422325223262232722328223292233022331223322233322334223352233622337223382233922340223412234222343223442234522346223472234822349223502235122352223532235422355223562235722358223592236022361223622236322364223652236622367223682236922370223712237222373223742237522376223772237822379223802238122382223832238422385223862238722388223892239022391223922239322394223952239622397223982239922400224012240222403224042240522406224072240822409224102241122412224132241422415224162241722418224192242022421224222242322424224252242622427224282242922430224312243222433224342243522436224372243822439224402244122442224432244422445224462244722448224492245022451224522245322454224552245622457224582245922460224612246222463224642246522466224672246822469224702247122472224732247422475224762247722478224792248022481224822248322484224852248622487224882248922490224912249222493224942249522496224972249822499225002250122502225032250422505225062250722508225092251022511225122251322514225152251622517225182251922520225212252222523225242252522526225272252822529225302253122532225332253422535225362253722538225392254022541225422254322544225452254622547225482254922550225512255222553225542255522556225572255822559225602256122562225632256422565225662256722568225692257022571225722257322574225752257622577225782257922580225812258222583225842258522586225872258822589225902259122592225932259422595225962259722598225992260022601226022260322604226052260622607226082260922610226112261222613226142261522616226172261822619226202262122622226232262422625226262262722628226292263022631226322263322634226352263622637226382263922640226412264222643226442264522646226472264822649226502265122652226532265422655226562265722658226592266022661226622266322664226652266622667226682266922670226712267222673226742267522676226772267822679226802268122682226832268422685226862268722688226892269022691226922269322694226952269622697226982269922700227012270222703227042270522706227072270822709227102271122712227132271422715227162271722718227192272022721227222272322724227252272622727227282272922730227312273222733227342273522736227372273822739227402274122742227432274422745227462274722748227492275022751227522275322754227552275622757227582275922760227612276222763227642276522766227672276822769227702277122772227732277422775227762277722778227792278022781227822278322784227852278622787227882278922790227912279222793227942279522796227972279822799228002280122802228032280422805228062280722808228092281022811228122281322814228152281622817228182281922820228212282222823228242282522826228272282822829228302283122832228332283422835228362283722838228392284022841228422284322844228452284622847228482284922850228512285222853228542285522856228572285822859228602286122862228632286422865228662286722868228692287022871228722287322874228752287622877228782287922880228812288222883228842288522886228872288822889228902289122892228932289422895228962289722898228992290022901229022290322904229052290622907229082290922910229112291222913229142291522916229172291822919229202292122922229232292422925229262292722928229292293022931229322293322934229352293622937229382293922940229412294222943229442294522946229472294822949229502295122952229532295422955229562295722958229592296022961229622296322964229652296622967229682296922970229712297222973229742297522976229772297822979229802298122982229832298422985229862298722988229892299022991229922299322994229952299622997229982299923000230012300223003230042300523006230072300823009230102301123012230132301423015230162301723018230192302023021230222302323024230252302623027230282302923030230312303223033230342303523036230372303823039230402304123042230432304423045230462304723048230492305023051230522305323054230552305623057230582305923060230612306223063230642306523066230672306823069230702307123072230732307423075230762307723078230792308023081230822308323084230852308623087230882308923090230912309223093230942309523096230972309823099231002310123102231032310423105231062310723108231092311023111231122311323114231152311623117231182311923120231212312223123231242312523126231272312823129231302313123132231332313423135231362313723138231392314023141231422314323144231452314623147231482314923150231512315223153231542315523156231572315823159231602316123162231632316423165231662316723168231692317023171231722317323174231752317623177231782317923180231812318223183231842318523186231872318823189231902319123192231932319423195231962319723198231992320023201232022320323204232052320623207232082320923210232112321223213232142321523216232172321823219232202322123222232232322423225232262322723228232292323023231232322323323234232352323623237232382323923240232412324223243232442324523246232472324823249232502325123252232532325423255232562325723258232592326023261232622326323264232652326623267232682326923270232712327223273232742327523276232772327823279232802328123282232832328423285232862328723288232892329023291232922329323294232952329623297232982329923300233012330223303233042330523306233072330823309233102331123312233132331423315233162331723318233192332023321233222332323324233252332623327233282332923330233312333223333233342333523336233372333823339233402334123342233432334423345233462334723348233492335023351233522335323354233552335623357233582335923360233612336223363233642336523366233672336823369233702337123372233732337423375233762337723378233792338023381233822338323384233852338623387233882338923390233912339223393233942339523396233972339823399234002340123402234032340423405234062340723408234092341023411234122341323414234152341623417234182341923420234212342223423234242342523426234272342823429234302343123432234332343423435234362343723438234392344023441234422344323444234452344623447234482344923450234512345223453234542345523456234572345823459234602346123462234632346423465234662346723468234692347023471234722347323474234752347623477234782347923480234812348223483234842348523486234872348823489234902349123492234932349423495234962349723498234992350023501235022350323504235052350623507235082350923510235112351223513235142351523516235172351823519235202352123522235232352423525235262352723528235292353023531235322353323534235352353623537235382353923540235412354223543235442354523546235472354823549235502355123552235532355423555235562355723558235592356023561235622356323564235652356623567235682356923570235712357223573235742357523576235772357823579235802358123582235832358423585235862358723588235892359023591235922359323594235952359623597235982359923600236012360223603236042360523606236072360823609236102361123612236132361423615236162361723618236192362023621236222362323624236252362623627236282362923630236312363223633236342363523636236372363823639236402364123642236432364423645236462364723648236492365023651236522365323654236552365623657236582365923660236612366223663236642366523666236672366823669236702367123672236732367423675236762367723678236792368023681236822368323684236852368623687236882368923690236912369223693236942369523696236972369823699237002370123702237032370423705237062370723708237092371023711237122371323714237152371623717237182371923720237212372223723237242372523726237272372823729237302373123732237332373423735237362373723738237392374023741237422374323744237452374623747237482374923750237512375223753237542375523756237572375823759237602376123762237632376423765237662376723768237692377023771237722377323774237752377623777237782377923780237812378223783237842378523786237872378823789237902379123792237932379423795237962379723798237992380023801238022380323804238052380623807238082380923810238112381223813238142381523816238172381823819238202382123822238232382423825238262382723828238292383023831238322383323834238352383623837238382383923840238412384223843238442384523846238472384823849238502385123852238532385423855238562385723858238592386023861238622386323864238652386623867238682386923870238712387223873238742387523876238772387823879238802388123882238832388423885238862388723888238892389023891238922389323894238952389623897238982389923900239012390223903239042390523906239072390823909239102391123912239132391423915239162391723918239192392023921239222392323924239252392623927239282392923930239312393223933239342393523936239372393823939239402394123942239432394423945239462394723948239492395023951239522395323954239552395623957239582395923960239612396223963239642396523966239672396823969239702397123972239732397423975239762397723978239792398023981239822398323984239852398623987239882398923990239912399223993239942399523996239972399823999240002400124002240032400424005240062400724008240092401024011240122401324014240152401624017240182401924020240212402224023240242402524026240272402824029240302403124032240332403424035240362403724038240392404024041240422404324044240452404624047240482404924050240512405224053240542405524056240572405824059240602406124062240632406424065240662406724068240692407024071240722407324074240752407624077240782407924080240812408224083240842408524086240872408824089240902409124092240932409424095240962409724098240992410024101241022410324104241052410624107241082410924110241112411224113241142411524116241172411824119241202412124122241232412424125241262412724128241292413024131241322413324134241352413624137241382413924140241412414224143241442414524146241472414824149241502415124152241532415424155241562415724158241592416024161241622416324164241652416624167241682416924170241712417224173241742417524176241772417824179241802418124182241832418424185241862418724188241892419024191241922419324194241952419624197241982419924200242012420224203242042420524206242072420824209242102421124212242132421424215242162421724218242192422024221242222422324224242252422624227242282422924230242312423224233242342423524236242372423824239242402424124242242432424424245242462424724248242492425024251242522425324254242552425624257242582425924260242612426224263242642426524266242672426824269242702427124272242732427424275242762427724278242792428024281242822428324284242852428624287242882428924290242912429224293242942429524296242972429824299243002430124302243032430424305243062430724308243092431024311243122431324314243152431624317243182431924320243212432224323243242432524326243272432824329243302433124332243332433424335243362433724338243392434024341243422434324344243452434624347243482434924350243512435224353243542435524356243572435824359243602436124362243632436424365243662436724368243692437024371243722437324374243752437624377243782437924380243812438224383243842438524386243872438824389243902439124392243932439424395243962439724398243992440024401244022440324404244052440624407244082440924410244112441224413244142441524416244172441824419244202442124422244232442424425244262442724428244292443024431244322443324434244352443624437244382443924440244412444224443244442444524446244472444824449244502445124452244532445424455244562445724458244592446024461244622446324464244652446624467244682446924470244712447224473244742447524476244772447824479244802448124482244832448424485244862448724488244892449024491244922449324494244952449624497244982449924500245012450224503245042450524506245072450824509245102451124512245132451424515245162451724518245192452024521245222452324524245252452624527245282452924530245312453224533245342453524536245372453824539245402454124542245432454424545245462454724548245492455024551245522455324554245552455624557245582455924560245612456224563245642456524566245672456824569245702457124572245732457424575245762457724578245792458024581245822458324584245852458624587245882458924590245912459224593245942459524596245972459824599246002460124602246032460424605246062460724608246092461024611246122461324614246152461624617246182461924620246212462224623246242462524626246272462824629246302463124632246332463424635246362463724638246392464024641246422464324644246452464624647246482464924650246512465224653246542465524656246572465824659246602466124662246632466424665246662466724668246692467024671246722467324674246752467624677246782467924680246812468224683246842468524686246872468824689246902469124692246932469424695246962469724698246992470024701247022470324704247052470624707247082470924710247112471224713247142471524716247172471824719247202472124722247232472424725247262472724728247292473024731247322473324734247352473624737247382473924740247412474224743247442474524746247472474824749247502475124752247532475424755247562475724758247592476024761247622476324764247652476624767247682476924770247712477224773247742477524776247772477824779247802478124782247832478424785247862478724788247892479024791247922479324794247952479624797247982479924800248012480224803248042480524806248072480824809248102481124812248132481424815248162481724818248192482024821248222482324824248252482624827248282482924830248312483224833248342483524836248372483824839248402484124842248432484424845248462484724848248492485024851248522485324854248552485624857248582485924860248612486224863248642486524866248672486824869248702487124872248732487424875248762487724878248792488024881248822488324884248852488624887248882488924890248912489224893248942489524896248972489824899249002490124902249032490424905249062490724908249092491024911249122491324914249152491624917249182491924920249212492224923249242492524926249272492824929249302493124932249332493424935249362493724938249392494024941249422494324944249452494624947249482494924950249512495224953249542495524956249572495824959249602496124962249632496424965249662496724968249692497024971249722497324974249752497624977249782497924980249812498224983249842498524986249872498824989249902499124992249932499424995249962499724998249992500025001250022500325004250052500625007250082500925010250112501225013250142501525016250172501825019250202502125022250232502425025250262502725028250292503025031250322503325034250352503625037250382503925040250412504225043250442504525046250472504825049250502505125052250532505425055250562505725058250592506025061250622506325064250652506625067250682506925070250712507225073250742507525076250772507825079250802508125082250832508425085250862508725088250892509025091250922509325094250952509625097250982509925100251012510225103251042510525106251072510825109251102511125112251132511425115251162511725118251192512025121251222512325124251252512625127251282512925130251312513225133251342513525136251372513825139251402514125142251432514425145251462514725148251492515025151251522515325154251552515625157251582515925160251612516225163251642516525166251672516825169251702517125172251732517425175251762517725178251792518025181251822518325184251852518625187251882518925190251912519225193251942519525196251972519825199252002520125202252032520425205252062520725208252092521025211252122521325214252152521625217252182521925220252212522225223252242522525226252272522825229252302523125232252332523425235252362523725238252392524025241252422524325244252452524625247252482524925250252512525225253252542525525256252572525825259252602526125262252632526425265252662526725268252692527025271252722527325274252752527625277252782527925280252812528225283252842528525286252872528825289252902529125292252932529425295252962529725298252992530025301253022530325304253052530625307253082530925310253112531225313253142531525316253172531825319253202532125322253232532425325253262532725328253292533025331253322533325334253352533625337253382533925340253412534225343253442534525346253472534825349253502535125352253532535425355253562535725358253592536025361253622536325364253652536625367253682536925370253712537225373253742537525376253772537825379253802538125382253832538425385253862538725388253892539025391253922539325394253952539625397253982539925400254012540225403254042540525406254072540825409254102541125412254132541425415254162541725418254192542025421254222542325424254252542625427254282542925430254312543225433254342543525436254372543825439254402544125442254432544425445254462544725448254492545025451254522545325454254552545625457254582545925460254612546225463254642546525466254672546825469254702547125472254732547425475254762547725478254792548025481254822548325484254852548625487254882548925490254912549225493254942549525496254972549825499255002550125502255032550425505255062550725508255092551025511255122551325514255152551625517255182551925520255212552225523255242552525526255272552825529255302553125532255332553425535255362553725538255392554025541255422554325544255452554625547255482554925550255512555225553255542555525556255572555825559255602556125562255632556425565255662556725568255692557025571255722557325574255752557625577255782557925580255812558225583255842558525586255872558825589255902559125592255932559425595255962559725598255992560025601256022560325604256052560625607256082560925610256112561225613256142561525616256172561825619256202562125622256232562425625256262562725628256292563025631256322563325634256352563625637256382563925640256412564225643256442564525646256472564825649256502565125652256532565425655256562565725658256592566025661256622566325664256652566625667256682566925670256712567225673256742567525676256772567825679256802568125682256832568425685256862568725688256892569025691256922569325694256952569625697256982569925700257012570225703257042570525706257072570825709257102571125712257132571425715257162571725718257192572025721257222572325724257252572625727257282572925730257312573225733257342573525736257372573825739257402574125742257432574425745257462574725748257492575025751257522575325754257552575625757257582575925760257612576225763257642576525766257672576825769257702577125772257732577425775257762577725778257792578025781257822578325784257852578625787257882578925790257912579225793257942579525796257972579825799258002580125802258032580425805258062580725808258092581025811258122581325814258152581625817258182581925820258212582225823258242582525826258272582825829258302583125832258332583425835258362583725838258392584025841258422584325844258452584625847258482584925850258512585225853258542585525856258572585825859258602586125862258632586425865258662586725868258692587025871258722587325874258752587625877258782587925880258812588225883258842588525886258872588825889258902589125892258932589425895258962589725898258992590025901259022590325904259052590625907259082590925910259112591225913259142591525916259172591825919259202592125922259232592425925259262592725928259292593025931259322593325934259352593625937259382593925940259412594225943259442594525946259472594825949259502595125952259532595425955259562595725958259592596025961259622596325964259652596625967259682596925970259712597225973259742597525976259772597825979259802598125982259832598425985259862598725988259892599025991259922599325994259952599625997259982599926000260012600226003260042600526006260072600826009260102601126012260132601426015260162601726018260192602026021260222602326024260252602626027260282602926030260312603226033260342603526036260372603826039260402604126042260432604426045260462604726048260492605026051260522605326054260552605626057260582605926060260612606226063260642606526066260672606826069260702607126072260732607426075260762607726078260792608026081260822608326084260852608626087260882608926090260912609226093260942609526096260972609826099261002610126102261032610426105261062610726108261092611026111261122611326114261152611626117261182611926120261212612226123261242612526126261272612826129261302613126132261332613426135261362613726138261392614026141261422614326144261452614626147261482614926150261512615226153261542615526156261572615826159261602616126162261632616426165261662616726168261692617026171261722617326174261752617626177261782617926180261812618226183261842618526186261872618826189261902619126192261932619426195261962619726198261992620026201262022620326204262052620626207262082620926210262112621226213262142621526216262172621826219262202622126222262232622426225262262622726228262292623026231262322623326234262352623626237262382623926240262412624226243262442624526246262472624826249262502625126252262532625426255262562625726258262592626026261262622626326264262652626626267262682626926270262712627226273262742627526276262772627826279262802628126282262832628426285262862628726288262892629026291262922629326294262952629626297262982629926300263012630226303263042630526306263072630826309263102631126312263132631426315263162631726318263192632026321263222632326324263252632626327263282632926330263312633226333263342633526336263372633826339263402634126342263432634426345263462634726348263492635026351263522635326354263552635626357263582635926360263612636226363263642636526366263672636826369263702637126372263732637426375263762637726378263792638026381263822638326384263852638626387263882638926390263912639226393263942639526396263972639826399264002640126402264032640426405264062640726408264092641026411264122641326414264152641626417264182641926420264212642226423264242642526426264272642826429264302643126432264332643426435264362643726438264392644026441264422644326444264452644626447264482644926450264512645226453264542645526456264572645826459264602646126462264632646426465264662646726468264692647026471264722647326474264752647626477264782647926480264812648226483264842648526486264872648826489264902649126492264932649426495264962649726498264992650026501265022650326504265052650626507265082650926510265112651226513265142651526516265172651826519265202652126522265232652426525265262652726528265292653026531265322653326534265352653626537265382653926540265412654226543265442654526546265472654826549265502655126552265532655426555265562655726558265592656026561265622656326564265652656626567265682656926570265712657226573265742657526576265772657826579265802658126582265832658426585265862658726588265892659026591265922659326594265952659626597265982659926600266012660226603266042660526606266072660826609266102661126612266132661426615266162661726618266192662026621266222662326624266252662626627266282662926630266312663226633266342663526636266372663826639266402664126642266432664426645266462664726648266492665026651266522665326654266552665626657266582665926660266612666226663266642666526666266672666826669266702667126672266732667426675266762667726678266792668026681266822668326684266852668626687266882668926690266912669226693266942669526696266972669826699267002670126702267032670426705267062670726708267092671026711267122671326714267152671626717267182671926720267212672226723267242672526726267272672826729267302673126732267332673426735267362673726738267392674026741267422674326744267452674626747267482674926750267512675226753267542675526756267572675826759267602676126762267632676426765267662676726768267692677026771267722677326774267752677626777267782677926780267812678226783267842678526786267872678826789267902679126792267932679426795267962679726798267992680026801268022680326804268052680626807268082680926810268112681226813268142681526816268172681826819268202682126822268232682426825268262682726828268292683026831268322683326834268352683626837268382683926840268412684226843268442684526846268472684826849268502685126852268532685426855268562685726858268592686026861268622686326864268652686626867268682686926870268712687226873268742687526876268772687826879268802688126882268832688426885268862688726888268892689026891268922689326894268952689626897268982689926900269012690226903269042690526906269072690826909269102691126912269132691426915269162691726918269192692026921269222692326924269252692626927269282692926930269312693226933269342693526936269372693826939269402694126942269432694426945269462694726948269492695026951269522695326954269552695626957269582695926960269612696226963269642696526966269672696826969269702697126972269732697426975269762697726978269792698026981269822698326984269852698626987269882698926990269912699226993269942699526996269972699826999270002700127002270032700427005270062700727008270092701027011270122701327014270152701627017270182701927020270212702227023270242702527026270272702827029270302703127032270332703427035270362703727038270392704027041270422704327044270452704627047270482704927050270512705227053270542705527056270572705827059270602706127062270632706427065270662706727068270692707027071270722707327074270752707627077270782707927080270812708227083270842708527086270872708827089270902709127092270932709427095270962709727098270992710027101271022710327104271052710627107271082710927110271112711227113271142711527116271172711827119271202712127122271232712427125271262712727128271292713027131271322713327134271352713627137271382713927140271412714227143271442714527146271472714827149271502715127152271532715427155271562715727158271592716027161271622716327164271652716627167271682716927170271712717227173271742717527176271772717827179271802718127182271832718427185271862718727188271892719027191271922719327194271952719627197271982719927200272012720227203272042720527206272072720827209272102721127212272132721427215272162721727218272192722027221272222722327224272252722627227272282722927230272312723227233272342723527236272372723827239272402724127242272432724427245272462724727248272492725027251272522725327254272552725627257272582725927260272612726227263272642726527266272672726827269272702727127272272732727427275272762727727278272792728027281272822728327284272852728627287272882728927290272912729227293272942729527296272972729827299273002730127302273032730427305273062730727308273092731027311273122731327314273152731627317273182731927320273212732227323273242732527326273272732827329273302733127332273332733427335273362733727338273392734027341273422734327344273452734627347273482734927350273512735227353273542735527356273572735827359273602736127362273632736427365273662736727368273692737027371273722737327374273752737627377273782737927380273812738227383273842738527386273872738827389273902739127392273932739427395273962739727398273992740027401274022740327404274052740627407274082740927410274112741227413274142741527416274172741827419274202742127422274232742427425274262742727428274292743027431274322743327434274352743627437274382743927440274412744227443274442744527446274472744827449274502745127452274532745427455274562745727458274592746027461274622746327464274652746627467274682746927470274712747227473274742747527476274772747827479274802748127482274832748427485274862748727488274892749027491274922749327494274952749627497274982749927500275012750227503275042750527506275072750827509275102751127512275132751427515275162751727518275192752027521275222752327524275252752627527275282752927530275312753227533275342753527536275372753827539275402754127542275432754427545275462754727548275492755027551275522755327554275552755627557275582755927560275612756227563275642756527566275672756827569275702757127572275732757427575275762757727578275792758027581275822758327584275852758627587275882758927590275912759227593275942759527596275972759827599276002760127602276032760427605276062760727608276092761027611276122761327614276152761627617276182761927620276212762227623276242762527626276272762827629276302763127632276332763427635276362763727638276392764027641276422764327644276452764627647276482764927650276512765227653276542765527656276572765827659276602766127662276632766427665276662766727668276692767027671276722767327674276752767627677276782767927680276812768227683276842768527686276872768827689276902769127692276932769427695276962769727698276992770027701277022770327704277052770627707277082770927710277112771227713277142771527716277172771827719277202772127722277232772427725277262772727728277292773027731277322773327734277352773627737277382773927740277412774227743277442774527746277472774827749277502775127752277532775427755277562775727758277592776027761277622776327764277652776627767277682776927770277712777227773277742777527776277772777827779277802778127782277832778427785277862778727788277892779027791277922779327794277952779627797277982779927800278012780227803278042780527806278072780827809278102781127812278132781427815278162781727818278192782027821278222782327824278252782627827278282782927830278312783227833278342783527836278372783827839278402784127842278432784427845278462784727848278492785027851278522785327854278552785627857278582785927860278612786227863278642786527866278672786827869278702787127872278732787427875278762787727878278792788027881278822788327884278852788627887278882788927890278912789227893278942789527896278972789827899279002790127902279032790427905279062790727908279092791027911279122791327914279152791627917279182791927920279212792227923279242792527926279272792827929279302793127932279332793427935279362793727938279392794027941279422794327944279452794627947279482794927950279512795227953279542795527956279572795827959279602796127962279632796427965279662796727968279692797027971279722797327974279752797627977279782797927980279812798227983279842798527986279872798827989279902799127992279932799427995279962799727998279992800028001280022800328004280052800628007280082800928010280112801228013280142801528016280172801828019280202802128022280232802428025280262802728028280292803028031280322803328034280352803628037280382803928040280412804228043280442804528046280472804828049280502805128052280532805428055280562805728058280592806028061280622806328064280652806628067280682806928070280712807228073280742807528076280772807828079280802808128082280832808428085280862808728088280892809028091280922809328094280952809628097280982809928100281012810228103281042810528106281072810828109281102811128112281132811428115281162811728118281192812028121281222812328124281252812628127281282812928130281312813228133281342813528136281372813828139281402814128142281432814428145281462814728148281492815028151281522815328154281552815628157281582815928160281612816228163281642816528166281672816828169281702817128172281732817428175281762817728178281792818028181281822818328184281852818628187281882818928190281912819228193281942819528196281972819828199282002820128202282032820428205282062820728208282092821028211282122821328214282152821628217282182821928220282212822228223282242822528226282272822828229282302823128232282332823428235282362823728238282392824028241282422824328244282452824628247282482824928250282512825228253282542825528256282572825828259282602826128262282632826428265282662826728268282692827028271282722827328274282752827628277282782827928280282812828228283282842828528286282872828828289282902829128292282932829428295282962829728298282992830028301283022830328304283052830628307283082830928310283112831228313283142831528316283172831828319283202832128322283232832428325283262832728328283292833028331283322833328334283352833628337283382833928340283412834228343283442834528346283472834828349283502835128352283532835428355283562835728358283592836028361283622836328364283652836628367283682836928370283712837228373283742837528376283772837828379283802838128382283832838428385283862838728388283892839028391283922839328394283952839628397283982839928400284012840228403284042840528406284072840828409284102841128412284132841428415284162841728418284192842028421284222842328424284252842628427284282842928430284312843228433284342843528436284372843828439284402844128442284432844428445284462844728448284492845028451284522845328454284552845628457284582845928460284612846228463284642846528466284672846828469284702847128472284732847428475284762847728478284792848028481284822848328484284852848628487284882848928490284912849228493284942849528496284972849828499285002850128502285032850428505285062850728508285092851028511285122851328514285152851628517285182851928520285212852228523285242852528526285272852828529285302853128532285332853428535285362853728538285392854028541285422854328544285452854628547285482854928550285512855228553285542855528556285572855828559285602856128562285632856428565285662856728568285692857028571285722857328574285752857628577285782857928580285812858228583285842858528586285872858828589285902859128592285932859428595285962859728598285992860028601286022860328604286052860628607286082860928610286112861228613286142861528616286172861828619286202862128622286232862428625286262862728628286292863028631286322863328634286352863628637286382863928640286412864228643286442864528646286472864828649286502865128652286532865428655286562865728658286592866028661286622866328664286652866628667286682866928670286712867228673286742867528676286772867828679286802868128682286832868428685286862868728688286892869028691286922869328694286952869628697286982869928700287012870228703287042870528706287072870828709287102871128712287132871428715287162871728718287192872028721287222872328724287252872628727287282872928730287312873228733287342873528736287372873828739287402874128742287432874428745287462874728748287492875028751287522875328754287552875628757287582875928760287612876228763287642876528766287672876828769287702877128772287732877428775287762877728778287792878028781287822878328784287852878628787287882878928790287912879228793287942879528796287972879828799288002880128802288032880428805288062880728808288092881028811288122881328814288152881628817288182881928820288212882228823288242882528826288272882828829288302883128832288332883428835288362883728838288392884028841288422884328844288452884628847288482884928850288512885228853288542885528856288572885828859288602886128862288632886428865288662886728868288692887028871288722887328874288752887628877288782887928880288812888228883288842888528886288872888828889288902889128892288932889428895288962889728898288992890028901289022890328904289052890628907289082890928910289112891228913289142891528916289172891828919289202892128922289232892428925289262892728928289292893028931289322893328934289352893628937289382893928940289412894228943289442894528946289472894828949289502895128952289532895428955289562895728958289592896028961289622896328964289652896628967289682896928970289712897228973289742897528976289772897828979289802898128982289832898428985289862898728988289892899028991289922899328994289952899628997289982899929000290012900229003290042900529006290072900829009290102901129012290132901429015290162901729018290192902029021290222902329024290252902629027290282902929030290312903229033290342903529036290372903829039290402904129042290432904429045290462904729048290492905029051290522905329054290552905629057290582905929060290612906229063290642906529066290672906829069290702907129072290732907429075290762907729078290792908029081290822908329084290852908629087290882908929090290912909229093290942909529096290972909829099291002910129102291032910429105291062910729108291092911029111291122911329114291152911629117291182911929120291212912229123291242912529126291272912829129291302913129132291332913429135291362913729138291392914029141291422914329144291452914629147291482914929150291512915229153291542915529156291572915829159291602916129162291632916429165291662916729168291692917029171291722917329174291752917629177291782917929180291812918229183291842918529186291872918829189291902919129192291932919429195291962919729198291992920029201292022920329204292052920629207292082920929210292112921229213292142921529216292172921829219292202922129222292232922429225292262922729228292292923029231292322923329234292352923629237292382923929240292412924229243292442924529246292472924829249292502925129252292532925429255292562925729258292592926029261292622926329264292652926629267292682926929270292712927229273292742927529276292772927829279292802928129282292832928429285292862928729288292892929029291292922929329294292952929629297292982929929300293012930229303293042930529306293072930829309293102931129312293132931429315293162931729318293192932029321293222932329324293252932629327293282932929330293312933229333293342933529336293372933829339293402934129342293432934429345293462934729348293492935029351293522935329354293552935629357293582935929360293612936229363293642936529366293672936829369293702937129372293732937429375293762937729378293792938029381293822938329384293852938629387293882938929390293912939229393293942939529396293972939829399294002940129402294032940429405294062940729408294092941029411294122941329414294152941629417294182941929420294212942229423294242942529426294272942829429294302943129432294332943429435294362943729438294392944029441294422944329444294452944629447294482944929450294512945229453294542945529456294572945829459294602946129462294632946429465294662946729468294692947029471294722947329474294752947629477294782947929480294812948229483294842948529486294872948829489294902949129492294932949429495294962949729498294992950029501295022950329504295052950629507295082950929510295112951229513295142951529516295172951829519295202952129522295232952429525295262952729528295292953029531295322953329534295352953629537295382953929540295412954229543295442954529546295472954829549295502955129552295532955429555295562955729558295592956029561295622956329564295652956629567295682956929570295712957229573295742957529576295772957829579295802958129582295832958429585295862958729588295892959029591295922959329594295952959629597295982959929600296012960229603296042960529606296072960829609296102961129612296132961429615296162961729618296192962029621296222962329624296252962629627296282962929630296312963229633296342963529636296372963829639296402964129642296432964429645296462964729648296492965029651296522965329654296552965629657296582965929660296612966229663296642966529666296672966829669296702967129672296732967429675296762967729678296792968029681296822968329684296852968629687296882968929690296912969229693296942969529696296972969829699297002970129702297032970429705297062970729708297092971029711297122971329714297152971629717297182971929720297212972229723297242972529726297272972829729297302973129732297332973429735297362973729738297392974029741297422974329744297452974629747297482974929750297512975229753297542975529756297572975829759297602976129762297632976429765297662976729768297692977029771297722977329774297752977629777297782977929780297812978229783297842978529786297872978829789297902979129792297932979429795297962979729798297992980029801298022980329804298052980629807298082980929810298112981229813298142981529816298172981829819298202982129822298232982429825298262982729828298292983029831298322983329834298352983629837298382983929840298412984229843298442984529846298472984829849298502985129852298532985429855298562985729858298592986029861298622986329864298652986629867298682986929870298712987229873298742987529876298772987829879298802988129882298832988429885298862988729888298892989029891298922989329894298952989629897298982989929900299012990229903299042990529906299072990829909299102991129912299132991429915299162991729918299192992029921299222992329924299252992629927299282992929930299312993229933299342993529936299372993829939299402994129942299432994429945299462994729948299492995029951299522995329954299552995629957299582995929960299612996229963299642996529966299672996829969299702997129972299732997429975299762997729978299792998029981299822998329984299852998629987299882998929990299912999229993299942999529996299972999829999300003000130002300033000430005300063000730008300093001030011300123001330014300153001630017300183001930020300213002230023300243002530026300273002830029300303003130032300333003430035300363003730038300393004030041300423004330044300453004630047300483004930050300513005230053300543005530056300573005830059300603006130062300633006430065300663006730068300693007030071300723007330074300753007630077300783007930080300813008230083300843008530086300873008830089300903009130092300933009430095300963009730098300993010030101301023010330104301053010630107301083010930110301113011230113301143011530116301173011830119301203012130122301233012430125301263012730128301293013030131301323013330134301353013630137301383013930140301413014230143301443014530146301473014830149301503015130152301533015430155301563015730158301593016030161301623016330164301653016630167301683016930170301713017230173301743017530176301773017830179301803018130182301833018430185301863018730188301893019030191301923019330194301953019630197301983019930200302013020230203302043020530206302073020830209302103021130212302133021430215302163021730218302193022030221302223022330224302253022630227302283022930230302313023230233302343023530236302373023830239302403024130242302433024430245302463024730248302493025030251302523025330254302553025630257302583025930260302613026230263302643026530266302673026830269302703027130272302733027430275302763027730278302793028030281302823028330284302853028630287302883028930290302913029230293302943029530296302973029830299303003030130302303033030430305303063030730308303093031030311303123031330314303153031630317303183031930320303213032230323303243032530326303273032830329303303033130332303333033430335303363033730338303393034030341303423034330344303453034630347303483034930350303513035230353303543035530356303573035830359303603036130362303633036430365303663036730368303693037030371303723037330374303753037630377303783037930380303813038230383303843038530386303873038830389303903039130392303933039430395303963039730398303993040030401304023040330404304053040630407304083040930410304113041230413304143041530416304173041830419304203042130422304233042430425304263042730428304293043030431304323043330434304353043630437304383043930440304413044230443304443044530446304473044830449304503045130452304533045430455304563045730458304593046030461304623046330464304653046630467304683046930470304713047230473304743047530476304773047830479304803048130482304833048430485304863048730488304893049030491304923049330494304953049630497304983049930500305013050230503305043050530506305073050830509305103051130512305133051430515305163051730518305193052030521305223052330524305253052630527305283052930530305313053230533305343053530536305373053830539305403054130542305433054430545305463054730548305493055030551305523055330554305553055630557305583055930560305613056230563305643056530566305673056830569305703057130572305733057430575305763057730578305793058030581305823058330584305853058630587305883058930590305913059230593305943059530596305973059830599306003060130602306033060430605306063060730608306093061030611306123061330614306153061630617306183061930620306213062230623306243062530626306273062830629306303063130632306333063430635306363063730638306393064030641306423064330644306453064630647306483064930650306513065230653306543065530656306573065830659306603066130662306633066430665306663066730668306693067030671306723067330674306753067630677306783067930680306813068230683306843068530686306873068830689306903069130692306933069430695306963069730698306993070030701307023070330704307053070630707307083070930710307113071230713307143071530716307173071830719307203072130722307233072430725307263072730728307293073030731307323073330734307353073630737307383073930740307413074230743307443074530746307473074830749307503075130752307533075430755307563075730758307593076030761307623076330764307653076630767307683076930770307713077230773307743077530776307773077830779307803078130782307833078430785307863078730788307893079030791307923079330794307953079630797307983079930800308013080230803308043080530806308073080830809308103081130812308133081430815308163081730818308193082030821308223082330824308253082630827308283082930830308313083230833308343083530836308373083830839308403084130842308433084430845308463084730848308493085030851308523085330854308553085630857308583085930860308613086230863308643086530866308673086830869308703087130872308733087430875308763087730878308793088030881308823088330884308853088630887308883088930890308913089230893308943089530896308973089830899309003090130902309033090430905309063090730908309093091030911309123091330914309153091630917309183091930920309213092230923309243092530926309273092830929309303093130932309333093430935309363093730938309393094030941309423094330944309453094630947309483094930950309513095230953309543095530956309573095830959309603096130962309633096430965309663096730968309693097030971309723097330974309753097630977309783097930980309813098230983309843098530986309873098830989309903099130992309933099430995309963099730998309993100031001310023100331004310053100631007310083100931010310113101231013310143101531016310173101831019310203102131022310233102431025310263102731028310293103031031310323103331034310353103631037310383103931040310413104231043310443104531046310473104831049310503105131052310533105431055310563105731058310593106031061310623106331064310653106631067310683106931070310713107231073310743107531076310773107831079310803108131082310833108431085310863108731088310893109031091310923109331094310953109631097310983109931100311013110231103311043110531106311073110831109311103111131112311133111431115311163111731118311193112031121311223112331124311253112631127311283112931130311313113231133311343113531136311373113831139311403114131142311433114431145311463114731148311493115031151311523115331154311553115631157311583115931160311613116231163311643116531166311673116831169311703117131172311733117431175311763117731178311793118031181311823118331184311853118631187311883118931190311913119231193311943119531196311973119831199312003120131202312033120431205312063120731208312093121031211312123121331214312153121631217312183121931220312213122231223312243122531226312273122831229312303123131232312333123431235312363123731238312393124031241312423124331244312453124631247312483124931250312513125231253312543125531256312573125831259312603126131262312633126431265312663126731268312693127031271312723127331274312753127631277312783127931280312813128231283312843128531286312873128831289312903129131292312933129431295312963129731298312993130031301313023130331304313053130631307313083130931310313113131231313313143131531316313173131831319313203132131322313233132431325313263132731328313293133031331313323133331334313353133631337313383133931340313413134231343313443134531346313473134831349313503135131352313533135431355313563135731358313593136031361313623136331364313653136631367313683136931370313713137231373313743137531376313773137831379313803138131382313833138431385313863138731388313893139031391313923139331394313953139631397313983139931400314013140231403314043140531406314073140831409314103141131412314133141431415314163141731418314193142031421314223142331424314253142631427314283142931430314313143231433314343143531436314373143831439314403144131442314433144431445314463144731448314493145031451314523145331454314553145631457314583145931460314613146231463314643146531466314673146831469314703147131472314733147431475314763147731478314793148031481314823148331484314853148631487314883148931490314913149231493314943149531496314973149831499315003150131502315033150431505315063150731508315093151031511315123151331514315153151631517315183151931520315213152231523315243152531526315273152831529315303153131532315333153431535315363153731538315393154031541315423154331544315453154631547315483154931550315513155231553315543155531556315573155831559315603156131562315633156431565315663156731568315693157031571315723157331574315753157631577315783157931580315813158231583315843158531586315873158831589315903159131592315933159431595315963159731598315993160031601316023160331604316053160631607316083160931610316113161231613316143161531616316173161831619316203162131622316233162431625316263162731628316293163031631316323163331634316353163631637316383163931640316413164231643316443164531646316473164831649316503165131652316533165431655316563165731658316593166031661316623166331664316653166631667316683166931670316713167231673316743167531676316773167831679316803168131682316833168431685316863168731688316893169031691316923169331694316953169631697316983169931700317013170231703317043170531706317073170831709317103171131712317133171431715317163171731718317193172031721317223172331724317253172631727317283172931730317313173231733317343173531736317373173831739317403174131742317433174431745317463174731748317493175031751317523175331754317553175631757317583175931760317613176231763317643176531766317673176831769317703177131772317733177431775317763177731778317793178031781317823178331784317853178631787317883178931790317913179231793317943179531796317973179831799318003180131802318033180431805318063180731808318093181031811318123181331814318153181631817318183181931820318213182231823318243182531826318273182831829318303183131832318333183431835318363183731838318393184031841318423184331844318453184631847318483184931850318513185231853318543185531856318573185831859318603186131862318633186431865318663186731868318693187031871318723187331874318753187631877318783187931880318813188231883318843188531886318873188831889318903189131892318933189431895318963189731898318993190031901319023190331904319053190631907319083190931910319113191231913319143191531916319173191831919319203192131922319233192431925319263192731928319293193031931319323193331934319353193631937319383193931940319413194231943319443194531946319473194831949319503195131952319533195431955319563195731958319593196031961319623196331964319653196631967319683196931970319713197231973319743197531976319773197831979319803198131982319833198431985319863198731988319893199031991319923199331994319953199631997319983199932000320013200232003320043200532006320073200832009320103201132012320133201432015320163201732018320193202032021320223202332024320253202632027320283202932030320313203232033320343203532036320373203832039320403204132042320433204432045320463204732048320493205032051320523205332054320553205632057320583205932060320613206232063320643206532066320673206832069320703207132072320733207432075320763207732078320793208032081320823208332084320853208632087320883208932090320913209232093320943209532096320973209832099321003210132102321033210432105321063210732108321093211032111321123211332114321153211632117321183211932120321213212232123321243212532126321273212832129321303213132132321333213432135321363213732138321393214032141321423214332144321453214632147321483214932150321513215232153321543215532156321573215832159321603216132162321633216432165321663216732168321693217032171321723217332174321753217632177321783217932180321813218232183321843218532186321873218832189321903219132192321933219432195321963219732198321993220032201322023220332204322053220632207322083220932210322113221232213322143221532216322173221832219322203222132222322233222432225322263222732228322293223032231322323223332234322353223632237322383223932240322413224232243322443224532246322473224832249322503225132252322533225432255322563225732258322593226032261322623226332264322653226632267322683226932270322713227232273322743227532276322773227832279322803228132282322833228432285322863228732288322893229032291322923229332294322953229632297322983229932300323013230232303323043230532306323073230832309323103231132312323133231432315323163231732318323193232032321323223232332324323253232632327323283232932330323313233232333323343233532336323373233832339323403234132342323433234432345323463234732348323493235032351323523235332354323553235632357323583235932360323613236232363323643236532366323673236832369323703237132372323733237432375323763237732378323793238032381323823238332384323853238632387323883238932390323913239232393323943239532396323973239832399324003240132402324033240432405324063240732408324093241032411324123241332414324153241632417324183241932420324213242232423324243242532426324273242832429324303243132432324333243432435324363243732438324393244032441324423244332444324453244632447324483244932450324513245232453324543245532456324573245832459324603246132462324633246432465324663246732468324693247032471324723247332474324753247632477324783247932480324813248232483324843248532486324873248832489324903249132492324933249432495324963249732498324993250032501325023250332504325053250632507325083250932510325113251232513325143251532516325173251832519325203252132522325233252432525325263252732528325293253032531325323253332534325353253632537325383253932540325413254232543325443254532546325473254832549325503255132552325533255432555325563255732558325593256032561325623256332564325653256632567325683256932570325713257232573325743257532576325773257832579325803258132582325833258432585325863258732588325893259032591325923259332594325953259632597325983259932600326013260232603326043260532606326073260832609326103261132612326133261432615326163261732618326193262032621326223262332624326253262632627326283262932630326313263232633326343263532636326373263832639326403264132642326433264432645326463264732648326493265032651326523265332654326553265632657326583265932660326613266232663326643266532666326673266832669326703267132672326733267432675326763267732678326793268032681326823268332684326853268632687326883268932690326913269232693326943269532696326973269832699327003270132702327033270432705327063270732708327093271032711327123271332714327153271632717327183271932720327213272232723327243272532726327273272832729327303273132732327333273432735327363273732738327393274032741327423274332744327453274632747327483274932750327513275232753327543275532756327573275832759327603276132762327633276432765327663276732768327693277032771327723277332774327753277632777327783277932780327813278232783327843278532786327873278832789327903279132792327933279432795327963279732798327993280032801328023280332804328053280632807328083280932810328113281232813328143281532816328173281832819328203282132822328233282432825328263282732828328293283032831328323283332834328353283632837328383283932840328413284232843328443284532846328473284832849328503285132852328533285432855328563285732858328593286032861328623286332864328653286632867328683286932870328713287232873328743287532876328773287832879328803288132882328833288432885328863288732888328893289032891328923289332894328953289632897328983289932900329013290232903329043290532906329073290832909329103291132912329133291432915329163291732918329193292032921329223292332924329253292632927329283292932930329313293232933329343293532936329373293832939329403294132942329433294432945329463294732948329493295032951329523295332954329553295632957329583295932960329613296232963329643296532966329673296832969329703297132972329733297432975329763297732978329793298032981329823298332984329853298632987329883298932990329913299232993329943299532996329973299832999330003300133002330033300433005330063300733008330093301033011330123301333014330153301633017330183301933020330213302233023330243302533026330273302833029330303303133032330333303433035330363303733038330393304033041330423304333044330453304633047330483304933050330513305233053330543305533056330573305833059330603306133062330633306433065330663306733068330693307033071330723307333074330753307633077330783307933080330813308233083330843308533086330873308833089330903309133092330933309433095330963309733098330993310033101331023310333104331053310633107331083310933110331113311233113331143311533116331173311833119331203312133122331233312433125331263312733128331293313033131331323313333134331353313633137331383313933140331413314233143331443314533146331473314833149331503315133152331533315433155331563315733158331593316033161331623316333164331653316633167331683316933170331713317233173331743317533176331773317833179331803318133182331833318433185331863318733188331893319033191331923319333194331953319633197331983319933200332013320233203332043320533206332073320833209332103321133212332133321433215332163321733218332193322033221332223322333224332253322633227332283322933230332313323233233332343323533236332373323833239332403324133242332433324433245332463324733248332493325033251332523325333254332553325633257332583325933260332613326233263332643326533266332673326833269332703327133272332733327433275332763327733278332793328033281332823328333284332853328633287332883328933290332913329233293332943329533296332973329833299333003330133302333033330433305333063330733308333093331033311333123331333314333153331633317333183331933320333213332233323333243332533326333273332833329333303333133332333333333433335333363333733338333393334033341333423334333344333453334633347333483334933350333513335233353333543335533356333573335833359333603336133362333633336433365333663336733368333693337033371333723337333374333753337633377333783337933380333813338233383333843338533386333873338833389333903339133392333933339433395333963339733398333993340033401334023340333404334053340633407334083340933410334113341233413334143341533416334173341833419334203342133422334233342433425334263342733428334293343033431334323343333434334353343633437334383343933440334413344233443334443344533446334473344833449334503345133452334533345433455334563345733458334593346033461334623346333464334653346633467334683346933470334713347233473334743347533476334773347833479334803348133482334833348433485334863348733488334893349033491334923349333494334953349633497334983349933500335013350233503335043350533506335073350833509335103351133512335133351433515335163351733518335193352033521335223352333524335253352633527335283352933530335313353233533335343353533536335373353833539335403354133542335433354433545335463354733548335493355033551335523355333554335553355633557335583355933560335613356233563335643356533566335673356833569335703357133572335733357433575335763357733578335793358033581335823358333584335853358633587335883358933590335913359233593335943359533596335973359833599336003360133602336033360433605336063360733608336093361033611336123361333614336153361633617336183361933620336213362233623336243362533626336273362833629336303363133632336333363433635336363363733638336393364033641336423364333644336453364633647336483364933650336513365233653336543365533656336573365833659336603366133662336633366433665336663366733668336693367033671336723367333674336753367633677336783367933680336813368233683336843368533686336873368833689336903369133692336933369433695336963369733698336993370033701337023370333704337053370633707337083370933710337113371233713337143371533716337173371833719337203372133722337233372433725337263372733728337293373033731337323373333734337353373633737337383373933740337413374233743337443374533746337473374833749337503375133752337533375433755337563375733758337593376033761337623376333764337653376633767337683376933770337713377233773337743377533776337773377833779337803378133782337833378433785337863378733788337893379033791337923379333794337953379633797337983379933800338013380233803338043380533806338073380833809338103381133812338133381433815338163381733818338193382033821338223382333824338253382633827338283382933830338313383233833338343383533836338373383833839338403384133842338433384433845338463384733848338493385033851338523385333854338553385633857338583385933860338613386233863338643386533866338673386833869338703387133872338733387433875338763387733878338793388033881338823388333884338853388633887338883388933890338913389233893338943389533896338973389833899339003390133902339033390433905339063390733908339093391033911339123391333914339153391633917339183391933920339213392233923339243392533926339273392833929339303393133932339333393433935339363393733938339393394033941339423394333944339453394633947339483394933950339513395233953339543395533956339573395833959339603396133962339633396433965339663396733968339693397033971339723397333974339753397633977339783397933980339813398233983339843398533986339873398833989339903399133992339933399433995339963399733998339993400034001340023400334004340053400634007340083400934010340113401234013340143401534016340173401834019340203402134022340233402434025340263402734028340293403034031340323403334034340353403634037340383403934040340413404234043340443404534046340473404834049340503405134052340533405434055340563405734058340593406034061340623406334064340653406634067340683406934070340713407234073340743407534076340773407834079340803408134082340833408434085340863408734088340893409034091340923409334094340953409634097340983409934100341013410234103341043410534106341073410834109341103411134112341133411434115341163411734118341193412034121341223412334124341253412634127341283412934130341313413234133341343413534136341373413834139341403414134142341433414434145341463414734148341493415034151341523415334154341553415634157341583415934160341613416234163341643416534166341673416834169341703417134172341733417434175341763417734178341793418034181341823418334184341853418634187341883418934190341913419234193341943419534196341973419834199342003420134202342033420434205342063420734208342093421034211342123421334214342153421634217342183421934220342213422234223342243422534226342273422834229342303423134232342333423434235342363423734238342393424034241342423424334244342453424634247342483424934250342513425234253342543425534256342573425834259342603426134262342633426434265342663426734268342693427034271342723427334274342753427634277342783427934280342813428234283342843428534286342873428834289342903429134292342933429434295342963429734298342993430034301343023430334304343053430634307343083430934310343113431234313343143431534316343173431834319343203432134322343233432434325343263432734328343293433034331343323433334334343353433634337343383433934340343413434234343343443434534346343473434834349343503435134352343533435434355343563435734358343593436034361343623436334364343653436634367343683436934370343713437234373343743437534376343773437834379343803438134382343833438434385343863438734388343893439034391343923439334394343953439634397343983439934400344013440234403344043440534406344073440834409344103441134412344133441434415344163441734418344193442034421344223442334424344253442634427344283442934430344313443234433344343443534436344373443834439344403444134442344433444434445344463444734448344493445034451344523445334454344553445634457344583445934460344613446234463344643446534466344673446834469344703447134472344733447434475344763447734478344793448034481344823448334484344853448634487344883448934490344913449234493344943449534496344973449834499345003450134502345033450434505345063450734508345093451034511345123451334514345153451634517345183451934520345213452234523345243452534526345273452834529345303453134532345333453434535345363453734538345393454034541345423454334544345453454634547345483454934550345513455234553345543455534556345573455834559345603456134562345633456434565345663456734568345693457034571345723457334574345753457634577345783457934580345813458234583345843458534586345873458834589345903459134592345933459434595345963459734598345993460034601346023460334604346053460634607346083460934610346113461234613346143461534616346173461834619346203462134622346233462434625346263462734628346293463034631346323463334634346353463634637346383463934640346413464234643346443464534646346473464834649346503465134652346533465434655346563465734658346593466034661346623466334664346653466634667346683466934670346713467234673346743467534676346773467834679346803468134682346833468434685346863468734688346893469034691346923469334694346953469634697346983469934700347013470234703347043470534706347073470834709347103471134712347133471434715347163471734718347193472034721347223472334724347253472634727347283472934730347313473234733347343473534736347373473834739347403474134742347433474434745347463474734748347493475034751347523475334754347553475634757347583475934760347613476234763347643476534766347673476834769347703477134772347733477434775347763477734778347793478034781347823478334784347853478634787347883478934790347913479234793347943479534796347973479834799348003480134802348033480434805348063480734808348093481034811348123481334814348153481634817348183481934820348213482234823348243482534826348273482834829348303483134832348333483434835348363483734838348393484034841348423484334844348453484634847348483484934850348513485234853348543485534856348573485834859348603486134862348633486434865348663486734868348693487034871348723487334874348753487634877348783487934880348813488234883348843488534886348873488834889348903489134892348933489434895348963489734898348993490034901349023490334904349053490634907349083490934910349113491234913349143491534916349173491834919349203492134922349233492434925349263492734928349293493034931349323493334934349353493634937349383493934940349413494234943349443494534946349473494834949349503495134952349533495434955349563495734958349593496034961349623496334964349653496634967349683496934970349713497234973349743497534976349773497834979349803498134982349833498434985349863498734988349893499034991349923499334994349953499634997349983499935000350013500235003350043500535006350073500835009350103501135012350133501435015350163501735018350193502035021350223502335024350253502635027350283502935030350313503235033350343503535036350373503835039350403504135042350433504435045350463504735048350493505035051350523505335054350553505635057350583505935060350613506235063350643506535066350673506835069350703507135072350733507435075350763507735078350793508035081350823508335084350853508635087350883508935090350913509235093350943509535096350973509835099351003510135102351033510435105351063510735108351093511035111351123511335114351153511635117351183511935120351213512235123351243512535126351273512835129351303513135132351333513435135351363513735138351393514035141351423514335144351453514635147351483514935150351513515235153351543515535156351573515835159351603516135162351633516435165351663516735168351693517035171351723517335174351753517635177351783517935180351813518235183351843518535186351873518835189351903519135192351933519435195351963519735198351993520035201352023520335204352053520635207352083520935210352113521235213352143521535216352173521835219352203522135222352233522435225352263522735228352293523035231352323523335234352353523635237352383523935240352413524235243352443524535246352473524835249352503525135252352533525435255352563525735258352593526035261352623526335264352653526635267352683526935270352713527235273352743527535276352773527835279352803528135282352833528435285352863528735288352893529035291352923529335294352953529635297352983529935300353013530235303353043530535306353073530835309353103531135312353133531435315353163531735318353193532035321353223532335324353253532635327353283532935330353313533235333353343533535336353373533835339353403534135342353433534435345353463534735348353493535035351353523535335354353553535635357353583535935360353613536235363353643536535366353673536835369353703537135372353733537435375353763537735378353793538035381353823538335384353853538635387353883538935390353913539235393353943539535396353973539835399354003540135402354033540435405354063540735408354093541035411354123541335414354153541635417354183541935420354213542235423354243542535426354273542835429354303543135432354333543435435354363543735438354393544035441354423544335444354453544635447354483544935450354513545235453354543545535456354573545835459354603546135462354633546435465354663546735468354693547035471354723547335474354753547635477354783547935480354813548235483354843548535486354873548835489354903549135492354933549435495354963549735498354993550035501355023550335504355053550635507355083550935510355113551235513355143551535516355173551835519355203552135522355233552435525355263552735528355293553035531355323553335534355353553635537355383553935540355413554235543355443554535546355473554835549355503555135552355533555435555355563555735558355593556035561355623556335564355653556635567355683556935570355713557235573355743557535576355773557835579355803558135582355833558435585355863558735588355893559035591355923559335594355953559635597355983559935600356013560235603356043560535606356073560835609356103561135612356133561435615356163561735618356193562035621356223562335624356253562635627356283562935630356313563235633356343563535636356373563835639356403564135642356433564435645356463564735648356493565035651356523565335654356553565635657356583565935660356613566235663356643566535666356673566835669356703567135672356733567435675356763567735678356793568035681356823568335684356853568635687356883568935690356913569235693356943569535696356973569835699357003570135702357033570435705357063570735708357093571035711357123571335714357153571635717357183571935720357213572235723357243572535726357273572835729357303573135732357333573435735357363573735738357393574035741357423574335744357453574635747357483574935750357513575235753357543575535756357573575835759357603576135762357633576435765357663576735768357693577035771357723577335774357753577635777357783577935780357813578235783357843578535786357873578835789357903579135792357933579435795357963579735798357993580035801358023580335804358053580635807358083580935810358113581235813358143581535816358173581835819358203582135822358233582435825358263582735828358293583035831358323583335834358353583635837358383583935840358413584235843358443584535846358473584835849358503585135852358533585435855358563585735858358593586035861358623586335864358653586635867358683586935870358713587235873358743587535876358773587835879358803588135882358833588435885358863588735888358893589035891358923589335894358953589635897358983589935900359013590235903359043590535906359073590835909359103591135912359133591435915359163591735918359193592035921359223592335924359253592635927359283592935930359313593235933359343593535936359373593835939359403594135942359433594435945359463594735948359493595035951359523595335954359553595635957359583595935960359613596235963359643596535966359673596835969359703597135972359733597435975359763597735978359793598035981359823598335984359853598635987359883598935990359913599235993359943599535996359973599835999360003600136002360033600436005360063600736008360093601036011360123601336014360153601636017360183601936020360213602236023360243602536026360273602836029360303603136032360333603436035360363603736038360393604036041360423604336044360453604636047360483604936050360513605236053360543605536056360573605836059360603606136062360633606436065360663606736068360693607036071360723607336074360753607636077360783607936080360813608236083360843608536086360873608836089360903609136092360933609436095360963609736098360993610036101361023610336104361053610636107361083610936110361113611236113361143611536116361173611836119361203612136122361233612436125361263612736128361293613036131361323613336134361353613636137361383613936140361413614236143361443614536146361473614836149361503615136152361533615436155361563615736158361593616036161361623616336164361653616636167361683616936170361713617236173361743617536176361773617836179361803618136182361833618436185361863618736188361893619036191361923619336194361953619636197361983619936200362013620236203362043620536206362073620836209362103621136212362133621436215362163621736218362193622036221362223622336224362253622636227362283622936230362313623236233362343623536236362373623836239362403624136242362433624436245362463624736248362493625036251362523625336254362553625636257362583625936260362613626236263362643626536266362673626836269362703627136272362733627436275362763627736278362793628036281362823628336284362853628636287362883628936290362913629236293362943629536296362973629836299363003630136302363033630436305363063630736308363093631036311363123631336314363153631636317363183631936320363213632236323363243632536326363273632836329363303633136332363333633436335363363633736338363393634036341363423634336344363453634636347363483634936350363513635236353363543635536356363573635836359363603636136362363633636436365363663636736368363693637036371363723637336374363753637636377363783637936380363813638236383363843638536386363873638836389363903639136392363933639436395363963639736398363993640036401364023640336404364053640636407364083640936410364113641236413364143641536416364173641836419364203642136422364233642436425364263642736428364293643036431364323643336434364353643636437364383643936440364413644236443364443644536446364473644836449364503645136452364533645436455364563645736458364593646036461364623646336464364653646636467364683646936470364713647236473364743647536476364773647836479364803648136482364833648436485364863648736488364893649036491364923649336494364953649636497364983649936500365013650236503365043650536506365073650836509365103651136512365133651436515365163651736518365193652036521365223652336524365253652636527365283652936530365313653236533365343653536536365373653836539365403654136542365433654436545365463654736548365493655036551365523655336554365553655636557365583655936560365613656236563365643656536566365673656836569365703657136572365733657436575365763657736578365793658036581365823658336584365853658636587365883658936590365913659236593365943659536596365973659836599366003660136602366033660436605366063660736608366093661036611366123661336614366153661636617366183661936620366213662236623366243662536626366273662836629366303663136632366333663436635366363663736638366393664036641366423664336644366453664636647366483664936650366513665236653366543665536656366573665836659366603666136662366633666436665366663666736668366693667036671366723667336674366753667636677366783667936680366813668236683366843668536686366873668836689366903669136692366933669436695366963669736698366993670036701367023670336704367053670636707367083670936710367113671236713367143671536716367173671836719367203672136722367233672436725367263672736728367293673036731367323673336734367353673636737367383673936740367413674236743367443674536746367473674836749367503675136752367533675436755367563675736758367593676036761367623676336764367653676636767367683676936770367713677236773367743677536776367773677836779367803678136782367833678436785367863678736788367893679036791367923679336794367953679636797367983679936800368013680236803368043680536806368073680836809368103681136812368133681436815368163681736818368193682036821368223682336824368253682636827368283682936830368313683236833368343683536836368373683836839368403684136842368433684436845368463684736848368493685036851368523685336854368553685636857368583685936860368613686236863368643686536866368673686836869368703687136872368733687436875368763687736878368793688036881368823688336884368853688636887368883688936890368913689236893368943689536896368973689836899369003690136902369033690436905369063690736908369093691036911369123691336914369153691636917369183691936920369213692236923369243692536926369273692836929369303693136932369333693436935369363693736938369393694036941369423694336944369453694636947369483694936950369513695236953369543695536956369573695836959369603696136962369633696436965369663696736968369693697036971369723697336974369753697636977369783697936980369813698236983369843698536986369873698836989369903699136992369933699436995369963699736998369993700037001370023700337004370053700637007370083700937010370113701237013370143701537016370173701837019370203702137022370233702437025370263702737028370293703037031370323703337034370353703637037370383703937040370413704237043370443704537046370473704837049370503705137052370533705437055370563705737058370593706037061370623706337064370653706637067370683706937070370713707237073370743707537076370773707837079370803708137082370833708437085370863708737088370893709037091370923709337094370953709637097370983709937100371013710237103371043710537106371073710837109371103711137112371133711437115371163711737118371193712037121371223712337124371253712637127371283712937130371313713237133371343713537136371373713837139371403714137142371433714437145371463714737148371493715037151371523715337154371553715637157371583715937160371613716237163371643716537166371673716837169371703717137172371733717437175371763717737178371793718037181371823718337184371853718637187371883718937190371913719237193371943719537196371973719837199372003720137202372033720437205372063720737208372093721037211372123721337214372153721637217372183721937220372213722237223372243722537226372273722837229372303723137232372333723437235372363723737238372393724037241372423724337244372453724637247372483724937250372513725237253372543725537256372573725837259372603726137262372633726437265372663726737268372693727037271372723727337274372753727637277372783727937280372813728237283372843728537286372873728837289372903729137292372933729437295372963729737298372993730037301373023730337304373053730637307373083730937310373113731237313373143731537316373173731837319373203732137322373233732437325373263732737328373293733037331373323733337334373353733637337373383733937340373413734237343373443734537346373473734837349373503735137352373533735437355373563735737358373593736037361373623736337364373653736637367373683736937370373713737237373373743737537376373773737837379373803738137382373833738437385373863738737388373893739037391373923739337394373953739637397373983739937400374013740237403374043740537406374073740837409374103741137412374133741437415374163741737418374193742037421374223742337424374253742637427374283742937430374313743237433374343743537436374373743837439374403744137442374433744437445374463744737448374493745037451374523745337454374553745637457374583745937460374613746237463374643746537466374673746837469374703747137472374733747437475374763747737478374793748037481374823748337484374853748637487374883748937490374913749237493374943749537496374973749837499375003750137502375033750437505375063750737508375093751037511375123751337514375153751637517375183751937520375213752237523375243752537526375273752837529375303753137532375333753437535375363753737538375393754037541375423754337544375453754637547375483754937550375513755237553375543755537556375573755837559375603756137562375633756437565375663756737568375693757037571375723757337574375753757637577375783757937580375813758237583375843758537586375873758837589375903759137592375933759437595375963759737598375993760037601376023760337604376053760637607376083760937610376113761237613376143761537616376173761837619376203762137622376233762437625376263762737628376293763037631376323763337634376353763637637376383763937640376413764237643376443764537646376473764837649376503765137652376533765437655376563765737658376593766037661376623766337664376653766637667376683766937670376713767237673376743767537676376773767837679376803768137682376833768437685376863768737688376893769037691376923769337694376953769637697376983769937700377013770237703377043770537706377073770837709377103771137712377133771437715377163771737718377193772037721377223772337724377253772637727377283772937730377313773237733377343773537736377373773837739377403774137742377433774437745377463774737748377493775037751377523775337754377553775637757377583775937760377613776237763377643776537766377673776837769377703777137772377733777437775377763777737778377793778037781377823778337784377853778637787377883778937790377913779237793377943779537796377973779837799378003780137802378033780437805378063780737808378093781037811378123781337814378153781637817378183781937820378213782237823378243782537826378273782837829378303783137832378333783437835378363783737838378393784037841378423784337844378453784637847378483784937850378513785237853378543785537856378573785837859378603786137862378633786437865378663786737868378693787037871378723787337874378753787637877378783787937880378813788237883378843788537886378873788837889378903789137892378933789437895378963789737898378993790037901379023790337904379053790637907379083790937910379113791237913379143791537916379173791837919379203792137922379233792437925379263792737928379293793037931379323793337934379353793637937379383793937940379413794237943379443794537946379473794837949379503795137952379533795437955379563795737958379593796037961379623796337964379653796637967379683796937970379713797237973379743797537976379773797837979379803798137982379833798437985379863798737988379893799037991379923799337994379953799637997379983799938000380013800238003380043800538006380073800838009380103801138012380133801438015380163801738018380193802038021380223802338024380253802638027380283802938030380313803238033380343803538036380373803838039380403804138042380433804438045380463804738048380493805038051380523805338054380553805638057380583805938060380613806238063380643806538066380673806838069380703807138072380733807438075380763807738078380793808038081380823808338084380853808638087380883808938090380913809238093380943809538096380973809838099381003810138102381033810438105381063810738108381093811038111381123811338114381153811638117381183811938120381213812238123381243812538126381273812838129381303813138132381333813438135381363813738138381393814038141381423814338144381453814638147381483814938150381513815238153381543815538156381573815838159381603816138162381633816438165381663816738168381693817038171381723817338174381753817638177381783817938180381813818238183381843818538186381873818838189381903819138192381933819438195381963819738198381993820038201382023820338204382053820638207382083820938210382113821238213382143821538216382173821838219382203822138222382233822438225382263822738228382293823038231382323823338234382353823638237382383823938240382413824238243382443824538246382473824838249382503825138252382533825438255382563825738258382593826038261382623826338264382653826638267382683826938270382713827238273382743827538276382773827838279382803828138282382833828438285382863828738288382893829038291382923829338294382953829638297382983829938300383013830238303383043830538306383073830838309383103831138312383133831438315383163831738318383193832038321383223832338324383253832638327383283832938330383313833238333383343833538336383373833838339383403834138342383433834438345383463834738348383493835038351383523835338354383553835638357383583835938360383613836238363383643836538366383673836838369383703837138372383733837438375383763837738378383793838038381383823838338384383853838638387383883838938390383913839238393383943839538396383973839838399384003840138402384033840438405384063840738408384093841038411384123841338414384153841638417384183841938420384213842238423384243842538426384273842838429384303843138432384333843438435384363843738438384393844038441384423844338444384453844638447384483844938450384513845238453384543845538456384573845838459384603846138462384633846438465384663846738468384693847038471384723847338474384753847638477384783847938480384813848238483384843848538486384873848838489384903849138492384933849438495384963849738498384993850038501385023850338504385053850638507385083850938510385113851238513385143851538516385173851838519385203852138522385233852438525385263852738528385293853038531385323853338534385353853638537385383853938540385413854238543385443854538546385473854838549385503855138552385533855438555385563855738558385593856038561385623856338564385653856638567385683856938570385713857238573385743857538576385773857838579385803858138582385833858438585385863858738588385893859038591385923859338594385953859638597385983859938600386013860238603386043860538606386073860838609386103861138612386133861438615386163861738618386193862038621386223862338624386253862638627386283862938630386313863238633386343863538636386373863838639386403864138642386433864438645386463864738648386493865038651386523865338654386553865638657386583865938660386613866238663386643866538666386673866838669386703867138672386733867438675386763867738678386793868038681386823868338684386853868638687386883868938690386913869238693386943869538696386973869838699387003870138702387033870438705387063870738708387093871038711387123871338714387153871638717387183871938720387213872238723387243872538726387273872838729387303873138732387333873438735387363873738738387393874038741387423874338744387453874638747387483874938750387513875238753387543875538756387573875838759387603876138762387633876438765387663876738768387693877038771387723877338774387753877638777387783877938780387813878238783387843878538786387873878838789387903879138792387933879438795387963879738798387993880038801388023880338804388053880638807388083880938810388113881238813388143881538816388173881838819388203882138822388233882438825388263882738828388293883038831388323883338834388353883638837388383883938840388413884238843388443884538846388473884838849388503885138852388533885438855388563885738858388593886038861388623886338864388653886638867388683886938870388713887238873388743887538876388773887838879388803888138882388833888438885388863888738888388893889038891388923889338894388953889638897388983889938900389013890238903389043890538906389073890838909389103891138912389133891438915389163891738918389193892038921389223892338924389253892638927389283892938930389313893238933389343893538936389373893838939389403894138942389433894438945389463894738948389493895038951389523895338954389553895638957389583895938960389613896238963389643896538966389673896838969389703897138972389733897438975389763897738978389793898038981389823898338984389853898638987389883898938990389913899238993389943899538996389973899838999390003900139002390033900439005390063900739008390093901039011390123901339014390153901639017390183901939020390213902239023390243902539026390273902839029390303903139032390333903439035390363903739038390393904039041390423904339044390453904639047390483904939050390513905239053390543905539056390573905839059390603906139062390633906439065390663906739068390693907039071390723907339074390753907639077390783907939080390813908239083390843908539086390873908839089390903909139092390933909439095390963909739098390993910039101391023910339104391053910639107391083910939110391113911239113391143911539116391173911839119391203912139122391233912439125391263912739128391293913039131391323913339134391353913639137391383913939140391413914239143391443914539146391473914839149391503915139152391533915439155391563915739158391593916039161391623916339164391653916639167391683916939170391713917239173391743917539176391773917839179391803918139182391833918439185391863918739188391893919039191391923919339194391953919639197391983919939200392013920239203392043920539206392073920839209392103921139212392133921439215392163921739218392193922039221392223922339224392253922639227392283922939230392313923239233392343923539236392373923839239392403924139242392433924439245392463924739248392493925039251392523925339254392553925639257392583925939260392613926239263392643926539266392673926839269392703927139272392733927439275392763927739278392793928039281392823928339284392853928639287392883928939290392913929239293392943929539296392973929839299393003930139302393033930439305393063930739308393093931039311393123931339314393153931639317393183931939320393213932239323393243932539326393273932839329393303933139332393333933439335393363933739338393393934039341393423934339344393453934639347393483934939350393513935239353393543935539356393573935839359393603936139362393633936439365393663936739368393693937039371393723937339374393753937639377393783937939380393813938239383393843938539386393873938839389393903939139392393933939439395393963939739398393993940039401394023940339404394053940639407394083940939410394113941239413394143941539416394173941839419394203942139422394233942439425394263942739428394293943039431394323943339434394353943639437394383943939440394413944239443394443944539446394473944839449394503945139452394533945439455394563945739458394593946039461394623946339464394653946639467394683946939470394713947239473394743947539476394773947839479394803948139482394833948439485394863948739488394893949039491394923949339494394953949639497394983949939500395013950239503395043950539506395073950839509395103951139512395133951439515395163951739518395193952039521395223952339524395253952639527395283952939530395313953239533395343953539536395373953839539395403954139542395433954439545395463954739548395493955039551395523955339554395553955639557395583955939560395613956239563395643956539566395673956839569395703957139572395733957439575395763957739578395793958039581395823958339584395853958639587395883958939590395913959239593395943959539596395973959839599396003960139602396033960439605396063960739608396093961039611396123961339614396153961639617396183961939620396213962239623396243962539626396273962839629396303963139632396333963439635396363963739638396393964039641396423964339644396453964639647396483964939650396513965239653396543965539656396573965839659396603966139662396633966439665396663966739668396693967039671396723967339674396753967639677396783967939680396813968239683396843968539686396873968839689396903969139692396933969439695396963969739698396993970039701397023970339704397053970639707397083970939710397113971239713397143971539716397173971839719397203972139722397233972439725397263972739728397293973039731397323973339734397353973639737397383973939740397413974239743397443974539746397473974839749397503975139752397533975439755397563975739758397593976039761397623976339764397653976639767397683976939770397713977239773397743977539776397773977839779397803978139782397833978439785397863978739788397893979039791397923979339794397953979639797397983979939800398013980239803398043980539806398073980839809398103981139812398133981439815398163981739818398193982039821398223982339824398253982639827398283982939830398313983239833398343983539836398373983839839398403984139842398433984439845398463984739848398493985039851398523985339854398553985639857398583985939860398613986239863398643986539866398673986839869398703987139872398733987439875398763987739878398793988039881398823988339884398853988639887398883988939890398913989239893398943989539896398973989839899399003990139902399033990439905399063990739908399093991039911399123991339914399153991639917399183991939920399213992239923399243992539926399273992839929399303993139932399333993439935399363993739938399393994039941399423994339944399453994639947399483994939950399513995239953399543995539956399573995839959399603996139962399633996439965399663996739968399693997039971399723997339974399753997639977399783997939980399813998239983399843998539986399873998839989399903999139992399933999439995399963999739998399994000040001400024000340004400054000640007400084000940010400114001240013400144001540016400174001840019400204002140022400234002440025400264002740028400294003040031400324003340034400354003640037400384003940040400414004240043400444004540046400474004840049400504005140052400534005440055400564005740058400594006040061400624006340064400654006640067400684006940070400714007240073400744007540076400774007840079400804008140082400834008440085400864008740088400894009040091400924009340094400954009640097400984009940100401014010240103401044010540106401074010840109401104011140112401134011440115401164011740118401194012040121401224012340124401254012640127401284012940130401314013240133401344013540136401374013840139401404014140142401434014440145401464014740148401494015040151401524015340154401554015640157401584015940160401614016240163401644016540166401674016840169401704017140172401734017440175401764017740178401794018040181401824018340184401854018640187401884018940190401914019240193401944019540196401974019840199402004020140202402034020440205402064020740208402094021040211402124021340214402154021640217402184021940220402214022240223402244022540226402274022840229402304023140232402334023440235402364023740238402394024040241402424024340244402454024640247402484024940250402514025240253402544025540256402574025840259402604026140262402634026440265402664026740268402694027040271402724027340274402754027640277402784027940280402814028240283402844028540286402874028840289402904029140292402934029440295402964029740298402994030040301403024030340304403054030640307403084030940310403114031240313403144031540316403174031840319403204032140322403234032440325403264032740328403294033040331403324033340334403354033640337403384033940340403414034240343403444034540346403474034840349403504035140352403534035440355403564035740358403594036040361403624036340364403654036640367403684036940370403714037240373403744037540376403774037840379403804038140382403834038440385403864038740388403894039040391403924039340394403954039640397403984039940400404014040240403404044040540406404074040840409404104041140412404134041440415404164041740418404194042040421404224042340424404254042640427404284042940430404314043240433404344043540436404374043840439404404044140442404434044440445404464044740448404494045040451404524045340454404554045640457404584045940460404614046240463404644046540466404674046840469404704047140472404734047440475404764047740478404794048040481404824048340484404854048640487404884048940490404914049240493404944049540496404974049840499405004050140502405034050440505405064050740508405094051040511405124051340514405154051640517405184051940520405214052240523405244052540526405274052840529405304053140532405334053440535405364053740538405394054040541405424054340544405454054640547405484054940550405514055240553405544055540556405574055840559405604056140562405634056440565405664056740568405694057040571405724057340574405754057640577405784057940580405814058240583405844058540586405874058840589405904059140592405934059440595405964059740598405994060040601406024060340604406054060640607406084060940610406114061240613406144061540616406174061840619406204062140622406234062440625406264062740628406294063040631406324063340634406354063640637406384063940640406414064240643406444064540646406474064840649406504065140652406534065440655406564065740658406594066040661406624066340664406654066640667406684066940670406714067240673406744067540676406774067840679406804068140682406834068440685406864068740688406894069040691406924069340694406954069640697406984069940700407014070240703407044070540706407074070840709407104071140712407134071440715407164071740718407194072040721407224072340724407254072640727407284072940730407314073240733407344073540736407374073840739407404074140742407434074440745407464074740748407494075040751407524075340754407554075640757407584075940760407614076240763407644076540766407674076840769407704077140772407734077440775407764077740778407794078040781407824078340784407854078640787407884078940790407914079240793407944079540796407974079840799408004080140802408034080440805408064080740808408094081040811408124081340814408154081640817408184081940820408214082240823408244082540826408274082840829408304083140832408334083440835408364083740838408394084040841408424084340844408454084640847408484084940850408514085240853408544085540856408574085840859408604086140862408634086440865408664086740868408694087040871408724087340874408754087640877408784087940880408814088240883408844088540886408874088840889408904089140892408934089440895408964089740898408994090040901409024090340904409054090640907409084090940910409114091240913409144091540916409174091840919409204092140922409234092440925409264092740928409294093040931409324093340934409354093640937409384093940940409414094240943409444094540946409474094840949409504095140952409534095440955409564095740958409594096040961409624096340964409654096640967409684096940970409714097240973409744097540976409774097840979409804098140982409834098440985409864098740988409894099040991409924099340994409954099640997409984099941000410014100241003410044100541006410074100841009410104101141012410134101441015410164101741018410194102041021410224102341024410254102641027410284102941030410314103241033410344103541036410374103841039410404104141042410434104441045410464104741048410494105041051410524105341054410554105641057410584105941060410614106241063410644106541066410674106841069410704107141072410734107441075410764107741078410794108041081410824108341084410854108641087410884108941090410914109241093410944109541096410974109841099411004110141102411034110441105411064110741108411094111041111411124111341114411154111641117411184111941120411214112241123411244112541126411274112841129411304113141132411334113441135411364113741138411394114041141411424114341144411454114641147411484114941150411514115241153411544115541156411574115841159411604116141162411634116441165411664116741168411694117041171411724117341174411754117641177411784117941180411814118241183411844118541186411874118841189411904119141192411934119441195411964119741198411994120041201412024120341204412054120641207412084120941210412114121241213412144121541216412174121841219412204122141222412234122441225412264122741228412294123041231412324123341234412354123641237412384123941240412414124241243412444124541246412474124841249412504125141252412534125441255412564125741258412594126041261412624126341264412654126641267412684126941270412714127241273412744127541276412774127841279412804128141282412834128441285412864128741288412894129041291412924129341294412954129641297412984129941300413014130241303413044130541306413074130841309413104131141312413134131441315413164131741318413194132041321413224132341324413254132641327413284132941330413314133241333413344133541336413374133841339413404134141342413434134441345413464134741348413494135041351413524135341354413554135641357413584135941360413614136241363413644136541366413674136841369413704137141372413734137441375413764137741378413794138041381413824138341384413854138641387413884138941390413914139241393413944139541396413974139841399414004140141402414034140441405414064140741408414094141041411414124141341414414154141641417414184141941420414214142241423414244142541426414274142841429414304143141432414334143441435414364143741438414394144041441414424144341444414454144641447414484144941450414514145241453414544145541456414574145841459414604146141462414634146441465414664146741468414694147041471414724147341474414754147641477414784147941480414814148241483414844148541486414874148841489414904149141492414934149441495414964149741498414994150041501415024150341504415054150641507415084150941510415114151241513415144151541516415174151841519415204152141522415234152441525415264152741528415294153041531415324153341534415354153641537415384153941540415414154241543415444154541546415474154841549415504155141552415534155441555415564155741558415594156041561415624156341564415654156641567415684156941570415714157241573415744157541576415774157841579415804158141582415834158441585415864158741588415894159041591415924159341594415954159641597415984159941600416014160241603416044160541606416074160841609416104161141612416134161441615416164161741618416194162041621416224162341624416254162641627416284162941630416314163241633416344163541636416374163841639416404164141642416434164441645416464164741648416494165041651416524165341654416554165641657416584165941660416614166241663416644166541666416674166841669416704167141672416734167441675416764167741678416794168041681416824168341684416854168641687416884168941690416914169241693416944169541696416974169841699417004170141702417034170441705417064170741708417094171041711417124171341714417154171641717417184171941720417214172241723417244172541726417274172841729417304173141732417334173441735417364173741738417394174041741417424174341744417454174641747417484174941750417514175241753417544175541756417574175841759417604176141762417634176441765417664176741768417694177041771417724177341774417754177641777417784177941780417814178241783417844178541786417874178841789417904179141792417934179441795417964179741798417994180041801418024180341804418054180641807418084180941810418114181241813418144181541816418174181841819418204182141822418234182441825418264182741828418294183041831418324183341834418354183641837418384183941840418414184241843418444184541846418474184841849418504185141852418534185441855418564185741858418594186041861418624186341864418654186641867418684186941870418714187241873418744187541876418774187841879418804188141882418834188441885418864188741888418894189041891418924189341894418954189641897418984189941900419014190241903419044190541906419074190841909419104191141912419134191441915419164191741918419194192041921419224192341924419254192641927419284192941930419314193241933419344193541936419374193841939419404194141942419434194441945419464194741948419494195041951419524195341954419554195641957419584195941960419614196241963419644196541966419674196841969419704197141972419734197441975419764197741978419794198041981419824198341984419854198641987419884198941990419914199241993419944199541996419974199841999420004200142002420034200442005420064200742008420094201042011420124201342014420154201642017420184201942020420214202242023420244202542026420274202842029420304203142032420334203442035420364203742038420394204042041420424204342044420454204642047420484204942050420514205242053420544205542056420574205842059420604206142062420634206442065420664206742068420694207042071420724207342074420754207642077420784207942080420814208242083420844208542086420874208842089420904209142092420934209442095420964209742098420994210042101421024210342104421054210642107421084210942110421114211242113421144211542116421174211842119421204212142122421234212442125421264212742128421294213042131421324213342134421354213642137421384213942140421414214242143421444214542146421474214842149421504215142152421534215442155421564215742158421594216042161421624216342164421654216642167421684216942170421714217242173421744217542176421774217842179421804218142182421834218442185421864218742188421894219042191421924219342194421954219642197421984219942200422014220242203422044220542206422074220842209422104221142212422134221442215422164221742218422194222042221422224222342224422254222642227422284222942230422314223242233422344223542236422374223842239422404224142242422434224442245422464224742248422494225042251422524225342254422554225642257422584225942260422614226242263422644226542266422674226842269422704227142272422734227442275422764227742278422794228042281422824228342284422854228642287422884228942290422914229242293422944229542296422974229842299423004230142302423034230442305423064230742308423094231042311423124231342314423154231642317423184231942320423214232242323423244232542326423274232842329423304233142332423334233442335423364233742338423394234042341423424234342344423454234642347423484234942350423514235242353423544235542356423574235842359423604236142362423634236442365423664236742368423694237042371423724237342374423754237642377423784237942380423814238242383423844238542386423874238842389423904239142392423934239442395423964239742398423994240042401424024240342404424054240642407424084240942410424114241242413424144241542416424174241842419424204242142422424234242442425424264242742428424294243042431424324243342434424354243642437424384243942440424414244242443424444244542446424474244842449424504245142452424534245442455424564245742458424594246042461424624246342464424654246642467424684246942470424714247242473424744247542476424774247842479424804248142482424834248442485424864248742488424894249042491424924249342494424954249642497424984249942500425014250242503425044250542506425074250842509425104251142512425134251442515425164251742518425194252042521425224252342524425254252642527425284252942530425314253242533425344253542536425374253842539425404254142542425434254442545425464254742548425494255042551425524255342554425554255642557425584255942560425614256242563425644256542566425674256842569425704257142572425734257442575425764257742578425794258042581425824258342584425854258642587425884258942590425914259242593425944259542596425974259842599426004260142602426034260442605426064260742608426094261042611426124261342614426154261642617426184261942620426214262242623426244262542626426274262842629426304263142632426334263442635426364263742638426394264042641426424264342644426454264642647426484264942650426514265242653426544265542656426574265842659426604266142662426634266442665426664266742668426694267042671426724267342674426754267642677426784267942680426814268242683426844268542686426874268842689426904269142692426934269442695426964269742698426994270042701427024270342704427054270642707427084270942710427114271242713427144271542716427174271842719427204272142722427234272442725427264272742728427294273042731427324273342734427354273642737427384273942740427414274242743427444274542746427474274842749427504275142752427534275442755427564275742758427594276042761427624276342764427654276642767427684276942770427714277242773427744277542776427774277842779427804278142782427834278442785427864278742788427894279042791427924279342794427954279642797427984279942800428014280242803428044280542806428074280842809428104281142812428134281442815428164281742818428194282042821428224282342824428254282642827428284282942830428314283242833428344283542836428374283842839428404284142842428434284442845428464284742848428494285042851428524285342854428554285642857428584285942860428614286242863428644286542866428674286842869428704287142872428734287442875428764287742878428794288042881428824288342884428854288642887428884288942890428914289242893428944289542896428974289842899429004290142902429034290442905429064290742908429094291042911429124291342914429154291642917429184291942920429214292242923429244292542926429274292842929429304293142932429334293442935429364293742938429394294042941429424294342944429454294642947429484294942950429514295242953429544295542956429574295842959429604296142962429634296442965429664296742968429694297042971429724297342974429754297642977429784297942980429814298242983429844298542986429874298842989429904299142992429934299442995429964299742998429994300043001430024300343004430054300643007430084300943010430114301243013430144301543016430174301843019430204302143022430234302443025430264302743028430294303043031430324303343034430354303643037430384303943040430414304243043430444304543046430474304843049430504305143052430534305443055430564305743058430594306043061430624306343064430654306643067430684306943070430714307243073430744307543076430774307843079430804308143082430834308443085430864308743088430894309043091430924309343094430954309643097430984309943100431014310243103431044310543106431074310843109431104311143112431134311443115431164311743118431194312043121431224312343124431254312643127431284312943130431314313243133431344313543136431374313843139431404314143142431434314443145431464314743148431494315043151431524315343154431554315643157431584315943160431614316243163431644316543166431674316843169431704317143172431734317443175431764317743178431794318043181431824318343184431854318643187431884318943190431914319243193431944319543196431974319843199432004320143202432034320443205432064320743208432094321043211432124321343214432154321643217432184321943220432214322243223432244322543226432274322843229432304323143232432334323443235432364323743238432394324043241432424324343244432454324643247432484324943250432514325243253432544325543256432574325843259432604326143262432634326443265432664326743268432694327043271432724327343274432754327643277432784327943280432814328243283432844328543286432874328843289432904329143292432934329443295432964329743298432994330043301433024330343304433054330643307433084330943310433114331243313433144331543316433174331843319433204332143322433234332443325433264332743328433294333043331433324333343334433354333643337433384333943340433414334243343433444334543346433474334843349433504335143352433534335443355433564335743358433594336043361433624336343364433654336643367433684336943370433714337243373433744337543376433774337843379433804338143382433834338443385433864338743388433894339043391433924339343394433954339643397433984339943400434014340243403434044340543406434074340843409434104341143412434134341443415434164341743418434194342043421434224342343424434254342643427434284342943430434314343243433434344343543436434374343843439434404344143442434434344443445434464344743448434494345043451434524345343454434554345643457434584345943460434614346243463434644346543466434674346843469434704347143472434734347443475434764347743478434794348043481434824348343484434854348643487434884348943490434914349243493434944349543496434974349843499435004350143502435034350443505435064350743508435094351043511435124351343514435154351643517435184351943520435214352243523435244352543526435274352843529435304353143532435334353443535435364353743538435394354043541435424354343544435454354643547435484354943550435514355243553435544355543556435574355843559435604356143562435634356443565435664356743568435694357043571435724357343574435754357643577435784357943580435814358243583435844358543586435874358843589435904359143592435934359443595435964359743598435994360043601436024360343604436054360643607436084360943610436114361243613436144361543616436174361843619436204362143622436234362443625436264362743628436294363043631436324363343634436354363643637436384363943640436414364243643436444364543646436474364843649436504365143652436534365443655436564365743658436594366043661436624366343664436654366643667436684366943670436714367243673436744367543676436774367843679436804368143682436834368443685436864368743688436894369043691436924369343694436954369643697436984369943700437014370243703437044370543706437074370843709437104371143712437134371443715437164371743718437194372043721437224372343724437254372643727437284372943730437314373243733437344373543736437374373843739437404374143742437434374443745437464374743748437494375043751437524375343754437554375643757437584375943760437614376243763437644376543766437674376843769437704377143772437734377443775437764377743778437794378043781437824378343784437854378643787437884378943790437914379243793437944379543796437974379843799438004380143802438034380443805438064380743808438094381043811438124381343814438154381643817438184381943820438214382243823438244382543826438274382843829438304383143832438334383443835438364383743838438394384043841438424384343844438454384643847438484384943850438514385243853438544385543856438574385843859438604386143862438634386443865438664386743868438694387043871438724387343874438754387643877438784387943880438814388243883438844388543886438874388843889438904389143892438934389443895438964389743898438994390043901439024390343904439054390643907439084390943910439114391243913439144391543916439174391843919439204392143922439234392443925439264392743928439294393043931439324393343934439354393643937439384393943940439414394243943439444394543946439474394843949439504395143952439534395443955439564395743958439594396043961439624396343964439654396643967439684396943970439714397243973439744397543976439774397843979439804398143982439834398443985439864398743988439894399043991439924399343994439954399643997439984399944000440014400244003440044400544006440074400844009440104401144012440134401444015440164401744018440194402044021440224402344024440254402644027440284402944030440314403244033440344403544036440374403844039440404404144042440434404444045440464404744048440494405044051440524405344054440554405644057440584405944060440614406244063440644406544066440674406844069440704407144072440734407444075440764407744078440794408044081440824408344084440854408644087440884408944090440914409244093440944409544096440974409844099441004410144102441034410444105441064410744108441094411044111441124411344114441154411644117441184411944120441214412244123441244412544126441274412844129441304413144132441334413444135441364413744138441394414044141441424414344144441454414644147441484414944150441514415244153441544415544156441574415844159441604416144162441634416444165441664416744168441694417044171441724417344174441754417644177441784417944180441814418244183441844418544186441874418844189441904419144192441934419444195441964419744198441994420044201442024420344204442054420644207442084420944210442114421244213442144421544216442174421844219442204422144222442234422444225442264422744228442294423044231442324423344234442354423644237442384423944240442414424244243442444424544246442474424844249442504425144252442534425444255442564425744258442594426044261442624426344264442654426644267442684426944270442714427244273442744427544276442774427844279442804428144282442834428444285442864428744288442894429044291442924429344294442954429644297442984429944300443014430244303443044430544306443074430844309443104431144312443134431444315443164431744318443194432044321443224432344324443254432644327443284432944330443314433244333443344433544336443374433844339443404434144342443434434444345443464434744348443494435044351443524435344354443554435644357443584435944360443614436244363443644436544366443674436844369443704437144372443734437444375443764437744378443794438044381443824438344384443854438644387443884438944390443914439244393443944439544396443974439844399444004440144402444034440444405444064440744408444094441044411444124441344414444154441644417444184441944420444214442244423444244442544426444274442844429444304443144432444334443444435444364443744438444394444044441444424444344444444454444644447444484444944450444514445244453444544445544456444574445844459444604446144462444634446444465444664446744468444694447044471444724447344474444754447644477444784447944480444814448244483444844448544486444874448844489444904449144492444934449444495444964449744498444994450044501445024450344504445054450644507445084450944510445114451244513445144451544516445174451844519445204452144522445234452444525445264452744528445294453044531445324453344534445354453644537445384453944540445414454244543445444454544546445474454844549445504455144552445534455444555445564455744558445594456044561445624456344564445654456644567445684456944570445714457244573445744457544576445774457844579445804458144582445834458444585445864458744588445894459044591445924459344594445954459644597445984459944600446014460244603446044460544606446074460844609446104461144612446134461444615446164461744618446194462044621446224462344624446254462644627446284462944630446314463244633446344463544636446374463844639446404464144642446434464444645446464464744648446494465044651446524465344654446554465644657446584465944660446614466244663446644466544666446674466844669446704467144672446734467444675446764467744678446794468044681446824468344684446854468644687446884468944690446914469244693446944469544696446974469844699447004470144702447034470444705447064470744708447094471044711447124471344714447154471644717447184471944720447214472244723447244472544726447274472844729447304473144732447334473444735447364473744738447394474044741447424474344744447454474644747447484474944750447514475244753447544475544756447574475844759447604476144762447634476444765447664476744768447694477044771447724477344774447754477644777447784477944780447814478244783447844478544786447874478844789447904479144792447934479444795447964479744798447994480044801448024480344804448054480644807448084480944810448114481244813448144481544816448174481844819448204482144822448234482444825448264482744828448294483044831448324483344834448354483644837448384483944840448414484244843448444484544846448474484844849448504485144852448534485444855448564485744858448594486044861448624486344864448654486644867448684486944870448714487244873448744487544876448774487844879448804488144882448834488444885448864488744888448894489044891448924489344894448954489644897448984489944900449014490244903449044490544906449074490844909449104491144912449134491444915449164491744918449194492044921449224492344924449254492644927449284492944930449314493244933449344493544936449374493844939449404494144942449434494444945449464494744948449494495044951449524495344954449554495644957449584495944960449614496244963449644496544966449674496844969449704497144972449734497444975449764497744978449794498044981449824498344984449854498644987449884498944990449914499244993449944499544996449974499844999450004500145002450034500445005450064500745008450094501045011450124501345014450154501645017450184501945020450214502245023450244502545026450274502845029450304503145032450334503445035450364503745038450394504045041450424504345044450454504645047450484504945050450514505245053450544505545056450574505845059450604506145062450634506445065450664506745068450694507045071450724507345074450754507645077450784507945080450814508245083450844508545086450874508845089450904509145092450934509445095450964509745098450994510045101451024510345104451054510645107451084510945110451114511245113451144511545116451174511845119451204512145122451234512445125451264512745128451294513045131451324513345134451354513645137451384513945140451414514245143451444514545146451474514845149451504515145152451534515445155451564515745158451594516045161451624516345164451654516645167451684516945170451714517245173451744517545176451774517845179451804518145182451834518445185451864518745188451894519045191451924519345194451954519645197451984519945200452014520245203452044520545206452074520845209452104521145212452134521445215452164521745218452194522045221452224522345224452254522645227452284522945230452314523245233452344523545236452374523845239452404524145242452434524445245452464524745248452494525045251452524525345254452554525645257452584525945260452614526245263452644526545266452674526845269452704527145272452734527445275452764527745278452794528045281452824528345284452854528645287452884528945290452914529245293452944529545296452974529845299453004530145302453034530445305453064530745308453094531045311453124531345314453154531645317453184531945320453214532245323453244532545326453274532845329453304533145332453334533445335453364533745338453394534045341453424534345344453454534645347453484534945350453514535245353453544535545356453574535845359453604536145362453634536445365453664536745368453694537045371453724537345374453754537645377453784537945380453814538245383453844538545386453874538845389453904539145392453934539445395453964539745398453994540045401454024540345404454054540645407454084540945410454114541245413454144541545416454174541845419454204542145422454234542445425454264542745428454294543045431454324543345434454354543645437454384543945440454414544245443454444544545446454474544845449454504545145452454534545445455454564545745458454594546045461454624546345464454654546645467454684546945470454714547245473454744547545476454774547845479454804548145482454834548445485454864548745488454894549045491454924549345494454954549645497454984549945500455014550245503455044550545506455074550845509455104551145512455134551445515455164551745518455194552045521455224552345524455254552645527455284552945530455314553245533455344553545536455374553845539455404554145542455434554445545455464554745548455494555045551455524555345554455554555645557455584555945560455614556245563455644556545566455674556845569455704557145572455734557445575455764557745578455794558045581455824558345584455854558645587455884558945590455914559245593455944559545596455974559845599456004560145602456034560445605456064560745608456094561045611456124561345614456154561645617456184561945620456214562245623456244562545626456274562845629456304563145632456334563445635456364563745638456394564045641456424564345644456454564645647456484564945650456514565245653456544565545656456574565845659456604566145662456634566445665456664566745668456694567045671456724567345674456754567645677456784567945680456814568245683456844568545686456874568845689456904569145692456934569445695456964569745698456994570045701457024570345704457054570645707457084570945710457114571245713457144571545716457174571845719457204572145722457234572445725457264572745728457294573045731457324573345734457354573645737457384573945740457414574245743457444574545746457474574845749457504575145752457534575445755457564575745758457594576045761457624576345764457654576645767457684576945770457714577245773457744577545776457774577845779457804578145782457834578445785457864578745788457894579045791457924579345794457954579645797457984579945800458014580245803458044580545806458074580845809458104581145812458134581445815458164581745818458194582045821458224582345824458254582645827458284582945830458314583245833458344583545836458374583845839458404584145842458434584445845458464584745848458494585045851458524585345854458554585645857458584585945860458614586245863458644586545866458674586845869458704587145872458734587445875458764587745878458794588045881458824588345884458854588645887458884588945890458914589245893458944589545896458974589845899459004590145902459034590445905459064590745908459094591045911459124591345914459154591645917459184591945920459214592245923459244592545926459274592845929459304593145932459334593445935459364593745938459394594045941459424594345944459454594645947459484594945950459514595245953459544595545956459574595845959459604596145962459634596445965459664596745968459694597045971459724597345974459754597645977459784597945980459814598245983459844598545986459874598845989459904599145992459934599445995459964599745998459994600046001460024600346004460054600646007460084600946010460114601246013460144601546016460174601846019460204602146022460234602446025460264602746028460294603046031460324603346034460354603646037460384603946040460414604246043460444604546046460474604846049460504605146052460534605446055460564605746058460594606046061460624606346064460654606646067460684606946070460714607246073460744607546076460774607846079460804608146082460834608446085460864608746088460894609046091460924609346094460954609646097460984609946100461014610246103461044610546106461074610846109461104611146112461134611446115461164611746118461194612046121461224612346124461254612646127461284612946130461314613246133461344613546136461374613846139461404614146142461434614446145461464614746148461494615046151461524615346154461554615646157461584615946160461614616246163461644616546166461674616846169461704617146172461734617446175461764617746178461794618046181461824618346184461854618646187461884618946190461914619246193461944619546196461974619846199462004620146202462034620446205462064620746208462094621046211462124621346214462154621646217462184621946220462214622246223462244622546226462274622846229462304623146232462334623446235462364623746238462394624046241462424624346244462454624646247462484624946250462514625246253462544625546256462574625846259462604626146262462634626446265462664626746268462694627046271462724627346274462754627646277462784627946280462814628246283462844628546286462874628846289462904629146292462934629446295462964629746298462994630046301463024630346304463054630646307463084630946310463114631246313463144631546316463174631846319463204632146322463234632446325463264632746328463294633046331463324633346334463354633646337463384633946340463414634246343463444634546346463474634846349463504635146352463534635446355463564635746358463594636046361463624636346364463654636646367463684636946370463714637246373463744637546376463774637846379463804638146382463834638446385463864638746388463894639046391463924639346394463954639646397463984639946400464014640246403464044640546406464074640846409464104641146412464134641446415464164641746418464194642046421464224642346424464254642646427464284642946430464314643246433464344643546436464374643846439464404644146442464434644446445464464644746448464494645046451464524645346454464554645646457464584645946460464614646246463464644646546466464674646846469464704647146472464734647446475464764647746478464794648046481464824648346484464854648646487464884648946490464914649246493464944649546496464974649846499465004650146502465034650446505465064650746508465094651046511465124651346514465154651646517465184651946520465214652246523465244652546526465274652846529465304653146532465334653446535465364653746538465394654046541465424654346544465454654646547465484654946550465514655246553465544655546556465574655846559465604656146562465634656446565465664656746568465694657046571465724657346574465754657646577465784657946580465814658246583465844658546586465874658846589465904659146592465934659446595465964659746598465994660046601466024660346604466054660646607466084660946610466114661246613466144661546616466174661846619466204662146622466234662446625466264662746628466294663046631466324663346634466354663646637466384663946640466414664246643466444664546646466474664846649466504665146652466534665446655466564665746658466594666046661466624666346664466654666646667466684666946670466714667246673466744667546676466774667846679466804668146682466834668446685466864668746688466894669046691466924669346694466954669646697466984669946700467014670246703467044670546706467074670846709467104671146712467134671446715467164671746718467194672046721467224672346724467254672646727467284672946730467314673246733467344673546736467374673846739467404674146742467434674446745467464674746748467494675046751467524675346754467554675646757467584675946760467614676246763467644676546766467674676846769467704677146772467734677446775467764677746778467794678046781467824678346784467854678646787467884678946790467914679246793467944679546796467974679846799468004680146802468034680446805468064680746808468094681046811468124681346814468154681646817468184681946820468214682246823468244682546826468274682846829468304683146832468334683446835468364683746838468394684046841468424684346844468454684646847468484684946850468514685246853468544685546856468574685846859468604686146862468634686446865468664686746868468694687046871468724687346874468754687646877468784687946880468814688246883468844688546886468874688846889468904689146892468934689446895468964689746898468994690046901469024690346904469054690646907469084690946910469114691246913469144691546916469174691846919469204692146922469234692446925469264692746928469294693046931469324693346934469354693646937469384693946940469414694246943469444694546946469474694846949469504695146952469534695446955469564695746958469594696046961469624696346964469654696646967469684696946970469714697246973469744697546976469774697846979469804698146982469834698446985469864698746988469894699046991469924699346994469954699646997469984699947000470014700247003470044700547006470074700847009470104701147012470134701447015470164701747018470194702047021470224702347024470254702647027470284702947030470314703247033470344703547036470374703847039470404704147042470434704447045470464704747048470494705047051470524705347054470554705647057470584705947060470614706247063470644706547066470674706847069470704707147072470734707447075470764707747078470794708047081470824708347084470854708647087470884708947090470914709247093470944709547096470974709847099471004710147102471034710447105471064710747108471094711047111471124711347114471154711647117471184711947120471214712247123471244712547126471274712847129471304713147132471334713447135471364713747138471394714047141471424714347144471454714647147471484714947150471514715247153471544715547156471574715847159471604716147162471634716447165471664716747168471694717047171471724717347174471754717647177471784717947180471814718247183471844718547186471874718847189471904719147192471934719447195471964719747198471994720047201472024720347204472054720647207472084720947210472114721247213472144721547216472174721847219472204722147222472234722447225472264722747228472294723047231472324723347234472354723647237472384723947240472414724247243472444724547246472474724847249472504725147252472534725447255472564725747258472594726047261472624726347264472654726647267472684726947270472714727247273472744727547276472774727847279472804728147282472834728447285472864728747288472894729047291472924729347294472954729647297472984729947300473014730247303473044730547306473074730847309473104731147312473134731447315473164731747318473194732047321473224732347324473254732647327473284732947330473314733247333473344733547336473374733847339473404734147342473434734447345473464734747348473494735047351473524735347354473554735647357473584735947360473614736247363473644736547366473674736847369473704737147372473734737447375473764737747378473794738047381473824738347384473854738647387473884738947390473914739247393473944739547396473974739847399474004740147402474034740447405474064740747408474094741047411474124741347414474154741647417474184741947420474214742247423474244742547426474274742847429474304743147432474334743447435474364743747438474394744047441474424744347444474454744647447474484744947450474514745247453474544745547456474574745847459474604746147462474634746447465474664746747468474694747047471474724747347474474754747647477474784747947480474814748247483474844748547486474874748847489474904749147492474934749447495474964749747498474994750047501475024750347504475054750647507475084750947510475114751247513475144751547516475174751847519475204752147522475234752447525475264752747528475294753047531475324753347534475354753647537475384753947540475414754247543475444754547546475474754847549475504755147552475534755447555475564755747558475594756047561475624756347564475654756647567475684756947570475714757247573475744757547576475774757847579475804758147582475834758447585475864758747588475894759047591475924759347594475954759647597475984759947600476014760247603476044760547606476074760847609476104761147612476134761447615476164761747618476194762047621476224762347624476254762647627476284762947630476314763247633476344763547636476374763847639476404764147642476434764447645476464764747648476494765047651476524765347654476554765647657476584765947660476614766247663476644766547666476674766847669476704767147672476734767447675476764767747678476794768047681476824768347684476854768647687476884768947690476914769247693476944769547696476974769847699477004770147702477034770447705477064770747708477094771047711477124771347714477154771647717477184771947720477214772247723477244772547726477274772847729477304773147732477334773447735477364773747738477394774047741477424774347744477454774647747477484774947750477514775247753477544775547756477574775847759477604776147762477634776447765477664776747768477694777047771477724777347774477754777647777477784777947780477814778247783477844778547786477874778847789477904779147792477934779447795477964779747798477994780047801478024780347804478054780647807478084780947810478114781247813478144781547816478174781847819478204782147822478234782447825478264782747828478294783047831478324783347834478354783647837478384783947840478414784247843478444784547846478474784847849478504785147852478534785447855478564785747858478594786047861478624786347864478654786647867478684786947870478714787247873478744787547876478774787847879478804788147882478834788447885478864788747888478894789047891478924789347894478954789647897478984789947900479014790247903479044790547906479074790847909479104791147912479134791447915479164791747918479194792047921479224792347924479254792647927479284792947930479314793247933479344793547936479374793847939479404794147942479434794447945479464794747948479494795047951479524795347954479554795647957479584795947960479614796247963479644796547966479674796847969479704797147972479734797447975479764797747978479794798047981479824798347984479854798647987479884798947990479914799247993479944799547996479974799847999480004800148002480034800448005480064800748008480094801048011480124801348014480154801648017480184801948020480214802248023480244802548026480274802848029480304803148032480334803448035480364803748038480394804048041480424804348044480454804648047480484804948050480514805248053480544805548056480574805848059480604806148062480634806448065480664806748068480694807048071480724807348074480754807648077480784807948080480814808248083480844808548086480874808848089480904809148092480934809448095480964809748098480994810048101481024810348104481054810648107481084810948110481114811248113481144811548116481174811848119481204812148122481234812448125481264812748128481294813048131481324813348134481354813648137481384813948140481414814248143481444814548146481474814848149481504815148152481534815448155481564815748158481594816048161481624816348164481654816648167481684816948170481714817248173481744817548176481774817848179481804818148182481834818448185481864818748188481894819048191481924819348194481954819648197481984819948200482014820248203482044820548206482074820848209482104821148212482134821448215482164821748218482194822048221482224822348224482254822648227482284822948230482314823248233482344823548236482374823848239482404824148242482434824448245482464824748248482494825048251482524825348254482554825648257482584825948260482614826248263482644826548266482674826848269482704827148272482734827448275482764827748278482794828048281482824828348284482854828648287482884828948290482914829248293482944829548296482974829848299483004830148302483034830448305483064830748308483094831048311483124831348314483154831648317483184831948320483214832248323483244832548326483274832848329483304833148332483334833448335483364833748338483394834048341483424834348344483454834648347483484834948350483514835248353483544835548356483574835848359483604836148362483634836448365483664836748368483694837048371483724837348374483754837648377483784837948380483814838248383483844838548386483874838848389483904839148392483934839448395483964839748398483994840048401484024840348404484054840648407484084840948410484114841248413484144841548416484174841848419484204842148422484234842448425484264842748428484294843048431484324843348434484354843648437484384843948440484414844248443484444844548446484474844848449484504845148452484534845448455484564845748458484594846048461484624846348464484654846648467484684846948470484714847248473484744847548476484774847848479484804848148482484834848448485484864848748488484894849048491484924849348494484954849648497484984849948500485014850248503485044850548506485074850848509485104851148512485134851448515485164851748518485194852048521485224852348524485254852648527485284852948530485314853248533485344853548536485374853848539485404854148542485434854448545485464854748548485494855048551485524855348554485554855648557485584855948560485614856248563485644856548566485674856848569485704857148572485734857448575485764857748578485794858048581485824858348584485854858648587485884858948590485914859248593485944859548596485974859848599486004860148602486034860448605486064860748608486094861048611486124861348614486154861648617486184861948620486214862248623486244862548626486274862848629486304863148632486334863448635486364863748638486394864048641486424864348644486454864648647486484864948650486514865248653486544865548656486574865848659486604866148662486634866448665486664866748668486694867048671486724867348674486754867648677486784867948680486814868248683486844868548686486874868848689486904869148692486934869448695486964869748698486994870048701487024870348704487054870648707487084870948710487114871248713487144871548716487174871848719487204872148722487234872448725487264872748728487294873048731487324873348734487354873648737487384873948740487414874248743487444874548746487474874848749487504875148752487534875448755487564875748758487594876048761487624876348764487654876648767487684876948770487714877248773487744877548776487774877848779487804878148782487834878448785487864878748788487894879048791487924879348794487954879648797487984879948800488014880248803488044880548806488074880848809488104881148812488134881448815488164881748818488194882048821488224882348824488254882648827488284882948830488314883248833488344883548836488374883848839488404884148842488434884448845488464884748848488494885048851488524885348854488554885648857488584885948860488614886248863488644886548866488674886848869488704887148872488734887448875488764887748878488794888048881488824888348884488854888648887488884888948890488914889248893488944889548896488974889848899489004890148902489034890448905489064890748908489094891048911489124891348914489154891648917489184891948920489214892248923489244892548926489274892848929489304893148932489334893448935489364893748938489394894048941489424894348944489454894648947489484894948950489514895248953489544895548956489574895848959489604896148962489634896448965489664896748968489694897048971489724897348974489754897648977489784897948980489814898248983489844898548986489874898848989489904899148992489934899448995489964899748998489994900049001490024900349004490054900649007490084900949010490114901249013490144901549016490174901849019490204902149022490234902449025490264902749028490294903049031490324903349034490354903649037490384903949040490414904249043490444904549046490474904849049490504905149052490534905449055490564905749058490594906049061490624906349064490654906649067490684906949070490714907249073490744907549076490774907849079490804908149082490834908449085490864908749088490894909049091490924909349094490954909649097490984909949100491014910249103491044910549106491074910849109491104911149112491134911449115491164911749118491194912049121491224912349124491254912649127491284912949130491314913249133491344913549136491374913849139491404914149142491434914449145491464914749148491494915049151491524915349154491554915649157491584915949160491614916249163491644916549166491674916849169491704917149172491734917449175491764917749178491794918049181491824918349184491854918649187491884918949190491914919249193491944919549196491974919849199492004920149202492034920449205492064920749208492094921049211492124921349214492154921649217492184921949220492214922249223492244922549226492274922849229492304923149232492334923449235492364923749238492394924049241492424924349244492454924649247492484924949250492514925249253492544925549256492574925849259492604926149262492634926449265492664926749268492694927049271492724927349274492754927649277492784927949280492814928249283492844928549286492874928849289492904929149292492934929449295492964929749298492994930049301493024930349304493054930649307493084930949310493114931249313493144931549316493174931849319493204932149322493234932449325493264932749328493294933049331493324933349334493354933649337493384933949340493414934249343493444934549346493474934849349493504935149352493534935449355493564935749358493594936049361493624936349364493654936649367493684936949370493714937249373493744937549376493774937849379493804938149382493834938449385493864938749388493894939049391493924939349394493954939649397493984939949400494014940249403494044940549406494074940849409494104941149412494134941449415494164941749418494194942049421494224942349424494254942649427494284942949430494314943249433494344943549436494374943849439494404944149442494434944449445494464944749448494494945049451494524945349454494554945649457494584945949460494614946249463494644946549466494674946849469494704947149472494734947449475494764947749478494794948049481494824948349484494854948649487494884948949490494914949249493494944949549496494974949849499495004950149502495034950449505495064950749508495094951049511495124951349514495154951649517495184951949520495214952249523495244952549526495274952849529495304953149532495334953449535495364953749538495394954049541495424954349544495454954649547495484954949550495514955249553495544955549556495574955849559495604956149562495634956449565495664956749568495694957049571495724957349574495754957649577495784957949580495814958249583495844958549586495874958849589495904959149592495934959449595495964959749598495994960049601496024960349604496054960649607496084960949610496114961249613496144961549616496174961849619496204962149622496234962449625496264962749628496294963049631496324963349634496354963649637496384963949640496414964249643496444964549646496474964849649496504965149652496534965449655496564965749658496594966049661496624966349664496654966649667496684966949670496714967249673496744967549676496774967849679496804968149682496834968449685496864968749688496894969049691496924969349694496954969649697496984969949700497014970249703497044970549706497074970849709497104971149712497134971449715497164971749718497194972049721497224972349724497254972649727497284972949730497314973249733497344973549736497374973849739497404974149742497434974449745497464974749748497494975049751497524975349754497554975649757497584975949760497614976249763497644976549766497674976849769497704977149772497734977449775497764977749778497794978049781497824978349784497854978649787497884978949790497914979249793497944979549796497974979849799498004980149802498034980449805498064980749808498094981049811498124981349814498154981649817498184981949820498214982249823498244982549826498274982849829498304983149832498334983449835498364983749838498394984049841498424984349844498454984649847498484984949850498514985249853498544985549856498574985849859498604986149862498634986449865498664986749868498694987049871498724987349874498754987649877498784987949880498814988249883498844988549886498874988849889498904989149892498934989449895498964989749898498994990049901499024990349904499054990649907499084990949910499114991249913499144991549916499174991849919499204992149922499234992449925499264992749928499294993049931499324993349934499354993649937499384993949940499414994249943499444994549946499474994849949499504995149952499534995449955499564995749958499594996049961499624996349964499654996649967499684996949970499714997249973499744997549976499774997849979499804998149982499834998449985499864998749988499894999049991499924999349994499954999649997499984999950000500015000250003500045000550006500075000850009500105001150012500135001450015500165001750018500195002050021500225002350024500255002650027500285002950030500315003250033500345003550036500375003850039500405004150042500435004450045500465004750048500495005050051500525005350054500555005650057500585005950060500615006250063500645006550066500675006850069500705007150072500735007450075500765007750078500795008050081500825008350084500855008650087500885008950090500915009250093500945009550096500975009850099501005010150102501035010450105501065010750108501095011050111501125011350114501155011650117501185011950120501215012250123501245012550126501275012850129501305013150132501335013450135501365013750138501395014050141501425014350144501455014650147501485014950150501515015250153501545015550156501575015850159501605016150162501635016450165501665016750168501695017050171501725017350174501755017650177501785017950180501815018250183501845018550186501875018850189501905019150192501935019450195501965019750198501995020050201502025020350204502055020650207502085020950210502115021250213502145021550216502175021850219502205022150222502235022450225502265022750228502295023050231502325023350234502355023650237502385023950240502415024250243502445024550246502475024850249502505025150252502535025450255502565025750258502595026050261502625026350264502655026650267502685026950270502715027250273502745027550276502775027850279502805028150282502835028450285502865028750288502895029050291502925029350294502955029650297502985029950300503015030250303503045030550306503075030850309503105031150312503135031450315503165031750318503195032050321503225032350324503255032650327503285032950330503315033250333503345033550336503375033850339503405034150342503435034450345503465034750348503495035050351503525035350354503555035650357503585035950360503615036250363503645036550366503675036850369503705037150372503735037450375503765037750378503795038050381503825038350384503855038650387503885038950390503915039250393503945039550396503975039850399504005040150402504035040450405504065040750408504095041050411504125041350414504155041650417504185041950420504215042250423504245042550426504275042850429504305043150432504335043450435504365043750438504395044050441504425044350444504455044650447504485044950450504515045250453504545045550456504575045850459504605046150462504635046450465504665046750468504695047050471504725047350474504755047650477504785047950480504815048250483504845048550486504875048850489504905049150492504935049450495504965049750498504995050050501505025050350504505055050650507505085050950510505115051250513505145051550516505175051850519505205052150522505235052450525505265052750528505295053050531505325053350534505355053650537505385053950540505415054250543505445054550546505475054850549505505055150552505535055450555505565055750558505595056050561505625056350564505655056650567505685056950570505715057250573505745057550576505775057850579505805058150582505835058450585505865058750588505895059050591505925059350594505955059650597505985059950600506015060250603506045060550606506075060850609506105061150612506135061450615506165061750618506195062050621506225062350624506255062650627506285062950630506315063250633506345063550636506375063850639506405064150642506435064450645506465064750648506495065050651506525065350654506555065650657506585065950660506615066250663506645066550666506675066850669506705067150672506735067450675506765067750678506795068050681506825068350684506855068650687506885068950690506915069250693506945069550696506975069850699507005070150702507035070450705507065070750708507095071050711507125071350714507155071650717507185071950720507215072250723507245072550726507275072850729507305073150732507335073450735507365073750738507395074050741507425074350744507455074650747507485074950750507515075250753507545075550756507575075850759507605076150762507635076450765507665076750768507695077050771507725077350774507755077650777507785077950780507815078250783507845078550786507875078850789507905079150792507935079450795507965079750798507995080050801508025080350804508055080650807508085080950810508115081250813508145081550816508175081850819508205082150822508235082450825508265082750828508295083050831508325083350834508355083650837508385083950840508415084250843508445084550846508475084850849508505085150852508535085450855508565085750858508595086050861508625086350864508655086650867508685086950870508715087250873508745087550876508775087850879508805088150882508835088450885508865088750888508895089050891508925089350894508955089650897508985089950900509015090250903509045090550906509075090850909509105091150912509135091450915509165091750918509195092050921509225092350924509255092650927509285092950930509315093250933509345093550936509375093850939509405094150942509435094450945509465094750948509495095050951509525095350954509555095650957509585095950960509615096250963509645096550966509675096850969509705097150972509735097450975509765097750978509795098050981509825098350984509855098650987509885098950990509915099250993509945099550996509975099850999510005100151002510035100451005510065100751008510095101051011510125101351014510155101651017510185101951020510215102251023510245102551026510275102851029510305103151032510335103451035510365103751038510395104051041510425104351044510455104651047510485104951050510515105251053510545105551056510575105851059510605106151062510635106451065510665106751068510695107051071510725107351074510755107651077510785107951080510815108251083510845108551086510875108851089510905109151092510935109451095510965109751098510995110051101511025110351104511055110651107511085110951110511115111251113511145111551116511175111851119511205112151122511235112451125511265112751128511295113051131511325113351134511355113651137511385113951140511415114251143511445114551146511475114851149511505115151152511535115451155511565115751158511595116051161511625116351164511655116651167511685116951170511715117251173511745117551176511775117851179511805118151182511835118451185511865118751188511895119051191511925119351194511955119651197511985119951200512015120251203512045120551206512075120851209512105121151212512135121451215512165121751218512195122051221512225122351224512255122651227512285122951230512315123251233512345123551236512375123851239512405124151242512435124451245512465124751248512495125051251512525125351254512555125651257512585125951260512615126251263512645126551266512675126851269512705127151272512735127451275512765127751278512795128051281512825128351284512855128651287512885128951290512915129251293512945129551296512975129851299513005130151302513035130451305513065130751308513095131051311513125131351314513155131651317513185131951320513215132251323513245132551326513275132851329513305133151332513335133451335513365133751338513395134051341513425134351344513455134651347513485134951350513515135251353513545135551356513575135851359513605136151362513635136451365513665136751368513695137051371513725137351374513755137651377513785137951380513815138251383513845138551386513875138851389513905139151392513935139451395513965139751398513995140051401514025140351404514055140651407514085140951410514115141251413514145141551416514175141851419514205142151422514235142451425514265142751428514295143051431514325143351434514355143651437514385143951440514415144251443514445144551446514475144851449514505145151452514535145451455514565145751458514595146051461514625146351464514655146651467514685146951470514715147251473514745147551476514775147851479514805148151482514835148451485514865148751488514895149051491514925149351494514955149651497514985149951500515015150251503515045150551506515075150851509515105151151512515135151451515515165151751518515195152051521515225152351524515255152651527515285152951530515315153251533515345153551536515375153851539515405154151542515435154451545515465154751548515495155051551515525155351554515555155651557515585155951560515615156251563515645156551566515675156851569515705157151572515735157451575515765157751578515795158051581515825158351584515855158651587515885158951590515915159251593515945159551596515975159851599516005160151602516035160451605516065160751608516095161051611516125161351614516155161651617516185161951620516215162251623516245162551626516275162851629516305163151632516335163451635516365163751638516395164051641516425164351644516455164651647516485164951650516515165251653516545165551656516575165851659516605166151662516635166451665516665166751668516695167051671516725167351674516755167651677516785167951680516815168251683516845168551686516875168851689516905169151692516935169451695516965169751698516995170051701517025170351704517055170651707517085170951710517115171251713517145171551716517175171851719517205172151722517235172451725517265172751728517295173051731517325173351734517355173651737517385173951740517415174251743517445174551746517475174851749517505175151752517535175451755517565175751758517595176051761517625176351764517655176651767517685176951770517715177251773517745177551776517775177851779517805178151782517835178451785517865178751788517895179051791517925179351794517955179651797517985179951800518015180251803518045180551806518075180851809518105181151812518135181451815518165181751818518195182051821518225182351824518255182651827518285182951830518315183251833518345183551836518375183851839518405184151842518435184451845518465184751848518495185051851518525185351854518555185651857518585185951860518615186251863518645186551866518675186851869518705187151872518735187451875518765187751878518795188051881518825188351884518855188651887518885188951890518915189251893518945189551896518975189851899519005190151902519035190451905519065190751908519095191051911519125191351914519155191651917519185191951920519215192251923519245192551926519275192851929519305193151932519335193451935519365193751938519395194051941519425194351944519455194651947519485194951950519515195251953519545195551956519575195851959519605196151962519635196451965519665196751968519695197051971519725197351974519755197651977519785197951980519815198251983519845198551986519875198851989519905199151992519935199451995519965199751998519995200052001520025200352004520055200652007520085200952010520115201252013520145201552016520175201852019520205202152022520235202452025520265202752028520295203052031520325203352034520355203652037520385203952040520415204252043520445204552046520475204852049520505205152052520535205452055520565205752058520595206052061520625206352064520655206652067520685206952070520715207252073520745207552076520775207852079520805208152082520835208452085520865208752088520895209052091520925209352094520955209652097520985209952100521015210252103521045210552106521075210852109521105211152112521135211452115521165211752118521195212052121521225212352124521255212652127521285212952130521315213252133521345213552136521375213852139521405214152142521435214452145521465214752148521495215052151521525215352154521555215652157521585215952160521615216252163521645216552166521675216852169521705217152172521735217452175521765217752178521795218052181521825218352184521855218652187521885218952190521915219252193521945219552196521975219852199522005220152202522035220452205522065220752208522095221052211522125221352214522155221652217522185221952220522215222252223522245222552226522275222852229522305223152232522335223452235522365223752238522395224052241522425224352244522455224652247522485224952250522515225252253522545225552256522575225852259522605226152262522635226452265522665226752268522695227052271522725227352274522755227652277522785227952280522815228252283522845228552286522875228852289522905229152292522935229452295522965229752298522995230052301523025230352304523055230652307523085230952310523115231252313523145231552316523175231852319523205232152322523235232452325523265232752328523295233052331523325233352334523355233652337523385233952340523415234252343523445234552346523475234852349523505235152352523535235452355523565235752358523595236052361523625236352364523655236652367523685236952370523715237252373523745237552376523775237852379523805238152382523835238452385523865238752388523895239052391523925239352394523955239652397523985239952400524015240252403524045240552406524075240852409524105241152412524135241452415524165241752418524195242052421524225242352424524255242652427524285242952430524315243252433524345243552436524375243852439524405244152442524435244452445524465244752448524495245052451524525245352454524555245652457524585245952460524615246252463524645246552466524675246852469524705247152472524735247452475524765247752478524795248052481524825248352484524855248652487524885248952490524915249252493524945249552496524975249852499525005250152502525035250452505525065250752508525095251052511525125251352514525155251652517525185251952520525215252252523525245252552526525275252852529525305253152532525335253452535525365253752538525395254052541525425254352544525455254652547525485254952550525515255252553525545255552556525575255852559525605256152562525635256452565525665256752568525695257052571525725257352574525755257652577525785257952580525815258252583525845258552586525875258852589525905259152592525935259452595525965259752598525995260052601526025260352604526055260652607526085260952610526115261252613526145261552616526175261852619526205262152622526235262452625526265262752628526295263052631526325263352634526355263652637526385263952640526415264252643526445264552646526475264852649526505265152652526535265452655526565265752658526595266052661526625266352664526655266652667526685266952670526715267252673526745267552676526775267852679526805268152682526835268452685526865268752688526895269052691526925269352694526955269652697526985269952700527015270252703527045270552706527075270852709527105271152712527135271452715527165271752718527195272052721527225272352724527255272652727527285272952730527315273252733527345273552736527375273852739527405274152742527435274452745527465274752748527495275052751527525275352754527555275652757527585275952760527615276252763527645276552766527675276852769527705277152772527735277452775527765277752778527795278052781527825278352784527855278652787527885278952790527915279252793527945279552796527975279852799528005280152802528035280452805528065280752808528095281052811528125281352814528155281652817528185281952820528215282252823528245282552826528275282852829528305283152832528335283452835528365283752838528395284052841528425284352844528455284652847528485284952850528515285252853528545285552856528575285852859528605286152862528635286452865528665286752868528695287052871528725287352874528755287652877528785287952880528815288252883528845288552886528875288852889528905289152892528935289452895528965289752898528995290052901529025290352904529055290652907529085290952910529115291252913529145291552916529175291852919529205292152922529235292452925529265292752928529295293052931529325293352934529355293652937529385293952940529415294252943529445294552946529475294852949529505295152952529535295452955529565295752958529595296052961529625296352964529655296652967529685296952970529715297252973529745297552976529775297852979529805298152982529835298452985529865298752988529895299052991529925299352994529955299652997529985299953000530015300253003530045300553006530075300853009530105301153012530135301453015530165301753018530195302053021530225302353024530255302653027530285302953030530315303253033530345303553036530375303853039530405304153042530435304453045530465304753048530495305053051530525305353054530555305653057530585305953060530615306253063530645306553066530675306853069530705307153072530735307453075530765307753078530795308053081530825308353084530855308653087530885308953090530915309253093530945309553096530975309853099531005310153102531035310453105531065310753108531095311053111531125311353114531155311653117531185311953120531215312253123531245312553126531275312853129531305313153132531335313453135531365313753138531395314053141531425314353144531455314653147531485314953150531515315253153531545315553156531575315853159531605316153162531635316453165531665316753168531695317053171531725317353174531755317653177531785317953180531815318253183531845318553186531875318853189531905319153192531935319453195531965319753198531995320053201532025320353204532055320653207532085320953210532115321253213532145321553216532175321853219532205322153222532235322453225532265322753228532295323053231532325323353234532355323653237532385323953240532415324253243532445324553246532475324853249532505325153252532535325453255532565325753258532595326053261532625326353264532655326653267532685326953270532715327253273532745327553276532775327853279532805328153282532835328453285532865328753288532895329053291532925329353294532955329653297532985329953300533015330253303533045330553306533075330853309533105331153312533135331453315533165331753318533195332053321533225332353324533255332653327533285332953330533315333253333533345333553336533375333853339533405334153342533435334453345533465334753348533495335053351533525335353354533555335653357533585335953360533615336253363533645336553366533675336853369533705337153372533735337453375533765337753378533795338053381533825338353384533855338653387533885338953390533915339253393533945339553396533975339853399534005340153402534035340453405534065340753408534095341053411534125341353414534155341653417534185341953420534215342253423534245342553426534275342853429534305343153432534335343453435534365343753438534395344053441534425344353444534455344653447534485344953450534515345253453534545345553456534575345853459534605346153462534635346453465534665346753468534695347053471534725347353474534755347653477534785347953480534815348253483534845348553486534875348853489534905349153492534935349453495534965349753498534995350053501535025350353504535055350653507535085350953510535115351253513535145351553516535175351853519535205352153522535235352453525535265352753528535295353053531535325353353534535355353653537535385353953540535415354253543535445354553546535475354853549535505355153552535535355453555535565355753558535595356053561535625356353564535655356653567535685356953570535715357253573535745357553576535775357853579535805358153582535835358453585535865358753588535895359053591535925359353594535955359653597535985359953600536015360253603536045360553606536075360853609536105361153612536135361453615536165361753618536195362053621536225362353624536255362653627536285362953630536315363253633536345363553636536375363853639536405364153642536435364453645536465364753648536495365053651536525365353654536555365653657536585365953660536615366253663536645366553666536675366853669536705367153672536735367453675536765367753678536795368053681536825368353684536855368653687536885368953690536915369253693536945369553696536975369853699537005370153702537035370453705537065370753708537095371053711537125371353714537155371653717537185371953720537215372253723537245372553726537275372853729537305373153732537335373453735537365373753738537395374053741537425374353744537455374653747537485374953750537515375253753537545375553756537575375853759537605376153762537635376453765537665376753768537695377053771537725377353774537755377653777537785377953780537815378253783537845378553786537875378853789537905379153792537935379453795537965379753798537995380053801538025380353804538055380653807538085380953810538115381253813538145381553816538175381853819538205382153822538235382453825538265382753828538295383053831538325383353834538355383653837538385383953840538415384253843538445384553846538475384853849538505385153852538535385453855538565385753858538595386053861538625386353864538655386653867538685386953870538715387253873538745387553876538775387853879538805388153882538835388453885538865388753888538895389053891538925389353894538955389653897538985389953900539015390253903539045390553906539075390853909539105391153912539135391453915539165391753918539195392053921539225392353924539255392653927539285392953930539315393253933539345393553936539375393853939539405394153942539435394453945539465394753948539495395053951539525395353954539555395653957539585395953960539615396253963539645396553966539675396853969539705397153972539735397453975539765397753978539795398053981539825398353984539855398653987539885398953990539915399253993539945399553996539975399853999540005400154002540035400454005540065400754008540095401054011540125401354014540155401654017540185401954020540215402254023540245402554026540275402854029540305403154032540335403454035540365403754038540395404054041540425404354044540455404654047540485404954050540515405254053540545405554056540575405854059540605406154062540635406454065540665406754068540695407054071540725407354074540755407654077540785407954080540815408254083540845408554086540875408854089540905409154092540935409454095540965409754098540995410054101541025410354104541055410654107541085410954110541115411254113541145411554116541175411854119541205412154122541235412454125541265412754128541295413054131541325413354134541355413654137541385413954140541415414254143541445414554146541475414854149541505415154152541535415454155541565415754158541595416054161541625416354164541655416654167541685416954170541715417254173541745417554176541775417854179541805418154182541835418454185541865418754188541895419054191541925419354194541955419654197541985419954200542015420254203542045420554206542075420854209542105421154212542135421454215542165421754218542195422054221542225422354224542255422654227542285422954230542315423254233542345423554236542375423854239542405424154242542435424454245542465424754248542495425054251542525425354254542555425654257542585425954260542615426254263542645426554266542675426854269542705427154272542735427454275542765427754278542795428054281542825428354284542855428654287542885428954290542915429254293542945429554296542975429854299543005430154302543035430454305543065430754308543095431054311543125431354314543155431654317543185431954320543215432254323543245432554326543275432854329543305433154332543335433454335543365433754338543395434054341543425434354344543455434654347543485434954350543515435254353543545435554356543575435854359543605436154362543635436454365543665436754368543695437054371543725437354374543755437654377543785437954380543815438254383543845438554386543875438854389543905439154392543935439454395543965439754398543995440054401544025440354404544055440654407544085440954410544115441254413544145441554416544175441854419544205442154422544235442454425544265442754428544295443054431544325443354434544355443654437544385443954440544415444254443544445444554446544475444854449544505445154452544535445454455544565445754458544595446054461544625446354464544655446654467544685446954470544715447254473544745447554476544775447854479544805448154482544835448454485544865448754488544895449054491544925449354494544955449654497544985449954500545015450254503545045450554506545075450854509545105451154512545135451454515545165451754518545195452054521545225452354524545255452654527545285452954530545315453254533545345453554536545375453854539545405454154542545435454454545545465454754548545495455054551545525455354554545555455654557545585455954560545615456254563545645456554566545675456854569545705457154572545735457454575545765457754578545795458054581545825458354584545855458654587545885458954590545915459254593545945459554596545975459854599546005460154602546035460454605546065460754608546095461054611546125461354614546155461654617546185461954620546215462254623546245462554626546275462854629546305463154632546335463454635546365463754638546395464054641546425464354644546455464654647546485464954650546515465254653546545465554656546575465854659546605466154662546635466454665546665466754668546695467054671546725467354674546755467654677546785467954680546815468254683546845468554686546875468854689546905469154692546935469454695546965469754698546995470054701547025470354704547055470654707547085470954710547115471254713547145471554716547175471854719547205472154722547235472454725547265472754728547295473054731547325473354734547355473654737547385473954740547415474254743547445474554746547475474854749547505475154752547535475454755547565475754758547595476054761547625476354764547655476654767547685476954770547715477254773547745477554776547775477854779547805478154782547835478454785547865478754788547895479054791547925479354794547955479654797547985479954800548015480254803548045480554806548075480854809548105481154812548135481454815548165481754818548195482054821548225482354824548255482654827548285482954830548315483254833548345483554836548375483854839548405484154842548435484454845548465484754848548495485054851548525485354854548555485654857548585485954860548615486254863548645486554866548675486854869548705487154872548735487454875548765487754878548795488054881548825488354884548855488654887548885488954890548915489254893548945489554896548975489854899549005490154902549035490454905549065490754908549095491054911549125491354914549155491654917549185491954920549215492254923549245492554926549275492854929549305493154932549335493454935549365493754938549395494054941549425494354944549455494654947549485494954950549515495254953549545495554956549575495854959549605496154962549635496454965549665496754968549695497054971549725497354974549755497654977549785497954980549815498254983549845498554986549875498854989549905499154992549935499454995549965499754998549995500055001550025500355004550055500655007550085500955010550115501255013550145501555016550175501855019550205502155022550235502455025550265502755028550295503055031550325503355034550355503655037550385503955040550415504255043550445504555046550475504855049550505505155052550535505455055550565505755058550595506055061550625506355064550655506655067550685506955070550715507255073550745507555076550775507855079550805508155082550835508455085550865508755088550895509055091550925509355094550955509655097550985509955100551015510255103551045510555106551075510855109551105511155112551135511455115551165511755118551195512055121551225512355124551255512655127551285512955130551315513255133551345513555136551375513855139551405514155142551435514455145551465514755148551495515055151551525515355154551555515655157551585515955160551615516255163551645516555166551675516855169551705517155172551735517455175551765517755178551795518055181551825518355184551855518655187551885518955190551915519255193551945519555196551975519855199552005520155202552035520455205552065520755208552095521055211552125521355214552155521655217552185521955220552215522255223552245522555226552275522855229552305523155232552335523455235552365523755238552395524055241552425524355244552455524655247552485524955250552515525255253552545525555256552575525855259552605526155262552635526455265552665526755268552695527055271552725527355274552755527655277552785527955280552815528255283552845528555286552875528855289552905529155292552935529455295552965529755298552995530055301553025530355304553055530655307553085530955310553115531255313553145531555316553175531855319553205532155322553235532455325553265532755328553295533055331553325533355334553355533655337553385533955340553415534255343553445534555346553475534855349553505535155352553535535455355553565535755358553595536055361553625536355364553655536655367553685536955370553715537255373553745537555376553775537855379553805538155382553835538455385553865538755388553895539055391553925539355394553955539655397553985539955400554015540255403554045540555406554075540855409554105541155412554135541455415554165541755418554195542055421554225542355424554255542655427554285542955430554315543255433554345543555436554375543855439554405544155442554435544455445554465544755448554495545055451554525545355454554555545655457554585545955460554615546255463554645546555466554675546855469554705547155472554735547455475554765547755478554795548055481554825548355484554855548655487554885548955490554915549255493554945549555496554975549855499555005550155502555035550455505555065550755508555095551055511555125551355514555155551655517555185551955520555215552255523555245552555526555275552855529555305553155532555335553455535555365553755538555395554055541555425554355544555455554655547555485554955550555515555255553555545555555556555575555855559555605556155562555635556455565555665556755568555695557055571555725557355574555755557655577555785557955580555815558255583555845558555586555875558855589555905559155592555935559455595555965559755598555995560055601556025560355604556055560655607556085560955610556115561255613556145561555616556175561855619556205562155622556235562455625556265562755628556295563055631556325563355634556355563655637556385563955640556415564255643556445564555646556475564855649556505565155652556535565455655556565565755658556595566055661556625566355664556655566655667556685566955670556715567255673556745567555676556775567855679556805568155682556835568455685556865568755688556895569055691556925569355694556955569655697556985569955700557015570255703557045570555706557075570855709557105571155712557135571455715557165571755718557195572055721557225572355724557255572655727557285572955730557315573255733557345573555736557375573855739557405574155742557435574455745557465574755748557495575055751557525575355754557555575655757557585575955760557615576255763557645576555766557675576855769557705577155772557735577455775557765577755778557795578055781557825578355784557855578655787557885578955790557915579255793557945579555796557975579855799558005580155802558035580455805558065580755808558095581055811558125581355814558155581655817558185581955820558215582255823558245582555826558275582855829558305583155832558335583455835558365583755838558395584055841558425584355844558455584655847558485584955850558515585255853558545585555856558575585855859558605586155862558635586455865558665586755868558695587055871558725587355874558755587655877558785587955880558815588255883558845588555886558875588855889558905589155892558935589455895558965589755898558995590055901559025590355904559055590655907559085590955910559115591255913559145591555916559175591855919559205592155922559235592455925559265592755928559295593055931559325593355934559355593655937559385593955940559415594255943559445594555946559475594855949559505595155952559535595455955559565595755958559595596055961559625596355964559655596655967559685596955970559715597255973559745597555976559775597855979559805598155982559835598455985559865598755988559895599055991559925599355994559955599655997559985599956000560015600256003560045600556006560075600856009560105601156012560135601456015560165601756018560195602056021560225602356024560255602656027560285602956030560315603256033560345603556036560375603856039560405604156042560435604456045560465604756048560495605056051560525605356054560555605656057560585605956060560615606256063560645606556066560675606856069560705607156072560735607456075560765607756078560795608056081560825608356084560855608656087560885608956090560915609256093560945609556096560975609856099561005610156102561035610456105561065610756108561095611056111561125611356114561155611656117561185611956120561215612256123561245612556126561275612856129561305613156132561335613456135561365613756138561395614056141561425614356144561455614656147561485614956150561515615256153561545615556156561575615856159561605616156162561635616456165561665616756168561695617056171561725617356174561755617656177561785617956180561815618256183561845618556186561875618856189561905619156192561935619456195561965619756198561995620056201562025620356204562055620656207562085620956210562115621256213562145621556216562175621856219562205622156222562235622456225562265622756228562295623056231562325623356234562355623656237562385623956240562415624256243562445624556246562475624856249562505625156252562535625456255562565625756258562595626056261562625626356264562655626656267562685626956270562715627256273562745627556276562775627856279562805628156282562835628456285562865628756288562895629056291562925629356294562955629656297562985629956300563015630256303563045630556306563075630856309563105631156312563135631456315563165631756318563195632056321563225632356324563255632656327563285632956330563315633256333563345633556336563375633856339563405634156342563435634456345563465634756348563495635056351563525635356354563555635656357563585635956360563615636256363563645636556366563675636856369563705637156372563735637456375563765637756378563795638056381563825638356384563855638656387563885638956390563915639256393563945639556396563975639856399564005640156402564035640456405564065640756408564095641056411564125641356414564155641656417564185641956420564215642256423564245642556426564275642856429564305643156432564335643456435564365643756438564395644056441564425644356444564455644656447564485644956450564515645256453564545645556456564575645856459564605646156462564635646456465564665646756468564695647056471564725647356474564755647656477564785647956480564815648256483564845648556486564875648856489564905649156492564935649456495564965649756498564995650056501565025650356504565055650656507565085650956510565115651256513565145651556516565175651856519565205652156522565235652456525565265652756528565295653056531565325653356534565355653656537565385653956540565415654256543565445654556546565475654856549565505655156552565535655456555565565655756558565595656056561565625656356564565655656656567565685656956570565715657256573565745657556576565775657856579565805658156582565835658456585565865658756588565895659056591565925659356594565955659656597565985659956600566015660256603566045660556606566075660856609566105661156612566135661456615566165661756618566195662056621566225662356624566255662656627566285662956630566315663256633566345663556636566375663856639566405664156642566435664456645566465664756648566495665056651566525665356654566555665656657566585665956660566615666256663566645666556666566675666856669566705667156672566735667456675566765667756678566795668056681566825668356684566855668656687566885668956690566915669256693566945669556696566975669856699567005670156702567035670456705567065670756708567095671056711567125671356714567155671656717567185671956720567215672256723567245672556726567275672856729567305673156732567335673456735567365673756738567395674056741567425674356744567455674656747567485674956750567515675256753567545675556756567575675856759567605676156762567635676456765567665676756768567695677056771567725677356774567755677656777567785677956780567815678256783567845678556786567875678856789567905679156792567935679456795567965679756798567995680056801568025680356804568055680656807568085680956810568115681256813568145681556816568175681856819568205682156822568235682456825568265682756828568295683056831568325683356834568355683656837568385683956840568415684256843568445684556846568475684856849568505685156852568535685456855568565685756858568595686056861568625686356864568655686656867568685686956870568715687256873568745687556876568775687856879568805688156882568835688456885568865688756888568895689056891568925689356894568955689656897568985689956900569015690256903569045690556906569075690856909569105691156912569135691456915569165691756918569195692056921569225692356924569255692656927569285692956930569315693256933569345693556936569375693856939569405694156942569435694456945569465694756948569495695056951569525695356954569555695656957569585695956960569615696256963569645696556966569675696856969569705697156972569735697456975569765697756978569795698056981569825698356984569855698656987569885698956990569915699256993569945699556996569975699856999570005700157002570035700457005570065700757008570095701057011570125701357014570155701657017570185701957020570215702257023570245702557026570275702857029570305703157032570335703457035570365703757038570395704057041570425704357044570455704657047570485704957050570515705257053570545705557056570575705857059570605706157062570635706457065570665706757068570695707057071570725707357074570755707657077570785707957080570815708257083570845708557086570875708857089570905709157092570935709457095570965709757098570995710057101571025710357104571055710657107571085710957110571115711257113571145711557116571175711857119571205712157122571235712457125571265712757128571295713057131571325713357134571355713657137571385713957140571415714257143571445714557146571475714857149571505715157152571535715457155571565715757158571595716057161571625716357164571655716657167571685716957170571715717257173571745717557176571775717857179571805718157182571835718457185571865718757188571895719057191571925719357194571955719657197571985719957200572015720257203572045720557206572075720857209572105721157212572135721457215572165721757218572195722057221572225722357224572255722657227572285722957230572315723257233572345723557236572375723857239572405724157242572435724457245572465724757248572495725057251572525725357254572555725657257572585725957260572615726257263572645726557266572675726857269572705727157272572735727457275572765727757278572795728057281572825728357284572855728657287572885728957290572915729257293572945729557296572975729857299573005730157302573035730457305573065730757308573095731057311573125731357314573155731657317573185731957320573215732257323573245732557326573275732857329573305733157332573335733457335573365733757338573395734057341573425734357344573455734657347573485734957350573515735257353573545735557356573575735857359573605736157362573635736457365573665736757368573695737057371573725737357374573755737657377573785737957380573815738257383573845738557386573875738857389573905739157392573935739457395573965739757398573995740057401574025740357404574055740657407574085740957410574115741257413574145741557416574175741857419574205742157422574235742457425574265742757428574295743057431574325743357434574355743657437574385743957440574415744257443574445744557446574475744857449574505745157452574535745457455574565745757458574595746057461574625746357464574655746657467574685746957470574715747257473574745747557476574775747857479574805748157482574835748457485574865748757488574895749057491574925749357494574955749657497574985749957500575015750257503575045750557506575075750857509575105751157512575135751457515575165751757518575195752057521575225752357524575255752657527575285752957530575315753257533575345753557536575375753857539575405754157542575435754457545575465754757548575495755057551575525755357554575555755657557575585755957560575615756257563575645756557566575675756857569575705757157572575735757457575575765757757578575795758057581575825758357584575855758657587575885758957590575915759257593575945759557596575975759857599576005760157602576035760457605576065760757608576095761057611576125761357614576155761657617576185761957620576215762257623576245762557626576275762857629576305763157632576335763457635576365763757638576395764057641576425764357644576455764657647576485764957650576515765257653576545765557656576575765857659576605766157662576635766457665576665766757668576695767057671576725767357674576755767657677576785767957680576815768257683576845768557686576875768857689576905769157692576935769457695576965769757698576995770057701577025770357704577055770657707577085770957710577115771257713577145771557716577175771857719577205772157722577235772457725577265772757728577295773057731577325773357734577355773657737577385773957740577415774257743577445774557746577475774857749577505775157752577535775457755577565775757758577595776057761577625776357764577655776657767577685776957770577715777257773577745777557776577775777857779577805778157782577835778457785577865778757788577895779057791577925779357794577955779657797577985779957800578015780257803578045780557806578075780857809578105781157812578135781457815578165781757818578195782057821578225782357824578255782657827578285782957830578315783257833578345783557836578375783857839578405784157842578435784457845578465784757848578495785057851578525785357854578555785657857578585785957860578615786257863578645786557866578675786857869578705787157872578735787457875578765787757878578795788057881578825788357884578855788657887578885788957890578915789257893578945789557896578975789857899579005790157902579035790457905579065790757908579095791057911579125791357914579155791657917579185791957920579215792257923579245792557926579275792857929579305793157932579335793457935579365793757938579395794057941579425794357944579455794657947579485794957950579515795257953579545795557956579575795857959579605796157962579635796457965579665796757968579695797057971579725797357974579755797657977579785797957980579815798257983579845798557986579875798857989579905799157992579935799457995579965799757998579995800058001580025800358004580055800658007580085800958010580115801258013580145801558016580175801858019580205802158022580235802458025580265802758028580295803058031580325803358034580355803658037580385803958040580415804258043580445804558046580475804858049580505805158052580535805458055580565805758058580595806058061580625806358064580655806658067580685806958070580715807258073580745807558076580775807858079580805808158082580835808458085580865808758088580895809058091580925809358094580955809658097580985809958100581015810258103581045810558106581075810858109581105811158112581135811458115581165811758118581195812058121581225812358124581255812658127581285812958130581315813258133581345813558136581375813858139581405814158142581435814458145581465814758148581495815058151581525815358154581555815658157581585815958160581615816258163581645816558166581675816858169581705817158172581735817458175581765817758178581795818058181581825818358184581855818658187581885818958190581915819258193581945819558196581975819858199582005820158202582035820458205582065820758208582095821058211582125821358214582155821658217582185821958220582215822258223582245822558226582275822858229582305823158232582335823458235582365823758238582395824058241582425824358244582455824658247582485824958250582515825258253582545825558256582575825858259582605826158262582635826458265582665826758268582695827058271582725827358274582755827658277582785827958280582815828258283582845828558286582875828858289582905829158292582935829458295582965829758298582995830058301583025830358304583055830658307583085830958310583115831258313583145831558316583175831858319583205832158322583235832458325583265832758328583295833058331583325833358334583355833658337583385833958340583415834258343583445834558346583475834858349583505835158352583535835458355583565835758358583595836058361583625836358364583655836658367583685836958370583715837258373583745837558376583775837858379583805838158382583835838458385583865838758388583895839058391583925839358394583955839658397583985839958400584015840258403584045840558406584075840858409584105841158412584135841458415584165841758418584195842058421584225842358424584255842658427584285842958430584315843258433584345843558436584375843858439584405844158442584435844458445584465844758448584495845058451584525845358454584555845658457584585845958460584615846258463584645846558466584675846858469584705847158472584735847458475584765847758478584795848058481584825848358484584855848658487584885848958490584915849258493584945849558496584975849858499585005850158502585035850458505585065850758508585095851058511585125851358514585155851658517585185851958520585215852258523585245852558526585275852858529585305853158532585335853458535585365853758538585395854058541585425854358544585455854658547585485854958550585515855258553585545855558556585575855858559585605856158562585635856458565585665856758568585695857058571585725857358574585755857658577585785857958580585815858258583585845858558586585875858858589585905859158592585935859458595585965859758598585995860058601586025860358604586055860658607586085860958610586115861258613586145861558616586175861858619586205862158622586235862458625586265862758628586295863058631586325863358634586355863658637586385863958640586415864258643586445864558646586475864858649586505865158652586535865458655586565865758658586595866058661586625866358664586655866658667586685866958670586715867258673586745867558676586775867858679586805868158682586835868458685586865868758688586895869058691586925869358694586955869658697586985869958700587015870258703587045870558706587075870858709587105871158712587135871458715587165871758718587195872058721587225872358724587255872658727587285872958730587315873258733587345873558736587375873858739587405874158742587435874458745587465874758748587495875058751587525875358754587555875658757587585875958760587615876258763587645876558766587675876858769587705877158772587735877458775587765877758778587795878058781587825878358784587855878658787587885878958790587915879258793587945879558796587975879858799588005880158802588035880458805588065880758808588095881058811588125881358814588155881658817588185881958820588215882258823588245882558826588275882858829588305883158832588335883458835588365883758838588395884058841588425884358844588455884658847588485884958850588515885258853588545885558856588575885858859588605886158862588635886458865588665886758868588695887058871588725887358874588755887658877588785887958880588815888258883588845888558886588875888858889588905889158892588935889458895588965889758898588995890058901589025890358904589055890658907589085890958910589115891258913589145891558916589175891858919589205892158922589235892458925589265892758928589295893058931589325893358934589355893658937589385893958940589415894258943589445894558946589475894858949589505895158952589535895458955589565895758958589595896058961589625896358964589655896658967589685896958970589715897258973589745897558976589775897858979589805898158982589835898458985589865898758988589895899058991589925899358994589955899658997589985899959000590015900259003590045900559006590075900859009590105901159012590135901459015590165901759018590195902059021590225902359024590255902659027590285902959030590315903259033590345903559036590375903859039590405904159042590435904459045590465904759048590495905059051590525905359054590555905659057590585905959060590615906259063590645906559066590675906859069590705907159072590735907459075590765907759078590795908059081590825908359084590855908659087590885908959090590915909259093590945909559096590975909859099591005910159102591035910459105591065910759108591095911059111591125911359114591155911659117591185911959120591215912259123591245912559126591275912859129591305913159132591335913459135591365913759138591395914059141591425914359144591455914659147591485914959150591515915259153591545915559156591575915859159591605916159162591635916459165591665916759168591695917059171591725917359174591755917659177591785917959180591815918259183591845918559186591875918859189591905919159192591935919459195591965919759198591995920059201592025920359204592055920659207592085920959210592115921259213592145921559216592175921859219592205922159222592235922459225592265922759228592295923059231592325923359234592355923659237592385923959240592415924259243592445924559246592475924859249592505925159252592535925459255592565925759258592595926059261592625926359264592655926659267592685926959270592715927259273592745927559276592775927859279592805928159282592835928459285592865928759288592895929059291592925929359294592955929659297592985929959300593015930259303593045930559306593075930859309593105931159312593135931459315593165931759318593195932059321593225932359324593255932659327593285932959330593315933259333593345933559336593375933859339593405934159342593435934459345593465934759348593495935059351593525935359354593555935659357593585935959360593615936259363593645936559366593675936859369593705937159372593735937459375593765937759378593795938059381593825938359384593855938659387593885938959390593915939259393593945939559396593975939859399594005940159402594035940459405594065940759408594095941059411594125941359414594155941659417594185941959420594215942259423594245942559426594275942859429594305943159432594335943459435594365943759438594395944059441594425944359444594455944659447594485944959450594515945259453594545945559456594575945859459594605946159462594635946459465594665946759468594695947059471594725947359474594755947659477594785947959480594815948259483594845948559486594875948859489594905949159492594935949459495594965949759498594995950059501595025950359504595055950659507595085950959510595115951259513595145951559516595175951859519595205952159522595235952459525595265952759528595295953059531595325953359534595355953659537595385953959540595415954259543595445954559546595475954859549595505955159552595535955459555595565955759558595595956059561595625956359564595655956659567595685956959570595715957259573595745957559576595775957859579595805958159582595835958459585595865958759588595895959059591595925959359594595955959659597595985959959600596015960259603596045960559606596075960859609596105961159612596135961459615596165961759618596195962059621596225962359624596255962659627596285962959630596315963259633596345963559636596375963859639596405964159642596435964459645596465964759648596495965059651596525965359654596555965659657596585965959660596615966259663596645966559666596675966859669596705967159672596735967459675596765967759678596795968059681596825968359684596855968659687596885968959690596915969259693596945969559696596975969859699597005970159702597035970459705597065970759708597095971059711597125971359714597155971659717597185971959720597215972259723597245972559726597275972859729597305973159732597335973459735597365973759738597395974059741597425974359744597455974659747597485974959750597515975259753597545975559756597575975859759597605976159762597635976459765597665976759768597695977059771597725977359774597755977659777597785977959780597815978259783597845978559786597875978859789597905979159792597935979459795597965979759798597995980059801598025980359804598055980659807598085980959810598115981259813598145981559816598175981859819598205982159822598235982459825598265982759828598295983059831598325983359834598355983659837598385983959840598415984259843598445984559846598475984859849598505985159852598535985459855598565985759858598595986059861598625986359864598655986659867598685986959870598715987259873598745987559876598775987859879598805988159882598835988459885598865988759888598895989059891598925989359894598955989659897598985989959900599015990259903599045990559906599075990859909599105991159912599135991459915599165991759918599195992059921599225992359924599255992659927599285992959930599315993259933599345993559936599375993859939599405994159942599435994459945599465994759948599495995059951599525995359954599555995659957599585995959960599615996259963599645996559966599675996859969599705997159972599735997459975599765997759978599795998059981599825998359984599855998659987599885998959990599915999259993599945999559996599975999859999600006000160002600036000460005600066000760008600096001060011600126001360014600156001660017600186001960020600216002260023600246002560026600276002860029600306003160032600336003460035600366003760038600396004060041600426004360044600456004660047600486004960050600516005260053600546005560056600576005860059600606006160062600636006460065600666006760068600696007060071600726007360074600756007660077600786007960080600816008260083600846008560086600876008860089600906009160092600936009460095600966009760098600996010060101601026010360104601056010660107601086010960110601116011260113601146011560116601176011860119601206012160122601236012460125601266012760128601296013060131601326013360134601356013660137601386013960140601416014260143601446014560146601476014860149601506015160152601536015460155601566015760158601596016060161601626016360164601656016660167601686016960170601716017260173601746017560176601776017860179601806018160182601836018460185601866018760188601896019060191601926019360194601956019660197601986019960200602016020260203602046020560206602076020860209602106021160212602136021460215602166021760218602196022060221602226022360224602256022660227602286022960230602316023260233602346023560236602376023860239602406024160242602436024460245602466024760248602496025060251602526025360254602556025660257602586025960260602616026260263602646026560266602676026860269602706027160272602736027460275602766027760278602796028060281602826028360284602856028660287602886028960290602916029260293602946029560296602976029860299603006030160302603036030460305603066030760308603096031060311603126031360314603156031660317603186031960320603216032260323603246032560326603276032860329603306033160332603336033460335603366033760338603396034060341603426034360344603456034660347603486034960350603516035260353603546035560356603576035860359603606036160362603636036460365603666036760368603696037060371603726037360374603756037660377603786037960380603816038260383603846038560386603876038860389603906039160392603936039460395603966039760398603996040060401604026040360404604056040660407604086040960410604116041260413604146041560416604176041860419604206042160422604236042460425604266042760428604296043060431604326043360434604356043660437604386043960440604416044260443604446044560446604476044860449604506045160452604536045460455604566045760458604596046060461604626046360464604656046660467604686046960470604716047260473604746047560476604776047860479604806048160482604836048460485604866048760488604896049060491604926049360494604956049660497604986049960500605016050260503605046050560506605076050860509605106051160512605136051460515605166051760518605196052060521605226052360524605256052660527605286052960530605316053260533605346053560536605376053860539605406054160542605436054460545605466054760548605496055060551605526055360554605556055660557605586055960560605616056260563605646056560566605676056860569605706057160572605736057460575605766057760578605796058060581605826058360584605856058660587605886058960590605916059260593605946059560596605976059860599606006060160602606036060460605606066060760608606096061060611606126061360614606156061660617606186061960620606216062260623606246062560626606276062860629606306063160632606336063460635606366063760638606396064060641606426064360644606456064660647606486064960650606516065260653606546065560656606576065860659606606066160662606636066460665606666066760668606696067060671606726067360674606756067660677606786067960680606816068260683606846068560686606876068860689606906069160692606936069460695606966069760698606996070060701607026070360704607056070660707607086070960710607116071260713607146071560716607176071860719607206072160722607236072460725607266072760728607296073060731607326073360734607356073660737607386073960740607416074260743607446074560746607476074860749607506075160752607536075460755607566075760758607596076060761607626076360764607656076660767607686076960770607716077260773607746077560776607776077860779607806078160782607836078460785607866078760788607896079060791607926079360794607956079660797607986079960800608016080260803608046080560806608076080860809608106081160812608136081460815608166081760818608196082060821608226082360824608256082660827608286082960830608316083260833608346083560836608376083860839608406084160842608436084460845608466084760848608496085060851608526085360854608556085660857608586085960860608616086260863608646086560866608676086860869608706087160872608736087460875608766087760878608796088060881608826088360884608856088660887608886088960890608916089260893608946089560896608976089860899609006090160902609036090460905609066090760908609096091060911609126091360914609156091660917609186091960920609216092260923609246092560926609276092860929609306093160932609336093460935609366093760938609396094060941609426094360944609456094660947609486094960950609516095260953609546095560956609576095860959609606096160962609636096460965609666096760968609696097060971609726097360974609756097660977609786097960980609816098260983609846098560986609876098860989609906099160992609936099460995609966099760998609996100061001610026100361004610056100661007610086100961010610116101261013610146101561016610176101861019610206102161022610236102461025610266102761028610296103061031610326103361034610356103661037610386103961040610416104261043610446104561046610476104861049610506105161052610536105461055610566105761058610596106061061610626106361064610656106661067610686106961070610716107261073610746107561076610776107861079610806108161082610836108461085610866108761088610896109061091610926109361094610956109661097610986109961100611016110261103611046110561106611076110861109611106111161112611136111461115611166111761118611196112061121611226112361124611256112661127611286112961130611316113261133611346113561136611376113861139611406114161142611436114461145611466114761148611496115061151611526115361154611556115661157611586115961160611616116261163611646116561166611676116861169611706117161172611736117461175611766117761178611796118061181611826118361184611856118661187611886118961190611916119261193611946119561196611976119861199612006120161202612036120461205612066120761208612096121061211612126121361214612156121661217612186121961220612216122261223612246122561226612276122861229612306123161232612336123461235612366123761238612396124061241612426124361244612456124661247612486124961250612516125261253612546125561256612576125861259612606126161262612636126461265612666126761268612696127061271612726127361274612756127661277612786127961280612816128261283612846128561286612876128861289612906129161292612936129461295612966129761298612996130061301613026130361304613056130661307613086130961310613116131261313613146131561316613176131861319613206132161322613236132461325613266132761328613296133061331613326133361334613356133661337613386133961340613416134261343613446134561346613476134861349613506135161352613536135461355613566135761358613596136061361613626136361364613656136661367613686136961370613716137261373613746137561376613776137861379613806138161382613836138461385613866138761388613896139061391613926139361394613956139661397613986139961400614016140261403614046140561406614076140861409614106141161412614136141461415614166141761418614196142061421614226142361424614256142661427614286142961430614316143261433614346143561436614376143861439614406144161442614436144461445614466144761448614496145061451614526145361454614556145661457614586145961460614616146261463614646146561466614676146861469614706147161472614736147461475614766147761478614796148061481614826148361484614856148661487614886148961490614916149261493614946149561496614976149861499615006150161502615036150461505615066150761508615096151061511615126151361514615156151661517615186151961520615216152261523615246152561526615276152861529615306153161532615336153461535615366153761538615396154061541615426154361544615456154661547615486154961550615516155261553615546155561556615576155861559615606156161562615636156461565615666156761568615696157061571615726157361574615756157661577615786157961580615816158261583615846158561586615876158861589615906159161592615936159461595615966159761598615996160061601616026160361604616056160661607616086160961610616116161261613616146161561616616176161861619616206162161622616236162461625616266162761628616296163061631616326163361634616356163661637616386163961640616416164261643616446164561646616476164861649616506165161652616536165461655616566165761658616596166061661616626166361664616656166661667616686166961670616716167261673616746167561676616776167861679616806168161682616836168461685616866168761688616896169061691616926169361694616956169661697616986169961700617016170261703617046170561706617076170861709617106171161712617136171461715617166171761718617196172061721617226172361724617256172661727617286172961730617316173261733617346173561736617376173861739617406174161742 |
- "use strict";
- var __create = Object.create;
- var __defProp = Object.defineProperty;
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
- var __getOwnPropNames = Object.getOwnPropertyNames;
- var __getProtoOf = Object.getPrototypeOf;
- var __hasOwnProp = Object.prototype.hasOwnProperty;
- var __commonJS = (cb, mod) => function __require() {
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
- };
- var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
- };
- var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
- };
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
- ));
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
- // node_modules/ms/index.js
- var require_ms = __commonJS({
- "node_modules/ms/index.js"(exports2, module2) {
- var s = 1e3;
- var m = s * 60;
- var h = m * 60;
- var d = h * 24;
- var w = d * 7;
- var y = d * 365.25;
- module2.exports = function(val, options) {
- options = options || {};
- var type = typeof val;
- if (type === "string" && val.length > 0) {
- return parse(val);
- } else if (type === "number" && isFinite(val)) {
- return options.long ? fmtLong(val) : fmtShort(val);
- }
- throw new Error(
- "val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
- );
- };
- function parse(str) {
- str = String(str);
- if (str.length > 100) {
- return;
- }
- var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
- str
- );
- if (!match) {
- return;
- }
- var n = parseFloat(match[1]);
- var type = (match[2] || "ms").toLowerCase();
- switch (type) {
- case "years":
- case "year":
- case "yrs":
- case "yr":
- case "y":
- return n * y;
- case "weeks":
- case "week":
- case "w":
- return n * w;
- case "days":
- case "day":
- case "d":
- return n * d;
- case "hours":
- case "hour":
- case "hrs":
- case "hr":
- case "h":
- return n * h;
- case "minutes":
- case "minute":
- case "mins":
- case "min":
- case "m":
- return n * m;
- case "seconds":
- case "second":
- case "secs":
- case "sec":
- case "s":
- return n * s;
- case "milliseconds":
- case "millisecond":
- case "msecs":
- case "msec":
- case "ms":
- return n;
- default:
- return void 0;
- }
- }
- function fmtShort(ms) {
- var msAbs = Math.abs(ms);
- if (msAbs >= d) {
- return Math.round(ms / d) + "d";
- }
- if (msAbs >= h) {
- return Math.round(ms / h) + "h";
- }
- if (msAbs >= m) {
- return Math.round(ms / m) + "m";
- }
- if (msAbs >= s) {
- return Math.round(ms / s) + "s";
- }
- return ms + "ms";
- }
- function fmtLong(ms) {
- var msAbs = Math.abs(ms);
- if (msAbs >= d) {
- return plural(ms, msAbs, d, "day");
- }
- if (msAbs >= h) {
- return plural(ms, msAbs, h, "hour");
- }
- if (msAbs >= m) {
- return plural(ms, msAbs, m, "minute");
- }
- if (msAbs >= s) {
- return plural(ms, msAbs, s, "second");
- }
- return ms + " ms";
- }
- function plural(ms, msAbs, n, name) {
- var isPlural = msAbs >= n * 1.5;
- return Math.round(ms / n) + " " + name + (isPlural ? "s" : "");
- }
- }
- });
- // node_modules/debug/src/common.js
- var require_common = __commonJS({
- "node_modules/debug/src/common.js"(exports2, module2) {
- function setup(env) {
- createDebug.debug = createDebug;
- createDebug.default = createDebug;
- createDebug.coerce = coerce;
- createDebug.disable = disable;
- createDebug.enable = enable;
- createDebug.enabled = enabled;
- createDebug.humanize = require_ms();
- createDebug.destroy = destroy;
- Object.keys(env).forEach((key) => {
- createDebug[key] = env[key];
- });
- createDebug.names = [];
- createDebug.skips = [];
- createDebug.formatters = {};
- function selectColor(namespace) {
- let hash = 0;
- for (let i = 0; i < namespace.length; i++) {
- hash = (hash << 5) - hash + namespace.charCodeAt(i);
- hash |= 0;
- }
- return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
- }
- createDebug.selectColor = selectColor;
- function createDebug(namespace) {
- let prevTime;
- let enableOverride = null;
- let namespacesCache;
- let enabledCache;
- function debug(...args) {
- if (!debug.enabled) {
- return;
- }
- const self2 = debug;
- const curr = Number(/* @__PURE__ */ new Date());
- const ms = curr - (prevTime || curr);
- self2.diff = ms;
- self2.prev = prevTime;
- self2.curr = curr;
- prevTime = curr;
- args[0] = createDebug.coerce(args[0]);
- if (typeof args[0] !== "string") {
- args.unshift("%O");
- }
- let index = 0;
- args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
- if (match === "%%") {
- return "%";
- }
- index++;
- const formatter = createDebug.formatters[format];
- if (typeof formatter === "function") {
- const val = args[index];
- match = formatter.call(self2, val);
- args.splice(index, 1);
- index--;
- }
- return match;
- });
- createDebug.formatArgs.call(self2, args);
- const logFn = self2.log || createDebug.log;
- logFn.apply(self2, args);
- }
- debug.namespace = namespace;
- debug.useColors = createDebug.useColors();
- debug.color = createDebug.selectColor(namespace);
- debug.extend = extend;
- debug.destroy = createDebug.destroy;
- Object.defineProperty(debug, "enabled", {
- enumerable: true,
- configurable: false,
- get: () => {
- if (enableOverride !== null) {
- return enableOverride;
- }
- if (namespacesCache !== createDebug.namespaces) {
- namespacesCache = createDebug.namespaces;
- enabledCache = createDebug.enabled(namespace);
- }
- return enabledCache;
- },
- set: (v) => {
- enableOverride = v;
- }
- });
- if (typeof createDebug.init === "function") {
- createDebug.init(debug);
- }
- return debug;
- }
- function extend(namespace, delimiter) {
- const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace);
- newDebug.log = this.log;
- return newDebug;
- }
- function enable(namespaces) {
- createDebug.save(namespaces);
- createDebug.namespaces = namespaces;
- createDebug.names = [];
- createDebug.skips = [];
- const split = (typeof namespaces === "string" ? namespaces : "").trim().replace(/\s+/g, ",").split(",").filter(Boolean);
- for (const ns of split) {
- if (ns[0] === "-") {
- createDebug.skips.push(ns.slice(1));
- } else {
- createDebug.names.push(ns);
- }
- }
- }
- function matchesTemplate(search, template) {
- let searchIndex = 0;
- let templateIndex = 0;
- let starIndex = -1;
- let matchIndex = 0;
- while (searchIndex < search.length) {
- if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) {
- if (template[templateIndex] === "*") {
- starIndex = templateIndex;
- matchIndex = searchIndex;
- templateIndex++;
- } else {
- searchIndex++;
- templateIndex++;
- }
- } else if (starIndex !== -1) {
- templateIndex = starIndex + 1;
- matchIndex++;
- searchIndex = matchIndex;
- } else {
- return false;
- }
- }
- while (templateIndex < template.length && template[templateIndex] === "*") {
- templateIndex++;
- }
- return templateIndex === template.length;
- }
- function disable() {
- const namespaces = [
- ...createDebug.names,
- ...createDebug.skips.map((namespace) => "-" + namespace)
- ].join(",");
- createDebug.enable("");
- return namespaces;
- }
- function enabled(name) {
- for (const skip of createDebug.skips) {
- if (matchesTemplate(name, skip)) {
- return false;
- }
- }
- for (const ns of createDebug.names) {
- if (matchesTemplate(name, ns)) {
- return true;
- }
- }
- return false;
- }
- function coerce(val) {
- if (val instanceof Error) {
- return val.stack || val.message;
- }
- return val;
- }
- function destroy() {
- console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
- }
- createDebug.enable(createDebug.load());
- return createDebug;
- }
- module2.exports = setup;
- }
- });
- // node_modules/debug/src/browser.js
- var require_browser = __commonJS({
- "node_modules/debug/src/browser.js"(exports2, module2) {
- exports2.formatArgs = formatArgs;
- exports2.save = save;
- exports2.load = load;
- exports2.useColors = useColors;
- exports2.storage = localstorage();
- exports2.destroy = /* @__PURE__ */ (() => {
- let warned = false;
- return () => {
- if (!warned) {
- warned = true;
- console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
- }
- };
- })();
- exports2.colors = [
- "#0000CC",
- "#0000FF",
- "#0033CC",
- "#0033FF",
- "#0066CC",
- "#0066FF",
- "#0099CC",
- "#0099FF",
- "#00CC00",
- "#00CC33",
- "#00CC66",
- "#00CC99",
- "#00CCCC",
- "#00CCFF",
- "#3300CC",
- "#3300FF",
- "#3333CC",
- "#3333FF",
- "#3366CC",
- "#3366FF",
- "#3399CC",
- "#3399FF",
- "#33CC00",
- "#33CC33",
- "#33CC66",
- "#33CC99",
- "#33CCCC",
- "#33CCFF",
- "#6600CC",
- "#6600FF",
- "#6633CC",
- "#6633FF",
- "#66CC00",
- "#66CC33",
- "#9900CC",
- "#9900FF",
- "#9933CC",
- "#9933FF",
- "#99CC00",
- "#99CC33",
- "#CC0000",
- "#CC0033",
- "#CC0066",
- "#CC0099",
- "#CC00CC",
- "#CC00FF",
- "#CC3300",
- "#CC3333",
- "#CC3366",
- "#CC3399",
- "#CC33CC",
- "#CC33FF",
- "#CC6600",
- "#CC6633",
- "#CC9900",
- "#CC9933",
- "#CCCC00",
- "#CCCC33",
- "#FF0000",
- "#FF0033",
- "#FF0066",
- "#FF0099",
- "#FF00CC",
- "#FF00FF",
- "#FF3300",
- "#FF3333",
- "#FF3366",
- "#FF3399",
- "#FF33CC",
- "#FF33FF",
- "#FF6600",
- "#FF6633",
- "#FF9900",
- "#FF9933",
- "#FFCC00",
- "#FFCC33"
- ];
- function useColors() {
- if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) {
- return true;
- }
- if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
- return false;
- }
- let m;
- return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
- typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
- // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
- typeof navigator !== "undefined" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
- typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
- }
- function formatArgs(args) {
- args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module2.exports.humanize(this.diff);
- if (!this.useColors) {
- return;
- }
- const c = "color: " + this.color;
- args.splice(1, 0, c, "color: inherit");
- let index = 0;
- let lastC = 0;
- args[0].replace(/%[a-zA-Z%]/g, (match) => {
- if (match === "%%") {
- return;
- }
- index++;
- if (match === "%c") {
- lastC = index;
- }
- });
- args.splice(lastC, 0, c);
- }
- exports2.log = console.debug || console.log || (() => {
- });
- function save(namespaces) {
- try {
- if (namespaces) {
- exports2.storage.setItem("debug", namespaces);
- } else {
- exports2.storage.removeItem("debug");
- }
- } catch (error) {
- }
- }
- function load() {
- let r;
- try {
- r = exports2.storage.getItem("debug") || exports2.storage.getItem("DEBUG");
- } catch (error) {
- }
- if (!r && typeof process !== "undefined" && "env" in process) {
- r = process.env.DEBUG;
- }
- return r;
- }
- function localstorage() {
- try {
- return localStorage;
- } catch (error) {
- }
- }
- module2.exports = require_common()(exports2);
- var { formatters } = module2.exports;
- formatters.j = function(v) {
- try {
- return JSON.stringify(v);
- } catch (error) {
- return "[UnexpectedJSONParseError]: " + error.message;
- }
- };
- }
- });
- // node_modules/debug/src/node.js
- var require_node = __commonJS({
- "node_modules/debug/src/node.js"(exports2, module2) {
- var tty = require("tty");
- var util = require("util");
- exports2.init = init;
- exports2.log = log;
- exports2.formatArgs = formatArgs;
- exports2.save = save;
- exports2.load = load;
- exports2.useColors = useColors;
- exports2.destroy = util.deprecate(
- () => {
- },
- "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."
- );
- exports2.colors = [6, 2, 3, 4, 5, 1];
- try {
- const supportsColor = require("supports-color");
- if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {
- exports2.colors = [
- 20,
- 21,
- 26,
- 27,
- 32,
- 33,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 56,
- 57,
- 62,
- 63,
- 68,
- 69,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 92,
- 93,
- 98,
- 99,
- 112,
- 113,
- 128,
- 129,
- 134,
- 135,
- 148,
- 149,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 178,
- 179,
- 184,
- 185,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 214,
- 215,
- 220,
- 221
- ];
- }
- } catch (error) {
- }
- exports2.inspectOpts = Object.keys(process.env).filter((key) => {
- return /^debug_/i.test(key);
- }).reduce((obj, key) => {
- const prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => {
- return k.toUpperCase();
- });
- let val = process.env[key];
- if (/^(yes|on|true|enabled)$/i.test(val)) {
- val = true;
- } else if (/^(no|off|false|disabled)$/i.test(val)) {
- val = false;
- } else if (val === "null") {
- val = null;
- } else {
- val = Number(val);
- }
- obj[prop] = val;
- return obj;
- }, {});
- function useColors() {
- return "colors" in exports2.inspectOpts ? Boolean(exports2.inspectOpts.colors) : tty.isatty(process.stderr.fd);
- }
- function formatArgs(args) {
- const { namespace: name, useColors: useColors2 } = this;
- if (useColors2) {
- const c = this.color;
- const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c);
- const prefix = ` ${colorCode};1m${name} \x1B[0m`;
- args[0] = prefix + args[0].split("\n").join("\n" + prefix);
- args.push(colorCode + "m+" + module2.exports.humanize(this.diff) + "\x1B[0m");
- } else {
- args[0] = getDate() + name + " " + args[0];
- }
- }
- function getDate() {
- if (exports2.inspectOpts.hideDate) {
- return "";
- }
- return (/* @__PURE__ */ new Date()).toISOString() + " ";
- }
- function log(...args) {
- return process.stderr.write(util.formatWithOptions(exports2.inspectOpts, ...args) + "\n");
- }
- function save(namespaces) {
- if (namespaces) {
- process.env.DEBUG = namespaces;
- } else {
- delete process.env.DEBUG;
- }
- }
- function load() {
- return process.env.DEBUG;
- }
- function init(debug) {
- debug.inspectOpts = {};
- const keys = Object.keys(exports2.inspectOpts);
- for (let i = 0; i < keys.length; i++) {
- debug.inspectOpts[keys[i]] = exports2.inspectOpts[keys[i]];
- }
- }
- module2.exports = require_common()(exports2);
- var { formatters } = module2.exports;
- formatters.o = function(v) {
- this.inspectOpts.colors = this.useColors;
- return util.inspect(v, this.inspectOpts).split("\n").map((str) => str.trim()).join(" ");
- };
- formatters.O = function(v) {
- this.inspectOpts.colors = this.useColors;
- return util.inspect(v, this.inspectOpts);
- };
- }
- });
- // node_modules/debug/src/index.js
- var require_src = __commonJS({
- "node_modules/debug/src/index.js"(exports2, module2) {
- if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) {
- module2.exports = require_browser();
- } else {
- module2.exports = require_node();
- }
- }
- });
- // node_modules/depd/index.js
- var require_depd = __commonJS({
- "node_modules/depd/index.js"(exports2, module2) {
- var relative = require("path").relative;
- module2.exports = depd;
- var basePath = process.cwd();
- function containsNamespace(str, namespace) {
- var vals = str.split(/[ ,]+/);
- var ns = String(namespace).toLowerCase();
- for (var i = 0; i < vals.length; i++) {
- var val = vals[i];
- if (val && (val === "*" || val.toLowerCase() === ns)) {
- return true;
- }
- }
- return false;
- }
- function convertDataDescriptorToAccessor(obj, prop, message) {
- var descriptor = Object.getOwnPropertyDescriptor(obj, prop);
- var value = descriptor.value;
- descriptor.get = function getter() {
- return value;
- };
- if (descriptor.writable) {
- descriptor.set = function setter(val) {
- return value = val;
- };
- }
- delete descriptor.value;
- delete descriptor.writable;
- Object.defineProperty(obj, prop, descriptor);
- return descriptor;
- }
- function createArgumentsString(arity) {
- var str = "";
- for (var i = 0; i < arity; i++) {
- str += ", arg" + i;
- }
- return str.substr(2);
- }
- function createStackString(stack) {
- var str = this.name + ": " + this.namespace;
- if (this.message) {
- str += " deprecated " + this.message;
- }
- for (var i = 0; i < stack.length; i++) {
- str += "\n at " + stack[i].toString();
- }
- return str;
- }
- function depd(namespace) {
- if (!namespace) {
- throw new TypeError("argument namespace is required");
- }
- var stack = getStack();
- var site = callSiteLocation(stack[1]);
- var file = site[0];
- function deprecate(message) {
- log.call(deprecate, message);
- }
- deprecate._file = file;
- deprecate._ignored = isignored(namespace);
- deprecate._namespace = namespace;
- deprecate._traced = istraced(namespace);
- deprecate._warned = /* @__PURE__ */ Object.create(null);
- deprecate.function = wrapfunction;
- deprecate.property = wrapproperty;
- return deprecate;
- }
- function eehaslisteners(emitter, type) {
- var count = typeof emitter.listenerCount !== "function" ? emitter.listeners(type).length : emitter.listenerCount(type);
- return count > 0;
- }
- function isignored(namespace) {
- if (process.noDeprecation) {
- return true;
- }
- var str = process.env.NO_DEPRECATION || "";
- return containsNamespace(str, namespace);
- }
- function istraced(namespace) {
- if (process.traceDeprecation) {
- return true;
- }
- var str = process.env.TRACE_DEPRECATION || "";
- return containsNamespace(str, namespace);
- }
- function log(message, site) {
- var haslisteners = eehaslisteners(process, "deprecation");
- if (!haslisteners && this._ignored) {
- return;
- }
- var caller;
- var callFile;
- var callSite;
- var depSite;
- var i = 0;
- var seen = false;
- var stack = getStack();
- var file = this._file;
- if (site) {
- depSite = site;
- callSite = callSiteLocation(stack[1]);
- callSite.name = depSite.name;
- file = callSite[0];
- } else {
- i = 2;
- depSite = callSiteLocation(stack[i]);
- callSite = depSite;
- }
- for (; i < stack.length; i++) {
- caller = callSiteLocation(stack[i]);
- callFile = caller[0];
- if (callFile === file) {
- seen = true;
- } else if (callFile === this._file) {
- file = this._file;
- } else if (seen) {
- break;
- }
- }
- var key = caller ? depSite.join(":") + "__" + caller.join(":") : void 0;
- if (key !== void 0 && key in this._warned) {
- return;
- }
- this._warned[key] = true;
- var msg = message;
- if (!msg) {
- msg = callSite === depSite || !callSite.name ? defaultMessage(depSite) : defaultMessage(callSite);
- }
- if (haslisteners) {
- var err = DeprecationError(this._namespace, msg, stack.slice(i));
- process.emit("deprecation", err);
- return;
- }
- var format = process.stderr.isTTY ? formatColor : formatPlain;
- var output = format.call(this, msg, caller, stack.slice(i));
- process.stderr.write(output + "\n", "utf8");
- }
- function callSiteLocation(callSite) {
- var file = callSite.getFileName() || "<anonymous>";
- var line = callSite.getLineNumber();
- var colm = callSite.getColumnNumber();
- if (callSite.isEval()) {
- file = callSite.getEvalOrigin() + ", " + file;
- }
- var site = [file, line, colm];
- site.callSite = callSite;
- site.name = callSite.getFunctionName();
- return site;
- }
- function defaultMessage(site) {
- var callSite = site.callSite;
- var funcName = site.name;
- if (!funcName) {
- funcName = "<anonymous@" + formatLocation(site) + ">";
- }
- var context = callSite.getThis();
- var typeName = context && callSite.getTypeName();
- if (typeName === "Object") {
- typeName = void 0;
- }
- if (typeName === "Function") {
- typeName = context.name || typeName;
- }
- return typeName && callSite.getMethodName() ? typeName + "." + funcName : funcName;
- }
- function formatPlain(msg, caller, stack) {
- var timestamp = (/* @__PURE__ */ new Date()).toUTCString();
- var formatted = timestamp + " " + this._namespace + " deprecated " + msg;
- if (this._traced) {
- for (var i = 0; i < stack.length; i++) {
- formatted += "\n at " + stack[i].toString();
- }
- return formatted;
- }
- if (caller) {
- formatted += " at " + formatLocation(caller);
- }
- return formatted;
- }
- function formatColor(msg, caller, stack) {
- var formatted = "\x1B[36;1m" + this._namespace + "\x1B[22;39m \x1B[33;1mdeprecated\x1B[22;39m \x1B[0m" + msg + "\x1B[39m";
- if (this._traced) {
- for (var i = 0; i < stack.length; i++) {
- formatted += "\n \x1B[36mat " + stack[i].toString() + "\x1B[39m";
- }
- return formatted;
- }
- if (caller) {
- formatted += " \x1B[36m" + formatLocation(caller) + "\x1B[39m";
- }
- return formatted;
- }
- function formatLocation(callSite) {
- return relative(basePath, callSite[0]) + ":" + callSite[1] + ":" + callSite[2];
- }
- function getStack() {
- var limit = Error.stackTraceLimit;
- var obj = {};
- var prep = Error.prepareStackTrace;
- Error.prepareStackTrace = prepareObjectStackTrace;
- Error.stackTraceLimit = Math.max(10, limit);
- Error.captureStackTrace(obj);
- var stack = obj.stack.slice(1);
- Error.prepareStackTrace = prep;
- Error.stackTraceLimit = limit;
- return stack;
- }
- function prepareObjectStackTrace(obj, stack) {
- return stack;
- }
- function wrapfunction(fn, message) {
- if (typeof fn !== "function") {
- throw new TypeError("argument fn must be a function");
- }
- var args = createArgumentsString(fn.length);
- var stack = getStack();
- var site = callSiteLocation(stack[1]);
- site.name = fn.name;
- var deprecatedfn = new Function(
- "fn",
- "log",
- "deprecate",
- "message",
- "site",
- '"use strict"\nreturn function (' + args + ") {log.call(deprecate, message, site)\nreturn fn.apply(this, arguments)\n}"
- )(fn, log, this, message, site);
- return deprecatedfn;
- }
- function wrapproperty(obj, prop, message) {
- if (!obj || typeof obj !== "object" && typeof obj !== "function") {
- throw new TypeError("argument obj must be object");
- }
- var descriptor = Object.getOwnPropertyDescriptor(obj, prop);
- if (!descriptor) {
- throw new TypeError("must call property on owner object");
- }
- if (!descriptor.configurable) {
- throw new TypeError("property must be configurable");
- }
- var deprecate = this;
- var stack = getStack();
- var site = callSiteLocation(stack[1]);
- site.name = prop;
- if ("value" in descriptor) {
- descriptor = convertDataDescriptorToAccessor(obj, prop, message);
- }
- var get = descriptor.get;
- var set = descriptor.set;
- if (typeof get === "function") {
- descriptor.get = function getter() {
- log.call(deprecate, message, site);
- return get.apply(this, arguments);
- };
- }
- if (typeof set === "function") {
- descriptor.set = function setter() {
- log.call(deprecate, message, site);
- return set.apply(this, arguments);
- };
- }
- Object.defineProperty(obj, prop, descriptor);
- }
- function DeprecationError(namespace, message, stack) {
- var error = new Error();
- var stackString;
- Object.defineProperty(error, "constructor", {
- value: DeprecationError
- });
- Object.defineProperty(error, "message", {
- configurable: true,
- enumerable: false,
- value: message,
- writable: true
- });
- Object.defineProperty(error, "name", {
- enumerable: false,
- configurable: true,
- value: "DeprecationError",
- writable: true
- });
- Object.defineProperty(error, "namespace", {
- configurable: true,
- enumerable: false,
- value: namespace,
- writable: true
- });
- Object.defineProperty(error, "stack", {
- configurable: true,
- enumerable: false,
- get: function() {
- if (stackString !== void 0) {
- return stackString;
- }
- return stackString = createStackString.call(this, stack);
- },
- set: function setter(val) {
- stackString = val;
- }
- });
- return error;
- }
- }
- });
- // node_modules/setprototypeof/index.js
- var require_setprototypeof = __commonJS({
- "node_modules/setprototypeof/index.js"(exports2, module2) {
- "use strict";
- module2.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties);
- function setProtoOf(obj, proto) {
- obj.__proto__ = proto;
- return obj;
- }
- function mixinProperties(obj, proto) {
- for (var prop in proto) {
- if (!Object.prototype.hasOwnProperty.call(obj, prop)) {
- obj[prop] = proto[prop];
- }
- }
- return obj;
- }
- }
- });
- // node_modules/statuses/codes.json
- var require_codes = __commonJS({
- "node_modules/statuses/codes.json"(exports2, module2) {
- module2.exports = {
- "100": "Continue",
- "101": "Switching Protocols",
- "102": "Processing",
- "103": "Early Hints",
- "200": "OK",
- "201": "Created",
- "202": "Accepted",
- "203": "Non-Authoritative Information",
- "204": "No Content",
- "205": "Reset Content",
- "206": "Partial Content",
- "207": "Multi-Status",
- "208": "Already Reported",
- "226": "IM Used",
- "300": "Multiple Choices",
- "301": "Moved Permanently",
- "302": "Found",
- "303": "See Other",
- "304": "Not Modified",
- "305": "Use Proxy",
- "307": "Temporary Redirect",
- "308": "Permanent Redirect",
- "400": "Bad Request",
- "401": "Unauthorized",
- "402": "Payment Required",
- "403": "Forbidden",
- "404": "Not Found",
- "405": "Method Not Allowed",
- "406": "Not Acceptable",
- "407": "Proxy Authentication Required",
- "408": "Request Timeout",
- "409": "Conflict",
- "410": "Gone",
- "411": "Length Required",
- "412": "Precondition Failed",
- "413": "Payload Too Large",
- "414": "URI Too Long",
- "415": "Unsupported Media Type",
- "416": "Range Not Satisfiable",
- "417": "Expectation Failed",
- "418": "I'm a Teapot",
- "421": "Misdirected Request",
- "422": "Unprocessable Entity",
- "423": "Locked",
- "424": "Failed Dependency",
- "425": "Too Early",
- "426": "Upgrade Required",
- "428": "Precondition Required",
- "429": "Too Many Requests",
- "431": "Request Header Fields Too Large",
- "451": "Unavailable For Legal Reasons",
- "500": "Internal Server Error",
- "501": "Not Implemented",
- "502": "Bad Gateway",
- "503": "Service Unavailable",
- "504": "Gateway Timeout",
- "505": "HTTP Version Not Supported",
- "506": "Variant Also Negotiates",
- "507": "Insufficient Storage",
- "508": "Loop Detected",
- "509": "Bandwidth Limit Exceeded",
- "510": "Not Extended",
- "511": "Network Authentication Required"
- };
- }
- });
- // node_modules/statuses/index.js
- var require_statuses = __commonJS({
- "node_modules/statuses/index.js"(exports2, module2) {
- "use strict";
- var codes = require_codes();
- module2.exports = status;
- status.message = codes;
- status.code = createMessageToStatusCodeMap(codes);
- status.codes = createStatusCodeList(codes);
- status.redirect = {
- 300: true,
- 301: true,
- 302: true,
- 303: true,
- 305: true,
- 307: true,
- 308: true
- };
- status.empty = {
- 204: true,
- 205: true,
- 304: true
- };
- status.retry = {
- 502: true,
- 503: true,
- 504: true
- };
- function createMessageToStatusCodeMap(codes2) {
- var map = {};
- Object.keys(codes2).forEach(function forEachCode(code) {
- var message = codes2[code];
- var status2 = Number(code);
- map[message.toLowerCase()] = status2;
- });
- return map;
- }
- function createStatusCodeList(codes2) {
- return Object.keys(codes2).map(function mapCode(code) {
- return Number(code);
- });
- }
- function getStatusCode(message) {
- var msg = message.toLowerCase();
- if (!Object.prototype.hasOwnProperty.call(status.code, msg)) {
- throw new Error('invalid status message: "' + message + '"');
- }
- return status.code[msg];
- }
- function getStatusMessage(code) {
- if (!Object.prototype.hasOwnProperty.call(status.message, code)) {
- throw new Error("invalid status code: " + code);
- }
- return status.message[code];
- }
- function status(code) {
- if (typeof code === "number") {
- return getStatusMessage(code);
- }
- if (typeof code !== "string") {
- throw new TypeError("code must be a number or string");
- }
- var n = parseInt(code, 10);
- if (!isNaN(n)) {
- return getStatusMessage(n);
- }
- return getStatusCode(code);
- }
- }
- });
- // node_modules/inherits/inherits_browser.js
- var require_inherits_browser = __commonJS({
- "node_modules/inherits/inherits_browser.js"(exports2, module2) {
- if (typeof Object.create === "function") {
- module2.exports = function inherits(ctor, superCtor) {
- if (superCtor) {
- ctor.super_ = superCtor;
- ctor.prototype = Object.create(superCtor.prototype, {
- constructor: {
- value: ctor,
- enumerable: false,
- writable: true,
- configurable: true
- }
- });
- }
- };
- } else {
- module2.exports = function inherits(ctor, superCtor) {
- if (superCtor) {
- ctor.super_ = superCtor;
- var TempCtor = function() {
- };
- TempCtor.prototype = superCtor.prototype;
- ctor.prototype = new TempCtor();
- ctor.prototype.constructor = ctor;
- }
- };
- }
- }
- });
- // node_modules/inherits/inherits.js
- var require_inherits = __commonJS({
- "node_modules/inherits/inherits.js"(exports2, module2) {
- try {
- util = require("util");
- if (typeof util.inherits !== "function") throw "";
- module2.exports = util.inherits;
- } catch (e) {
- module2.exports = require_inherits_browser();
- }
- var util;
- }
- });
- // node_modules/toidentifier/index.js
- var require_toidentifier = __commonJS({
- "node_modules/toidentifier/index.js"(exports2, module2) {
- "use strict";
- module2.exports = toIdentifier;
- function toIdentifier(str) {
- return str.split(" ").map(function(token) {
- return token.slice(0, 1).toUpperCase() + token.slice(1);
- }).join("").replace(/[^ _0-9a-z]/gi, "");
- }
- }
- });
- // node_modules/http-errors/index.js
- var require_http_errors = __commonJS({
- "node_modules/http-errors/index.js"(exports2, module2) {
- "use strict";
- var deprecate = require_depd()("http-errors");
- var setPrototypeOf = require_setprototypeof();
- var statuses = require_statuses();
- var inherits = require_inherits();
- var toIdentifier = require_toidentifier();
- module2.exports = createError;
- module2.exports.HttpError = createHttpErrorConstructor();
- module2.exports.isHttpError = createIsHttpErrorFunction(module2.exports.HttpError);
- populateConstructorExports(module2.exports, statuses.codes, module2.exports.HttpError);
- function codeClass(status) {
- return Number(String(status).charAt(0) + "00");
- }
- function createError() {
- var err;
- var msg;
- var status = 500;
- var props = {};
- for (var i = 0; i < arguments.length; i++) {
- var arg = arguments[i];
- var type = typeof arg;
- if (type === "object" && arg instanceof Error) {
- err = arg;
- status = err.status || err.statusCode || status;
- } else if (type === "number" && i === 0) {
- status = arg;
- } else if (type === "string") {
- msg = arg;
- } else if (type === "object") {
- props = arg;
- } else {
- throw new TypeError("argument #" + (i + 1) + " unsupported type " + type);
- }
- }
- if (typeof status === "number" && (status < 400 || status >= 600)) {
- deprecate("non-error status code; use only 4xx or 5xx status codes");
- }
- if (typeof status !== "number" || !statuses.message[status] && (status < 400 || status >= 600)) {
- status = 500;
- }
- var HttpError = createError[status] || createError[codeClass(status)];
- if (!err) {
- err = HttpError ? new HttpError(msg) : new Error(msg || statuses.message[status]);
- Error.captureStackTrace(err, createError);
- }
- if (!HttpError || !(err instanceof HttpError) || err.status !== status) {
- err.expose = status < 500;
- err.status = err.statusCode = status;
- }
- for (var key in props) {
- if (key !== "status" && key !== "statusCode") {
- err[key] = props[key];
- }
- }
- return err;
- }
- function createHttpErrorConstructor() {
- function HttpError() {
- throw new TypeError("cannot construct abstract class");
- }
- inherits(HttpError, Error);
- return HttpError;
- }
- function createClientErrorConstructor(HttpError, name, code) {
- var className = toClassName(name);
- function ClientError(message) {
- var msg = message != null ? message : statuses.message[code];
- var err = new Error(msg);
- Error.captureStackTrace(err, ClientError);
- setPrototypeOf(err, ClientError.prototype);
- Object.defineProperty(err, "message", {
- enumerable: true,
- configurable: true,
- value: msg,
- writable: true
- });
- Object.defineProperty(err, "name", {
- enumerable: false,
- configurable: true,
- value: className,
- writable: true
- });
- return err;
- }
- inherits(ClientError, HttpError);
- nameFunc(ClientError, className);
- ClientError.prototype.status = code;
- ClientError.prototype.statusCode = code;
- ClientError.prototype.expose = true;
- return ClientError;
- }
- function createIsHttpErrorFunction(HttpError) {
- return function isHttpError(val) {
- if (!val || typeof val !== "object") {
- return false;
- }
- if (val instanceof HttpError) {
- return true;
- }
- return val instanceof Error && typeof val.expose === "boolean" && typeof val.statusCode === "number" && val.status === val.statusCode;
- };
- }
- function createServerErrorConstructor(HttpError, name, code) {
- var className = toClassName(name);
- function ServerError(message) {
- var msg = message != null ? message : statuses.message[code];
- var err = new Error(msg);
- Error.captureStackTrace(err, ServerError);
- setPrototypeOf(err, ServerError.prototype);
- Object.defineProperty(err, "message", {
- enumerable: true,
- configurable: true,
- value: msg,
- writable: true
- });
- Object.defineProperty(err, "name", {
- enumerable: false,
- configurable: true,
- value: className,
- writable: true
- });
- return err;
- }
- inherits(ServerError, HttpError);
- nameFunc(ServerError, className);
- ServerError.prototype.status = code;
- ServerError.prototype.statusCode = code;
- ServerError.prototype.expose = false;
- return ServerError;
- }
- function nameFunc(func, name) {
- var desc = Object.getOwnPropertyDescriptor(func, "name");
- if (desc && desc.configurable) {
- desc.value = name;
- Object.defineProperty(func, "name", desc);
- }
- }
- function populateConstructorExports(exports3, codes, HttpError) {
- codes.forEach(function forEachCode(code) {
- var CodeError;
- var name = toIdentifier(statuses.message[code]);
- switch (codeClass(code)) {
- case 400:
- CodeError = createClientErrorConstructor(HttpError, name, code);
- break;
- case 500:
- CodeError = createServerErrorConstructor(HttpError, name, code);
- break;
- }
- if (CodeError) {
- exports3[code] = CodeError;
- exports3[name] = CodeError;
- }
- });
- }
- function toClassName(name) {
- return name.slice(-5) === "Error" ? name : name + "Error";
- }
- }
- });
- // node_modules/bytes/index.js
- var require_bytes = __commonJS({
- "node_modules/bytes/index.js"(exports2, module2) {
- "use strict";
- module2.exports = bytes;
- module2.exports.format = format;
- module2.exports.parse = parse;
- var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g;
- var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/;
- var map = {
- b: 1,
- kb: 1 << 10,
- mb: 1 << 20,
- gb: 1 << 30,
- tb: Math.pow(1024, 4),
- pb: Math.pow(1024, 5)
- };
- var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;
- function bytes(value, options) {
- if (typeof value === "string") {
- return parse(value);
- }
- if (typeof value === "number") {
- return format(value, options);
- }
- return null;
- }
- function format(value, options) {
- if (!Number.isFinite(value)) {
- return null;
- }
- var mag = Math.abs(value);
- var thousandsSeparator = options && options.thousandsSeparator || "";
- var unitSeparator = options && options.unitSeparator || "";
- var decimalPlaces = options && options.decimalPlaces !== void 0 ? options.decimalPlaces : 2;
- var fixedDecimals = Boolean(options && options.fixedDecimals);
- var unit = options && options.unit || "";
- if (!unit || !map[unit.toLowerCase()]) {
- if (mag >= map.pb) {
- unit = "PB";
- } else if (mag >= map.tb) {
- unit = "TB";
- } else if (mag >= map.gb) {
- unit = "GB";
- } else if (mag >= map.mb) {
- unit = "MB";
- } else if (mag >= map.kb) {
- unit = "KB";
- } else {
- unit = "B";
- }
- }
- var val = value / map[unit.toLowerCase()];
- var str = val.toFixed(decimalPlaces);
- if (!fixedDecimals) {
- str = str.replace(formatDecimalsRegExp, "$1");
- }
- if (thousandsSeparator) {
- str = str.split(".").map(function(s, i) {
- return i === 0 ? s.replace(formatThousandsRegExp, thousandsSeparator) : s;
- }).join(".");
- }
- return str + unitSeparator + unit;
- }
- function parse(val) {
- if (typeof val === "number" && !isNaN(val)) {
- return val;
- }
- if (typeof val !== "string") {
- return null;
- }
- var results = parseRegExp.exec(val);
- var floatValue;
- var unit = "b";
- if (!results) {
- floatValue = parseInt(val, 10);
- unit = "b";
- } else {
- floatValue = parseFloat(results[1]);
- unit = results[4].toLowerCase();
- }
- if (isNaN(floatValue)) {
- return null;
- }
- return Math.floor(map[unit] * floatValue);
- }
- }
- });
- // node_modules/safer-buffer/safer.js
- var require_safer = __commonJS({
- "node_modules/safer-buffer/safer.js"(exports2, module2) {
- "use strict";
- var buffer = require("buffer");
- var Buffer2 = buffer.Buffer;
- var safer = {};
- var key;
- for (key in buffer) {
- if (!buffer.hasOwnProperty(key)) continue;
- if (key === "SlowBuffer" || key === "Buffer") continue;
- safer[key] = buffer[key];
- }
- var Safer = safer.Buffer = {};
- for (key in Buffer2) {
- if (!Buffer2.hasOwnProperty(key)) continue;
- if (key === "allocUnsafe" || key === "allocUnsafeSlow") continue;
- Safer[key] = Buffer2[key];
- }
- safer.Buffer.prototype = Buffer2.prototype;
- if (!Safer.from || Safer.from === Uint8Array.from) {
- Safer.from = function(value, encodingOrOffset, length) {
- if (typeof value === "number") {
- throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value);
- }
- if (value && typeof value.length === "undefined") {
- throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);
- }
- return Buffer2(value, encodingOrOffset, length);
- };
- }
- if (!Safer.alloc) {
- Safer.alloc = function(size, fill, encoding) {
- if (typeof size !== "number") {
- throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size);
- }
- if (size < 0 || size >= 2 * (1 << 30)) {
- throw new RangeError('The value "' + size + '" is invalid for option "size"');
- }
- var buf = Buffer2(size);
- if (!fill || fill.length === 0) {
- buf.fill(0);
- } else if (typeof encoding === "string") {
- buf.fill(fill, encoding);
- } else {
- buf.fill(fill);
- }
- return buf;
- };
- }
- if (!safer.kStringMaxLength) {
- try {
- safer.kStringMaxLength = process.binding("buffer").kStringMaxLength;
- } catch (e) {
- }
- }
- if (!safer.constants) {
- safer.constants = {
- MAX_LENGTH: safer.kMaxLength
- };
- if (safer.kStringMaxLength) {
- safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength;
- }
- }
- module2.exports = safer;
- }
- });
- // node_modules/iconv-lite/lib/bom-handling.js
- var require_bom_handling = __commonJS({
- "node_modules/iconv-lite/lib/bom-handling.js"(exports2) {
- "use strict";
- var BOMChar = "\uFEFF";
- exports2.PrependBOM = PrependBOMWrapper;
- function PrependBOMWrapper(encoder, options) {
- this.encoder = encoder;
- this.addBOM = true;
- }
- PrependBOMWrapper.prototype.write = function(str) {
- if (this.addBOM) {
- str = BOMChar + str;
- this.addBOM = false;
- }
- return this.encoder.write(str);
- };
- PrependBOMWrapper.prototype.end = function() {
- return this.encoder.end();
- };
- exports2.StripBOM = StripBOMWrapper;
- function StripBOMWrapper(decoder, options) {
- this.decoder = decoder;
- this.pass = false;
- this.options = options || {};
- }
- StripBOMWrapper.prototype.write = function(buf) {
- var res = this.decoder.write(buf);
- if (this.pass || !res) {
- return res;
- }
- if (res[0] === BOMChar) {
- res = res.slice(1);
- if (typeof this.options.stripBOM === "function") {
- this.options.stripBOM();
- }
- }
- this.pass = true;
- return res;
- };
- StripBOMWrapper.prototype.end = function() {
- return this.decoder.end();
- };
- }
- });
- // node_modules/iconv-lite/lib/helpers/merge-exports.js
- var require_merge_exports = __commonJS({
- "node_modules/iconv-lite/lib/helpers/merge-exports.js"(exports2, module2) {
- "use strict";
- var hasOwn = typeof Object.hasOwn === "undefined" ? Function.call.bind(Object.prototype.hasOwnProperty) : Object.hasOwn;
- function mergeModules(target, module3) {
- for (var key in module3) {
- if (hasOwn(module3, key)) {
- target[key] = module3[key];
- }
- }
- }
- module2.exports = mergeModules;
- }
- });
- // node_modules/iconv-lite/encodings/internal.js
- var require_internal = __commonJS({
- "node_modules/iconv-lite/encodings/internal.js"(exports2, module2) {
- "use strict";
- var Buffer2 = require_safer().Buffer;
- module2.exports = {
- // Encodings
- utf8: { type: "_internal", bomAware: true },
- cesu8: { type: "_internal", bomAware: true },
- unicode11utf8: "utf8",
- ucs2: { type: "_internal", bomAware: true },
- utf16le: "ucs2",
- binary: { type: "_internal" },
- base64: { type: "_internal" },
- hex: { type: "_internal" },
- // Codec.
- _internal: InternalCodec
- };
- function InternalCodec(codecOptions, iconv) {
- this.enc = codecOptions.encodingName;
- this.bomAware = codecOptions.bomAware;
- if (this.enc === "base64") {
- this.encoder = InternalEncoderBase64;
- } else if (this.enc === "utf8") {
- this.encoder = InternalEncoderUtf8;
- } else if (this.enc === "cesu8") {
- this.enc = "utf8";
- this.encoder = InternalEncoderCesu8;
- if (Buffer2.from("eda0bdedb2a9", "hex").toString() !== "\u{1F4A9}") {
- this.decoder = InternalDecoderCesu8;
- this.defaultCharUnicode = iconv.defaultCharUnicode;
- }
- }
- }
- InternalCodec.prototype.encoder = InternalEncoder;
- InternalCodec.prototype.decoder = InternalDecoder;
- var StringDecoder = require("string_decoder").StringDecoder;
- function InternalDecoder(options, codec) {
- this.decoder = new StringDecoder(codec.enc);
- }
- InternalDecoder.prototype.write = function(buf) {
- if (!Buffer2.isBuffer(buf)) {
- buf = Buffer2.from(buf);
- }
- return this.decoder.write(buf);
- };
- InternalDecoder.prototype.end = function() {
- return this.decoder.end();
- };
- function InternalEncoder(options, codec) {
- this.enc = codec.enc;
- }
- InternalEncoder.prototype.write = function(str) {
- return Buffer2.from(str, this.enc);
- };
- InternalEncoder.prototype.end = function() {
- };
- function InternalEncoderBase64(options, codec) {
- this.prevStr = "";
- }
- InternalEncoderBase64.prototype.write = function(str) {
- str = this.prevStr + str;
- var completeQuads = str.length - str.length % 4;
- this.prevStr = str.slice(completeQuads);
- str = str.slice(0, completeQuads);
- return Buffer2.from(str, "base64");
- };
- InternalEncoderBase64.prototype.end = function() {
- return Buffer2.from(this.prevStr, "base64");
- };
- function InternalEncoderCesu8(options, codec) {
- }
- InternalEncoderCesu8.prototype.write = function(str) {
- var buf = Buffer2.alloc(str.length * 3);
- var bufIdx = 0;
- for (var i = 0; i < str.length; i++) {
- var charCode = str.charCodeAt(i);
- if (charCode < 128) {
- buf[bufIdx++] = charCode;
- } else if (charCode < 2048) {
- buf[bufIdx++] = 192 + (charCode >>> 6);
- buf[bufIdx++] = 128 + (charCode & 63);
- } else {
- buf[bufIdx++] = 224 + (charCode >>> 12);
- buf[bufIdx++] = 128 + (charCode >>> 6 & 63);
- buf[bufIdx++] = 128 + (charCode & 63);
- }
- }
- return buf.slice(0, bufIdx);
- };
- InternalEncoderCesu8.prototype.end = function() {
- };
- function InternalDecoderCesu8(options, codec) {
- this.acc = 0;
- this.contBytes = 0;
- this.accBytes = 0;
- this.defaultCharUnicode = codec.defaultCharUnicode;
- }
- InternalDecoderCesu8.prototype.write = function(buf) {
- var acc = this.acc;
- var contBytes = this.contBytes;
- var accBytes = this.accBytes;
- var res = "";
- for (var i = 0; i < buf.length; i++) {
- var curByte = buf[i];
- if ((curByte & 192) !== 128) {
- if (contBytes > 0) {
- res += this.defaultCharUnicode;
- contBytes = 0;
- }
- if (curByte < 128) {
- res += String.fromCharCode(curByte);
- } else if (curByte < 224) {
- acc = curByte & 31;
- contBytes = 1;
- accBytes = 1;
- } else if (curByte < 240) {
- acc = curByte & 15;
- contBytes = 2;
- accBytes = 1;
- } else {
- res += this.defaultCharUnicode;
- }
- } else {
- if (contBytes > 0) {
- acc = acc << 6 | curByte & 63;
- contBytes--;
- accBytes++;
- if (contBytes === 0) {
- if (accBytes === 2 && acc < 128 && acc > 0) {
- res += this.defaultCharUnicode;
- } else if (accBytes === 3 && acc < 2048) {
- res += this.defaultCharUnicode;
- } else {
- res += String.fromCharCode(acc);
- }
- }
- } else {
- res += this.defaultCharUnicode;
- }
- }
- }
- this.acc = acc;
- this.contBytes = contBytes;
- this.accBytes = accBytes;
- return res;
- };
- InternalDecoderCesu8.prototype.end = function() {
- var res = 0;
- if (this.contBytes > 0) {
- res += this.defaultCharUnicode;
- }
- return res;
- };
- function InternalEncoderUtf8(options, codec) {
- this.highSurrogate = "";
- }
- InternalEncoderUtf8.prototype.write = function(str) {
- if (this.highSurrogate) {
- str = this.highSurrogate + str;
- this.highSurrogate = "";
- }
- if (str.length > 0) {
- var charCode = str.charCodeAt(str.length - 1);
- if (charCode >= 55296 && charCode < 56320) {
- this.highSurrogate = str[str.length - 1];
- str = str.slice(0, str.length - 1);
- }
- }
- return Buffer2.from(str, this.enc);
- };
- InternalEncoderUtf8.prototype.end = function() {
- if (this.highSurrogate) {
- var str = this.highSurrogate;
- this.highSurrogate = "";
- return Buffer2.from(str, this.enc);
- }
- };
- }
- });
- // node_modules/iconv-lite/encodings/utf32.js
- var require_utf32 = __commonJS({
- "node_modules/iconv-lite/encodings/utf32.js"(exports2) {
- "use strict";
- var Buffer2 = require_safer().Buffer;
- exports2._utf32 = Utf32Codec;
- function Utf32Codec(codecOptions, iconv) {
- this.iconv = iconv;
- this.bomAware = true;
- this.isLE = codecOptions.isLE;
- }
- exports2.utf32le = { type: "_utf32", isLE: true };
- exports2.utf32be = { type: "_utf32", isLE: false };
- exports2.ucs4le = "utf32le";
- exports2.ucs4be = "utf32be";
- Utf32Codec.prototype.encoder = Utf32Encoder;
- Utf32Codec.prototype.decoder = Utf32Decoder;
- function Utf32Encoder(options, codec) {
- this.isLE = codec.isLE;
- this.highSurrogate = 0;
- }
- Utf32Encoder.prototype.write = function(str) {
- var src = Buffer2.from(str, "ucs2");
- var dst = Buffer2.alloc(src.length * 2);
- var write32 = this.isLE ? dst.writeUInt32LE : dst.writeUInt32BE;
- var offset = 0;
- for (var i = 0; i < src.length; i += 2) {
- var code = src.readUInt16LE(i);
- var isHighSurrogate = code >= 55296 && code < 56320;
- var isLowSurrogate = code >= 56320 && code < 57344;
- if (this.highSurrogate) {
- if (isHighSurrogate || !isLowSurrogate) {
- write32.call(dst, this.highSurrogate, offset);
- offset += 4;
- } else {
- var codepoint = (this.highSurrogate - 55296 << 10 | code - 56320) + 65536;
- write32.call(dst, codepoint, offset);
- offset += 4;
- this.highSurrogate = 0;
- continue;
- }
- }
- if (isHighSurrogate) {
- this.highSurrogate = code;
- } else {
- write32.call(dst, code, offset);
- offset += 4;
- this.highSurrogate = 0;
- }
- }
- if (offset < dst.length) {
- dst = dst.slice(0, offset);
- }
- return dst;
- };
- Utf32Encoder.prototype.end = function() {
- if (!this.highSurrogate) {
- return;
- }
- var buf = Buffer2.alloc(4);
- if (this.isLE) {
- buf.writeUInt32LE(this.highSurrogate, 0);
- } else {
- buf.writeUInt32BE(this.highSurrogate, 0);
- }
- this.highSurrogate = 0;
- return buf;
- };
- function Utf32Decoder(options, codec) {
- this.isLE = codec.isLE;
- this.badChar = codec.iconv.defaultCharUnicode.charCodeAt(0);
- this.overflow = [];
- }
- Utf32Decoder.prototype.write = function(src) {
- if (src.length === 0) {
- return "";
- }
- var i = 0;
- var codepoint = 0;
- var dst = Buffer2.alloc(src.length + 4);
- var offset = 0;
- var isLE = this.isLE;
- var overflow = this.overflow;
- var badChar = this.badChar;
- if (overflow.length > 0) {
- for (; i < src.length && overflow.length < 4; i++) {
- overflow.push(src[i]);
- }
- if (overflow.length === 4) {
- if (isLE) {
- codepoint = overflow[i] | overflow[i + 1] << 8 | overflow[i + 2] << 16 | overflow[i + 3] << 24;
- } else {
- codepoint = overflow[i + 3] | overflow[i + 2] << 8 | overflow[i + 1] << 16 | overflow[i] << 24;
- }
- overflow.length = 0;
- offset = _writeCodepoint(dst, offset, codepoint, badChar);
- }
- }
- for (; i < src.length - 3; i += 4) {
- if (isLE) {
- codepoint = src[i] | src[i + 1] << 8 | src[i + 2] << 16 | src[i + 3] << 24;
- } else {
- codepoint = src[i + 3] | src[i + 2] << 8 | src[i + 1] << 16 | src[i] << 24;
- }
- offset = _writeCodepoint(dst, offset, codepoint, badChar);
- }
- for (; i < src.length; i++) {
- overflow.push(src[i]);
- }
- return dst.slice(0, offset).toString("ucs2");
- };
- function _writeCodepoint(dst, offset, codepoint, badChar) {
- if (codepoint < 0 || codepoint > 1114111) {
- codepoint = badChar;
- }
- if (codepoint >= 65536) {
- codepoint -= 65536;
- var high = 55296 | codepoint >> 10;
- dst[offset++] = high & 255;
- dst[offset++] = high >> 8;
- var codepoint = 56320 | codepoint & 1023;
- }
- dst[offset++] = codepoint & 255;
- dst[offset++] = codepoint >> 8;
- return offset;
- }
- Utf32Decoder.prototype.end = function() {
- this.overflow.length = 0;
- };
- exports2.utf32 = Utf32AutoCodec;
- exports2.ucs4 = "utf32";
- function Utf32AutoCodec(options, iconv) {
- this.iconv = iconv;
- }
- Utf32AutoCodec.prototype.encoder = Utf32AutoEncoder;
- Utf32AutoCodec.prototype.decoder = Utf32AutoDecoder;
- function Utf32AutoEncoder(options, codec) {
- options = options || {};
- if (options.addBOM === void 0) {
- options.addBOM = true;
- }
- this.encoder = codec.iconv.getEncoder(options.defaultEncoding || "utf-32le", options);
- }
- Utf32AutoEncoder.prototype.write = function(str) {
- return this.encoder.write(str);
- };
- Utf32AutoEncoder.prototype.end = function() {
- return this.encoder.end();
- };
- function Utf32AutoDecoder(options, codec) {
- this.decoder = null;
- this.initialBufs = [];
- this.initialBufsLen = 0;
- this.options = options || {};
- this.iconv = codec.iconv;
- }
- Utf32AutoDecoder.prototype.write = function(buf) {
- if (!this.decoder) {
- this.initialBufs.push(buf);
- this.initialBufsLen += buf.length;
- if (this.initialBufsLen < 32) {
- return "";
- }
- var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
- this.decoder = this.iconv.getDecoder(encoding, this.options);
- var resStr = "";
- for (var i = 0; i < this.initialBufs.length; i++) {
- resStr += this.decoder.write(this.initialBufs[i]);
- }
- this.initialBufs.length = this.initialBufsLen = 0;
- return resStr;
- }
- return this.decoder.write(buf);
- };
- Utf32AutoDecoder.prototype.end = function() {
- if (!this.decoder) {
- var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
- this.decoder = this.iconv.getDecoder(encoding, this.options);
- var resStr = "";
- for (var i = 0; i < this.initialBufs.length; i++) {
- resStr += this.decoder.write(this.initialBufs[i]);
- }
- var trail = this.decoder.end();
- if (trail) {
- resStr += trail;
- }
- this.initialBufs.length = this.initialBufsLen = 0;
- return resStr;
- }
- return this.decoder.end();
- };
- function detectEncoding(bufs, defaultEncoding) {
- var b = [];
- var charsProcessed = 0;
- var invalidLE = 0;
- var invalidBE = 0;
- var bmpCharsLE = 0;
- var bmpCharsBE = 0;
- outerLoop:
- for (var i = 0; i < bufs.length; i++) {
- var buf = bufs[i];
- for (var j = 0; j < buf.length; j++) {
- b.push(buf[j]);
- if (b.length === 4) {
- if (charsProcessed === 0) {
- if (b[0] === 255 && b[1] === 254 && b[2] === 0 && b[3] === 0) {
- return "utf-32le";
- }
- if (b[0] === 0 && b[1] === 0 && b[2] === 254 && b[3] === 255) {
- return "utf-32be";
- }
- }
- if (b[0] !== 0 || b[1] > 16) invalidBE++;
- if (b[3] !== 0 || b[2] > 16) invalidLE++;
- if (b[0] === 0 && b[1] === 0 && (b[2] !== 0 || b[3] !== 0)) bmpCharsBE++;
- if ((b[0] !== 0 || b[1] !== 0) && b[2] === 0 && b[3] === 0) bmpCharsLE++;
- b.length = 0;
- charsProcessed++;
- if (charsProcessed >= 100) {
- break outerLoop;
- }
- }
- }
- }
- if (bmpCharsBE - invalidBE > bmpCharsLE - invalidLE) return "utf-32be";
- if (bmpCharsBE - invalidBE < bmpCharsLE - invalidLE) return "utf-32le";
- return defaultEncoding || "utf-32le";
- }
- }
- });
- // node_modules/iconv-lite/encodings/utf16.js
- var require_utf16 = __commonJS({
- "node_modules/iconv-lite/encodings/utf16.js"(exports2) {
- "use strict";
- var Buffer2 = require_safer().Buffer;
- exports2.utf16be = Utf16BECodec;
- function Utf16BECodec() {
- }
- Utf16BECodec.prototype.encoder = Utf16BEEncoder;
- Utf16BECodec.prototype.decoder = Utf16BEDecoder;
- Utf16BECodec.prototype.bomAware = true;
- function Utf16BEEncoder() {
- }
- Utf16BEEncoder.prototype.write = function(str) {
- var buf = Buffer2.from(str, "ucs2");
- for (var i = 0; i < buf.length; i += 2) {
- var tmp = buf[i];
- buf[i] = buf[i + 1];
- buf[i + 1] = tmp;
- }
- return buf;
- };
- Utf16BEEncoder.prototype.end = function() {
- };
- function Utf16BEDecoder() {
- this.overflowByte = -1;
- }
- Utf16BEDecoder.prototype.write = function(buf) {
- if (buf.length == 0) {
- return "";
- }
- var buf2 = Buffer2.alloc(buf.length + 1);
- var i = 0;
- var j = 0;
- if (this.overflowByte !== -1) {
- buf2[0] = buf[0];
- buf2[1] = this.overflowByte;
- i = 1;
- j = 2;
- }
- for (; i < buf.length - 1; i += 2, j += 2) {
- buf2[j] = buf[i + 1];
- buf2[j + 1] = buf[i];
- }
- this.overflowByte = i == buf.length - 1 ? buf[buf.length - 1] : -1;
- return buf2.slice(0, j).toString("ucs2");
- };
- Utf16BEDecoder.prototype.end = function() {
- this.overflowByte = -1;
- };
- exports2.utf16 = Utf16Codec;
- function Utf16Codec(codecOptions, iconv) {
- this.iconv = iconv;
- }
- Utf16Codec.prototype.encoder = Utf16Encoder;
- Utf16Codec.prototype.decoder = Utf16Decoder;
- function Utf16Encoder(options, codec) {
- options = options || {};
- if (options.addBOM === void 0) {
- options.addBOM = true;
- }
- this.encoder = codec.iconv.getEncoder("utf-16le", options);
- }
- Utf16Encoder.prototype.write = function(str) {
- return this.encoder.write(str);
- };
- Utf16Encoder.prototype.end = function() {
- return this.encoder.end();
- };
- function Utf16Decoder(options, codec) {
- this.decoder = null;
- this.initialBufs = [];
- this.initialBufsLen = 0;
- this.options = options || {};
- this.iconv = codec.iconv;
- }
- Utf16Decoder.prototype.write = function(buf) {
- if (!this.decoder) {
- this.initialBufs.push(buf);
- this.initialBufsLen += buf.length;
- if (this.initialBufsLen < 16) {
- return "";
- }
- var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
- this.decoder = this.iconv.getDecoder(encoding, this.options);
- var resStr = "";
- for (var i = 0; i < this.initialBufs.length; i++) {
- resStr += this.decoder.write(this.initialBufs[i]);
- }
- this.initialBufs.length = this.initialBufsLen = 0;
- return resStr;
- }
- return this.decoder.write(buf);
- };
- Utf16Decoder.prototype.end = function() {
- if (!this.decoder) {
- var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
- this.decoder = this.iconv.getDecoder(encoding, this.options);
- var resStr = "";
- for (var i = 0; i < this.initialBufs.length; i++) {
- resStr += this.decoder.write(this.initialBufs[i]);
- }
- var trail = this.decoder.end();
- if (trail) {
- resStr += trail;
- }
- this.initialBufs.length = this.initialBufsLen = 0;
- return resStr;
- }
- return this.decoder.end();
- };
- function detectEncoding(bufs, defaultEncoding) {
- var b = [];
- var charsProcessed = 0;
- var asciiCharsLE = 0;
- var asciiCharsBE = 0;
- outerLoop:
- for (var i = 0; i < bufs.length; i++) {
- var buf = bufs[i];
- for (var j = 0; j < buf.length; j++) {
- b.push(buf[j]);
- if (b.length === 2) {
- if (charsProcessed === 0) {
- if (b[0] === 255 && b[1] === 254) return "utf-16le";
- if (b[0] === 254 && b[1] === 255) return "utf-16be";
- }
- if (b[0] === 0 && b[1] !== 0) asciiCharsBE++;
- if (b[0] !== 0 && b[1] === 0) asciiCharsLE++;
- b.length = 0;
- charsProcessed++;
- if (charsProcessed >= 100) {
- break outerLoop;
- }
- }
- }
- }
- if (asciiCharsBE > asciiCharsLE) return "utf-16be";
- if (asciiCharsBE < asciiCharsLE) return "utf-16le";
- return defaultEncoding || "utf-16le";
- }
- }
- });
- // node_modules/iconv-lite/encodings/utf7.js
- var require_utf7 = __commonJS({
- "node_modules/iconv-lite/encodings/utf7.js"(exports2) {
- "use strict";
- var Buffer2 = require_safer().Buffer;
- exports2.utf7 = Utf7Codec;
- exports2.unicode11utf7 = "utf7";
- function Utf7Codec(codecOptions, iconv) {
- this.iconv = iconv;
- }
- Utf7Codec.prototype.encoder = Utf7Encoder;
- Utf7Codec.prototype.decoder = Utf7Decoder;
- Utf7Codec.prototype.bomAware = true;
- var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;
- function Utf7Encoder(options, codec) {
- this.iconv = codec.iconv;
- }
- Utf7Encoder.prototype.write = function(str) {
- return Buffer2.from(str.replace(nonDirectChars, function(chunk) {
- return "+" + (chunk === "+" ? "" : this.iconv.encode(chunk, "utf16-be").toString("base64").replace(/=+$/, "")) + "-";
- }.bind(this)));
- };
- Utf7Encoder.prototype.end = function() {
- };
- function Utf7Decoder(options, codec) {
- this.iconv = codec.iconv;
- this.inBase64 = false;
- this.base64Accum = "";
- }
- var base64Regex = /[A-Za-z0-9\/+]/;
- var base64Chars = [];
- for (i = 0; i < 256; i++) {
- base64Chars[i] = base64Regex.test(String.fromCharCode(i));
- }
- var i;
- var plusChar = "+".charCodeAt(0);
- var minusChar = "-".charCodeAt(0);
- var andChar = "&".charCodeAt(0);
- Utf7Decoder.prototype.write = function(buf) {
- var res = "";
- var lastI = 0;
- var inBase64 = this.inBase64;
- var base64Accum = this.base64Accum;
- for (var i2 = 0; i2 < buf.length; i2++) {
- if (!inBase64) {
- if (buf[i2] == plusChar) {
- res += this.iconv.decode(buf.slice(lastI, i2), "ascii");
- lastI = i2 + 1;
- inBase64 = true;
- }
- } else {
- if (!base64Chars[buf[i2]]) {
- if (i2 == lastI && buf[i2] == minusChar) {
- res += "+";
- } else {
- var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i2), "ascii");
- res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be");
- }
- if (buf[i2] != minusChar) {
- i2--;
- }
- lastI = i2 + 1;
- inBase64 = false;
- base64Accum = "";
- }
- }
- }
- if (!inBase64) {
- res += this.iconv.decode(buf.slice(lastI), "ascii");
- } else {
- var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), "ascii");
- var canBeDecoded = b64str.length - b64str.length % 8;
- base64Accum = b64str.slice(canBeDecoded);
- b64str = b64str.slice(0, canBeDecoded);
- res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be");
- }
- this.inBase64 = inBase64;
- this.base64Accum = base64Accum;
- return res;
- };
- Utf7Decoder.prototype.end = function() {
- var res = "";
- if (this.inBase64 && this.base64Accum.length > 0) {
- res = this.iconv.decode(Buffer2.from(this.base64Accum, "base64"), "utf16-be");
- }
- this.inBase64 = false;
- this.base64Accum = "";
- return res;
- };
- exports2.utf7imap = Utf7IMAPCodec;
- function Utf7IMAPCodec(codecOptions, iconv) {
- this.iconv = iconv;
- }
- Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder;
- Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder;
- Utf7IMAPCodec.prototype.bomAware = true;
- function Utf7IMAPEncoder(options, codec) {
- this.iconv = codec.iconv;
- this.inBase64 = false;
- this.base64Accum = Buffer2.alloc(6);
- this.base64AccumIdx = 0;
- }
- Utf7IMAPEncoder.prototype.write = function(str) {
- var inBase64 = this.inBase64;
- var base64Accum = this.base64Accum;
- var base64AccumIdx = this.base64AccumIdx;
- var buf = Buffer2.alloc(str.length * 5 + 10);
- var bufIdx = 0;
- for (var i2 = 0; i2 < str.length; i2++) {
- var uChar = str.charCodeAt(i2);
- if (uChar >= 32 && uChar <= 126) {
- if (inBase64) {
- if (base64AccumIdx > 0) {
- bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx);
- base64AccumIdx = 0;
- }
- buf[bufIdx++] = minusChar;
- inBase64 = false;
- }
- if (!inBase64) {
- buf[bufIdx++] = uChar;
- if (uChar === andChar) {
- buf[bufIdx++] = minusChar;
- }
- }
- } else {
- if (!inBase64) {
- buf[bufIdx++] = andChar;
- inBase64 = true;
- }
- if (inBase64) {
- base64Accum[base64AccumIdx++] = uChar >> 8;
- base64Accum[base64AccumIdx++] = uChar & 255;
- if (base64AccumIdx == base64Accum.length) {
- bufIdx += buf.write(base64Accum.toString("base64").replace(/\//g, ","), bufIdx);
- base64AccumIdx = 0;
- }
- }
- }
- }
- this.inBase64 = inBase64;
- this.base64AccumIdx = base64AccumIdx;
- return buf.slice(0, bufIdx);
- };
- Utf7IMAPEncoder.prototype.end = function() {
- var buf = Buffer2.alloc(10);
- var bufIdx = 0;
- if (this.inBase64) {
- if (this.base64AccumIdx > 0) {
- bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx);
- this.base64AccumIdx = 0;
- }
- buf[bufIdx++] = minusChar;
- this.inBase64 = false;
- }
- return buf.slice(0, bufIdx);
- };
- function Utf7IMAPDecoder(options, codec) {
- this.iconv = codec.iconv;
- this.inBase64 = false;
- this.base64Accum = "";
- }
- var base64IMAPChars = base64Chars.slice();
- base64IMAPChars[",".charCodeAt(0)] = true;
- Utf7IMAPDecoder.prototype.write = function(buf) {
- var res = "";
- var lastI = 0;
- var inBase64 = this.inBase64;
- var base64Accum = this.base64Accum;
- for (var i2 = 0; i2 < buf.length; i2++) {
- if (!inBase64) {
- if (buf[i2] == andChar) {
- res += this.iconv.decode(buf.slice(lastI, i2), "ascii");
- lastI = i2 + 1;
- inBase64 = true;
- }
- } else {
- if (!base64IMAPChars[buf[i2]]) {
- if (i2 == lastI && buf[i2] == minusChar) {
- res += "&";
- } else {
- var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i2), "ascii").replace(/,/g, "/");
- res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be");
- }
- if (buf[i2] != minusChar) {
- i2--;
- }
- lastI = i2 + 1;
- inBase64 = false;
- base64Accum = "";
- }
- }
- }
- if (!inBase64) {
- res += this.iconv.decode(buf.slice(lastI), "ascii");
- } else {
- var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), "ascii").replace(/,/g, "/");
- var canBeDecoded = b64str.length - b64str.length % 8;
- base64Accum = b64str.slice(canBeDecoded);
- b64str = b64str.slice(0, canBeDecoded);
- res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be");
- }
- this.inBase64 = inBase64;
- this.base64Accum = base64Accum;
- return res;
- };
- Utf7IMAPDecoder.prototype.end = function() {
- var res = "";
- if (this.inBase64 && this.base64Accum.length > 0) {
- res = this.iconv.decode(Buffer2.from(this.base64Accum, "base64"), "utf16-be");
- }
- this.inBase64 = false;
- this.base64Accum = "";
- return res;
- };
- }
- });
- // node_modules/iconv-lite/encodings/sbcs-codec.js
- var require_sbcs_codec = __commonJS({
- "node_modules/iconv-lite/encodings/sbcs-codec.js"(exports2) {
- "use strict";
- var Buffer2 = require_safer().Buffer;
- exports2._sbcs = SBCSCodec;
- function SBCSCodec(codecOptions, iconv) {
- if (!codecOptions) {
- throw new Error("SBCS codec is called without the data.");
- }
- if (!codecOptions.chars || codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256) {
- throw new Error("Encoding '" + codecOptions.type + "' has incorrect 'chars' (must be of len 128 or 256)");
- }
- if (codecOptions.chars.length === 128) {
- var asciiString = "";
- for (var i = 0; i < 128; i++) {
- asciiString += String.fromCharCode(i);
- }
- codecOptions.chars = asciiString + codecOptions.chars;
- }
- this.decodeBuf = Buffer2.from(codecOptions.chars, "ucs2");
- var encodeBuf = Buffer2.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0));
- for (var i = 0; i < codecOptions.chars.length; i++) {
- encodeBuf[codecOptions.chars.charCodeAt(i)] = i;
- }
- this.encodeBuf = encodeBuf;
- }
- SBCSCodec.prototype.encoder = SBCSEncoder;
- SBCSCodec.prototype.decoder = SBCSDecoder;
- function SBCSEncoder(options, codec) {
- this.encodeBuf = codec.encodeBuf;
- }
- SBCSEncoder.prototype.write = function(str) {
- var buf = Buffer2.alloc(str.length);
- for (var i = 0; i < str.length; i++) {
- buf[i] = this.encodeBuf[str.charCodeAt(i)];
- }
- return buf;
- };
- SBCSEncoder.prototype.end = function() {
- };
- function SBCSDecoder(options, codec) {
- this.decodeBuf = codec.decodeBuf;
- }
- SBCSDecoder.prototype.write = function(buf) {
- var decodeBuf = this.decodeBuf;
- var newBuf = Buffer2.alloc(buf.length * 2);
- var idx1 = 0;
- var idx2 = 0;
- for (var i = 0; i < buf.length; i++) {
- idx1 = buf[i] * 2;
- idx2 = i * 2;
- newBuf[idx2] = decodeBuf[idx1];
- newBuf[idx2 + 1] = decodeBuf[idx1 + 1];
- }
- return newBuf.toString("ucs2");
- };
- SBCSDecoder.prototype.end = function() {
- };
- }
- });
- // node_modules/iconv-lite/encodings/sbcs-data.js
- var require_sbcs_data = __commonJS({
- "node_modules/iconv-lite/encodings/sbcs-data.js"(exports2, module2) {
- "use strict";
- module2.exports = {
- // Not supported by iconv, not sure why.
- 10029: "maccenteuro",
- maccenteuro: {
- type: "_sbcs",
- chars: "\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7"
- },
- 808: "cp808",
- ibm808: "cp808",
- cp808: {
- type: "_sbcs",
- chars: "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0"
- },
- mik: {
- type: "_sbcs",
- chars: "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
- },
- cp720: {
- type: "_sbcs",
- chars: "\x80\x81\xE9\xE2\x84\xE0\x86\xE7\xEA\xEB\xE8\xEF\xEE\x8D\x8E\x8F\x90\u0651\u0652\xF4\xA4\u0640\xFB\xF9\u0621\u0622\u0623\u0624\xA3\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0636\u0637\u0638\u0639\u063A\u0641\xB5\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u2261\u064B\u064C\u064D\u064E\u064F\u0650\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
- },
- // Aliases of generated encodings.
- ascii8bit: "ascii",
- usascii: "ascii",
- ansix34: "ascii",
- ansix341968: "ascii",
- ansix341986: "ascii",
- csascii: "ascii",
- cp367: "ascii",
- ibm367: "ascii",
- isoir6: "ascii",
- iso646us: "ascii",
- iso646irv: "ascii",
- us: "ascii",
- latin1: "iso88591",
- latin2: "iso88592",
- latin3: "iso88593",
- latin4: "iso88594",
- latin5: "iso88599",
- latin6: "iso885910",
- latin7: "iso885913",
- latin8: "iso885914",
- latin9: "iso885915",
- latin10: "iso885916",
- csisolatin1: "iso88591",
- csisolatin2: "iso88592",
- csisolatin3: "iso88593",
- csisolatin4: "iso88594",
- csisolatincyrillic: "iso88595",
- csisolatinarabic: "iso88596",
- csisolatingreek: "iso88597",
- csisolatinhebrew: "iso88598",
- csisolatin5: "iso88599",
- csisolatin6: "iso885910",
- l1: "iso88591",
- l2: "iso88592",
- l3: "iso88593",
- l4: "iso88594",
- l5: "iso88599",
- l6: "iso885910",
- l7: "iso885913",
- l8: "iso885914",
- l9: "iso885915",
- l10: "iso885916",
- isoir14: "iso646jp",
- isoir57: "iso646cn",
- isoir100: "iso88591",
- isoir101: "iso88592",
- isoir109: "iso88593",
- isoir110: "iso88594",
- isoir144: "iso88595",
- isoir127: "iso88596",
- isoir126: "iso88597",
- isoir138: "iso88598",
- isoir148: "iso88599",
- isoir157: "iso885910",
- isoir166: "tis620",
- isoir179: "iso885913",
- isoir199: "iso885914",
- isoir203: "iso885915",
- isoir226: "iso885916",
- cp819: "iso88591",
- ibm819: "iso88591",
- cyrillic: "iso88595",
- arabic: "iso88596",
- arabic8: "iso88596",
- ecma114: "iso88596",
- asmo708: "iso88596",
- greek: "iso88597",
- greek8: "iso88597",
- ecma118: "iso88597",
- elot928: "iso88597",
- hebrew: "iso88598",
- hebrew8: "iso88598",
- turkish: "iso88599",
- turkish8: "iso88599",
- thai: "iso885911",
- thai8: "iso885911",
- celtic: "iso885914",
- celtic8: "iso885914",
- isoceltic: "iso885914",
- tis6200: "tis620",
- tis62025291: "tis620",
- tis62025330: "tis620",
- 1e4: "macroman",
- 10006: "macgreek",
- 10007: "maccyrillic",
- 10079: "maciceland",
- 10081: "macturkish",
- cspc8codepage437: "cp437",
- cspc775baltic: "cp775",
- cspc850multilingual: "cp850",
- cspcp852: "cp852",
- cspc862latinhebrew: "cp862",
- cpgr: "cp869",
- msee: "cp1250",
- mscyrl: "cp1251",
- msansi: "cp1252",
- msgreek: "cp1253",
- msturk: "cp1254",
- mshebr: "cp1255",
- msarab: "cp1256",
- winbaltrim: "cp1257",
- cp20866: "koi8r",
- 20866: "koi8r",
- ibm878: "koi8r",
- cskoi8r: "koi8r",
- cp21866: "koi8u",
- 21866: "koi8u",
- ibm1168: "koi8u",
- strk10482002: "rk1048",
- tcvn5712: "tcvn",
- tcvn57121: "tcvn",
- gb198880: "iso646cn",
- cn: "iso646cn",
- csiso14jisc6220ro: "iso646jp",
- jisc62201969ro: "iso646jp",
- jp: "iso646jp",
- cshproman8: "hproman8",
- r8: "hproman8",
- roman8: "hproman8",
- xroman8: "hproman8",
- ibm1051: "hproman8",
- mac: "macintosh",
- csmacintosh: "macintosh"
- };
- }
- });
- // node_modules/iconv-lite/encodings/sbcs-data-generated.js
- var require_sbcs_data_generated = __commonJS({
- "node_modules/iconv-lite/encodings/sbcs-data-generated.js"(exports2, module2) {
- "use strict";
- module2.exports = {
- "437": "cp437",
- "737": "cp737",
- "775": "cp775",
- "850": "cp850",
- "852": "cp852",
- "855": "cp855",
- "856": "cp856",
- "857": "cp857",
- "858": "cp858",
- "860": "cp860",
- "861": "cp861",
- "862": "cp862",
- "863": "cp863",
- "864": "cp864",
- "865": "cp865",
- "866": "cp866",
- "869": "cp869",
- "874": "windows874",
- "922": "cp922",
- "1046": "cp1046",
- "1124": "cp1124",
- "1125": "cp1125",
- "1129": "cp1129",
- "1133": "cp1133",
- "1161": "cp1161",
- "1162": "cp1162",
- "1163": "cp1163",
- "1250": "windows1250",
- "1251": "windows1251",
- "1252": "windows1252",
- "1253": "windows1253",
- "1254": "windows1254",
- "1255": "windows1255",
- "1256": "windows1256",
- "1257": "windows1257",
- "1258": "windows1258",
- "28591": "iso88591",
- "28592": "iso88592",
- "28593": "iso88593",
- "28594": "iso88594",
- "28595": "iso88595",
- "28596": "iso88596",
- "28597": "iso88597",
- "28598": "iso88598",
- "28599": "iso88599",
- "28600": "iso885910",
- "28601": "iso885911",
- "28603": "iso885913",
- "28604": "iso885914",
- "28605": "iso885915",
- "28606": "iso885916",
- "windows874": {
- "type": "_sbcs",
- "chars": "\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
- },
- "win874": "windows874",
- "cp874": "windows874",
- "windows1250": {
- "type": "_sbcs",
- "chars": "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"
- },
- "win1250": "windows1250",
- "cp1250": "windows1250",
- "windows1251": {
- "type": "_sbcs",
- "chars": "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
- },
- "win1251": "windows1251",
- "cp1251": "windows1251",
- "windows1252": {
- "type": "_sbcs",
- "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
- },
- "win1252": "windows1252",
- "cp1252": "windows1252",
- "windows1253": {
- "type": "_sbcs",
- "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"
- },
- "win1253": "windows1253",
- "cp1253": "windows1253",
- "windows1254": {
- "type": "_sbcs",
- "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"
- },
- "win1254": "windows1254",
- "cp1254": "windows1254",
- "windows1255": {
- "type": "_sbcs",
- "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"
- },
- "win1255": "windows1255",
- "cp1255": "windows1255",
- "windows1256": {
- "type": "_sbcs",
- "chars": "\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2"
- },
- "win1256": "windows1256",
- "cp1256": "windows1256",
- "windows1257": {
- "type": "_sbcs",
- "chars": "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9"
- },
- "win1257": "windows1257",
- "cp1257": "windows1257",
- "windows1258": {
- "type": "_sbcs",
- "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
- },
- "win1258": "windows1258",
- "cp1258": "windows1258",
- "iso88591": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
- },
- "cp28591": "iso88591",
- "iso88592": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"
- },
- "cp28592": "iso88592",
- "iso88593": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9"
- },
- "cp28593": "iso88593",
- "iso88594": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9"
- },
- "cp28594": "iso88594",
- "iso88595": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"
- },
- "cp28595": "iso88595",
- "iso88596": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
- },
- "cp28596": "iso88596",
- "iso88597": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"
- },
- "cp28597": "iso88597",
- "iso88598": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"
- },
- "cp28598": "iso88598",
- "iso88599": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"
- },
- "cp28599": "iso88599",
- "iso885910": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138"
- },
- "cp28600": "iso885910",
- "iso885911": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
- },
- "cp28601": "iso885911",
- "iso885913": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019"
- },
- "cp28603": "iso885913",
- "iso885914": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF"
- },
- "cp28604": "iso885914",
- "iso885915": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
- },
- "cp28605": "iso885915",
- "iso885916": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF"
- },
- "cp28606": "iso885916",
- "cp437": {
- "type": "_sbcs",
- "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
- },
- "ibm437": "cp437",
- "csibm437": "cp437",
- "cp737": {
- "type": "_sbcs",
- "chars": "\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
- },
- "ibm737": "cp737",
- "csibm737": "cp737",
- "cp775": {
- "type": "_sbcs",
- "chars": "\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0"
- },
- "ibm775": "cp775",
- "csibm775": "cp775",
- "cp850": {
- "type": "_sbcs",
- "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
- },
- "ibm850": "cp850",
- "csibm850": "cp850",
- "cp852": {
- "type": "_sbcs",
- "chars": "\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0"
- },
- "ibm852": "cp852",
- "csibm852": "cp852",
- "cp855": {
- "type": "_sbcs",
- "chars": "\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0"
- },
- "ibm855": "cp855",
- "csibm855": "cp855",
- "cp856": {
- "type": "_sbcs",
- "chars": "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
- },
- "ibm856": "cp856",
- "csibm856": "cp856",
- "cp857": {
- "type": "_sbcs",
- "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
- },
- "ibm857": "cp857",
- "csibm857": "cp857",
- "cp858": {
- "type": "_sbcs",
- "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
- },
- "ibm858": "cp858",
- "csibm858": "cp858",
- "cp860": {
- "type": "_sbcs",
- "chars": "\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
- },
- "ibm860": "cp860",
- "csibm860": "cp860",
- "cp861": {
- "type": "_sbcs",
- "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
- },
- "ibm861": "cp861",
- "csibm861": "cp861",
- "cp862": {
- "type": "_sbcs",
- "chars": "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
- },
- "ibm862": "cp862",
- "csibm862": "cp862",
- "cp863": {
- "type": "_sbcs",
- "chars": "\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
- },
- "ibm863": "cp863",
- "csibm863": "cp863",
- "cp864": {
- "type": "_sbcs",
- "chars": "\0\x07\b \n\v\f\r\x1B !\"#$\u066A&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xB0\xB7\u2219\u221A\u2592\u2500\u2502\u253C\u2524\u252C\u251C\u2534\u2510\u250C\u2514\u2518\u03B2\u221E\u03C6\xB1\xBD\xBC\u2248\xAB\xBB\uFEF7\uFEF8\uFFFD\uFFFD\uFEFB\uFEFC\uFFFD\xA0\xAD\uFE82\xA3\xA4\uFE84\uFFFD\uFFFD\uFE8E\uFE8F\uFE95\uFE99\u060C\uFE9D\uFEA1\uFEA5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFED1\u061B\uFEB1\uFEB5\uFEB9\u061F\xA2\uFE80\uFE81\uFE83\uFE85\uFECA\uFE8B\uFE8D\uFE91\uFE93\uFE97\uFE9B\uFE9F\uFEA3\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uFEB3\uFEB7\uFEBB\uFEBF\uFEC1\uFEC5\uFECB\uFECF\xA6\xAC\xF7\xD7\uFEC9\u0640\uFED3\uFED7\uFEDB\uFEDF\uFEE3\uFEE7\uFEEB\uFEED\uFEEF\uFEF3\uFEBD\uFECC\uFECE\uFECD\uFEE1\uFE7D\u0651\uFEE5\uFEE9\uFEEC\uFEF0\uFEF2\uFED0\uFED5\uFEF5\uFEF6\uFEDD\uFED9\uFEF1\u25A0\uFFFD"
- },
- "ibm864": "cp864",
- "csibm864": "cp864",
- "cp865": {
- "type": "_sbcs",
- "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xA4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
- },
- "ibm865": "cp865",
- "csibm865": "cp865",
- "cp866": {
- "type": "_sbcs",
- "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\xA4\u25A0\xA0"
- },
- "ibm866": "cp866",
- "csibm866": "cp866",
- "cp869": {
- "type": "_sbcs",
- "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0386\uFFFD\xB7\xAC\xA6\u2018\u2019\u0388\u2015\u0389\u038A\u03AA\u038C\uFFFD\uFFFD\u038E\u03AB\xA9\u038F\xB2\xB3\u03AC\xA3\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03CD\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xBD\u0398\u0399\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u039A\u039B\u039C\u039D\u2563\u2551\u2557\u255D\u039E\u039F\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u03A0\u03A1\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u2518\u250C\u2588\u2584\u03B4\u03B5\u2580\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u0384\xAD\xB1\u03C5\u03C6\u03C7\xA7\u03C8\u0385\xB0\xA8\u03C9\u03CB\u03B0\u03CE\u25A0\xA0"
- },
- "ibm869": "cp869",
- "csibm869": "cp869",
- "cp922": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\u203E\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0160\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\u017D\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0161\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\u017E\xFF"
- },
- "ibm922": "cp922",
- "csibm922": "cp922",
- "cp1046": {
- "type": "_sbcs",
- "chars": "\uFE88\xD7\xF7\uF8F6\uF8F5\uF8F4\uF8F7\uFE71\x88\u25A0\u2502\u2500\u2510\u250C\u2514\u2518\uFE79\uFE7B\uFE7D\uFE7F\uFE77\uFE8A\uFEF0\uFEF3\uFEF2\uFECE\uFECF\uFED0\uFEF6\uFEF8\uFEFA\uFEFC\xA0\uF8FA\uF8F9\uF8F8\xA4\uF8FB\uFE8B\uFE91\uFE97\uFE9B\uFE9F\uFEA3\u060C\xAD\uFEA7\uFEB3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFEB7\u061B\uFEBB\uFEBF\uFECA\u061F\uFECB\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\uFEC7\u0639\u063A\uFECC\uFE82\uFE84\uFE8E\uFED3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFED7\uFEDB\uFEDF\uF8FC\uFEF5\uFEF7\uFEF9\uFEFB\uFEE3\uFEE7\uFEEC\uFEE9\uFFFD"
- },
- "ibm1046": "cp1046",
- "csibm1046": "cp1046",
- "cp1124": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"
- },
- "ibm1124": "cp1124",
- "csibm1124": "cp1124",
- "cp1125": {
- "type": "_sbcs",
- "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xB7\u221A\u2116\xA4\u25A0\xA0"
- },
- "ibm1125": "cp1125",
- "csibm1125": "cp1125",
- "cp1129": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
- },
- "ibm1129": "cp1129",
- "csibm1129": "cp1129",
- "cp1133": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E81\u0E82\u0E84\u0E87\u0E88\u0EAA\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAB\u0EAD\u0EAE\uFFFD\uFFFD\uFFFD\u0EAF\u0EB0\u0EB2\u0EB3\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBC\u0EB1\u0EBB\u0EBD\uFFFD\uFFFD\uFFFD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0EC6\uFFFD\u0EDC\u0EDD\u20AD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\uFFFD\uFFFD\xA2\xAC\xA6\uFFFD"
- },
- "ibm1133": "cp1133",
- "csibm1133": "cp1133",
- "cp1161": {
- "type": "_sbcs",
- "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E48\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E49\u0E4A\u0E4B\u20AC\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\xA2\xAC\xA6\xA0"
- },
- "ibm1161": "cp1161",
- "csibm1161": "cp1161",
- "cp1162": {
- "type": "_sbcs",
- "chars": "\u20AC\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
- },
- "ibm1162": "cp1162",
- "csibm1162": "cp1162",
- "cp1163": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
- },
- "ibm1163": "cp1163",
- "csibm1163": "cp1163",
- "maccroatian": {
- "type": "_sbcs",
- "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u2126\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uFFFD\xA9\u2044\xA4\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7"
- },
- "maccyrillic": {
- "type": "_sbcs",
- "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\xA2\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"
- },
- "macgreek": {
- "type": "_sbcs",
- "chars": "\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\xAD\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\u0387\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\uFFFD"
- },
- "maciceland": {
- "type": "_sbcs",
- "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
- },
- "macroman": {
- "type": "_sbcs",
- "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
- },
- "macromania": {
- "type": "_sbcs",
- "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u015E\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\u0103\u015F\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\u0162\u0163\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
- },
- "macthai": {
- "type": "_sbcs",
- "chars": "\xAB\xBB\u2026\uF88C\uF88F\uF892\uF895\uF898\uF88B\uF88E\uF891\uF894\uF897\u201C\u201D\uF899\uFFFD\u2022\uF884\uF889\uF885\uF886\uF887\uF888\uF88A\uF88D\uF890\uF893\uF896\u2018\u2019\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFEFF\u200B\u2013\u2014\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u2122\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\xAE\xA9\uFFFD\uFFFD\uFFFD\uFFFD"
- },
- "macturkish": {
- "type": "_sbcs",
- "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\uFFFD\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
- },
- "macukraine": {
- "type": "_sbcs",
- "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"
- },
- "koi8r": {
- "type": "_sbcs",
- "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B\u255C\u255D\u255E\u255F\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
- },
- "koi8u": {
- "type": "_sbcs",
- "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u255D\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
- },
- "koi8ru": {
- "type": "_sbcs",
- "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u045E\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u040E\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
- },
- "koi8t": {
- "type": "_sbcs",
- "chars": "\u049B\u0493\u201A\u0492\u201E\u2026\u2020\u2021\uFFFD\u2030\u04B3\u2039\u04B2\u04B7\u04B6\uFFFD\u049A\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04EF\u04EE\u0451\xA4\u04E3\xA6\xA7\uFFFD\uFFFD\uFFFD\xAB\xAC\xAD\xAE\uFFFD\xB0\xB1\xB2\u0401\uFFFD\u04E2\xB6\xB7\uFFFD\u2116\uFFFD\xBB\uFFFD\uFFFD\uFFFD\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
- },
- "armscii8": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\u0587\u0589)(\xBB\xAB\u2014.\u055D,-\u058A\u2026\u055C\u055B\u055E\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053A\u056A\u053B\u056B\u053C\u056C\u053D\u056D\u053E\u056E\u053F\u056F\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054A\u057A\u054B\u057B\u054C\u057C\u054D\u057D\u054E\u057E\u054F\u057F\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055A\uFFFD"
- },
- "rk1048": {
- "type": "_sbcs",
- "chars": "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u049A\u04BA\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u049B\u04BB\u045F\xA0\u04B0\u04B1\u04D8\xA4\u04E8\xA6\xA7\u0401\xA9\u0492\xAB\xAC\xAD\xAE\u04AE\xB0\xB1\u0406\u0456\u04E9\xB5\xB6\xB7\u0451\u2116\u0493\xBB\u04D9\u04A2\u04A3\u04AF\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
- },
- "tcvn": {
- "type": "_sbcs",
- "chars": "\0\xDA\u1EE4\u1EEA\u1EEC\u1EEE\x07\b \n\v\f\r\u1EE8\u1EF0\u1EF2\u1EF6\u1EF8\xDD\u1EF4\x1B !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xC0\u1EA2\xC3\xC1\u1EA0\u1EB6\u1EAC\xC8\u1EBA\u1EBC\xC9\u1EB8\u1EC6\xCC\u1EC8\u0128\xCD\u1ECA\xD2\u1ECE\xD5\xD3\u1ECC\u1ED8\u1EDC\u1EDE\u1EE0\u1EDA\u1EE2\xD9\u1EE6\u0168\xA0\u0102\xC2\xCA\xD4\u01A0\u01AF\u0110\u0103\xE2\xEA\xF4\u01A1\u01B0\u0111\u1EB0\u0300\u0309\u0303\u0301\u0323\xE0\u1EA3\xE3\xE1\u1EA1\u1EB2\u1EB1\u1EB3\u1EB5\u1EAF\u1EB4\u1EAE\u1EA6\u1EA8\u1EAA\u1EA4\u1EC0\u1EB7\u1EA7\u1EA9\u1EAB\u1EA5\u1EAD\xE8\u1EC2\u1EBB\u1EBD\xE9\u1EB9\u1EC1\u1EC3\u1EC5\u1EBF\u1EC7\xEC\u1EC9\u1EC4\u1EBE\u1ED2\u0129\xED\u1ECB\xF2\u1ED4\u1ECF\xF5\xF3\u1ECD\u1ED3\u1ED5\u1ED7\u1ED1\u1ED9\u1EDD\u1EDF\u1EE1\u1EDB\u1EE3\xF9\u1ED6\u1EE7\u0169\xFA\u1EE5\u1EEB\u1EED\u1EEF\u1EE9\u1EF1\u1EF3\u1EF7\u1EF9\xFD\u1EF5\u1ED0"
- },
- "georgianacademy": {
- "type": "_sbcs",
- "chars": "\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
- },
- "georgianps": {
- "type": "_sbcs",
- "chars": "\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10F1\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10F2\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10F3\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10F4\u10EF\u10F0\u10F5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
- },
- "pt154": {
- "type": "_sbcs",
- "chars": "\u0496\u0492\u04EE\u0493\u201E\u2026\u04B6\u04AE\u04B2\u04AF\u04A0\u04E2\u04A2\u049A\u04BA\u04B8\u0497\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u04B3\u04B7\u04A1\u04E3\u04A3\u049B\u04BB\u04B9\xA0\u040E\u045E\u0408\u04E8\u0498\u04B0\xA7\u0401\xA9\u04D8\xAB\xAC\u04EF\xAE\u049C\xB0\u04B1\u0406\u0456\u0499\u04E9\xB6\xB7\u0451\u2116\u04D9\xBB\u0458\u04AA\u04AB\u049D\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
- },
- "viscii": {
- "type": "_sbcs",
- "chars": "\0\u1EB2\u1EB4\u1EAA\x07\b \n\v\f\r\u1EF6\u1EF8\x1B\u1EF4 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\u1EA0\u1EAE\u1EB0\u1EB6\u1EA4\u1EA6\u1EA8\u1EAC\u1EBC\u1EB8\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EE2\u1EDA\u1EDC\u1EDE\u1ECA\u1ECE\u1ECC\u1EC8\u1EE6\u0168\u1EE4\u1EF2\xD5\u1EAF\u1EB1\u1EB7\u1EA5\u1EA7\u1EA9\u1EAD\u1EBD\u1EB9\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1ED1\u1ED3\u1ED5\u1ED7\u1EE0\u01A0\u1ED9\u1EDD\u1EDF\u1ECB\u1EF0\u1EE8\u1EEA\u1EEC\u01A1\u1EDB\u01AF\xC0\xC1\xC2\xC3\u1EA2\u0102\u1EB3\u1EB5\xC8\xC9\xCA\u1EBA\xCC\xCD\u0128\u1EF3\u0110\u1EE9\xD2\xD3\xD4\u1EA1\u1EF7\u1EEB\u1EED\xD9\xDA\u1EF9\u1EF5\xDD\u1EE1\u01B0\xE0\xE1\xE2\xE3\u1EA3\u0103\u1EEF\u1EAB\xE8\xE9\xEA\u1EBB\xEC\xED\u0129\u1EC9\u0111\u1EF1\xF2\xF3\xF4\xF5\u1ECF\u1ECD\u1EE5\xF9\xFA\u0169\u1EE7\xFD\u1EE3\u1EEE"
- },
- "iso646cn": {
- "type": "_sbcs",
- "chars": "\0\x07\b \n\v\f\r\x1B !\"#\xA5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
- },
- "iso646jp": {
- "type": "_sbcs",
- "chars": "\0\x07\b \n\v\f\r\x1B !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
- },
- "hproman8": {
- "type": "_sbcs",
- "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"
- },
- "macintosh": {
- "type": "_sbcs",
- "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
- },
- "ascii": {
- "type": "_sbcs",
- "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
- },
- "tis620": {
- "type": "_sbcs",
- "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
- }
- };
- }
- });
- // node_modules/iconv-lite/encodings/dbcs-codec.js
- var require_dbcs_codec = __commonJS({
- "node_modules/iconv-lite/encodings/dbcs-codec.js"(exports2) {
- "use strict";
- var Buffer2 = require_safer().Buffer;
- exports2._dbcs = DBCSCodec;
- var UNASSIGNED = -1;
- var GB18030_CODE = -2;
- var SEQ_START = -10;
- var NODE_START = -1e3;
- var UNASSIGNED_NODE = new Array(256);
- var DEF_CHAR = -1;
- for (i = 0; i < 256; i++) {
- UNASSIGNED_NODE[i] = UNASSIGNED;
- }
- var i;
- function DBCSCodec(codecOptions, iconv) {
- this.encodingName = codecOptions.encodingName;
- if (!codecOptions) {
- throw new Error("DBCS codec is called without the data.");
- }
- if (!codecOptions.table) {
- throw new Error("Encoding '" + this.encodingName + "' has no data.");
- }
- var mappingTable = codecOptions.table();
- this.decodeTables = [];
- this.decodeTables[0] = UNASSIGNED_NODE.slice(0);
- this.decodeTableSeq = [];
- for (var i2 = 0; i2 < mappingTable.length; i2++) {
- this._addDecodeChunk(mappingTable[i2]);
- }
- if (typeof codecOptions.gb18030 === "function") {
- this.gb18030 = codecOptions.gb18030();
- var commonThirdByteNodeIdx = this.decodeTables.length;
- this.decodeTables.push(UNASSIGNED_NODE.slice(0));
- var commonFourthByteNodeIdx = this.decodeTables.length;
- this.decodeTables.push(UNASSIGNED_NODE.slice(0));
- var firstByteNode = this.decodeTables[0];
- for (var i2 = 129; i2 <= 254; i2++) {
- var secondByteNode = this.decodeTables[NODE_START - firstByteNode[i2]];
- for (var j = 48; j <= 57; j++) {
- if (secondByteNode[j] === UNASSIGNED) {
- secondByteNode[j] = NODE_START - commonThirdByteNodeIdx;
- } else if (secondByteNode[j] > NODE_START) {
- throw new Error("gb18030 decode tables conflict at byte 2");
- }
- var thirdByteNode = this.decodeTables[NODE_START - secondByteNode[j]];
- for (var k = 129; k <= 254; k++) {
- if (thirdByteNode[k] === UNASSIGNED) {
- thirdByteNode[k] = NODE_START - commonFourthByteNodeIdx;
- } else if (thirdByteNode[k] === NODE_START - commonFourthByteNodeIdx) {
- continue;
- } else if (thirdByteNode[k] > NODE_START) {
- throw new Error("gb18030 decode tables conflict at byte 3");
- }
- var fourthByteNode = this.decodeTables[NODE_START - thirdByteNode[k]];
- for (var l = 48; l <= 57; l++) {
- if (fourthByteNode[l] === UNASSIGNED) {
- fourthByteNode[l] = GB18030_CODE;
- }
- }
- }
- }
- }
- }
- this.defaultCharUnicode = iconv.defaultCharUnicode;
- this.encodeTable = [];
- this.encodeTableSeq = [];
- var skipEncodeChars = {};
- if (codecOptions.encodeSkipVals) {
- for (var i2 = 0; i2 < codecOptions.encodeSkipVals.length; i2++) {
- var val = codecOptions.encodeSkipVals[i2];
- if (typeof val === "number") {
- skipEncodeChars[val] = true;
- } else {
- for (var j = val.from; j <= val.to; j++) {
- skipEncodeChars[j] = true;
- }
- }
- }
- }
- this._fillEncodeTable(0, 0, skipEncodeChars);
- if (codecOptions.encodeAdd) {
- for (var uChar in codecOptions.encodeAdd) {
- if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar)) {
- this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]);
- }
- }
- }
- this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)];
- if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]["?"];
- if (this.defCharSB === UNASSIGNED) this.defCharSB = "?".charCodeAt(0);
- }
- DBCSCodec.prototype.encoder = DBCSEncoder;
- DBCSCodec.prototype.decoder = DBCSDecoder;
- DBCSCodec.prototype._getDecodeTrieNode = function(addr) {
- var bytes = [];
- for (; addr > 0; addr >>>= 8) {
- bytes.push(addr & 255);
- }
- if (bytes.length == 0) {
- bytes.push(0);
- }
- var node = this.decodeTables[0];
- for (var i2 = bytes.length - 1; i2 > 0; i2--) {
- var val = node[bytes[i2]];
- if (val == UNASSIGNED) {
- node[bytes[i2]] = NODE_START - this.decodeTables.length;
- this.decodeTables.push(node = UNASSIGNED_NODE.slice(0));
- } else if (val <= NODE_START) {
- node = this.decodeTables[NODE_START - val];
- } else {
- throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16));
- }
- }
- return node;
- };
- DBCSCodec.prototype._addDecodeChunk = function(chunk) {
- var curAddr = parseInt(chunk[0], 16);
- var writeTable = this._getDecodeTrieNode(curAddr);
- curAddr = curAddr & 255;
- for (var k = 1; k < chunk.length; k++) {
- var part = chunk[k];
- if (typeof part === "string") {
- for (var l = 0; l < part.length; ) {
- var code = part.charCodeAt(l++);
- if (code >= 55296 && code < 56320) {
- var codeTrail = part.charCodeAt(l++);
- if (codeTrail >= 56320 && codeTrail < 57344) {
- writeTable[curAddr++] = 65536 + (code - 55296) * 1024 + (codeTrail - 56320);
- } else {
- throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk[0]);
- }
- } else if (code > 4080 && code <= 4095) {
- var len = 4095 - code + 2;
- var seq = [];
- for (var m = 0; m < len; m++) {
- seq.push(part.charCodeAt(l++));
- }
- writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length;
- this.decodeTableSeq.push(seq);
- } else {
- writeTable[curAddr++] = code;
- }
- }
- } else if (typeof part === "number") {
- var charCode = writeTable[curAddr - 1] + 1;
- for (var l = 0; l < part; l++) {
- writeTable[curAddr++] = charCode++;
- }
- } else {
- throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk[0]);
- }
- }
- if (curAddr > 255) {
- throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr);
- }
- };
- DBCSCodec.prototype._getEncodeBucket = function(uCode) {
- var high = uCode >> 8;
- if (this.encodeTable[high] === void 0) {
- this.encodeTable[high] = UNASSIGNED_NODE.slice(0);
- }
- return this.encodeTable[high];
- };
- DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) {
- var bucket = this._getEncodeBucket(uCode);
- var low = uCode & 255;
- if (bucket[low] <= SEQ_START) {
- this.encodeTableSeq[SEQ_START - bucket[low]][DEF_CHAR] = dbcsCode;
- } else if (bucket[low] == UNASSIGNED) {
- bucket[low] = dbcsCode;
- }
- };
- DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) {
- var uCode = seq[0];
- var bucket = this._getEncodeBucket(uCode);
- var low = uCode & 255;
- var node;
- if (bucket[low] <= SEQ_START) {
- node = this.encodeTableSeq[SEQ_START - bucket[low]];
- } else {
- node = {};
- if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low];
- bucket[low] = SEQ_START - this.encodeTableSeq.length;
- this.encodeTableSeq.push(node);
- }
- for (var j = 1; j < seq.length - 1; j++) {
- var oldVal = node[uCode];
- if (typeof oldVal === "object") {
- node = oldVal;
- } else {
- node = node[uCode] = {};
- if (oldVal !== void 0) {
- node[DEF_CHAR] = oldVal;
- }
- }
- }
- uCode = seq[seq.length - 1];
- node[uCode] = dbcsCode;
- };
- DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) {
- var node = this.decodeTables[nodeIdx];
- var hasValues = false;
- var subNodeEmpty = {};
- for (var i2 = 0; i2 < 256; i2++) {
- var uCode = node[i2];
- var mbCode = prefix + i2;
- if (skipEncodeChars[mbCode]) {
- continue;
- }
- if (uCode >= 0) {
- this._setEncodeChar(uCode, mbCode);
- hasValues = true;
- } else if (uCode <= NODE_START) {
- var subNodeIdx = NODE_START - uCode;
- if (!subNodeEmpty[subNodeIdx]) {
- var newPrefix = mbCode << 8 >>> 0;
- if (this._fillEncodeTable(subNodeIdx, newPrefix, skipEncodeChars)) {
- hasValues = true;
- } else {
- subNodeEmpty[subNodeIdx] = true;
- }
- }
- } else if (uCode <= SEQ_START) {
- this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode);
- hasValues = true;
- }
- }
- return hasValues;
- };
- function DBCSEncoder(options, codec) {
- this.leadSurrogate = -1;
- this.seqObj = void 0;
- this.encodeTable = codec.encodeTable;
- this.encodeTableSeq = codec.encodeTableSeq;
- this.defaultCharSingleByte = codec.defCharSB;
- this.gb18030 = codec.gb18030;
- }
- DBCSEncoder.prototype.write = function(str) {
- var newBuf = Buffer2.alloc(str.length * (this.gb18030 ? 4 : 3));
- var leadSurrogate = this.leadSurrogate;
- var seqObj = this.seqObj;
- var nextChar = -1;
- var i2 = 0;
- var j = 0;
- while (true) {
- if (nextChar === -1) {
- if (i2 == str.length) break;
- var uCode = str.charCodeAt(i2++);
- } else {
- var uCode = nextChar;
- nextChar = -1;
- }
- if (uCode >= 55296 && uCode < 57344) {
- if (uCode < 56320) {
- if (leadSurrogate === -1) {
- leadSurrogate = uCode;
- continue;
- } else {
- leadSurrogate = uCode;
- uCode = UNASSIGNED;
- }
- } else {
- if (leadSurrogate !== -1) {
- uCode = 65536 + (leadSurrogate - 55296) * 1024 + (uCode - 56320);
- leadSurrogate = -1;
- } else {
- uCode = UNASSIGNED;
- }
- }
- } else if (leadSurrogate !== -1) {
- nextChar = uCode;
- uCode = UNASSIGNED;
- leadSurrogate = -1;
- }
- var dbcsCode = UNASSIGNED;
- if (seqObj !== void 0 && uCode != UNASSIGNED) {
- var resCode = seqObj[uCode];
- if (typeof resCode === "object") {
- seqObj = resCode;
- continue;
- } else if (typeof resCode === "number") {
- dbcsCode = resCode;
- } else if (resCode == void 0) {
- resCode = seqObj[DEF_CHAR];
- if (resCode !== void 0) {
- dbcsCode = resCode;
- nextChar = uCode;
- } else {
- }
- }
- seqObj = void 0;
- } else if (uCode >= 0) {
- var subtable = this.encodeTable[uCode >> 8];
- if (subtable !== void 0) {
- dbcsCode = subtable[uCode & 255];
- }
- if (dbcsCode <= SEQ_START) {
- seqObj = this.encodeTableSeq[SEQ_START - dbcsCode];
- continue;
- }
- if (dbcsCode == UNASSIGNED && this.gb18030) {
- var idx = findIdx(this.gb18030.uChars, uCode);
- if (idx != -1) {
- var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]);
- newBuf[j++] = 129 + Math.floor(dbcsCode / 12600);
- dbcsCode = dbcsCode % 12600;
- newBuf[j++] = 48 + Math.floor(dbcsCode / 1260);
- dbcsCode = dbcsCode % 1260;
- newBuf[j++] = 129 + Math.floor(dbcsCode / 10);
- dbcsCode = dbcsCode % 10;
- newBuf[j++] = 48 + dbcsCode;
- continue;
- }
- }
- }
- if (dbcsCode === UNASSIGNED) {
- dbcsCode = this.defaultCharSingleByte;
- }
- if (dbcsCode < 256) {
- newBuf[j++] = dbcsCode;
- } else if (dbcsCode < 65536) {
- newBuf[j++] = dbcsCode >> 8;
- newBuf[j++] = dbcsCode & 255;
- } else if (dbcsCode < 16777216) {
- newBuf[j++] = dbcsCode >> 16;
- newBuf[j++] = dbcsCode >> 8 & 255;
- newBuf[j++] = dbcsCode & 255;
- } else {
- newBuf[j++] = dbcsCode >>> 24;
- newBuf[j++] = dbcsCode >>> 16 & 255;
- newBuf[j++] = dbcsCode >>> 8 & 255;
- newBuf[j++] = dbcsCode & 255;
- }
- }
- this.seqObj = seqObj;
- this.leadSurrogate = leadSurrogate;
- return newBuf.slice(0, j);
- };
- DBCSEncoder.prototype.end = function() {
- if (this.leadSurrogate === -1 && this.seqObj === void 0) {
- return;
- }
- var newBuf = Buffer2.alloc(10);
- var j = 0;
- if (this.seqObj) {
- var dbcsCode = this.seqObj[DEF_CHAR];
- if (dbcsCode !== void 0) {
- if (dbcsCode < 256) {
- newBuf[j++] = dbcsCode;
- } else {
- newBuf[j++] = dbcsCode >> 8;
- newBuf[j++] = dbcsCode & 255;
- }
- } else {
- }
- this.seqObj = void 0;
- }
- if (this.leadSurrogate !== -1) {
- newBuf[j++] = this.defaultCharSingleByte;
- this.leadSurrogate = -1;
- }
- return newBuf.slice(0, j);
- };
- DBCSEncoder.prototype.findIdx = findIdx;
- function DBCSDecoder(options, codec) {
- this.nodeIdx = 0;
- this.prevBytes = [];
- this.decodeTables = codec.decodeTables;
- this.decodeTableSeq = codec.decodeTableSeq;
- this.defaultCharUnicode = codec.defaultCharUnicode;
- this.gb18030 = codec.gb18030;
- }
- DBCSDecoder.prototype.write = function(buf) {
- var newBuf = Buffer2.alloc(buf.length * 2);
- var nodeIdx = this.nodeIdx;
- var prevBytes = this.prevBytes;
- var prevOffset = this.prevBytes.length;
- var seqStart = -this.prevBytes.length;
- var uCode;
- for (var i2 = 0, j = 0; i2 < buf.length; i2++) {
- var curByte = i2 >= 0 ? buf[i2] : prevBytes[i2 + prevOffset];
- var uCode = this.decodeTables[nodeIdx][curByte];
- if (uCode >= 0) {
- } else if (uCode === UNASSIGNED) {
- uCode = this.defaultCharUnicode.charCodeAt(0);
- i2 = seqStart;
- } else if (uCode === GB18030_CODE) {
- if (i2 >= 3) {
- var ptr = (buf[i2 - 3] - 129) * 12600 + (buf[i2 - 2] - 48) * 1260 + (buf[i2 - 1] - 129) * 10 + (curByte - 48);
- } else {
- var ptr = (prevBytes[i2 - 3 + prevOffset] - 129) * 12600 + ((i2 - 2 >= 0 ? buf[i2 - 2] : prevBytes[i2 - 2 + prevOffset]) - 48) * 1260 + ((i2 - 1 >= 0 ? buf[i2 - 1] : prevBytes[i2 - 1 + prevOffset]) - 129) * 10 + (curByte - 48);
- }
- var idx = findIdx(this.gb18030.gbChars, ptr);
- uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx];
- } else if (uCode <= NODE_START) {
- nodeIdx = NODE_START - uCode;
- continue;
- } else if (uCode <= SEQ_START) {
- var seq = this.decodeTableSeq[SEQ_START - uCode];
- for (var k = 0; k < seq.length - 1; k++) {
- uCode = seq[k];
- newBuf[j++] = uCode & 255;
- newBuf[j++] = uCode >> 8;
- }
- uCode = seq[seq.length - 1];
- } else {
- throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte);
- }
- if (uCode >= 65536) {
- uCode -= 65536;
- var uCodeLead = 55296 | uCode >> 10;
- newBuf[j++] = uCodeLead & 255;
- newBuf[j++] = uCodeLead >> 8;
- uCode = 56320 | uCode & 1023;
- }
- newBuf[j++] = uCode & 255;
- newBuf[j++] = uCode >> 8;
- nodeIdx = 0;
- seqStart = i2 + 1;
- }
- this.nodeIdx = nodeIdx;
- this.prevBytes = seqStart >= 0 ? Array.prototype.slice.call(buf, seqStart) : prevBytes.slice(seqStart + prevOffset).concat(Array.prototype.slice.call(buf));
- return newBuf.slice(0, j).toString("ucs2");
- };
- DBCSDecoder.prototype.end = function() {
- var ret = "";
- while (this.prevBytes.length > 0) {
- ret += this.defaultCharUnicode;
- var bytesArr = this.prevBytes.slice(1);
- this.prevBytes = [];
- this.nodeIdx = 0;
- if (bytesArr.length > 0) {
- ret += this.write(bytesArr);
- }
- }
- this.prevBytes = [];
- this.nodeIdx = 0;
- return ret;
- };
- function findIdx(table, val) {
- if (table[0] > val) {
- return -1;
- }
- var l = 0;
- var r = table.length;
- while (l < r - 1) {
- var mid = l + (r - l + 1 >> 1);
- if (table[mid] <= val) {
- l = mid;
- } else {
- r = mid;
- }
- }
- return l;
- }
- }
- });
- // node_modules/iconv-lite/encodings/tables/shiftjis.json
- var require_shiftjis = __commonJS({
- "node_modules/iconv-lite/encodings/tables/shiftjis.json"(exports2, module2) {
- module2.exports = [
- ["0", "\0", 128],
- ["a1", "\uFF61", 62],
- ["8140", "\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008", 9, "\uFF0B\uFF0D\xB1\xD7"],
- ["8180", "\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],
- ["81b8", "\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],
- ["81c8", "\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],
- ["81da", "\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],
- ["81f0", "\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],
- ["81fc", "\u25EF"],
- ["824f", "\uFF10", 9],
- ["8260", "\uFF21", 25],
- ["8281", "\uFF41", 25],
- ["829f", "\u3041", 82],
- ["8340", "\u30A1", 62],
- ["8380", "\u30E0", 22],
- ["839f", "\u0391", 16, "\u03A3", 6],
- ["83bf", "\u03B1", 16, "\u03C3", 6],
- ["8440", "\u0410", 5, "\u0401\u0416", 25],
- ["8470", "\u0430", 5, "\u0451\u0436", 7],
- ["8480", "\u043E", 17],
- ["849f", "\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],
- ["8740", "\u2460", 19, "\u2160", 9],
- ["875f", "\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],
- ["877e", "\u337B"],
- ["8780", "\u301D\u301F\u2116\u33CD\u2121\u32A4", 4, "\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],
- ["889f", "\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],
- ["8940", "\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],
- ["8980", "\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],
- ["8a40", "\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],
- ["8a80", "\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],
- ["8b40", "\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],
- ["8b80", "\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],
- ["8c40", "\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],
- ["8c80", "\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],
- ["8d40", "\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],
- ["8d80", "\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],
- ["8e40", "\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],
- ["8e80", "\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],
- ["8f40", "\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],
- ["8f80", "\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],
- ["9040", "\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],
- ["9080", "\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],
- ["9140", "\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],
- ["9180", "\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],
- ["9240", "\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],
- ["9280", "\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],
- ["9340", "\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],
- ["9380", "\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],
- ["9440", "\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],
- ["9480", "\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],
- ["9540", "\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],
- ["9580", "\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],
- ["9640", "\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],
- ["9680", "\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],
- ["9740", "\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],
- ["9780", "\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],
- ["9840", "\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],
- ["989f", "\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],
- ["9940", "\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],
- ["9980", "\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],
- ["9a40", "\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],
- ["9a80", "\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],
- ["9b40", "\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],
- ["9b80", "\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],
- ["9c40", "\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],
- ["9c80", "\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],
- ["9d40", "\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],
- ["9d80", "\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],
- ["9e40", "\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],
- ["9e80", "\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],
- ["9f40", "\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],
- ["9f80", "\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],
- ["e040", "\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],
- ["e080", "\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],
- ["e140", "\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],
- ["e180", "\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],
- ["e240", "\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],
- ["e280", "\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],
- ["e340", "\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],
- ["e380", "\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],
- ["e440", "\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],
- ["e480", "\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],
- ["e540", "\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],
- ["e580", "\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],
- ["e640", "\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],
- ["e680", "\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],
- ["e740", "\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],
- ["e780", "\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],
- ["e840", "\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],
- ["e880", "\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],
- ["e940", "\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],
- ["e980", "\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],
- ["ea40", "\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],
- ["ea80", "\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],
- ["ed40", "\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],
- ["ed80", "\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],
- ["ee40", "\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],
- ["ee80", "\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],
- ["eeef", "\u2170", 9, "\uFFE2\uFFE4\uFF07\uFF02"],
- ["f040", "\uE000", 62],
- ["f080", "\uE03F", 124],
- ["f140", "\uE0BC", 62],
- ["f180", "\uE0FB", 124],
- ["f240", "\uE178", 62],
- ["f280", "\uE1B7", 124],
- ["f340", "\uE234", 62],
- ["f380", "\uE273", 124],
- ["f440", "\uE2F0", 62],
- ["f480", "\uE32F", 124],
- ["f540", "\uE3AC", 62],
- ["f580", "\uE3EB", 124],
- ["f640", "\uE468", 62],
- ["f680", "\uE4A7", 124],
- ["f740", "\uE524", 62],
- ["f780", "\uE563", 124],
- ["f840", "\uE5E0", 62],
- ["f880", "\uE61F", 124],
- ["f940", "\uE69C"],
- ["fa40", "\u2170", 9, "\u2160", 9, "\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],
- ["fa80", "\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],
- ["fb40", "\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],
- ["fb80", "\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],
- ["fc40", "\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]
- ];
- }
- });
- // node_modules/iconv-lite/encodings/tables/eucjp.json
- var require_eucjp = __commonJS({
- "node_modules/iconv-lite/encodings/tables/eucjp.json"(exports2, module2) {
- module2.exports = [
- ["0", "\0", 127],
- ["8ea1", "\uFF61", 62],
- ["a1a1", "\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008", 9, "\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],
- ["a2a1", "\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],
- ["a2ba", "\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],
- ["a2ca", "\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],
- ["a2dc", "\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],
- ["a2f2", "\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],
- ["a2fe", "\u25EF"],
- ["a3b0", "\uFF10", 9],
- ["a3c1", "\uFF21", 25],
- ["a3e1", "\uFF41", 25],
- ["a4a1", "\u3041", 82],
- ["a5a1", "\u30A1", 85],
- ["a6a1", "\u0391", 16, "\u03A3", 6],
- ["a6c1", "\u03B1", 16, "\u03C3", 6],
- ["a7a1", "\u0410", 5, "\u0401\u0416", 25],
- ["a7d1", "\u0430", 5, "\u0451\u0436", 25],
- ["a8a1", "\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],
- ["ada1", "\u2460", 19, "\u2160", 9],
- ["adc0", "\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],
- ["addf", "\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4", 4, "\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],
- ["b0a1", "\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],
- ["b1a1", "\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],
- ["b2a1", "\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],
- ["b3a1", "\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],
- ["b4a1", "\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],
- ["b5a1", "\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],
- ["b6a1", "\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],
- ["b7a1", "\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],
- ["b8a1", "\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],
- ["b9a1", "\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],
- ["baa1", "\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],
- ["bba1", "\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],
- ["bca1", "\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],
- ["bda1", "\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],
- ["bea1", "\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],
- ["bfa1", "\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],
- ["c0a1", "\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],
- ["c1a1", "\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],
- ["c2a1", "\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],
- ["c3a1", "\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],
- ["c4a1", "\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],
- ["c5a1", "\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],
- ["c6a1", "\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],
- ["c7a1", "\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],
- ["c8a1", "\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],
- ["c9a1", "\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],
- ["caa1", "\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],
- ["cba1", "\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],
- ["cca1", "\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],
- ["cda1", "\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],
- ["cea1", "\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],
- ["cfa1", "\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],
- ["d0a1", "\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],
- ["d1a1", "\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],
- ["d2a1", "\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],
- ["d3a1", "\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],
- ["d4a1", "\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],
- ["d5a1", "\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],
- ["d6a1", "\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],
- ["d7a1", "\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],
- ["d8a1", "\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],
- ["d9a1", "\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],
- ["daa1", "\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],
- ["dba1", "\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],
- ["dca1", "\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],
- ["dda1", "\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],
- ["dea1", "\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],
- ["dfa1", "\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],
- ["e0a1", "\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],
- ["e1a1", "\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],
- ["e2a1", "\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],
- ["e3a1", "\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],
- ["e4a1", "\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],
- ["e5a1", "\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],
- ["e6a1", "\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],
- ["e7a1", "\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],
- ["e8a1", "\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],
- ["e9a1", "\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],
- ["eaa1", "\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],
- ["eba1", "\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],
- ["eca1", "\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],
- ["eda1", "\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],
- ["eea1", "\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],
- ["efa1", "\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],
- ["f0a1", "\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],
- ["f1a1", "\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],
- ["f2a1", "\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],
- ["f3a1", "\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],
- ["f4a1", "\u582F\u69C7\u9059\u7464\u51DC\u7199"],
- ["f9a1", "\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],
- ["faa1", "\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],
- ["fba1", "\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],
- ["fca1", "\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],
- ["fcf1", "\u2170", 9, "\uFFE2\uFFE4\uFF07\uFF02"],
- ["8fa2af", "\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],
- ["8fa2c2", "\xA1\xA6\xBF"],
- ["8fa2eb", "\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],
- ["8fa6e1", "\u0386\u0388\u0389\u038A\u03AA"],
- ["8fa6e7", "\u038C"],
- ["8fa6e9", "\u038E\u03AB"],
- ["8fa6ec", "\u038F"],
- ["8fa6f1", "\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],
- ["8fa7c2", "\u0402", 10, "\u040E\u040F"],
- ["8fa7f2", "\u0452", 10, "\u045E\u045F"],
- ["8fa9a1", "\xC6\u0110"],
- ["8fa9a4", "\u0126"],
- ["8fa9a6", "\u0132"],
- ["8fa9a8", "\u0141\u013F"],
- ["8fa9ab", "\u014A\xD8\u0152"],
- ["8fa9af", "\u0166\xDE"],
- ["8fa9c1", "\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],
- ["8faaa1", "\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],
- ["8faaba", "\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],
- ["8faba1", "\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],
- ["8fabbd", "\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],
- ["8fabc5", "\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],
- ["8fb0a1", "\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],
- ["8fb1a1", "\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],
- ["8fb2a1", "\u5092\u5093\u5094\u5096\u509B\u509C\u509E", 4, "\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],
- ["8fb3a1", "\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],
- ["8fb4a1", "\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],
- ["8fb5a1", "\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],
- ["8fb6a1", "\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D", 5, "\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4", 4, "\u56F1\u56EB\u56ED"],
- ["8fb7a1", "\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D", 4, "\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],
- ["8fb8a1", "\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],
- ["8fb9a1", "\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],
- ["8fbaa1", "\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6", 4, "\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],
- ["8fbba1", "\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],
- ["8fbca1", "\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A", 4, "\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],
- ["8fbda1", "\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0", 4, "\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],
- ["8fbea1", "\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110", 4, "\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],
- ["8fbfa1", "\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],
- ["8fc0a1", "\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],
- ["8fc1a1", "\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],
- ["8fc2a1", "\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],
- ["8fc3a1", "\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E", 4, "\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],
- ["8fc4a1", "\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],
- ["8fc5a1", "\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],
- ["8fc6a1", "\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],
- ["8fc7a1", "\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],
- ["8fc8a1", "\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],
- ["8fc9a1", "\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094", 4, "\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103", 4, "\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],
- ["8fcaa1", "\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],
- ["8fcba1", "\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],
- ["8fcca1", "\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428", 9, "\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],
- ["8fcda1", "\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579", 5, "\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],
- ["8fcea1", "\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2", 6, "\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],
- ["8fcfa1", "\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],
- ["8fd0a1", "\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],
- ["8fd1a1", "\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],
- ["8fd2a1", "\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59", 5],
- ["8fd3a1", "\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],
- ["8fd4a1", "\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2", 4, "\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],
- ["8fd5a1", "\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],
- ["8fd6a1", "\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],
- ["8fd7a1", "\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],
- ["8fd8a1", "\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],
- ["8fd9a1", "\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F", 4, "\u8556\u8559\u855C", 6, "\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],
- ["8fdaa1", "\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660", 4, "\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],
- ["8fdba1", "\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783", 6, "\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],
- ["8fdca1", "\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA", 4, "\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],
- ["8fdda1", "\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4", 4, "\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],
- ["8fdea1", "\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42", 4, "\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],
- ["8fdfa1", "\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],
- ["8fe0a1", "\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],
- ["8fe1a1", "\u8F43\u8F47\u8F4F\u8F51", 4, "\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],
- ["8fe2a1", "\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],
- ["8fe3a1", "\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC", 5, "\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275", 4, "\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],
- ["8fe4a1", "\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF", 4, "\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],
- ["8fe5a1", "\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9", 4, "\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],
- ["8fe6a1", "\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],
- ["8fe7a1", "\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],
- ["8fe8a1", "\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931", 4, "\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],
- ["8fe9a1", "\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF", 4],
- ["8feaa1", "\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A", 4, "\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],
- ["8feba1", "\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26", 4, "\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],
- ["8feca1", "\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],
- ["8feda1", "\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43", 4, "\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D", 4, "\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]
- ];
- }
- });
- // node_modules/iconv-lite/encodings/tables/cp936.json
- var require_cp936 = __commonJS({
- "node_modules/iconv-lite/encodings/tables/cp936.json"(exports2, module2) {
- module2.exports = [
- ["0", "\0", 127, "\u20AC"],
- ["8140", "\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A", 5, "\u4E72\u4E74", 9, "\u4E7F", 6, "\u4E87\u4E8A"],
- ["8180", "\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02", 6, "\u4F0B\u4F0C\u4F12", 4, "\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E", 4, "\u4F44\u4F45\u4F47", 5, "\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],
- ["8240", "\u4FA4\u4FAB\u4FAD\u4FB0", 4, "\u4FB6", 8, "\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2", 4, "\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF", 11],
- ["8280", "\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F", 10, "\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050", 4, "\u5056\u5057\u5058\u5059\u505B\u505D", 7, "\u5066", 5, "\u506D", 8, "\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E", 20, "\u50A4\u50A6\u50AA\u50AB\u50AD", 4, "\u50B3", 6, "\u50BC"],
- ["8340", "\u50BD", 17, "\u50D0", 5, "\u50D7\u50D8\u50D9\u50DB", 10, "\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6", 4, "\u50FC", 9, "\u5108"],
- ["8380", "\u5109\u510A\u510C", 5, "\u5113", 13, "\u5122", 28, "\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D", 4, "\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6", 4, "\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2", 5],
- ["8440", "\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5", 5, "\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244", 5, "\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],
- ["8480", "\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273", 9, "\u527E\u5280\u5283", 4, "\u5289", 6, "\u5291\u5292\u5294", 6, "\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4", 9, "\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9", 5, "\u52E0\u52E1\u52E2\u52E3\u52E5", 10, "\u52F1", 7, "\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],
- ["8540", "\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F", 9, "\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],
- ["8580", "\u5390", 4, "\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF", 6, "\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3", 4, "\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D", 4, "\u5463\u5465\u5467\u5469", 7, "\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],
- ["8640", "\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0", 4, "\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4", 5, "\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A", 4, "\u5512\u5513\u5515", 5, "\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],
- ["8680", "\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B", 4, "\u5551\u5552\u5553\u5554\u5557", 4, "\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F", 5, "\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0", 6, "\u55A8", 8, "\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF", 4, "\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7", 4, "\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8", 4, "\u55FF\u5602\u5603\u5604\u5605"],
- ["8740", "\u5606\u5607\u560A\u560B\u560D\u5610", 7, "\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640", 11, "\u564F", 4, "\u5655\u5656\u565A\u565B\u565D", 4],
- ["8780", "\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D", 7, "\u5687", 6, "\u5690\u5691\u5692\u5694", 14, "\u56A4", 10, "\u56B0", 6, "\u56B8\u56B9\u56BA\u56BB\u56BD", 12, "\u56CB", 8, "\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5", 5, "\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B", 6],
- ["8840", "\u5712", 9, "\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734", 4, "\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752", 4, "\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],
- ["8880", "\u5781\u5787\u5788\u5789\u578A\u578D", 4, "\u5794", 6, "\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9", 8, "\u57C4", 6, "\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5", 7, "\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825", 4, "\u582B", 4, "\u5831\u5832\u5833\u5834\u5836", 7],
- ["8940", "\u583E", 5, "\u5845", 6, "\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859", 4, "\u585F", 5, "\u5866", 4, "\u586D", 16, "\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],
- ["8980", "\u588D", 4, "\u5894", 4, "\u589B\u589C\u589D\u58A0", 7, "\u58AA", 17, "\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6", 10, "\u58D2\u58D3\u58D4\u58D6", 13, "\u58E5", 5, "\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA", 7, "\u5903\u5905\u5906\u5908", 4, "\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],
- ["8a40", "\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B", 4, "\u5961\u5963\u5964\u5966", 12, "\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],
- ["8a80", "\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3", 5, "\u59BA\u59BC\u59BD\u59BF", 6, "\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE", 4, "\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED", 11, "\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A", 6, "\u5A33\u5A35\u5A37", 4, "\u5A3D\u5A3E\u5A3F\u5A41", 4, "\u5A47\u5A48\u5A4B", 9, "\u5A56\u5A57\u5A58\u5A59\u5A5B", 5],
- ["8b40", "\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B", 8, "\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80", 17, "\u5A93", 6, "\u5A9C", 13, "\u5AAB\u5AAC"],
- ["8b80", "\u5AAD", 4, "\u5AB4\u5AB6\u5AB7\u5AB9", 4, "\u5ABF\u5AC0\u5AC3", 5, "\u5ACA\u5ACB\u5ACD", 4, "\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC", 4, "\u5AF2", 22, "\u5B0A", 11, "\u5B18", 25, "\u5B33\u5B35\u5B36\u5B38", 7, "\u5B41", 6],
- ["8c40", "\u5B48", 7, "\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],
- ["8c80", "\u5BD1\u5BD4", 8, "\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9", 4, "\u5BEF\u5BF1", 6, "\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67", 6, "\u5C70\u5C72", 6, "\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83", 4, "\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D", 4, "\u5CA4", 4],
- ["8d40", "\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5", 5, "\u5CCC", 5, "\u5CD3", 5, "\u5CDA", 6, "\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1", 9, "\u5CFC", 4],
- ["8d80", "\u5D01\u5D04\u5D05\u5D08", 5, "\u5D0F", 4, "\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F", 4, "\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F", 4, "\u5D35", 7, "\u5D3F", 7, "\u5D48\u5D49\u5D4D", 10, "\u5D59\u5D5A\u5D5C\u5D5E", 10, "\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75", 12, "\u5D83", 21, "\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],
- ["8e40", "\u5DA1", 21, "\u5DB8", 12, "\u5DC6", 6, "\u5DCE", 12, "\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],
- ["8e80", "\u5DF0\u5DF5\u5DF6\u5DF8", 4, "\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E", 7, "\u5E28", 4, "\u5E2F\u5E30\u5E32", 4, "\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46", 5, "\u5E4D", 6, "\u5E56", 4, "\u5E5C\u5E5D\u5E5F\u5E60\u5E63", 14, "\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8", 4, "\u5EAE", 4, "\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF", 6],
- ["8f40", "\u5EC6\u5EC7\u5EC8\u5ECB", 5, "\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC", 11, "\u5EE9\u5EEB", 8, "\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],
- ["8f80", "\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32", 6, "\u5F3B\u5F3D\u5F3E\u5F3F\u5F41", 14, "\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2", 5, "\u5FA9\u5FAB\u5FAC\u5FAF", 5, "\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE", 4, "\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],
- ["9040", "\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030", 4, "\u6036", 4, "\u603D\u603E\u6040\u6044", 6, "\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],
- ["9080", "\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD", 7, "\u60C7\u60C8\u60C9\u60CC", 4, "\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1", 4, "\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB", 4, "\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110", 4, "\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C", 18, "\u6140", 6],
- ["9140", "\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156", 6, "\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169", 6, "\u6171\u6172\u6173\u6174\u6176\u6178", 18, "\u618C\u618D\u618F", 4, "\u6195"],
- ["9180", "\u6196", 6, "\u619E", 8, "\u61AA\u61AB\u61AD", 9, "\u61B8", 5, "\u61BF\u61C0\u61C1\u61C3", 4, "\u61C9\u61CC", 4, "\u61D3\u61D5", 16, "\u61E7", 13, "\u61F6", 8, "\u6200", 5, "\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238", 4, "\u6242\u6244\u6245\u6246\u624A"],
- ["9240", "\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C", 6, "\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B", 5, "\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],
- ["9280", "\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333", 5, "\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356", 7, "\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399", 6, "\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],
- ["9340", "\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7", 6, "\u63DF\u63E2\u63E4", 4, "\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406", 4, "\u640D\u640E\u6411\u6412\u6415", 5, "\u641D\u641F\u6422\u6423\u6424"],
- ["9380", "\u6425\u6427\u6428\u6429\u642B\u642E", 5, "\u6435", 4, "\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B", 6, "\u6453\u6455\u6456\u6457\u6459", 4, "\u645F", 7, "\u6468\u646A\u646B\u646C\u646E", 9, "\u647B", 6, "\u6483\u6486\u6488", 8, "\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F", 4, "\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6", 6, "\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],
- ["9440", "\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7", 24, "\u6501", 7, "\u650A", 7, "\u6513", 4, "\u6519", 8],
- ["9480", "\u6522\u6523\u6524\u6526", 4, "\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540", 4, "\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578", 14, "\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1", 7, "\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8", 7, "\u65E1\u65E3\u65E4\u65EA\u65EB"],
- ["9540", "\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB", 4, "\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637", 4, "\u663D\u663F\u6640\u6642\u6644", 6, "\u664D\u664E\u6650\u6651\u6658"],
- ["9580", "\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669", 4, "\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698", 4, "\u669E", 8, "\u66A9", 4, "\u66AF", 4, "\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF", 25, "\u66DA\u66DE", 7, "\u66E7\u66E8\u66EA", 5, "\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],
- ["9640", "\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720", 5, "\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757", 4, "\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],
- ["9680", "\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9", 7, "\u67C2\u67C5", 9, "\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5", 7, "\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818", 4, "\u681E\u681F\u6820\u6822", 6, "\u682B", 6, "\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856", 5],
- ["9740", "\u685C\u685D\u685E\u685F\u686A\u686C", 7, "\u6875\u6878", 8, "\u6882\u6884\u6887", 7, "\u6890\u6891\u6892\u6894\u6895\u6896\u6898", 9, "\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],
- ["9780", "\u68B9", 6, "\u68C1\u68C3", 5, "\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB", 4, "\u68E1\u68E2\u68E4", 9, "\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906", 4, "\u690C\u690F\u6911\u6913", 11, "\u6921\u6922\u6923\u6925", 7, "\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943", 16, "\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],
- ["9840", "\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972", 4, "\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E", 5, "\u6996\u6997\u6999\u699A\u699D", 9, "\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],
- ["9880", "\u69BE\u69BF\u69C0\u69C2", 7, "\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5", 5, "\u69DC\u69DD\u69DE\u69E1", 11, "\u69EE\u69EF\u69F0\u69F1\u69F3", 9, "\u69FE\u6A00", 9, "\u6A0B", 11, "\u6A19", 5, "\u6A20\u6A22", 5, "\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36", 6, "\u6A3F", 4, "\u6A45\u6A46\u6A48", 7, "\u6A51", 6, "\u6A5A"],
- ["9940", "\u6A5C", 4, "\u6A62\u6A63\u6A64\u6A66", 10, "\u6A72", 6, "\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85", 8, "\u6A8F\u6A92", 4, "\u6A98", 7, "\u6AA1", 5],
- ["9980", "\u6AA7\u6AA8\u6AAA\u6AAD", 114, "\u6B25\u6B26\u6B28", 6],
- ["9a40", "\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D", 11, "\u6B5A", 7, "\u6B68\u6B69\u6B6B", 13, "\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],
- ["9a80", "\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C", 4, "\u6BA2", 7, "\u6BAB", 7, "\u6BB6\u6BB8", 6, "\u6BC0\u6BC3\u6BC4\u6BC6", 4, "\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC", 4, "\u6BE2", 7, "\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE", 6, "\u6C08", 4, "\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B", 4, "\u6C51\u6C52\u6C53\u6C56\u6C58"],
- ["9b40", "\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B", 4, "\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],
- ["9b80", "\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F", 5, "\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D", 4, "\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96", 4, "\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9", 5, "\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],
- ["9c40", "\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD", 7, "\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],
- ["9c80", "\u6E36\u6E37\u6E39\u6E3B", 7, "\u6E45", 7, "\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60", 10, "\u6E6C\u6E6D\u6E6F", 14, "\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A", 4, "\u6E91", 6, "\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA", 5],
- ["9d40", "\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA", 7, "\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A", 4, "\u6F10\u6F11\u6F12\u6F16", 9, "\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37", 6, "\u6F3F\u6F40\u6F41\u6F42"],
- ["9d80", "\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E", 9, "\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67", 5, "\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D", 6, "\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F", 12, "\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2", 4, "\u6FA8", 10, "\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA", 5, "\u6FC1\u6FC3", 5, "\u6FCA", 6, "\u6FD3", 10, "\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],
- ["9e40", "\u6FE6", 7, "\u6FF0", 32, "\u7012", 7, "\u701C", 6, "\u7024", 6],
- ["9e80", "\u702B", 9, "\u7036\u7037\u7038\u703A", 17, "\u704D\u704E\u7050", 13, "\u705F", 11, "\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E", 12, "\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB", 12, "\u70DA"],
- ["9f40", "\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0", 6, "\u70F8\u70FA\u70FB\u70FC\u70FE", 10, "\u710B", 4, "\u7111\u7112\u7114\u7117\u711B", 10, "\u7127", 7, "\u7132\u7133\u7134"],
- ["9f80", "\u7135\u7137", 13, "\u7146\u7147\u7148\u7149\u714B\u714D\u714F", 12, "\u715D\u715F", 4, "\u7165\u7169", 4, "\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E", 5, "\u7185", 4, "\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A", 4, "\u71A1", 6, "\u71A9\u71AA\u71AB\u71AD", 5, "\u71B4\u71B6\u71B7\u71B8\u71BA", 8, "\u71C4", 9, "\u71CF", 4],
- ["a040", "\u71D6", 9, "\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8", 5, "\u71EF", 9, "\u71FA", 11, "\u7207", 19],
- ["a080", "\u721B\u721C\u721E", 9, "\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240", 6, "\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285", 4, "\u728C\u728E\u7290\u7291\u7293", 11, "\u72A0", 11, "\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA", 6, "\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],
- ["a1a1", "\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008", 7, "\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],
- ["a2a1", "\u2170", 9],
- ["a2b1", "\u2488", 19, "\u2474", 19, "\u2460", 9],
- ["a2e5", "\u3220", 9],
- ["a2f1", "\u2160", 11],
- ["a3a1", "\uFF01\uFF02\uFF03\uFFE5\uFF05", 88, "\uFFE3"],
- ["a4a1", "\u3041", 82],
- ["a5a1", "\u30A1", 85],
- ["a6a1", "\u0391", 16, "\u03A3", 6],
- ["a6c1", "\u03B1", 16, "\u03C3", 6],
- ["a6e0", "\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],
- ["a6ee", "\uFE3B\uFE3C\uFE37\uFE38\uFE31"],
- ["a6f4", "\uFE33\uFE34"],
- ["a7a1", "\u0410", 5, "\u0401\u0416", 25],
- ["a7d1", "\u0430", 5, "\u0451\u0436", 25],
- ["a840", "\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550", 35, "\u2581", 6],
- ["a880", "\u2588", 7, "\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],
- ["a8a1", "\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],
- ["a8bd", "\u0144\u0148"],
- ["a8c0", "\u0261"],
- ["a8c5", "\u3105", 36],
- ["a940", "\u3021", 8, "\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],
- ["a959", "\u2121\u3231"],
- ["a95c", "\u2010"],
- ["a960", "\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49", 9, "\uFE54\uFE55\uFE56\uFE57\uFE59", 8],
- ["a980", "\uFE62", 4, "\uFE68\uFE69\uFE6A\uFE6B"],
- ["a996", "\u3007"],
- ["a9a4", "\u2500", 75],
- ["aa40", "\u72DC\u72DD\u72DF\u72E2", 5, "\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304", 5, "\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340", 8],
- ["aa80", "\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358", 7, "\u7361", 10, "\u736E\u7370\u7371"],
- ["ab40", "\u7372", 11, "\u737F", 4, "\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3", 5, "\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3", 4],
- ["ab80", "\u73CB\u73CC\u73CE\u73D2", 6, "\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3", 4],
- ["ac40", "\u73F8", 10, "\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411", 8, "\u741C", 5, "\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437", 4, "\u743D\u743E\u743F\u7440\u7442", 11],
- ["ac80", "\u744E", 6, "\u7456\u7458\u745D\u7460", 12, "\u746E\u746F\u7471", 4, "\u7478\u7479\u747A"],
- ["ad40", "\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491", 10, "\u749D\u749F", 7, "\u74AA", 15, "\u74BB", 12],
- ["ad80", "\u74C8", 9, "\u74D3", 8, "\u74DD\u74DF\u74E1\u74E5\u74E7", 6, "\u74F0\u74F1\u74F2"],
- ["ae40", "\u74F3\u74F5\u74F8", 6, "\u7500\u7501\u7502\u7503\u7505", 7, "\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520", 4, "\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],
- ["ae80", "\u755D", 7, "\u7567\u7568\u7569\u756B", 6, "\u7573\u7575\u7576\u7577\u757A", 4, "\u7580\u7581\u7582\u7584\u7585\u7587"],
- ["af40", "\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6", 4, "\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],
- ["af80", "\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],
- ["b040", "\u7645", 6, "\u764E", 5, "\u7655\u7657", 4, "\u765D\u765F\u7660\u7661\u7662\u7664", 6, "\u766C\u766D\u766E\u7670", 7, "\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],
- ["b080", "\u769C", 7, "\u76A5", 8, "\u76AF\u76B0\u76B3\u76B5", 9, "\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],
- ["b140", "\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0", 4, "\u76E6", 7, "\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E", 10, "\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],
- ["b180", "\u772C\u772E\u7730", 4, "\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748", 7, "\u7752", 7, "\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],
- ["b240", "\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D", 11, "\u777A\u777B\u777C\u7781\u7782\u7783\u7786", 5, "\u778F\u7790\u7793", 11, "\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6", 4],
- ["b280", "\u77BC\u77BE\u77C0", 12, "\u77CE", 8, "\u77D8\u77D9\u77DA\u77DD", 4, "\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],
- ["b340", "\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803", 5, "\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],
- ["b380", "\u785B\u785C\u785E", 11, "\u786F", 7, "\u7878\u7879\u787A\u787B\u787D", 6, "\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],
- ["b440", "\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8", 7, "\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA", 9],
- ["b480", "\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED", 4, "\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB", 5, "\u7902\u7903\u7904\u7906", 6, "\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],
- ["b540", "\u790D", 5, "\u7914", 9, "\u791F", 4, "\u7925", 14, "\u7935", 4, "\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A", 8, "\u7954\u7955\u7958\u7959\u7961\u7963"],
- ["b580", "\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970", 6, "\u7979\u797B", 4, "\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],
- ["b640", "\u7993", 6, "\u799B", 11, "\u79A8", 10, "\u79B4", 4, "\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9", 5, "\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],
- ["b680", "\u79EC\u79EE\u79F1", 6, "\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F", 4, "\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],
- ["b740", "\u7A1D\u7A1F\u7A21\u7A22\u7A24", 14, "\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40", 5, "\u7A47", 9, "\u7A52", 4, "\u7A58", 16],
- ["b780", "\u7A69", 6, "\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],
- ["b840", "\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE", 4, "\u7AB4", 10, "\u7AC0", 10, "\u7ACC", 9, "\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7", 5, "\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],
- ["b880", "\u7AF4", 4, "\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],
- ["b940", "\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F", 5, "\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63", 10, "\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86", 6, "\u7B8E\u7B8F"],
- ["b980", "\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9", 7, "\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],
- ["ba40", "\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4", 4, "\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2", 4, "\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF", 7, "\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10", 5, "\u7C17\u7C18\u7C19"],
- ["ba80", "\u7C1A", 4, "\u7C20", 5, "\u7C28\u7C29\u7C2B", 12, "\u7C39", 5, "\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],
- ["bb40", "\u7C43", 9, "\u7C4E", 36, "\u7C75", 5, "\u7C7E", 9],
- ["bb80", "\u7C88\u7C8A", 6, "\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4", 4, "\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],
- ["bc40", "\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE", 6, "\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1", 6, "\u7CE9", 5, "\u7CF0", 7, "\u7CF9\u7CFA\u7CFC", 13, "\u7D0B", 5],
- ["bc80", "\u7D11", 14, "\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30", 6, "\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],
- ["bd40", "\u7D37", 54, "\u7D6F", 7],
- ["bd80", "\u7D78", 32, "\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],
- ["be40", "\u7D99", 12, "\u7DA7", 6, "\u7DAF", 42],
- ["be80", "\u7DDA", 32, "\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],
- ["bf40", "\u7DFB", 62],
- ["bf80", "\u7E3A\u7E3C", 4, "\u7E42", 4, "\u7E48", 21, "\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],
- ["c040", "\u7E5E", 35, "\u7E83", 23, "\u7E9C\u7E9D\u7E9E"],
- ["c080", "\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B", 6, "\u7F43\u7F46", 9, "\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],
- ["c140", "\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63", 4, "\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82", 7, "\u7F8B\u7F8D\u7F8F", 4, "\u7F95", 4, "\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8", 6, "\u7FB1"],
- ["c180", "\u7FB3", 4, "\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF", 4, "\u7FD6\u7FD7\u7FD9", 5, "\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],
- ["c240", "\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4", 6, "\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B", 5, "\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],
- ["c280", "\u8059\u805B", 13, "\u806B", 5, "\u8072", 11, "\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],
- ["c340", "\u807E\u8081\u8082\u8085\u8088\u808A\u808D", 5, "\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7", 4, "\u80CF", 6, "\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],
- ["c380", "\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F", 12, "\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139", 4, "\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],
- ["c440", "\u8140", 5, "\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B", 4, "\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183", 4, "\u8189\u818B\u818C\u818D\u818E\u8190\u8192", 5, "\u8199\u819A\u819E", 4, "\u81A4\u81A5"],
- ["c480", "\u81A7\u81A9\u81AB", 7, "\u81B4", 5, "\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD", 6, "\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],
- ["c540", "\u81D4", 14, "\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE", 4, "\u81F5", 5, "\u81FD\u81FF\u8203\u8207", 4, "\u820E\u820F\u8211\u8213\u8215", 5, "\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],
- ["c580", "\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250", 7, "\u8259\u825B\u825C\u825D\u825E\u8260", 7, "\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],
- ["c640", "\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],
- ["c680", "\u82FA\u82FC", 4, "\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D", 9, "\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],
- ["c740", "\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A", 4, "\u8353\u8355", 4, "\u835D\u8362\u8370", 6, "\u8379\u837A\u837E", 6, "\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1", 6, "\u83AC\u83AD\u83AE"],
- ["c780", "\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],
- ["c840", "\u83EE\u83EF\u83F3", 4, "\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412", 5, "\u8419\u841A\u841B\u841E", 5, "\u8429", 7, "\u8432", 5, "\u8439\u843A\u843B\u843E", 7, "\u8447\u8448\u8449"],
- ["c880", "\u844A", 6, "\u8452", 4, "\u8458\u845D\u845E\u845F\u8460\u8462\u8464", 4, "\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],
- ["c940", "\u847D", 4, "\u8483\u8484\u8485\u8486\u848A\u848D\u848F", 7, "\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2", 12, "\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],
- ["c980", "\u84D8", 4, "\u84DE\u84E1\u84E2\u84E4\u84E7", 4, "\u84ED\u84EE\u84EF\u84F1", 10, "\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],
- ["ca40", "\u8503", 8, "\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522", 8, "\u852D", 9, "\u853E", 4, "\u8544\u8545\u8546\u8547\u854B", 10],
- ["ca80", "\u8557\u8558\u855A\u855B\u855C\u855D\u855F", 4, "\u8565\u8566\u8567\u8569", 8, "\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],
- ["cb40", "\u8582\u8583\u8586\u8588", 6, "\u8590", 10, "\u859D", 6, "\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1", 5, "\u85B8\u85BA", 6, "\u85C2", 6, "\u85CA", 4, "\u85D1\u85D2"],
- ["cb80", "\u85D4\u85D6", 5, "\u85DD", 6, "\u85E5\u85E6\u85E7\u85E8\u85EA", 14, "\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],
- ["cc40", "\u85F9\u85FA\u85FC\u85FD\u85FE\u8600", 4, "\u8606", 10, "\u8612\u8613\u8614\u8615\u8617", 15, "\u8628\u862A", 13, "\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],
- ["cc80", "\u8641", 11, "\u8652\u8653\u8655", 4, "\u865B\u865C\u865D\u865F\u8660\u8661\u8663", 7, "\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],
- ["cd40", "\u866D\u866F\u8670\u8672", 6, "\u8683", 6, "\u868E", 4, "\u8694\u8696", 5, "\u869E", 4, "\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB", 4, "\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],
- ["cd80", "\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],
- ["ce40", "\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740", 6, "\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A", 5, "\u8761\u8762\u8766", 7, "\u876F\u8771\u8772\u8773\u8775"],
- ["ce80", "\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E", 4, "\u8794\u8795\u8796\u8798", 6, "\u87A0", 4, "\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],
- ["cf40", "\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1", 4, "\u87C7\u87C8\u87C9\u87CC", 4, "\u87D4", 6, "\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF", 9],
- ["cf80", "\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804", 5, "\u880B", 7, "\u8814\u8817\u8818\u8819\u881A\u881C", 4, "\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],
- ["d040", "\u8824", 13, "\u8833", 5, "\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846", 5, "\u884E", 5, "\u8855\u8856\u8858\u885A", 6, "\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],
- ["d080", "\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897", 4, "\u889D", 4, "\u88A3\u88A5", 5, "\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],
- ["d140", "\u88AC\u88AE\u88AF\u88B0\u88B2", 4, "\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA", 4, "\u88E0\u88E1\u88E6\u88E7\u88E9", 6, "\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903", 5],
- ["d180", "\u8909\u890B", 4, "\u8911\u8914", 4, "\u891C", 4, "\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],
- ["d240", "\u8938", 8, "\u8942\u8943\u8945", 24, "\u8960", 5, "\u8967", 19, "\u897C"],
- ["d280", "\u897D\u897E\u8980\u8982\u8984\u8985\u8987", 26, "\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],
- ["d340", "\u89A2", 30, "\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4", 6],
- ["d380", "\u89FB", 4, "\u8A01", 5, "\u8A08", 21, "\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],
- ["d440", "\u8A1E", 31, "\u8A3F", 8, "\u8A49", 21],
- ["d480", "\u8A5F", 25, "\u8A7A", 6, "\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],
- ["d540", "\u8A81", 7, "\u8A8B", 7, "\u8A94", 46],
- ["d580", "\u8AC3", 32, "\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],
- ["d640", "\u8AE4", 34, "\u8B08", 27],
- ["d680", "\u8B24\u8B25\u8B27", 30, "\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],
- ["d740", "\u8B46", 31, "\u8B67", 4, "\u8B6D", 25],
- ["d780", "\u8B87", 24, "\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],
- ["d840", "\u8C38", 8, "\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D", 7, "\u8C56\u8C57\u8C58\u8C59\u8C5B", 5, "\u8C63", 6, "\u8C6C", 6, "\u8C74\u8C75\u8C76\u8C77\u8C7B", 6, "\u8C83\u8C84\u8C86\u8C87"],
- ["d880", "\u8C88\u8C8B\u8C8D", 6, "\u8C95\u8C96\u8C97\u8C99", 20, "\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],
- ["d940", "\u8CAE", 62],
- ["d980", "\u8CED", 32, "\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],
- ["da40", "\u8D0E", 14, "\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78", 8, "\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C", 4, "\u8D92\u8D93\u8D95", 9, "\u8DA0\u8DA1"],
- ["da80", "\u8DA2\u8DA4", 12, "\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],
- ["db40", "\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE", 6, "\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15", 7, "\u8E20\u8E21\u8E24", 4, "\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],
- ["db80", "\u8E3F\u8E43\u8E45\u8E46\u8E4C", 4, "\u8E53", 5, "\u8E5A", 11, "\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],
- ["dc40", "\u8E73\u8E75\u8E77", 4, "\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88", 6, "\u8E91\u8E92\u8E93\u8E95", 6, "\u8E9D\u8E9F", 11, "\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3", 6, "\u8EBB", 7],
- ["dc80", "\u8EC3", 10, "\u8ECF", 21, "\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],
- ["dd40", "\u8EE5", 62],
- ["dd80", "\u8F24", 32, "\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],
- ["de40", "\u8F45", 32, "\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],
- ["de80", "\u8FC9", 4, "\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],
- ["df40", "\u9019\u901C\u9023\u9024\u9025\u9027", 5, "\u9030", 4, "\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048", 4, "\u904E\u9054\u9055\u9056\u9059\u905A\u905C", 5, "\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F", 4, "\u9076", 6, "\u907E\u9081"],
- ["df80", "\u9084\u9085\u9086\u9087\u9089\u908A\u908C", 4, "\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],
- ["e040", "\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105", 19, "\u911A\u911B\u911C"],
- ["e080", "\u911D\u911F\u9120\u9121\u9124", 10, "\u9130\u9132", 6, "\u913A", 8, "\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],
- ["e140", "\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180", 4, "\u9186\u9188\u918A\u918E\u918F\u9193", 6, "\u919C", 5, "\u91A4", 5, "\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],
- ["e180", "\u91BC", 10, "\u91C8\u91CB\u91D0\u91D2", 9, "\u91DD", 8, "\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],
- ["e240", "\u91E6", 62],
- ["e280", "\u9225", 32, "\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967", 5, "\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],
- ["e340", "\u9246", 45, "\u9275", 16],
- ["e380", "\u9286", 7, "\u928F", 24, "\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],
- ["e440", "\u92A8", 5, "\u92AF", 24, "\u92C9", 31],
- ["e480", "\u92E9", 32, "\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],
- ["e540", "\u930A", 51, "\u933F", 10],
- ["e580", "\u934A", 31, "\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],
- ["e640", "\u936C", 34, "\u9390", 27],
- ["e680", "\u93AC", 29, "\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],
- ["e740", "\u93CE", 7, "\u93D7", 54],
- ["e780", "\u940E", 32, "\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21", 6, "\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F", 4, "\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],
- ["e840", "\u942F", 14, "\u943F", 43, "\u946C\u946D\u946E\u946F"],
- ["e880", "\u9470", 20, "\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],
- ["e940", "\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577", 7, "\u9580", 42],
- ["e980", "\u95AB", 32, "\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],
- ["ea40", "\u95CC", 27, "\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623", 6, "\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],
- ["ea80", "\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D", 4, "\u9673\u9678", 12, "\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],
- ["eb40", "\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D", 9, "\u96A8", 7, "\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6", 9, "\u96E1", 6, "\u96EB"],
- ["eb80", "\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717", 4, "\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],
- ["ec40", "\u9721", 8, "\u972B\u972C\u972E\u972F\u9731\u9733", 4, "\u973A\u973B\u973C\u973D\u973F", 18, "\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A", 7],
- ["ec80", "\u9772\u9775\u9777", 4, "\u977D", 7, "\u9786", 4, "\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799", 4, "\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],
- ["ed40", "\u979E\u979F\u97A1\u97A2\u97A4", 6, "\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5", 46],
- ["ed80", "\u97E4\u97E5\u97E8\u97EE", 4, "\u97F4\u97F7", 23, "\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],
- ["ee40", "\u980F", 62],
- ["ee80", "\u984E", 32, "\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6", 4, "\u94BC\u94BD\u94BF\u94C4\u94C8", 6, "\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],
- ["ef40", "\u986F", 5, "\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8", 37, "\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0", 4],
- ["ef80", "\u98E5\u98E6\u98E9", 30, "\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512", 4, "\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564", 8, "\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],
- ["f040", "\u9908", 4, "\u990E\u990F\u9911", 28, "\u992F", 26],
- ["f080", "\u994A", 9, "\u9956", 12, "\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28", 4, "\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66", 6, "\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],
- ["f140", "\u998C\u998E\u999A", 10, "\u99A6\u99A7\u99A9", 47],
- ["f180", "\u99D9", 32, "\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],
- ["f240", "\u99FA", 62],
- ["f280", "\u9A39", 32, "\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],
- ["f340", "\u9A5A", 17, "\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9", 6, "\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6", 4, "\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],
- ["f380", "\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0", 8, "\u9AFA\u9AFC", 6, "\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],
- ["f440", "\u9B07\u9B09", 5, "\u9B10\u9B11\u9B12\u9B14", 10, "\u9B20\u9B21\u9B22\u9B24", 10, "\u9B30\u9B31\u9B33", 7, "\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55", 5],
- ["f480", "\u9B5B", 32, "\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],
- ["f540", "\u9B7C", 62],
- ["f580", "\u9BBB", 32, "\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],
- ["f640", "\u9BDC", 62],
- ["f680", "\u9C1B", 32, "\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85", 5, "\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E", 5, "\u9CA5", 4, "\u9CAB\u9CAD\u9CAE\u9CB0", 7, "\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],
- ["f740", "\u9C3C", 62],
- ["f780", "\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE", 4, "\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC", 4, "\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],
- ["f840", "\u9CE3", 62],
- ["f880", "\u9D22", 32],
- ["f940", "\u9D43", 62],
- ["f980", "\u9D82", 32],
- ["fa40", "\u9DA3", 62],
- ["fa80", "\u9DE2", 32],
- ["fb40", "\u9E03", 27, "\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74", 9, "\u9E80"],
- ["fb80", "\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C", 5, "\u9E94", 8, "\u9E9E\u9EA0", 5, "\u9EA7\u9EA8\u9EA9\u9EAA"],
- ["fc40", "\u9EAB", 8, "\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF", 4, "\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0", 8, "\u9EFA\u9EFD\u9EFF", 6],
- ["fc80", "\u9F06", 4, "\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A", 5, "\u9F21\u9F23", 8, "\u9F2D\u9F2E\u9F30\u9F31"],
- ["fd40", "\u9F32", 4, "\u9F38\u9F3A\u9F3C\u9F3F", 4, "\u9F45", 10, "\u9F52", 38],
- ["fd80", "\u9F79", 5, "\u9F81\u9F82\u9F8D", 11, "\u9F9C\u9F9D\u9F9E\u9FA1", 4, "\uF92C\uF979\uF995\uF9E7\uF9F1"],
- ["fe40", "\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]
- ];
- }
- });
- // node_modules/iconv-lite/encodings/tables/gbk-added.json
- var require_gbk_added = __commonJS({
- "node_modules/iconv-lite/encodings/tables/gbk-added.json"(exports2, module2) {
- module2.exports = [
- ["a140", "\uE4C6", 62],
- ["a180", "\uE505", 32],
- ["a240", "\uE526", 62],
- ["a280", "\uE565", 32],
- ["a2ab", "\uE766", 5],
- ["a2e3", "\u20AC\uE76D"],
- ["a2ef", "\uE76E\uE76F"],
- ["a2fd", "\uE770\uE771"],
- ["a340", "\uE586", 62],
- ["a380", "\uE5C5", 31, "\u3000"],
- ["a440", "\uE5E6", 62],
- ["a480", "\uE625", 32],
- ["a4f4", "\uE772", 10],
- ["a540", "\uE646", 62],
- ["a580", "\uE685", 32],
- ["a5f7", "\uE77D", 7],
- ["a640", "\uE6A6", 62],
- ["a680", "\uE6E5", 32],
- ["a6b9", "\uE785", 7],
- ["a6d9", "\uE78D", 6],
- ["a6ec", "\uE794\uE795"],
- ["a6f3", "\uE796"],
- ["a6f6", "\uE797", 8],
- ["a740", "\uE706", 62],
- ["a780", "\uE745", 32],
- ["a7c2", "\uE7A0", 14],
- ["a7f2", "\uE7AF", 12],
- ["a896", "\uE7BC", 10],
- ["a8bc", "\u1E3F"],
- ["a8bf", "\u01F9"],
- ["a8c1", "\uE7C9\uE7CA\uE7CB\uE7CC"],
- ["a8ea", "\uE7CD", 20],
- ["a958", "\uE7E2"],
- ["a95b", "\uE7E3"],
- ["a95d", "\uE7E4\uE7E5\uE7E6"],
- ["a989", "\u303E\u2FF0", 11],
- ["a997", "\uE7F4", 12],
- ["a9f0", "\uE801", 14],
- ["aaa1", "\uE000", 93],
- ["aba1", "\uE05E", 93],
- ["aca1", "\uE0BC", 93],
- ["ada1", "\uE11A", 93],
- ["aea1", "\uE178", 93],
- ["afa1", "\uE1D6", 93],
- ["d7fa", "\uE810", 4],
- ["f8a1", "\uE234", 93],
- ["f9a1", "\uE292", 93],
- ["faa1", "\uE2F0", 93],
- ["fba1", "\uE34E", 93],
- ["fca1", "\uE3AC", 93],
- ["fda1", "\uE40A", 93],
- ["fe50", "\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],
- ["fe80", "\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13", 6, "\u4DAE\uE864\uE468", 93],
- ["8135f437", "\uE7C7"]
- ];
- }
- });
- // node_modules/iconv-lite/encodings/tables/gb18030-ranges.json
- var require_gb18030_ranges = __commonJS({
- "node_modules/iconv-lite/encodings/tables/gb18030-ranges.json"(exports2, module2) {
- module2.exports = { uChars: [128, 165, 169, 178, 184, 216, 226, 235, 238, 244, 248, 251, 253, 258, 276, 284, 300, 325, 329, 334, 364, 463, 465, 467, 469, 471, 473, 475, 477, 506, 594, 610, 712, 716, 730, 930, 938, 962, 970, 1026, 1104, 1106, 8209, 8215, 8218, 8222, 8231, 8241, 8244, 8246, 8252, 8365, 8452, 8454, 8458, 8471, 8482, 8556, 8570, 8596, 8602, 8713, 8720, 8722, 8726, 8731, 8737, 8740, 8742, 8748, 8751, 8760, 8766, 8777, 8781, 8787, 8802, 8808, 8816, 8854, 8858, 8870, 8896, 8979, 9322, 9372, 9548, 9588, 9616, 9622, 9634, 9652, 9662, 9672, 9676, 9680, 9702, 9735, 9738, 9793, 9795, 11906, 11909, 11913, 11917, 11928, 11944, 11947, 11951, 11956, 11960, 11964, 11979, 12284, 12292, 12312, 12319, 12330, 12351, 12436, 12447, 12535, 12543, 12586, 12842, 12850, 12964, 13200, 13215, 13218, 13253, 13263, 13267, 13270, 13384, 13428, 13727, 13839, 13851, 14617, 14703, 14801, 14816, 14964, 15183, 15471, 15585, 16471, 16736, 17208, 17325, 17330, 17374, 17623, 17997, 18018, 18212, 18218, 18301, 18318, 18760, 18811, 18814, 18820, 18823, 18844, 18848, 18872, 19576, 19620, 19738, 19887, 40870, 59244, 59336, 59367, 59413, 59417, 59423, 59431, 59437, 59443, 59452, 59460, 59478, 59493, 63789, 63866, 63894, 63976, 63986, 64016, 64018, 64021, 64025, 64034, 64037, 64042, 65074, 65093, 65107, 65112, 65127, 65132, 65375, 65510, 65536], gbChars: [0, 36, 38, 45, 50, 81, 89, 95, 96, 100, 103, 104, 105, 109, 126, 133, 148, 172, 175, 179, 208, 306, 307, 308, 309, 310, 311, 312, 313, 341, 428, 443, 544, 545, 558, 741, 742, 749, 750, 805, 819, 820, 7922, 7924, 7925, 7927, 7934, 7943, 7944, 7945, 7950, 8062, 8148, 8149, 8152, 8164, 8174, 8236, 8240, 8262, 8264, 8374, 8380, 8381, 8384, 8388, 8390, 8392, 8393, 8394, 8396, 8401, 8406, 8416, 8419, 8424, 8437, 8439, 8445, 8482, 8485, 8496, 8521, 8603, 8936, 8946, 9046, 9050, 9063, 9066, 9076, 9092, 9100, 9108, 9111, 9113, 9131, 9162, 9164, 9218, 9219, 11329, 11331, 11334, 11336, 11346, 11361, 11363, 11366, 11370, 11372, 11375, 11389, 11682, 11686, 11687, 11692, 11694, 11714, 11716, 11723, 11725, 11730, 11736, 11982, 11989, 12102, 12336, 12348, 12350, 12384, 12393, 12395, 12397, 12510, 12553, 12851, 12962, 12973, 13738, 13823, 13919, 13933, 14080, 14298, 14585, 14698, 15583, 15847, 16318, 16434, 16438, 16481, 16729, 17102, 17122, 17315, 17320, 17402, 17418, 17859, 17909, 17911, 17915, 17916, 17936, 17939, 17961, 18664, 18703, 18814, 18962, 19043, 33469, 33470, 33471, 33484, 33485, 33490, 33497, 33501, 33505, 33513, 33520, 33536, 33550, 37845, 37921, 37948, 38029, 38038, 38064, 38065, 38066, 38069, 38075, 38076, 38078, 39108, 39109, 39113, 39114, 39115, 39116, 39265, 39394, 189e3] };
- }
- });
- // node_modules/iconv-lite/encodings/tables/cp949.json
- var require_cp949 = __commonJS({
- "node_modules/iconv-lite/encodings/tables/cp949.json"(exports2, module2) {
- module2.exports = [
- ["0", "\0", 127],
- ["8141", "\uAC02\uAC03\uAC05\uAC06\uAC0B", 4, "\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25", 6, "\uAC2E\uAC32\uAC33\uAC34"],
- ["8161", "\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41", 9, "\uAC4C\uAC4E", 5, "\uAC55"],
- ["8181", "\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D", 18, "\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B", 4, "\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95", 6, "\uAC9E\uACA2", 5, "\uACAB\uACAD\uACAE\uACB1", 6, "\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD", 7, "\uACD6\uACD8", 7, "\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7", 4, "\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07", 4, "\uAD0E\uAD10\uAD12\uAD13"],
- ["8241", "\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21", 7, "\uAD2A\uAD2B\uAD2E", 5],
- ["8261", "\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D", 6, "\uAD46\uAD48\uAD4A", 5, "\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],
- ["8281", "\uAD59", 7, "\uAD62\uAD64", 7, "\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83", 4, "\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91", 10, "\uAD9E", 5, "\uADA5", 17, "\uADB8", 7, "\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9", 6, "\uADD2\uADD4", 7, "\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5", 18],
- ["8341", "\uADFA\uADFB\uADFD\uADFE\uAE02", 5, "\uAE0A\uAE0C\uAE0E", 5, "\uAE15", 7],
- ["8361", "\uAE1D", 18, "\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],
- ["8381", "\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57", 4, "\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71", 6, "\uAE7A\uAE7E", 5, "\uAE86", 5, "\uAE8D", 46, "\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5", 6, "\uAECE\uAED2", 5, "\uAEDA\uAEDB\uAEDD", 8],
- ["8441", "\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE", 5, "\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD", 8],
- ["8461", "\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11", 18],
- ["8481", "\uAF24", 7, "\uAF2E\uAF2F\uAF31\uAF33\uAF35", 6, "\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A", 5, "\uAF51", 10, "\uAF5E", 5, "\uAF66", 18, "\uAF7A", 5, "\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89", 6, "\uAF92\uAF93\uAF94\uAF96", 5, "\uAF9D", 26, "\uAFBA\uAFBB\uAFBD\uAFBE"],
- ["8541", "\uAFBF\uAFC1", 5, "\uAFCA\uAFCC\uAFCF", 4, "\uAFD5", 6, "\uAFDD", 4],
- ["8561", "\uAFE2", 5, "\uAFEA", 5, "\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9", 6, "\uB002\uB003"],
- ["8581", "\uB005", 6, "\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015", 6, "\uB01E", 9, "\uB029", 26, "\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E", 29, "\uB07E\uB07F\uB081\uB082\uB083\uB085", 6, "\uB08E\uB090\uB092", 5, "\uB09B\uB09D\uB09E\uB0A3\uB0A4"],
- ["8641", "\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD", 6, "\uB0C6\uB0CA", 5, "\uB0D2"],
- ["8661", "\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9", 6, "\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6", 10],
- ["8681", "\uB0F1", 22, "\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E", 4, "\uB126\uB127\uB129\uB12A\uB12B\uB12D", 6, "\uB136\uB13A", 5, "\uB142\uB143\uB145\uB146\uB147\uB149", 6, "\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161", 22, "\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183", 4, "\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],
- ["8741", "\uB19E", 9, "\uB1A9", 15],
- ["8761", "\uB1B9", 18, "\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],
- ["8781", "\uB1D6", 5, "\uB1DE\uB1E0", 7, "\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1", 7, "\uB1FA\uB1FC\uB1FE", 5, "\uB206\uB207\uB209\uB20A\uB20D", 6, "\uB216\uB218\uB21A", 5, "\uB221", 18, "\uB235", 6, "\uB23D", 26, "\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261", 6, "\uB26A", 4],
- ["8841", "\uB26F", 4, "\uB276", 5, "\uB27D", 6, "\uB286\uB287\uB288\uB28A", 4],
- ["8861", "\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B", 4, "\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],
- ["8881", "\uB2B8", 15, "\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3", 4, "\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309", 6, "\uB312\uB316", 5, "\uB31D", 54, "\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],
- ["8941", "\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379", 6, "\uB382\uB386", 5, "\uB38D"],
- ["8961", "\uB38E\uB38F\uB391\uB392\uB393\uB395", 10, "\uB3A2", 5, "\uB3A9\uB3AA\uB3AB\uB3AD"],
- ["8981", "\uB3AE", 21, "\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9", 18, "\uB3FD", 18, "\uB411", 6, "\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421", 6, "\uB42A\uB42C", 7, "\uB435", 15],
- ["8a41", "\uB445", 10, "\uB452\uB453\uB455\uB456\uB457\uB459", 6, "\uB462\uB464\uB466"],
- ["8a61", "\uB467", 4, "\uB46D", 18, "\uB481\uB482"],
- ["8a81", "\uB483", 4, "\uB489", 19, "\uB49E", 5, "\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD", 7, "\uB4B6\uB4B8\uB4BA", 5, "\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9", 6, "\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6", 5, "\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7", 4, "\uB4EE\uB4F0\uB4F2", 5, "\uB4F9", 26, "\uB516\uB517\uB519\uB51A\uB51D"],
- ["8b41", "\uB51E", 5, "\uB526\uB52B", 4, "\uB532\uB533\uB535\uB536\uB537\uB539", 6, "\uB542\uB546"],
- ["8b61", "\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555", 6, "\uB55E\uB562", 8],
- ["8b81", "\uB56B", 52, "\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6", 4, "\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5", 6, "\uB5CE\uB5D2", 5, "\uB5D9", 18, "\uB5ED", 18],
- ["8c41", "\uB600", 15, "\uB612\uB613\uB615\uB616\uB617\uB619", 4],
- ["8c61", "\uB61E", 6, "\uB626", 5, "\uB62D", 6, "\uB635", 5],
- ["8c81", "\uB63B", 12, "\uB649", 26, "\uB665\uB666\uB667\uB669", 50, "\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5", 5, "\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2", 16],
- ["8d41", "\uB6C3", 16, "\uB6D5", 8],
- ["8d61", "\uB6DE", 17, "\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],
- ["8d81", "\uB6FB", 4, "\uB702\uB703\uB704\uB706", 33, "\uB72A\uB72B\uB72D\uB72E\uB731", 6, "\uB73A\uB73C", 7, "\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D", 6, "\uB756", 9, "\uB761\uB762\uB763\uB765\uB766\uB767\uB769", 6, "\uB772\uB774\uB776", 5, "\uB77E\uB77F\uB781\uB782\uB783\uB785", 6, "\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],
- ["8e41", "\uB79F\uB7A1", 6, "\uB7AA\uB7AE", 5, "\uB7B6\uB7B7\uB7B9", 8],
- ["8e61", "\uB7C2", 4, "\uB7C8\uB7CA", 19],
- ["8e81", "\uB7DE", 13, "\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5", 6, "\uB7FE\uB802", 4, "\uB80A\uB80B\uB80D\uB80E\uB80F\uB811", 6, "\uB81A\uB81C\uB81E", 5, "\uB826\uB827\uB829\uB82A\uB82B\uB82D", 6, "\uB836\uB83A", 5, "\uB841\uB842\uB843\uB845", 11, "\uB852\uB854", 7, "\uB85E\uB85F\uB861\uB862\uB863\uB865", 6, "\uB86E\uB870\uB872", 5, "\uB879\uB87A\uB87B\uB87D", 7],
- ["8f41", "\uB885", 7, "\uB88E", 17],
- ["8f61", "\uB8A0", 7, "\uB8A9", 6, "\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9", 4],
- ["8f81", "\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6", 5, "\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5", 7, "\uB8DE\uB8E0\uB8E2", 5, "\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1", 6, "\uB8FA\uB8FC\uB8FE", 5, "\uB905", 18, "\uB919", 6, "\uB921", 26, "\uB93E\uB93F\uB941\uB942\uB943\uB945", 6, "\uB94D\uB94E\uB950\uB952", 5],
- ["9041", "\uB95A\uB95B\uB95D\uB95E\uB95F\uB961", 6, "\uB96A\uB96C\uB96E", 5, "\uB976\uB977\uB979\uB97A\uB97B\uB97D"],
- ["9061", "\uB97E", 5, "\uB986\uB988\uB98B\uB98C\uB98F", 15],
- ["9081", "\uB99F", 12, "\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5", 6, "\uB9BE\uB9C0\uB9C2", 5, "\uB9CA\uB9CB\uB9CD\uB9D3", 4, "\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED", 6, "\uB9F6\uB9FB", 4, "\uBA02", 5, "\uBA09", 11, "\uBA16", 33, "\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],
- ["9141", "\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D", 6, "\uBA66\uBA6A", 5],
- ["9161", "\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79", 9, "\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D", 5],
- ["9181", "\uBA93", 20, "\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3", 4, "\uBABA\uBABC\uBABE", 5, "\uBAC5\uBAC6\uBAC7\uBAC9", 14, "\uBADA", 33, "\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05", 7, "\uBB0E\uBB10\uBB12", 5, "\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21", 6],
- ["9241", "\uBB28\uBB2A\uBB2C", 7, "\uBB37\uBB39\uBB3A\uBB3F", 4, "\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],
- ["9261", "\uBB53\uBB55\uBB56\uBB57\uBB59", 7, "\uBB62\uBB64", 7, "\uBB6D", 4],
- ["9281", "\uBB72", 21, "\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91", 18, "\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD", 6, "\uBBB5\uBBB6\uBBB8", 7, "\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9", 6, "\uBBD1\uBBD2\uBBD4", 35, "\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],
- ["9341", "\uBC03", 4, "\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],
- ["9361", "\uBC36\uBC37\uBC39", 6, "\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51", 8],
- ["9381", "\uBC5A\uBC5B\uBC5C\uBC5E", 37, "\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F", 4, "\uBC96\uBC98\uBC9B", 4, "\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9", 6, "\uBCB2\uBCB6", 5, "\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5", 7, "\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD", 22, "\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],
- ["9441", "\uBCFE", 5, "\uBD06\uBD08\uBD0A", 5, "\uBD11\uBD12\uBD13\uBD15", 8],
- ["9461", "\uBD1E", 5, "\uBD25", 6, "\uBD2D", 12],
- ["9481", "\uBD3A", 5, "\uBD41", 6, "\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51", 6, "\uBD5A", 9, "\uBD65\uBD66\uBD67\uBD69", 22, "\uBD82\uBD83\uBD85\uBD86\uBD8B", 4, "\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D", 6, "\uBDA5", 10, "\uBDB1", 6, "\uBDB9", 24],
- ["9541", "\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD", 11, "\uBDEA", 5, "\uBDF1"],
- ["9561", "\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9", 6, "\uBE01\uBE02\uBE04\uBE06", 5, "\uBE0E\uBE0F\uBE11\uBE12\uBE13"],
- ["9581", "\uBE15", 6, "\uBE1E\uBE20", 35, "\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F", 4, "\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B", 4, "\uBE72\uBE76", 4, "\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85", 6, "\uBE8E\uBE92", 5, "\uBE9A", 13, "\uBEA9", 14],
- ["9641", "\uBEB8", 23, "\uBED2\uBED3"],
- ["9661", "\uBED5\uBED6\uBED9", 6, "\uBEE1\uBEE2\uBEE6", 5, "\uBEED", 8],
- ["9681", "\uBEF6", 10, "\uBF02", 5, "\uBF0A", 13, "\uBF1A\uBF1E", 33, "\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49", 6, "\uBF52\uBF53\uBF54\uBF56", 44],
- ["9741", "\uBF83", 16, "\uBF95", 8],
- ["9761", "\uBF9E", 17, "\uBFB1", 7],
- ["9781", "\uBFB9", 11, "\uBFC6", 5, "\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5", 6, "\uBFDD\uBFDE\uBFE0\uBFE2", 89, "\uC03D\uC03E\uC03F"],
- ["9841", "\uC040", 16, "\uC052", 5, "\uC059\uC05A\uC05B"],
- ["9861", "\uC05D\uC05E\uC05F\uC061", 6, "\uC06A", 15],
- ["9881", "\uC07A", 21, "\uC092\uC093\uC095\uC096\uC097\uC099", 6, "\uC0A2\uC0A4\uC0A6", 5, "\uC0AE\uC0B1\uC0B2\uC0B7", 4, "\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1", 6, "\uC0DA\uC0DE", 5, "\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED", 6, "\uC0F6\uC0F8\uC0FA", 5, "\uC101\uC102\uC103\uC105\uC106\uC107\uC109", 6, "\uC111\uC112\uC113\uC114\uC116", 5, "\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],
- ["9941", "\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141", 6, "\uC14A\uC14E", 5, "\uC156\uC157"],
- ["9961", "\uC159\uC15A\uC15B\uC15D", 6, "\uC166\uC16A", 5, "\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],
- ["9981", "\uC17C", 8, "\uC186", 5, "\uC18F\uC191\uC192\uC193\uC195\uC197", 4, "\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1", 11, "\uC1BE", 5, "\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD", 6, "\uC1D5\uC1D6\uC1D9", 6, "\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9", 6, "\uC1F2\uC1F4", 7, "\uC1FE\uC1FF\uC201\uC202\uC203\uC205", 6, "\uC20E\uC210\uC212", 5, "\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],
- ["9a41", "\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235", 16],
- ["9a61", "\uC246\uC247\uC249", 6, "\uC252\uC253\uC255\uC256\uC257\uC259", 6, "\uC261\uC262\uC263\uC264\uC266"],
- ["9a81", "\uC267", 4, "\uC26E\uC26F\uC271\uC272\uC273\uC275", 6, "\uC27E\uC280\uC282", 5, "\uC28A", 5, "\uC291", 6, "\uC299\uC29A\uC29C\uC29E", 5, "\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE", 5, "\uC2B6\uC2B8\uC2BA", 33, "\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5", 5, "\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301", 6, "\uC30A\uC30B\uC30E\uC30F"],
- ["9b41", "\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D", 6, "\uC326\uC327\uC32A", 8],
- ["9b61", "\uC333", 17, "\uC346", 7],
- ["9b81", "\uC34E", 25, "\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373", 4, "\uC37A\uC37B\uC37E", 5, "\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D", 50, "\uC3C1", 22, "\uC3DA"],
- ["9c41", "\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3", 4, "\uC3EA\uC3EB\uC3EC\uC3EE", 5, "\uC3F6\uC3F7\uC3F9", 5],
- ["9c61", "\uC3FF", 8, "\uC409", 6, "\uC411", 9],
- ["9c81", "\uC41B", 8, "\uC425", 6, "\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435", 6, "\uC43E", 9, "\uC449", 26, "\uC466\uC467\uC469\uC46A\uC46B\uC46D", 6, "\uC476\uC477\uC478\uC47A", 5, "\uC481", 18, "\uC495", 6, "\uC49D", 12],
- ["9d41", "\uC4AA", 13, "\uC4B9\uC4BA\uC4BB\uC4BD", 8],
- ["9d61", "\uC4C6", 25],
- ["9d81", "\uC4E0", 8, "\uC4EA", 5, "\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502", 9, "\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515", 6, "\uC51D", 10, "\uC52A\uC52B\uC52D\uC52E\uC52F\uC531", 6, "\uC53A\uC53C\uC53E", 5, "\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569", 6, "\uC572\uC576", 5, "\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],
- ["9e41", "\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1", 7, "\uC5AA", 9, "\uC5B6"],
- ["9e61", "\uC5B7\uC5BA\uC5BF", 4, "\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9", 6, "\uC5E2\uC5E4\uC5E6\uC5E7"],
- ["9e81", "\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611", 6, "\uC61A\uC61D", 6, "\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649", 6, "\uC652\uC656", 5, "\uC65E\uC65F\uC661", 10, "\uC66D\uC66E\uC670\uC672", 5, "\uC67A\uC67B\uC67D\uC67E\uC67F\uC681", 6, "\uC68A\uC68C\uC68E", 5, "\uC696\uC697\uC699\uC69A\uC69B\uC69D", 6, "\uC6A6"],
- ["9f41", "\uC6A8\uC6AA", 5, "\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB", 4, "\uC6C2\uC6C4\uC6C6", 5, "\uC6CE"],
- ["9f61", "\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5", 6, "\uC6DE\uC6DF\uC6E2", 5, "\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],
- ["9f81", "\uC6F3", 4, "\uC6FA\uC6FB\uC6FC\uC6FE", 5, "\uC706\uC707\uC709\uC70A\uC70B\uC70D", 6, "\uC716\uC718\uC71A", 5, "\uC722\uC723\uC725\uC726\uC727\uC729", 6, "\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745", 4, "\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761", 6, "\uC769\uC76A\uC76C", 7, "\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B", 4, "\uC7A2\uC7A7", 4, "\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],
- ["a041", "\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2", 5, "\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1", 6, "\uC7D9\uC7DA\uC7DB\uC7DC"],
- ["a061", "\uC7DE", 5, "\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED", 13],
- ["a081", "\uC7FB", 4, "\uC802\uC803\uC805\uC806\uC807\uC809\uC80B", 4, "\uC812\uC814\uC817", 4, "\uC81E\uC81F\uC821\uC822\uC823\uC825", 6, "\uC82E\uC830\uC832", 5, "\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841", 6, "\uC84A\uC84B\uC84E", 5, "\uC855", 26, "\uC872\uC873\uC875\uC876\uC877\uC879\uC87B", 4, "\uC882\uC884\uC888\uC889\uC88A\uC88E", 5, "\uC895", 7, "\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],
- ["a141", "\uC8A5\uC8A6\uC8A7\uC8A9", 18, "\uC8BE\uC8BF\uC8C0\uC8C1"],
- ["a161", "\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD", 6, "\uC8D6\uC8D8\uC8DA", 5, "\uC8E2\uC8E3\uC8E5"],
- ["a181", "\uC8E6", 14, "\uC8F6", 5, "\uC8FE\uC8FF\uC901\uC902\uC903\uC907", 4, "\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008", 9, "\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],
- ["a241", "\uC910\uC912", 5, "\uC919", 18],
- ["a261", "\uC92D", 6, "\uC935", 18],
- ["a281", "\uC948", 7, "\uC952\uC953\uC955\uC956\uC957\uC959", 6, "\uC962\uC964", 7, "\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],
- ["a341", "\uC971\uC972\uC973\uC975", 6, "\uC97D", 10, "\uC98A\uC98B\uC98D\uC98E\uC98F"],
- ["a361", "\uC991", 6, "\uC99A\uC99C\uC99E", 16],
- ["a381", "\uC9AF", 16, "\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB", 4, "\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01", 58, "\uFFE6\uFF3D", 32, "\uFFE3"],
- ["a441", "\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2", 5, "\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],
- ["a461", "\uCA05\uCA06\uCA07\uCA0A\uCA0E", 5, "\uCA15\uCA16\uCA17\uCA19", 12],
- ["a481", "\uCA26\uCA27\uCA28\uCA2A", 28, "\u3131", 93],
- ["a541", "\uCA47", 4, "\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55", 6, "\uCA5E\uCA62", 5, "\uCA69\uCA6A"],
- ["a561", "\uCA6B", 17, "\uCA7E", 5, "\uCA85\uCA86"],
- ["a581", "\uCA87", 16, "\uCA99", 14, "\u2170", 9],
- ["a5b0", "\u2160", 9],
- ["a5c1", "\u0391", 16, "\u03A3", 6],
- ["a5e1", "\u03B1", 16, "\u03C3", 6],
- ["a641", "\uCAA8", 19, "\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],
- ["a661", "\uCAC6", 5, "\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA", 5, "\uCAE1", 6],
- ["a681", "\uCAE8\uCAE9\uCAEA\uCAEB\uCAED", 6, "\uCAF5", 18, "\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543", 7],
- ["a741", "\uCB0B", 4, "\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19", 6, "\uCB22", 7],
- ["a761", "\uCB2A", 22, "\uCB42\uCB43\uCB44"],
- ["a781", "\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51", 6, "\uCB5A\uCB5B\uCB5C\uCB5E", 5, "\uCB65", 7, "\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399", 9, "\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0", 9, "\u3380", 4, "\u33BA", 5, "\u3390", 4, "\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],
- ["a841", "\uCB6D", 10, "\uCB7A", 14],
- ["a861", "\uCB89", 18, "\uCB9D", 6],
- ["a881", "\uCBA4", 19, "\uCBB9", 11, "\xC6\xD0\xAA\u0126"],
- ["a8a6", "\u0132"],
- ["a8a8", "\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],
- ["a8b1", "\u3260", 27, "\u24D0", 25, "\u2460", 14, "\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],
- ["a941", "\uCBC5", 14, "\uCBD5", 10],
- ["a961", "\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA", 18],
- ["a981", "\uCBFD", 14, "\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15", 6, "\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200", 27, "\u249C", 25, "\u2474", 14, "\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],
- ["aa41", "\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31", 6, "\uCC3A\uCC3F", 4, "\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],
- ["aa61", "\uCC4F", 4, "\uCC56\uCC5A", 5, "\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69", 6, "\uCC71\uCC72"],
- ["aa81", "\uCC73\uCC74\uCC76", 29, "\u3041", 82],
- ["ab41", "\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1", 6, "\uCCAA\uCCAE", 5, "\uCCB6\uCCB7\uCCB9"],
- ["ab61", "\uCCBA\uCCBB\uCCBD", 6, "\uCCC6\uCCC8\uCCCA", 5, "\uCCD1\uCCD2\uCCD3\uCCD5", 5],
- ["ab81", "\uCCDB", 8, "\uCCE5", 6, "\uCCED\uCCEE\uCCEF\uCCF1", 12, "\u30A1", 85],
- ["ac41", "\uCCFE\uCCFF\uCD00\uCD02", 5, "\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11", 6, "\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],
- ["ac61", "\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D", 11, "\uCD3A", 4],
- ["ac81", "\uCD3F", 28, "\uCD5D\uCD5E\uCD5F\u0410", 5, "\u0401\u0416", 25],
- ["acd1", "\u0430", 5, "\u0451\u0436", 25],
- ["ad41", "\uCD61\uCD62\uCD63\uCD65", 6, "\uCD6E\uCD70\uCD72", 5, "\uCD79", 7],
- ["ad61", "\uCD81", 6, "\uCD89", 10, "\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],
- ["ad81", "\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA", 5, "\uCDB1", 18, "\uCDC5"],
- ["ae41", "\uCDC6", 5, "\uCDCD\uCDCE\uCDCF\uCDD1", 16],
- ["ae61", "\uCDE2", 5, "\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1", 6, "\uCDFA\uCDFC\uCDFE", 4],
- ["ae81", "\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D", 6, "\uCE15\uCE16\uCE17\uCE18\uCE1A", 5, "\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],
- ["af41", "\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36", 19],
- ["af61", "\uCE4A", 13, "\uCE5A\uCE5B\uCE5D\uCE5E\uCE62", 5, "\uCE6A\uCE6C"],
- ["af81", "\uCE6E", 5, "\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D", 6, "\uCE86\uCE88\uCE8A", 5, "\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],
- ["b041", "\uCE9A", 5, "\uCEA2\uCEA6", 5, "\uCEAE", 12],
- ["b061", "\uCEBB", 5, "\uCEC2", 19],
- ["b081", "\uCED6", 13, "\uCEE6\uCEE7\uCEE9\uCEEA\uCEED", 6, "\uCEF6\uCEFA", 5, "\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10", 7, "\uAC19", 4, "\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],
- ["b141", "\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09", 6, "\uCF12\uCF14\uCF16", 5, "\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],
- ["b161", "\uCF25", 6, "\uCF2E\uCF32", 5, "\uCF39", 11],
- ["b181", "\uCF45", 14, "\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D", 6, "\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],
- ["b241", "\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79", 6, "\uCF81\uCF82\uCF83\uCF84\uCF86", 5, "\uCF8D"],
- ["b261", "\uCF8E", 18, "\uCFA2", 5, "\uCFA9"],
- ["b281", "\uCFAA", 5, "\uCFB1", 18, "\uCFC5", 6, "\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],
- ["b341", "\uCFCC", 19, "\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],
- ["b361", "\uCFEA", 5, "\uCFF2\uCFF4\uCFF6", 5, "\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005", 5],
- ["b381", "\uD00B", 5, "\uD012", 5, "\uD019", 19, "\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB", 4, "\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],
- ["b441", "\uD02E", 5, "\uD036\uD037\uD039\uD03A\uD03B\uD03D", 6, "\uD046\uD048\uD04A", 5],
- ["b461", "\uD051\uD052\uD053\uD055\uD056\uD057\uD059", 6, "\uD061", 10, "\uD06E\uD06F"],
- ["b481", "\uD071\uD072\uD073\uD075", 6, "\uD07E\uD07F\uD080\uD082", 18, "\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB", 4, "\uB2F3\uB2F4\uB2F5\uB2F7", 4, "\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],
- ["b541", "\uD095", 14, "\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD", 5],
- ["b561", "\uD0B3\uD0B6\uD0B8\uD0BA", 5, "\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA", 5, "\uD0D2\uD0D6", 4],
- ["b581", "\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5", 6, "\uD0EE\uD0F2", 5, "\uD0F9", 11, "\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],
- ["b641", "\uD105", 7, "\uD10E", 17],
- ["b661", "\uD120", 15, "\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],
- ["b681", "\uD13F\uD142\uD146", 5, "\uD14E\uD14F\uD151\uD152\uD153\uD155", 6, "\uD15E\uD160\uD162", 5, "\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],
- ["b741", "\uD16E", 13, "\uD17D", 6, "\uD185\uD186\uD187\uD189\uD18A"],
- ["b761", "\uD18B", 20, "\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],
- ["b781", "\uD1A9", 6, "\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1", 14, "\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],
- ["b841", "\uD1D0", 7, "\uD1D9", 17],
- ["b861", "\uD1EB", 8, "\uD1F5\uD1F6\uD1F7\uD1F9", 13],
- ["b881", "\uD208\uD20A", 5, "\uD211", 24, "\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE", 4, "\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],
- ["b941", "\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235", 6, "\uD23E\uD240\uD242", 5, "\uD249\uD24A\uD24B\uD24C"],
- ["b961", "\uD24D", 14, "\uD25D", 6, "\uD265\uD266\uD267\uD268"],
- ["b981", "\uD269", 22, "\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14", 4, "\uBC1B", 4, "\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],
- ["ba41", "\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296", 5, "\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5", 6, "\uD2AD"],
- ["ba61", "\uD2AE\uD2AF\uD2B0\uD2B2", 5, "\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3", 4, "\uD2CA\uD2CC", 5],
- ["ba81", "\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD", 6, "\uD2E6", 9, "\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],
- ["bb41", "\uD2FB", 4, "\uD302\uD304\uD306", 5, "\uD30F\uD311\uD312\uD313\uD315\uD317", 4, "\uD31E\uD322\uD323"],
- ["bb61", "\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331", 6, "\uD33A\uD33E", 5, "\uD346\uD347\uD348\uD349"],
- ["bb81", "\uD34A", 31, "\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],
- ["bc41", "\uD36A", 17, "\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],
- ["bc61", "\uD388\uD389\uD38A\uD38B\uD38E\uD392", 5, "\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1", 6, "\uD3AA\uD3AC\uD3AE"],
- ["bc81", "\uD3AF", 4, "\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD", 6, "\uD3C6\uD3C7\uD3CA", 5, "\uD3D1", 5, "\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C", 4, "\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],
- ["bd41", "\uD3D7\uD3D9", 7, "\uD3E2\uD3E4", 7, "\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],
- ["bd61", "\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402", 5, "\uD409", 13],
- ["bd81", "\uD417", 5, "\uD41E", 25, "\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],
- ["be41", "\uD438", 7, "\uD441\uD442\uD443\uD445", 14],
- ["be61", "\uD454", 7, "\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465", 7, "\uD46E\uD470\uD471\uD472"],
- ["be81", "\uD473", 4, "\uD47A\uD47B\uD47D\uD47E\uD481\uD483", 4, "\uD48A\uD48C\uD48E", 5, "\uD495", 8, "\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4", 6, "\uC5CC\uC5CE"],
- ["bf41", "\uD49E", 10, "\uD4AA", 14],
- ["bf61", "\uD4B9", 18, "\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],
- ["bf81", "\uD4D6", 5, "\uD4DD\uD4DE\uD4E0", 7, "\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1", 6, "\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC", 5, "\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],
- ["c041", "\uD4FE", 5, "\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D", 6, "\uD516\uD518", 5],
- ["c061", "\uD51E", 25],
- ["c081", "\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545", 6, "\uD54E\uD550\uD552", 5, "\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751", 7, "\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],
- ["c141", "\uD564\uD566\uD567\uD56A\uD56C\uD56E", 5, "\uD576\uD577\uD579\uD57A\uD57B\uD57D", 6, "\uD586\uD58A\uD58B"],
- ["c161", "\uD58C\uD58D\uD58E\uD58F\uD591", 19, "\uD5A6\uD5A7"],
- ["c181", "\uD5A8", 31, "\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],
- ["c241", "\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3", 4, "\uD5DA\uD5DC\uD5DE", 5, "\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],
- ["c261", "\uD5EF", 4, "\uD5F6\uD5F8\uD5FA", 5, "\uD602\uD603\uD605\uD606\uD607\uD609", 6, "\uD612"],
- ["c281", "\uD616", 5, "\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625", 7, "\uD62E", 9, "\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],
- ["c341", "\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D", 4],
- ["c361", "\uD662", 4, "\uD668\uD66A", 5, "\uD672\uD673\uD675", 11],
- ["c381", "\uD681\uD682\uD684\uD686", 5, "\uD68E\uD68F\uD691\uD692\uD693\uD695", 7, "\uD69E\uD6A0\uD6A2", 5, "\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],
- ["c441", "\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1", 7, "\uD6BA\uD6BC", 7, "\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],
- ["c461", "\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA", 5, "\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9", 4],
- ["c481", "\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6", 5, "\uD6FE\uD6FF\uD701\uD702\uD703\uD705", 11, "\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],
- ["c541", "\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721", 6, "\uD72A\uD72C\uD72E", 5, "\uD736\uD737\uD739"],
- ["c561", "\uD73A\uD73B\uD73D", 6, "\uD745\uD746\uD748\uD74A", 5, "\uD752\uD753\uD755\uD75A", 4],
- ["c581", "\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775", 6, "\uD77E\uD77F\uD780\uD782", 5, "\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],
- ["c641", "\uD78D\uD78E\uD78F\uD791", 6, "\uD79A\uD79C\uD79E", 5],
- ["c6a1", "\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],
- ["c7a1", "\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],
- ["c8a1", "\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],
- ["caa1", "\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],
- ["cba1", "\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],
- ["cca1", "\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],
- ["cda1", "\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],
- ["cea1", "\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],
- ["cfa1", "\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],
- ["d0a1", "\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],
- ["d1a1", "\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E", 5, "\u90A3\uF914", 4, "\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],
- ["d2a1", "\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928", 4, "\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933", 5, "\u99D1\uF939", 10, "\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A", 7, "\u5AE9\u8A25\u677B\u7D10\uF952", 5, "\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],
- ["d3a1", "\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],
- ["d4a1", "\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],
- ["d5a1", "\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],
- ["d6a1", "\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],
- ["d7a1", "\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],
- ["d8a1", "\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],
- ["d9a1", "\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],
- ["daa1", "\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],
- ["dba1", "\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],
- ["dca1", "\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],
- ["dda1", "\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],
- ["dea1", "\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],
- ["dfa1", "\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],
- ["e0a1", "\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],
- ["e1a1", "\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],
- ["e2a1", "\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],
- ["e3a1", "\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],
- ["e4a1", "\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],
- ["e5a1", "\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],
- ["e6a1", "\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],
- ["e7a1", "\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],
- ["e8a1", "\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],
- ["e9a1", "\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],
- ["eaa1", "\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],
- ["eba1", "\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],
- ["eca1", "\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],
- ["eda1", "\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],
- ["eea1", "\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],
- ["efa1", "\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],
- ["f0a1", "\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],
- ["f1a1", "\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],
- ["f2a1", "\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],
- ["f3a1", "\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],
- ["f4a1", "\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],
- ["f5a1", "\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],
- ["f6a1", "\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],
- ["f7a1", "\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],
- ["f8a1", "\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],
- ["f9a1", "\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],
- ["faa1", "\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],
- ["fba1", "\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],
- ["fca1", "\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],
- ["fda1", "\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]
- ];
- }
- });
- // node_modules/iconv-lite/encodings/tables/cp950.json
- var require_cp950 = __commonJS({
- "node_modules/iconv-lite/encodings/tables/cp950.json"(exports2, module2) {
- module2.exports = [
- ["0", "\0", 127],
- ["a140", "\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],
- ["a1a1", "\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62", 4, "\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],
- ["a240", "\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581", 7, "\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],
- ["a2a1", "\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10", 9, "\u2160", 9, "\u3021", 8, "\u5341\u5344\u5345\uFF21", 25, "\uFF41", 21],
- ["a340", "\uFF57\uFF58\uFF59\uFF5A\u0391", 16, "\u03A3", 6, "\u03B1", 16, "\u03C3", 6, "\u3105", 10],
- ["a3a1", "\u3110", 25, "\u02D9\u02C9\u02CA\u02C7\u02CB"],
- ["a3e1", "\u20AC"],
- ["a440", "\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],
- ["a4a1", "\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],
- ["a540", "\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],
- ["a5a1", "\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],
- ["a640", "\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],
- ["a6a1", "\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],
- ["a740", "\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],
- ["a7a1", "\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],
- ["a840", "\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],
- ["a8a1", "\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],
- ["a940", "\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],
- ["a9a1", "\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],
- ["aa40", "\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],
- ["aaa1", "\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],
- ["ab40", "\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],
- ["aba1", "\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],
- ["ac40", "\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],
- ["aca1", "\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],
- ["ad40", "\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],
- ["ada1", "\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],
- ["ae40", "\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],
- ["aea1", "\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],
- ["af40", "\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],
- ["afa1", "\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],
- ["b040", "\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],
- ["b0a1", "\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],
- ["b140", "\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],
- ["b1a1", "\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],
- ["b240", "\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],
- ["b2a1", "\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],
- ["b340", "\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],
- ["b3a1", "\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],
- ["b440", "\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],
- ["b4a1", "\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],
- ["b540", "\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],
- ["b5a1", "\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],
- ["b640", "\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],
- ["b6a1", "\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],
- ["b740", "\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],
- ["b7a1", "\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],
- ["b840", "\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],
- ["b8a1", "\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],
- ["b940", "\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],
- ["b9a1", "\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],
- ["ba40", "\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],
- ["baa1", "\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],
- ["bb40", "\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],
- ["bba1", "\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],
- ["bc40", "\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],
- ["bca1", "\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],
- ["bd40", "\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],
- ["bda1", "\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],
- ["be40", "\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],
- ["bea1", "\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],
- ["bf40", "\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],
- ["bfa1", "\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],
- ["c040", "\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],
- ["c0a1", "\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],
- ["c140", "\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],
- ["c1a1", "\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],
- ["c240", "\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],
- ["c2a1", "\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],
- ["c340", "\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],
- ["c3a1", "\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],
- ["c440", "\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],
- ["c4a1", "\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],
- ["c540", "\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],
- ["c5a1", "\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],
- ["c640", "\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],
- ["c940", "\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],
- ["c9a1", "\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],
- ["ca40", "\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],
- ["caa1", "\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],
- ["cb40", "\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],
- ["cba1", "\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],
- ["cc40", "\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],
- ["cca1", "\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],
- ["cd40", "\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],
- ["cda1", "\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],
- ["ce40", "\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],
- ["cea1", "\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],
- ["cf40", "\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],
- ["cfa1", "\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],
- ["d040", "\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],
- ["d0a1", "\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],
- ["d140", "\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],
- ["d1a1", "\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],
- ["d240", "\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],
- ["d2a1", "\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],
- ["d340", "\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],
- ["d3a1", "\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],
- ["d440", "\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],
- ["d4a1", "\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],
- ["d540", "\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],
- ["d5a1", "\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],
- ["d640", "\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],
- ["d6a1", "\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],
- ["d740", "\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],
- ["d7a1", "\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],
- ["d840", "\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],
- ["d8a1", "\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],
- ["d940", "\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],
- ["d9a1", "\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],
- ["da40", "\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],
- ["daa1", "\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],
- ["db40", "\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],
- ["dba1", "\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],
- ["dc40", "\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],
- ["dca1", "\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],
- ["dd40", "\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],
- ["dda1", "\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],
- ["de40", "\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],
- ["dea1", "\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],
- ["df40", "\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],
- ["dfa1", "\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],
- ["e040", "\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],
- ["e0a1", "\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],
- ["e140", "\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],
- ["e1a1", "\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],
- ["e240", "\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],
- ["e2a1", "\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],
- ["e340", "\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],
- ["e3a1", "\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],
- ["e440", "\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],
- ["e4a1", "\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],
- ["e540", "\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],
- ["e5a1", "\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],
- ["e640", "\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],
- ["e6a1", "\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],
- ["e740", "\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],
- ["e7a1", "\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],
- ["e840", "\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],
- ["e8a1", "\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],
- ["e940", "\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],
- ["e9a1", "\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],
- ["ea40", "\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],
- ["eaa1", "\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],
- ["eb40", "\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],
- ["eba1", "\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],
- ["ec40", "\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],
- ["eca1", "\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],
- ["ed40", "\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],
- ["eda1", "\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],
- ["ee40", "\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],
- ["eea1", "\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],
- ["ef40", "\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],
- ["efa1", "\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],
- ["f040", "\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],
- ["f0a1", "\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],
- ["f140", "\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],
- ["f1a1", "\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],
- ["f240", "\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],
- ["f2a1", "\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],
- ["f340", "\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],
- ["f3a1", "\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],
- ["f440", "\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],
- ["f4a1", "\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],
- ["f540", "\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],
- ["f5a1", "\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],
- ["f640", "\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],
- ["f6a1", "\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],
- ["f740", "\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],
- ["f7a1", "\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],
- ["f840", "\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],
- ["f8a1", "\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],
- ["f940", "\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],
- ["f9a1", "\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]
- ];
- }
- });
- // node_modules/iconv-lite/encodings/tables/big5-added.json
- var require_big5_added = __commonJS({
- "node_modules/iconv-lite/encodings/tables/big5-added.json"(exports2, module2) {
- module2.exports = [
- ["8740", "\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],
- ["8767", "\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],
- ["87a1", "\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],
- ["8840", "\u31C0", 4, "\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],
- ["88a1", "\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],
- ["8940", "\u{2A3A9}\u{21145}"],
- ["8943", "\u650A"],
- ["8946", "\u4E3D\u6EDD\u9D4E\u91DF"],
- ["894c", "\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],
- ["89a1", "\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],
- ["89ab", "\u918C\u78B8\u915E\u80BC"],
- ["89b0", "\u8D0B\u80F6\u{209E7}"],
- ["89b5", "\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],
- ["89c1", "\u6E9A\u823E\u7519"],
- ["89c5", "\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],
- ["8a40", "\u{27D84}\u5525"],
- ["8a43", "\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],
- ["8a64", "\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],
- ["8a76", "\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],
- ["8aa1", "\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],
- ["8aac", "\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],
- ["8ab2", "\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],
- ["8abb", "\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],
- ["8ac9", "\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],
- ["8ace", "\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],
- ["8adf", "\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],
- ["8af6", "\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],
- ["8b40", "\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],
- ["8b55", "\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],
- ["8ba1", "\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],
- ["8bde", "\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],
- ["8c40", "\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],
- ["8ca1", "\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],
- ["8ca7", "\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],
- ["8cc9", "\u9868\u676B\u4276\u573D"],
- ["8cce", "\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],
- ["8ce6", "\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],
- ["8d40", "\u{20B9F}"],
- ["8d42", "\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],
- ["8da1", "\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],
- ["8e40", "\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],
- ["8ea1", "\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],
- ["8f40", "\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],
- ["8fa1", "\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],
- ["9040", "\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],
- ["90a1", "\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],
- ["9140", "\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],
- ["91a1", "\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],
- ["9240", "\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],
- ["92a1", "\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],
- ["9340", "\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],
- ["93a1", "\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],
- ["9440", "\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],
- ["94a1", "\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],
- ["9540", "\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],
- ["95a1", "\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],
- ["9640", "\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],
- ["96a1", "\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],
- ["9740", "\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],
- ["97a1", "\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],
- ["9840", "\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],
- ["98a1", "\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],
- ["9940", "\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],
- ["99a1", "\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],
- ["9a40", "\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],
- ["9aa1", "\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],
- ["9b40", "\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],
- ["9b62", "\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],
- ["9ba1", "\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],
- ["9c40", "\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],
- ["9ca1", "\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],
- ["9d40", "\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],
- ["9da1", "\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],
- ["9e40", "\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],
- ["9ea1", "\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],
- ["9ead", "\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],
- ["9ec5", "\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],
- ["9ef5", "\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],
- ["9f40", "\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],
- ["9f4f", "\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],
- ["9fa1", "\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],
- ["9fae", "\u9159\u9681\u915C"],
- ["9fb2", "\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],
- ["9fc1", "\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],
- ["9fc9", "\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],
- ["9fdb", "\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],
- ["9fe7", "\u6BFA\u8818\u7F78"],
- ["9feb", "\u5620\u{2A64A}\u8E77\u9F53"],
- ["9ff0", "\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],
- ["a040", "\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],
- ["a055", "\u{2183B}\u{26E05}"],
- ["a058", "\u8A7E\u{2251B}"],
- ["a05b", "\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],
- ["a063", "\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],
- ["a073", "\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],
- ["a0a1", "\u5D57\u{28BC2}\u8FDA\u{28E39}"],
- ["a0a6", "\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],
- ["a0ae", "\u77FE"],
- ["a0b0", "\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],
- ["a0d4", "\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],
- ["a0e2", "\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],
- ["a3c0", "\u2400", 31, "\u2421"],
- ["c6a1", "\u2460", 9, "\u2474", 9, "\u2170", 9, "\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041", 23],
- ["c740", "\u3059", 58, "\u30A1\u30A2\u30A3\u30A4"],
- ["c7a1", "\u30A5", 81, "\u0410", 5, "\u0401\u0416", 4],
- ["c840", "\u041B", 26, "\u0451\u0436", 25, "\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],
- ["c8a1", "\u9FB0\u5188\u9FB1\u{27607}"],
- ["c8cd", "\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],
- ["c8f5", "\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],
- ["f9fe", "\uFFED"],
- ["fa40", "\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],
- ["faa1", "\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],
- ["fb40", "\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],
- ["fba1", "\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],
- ["fc40", "\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],
- ["fca1", "\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],
- ["fd40", "\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],
- ["fda1", "\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],
- ["fe40", "\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],
- ["fea1", "\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]
- ];
- }
- });
- // node_modules/iconv-lite/encodings/dbcs-data.js
- var require_dbcs_data = __commonJS({
- "node_modules/iconv-lite/encodings/dbcs-data.js"(exports2, module2) {
- "use strict";
- module2.exports = {
- // == Japanese/ShiftJIS ====================================================
- // All japanese encodings are based on JIS X set of standards:
- // JIS X 0201 - Single-byte encoding of ASCII + ¥ + Kana chars at 0xA1-0xDF.
- // JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes.
- // Has several variations in 1978, 1983, 1990 and 1997.
- // JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead.
- // JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233.
- // 2 planes, first is superset of 0208, second - revised 0212.
- // Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx)
- // Byte encodings are:
- // * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte
- // encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC.
- // Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI.
- // * EUC-JP: Up to 3 bytes per character. Used mostly on *nixes.
- // 0x00-0x7F - lower part of 0201
- // 0x8E, 0xA1-0xDF - upper part of 0201
- // (0xA1-0xFE)x2 - 0208 plane (94x94).
- // 0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94).
- // * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon.
- // Used as-is in ISO2022 family.
- // * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII,
- // 0201-1976 Roman, 0208-1978, 0208-1983.
- // * ISO2022-JP-1: Adds esc seq for 0212-1990.
- // * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7.
- // * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2.
- // * ISO2022-JP-2004: Adds 0213-2004 Plane 1.
- //
- // After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes.
- //
- // Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html
- shiftjis: {
- type: "_dbcs",
- table: function() {
- return require_shiftjis();
- },
- encodeAdd: { "\xA5": 92, "\u203E": 126 },
- encodeSkipVals: [{ from: 60736, to: 63808 }]
- },
- csshiftjis: "shiftjis",
- mskanji: "shiftjis",
- sjis: "shiftjis",
- windows31j: "shiftjis",
- ms31j: "shiftjis",
- xsjis: "shiftjis",
- windows932: "shiftjis",
- ms932: "shiftjis",
- 932: "shiftjis",
- cp932: "shiftjis",
- eucjp: {
- type: "_dbcs",
- table: function() {
- return require_eucjp();
- },
- encodeAdd: { "\xA5": 92, "\u203E": 126 }
- },
- // TODO: KDDI extension to Shift_JIS
- // TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes.
- // TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars.
- // == Chinese/GBK ==========================================================
- // http://en.wikipedia.org/wiki/GBK
- // We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder
- // Oldest GB2312 (1981, ~7600 chars) is a subset of CP936
- gb2312: "cp936",
- gb231280: "cp936",
- gb23121980: "cp936",
- csgb2312: "cp936",
- csiso58gb231280: "cp936",
- euccn: "cp936",
- // Microsoft's CP936 is a subset and approximation of GBK.
- windows936: "cp936",
- ms936: "cp936",
- 936: "cp936",
- cp936: {
- type: "_dbcs",
- table: function() {
- return require_cp936();
- }
- },
- // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other.
- gbk: {
- type: "_dbcs",
- table: function() {
- return require_cp936().concat(require_gbk_added());
- }
- },
- xgbk: "gbk",
- isoir58: "gbk",
- // GB18030 is an algorithmic extension of GBK.
- // Main source: https://www.w3.org/TR/encoding/#gbk-encoder
- // http://icu-project.org/docs/papers/gb18030.html
- // http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml
- // http://www.khngai.com/chinese/charmap/tblgbk.php?page=0
- gb18030: {
- type: "_dbcs",
- table: function() {
- return require_cp936().concat(require_gbk_added());
- },
- gb18030: function() {
- return require_gb18030_ranges();
- },
- encodeSkipVals: [128],
- encodeAdd: { "\u20AC": 41699 }
- },
- chinese: "gb18030",
- // == Korean ===============================================================
- // EUC-KR, KS_C_5601 and KS X 1001 are exactly the same.
- windows949: "cp949",
- ms949: "cp949",
- 949: "cp949",
- cp949: {
- type: "_dbcs",
- table: function() {
- return require_cp949();
- }
- },
- cseuckr: "cp949",
- csksc56011987: "cp949",
- euckr: "cp949",
- isoir149: "cp949",
- korean: "cp949",
- ksc56011987: "cp949",
- ksc56011989: "cp949",
- ksc5601: "cp949",
- // == Big5/Taiwan/Hong Kong ================================================
- // There are lots of tables for Big5 and cp950. Please see the following links for history:
- // http://moztw.org/docs/big5/ http://www.haible.de/bruno/charsets/conversion-tables/Big5.html
- // Variations, in roughly number of defined chars:
- // * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT
- // * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/
- // * Big5-2003 (Taiwan standard) almost superset of cp950.
- // * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers.
- // * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard.
- // many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years.
- // Plus, it has 4 combining sequences.
- // Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299
- // because big5-hkscs is the only encoding to include astral characters in non-algorithmic way.
- // Implementations are not consistent within browsers; sometimes labeled as just big5.
- // MS Internet Explorer switches from big5 to big5-hkscs when a patch applied.
- // Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31
- // In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s.
- // Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt
- // http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt
- //
- // Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder
- // Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong.
- windows950: "cp950",
- ms950: "cp950",
- 950: "cp950",
- cp950: {
- type: "_dbcs",
- table: function() {
- return require_cp950();
- }
- },
- // Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus.
- big5: "big5hkscs",
- big5hkscs: {
- type: "_dbcs",
- table: function() {
- return require_cp950().concat(require_big5_added());
- },
- encodeSkipVals: [
- // Although Encoding Standard says we should avoid encoding to HKSCS area (See Step 1 of
- // https://encoding.spec.whatwg.org/#index-big5-pointer), we still do it to increase compatibility with ICU.
- // But if a single unicode point can be encoded both as HKSCS and regular Big5, we prefer the latter.
- 36457,
- 36463,
- 36478,
- 36523,
- 36532,
- 36557,
- 36560,
- 36695,
- 36713,
- 36718,
- 36811,
- 36862,
- 36973,
- 36986,
- 37060,
- 37084,
- 37105,
- 37311,
- 37551,
- 37552,
- 37553,
- 37554,
- 37585,
- 37959,
- 38090,
- 38361,
- 38652,
- 39285,
- 39798,
- 39800,
- 39803,
- 39878,
- 39902,
- 39916,
- 39926,
- 40002,
- 40019,
- 40034,
- 40040,
- 40043,
- 40055,
- 40124,
- 40125,
- 40144,
- 40279,
- 40282,
- 40388,
- 40431,
- 40443,
- 40617,
- 40687,
- 40701,
- 40800,
- 40907,
- 41079,
- 41180,
- 41183,
- 36812,
- 37576,
- 38468,
- 38637,
- // Step 2 of https://encoding.spec.whatwg.org/#index-big5-pointer: Use last pointer for U+2550, U+255E, U+2561, U+256A, U+5341, or U+5345
- 41636,
- 41637,
- 41639,
- 41638,
- 41676,
- 41678
- ]
- },
- cnbig5: "big5hkscs",
- csbig5: "big5hkscs",
- xxbig5: "big5hkscs"
- };
- }
- });
- // node_modules/iconv-lite/encodings/index.js
- var require_encodings = __commonJS({
- "node_modules/iconv-lite/encodings/index.js"(exports2, module2) {
- "use strict";
- var mergeModules = require_merge_exports();
- var modules = [
- require_internal(),
- require_utf32(),
- require_utf16(),
- require_utf7(),
- require_sbcs_codec(),
- require_sbcs_data(),
- require_sbcs_data_generated(),
- require_dbcs_codec(),
- require_dbcs_data()
- ];
- for (i = 0; i < modules.length; i++) {
- module2 = modules[i];
- mergeModules(exports2, module2);
- }
- var module2;
- var i;
- }
- });
- // node_modules/iconv-lite/lib/streams.js
- var require_streams = __commonJS({
- "node_modules/iconv-lite/lib/streams.js"(exports2, module2) {
- "use strict";
- var Buffer2 = require_safer().Buffer;
- module2.exports = function(streamModule) {
- var Transform = streamModule.Transform;
- function IconvLiteEncoderStream(conv, options) {
- this.conv = conv;
- options = options || {};
- options.decodeStrings = false;
- Transform.call(this, options);
- }
- IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, {
- constructor: { value: IconvLiteEncoderStream }
- });
- IconvLiteEncoderStream.prototype._transform = function(chunk, encoding, done) {
- if (typeof chunk !== "string") {
- return done(new Error("Iconv encoding stream needs strings as its input."));
- }
- try {
- var res = this.conv.write(chunk);
- if (res && res.length) this.push(res);
- done();
- } catch (e) {
- done(e);
- }
- };
- IconvLiteEncoderStream.prototype._flush = function(done) {
- try {
- var res = this.conv.end();
- if (res && res.length) this.push(res);
- done();
- } catch (e) {
- done(e);
- }
- };
- IconvLiteEncoderStream.prototype.collect = function(cb) {
- var chunks = [];
- this.on("error", cb);
- this.on("data", function(chunk) {
- chunks.push(chunk);
- });
- this.on("end", function() {
- cb(null, Buffer2.concat(chunks));
- });
- return this;
- };
- function IconvLiteDecoderStream(conv, options) {
- this.conv = conv;
- options = options || {};
- options.encoding = this.encoding = "utf8";
- Transform.call(this, options);
- }
- IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, {
- constructor: { value: IconvLiteDecoderStream }
- });
- IconvLiteDecoderStream.prototype._transform = function(chunk, encoding, done) {
- if (!Buffer2.isBuffer(chunk) && !(chunk instanceof Uint8Array)) {
- return done(new Error("Iconv decoding stream needs buffers as its input."));
- }
- try {
- var res = this.conv.write(chunk);
- if (res && res.length) this.push(res, this.encoding);
- done();
- } catch (e) {
- done(e);
- }
- };
- IconvLiteDecoderStream.prototype._flush = function(done) {
- try {
- var res = this.conv.end();
- if (res && res.length) this.push(res, this.encoding);
- done();
- } catch (e) {
- done(e);
- }
- };
- IconvLiteDecoderStream.prototype.collect = function(cb) {
- var res = "";
- this.on("error", cb);
- this.on("data", function(chunk) {
- res += chunk;
- });
- this.on("end", function() {
- cb(null, res);
- });
- return this;
- };
- return {
- IconvLiteEncoderStream,
- IconvLiteDecoderStream
- };
- };
- }
- });
- // node_modules/iconv-lite/lib/index.js
- var require_lib = __commonJS({
- "node_modules/iconv-lite/lib/index.js"(exports2, module2) {
- "use strict";
- var Buffer2 = require_safer().Buffer;
- var bomHandling = require_bom_handling();
- var mergeModules = require_merge_exports();
- module2.exports.encodings = null;
- module2.exports.defaultCharUnicode = "\uFFFD";
- module2.exports.defaultCharSingleByte = "?";
- module2.exports.encode = function encode(str, encoding, options) {
- str = "" + (str || "");
- var encoder = module2.exports.getEncoder(encoding, options);
- var res = encoder.write(str);
- var trail = encoder.end();
- return trail && trail.length > 0 ? Buffer2.concat([res, trail]) : res;
- };
- module2.exports.decode = function decode(buf, encoding, options) {
- if (typeof buf === "string") {
- if (!module2.exports.skipDecodeWarning) {
- console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding");
- module2.exports.skipDecodeWarning = true;
- }
- buf = Buffer2.from("" + (buf || ""), "binary");
- }
- var decoder = module2.exports.getDecoder(encoding, options);
- var res = decoder.write(buf);
- var trail = decoder.end();
- return trail ? res + trail : res;
- };
- module2.exports.encodingExists = function encodingExists(enc) {
- try {
- module2.exports.getCodec(enc);
- return true;
- } catch (e) {
- return false;
- }
- };
- module2.exports.toEncoding = module2.exports.encode;
- module2.exports.fromEncoding = module2.exports.decode;
- module2.exports._codecDataCache = { __proto__: null };
- module2.exports.getCodec = function getCodec(encoding) {
- if (!module2.exports.encodings) {
- var raw = require_encodings();
- module2.exports.encodings = { __proto__: null };
- mergeModules(module2.exports.encodings, raw);
- }
- var enc = module2.exports._canonicalizeEncoding(encoding);
- var codecOptions = {};
- while (true) {
- var codec = module2.exports._codecDataCache[enc];
- if (codec) {
- return codec;
- }
- var codecDef = module2.exports.encodings[enc];
- switch (typeof codecDef) {
- case "string":
- enc = codecDef;
- break;
- case "object":
- for (var key in codecDef) {
- codecOptions[key] = codecDef[key];
- }
- if (!codecOptions.encodingName) {
- codecOptions.encodingName = enc;
- }
- enc = codecDef.type;
- break;
- case "function":
- if (!codecOptions.encodingName) {
- codecOptions.encodingName = enc;
- }
- codec = new codecDef(codecOptions, module2.exports);
- module2.exports._codecDataCache[codecOptions.encodingName] = codec;
- return codec;
- default:
- throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '" + enc + "')");
- }
- }
- };
- module2.exports._canonicalizeEncoding = function(encoding) {
- return ("" + encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, "");
- };
- module2.exports.getEncoder = function getEncoder(encoding, options) {
- var codec = module2.exports.getCodec(encoding);
- var encoder = new codec.encoder(options, codec);
- if (codec.bomAware && options && options.addBOM) {
- encoder = new bomHandling.PrependBOM(encoder, options);
- }
- return encoder;
- };
- module2.exports.getDecoder = function getDecoder(encoding, options) {
- var codec = module2.exports.getCodec(encoding);
- var decoder = new codec.decoder(options, codec);
- if (codec.bomAware && !(options && options.stripBOM === false)) {
- decoder = new bomHandling.StripBOM(decoder, options);
- }
- return decoder;
- };
- module2.exports.enableStreamingAPI = function enableStreamingAPI(streamModule2) {
- if (module2.exports.supportsStreams) {
- return;
- }
- var streams = require_streams()(streamModule2);
- module2.exports.IconvLiteEncoderStream = streams.IconvLiteEncoderStream;
- module2.exports.IconvLiteDecoderStream = streams.IconvLiteDecoderStream;
- module2.exports.encodeStream = function encodeStream(encoding, options) {
- return new module2.exports.IconvLiteEncoderStream(module2.exports.getEncoder(encoding, options), options);
- };
- module2.exports.decodeStream = function decodeStream(encoding, options) {
- return new module2.exports.IconvLiteDecoderStream(module2.exports.getDecoder(encoding, options), options);
- };
- module2.exports.supportsStreams = true;
- };
- var streamModule;
- try {
- streamModule = require("stream");
- } catch (e) {
- }
- if (streamModule && streamModule.Transform) {
- module2.exports.enableStreamingAPI(streamModule);
- } else {
- module2.exports.encodeStream = module2.exports.decodeStream = function() {
- throw new Error("iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.");
- };
- }
- if (false) {
- console.error("iconv-lite warning: js files use non-utf8 encoding. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info.");
- }
- }
- });
- // node_modules/unpipe/index.js
- var require_unpipe = __commonJS({
- "node_modules/unpipe/index.js"(exports2, module2) {
- "use strict";
- module2.exports = unpipe;
- function hasPipeDataListeners(stream) {
- var listeners = stream.listeners("data");
- for (var i = 0; i < listeners.length; i++) {
- if (listeners[i].name === "ondata") {
- return true;
- }
- }
- return false;
- }
- function unpipe(stream) {
- if (!stream) {
- throw new TypeError("argument stream is required");
- }
- if (typeof stream.unpipe === "function") {
- stream.unpipe();
- return;
- }
- if (!hasPipeDataListeners(stream)) {
- return;
- }
- var listener;
- var listeners = stream.listeners("close");
- for (var i = 0; i < listeners.length; i++) {
- listener = listeners[i];
- if (listener.name !== "cleanup" && listener.name !== "onclose") {
- continue;
- }
- listener.call(stream);
- }
- }
- }
- });
- // node_modules/raw-body/index.js
- var require_raw_body = __commonJS({
- "node_modules/raw-body/index.js"(exports2, module2) {
- "use strict";
- var asyncHooks = tryRequireAsyncHooks();
- var bytes = require_bytes();
- var createError = require_http_errors();
- var iconv = require_lib();
- var unpipe = require_unpipe();
- module2.exports = getRawBody;
- var ICONV_ENCODING_MESSAGE_REGEXP = /^Encoding not recognized: /;
- function getDecoder(encoding) {
- if (!encoding) return null;
- try {
- return iconv.getDecoder(encoding);
- } catch (e) {
- if (!ICONV_ENCODING_MESSAGE_REGEXP.test(e.message)) throw e;
- throw createError(415, "specified encoding unsupported", {
- encoding,
- type: "encoding.unsupported"
- });
- }
- }
- function getRawBody(stream, options, callback) {
- var done = callback;
- var opts = options || {};
- if (stream === void 0) {
- throw new TypeError("argument stream is required");
- } else if (typeof stream !== "object" || stream === null || typeof stream.on !== "function") {
- throw new TypeError("argument stream must be a stream");
- }
- if (options === true || typeof options === "string") {
- opts = {
- encoding: options
- };
- }
- if (typeof options === "function") {
- done = options;
- opts = {};
- }
- if (done !== void 0 && typeof done !== "function") {
- throw new TypeError("argument callback must be a function");
- }
- if (!done && !global.Promise) {
- throw new TypeError("argument callback is required");
- }
- var encoding = opts.encoding !== true ? opts.encoding : "utf-8";
- var limit = bytes.parse(opts.limit);
- var length = opts.length != null && !isNaN(opts.length) ? parseInt(opts.length, 10) : null;
- if (done) {
- return readStream(stream, encoding, length, limit, wrap(done));
- }
- return new Promise(function executor(resolve, reject) {
- readStream(stream, encoding, length, limit, function onRead(err, buf) {
- if (err) return reject(err);
- resolve(buf);
- });
- });
- }
- function halt(stream) {
- unpipe(stream);
- if (typeof stream.pause === "function") {
- stream.pause();
- }
- }
- function readStream(stream, encoding, length, limit, callback) {
- var complete = false;
- var sync = true;
- if (limit !== null && length !== null && length > limit) {
- return done(createError(413, "request entity too large", {
- expected: length,
- length,
- limit,
- type: "entity.too.large"
- }));
- }
- var state = stream._readableState;
- if (stream._decoder || state && (state.encoding || state.decoder)) {
- return done(createError(500, "stream encoding should not be set", {
- type: "stream.encoding.set"
- }));
- }
- if (typeof stream.readable !== "undefined" && !stream.readable) {
- return done(createError(500, "stream is not readable", {
- type: "stream.not.readable"
- }));
- }
- var received = 0;
- var decoder;
- try {
- decoder = getDecoder(encoding);
- } catch (err) {
- return done(err);
- }
- var buffer = decoder ? "" : [];
- stream.on("aborted", onAborted);
- stream.on("close", cleanup);
- stream.on("data", onData);
- stream.on("end", onEnd);
- stream.on("error", onEnd);
- sync = false;
- function done() {
- var args = new Array(arguments.length);
- for (var i = 0; i < args.length; i++) {
- args[i] = arguments[i];
- }
- complete = true;
- if (sync) {
- process.nextTick(invokeCallback);
- } else {
- invokeCallback();
- }
- function invokeCallback() {
- cleanup();
- if (args[0]) {
- halt(stream);
- }
- callback.apply(null, args);
- }
- }
- function onAborted() {
- if (complete) return;
- done(createError(400, "request aborted", {
- code: "ECONNABORTED",
- expected: length,
- length,
- received,
- type: "request.aborted"
- }));
- }
- function onData(chunk) {
- if (complete) return;
- received += chunk.length;
- if (limit !== null && received > limit) {
- done(createError(413, "request entity too large", {
- limit,
- received,
- type: "entity.too.large"
- }));
- } else if (decoder) {
- buffer += decoder.write(chunk);
- } else {
- buffer.push(chunk);
- }
- }
- function onEnd(err) {
- if (complete) return;
- if (err) return done(err);
- if (length !== null && received !== length) {
- done(createError(400, "request size did not match content length", {
- expected: length,
- length,
- received,
- type: "request.size.invalid"
- }));
- } else {
- var string = decoder ? buffer + (decoder.end() || "") : Buffer.concat(buffer);
- done(null, string);
- }
- }
- function cleanup() {
- buffer = null;
- stream.removeListener("aborted", onAborted);
- stream.removeListener("data", onData);
- stream.removeListener("end", onEnd);
- stream.removeListener("error", onEnd);
- stream.removeListener("close", cleanup);
- }
- }
- function tryRequireAsyncHooks() {
- try {
- return require("async_hooks");
- } catch (e) {
- return {};
- }
- }
- function wrap(fn) {
- var res;
- if (asyncHooks.AsyncResource) {
- res = new asyncHooks.AsyncResource(fn.name || "bound-anonymous-fn");
- }
- if (!res || !res.runInAsyncScope) {
- return fn;
- }
- return res.runInAsyncScope.bind(res, fn, null);
- }
- }
- });
- // node_modules/ee-first/index.js
- var require_ee_first = __commonJS({
- "node_modules/ee-first/index.js"(exports2, module2) {
- "use strict";
- module2.exports = first;
- function first(stuff, done) {
- if (!Array.isArray(stuff))
- throw new TypeError("arg must be an array of [ee, events...] arrays");
- var cleanups = [];
- for (var i = 0; i < stuff.length; i++) {
- var arr = stuff[i];
- if (!Array.isArray(arr) || arr.length < 2)
- throw new TypeError("each array member must be [ee, events...]");
- var ee = arr[0];
- for (var j = 1; j < arr.length; j++) {
- var event = arr[j];
- var fn = listener(event, callback);
- ee.on(event, fn);
- cleanups.push({
- ee,
- event,
- fn
- });
- }
- }
- function callback() {
- cleanup();
- done.apply(null, arguments);
- }
- function cleanup() {
- var x;
- for (var i2 = 0; i2 < cleanups.length; i2++) {
- x = cleanups[i2];
- x.ee.removeListener(x.event, x.fn);
- }
- }
- function thunk(fn2) {
- done = fn2;
- }
- thunk.cancel = cleanup;
- return thunk;
- }
- function listener(event, done) {
- return function onevent(arg1) {
- var args = new Array(arguments.length);
- var ee = this;
- var err = event === "error" ? arg1 : null;
- for (var i = 0; i < args.length; i++) {
- args[i] = arguments[i];
- }
- done(err, ee, event, args);
- };
- }
- }
- });
- // node_modules/on-finished/index.js
- var require_on_finished = __commonJS({
- "node_modules/on-finished/index.js"(exports2, module2) {
- "use strict";
- module2.exports = onFinished;
- module2.exports.isFinished = isFinished;
- var asyncHooks = tryRequireAsyncHooks();
- var first = require_ee_first();
- var defer = typeof setImmediate === "function" ? setImmediate : function(fn) {
- process.nextTick(fn.bind.apply(fn, arguments));
- };
- function onFinished(msg, listener) {
- if (isFinished(msg) !== false) {
- defer(listener, null, msg);
- return msg;
- }
- attachListener(msg, wrap(listener));
- return msg;
- }
- function isFinished(msg) {
- var socket = msg.socket;
- if (typeof msg.finished === "boolean") {
- return Boolean(msg.finished || socket && !socket.writable);
- }
- if (typeof msg.complete === "boolean") {
- return Boolean(msg.upgrade || !socket || !socket.readable || msg.complete && !msg.readable);
- }
- return void 0;
- }
- function attachFinishedListener(msg, callback) {
- var eeMsg;
- var eeSocket;
- var finished = false;
- function onFinish(error) {
- eeMsg.cancel();
- eeSocket.cancel();
- finished = true;
- callback(error);
- }
- eeMsg = eeSocket = first([[msg, "end", "finish"]], onFinish);
- function onSocket(socket) {
- msg.removeListener("socket", onSocket);
- if (finished) return;
- if (eeMsg !== eeSocket) return;
- eeSocket = first([[socket, "error", "close"]], onFinish);
- }
- if (msg.socket) {
- onSocket(msg.socket);
- return;
- }
- msg.on("socket", onSocket);
- if (msg.socket === void 0) {
- patchAssignSocket(msg, onSocket);
- }
- }
- function attachListener(msg, listener) {
- var attached = msg.__onFinished;
- if (!attached || !attached.queue) {
- attached = msg.__onFinished = createListener(msg);
- attachFinishedListener(msg, attached);
- }
- attached.queue.push(listener);
- }
- function createListener(msg) {
- function listener(err) {
- if (msg.__onFinished === listener) msg.__onFinished = null;
- if (!listener.queue) return;
- var queue = listener.queue;
- listener.queue = null;
- for (var i = 0; i < queue.length; i++) {
- queue[i](err, msg);
- }
- }
- listener.queue = [];
- return listener;
- }
- function patchAssignSocket(res, callback) {
- var assignSocket = res.assignSocket;
- if (typeof assignSocket !== "function") return;
- res.assignSocket = function _assignSocket(socket) {
- assignSocket.call(this, socket);
- callback(socket);
- };
- }
- function tryRequireAsyncHooks() {
- try {
- return require("async_hooks");
- } catch (e) {
- return {};
- }
- }
- function wrap(fn) {
- var res;
- if (asyncHooks.AsyncResource) {
- res = new asyncHooks.AsyncResource(fn.name || "bound-anonymous-fn");
- }
- if (!res || !res.runInAsyncScope) {
- return fn;
- }
- return res.runInAsyncScope.bind(res, fn, null);
- }
- }
- });
- // node_modules/content-type/index.js
- var require_content_type = __commonJS({
- "node_modules/content-type/index.js"(exports2) {
- "use strict";
- var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g;
- var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/;
- var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
- var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g;
- var QUOTE_REGEXP = /([\\"])/g;
- var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
- exports2.format = format;
- exports2.parse = parse;
- function format(obj) {
- if (!obj || typeof obj !== "object") {
- throw new TypeError("argument obj is required");
- }
- var parameters = obj.parameters;
- var type = obj.type;
- if (!type || !TYPE_REGEXP.test(type)) {
- throw new TypeError("invalid type");
- }
- var string = type;
- if (parameters && typeof parameters === "object") {
- var param;
- var params = Object.keys(parameters).sort();
- for (var i = 0; i < params.length; i++) {
- param = params[i];
- if (!TOKEN_REGEXP.test(param)) {
- throw new TypeError("invalid parameter name");
- }
- string += "; " + param + "=" + qstring(parameters[param]);
- }
- }
- return string;
- }
- function parse(string) {
- if (!string) {
- throw new TypeError("argument string is required");
- }
- var header = typeof string === "object" ? getcontenttype(string) : string;
- if (typeof header !== "string") {
- throw new TypeError("argument string is required to be a string");
- }
- var index = header.indexOf(";");
- var type = index !== -1 ? header.slice(0, index).trim() : header.trim();
- if (!TYPE_REGEXP.test(type)) {
- throw new TypeError("invalid media type");
- }
- var obj = new ContentType(type.toLowerCase());
- if (index !== -1) {
- var key;
- var match;
- var value;
- PARAM_REGEXP.lastIndex = index;
- while (match = PARAM_REGEXP.exec(header)) {
- if (match.index !== index) {
- throw new TypeError("invalid parameter format");
- }
- index += match[0].length;
- key = match[1].toLowerCase();
- value = match[2];
- if (value.charCodeAt(0) === 34) {
- value = value.slice(1, -1);
- if (value.indexOf("\\") !== -1) {
- value = value.replace(QESC_REGEXP, "$1");
- }
- }
- obj.parameters[key] = value;
- }
- if (index !== header.length) {
- throw new TypeError("invalid parameter format");
- }
- }
- return obj;
- }
- function getcontenttype(obj) {
- var header;
- if (typeof obj.getHeader === "function") {
- header = obj.getHeader("content-type");
- } else if (typeof obj.headers === "object") {
- header = obj.headers && obj.headers["content-type"];
- }
- if (typeof header !== "string") {
- throw new TypeError("content-type header is missing from object");
- }
- return header;
- }
- function qstring(val) {
- var str = String(val);
- if (TOKEN_REGEXP.test(str)) {
- return str;
- }
- if (str.length > 0 && !TEXT_REGEXP.test(str)) {
- throw new TypeError("invalid parameter value");
- }
- return '"' + str.replace(QUOTE_REGEXP, "\\$1") + '"';
- }
- function ContentType(type) {
- this.parameters = /* @__PURE__ */ Object.create(null);
- this.type = type;
- }
- }
- });
- // node_modules/mime-db/db.json
- var require_db = __commonJS({
- "node_modules/mime-db/db.json"(exports2, module2) {
- module2.exports = {
- "application/1d-interleaved-parityfec": {
- source: "iana"
- },
- "application/3gpdash-qoe-report+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/3gpp-ims+xml": {
- source: "iana",
- compressible: true
- },
- "application/3gpphal+json": {
- source: "iana",
- compressible: true
- },
- "application/3gpphalforms+json": {
- source: "iana",
- compressible: true
- },
- "application/a2l": {
- source: "iana"
- },
- "application/ace+cbor": {
- source: "iana"
- },
- "application/ace+json": {
- source: "iana",
- compressible: true
- },
- "application/ace-groupcomm+cbor": {
- source: "iana"
- },
- "application/ace-trl+cbor": {
- source: "iana"
- },
- "application/activemessage": {
- source: "iana"
- },
- "application/activity+json": {
- source: "iana",
- compressible: true
- },
- "application/aif+cbor": {
- source: "iana"
- },
- "application/aif+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-cdni+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-cdnifilter+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-costmap+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-costmapfilter+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-directory+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-endpointcost+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-endpointcostparams+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-endpointprop+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-endpointpropparams+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-error+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-networkmap+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-networkmapfilter+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-propmap+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-propmapparams+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-tips+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-tipsparams+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-updatestreamcontrol+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-updatestreamparams+json": {
- source: "iana",
- compressible: true
- },
- "application/aml": {
- source: "iana"
- },
- "application/andrew-inset": {
- source: "iana",
- extensions: ["ez"]
- },
- "application/appinstaller": {
- compressible: false,
- extensions: ["appinstaller"]
- },
- "application/applefile": {
- source: "iana"
- },
- "application/applixware": {
- source: "apache",
- extensions: ["aw"]
- },
- "application/appx": {
- compressible: false,
- extensions: ["appx"]
- },
- "application/appxbundle": {
- compressible: false,
- extensions: ["appxbundle"]
- },
- "application/at+jwt": {
- source: "iana"
- },
- "application/atf": {
- source: "iana"
- },
- "application/atfx": {
- source: "iana"
- },
- "application/atom+xml": {
- source: "iana",
- compressible: true,
- extensions: ["atom"]
- },
- "application/atomcat+xml": {
- source: "iana",
- compressible: true,
- extensions: ["atomcat"]
- },
- "application/atomdeleted+xml": {
- source: "iana",
- compressible: true,
- extensions: ["atomdeleted"]
- },
- "application/atomicmail": {
- source: "iana"
- },
- "application/atomsvc+xml": {
- source: "iana",
- compressible: true,
- extensions: ["atomsvc"]
- },
- "application/atsc-dwd+xml": {
- source: "iana",
- compressible: true,
- extensions: ["dwd"]
- },
- "application/atsc-dynamic-event-message": {
- source: "iana"
- },
- "application/atsc-held+xml": {
- source: "iana",
- compressible: true,
- extensions: ["held"]
- },
- "application/atsc-rdt+json": {
- source: "iana",
- compressible: true
- },
- "application/atsc-rsat+xml": {
- source: "iana",
- compressible: true,
- extensions: ["rsat"]
- },
- "application/atxml": {
- source: "iana"
- },
- "application/auth-policy+xml": {
- source: "iana",
- compressible: true
- },
- "application/automationml-aml+xml": {
- source: "iana",
- compressible: true,
- extensions: ["aml"]
- },
- "application/automationml-amlx+zip": {
- source: "iana",
- compressible: false,
- extensions: ["amlx"]
- },
- "application/bacnet-xdd+zip": {
- source: "iana",
- compressible: false
- },
- "application/batch-smtp": {
- source: "iana"
- },
- "application/bdoc": {
- compressible: false,
- extensions: ["bdoc"]
- },
- "application/beep+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/bufr": {
- source: "iana"
- },
- "application/c2pa": {
- source: "iana"
- },
- "application/calendar+json": {
- source: "iana",
- compressible: true
- },
- "application/calendar+xml": {
- source: "iana",
- compressible: true,
- extensions: ["xcs"]
- },
- "application/call-completion": {
- source: "iana"
- },
- "application/cals-1840": {
- source: "iana"
- },
- "application/captive+json": {
- source: "iana",
- compressible: true
- },
- "application/cbor": {
- source: "iana"
- },
- "application/cbor-seq": {
- source: "iana"
- },
- "application/cccex": {
- source: "iana"
- },
- "application/ccmp+xml": {
- source: "iana",
- compressible: true
- },
- "application/ccxml+xml": {
- source: "iana",
- compressible: true,
- extensions: ["ccxml"]
- },
- "application/cda+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/cdfx+xml": {
- source: "iana",
- compressible: true,
- extensions: ["cdfx"]
- },
- "application/cdmi-capability": {
- source: "iana",
- extensions: ["cdmia"]
- },
- "application/cdmi-container": {
- source: "iana",
- extensions: ["cdmic"]
- },
- "application/cdmi-domain": {
- source: "iana",
- extensions: ["cdmid"]
- },
- "application/cdmi-object": {
- source: "iana",
- extensions: ["cdmio"]
- },
- "application/cdmi-queue": {
- source: "iana",
- extensions: ["cdmiq"]
- },
- "application/cdni": {
- source: "iana"
- },
- "application/ce+cbor": {
- source: "iana"
- },
- "application/cea": {
- source: "iana"
- },
- "application/cea-2018+xml": {
- source: "iana",
- compressible: true
- },
- "application/cellml+xml": {
- source: "iana",
- compressible: true
- },
- "application/cfw": {
- source: "iana"
- },
- "application/cid-edhoc+cbor-seq": {
- source: "iana"
- },
- "application/city+json": {
- source: "iana",
- compressible: true
- },
- "application/city+json-seq": {
- source: "iana"
- },
- "application/clr": {
- source: "iana"
- },
- "application/clue+xml": {
- source: "iana",
- compressible: true
- },
- "application/clue_info+xml": {
- source: "iana",
- compressible: true
- },
- "application/cms": {
- source: "iana"
- },
- "application/cnrp+xml": {
- source: "iana",
- compressible: true
- },
- "application/coap-eap": {
- source: "iana"
- },
- "application/coap-group+json": {
- source: "iana",
- compressible: true
- },
- "application/coap-payload": {
- source: "iana"
- },
- "application/commonground": {
- source: "iana"
- },
- "application/concise-problem-details+cbor": {
- source: "iana"
- },
- "application/conference-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/cose": {
- source: "iana"
- },
- "application/cose-key": {
- source: "iana"
- },
- "application/cose-key-set": {
- source: "iana"
- },
- "application/cose-x509": {
- source: "iana"
- },
- "application/cpl+xml": {
- source: "iana",
- compressible: true,
- extensions: ["cpl"]
- },
- "application/csrattrs": {
- source: "iana"
- },
- "application/csta+xml": {
- source: "iana",
- compressible: true
- },
- "application/cstadata+xml": {
- source: "iana",
- compressible: true
- },
- "application/csvm+json": {
- source: "iana",
- compressible: true
- },
- "application/cu-seeme": {
- source: "apache",
- extensions: ["cu"]
- },
- "application/cwl": {
- source: "iana",
- extensions: ["cwl"]
- },
- "application/cwl+json": {
- source: "iana",
- compressible: true
- },
- "application/cwl+yaml": {
- source: "iana"
- },
- "application/cwt": {
- source: "iana"
- },
- "application/cybercash": {
- source: "iana"
- },
- "application/dart": {
- compressible: true
- },
- "application/dash+xml": {
- source: "iana",
- compressible: true,
- extensions: ["mpd"]
- },
- "application/dash-patch+xml": {
- source: "iana",
- compressible: true,
- extensions: ["mpp"]
- },
- "application/dashdelta": {
- source: "iana"
- },
- "application/davmount+xml": {
- source: "iana",
- compressible: true,
- extensions: ["davmount"]
- },
- "application/dca-rft": {
- source: "iana"
- },
- "application/dcd": {
- source: "iana"
- },
- "application/dec-dx": {
- source: "iana"
- },
- "application/dialog-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/dicom": {
- source: "iana",
- extensions: ["dcm"]
- },
- "application/dicom+json": {
- source: "iana",
- compressible: true
- },
- "application/dicom+xml": {
- source: "iana",
- compressible: true
- },
- "application/dii": {
- source: "iana"
- },
- "application/dit": {
- source: "iana"
- },
- "application/dns": {
- source: "iana"
- },
- "application/dns+json": {
- source: "iana",
- compressible: true
- },
- "application/dns-message": {
- source: "iana"
- },
- "application/docbook+xml": {
- source: "apache",
- compressible: true,
- extensions: ["dbk"]
- },
- "application/dots+cbor": {
- source: "iana"
- },
- "application/dpop+jwt": {
- source: "iana"
- },
- "application/dskpp+xml": {
- source: "iana",
- compressible: true
- },
- "application/dssc+der": {
- source: "iana",
- extensions: ["dssc"]
- },
- "application/dssc+xml": {
- source: "iana",
- compressible: true,
- extensions: ["xdssc"]
- },
- "application/dvcs": {
- source: "iana"
- },
- "application/eat+cwt": {
- source: "iana"
- },
- "application/eat+jwt": {
- source: "iana"
- },
- "application/eat-bun+cbor": {
- source: "iana"
- },
- "application/eat-bun+json": {
- source: "iana",
- compressible: true
- },
- "application/eat-ucs+cbor": {
- source: "iana"
- },
- "application/eat-ucs+json": {
- source: "iana",
- compressible: true
- },
- "application/ecmascript": {
- source: "apache",
- compressible: true,
- extensions: ["ecma"]
- },
- "application/edhoc+cbor-seq": {
- source: "iana"
- },
- "application/edi-consent": {
- source: "iana"
- },
- "application/edi-x12": {
- source: "iana",
- compressible: false
- },
- "application/edifact": {
- source: "iana",
- compressible: false
- },
- "application/efi": {
- source: "iana"
- },
- "application/elm+json": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/elm+xml": {
- source: "iana",
- compressible: true
- },
- "application/emergencycalldata.cap+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/emergencycalldata.comment+xml": {
- source: "iana",
- compressible: true
- },
- "application/emergencycalldata.control+xml": {
- source: "iana",
- compressible: true
- },
- "application/emergencycalldata.deviceinfo+xml": {
- source: "iana",
- compressible: true
- },
- "application/emergencycalldata.ecall.msd": {
- source: "iana"
- },
- "application/emergencycalldata.legacyesn+json": {
- source: "iana",
- compressible: true
- },
- "application/emergencycalldata.providerinfo+xml": {
- source: "iana",
- compressible: true
- },
- "application/emergencycalldata.serviceinfo+xml": {
- source: "iana",
- compressible: true
- },
- "application/emergencycalldata.subscriberinfo+xml": {
- source: "iana",
- compressible: true
- },
- "application/emergencycalldata.veds+xml": {
- source: "iana",
- compressible: true
- },
- "application/emma+xml": {
- source: "iana",
- compressible: true,
- extensions: ["emma"]
- },
- "application/emotionml+xml": {
- source: "iana",
- compressible: true,
- extensions: ["emotionml"]
- },
- "application/encaprtp": {
- source: "iana"
- },
- "application/entity-statement+jwt": {
- source: "iana"
- },
- "application/epp+xml": {
- source: "iana",
- compressible: true
- },
- "application/epub+zip": {
- source: "iana",
- compressible: false,
- extensions: ["epub"]
- },
- "application/eshop": {
- source: "iana"
- },
- "application/exi": {
- source: "iana",
- extensions: ["exi"]
- },
- "application/expect-ct-report+json": {
- source: "iana",
- compressible: true
- },
- "application/express": {
- source: "iana",
- extensions: ["exp"]
- },
- "application/fastinfoset": {
- source: "iana"
- },
- "application/fastsoap": {
- source: "iana"
- },
- "application/fdf": {
- source: "iana",
- extensions: ["fdf"]
- },
- "application/fdt+xml": {
- source: "iana",
- compressible: true,
- extensions: ["fdt"]
- },
- "application/fhir+json": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/fhir+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/fido.trusted-apps+json": {
- compressible: true
- },
- "application/fits": {
- source: "iana"
- },
- "application/flexfec": {
- source: "iana"
- },
- "application/font-sfnt": {
- source: "iana"
- },
- "application/font-tdpfr": {
- source: "iana",
- extensions: ["pfr"]
- },
- "application/font-woff": {
- source: "iana",
- compressible: false
- },
- "application/framework-attributes+xml": {
- source: "iana",
- compressible: true
- },
- "application/geo+json": {
- source: "iana",
- compressible: true,
- extensions: ["geojson"]
- },
- "application/geo+json-seq": {
- source: "iana"
- },
- "application/geopackage+sqlite3": {
- source: "iana"
- },
- "application/geopose+json": {
- source: "iana",
- compressible: true
- },
- "application/geoxacml+json": {
- source: "iana",
- compressible: true
- },
- "application/geoxacml+xml": {
- source: "iana",
- compressible: true
- },
- "application/gltf-buffer": {
- source: "iana"
- },
- "application/gml+xml": {
- source: "iana",
- compressible: true,
- extensions: ["gml"]
- },
- "application/gnap-binding-jws": {
- source: "iana"
- },
- "application/gnap-binding-jwsd": {
- source: "iana"
- },
- "application/gnap-binding-rotation-jws": {
- source: "iana"
- },
- "application/gnap-binding-rotation-jwsd": {
- source: "iana"
- },
- "application/gpx+xml": {
- source: "apache",
- compressible: true,
- extensions: ["gpx"]
- },
- "application/grib": {
- source: "iana"
- },
- "application/gxf": {
- source: "apache",
- extensions: ["gxf"]
- },
- "application/gzip": {
- source: "iana",
- compressible: false,
- extensions: ["gz"]
- },
- "application/h224": {
- source: "iana"
- },
- "application/held+xml": {
- source: "iana",
- compressible: true
- },
- "application/hjson": {
- extensions: ["hjson"]
- },
- "application/hl7v2+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/http": {
- source: "iana"
- },
- "application/hyperstudio": {
- source: "iana",
- extensions: ["stk"]
- },
- "application/ibe-key-request+xml": {
- source: "iana",
- compressible: true
- },
- "application/ibe-pkg-reply+xml": {
- source: "iana",
- compressible: true
- },
- "application/ibe-pp-data": {
- source: "iana"
- },
- "application/iges": {
- source: "iana"
- },
- "application/im-iscomposing+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/index": {
- source: "iana"
- },
- "application/index.cmd": {
- source: "iana"
- },
- "application/index.obj": {
- source: "iana"
- },
- "application/index.response": {
- source: "iana"
- },
- "application/index.vnd": {
- source: "iana"
- },
- "application/inkml+xml": {
- source: "iana",
- compressible: true,
- extensions: ["ink", "inkml"]
- },
- "application/iotp": {
- source: "iana"
- },
- "application/ipfix": {
- source: "iana",
- extensions: ["ipfix"]
- },
- "application/ipp": {
- source: "iana"
- },
- "application/isup": {
- source: "iana"
- },
- "application/its+xml": {
- source: "iana",
- compressible: true,
- extensions: ["its"]
- },
- "application/java-archive": {
- source: "iana",
- compressible: false,
- extensions: ["jar", "war", "ear"]
- },
- "application/java-serialized-object": {
- source: "apache",
- compressible: false,
- extensions: ["ser"]
- },
- "application/java-vm": {
- source: "apache",
- compressible: false,
- extensions: ["class"]
- },
- "application/javascript": {
- source: "apache",
- charset: "UTF-8",
- compressible: true,
- extensions: ["js"]
- },
- "application/jf2feed+json": {
- source: "iana",
- compressible: true
- },
- "application/jose": {
- source: "iana"
- },
- "application/jose+json": {
- source: "iana",
- compressible: true
- },
- "application/jrd+json": {
- source: "iana",
- compressible: true
- },
- "application/jscalendar+json": {
- source: "iana",
- compressible: true
- },
- "application/jscontact+json": {
- source: "iana",
- compressible: true
- },
- "application/json": {
- source: "iana",
- charset: "UTF-8",
- compressible: true,
- extensions: ["json", "map"]
- },
- "application/json-patch+json": {
- source: "iana",
- compressible: true
- },
- "application/json-seq": {
- source: "iana"
- },
- "application/json5": {
- extensions: ["json5"]
- },
- "application/jsonml+json": {
- source: "apache",
- compressible: true,
- extensions: ["jsonml"]
- },
- "application/jsonpath": {
- source: "iana"
- },
- "application/jwk+json": {
- source: "iana",
- compressible: true
- },
- "application/jwk-set+json": {
- source: "iana",
- compressible: true
- },
- "application/jwk-set+jwt": {
- source: "iana"
- },
- "application/jwt": {
- source: "iana"
- },
- "application/kpml-request+xml": {
- source: "iana",
- compressible: true
- },
- "application/kpml-response+xml": {
- source: "iana",
- compressible: true
- },
- "application/ld+json": {
- source: "iana",
- compressible: true,
- extensions: ["jsonld"]
- },
- "application/lgr+xml": {
- source: "iana",
- compressible: true,
- extensions: ["lgr"]
- },
- "application/link-format": {
- source: "iana"
- },
- "application/linkset": {
- source: "iana"
- },
- "application/linkset+json": {
- source: "iana",
- compressible: true
- },
- "application/load-control+xml": {
- source: "iana",
- compressible: true
- },
- "application/logout+jwt": {
- source: "iana"
- },
- "application/lost+xml": {
- source: "iana",
- compressible: true,
- extensions: ["lostxml"]
- },
- "application/lostsync+xml": {
- source: "iana",
- compressible: true
- },
- "application/lpf+zip": {
- source: "iana",
- compressible: false
- },
- "application/lxf": {
- source: "iana"
- },
- "application/mac-binhex40": {
- source: "iana",
- extensions: ["hqx"]
- },
- "application/mac-compactpro": {
- source: "apache",
- extensions: ["cpt"]
- },
- "application/macwriteii": {
- source: "iana"
- },
- "application/mads+xml": {
- source: "iana",
- compressible: true,
- extensions: ["mads"]
- },
- "application/manifest+json": {
- source: "iana",
- charset: "UTF-8",
- compressible: true,
- extensions: ["webmanifest"]
- },
- "application/marc": {
- source: "iana",
- extensions: ["mrc"]
- },
- "application/marcxml+xml": {
- source: "iana",
- compressible: true,
- extensions: ["mrcx"]
- },
- "application/mathematica": {
- source: "iana",
- extensions: ["ma", "nb", "mb"]
- },
- "application/mathml+xml": {
- source: "iana",
- compressible: true,
- extensions: ["mathml"]
- },
- "application/mathml-content+xml": {
- source: "iana",
- compressible: true
- },
- "application/mathml-presentation+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-associated-procedure-description+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-deregister+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-envelope+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-msk+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-msk-response+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-protection-description+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-reception-report+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-register+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-register-response+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-schedule+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-user-service-description+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbox": {
- source: "iana",
- extensions: ["mbox"]
- },
- "application/media-policy-dataset+xml": {
- source: "iana",
- compressible: true,
- extensions: ["mpf"]
- },
- "application/media_control+xml": {
- source: "iana",
- compressible: true
- },
- "application/mediaservercontrol+xml": {
- source: "iana",
- compressible: true,
- extensions: ["mscml"]
- },
- "application/merge-patch+json": {
- source: "iana",
- compressible: true
- },
- "application/metalink+xml": {
- source: "apache",
- compressible: true,
- extensions: ["metalink"]
- },
- "application/metalink4+xml": {
- source: "iana",
- compressible: true,
- extensions: ["meta4"]
- },
- "application/mets+xml": {
- source: "iana",
- compressible: true,
- extensions: ["mets"]
- },
- "application/mf4": {
- source: "iana"
- },
- "application/mikey": {
- source: "iana"
- },
- "application/mipc": {
- source: "iana"
- },
- "application/missing-blocks+cbor-seq": {
- source: "iana"
- },
- "application/mmt-aei+xml": {
- source: "iana",
- compressible: true,
- extensions: ["maei"]
- },
- "application/mmt-usd+xml": {
- source: "iana",
- compressible: true,
- extensions: ["musd"]
- },
- "application/mods+xml": {
- source: "iana",
- compressible: true,
- extensions: ["mods"]
- },
- "application/moss-keys": {
- source: "iana"
- },
- "application/moss-signature": {
- source: "iana"
- },
- "application/mosskey-data": {
- source: "iana"
- },
- "application/mosskey-request": {
- source: "iana"
- },
- "application/mp21": {
- source: "iana",
- extensions: ["m21", "mp21"]
- },
- "application/mp4": {
- source: "iana",
- extensions: ["mp4", "mpg4", "mp4s", "m4p"]
- },
- "application/mpeg4-generic": {
- source: "iana"
- },
- "application/mpeg4-iod": {
- source: "iana"
- },
- "application/mpeg4-iod-xmt": {
- source: "iana"
- },
- "application/mrb-consumer+xml": {
- source: "iana",
- compressible: true
- },
- "application/mrb-publish+xml": {
- source: "iana",
- compressible: true
- },
- "application/msc-ivr+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/msc-mixer+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/msix": {
- compressible: false,
- extensions: ["msix"]
- },
- "application/msixbundle": {
- compressible: false,
- extensions: ["msixbundle"]
- },
- "application/msword": {
- source: "iana",
- compressible: false,
- extensions: ["doc", "dot"]
- },
- "application/mud+json": {
- source: "iana",
- compressible: true
- },
- "application/multipart-core": {
- source: "iana"
- },
- "application/mxf": {
- source: "iana",
- extensions: ["mxf"]
- },
- "application/n-quads": {
- source: "iana",
- extensions: ["nq"]
- },
- "application/n-triples": {
- source: "iana",
- extensions: ["nt"]
- },
- "application/nasdata": {
- source: "iana"
- },
- "application/news-checkgroups": {
- source: "iana",
- charset: "US-ASCII"
- },
- "application/news-groupinfo": {
- source: "iana",
- charset: "US-ASCII"
- },
- "application/news-transmission": {
- source: "iana"
- },
- "application/nlsml+xml": {
- source: "iana",
- compressible: true
- },
- "application/node": {
- source: "iana",
- extensions: ["cjs"]
- },
- "application/nss": {
- source: "iana"
- },
- "application/oauth-authz-req+jwt": {
- source: "iana"
- },
- "application/oblivious-dns-message": {
- source: "iana"
- },
- "application/ocsp-request": {
- source: "iana"
- },
- "application/ocsp-response": {
- source: "iana"
- },
- "application/octet-stream": {
- source: "iana",
- compressible: true,
- extensions: ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"]
- },
- "application/oda": {
- source: "iana",
- extensions: ["oda"]
- },
- "application/odm+xml": {
- source: "iana",
- compressible: true
- },
- "application/odx": {
- source: "iana"
- },
- "application/oebps-package+xml": {
- source: "iana",
- compressible: true,
- extensions: ["opf"]
- },
- "application/ogg": {
- source: "iana",
- compressible: false,
- extensions: ["ogx"]
- },
- "application/ohttp-keys": {
- source: "iana"
- },
- "application/omdoc+xml": {
- source: "apache",
- compressible: true,
- extensions: ["omdoc"]
- },
- "application/onenote": {
- source: "apache",
- extensions: ["onetoc", "onetoc2", "onetmp", "onepkg", "one", "onea"]
- },
- "application/opc-nodeset+xml": {
- source: "iana",
- compressible: true
- },
- "application/oscore": {
- source: "iana"
- },
- "application/oxps": {
- source: "iana",
- extensions: ["oxps"]
- },
- "application/p21": {
- source: "iana"
- },
- "application/p21+zip": {
- source: "iana",
- compressible: false
- },
- "application/p2p-overlay+xml": {
- source: "iana",
- compressible: true,
- extensions: ["relo"]
- },
- "application/parityfec": {
- source: "iana"
- },
- "application/passport": {
- source: "iana"
- },
- "application/patch-ops-error+xml": {
- source: "iana",
- compressible: true,
- extensions: ["xer"]
- },
- "application/pdf": {
- source: "iana",
- compressible: false,
- extensions: ["pdf"]
- },
- "application/pdx": {
- source: "iana"
- },
- "application/pem-certificate-chain": {
- source: "iana"
- },
- "application/pgp-encrypted": {
- source: "iana",
- compressible: false,
- extensions: ["pgp"]
- },
- "application/pgp-keys": {
- source: "iana",
- extensions: ["asc"]
- },
- "application/pgp-signature": {
- source: "iana",
- extensions: ["sig", "asc"]
- },
- "application/pics-rules": {
- source: "apache",
- extensions: ["prf"]
- },
- "application/pidf+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/pidf-diff+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/pkcs10": {
- source: "iana",
- extensions: ["p10"]
- },
- "application/pkcs12": {
- source: "iana"
- },
- "application/pkcs7-mime": {
- source: "iana",
- extensions: ["p7m", "p7c"]
- },
- "application/pkcs7-signature": {
- source: "iana",
- extensions: ["p7s"]
- },
- "application/pkcs8": {
- source: "iana",
- extensions: ["p8"]
- },
- "application/pkcs8-encrypted": {
- source: "iana"
- },
- "application/pkix-attr-cert": {
- source: "iana",
- extensions: ["ac"]
- },
- "application/pkix-cert": {
- source: "iana",
- extensions: ["cer"]
- },
- "application/pkix-crl": {
- source: "iana",
- extensions: ["crl"]
- },
- "application/pkix-pkipath": {
- source: "iana",
- extensions: ["pkipath"]
- },
- "application/pkixcmp": {
- source: "iana",
- extensions: ["pki"]
- },
- "application/pls+xml": {
- source: "iana",
- compressible: true,
- extensions: ["pls"]
- },
- "application/poc-settings+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/postscript": {
- source: "iana",
- compressible: true,
- extensions: ["ai", "eps", "ps"]
- },
- "application/ppsp-tracker+json": {
- source: "iana",
- compressible: true
- },
- "application/private-token-issuer-directory": {
- source: "iana"
- },
- "application/private-token-request": {
- source: "iana"
- },
- "application/private-token-response": {
- source: "iana"
- },
- "application/problem+json": {
- source: "iana",
- compressible: true
- },
- "application/problem+xml": {
- source: "iana",
- compressible: true
- },
- "application/provenance+xml": {
- source: "iana",
- compressible: true,
- extensions: ["provx"]
- },
- "application/provided-claims+jwt": {
- source: "iana"
- },
- "application/prs.alvestrand.titrax-sheet": {
- source: "iana"
- },
- "application/prs.cww": {
- source: "iana",
- extensions: ["cww"]
- },
- "application/prs.cyn": {
- source: "iana",
- charset: "7-BIT"
- },
- "application/prs.hpub+zip": {
- source: "iana",
- compressible: false
- },
- "application/prs.implied-document+xml": {
- source: "iana",
- compressible: true
- },
- "application/prs.implied-executable": {
- source: "iana"
- },
- "application/prs.implied-object+json": {
- source: "iana",
- compressible: true
- },
- "application/prs.implied-object+json-seq": {
- source: "iana"
- },
- "application/prs.implied-object+yaml": {
- source: "iana"
- },
- "application/prs.implied-structure": {
- source: "iana"
- },
- "application/prs.mayfile": {
- source: "iana"
- },
- "application/prs.nprend": {
- source: "iana"
- },
- "application/prs.plucker": {
- source: "iana"
- },
- "application/prs.rdf-xml-crypt": {
- source: "iana"
- },
- "application/prs.vcfbzip2": {
- source: "iana"
- },
- "application/prs.xsf+xml": {
- source: "iana",
- compressible: true,
- extensions: ["xsf"]
- },
- "application/pskc+xml": {
- source: "iana",
- compressible: true,
- extensions: ["pskcxml"]
- },
- "application/pvd+json": {
- source: "iana",
- compressible: true
- },
- "application/qsig": {
- source: "iana"
- },
- "application/raml+yaml": {
- compressible: true,
- extensions: ["raml"]
- },
- "application/raptorfec": {
- source: "iana"
- },
- "application/rdap+json": {
- source: "iana",
- compressible: true
- },
- "application/rdf+xml": {
- source: "iana",
- compressible: true,
- extensions: ["rdf", "owl"]
- },
- "application/reginfo+xml": {
- source: "iana",
- compressible: true,
- extensions: ["rif"]
- },
- "application/relax-ng-compact-syntax": {
- source: "iana",
- extensions: ["rnc"]
- },
- "application/remote-printing": {
- source: "apache"
- },
- "application/reputon+json": {
- source: "iana",
- compressible: true
- },
- "application/resolve-response+jwt": {
- source: "iana"
- },
- "application/resource-lists+xml": {
- source: "iana",
- compressible: true,
- extensions: ["rl"]
- },
- "application/resource-lists-diff+xml": {
- source: "iana",
- compressible: true,
- extensions: ["rld"]
- },
- "application/rfc+xml": {
- source: "iana",
- compressible: true
- },
- "application/riscos": {
- source: "iana"
- },
- "application/rlmi+xml": {
- source: "iana",
- compressible: true
- },
- "application/rls-services+xml": {
- source: "iana",
- compressible: true,
- extensions: ["rs"]
- },
- "application/route-apd+xml": {
- source: "iana",
- compressible: true,
- extensions: ["rapd"]
- },
- "application/route-s-tsid+xml": {
- source: "iana",
- compressible: true,
- extensions: ["sls"]
- },
- "application/route-usd+xml": {
- source: "iana",
- compressible: true,
- extensions: ["rusd"]
- },
- "application/rpki-checklist": {
- source: "iana"
- },
- "application/rpki-ghostbusters": {
- source: "iana",
- extensions: ["gbr"]
- },
- "application/rpki-manifest": {
- source: "iana",
- extensions: ["mft"]
- },
- "application/rpki-publication": {
- source: "iana"
- },
- "application/rpki-roa": {
- source: "iana",
- extensions: ["roa"]
- },
- "application/rpki-signed-tal": {
- source: "iana"
- },
- "application/rpki-updown": {
- source: "iana"
- },
- "application/rsd+xml": {
- source: "apache",
- compressible: true,
- extensions: ["rsd"]
- },
- "application/rss+xml": {
- source: "apache",
- compressible: true,
- extensions: ["rss"]
- },
- "application/rtf": {
- source: "iana",
- compressible: true,
- extensions: ["rtf"]
- },
- "application/rtploopback": {
- source: "iana"
- },
- "application/rtx": {
- source: "iana"
- },
- "application/samlassertion+xml": {
- source: "iana",
- compressible: true
- },
- "application/samlmetadata+xml": {
- source: "iana",
- compressible: true
- },
- "application/sarif+json": {
- source: "iana",
- compressible: true
- },
- "application/sarif-external-properties+json": {
- source: "iana",
- compressible: true
- },
- "application/sbe": {
- source: "iana"
- },
- "application/sbml+xml": {
- source: "iana",
- compressible: true,
- extensions: ["sbml"]
- },
- "application/scaip+xml": {
- source: "iana",
- compressible: true
- },
- "application/scim+json": {
- source: "iana",
- compressible: true
- },
- "application/scvp-cv-request": {
- source: "iana",
- extensions: ["scq"]
- },
- "application/scvp-cv-response": {
- source: "iana",
- extensions: ["scs"]
- },
- "application/scvp-vp-request": {
- source: "iana",
- extensions: ["spq"]
- },
- "application/scvp-vp-response": {
- source: "iana",
- extensions: ["spp"]
- },
- "application/sdp": {
- source: "iana",
- extensions: ["sdp"]
- },
- "application/secevent+jwt": {
- source: "iana"
- },
- "application/senml+cbor": {
- source: "iana"
- },
- "application/senml+json": {
- source: "iana",
- compressible: true
- },
- "application/senml+xml": {
- source: "iana",
- compressible: true,
- extensions: ["senmlx"]
- },
- "application/senml-etch+cbor": {
- source: "iana"
- },
- "application/senml-etch+json": {
- source: "iana",
- compressible: true
- },
- "application/senml-exi": {
- source: "iana"
- },
- "application/sensml+cbor": {
- source: "iana"
- },
- "application/sensml+json": {
- source: "iana",
- compressible: true
- },
- "application/sensml+xml": {
- source: "iana",
- compressible: true,
- extensions: ["sensmlx"]
- },
- "application/sensml-exi": {
- source: "iana"
- },
- "application/sep+xml": {
- source: "iana",
- compressible: true
- },
- "application/sep-exi": {
- source: "iana"
- },
- "application/session-info": {
- source: "iana"
- },
- "application/set-payment": {
- source: "iana"
- },
- "application/set-payment-initiation": {
- source: "iana",
- extensions: ["setpay"]
- },
- "application/set-registration": {
- source: "iana"
- },
- "application/set-registration-initiation": {
- source: "iana",
- extensions: ["setreg"]
- },
- "application/sgml": {
- source: "iana"
- },
- "application/sgml-open-catalog": {
- source: "iana"
- },
- "application/shf+xml": {
- source: "iana",
- compressible: true,
- extensions: ["shf"]
- },
- "application/sieve": {
- source: "iana",
- extensions: ["siv", "sieve"]
- },
- "application/simple-filter+xml": {
- source: "iana",
- compressible: true
- },
- "application/simple-message-summary": {
- source: "iana"
- },
- "application/simplesymbolcontainer": {
- source: "iana"
- },
- "application/sipc": {
- source: "iana"
- },
- "application/slate": {
- source: "iana"
- },
- "application/smil": {
- source: "apache"
- },
- "application/smil+xml": {
- source: "iana",
- compressible: true,
- extensions: ["smi", "smil"]
- },
- "application/smpte336m": {
- source: "iana"
- },
- "application/soap+fastinfoset": {
- source: "iana"
- },
- "application/soap+xml": {
- source: "iana",
- compressible: true
- },
- "application/sparql-query": {
- source: "iana",
- extensions: ["rq"]
- },
- "application/sparql-results+xml": {
- source: "iana",
- compressible: true,
- extensions: ["srx"]
- },
- "application/spdx+json": {
- source: "iana",
- compressible: true
- },
- "application/spirits-event+xml": {
- source: "iana",
- compressible: true
- },
- "application/sql": {
- source: "iana",
- extensions: ["sql"]
- },
- "application/srgs": {
- source: "iana",
- extensions: ["gram"]
- },
- "application/srgs+xml": {
- source: "iana",
- compressible: true,
- extensions: ["grxml"]
- },
- "application/sru+xml": {
- source: "iana",
- compressible: true,
- extensions: ["sru"]
- },
- "application/ssdl+xml": {
- source: "apache",
- compressible: true,
- extensions: ["ssdl"]
- },
- "application/sslkeylogfile": {
- source: "iana"
- },
- "application/ssml+xml": {
- source: "iana",
- compressible: true,
- extensions: ["ssml"]
- },
- "application/st2110-41": {
- source: "iana"
- },
- "application/stix+json": {
- source: "iana",
- compressible: true
- },
- "application/stratum": {
- source: "iana"
- },
- "application/swid+cbor": {
- source: "iana"
- },
- "application/swid+xml": {
- source: "iana",
- compressible: true,
- extensions: ["swidtag"]
- },
- "application/tamp-apex-update": {
- source: "iana"
- },
- "application/tamp-apex-update-confirm": {
- source: "iana"
- },
- "application/tamp-community-update": {
- source: "iana"
- },
- "application/tamp-community-update-confirm": {
- source: "iana"
- },
- "application/tamp-error": {
- source: "iana"
- },
- "application/tamp-sequence-adjust": {
- source: "iana"
- },
- "application/tamp-sequence-adjust-confirm": {
- source: "iana"
- },
- "application/tamp-status-query": {
- source: "iana"
- },
- "application/tamp-status-response": {
- source: "iana"
- },
- "application/tamp-update": {
- source: "iana"
- },
- "application/tamp-update-confirm": {
- source: "iana"
- },
- "application/tar": {
- compressible: true
- },
- "application/taxii+json": {
- source: "iana",
- compressible: true
- },
- "application/td+json": {
- source: "iana",
- compressible: true
- },
- "application/tei+xml": {
- source: "iana",
- compressible: true,
- extensions: ["tei", "teicorpus"]
- },
- "application/tetra_isi": {
- source: "iana"
- },
- "application/thraud+xml": {
- source: "iana",
- compressible: true,
- extensions: ["tfi"]
- },
- "application/timestamp-query": {
- source: "iana"
- },
- "application/timestamp-reply": {
- source: "iana"
- },
- "application/timestamped-data": {
- source: "iana",
- extensions: ["tsd"]
- },
- "application/tlsrpt+gzip": {
- source: "iana"
- },
- "application/tlsrpt+json": {
- source: "iana",
- compressible: true
- },
- "application/tm+json": {
- source: "iana",
- compressible: true
- },
- "application/tnauthlist": {
- source: "iana"
- },
- "application/toc+cbor": {
- source: "iana"
- },
- "application/token-introspection+jwt": {
- source: "iana"
- },
- "application/toml": {
- source: "iana",
- compressible: true,
- extensions: ["toml"]
- },
- "application/trickle-ice-sdpfrag": {
- source: "iana"
- },
- "application/trig": {
- source: "iana",
- extensions: ["trig"]
- },
- "application/trust-chain+json": {
- source: "iana",
- compressible: true
- },
- "application/trust-mark+jwt": {
- source: "iana"
- },
- "application/trust-mark-delegation+jwt": {
- source: "iana"
- },
- "application/ttml+xml": {
- source: "iana",
- compressible: true,
- extensions: ["ttml"]
- },
- "application/tve-trigger": {
- source: "iana"
- },
- "application/tzif": {
- source: "iana"
- },
- "application/tzif-leap": {
- source: "iana"
- },
- "application/ubjson": {
- compressible: false,
- extensions: ["ubj"]
- },
- "application/uccs+cbor": {
- source: "iana"
- },
- "application/ujcs+json": {
- source: "iana",
- compressible: true
- },
- "application/ulpfec": {
- source: "iana"
- },
- "application/urc-grpsheet+xml": {
- source: "iana",
- compressible: true
- },
- "application/urc-ressheet+xml": {
- source: "iana",
- compressible: true,
- extensions: ["rsheet"]
- },
- "application/urc-targetdesc+xml": {
- source: "iana",
- compressible: true,
- extensions: ["td"]
- },
- "application/urc-uisocketdesc+xml": {
- source: "iana",
- compressible: true
- },
- "application/vc": {
- source: "iana"
- },
- "application/vc+cose": {
- source: "iana"
- },
- "application/vc+jwt": {
- source: "iana"
- },
- "application/vcard+json": {
- source: "iana",
- compressible: true
- },
- "application/vcard+xml": {
- source: "iana",
- compressible: true
- },
- "application/vemmi": {
- source: "iana"
- },
- "application/vividence.scriptfile": {
- source: "apache"
- },
- "application/vnd.1000minds.decision-model+xml": {
- source: "iana",
- compressible: true,
- extensions: ["1km"]
- },
- "application/vnd.1ob": {
- source: "iana"
- },
- "application/vnd.3gpp-prose+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp-prose-pc3a+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp-prose-pc3ach+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp-prose-pc3ch+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp-prose-pc8+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp-v2x-local-service-information": {
- source: "iana"
- },
- "application/vnd.3gpp.5gnas": {
- source: "iana"
- },
- "application/vnd.3gpp.5gsa2x": {
- source: "iana"
- },
- "application/vnd.3gpp.5gsa2x-local-service-information": {
- source: "iana"
- },
- "application/vnd.3gpp.5gsv2x": {
- source: "iana"
- },
- "application/vnd.3gpp.5gsv2x-local-service-information": {
- source: "iana"
- },
- "application/vnd.3gpp.access-transfer-events+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.bsf+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.crs+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.current-location-discovery+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.gmop+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.gtpc": {
- source: "iana"
- },
- "application/vnd.3gpp.interworking-data": {
- source: "iana"
- },
- "application/vnd.3gpp.lpp": {
- source: "iana"
- },
- "application/vnd.3gpp.mc-signalling-ear": {
- source: "iana"
- },
- "application/vnd.3gpp.mcdata-affiliation-command+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcdata-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcdata-payload": {
- source: "iana"
- },
- "application/vnd.3gpp.mcdata-regroup+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcdata-service-config+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcdata-signalling": {
- source: "iana"
- },
- "application/vnd.3gpp.mcdata-ue-config+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcdata-user-profile+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-affiliation-command+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-floor-request+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-location-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-mbms-usage-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-regroup+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-service-config+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-signed+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-ue-config+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-ue-init-config+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-user-profile+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcvideo-affiliation-command+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcvideo-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcvideo-location-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcvideo-mbms-usage-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcvideo-regroup+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcvideo-service-config+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcvideo-transmission-request+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcvideo-ue-config+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcvideo-user-profile+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mid-call+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.ngap": {
- source: "iana"
- },
- "application/vnd.3gpp.pfcp": {
- source: "iana"
- },
- "application/vnd.3gpp.pic-bw-large": {
- source: "iana",
- extensions: ["plb"]
- },
- "application/vnd.3gpp.pic-bw-small": {
- source: "iana",
- extensions: ["psb"]
- },
- "application/vnd.3gpp.pic-bw-var": {
- source: "iana",
- extensions: ["pvb"]
- },
- "application/vnd.3gpp.pinapp-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.s1ap": {
- source: "iana"
- },
- "application/vnd.3gpp.seal-group-doc+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.seal-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.seal-location-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.seal-mbms-usage-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.seal-network-qos-management-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.seal-ue-config-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.seal-unicast-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.seal-user-profile-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.sms": {
- source: "iana"
- },
- "application/vnd.3gpp.sms+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.srvcc-ext+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.srvcc-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.state-and-event-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.ussd+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.v2x": {
- source: "iana"
- },
- "application/vnd.3gpp.vae-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp2.bcmcsinfo+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp2.sms": {
- source: "iana"
- },
- "application/vnd.3gpp2.tcap": {
- source: "iana",
- extensions: ["tcap"]
- },
- "application/vnd.3lightssoftware.imagescal": {
- source: "iana"
- },
- "application/vnd.3m.post-it-notes": {
- source: "iana",
- extensions: ["pwn"]
- },
- "application/vnd.accpac.simply.aso": {
- source: "iana",
- extensions: ["aso"]
- },
- "application/vnd.accpac.simply.imp": {
- source: "iana",
- extensions: ["imp"]
- },
- "application/vnd.acm.addressxfer+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.acm.chatbot+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.acucobol": {
- source: "iana",
- extensions: ["acu"]
- },
- "application/vnd.acucorp": {
- source: "iana",
- extensions: ["atc", "acutc"]
- },
- "application/vnd.adobe.air-application-installer-package+zip": {
- source: "apache",
- compressible: false,
- extensions: ["air"]
- },
- "application/vnd.adobe.flash.movie": {
- source: "iana"
- },
- "application/vnd.adobe.formscentral.fcdt": {
- source: "iana",
- extensions: ["fcdt"]
- },
- "application/vnd.adobe.fxp": {
- source: "iana",
- extensions: ["fxp", "fxpl"]
- },
- "application/vnd.adobe.partial-upload": {
- source: "iana"
- },
- "application/vnd.adobe.xdp+xml": {
- source: "iana",
- compressible: true,
- extensions: ["xdp"]
- },
- "application/vnd.adobe.xfdf": {
- source: "apache",
- extensions: ["xfdf"]
- },
- "application/vnd.aether.imp": {
- source: "iana"
- },
- "application/vnd.afpc.afplinedata": {
- source: "iana"
- },
- "application/vnd.afpc.afplinedata-pagedef": {
- source: "iana"
- },
- "application/vnd.afpc.cmoca-cmresource": {
- source: "iana"
- },
- "application/vnd.afpc.foca-charset": {
- source: "iana"
- },
- "application/vnd.afpc.foca-codedfont": {
- source: "iana"
- },
- "application/vnd.afpc.foca-codepage": {
- source: "iana"
- },
- "application/vnd.afpc.modca": {
- source: "iana"
- },
- "application/vnd.afpc.modca-cmtable": {
- source: "iana"
- },
- "application/vnd.afpc.modca-formdef": {
- source: "iana"
- },
- "application/vnd.afpc.modca-mediummap": {
- source: "iana"
- },
- "application/vnd.afpc.modca-objectcontainer": {
- source: "iana"
- },
- "application/vnd.afpc.modca-overlay": {
- source: "iana"
- },
- "application/vnd.afpc.modca-pagesegment": {
- source: "iana"
- },
- "application/vnd.age": {
- source: "iana",
- extensions: ["age"]
- },
- "application/vnd.ah-barcode": {
- source: "apache"
- },
- "application/vnd.ahead.space": {
- source: "iana",
- extensions: ["ahead"]
- },
- "application/vnd.airzip.filesecure.azf": {
- source: "iana",
- extensions: ["azf"]
- },
- "application/vnd.airzip.filesecure.azs": {
- source: "iana",
- extensions: ["azs"]
- },
- "application/vnd.amadeus+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.amazon.ebook": {
- source: "apache",
- extensions: ["azw"]
- },
- "application/vnd.amazon.mobi8-ebook": {
- source: "iana"
- },
- "application/vnd.americandynamics.acc": {
- source: "iana",
- extensions: ["acc"]
- },
- "application/vnd.amiga.ami": {
- source: "iana",
- extensions: ["ami"]
- },
- "application/vnd.amundsen.maze+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.android.ota": {
- source: "iana"
- },
- "application/vnd.android.package-archive": {
- source: "apache",
- compressible: false,
- extensions: ["apk"]
- },
- "application/vnd.anki": {
- source: "iana"
- },
- "application/vnd.anser-web-certificate-issue-initiation": {
- source: "iana",
- extensions: ["cii"]
- },
- "application/vnd.anser-web-funds-transfer-initiation": {
- source: "apache",
- extensions: ["fti"]
- },
- "application/vnd.antix.game-component": {
- source: "iana",
- extensions: ["atx"]
- },
- "application/vnd.apache.arrow.file": {
- source: "iana"
- },
- "application/vnd.apache.arrow.stream": {
- source: "iana"
- },
- "application/vnd.apache.parquet": {
- source: "iana"
- },
- "application/vnd.apache.thrift.binary": {
- source: "iana"
- },
- "application/vnd.apache.thrift.compact": {
- source: "iana"
- },
- "application/vnd.apache.thrift.json": {
- source: "iana"
- },
- "application/vnd.apexlang": {
- source: "iana"
- },
- "application/vnd.api+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.aplextor.warrp+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.apothekende.reservation+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.apple.installer+xml": {
- source: "iana",
- compressible: true,
- extensions: ["mpkg"]
- },
- "application/vnd.apple.keynote": {
- source: "iana",
- extensions: ["key"]
- },
- "application/vnd.apple.mpegurl": {
- source: "iana",
- extensions: ["m3u8"]
- },
- "application/vnd.apple.numbers": {
- source: "iana",
- extensions: ["numbers"]
- },
- "application/vnd.apple.pages": {
- source: "iana",
- extensions: ["pages"]
- },
- "application/vnd.apple.pkpass": {
- compressible: false,
- extensions: ["pkpass"]
- },
- "application/vnd.arastra.swi": {
- source: "apache"
- },
- "application/vnd.aristanetworks.swi": {
- source: "iana",
- extensions: ["swi"]
- },
- "application/vnd.artisan+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.artsquare": {
- source: "iana"
- },
- "application/vnd.astraea-software.iota": {
- source: "iana",
- extensions: ["iota"]
- },
- "application/vnd.audiograph": {
- source: "iana",
- extensions: ["aep"]
- },
- "application/vnd.autodesk.fbx": {
- extensions: ["fbx"]
- },
- "application/vnd.autopackage": {
- source: "iana"
- },
- "application/vnd.avalon+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.avistar+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.balsamiq.bmml+xml": {
- source: "iana",
- compressible: true,
- extensions: ["bmml"]
- },
- "application/vnd.balsamiq.bmpr": {
- source: "iana"
- },
- "application/vnd.banana-accounting": {
- source: "iana"
- },
- "application/vnd.bbf.usp.error": {
- source: "iana"
- },
- "application/vnd.bbf.usp.msg": {
- source: "iana"
- },
- "application/vnd.bbf.usp.msg+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.bekitzur-stech+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.belightsoft.lhzd+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.belightsoft.lhzl+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.bint.med-content": {
- source: "iana"
- },
- "application/vnd.biopax.rdf+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.blink-idb-value-wrapper": {
- source: "iana"
- },
- "application/vnd.blueice.multipass": {
- source: "iana",
- extensions: ["mpm"]
- },
- "application/vnd.bluetooth.ep.oob": {
- source: "iana"
- },
- "application/vnd.bluetooth.le.oob": {
- source: "iana"
- },
- "application/vnd.bmi": {
- source: "iana",
- extensions: ["bmi"]
- },
- "application/vnd.bpf": {
- source: "iana"
- },
- "application/vnd.bpf3": {
- source: "iana"
- },
- "application/vnd.businessobjects": {
- source: "iana",
- extensions: ["rep"]
- },
- "application/vnd.byu.uapi+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.bzip3": {
- source: "iana"
- },
- "application/vnd.c3voc.schedule+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.cab-jscript": {
- source: "iana"
- },
- "application/vnd.canon-cpdl": {
- source: "iana"
- },
- "application/vnd.canon-lips": {
- source: "iana"
- },
- "application/vnd.capasystems-pg+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.cendio.thinlinc.clientconf": {
- source: "iana"
- },
- "application/vnd.century-systems.tcp_stream": {
- source: "iana"
- },
- "application/vnd.chemdraw+xml": {
- source: "iana",
- compressible: true,
- extensions: ["cdxml"]
- },
- "application/vnd.chess-pgn": {
- source: "iana"
- },
- "application/vnd.chipnuts.karaoke-mmd": {
- source: "iana",
- extensions: ["mmd"]
- },
- "application/vnd.ciedi": {
- source: "iana"
- },
- "application/vnd.cinderella": {
- source: "iana",
- extensions: ["cdy"]
- },
- "application/vnd.cirpack.isdn-ext": {
- source: "iana"
- },
- "application/vnd.citationstyles.style+xml": {
- source: "iana",
- compressible: true,
- extensions: ["csl"]
- },
- "application/vnd.claymore": {
- source: "iana",
- extensions: ["cla"]
- },
- "application/vnd.cloanto.rp9": {
- source: "iana",
- extensions: ["rp9"]
- },
- "application/vnd.clonk.c4group": {
- source: "iana",
- extensions: ["c4g", "c4d", "c4f", "c4p", "c4u"]
- },
- "application/vnd.cluetrust.cartomobile-config": {
- source: "iana",
- extensions: ["c11amc"]
- },
- "application/vnd.cluetrust.cartomobile-config-pkg": {
- source: "iana",
- extensions: ["c11amz"]
- },
- "application/vnd.cncf.helm.chart.content.v1.tar+gzip": {
- source: "iana"
- },
- "application/vnd.cncf.helm.chart.provenance.v1.prov": {
- source: "iana"
- },
- "application/vnd.cncf.helm.config.v1+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.coffeescript": {
- source: "iana"
- },
- "application/vnd.collabio.xodocuments.document": {
- source: "iana"
- },
- "application/vnd.collabio.xodocuments.document-template": {
- source: "iana"
- },
- "application/vnd.collabio.xodocuments.presentation": {
- source: "iana"
- },
- "application/vnd.collabio.xodocuments.presentation-template": {
- source: "iana"
- },
- "application/vnd.collabio.xodocuments.spreadsheet": {
- source: "iana"
- },
- "application/vnd.collabio.xodocuments.spreadsheet-template": {
- source: "iana"
- },
- "application/vnd.collection+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.collection.doc+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.collection.next+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.comicbook+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.comicbook-rar": {
- source: "iana"
- },
- "application/vnd.commerce-battelle": {
- source: "iana"
- },
- "application/vnd.commonspace": {
- source: "iana",
- extensions: ["csp"]
- },
- "application/vnd.contact.cmsg": {
- source: "iana",
- extensions: ["cdbcmsg"]
- },
- "application/vnd.coreos.ignition+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.cosmocaller": {
- source: "iana",
- extensions: ["cmc"]
- },
- "application/vnd.crick.clicker": {
- source: "iana",
- extensions: ["clkx"]
- },
- "application/vnd.crick.clicker.keyboard": {
- source: "iana",
- extensions: ["clkk"]
- },
- "application/vnd.crick.clicker.palette": {
- source: "iana",
- extensions: ["clkp"]
- },
- "application/vnd.crick.clicker.template": {
- source: "iana",
- extensions: ["clkt"]
- },
- "application/vnd.crick.clicker.wordbank": {
- source: "iana",
- extensions: ["clkw"]
- },
- "application/vnd.criticaltools.wbs+xml": {
- source: "iana",
- compressible: true,
- extensions: ["wbs"]
- },
- "application/vnd.cryptii.pipe+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.crypto-shade-file": {
- source: "iana"
- },
- "application/vnd.cryptomator.encrypted": {
- source: "iana"
- },
- "application/vnd.cryptomator.vault": {
- source: "iana"
- },
- "application/vnd.ctc-posml": {
- source: "iana",
- extensions: ["pml"]
- },
- "application/vnd.ctct.ws+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.cups-pdf": {
- source: "iana"
- },
- "application/vnd.cups-postscript": {
- source: "iana"
- },
- "application/vnd.cups-ppd": {
- source: "iana",
- extensions: ["ppd"]
- },
- "application/vnd.cups-raster": {
- source: "iana"
- },
- "application/vnd.cups-raw": {
- source: "iana"
- },
- "application/vnd.curl": {
- source: "iana"
- },
- "application/vnd.curl.car": {
- source: "apache",
- extensions: ["car"]
- },
- "application/vnd.curl.pcurl": {
- source: "apache",
- extensions: ["pcurl"]
- },
- "application/vnd.cyan.dean.root+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.cybank": {
- source: "iana"
- },
- "application/vnd.cyclonedx+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.cyclonedx+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.d2l.coursepackage1p0+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.d3m-dataset": {
- source: "iana"
- },
- "application/vnd.d3m-problem": {
- source: "iana"
- },
- "application/vnd.dart": {
- source: "iana",
- compressible: true,
- extensions: ["dart"]
- },
- "application/vnd.data-vision.rdz": {
- source: "iana",
- extensions: ["rdz"]
- },
- "application/vnd.datalog": {
- source: "iana"
- },
- "application/vnd.datapackage+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dataresource+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dbf": {
- source: "iana",
- extensions: ["dbf"]
- },
- "application/vnd.dcmp+xml": {
- source: "iana",
- compressible: true,
- extensions: ["dcmp"]
- },
- "application/vnd.debian.binary-package": {
- source: "iana"
- },
- "application/vnd.dece.data": {
- source: "iana",
- extensions: ["uvf", "uvvf", "uvd", "uvvd"]
- },
- "application/vnd.dece.ttml+xml": {
- source: "iana",
- compressible: true,
- extensions: ["uvt", "uvvt"]
- },
- "application/vnd.dece.unspecified": {
- source: "iana",
- extensions: ["uvx", "uvvx"]
- },
- "application/vnd.dece.zip": {
- source: "iana",
- extensions: ["uvz", "uvvz"]
- },
- "application/vnd.denovo.fcselayout-link": {
- source: "iana",
- extensions: ["fe_launch"]
- },
- "application/vnd.desmume.movie": {
- source: "iana"
- },
- "application/vnd.dir-bi.plate-dl-nosuffix": {
- source: "iana"
- },
- "application/vnd.dm.delegation+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dna": {
- source: "iana",
- extensions: ["dna"]
- },
- "application/vnd.document+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dolby.mlp": {
- source: "apache",
- extensions: ["mlp"]
- },
- "application/vnd.dolby.mobile.1": {
- source: "iana"
- },
- "application/vnd.dolby.mobile.2": {
- source: "iana"
- },
- "application/vnd.doremir.scorecloud-binary-document": {
- source: "iana"
- },
- "application/vnd.dpgraph": {
- source: "iana",
- extensions: ["dpg"]
- },
- "application/vnd.dreamfactory": {
- source: "iana",
- extensions: ["dfac"]
- },
- "application/vnd.drive+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ds-keypoint": {
- source: "apache",
- extensions: ["kpxx"]
- },
- "application/vnd.dtg.local": {
- source: "iana"
- },
- "application/vnd.dtg.local.flash": {
- source: "iana"
- },
- "application/vnd.dtg.local.html": {
- source: "iana"
- },
- "application/vnd.dvb.ait": {
- source: "iana",
- extensions: ["ait"]
- },
- "application/vnd.dvb.dvbisl+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dvb.dvbj": {
- source: "iana"
- },
- "application/vnd.dvb.esgcontainer": {
- source: "iana"
- },
- "application/vnd.dvb.ipdcdftnotifaccess": {
- source: "iana"
- },
- "application/vnd.dvb.ipdcesgaccess": {
- source: "iana"
- },
- "application/vnd.dvb.ipdcesgaccess2": {
- source: "iana"
- },
- "application/vnd.dvb.ipdcesgpdd": {
- source: "iana"
- },
- "application/vnd.dvb.ipdcroaming": {
- source: "iana"
- },
- "application/vnd.dvb.iptv.alfec-base": {
- source: "iana"
- },
- "application/vnd.dvb.iptv.alfec-enhancement": {
- source: "iana"
- },
- "application/vnd.dvb.notif-aggregate-root+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dvb.notif-container+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dvb.notif-generic+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dvb.notif-ia-msglist+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dvb.notif-ia-registration-request+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dvb.notif-ia-registration-response+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dvb.notif-init+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dvb.pfr": {
- source: "iana"
- },
- "application/vnd.dvb.service": {
- source: "iana",
- extensions: ["svc"]
- },
- "application/vnd.dxr": {
- source: "iana"
- },
- "application/vnd.dynageo": {
- source: "iana",
- extensions: ["geo"]
- },
- "application/vnd.dzr": {
- source: "iana"
- },
- "application/vnd.easykaraoke.cdgdownload": {
- source: "iana"
- },
- "application/vnd.ecdis-update": {
- source: "iana"
- },
- "application/vnd.ecip.rlp": {
- source: "iana"
- },
- "application/vnd.eclipse.ditto+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ecowin.chart": {
- source: "iana",
- extensions: ["mag"]
- },
- "application/vnd.ecowin.filerequest": {
- source: "iana"
- },
- "application/vnd.ecowin.fileupdate": {
- source: "iana"
- },
- "application/vnd.ecowin.series": {
- source: "iana"
- },
- "application/vnd.ecowin.seriesrequest": {
- source: "iana"
- },
- "application/vnd.ecowin.seriesupdate": {
- source: "iana"
- },
- "application/vnd.efi.img": {
- source: "iana"
- },
- "application/vnd.efi.iso": {
- source: "iana"
- },
- "application/vnd.eln+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.emclient.accessrequest+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.enliven": {
- source: "iana",
- extensions: ["nml"]
- },
- "application/vnd.enphase.envoy": {
- source: "iana"
- },
- "application/vnd.eprints.data+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.epson.esf": {
- source: "iana",
- extensions: ["esf"]
- },
- "application/vnd.epson.msf": {
- source: "iana",
- extensions: ["msf"]
- },
- "application/vnd.epson.quickanime": {
- source: "iana",
- extensions: ["qam"]
- },
- "application/vnd.epson.salt": {
- source: "iana",
- extensions: ["slt"]
- },
- "application/vnd.epson.ssf": {
- source: "iana",
- extensions: ["ssf"]
- },
- "application/vnd.ericsson.quickcall": {
- source: "iana"
- },
- "application/vnd.erofs": {
- source: "iana"
- },
- "application/vnd.espass-espass+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.eszigno3+xml": {
- source: "iana",
- compressible: true,
- extensions: ["es3", "et3"]
- },
- "application/vnd.etsi.aoc+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.asic-e+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.etsi.asic-s+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.etsi.cug+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.iptvcommand+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.iptvdiscovery+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.iptvprofile+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.iptvsad-bc+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.iptvsad-cod+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.iptvsad-npvr+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.iptvservice+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.iptvsync+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.iptvueprofile+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.mcid+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.mheg5": {
- source: "iana"
- },
- "application/vnd.etsi.overload-control-policy-dataset+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.pstn+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.sci+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.simservs+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.timestamp-token": {
- source: "iana"
- },
- "application/vnd.etsi.tsl+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.tsl.der": {
- source: "iana"
- },
- "application/vnd.eu.kasparian.car+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.eudora.data": {
- source: "iana"
- },
- "application/vnd.evolv.ecig.profile": {
- source: "iana"
- },
- "application/vnd.evolv.ecig.settings": {
- source: "iana"
- },
- "application/vnd.evolv.ecig.theme": {
- source: "iana"
- },
- "application/vnd.exstream-empower+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.exstream-package": {
- source: "iana"
- },
- "application/vnd.ezpix-album": {
- source: "iana",
- extensions: ["ez2"]
- },
- "application/vnd.ezpix-package": {
- source: "iana",
- extensions: ["ez3"]
- },
- "application/vnd.f-secure.mobile": {
- source: "iana"
- },
- "application/vnd.familysearch.gedcom+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.fastcopy-disk-image": {
- source: "iana"
- },
- "application/vnd.fdf": {
- source: "apache",
- extensions: ["fdf"]
- },
- "application/vnd.fdsn.mseed": {
- source: "iana",
- extensions: ["mseed"]
- },
- "application/vnd.fdsn.seed": {
- source: "iana",
- extensions: ["seed", "dataless"]
- },
- "application/vnd.fdsn.stationxml+xml": {
- source: "iana",
- charset: "XML-BASED",
- compressible: true
- },
- "application/vnd.ffsns": {
- source: "iana"
- },
- "application/vnd.ficlab.flb+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.filmit.zfc": {
- source: "iana"
- },
- "application/vnd.fints": {
- source: "iana"
- },
- "application/vnd.firemonkeys.cloudcell": {
- source: "iana"
- },
- "application/vnd.flographit": {
- source: "iana",
- extensions: ["gph"]
- },
- "application/vnd.fluxtime.clip": {
- source: "iana",
- extensions: ["ftc"]
- },
- "application/vnd.font-fontforge-sfd": {
- source: "iana"
- },
- "application/vnd.framemaker": {
- source: "iana",
- extensions: ["fm", "frame", "maker", "book"]
- },
- "application/vnd.freelog.comic": {
- source: "iana"
- },
- "application/vnd.frogans.fnc": {
- source: "apache",
- extensions: ["fnc"]
- },
- "application/vnd.frogans.ltf": {
- source: "apache",
- extensions: ["ltf"]
- },
- "application/vnd.fsc.weblaunch": {
- source: "iana",
- extensions: ["fsc"]
- },
- "application/vnd.fujifilm.fb.docuworks": {
- source: "iana"
- },
- "application/vnd.fujifilm.fb.docuworks.binder": {
- source: "iana"
- },
- "application/vnd.fujifilm.fb.docuworks.container": {
- source: "iana"
- },
- "application/vnd.fujifilm.fb.jfi+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.fujitsu.oasys": {
- source: "iana",
- extensions: ["oas"]
- },
- "application/vnd.fujitsu.oasys2": {
- source: "iana",
- extensions: ["oa2"]
- },
- "application/vnd.fujitsu.oasys3": {
- source: "iana",
- extensions: ["oa3"]
- },
- "application/vnd.fujitsu.oasysgp": {
- source: "iana",
- extensions: ["fg5"]
- },
- "application/vnd.fujitsu.oasysprs": {
- source: "iana",
- extensions: ["bh2"]
- },
- "application/vnd.fujixerox.art-ex": {
- source: "iana"
- },
- "application/vnd.fujixerox.art4": {
- source: "iana"
- },
- "application/vnd.fujixerox.ddd": {
- source: "iana",
- extensions: ["ddd"]
- },
- "application/vnd.fujixerox.docuworks": {
- source: "iana",
- extensions: ["xdw"]
- },
- "application/vnd.fujixerox.docuworks.binder": {
- source: "iana",
- extensions: ["xbd"]
- },
- "application/vnd.fujixerox.docuworks.container": {
- source: "iana"
- },
- "application/vnd.fujixerox.hbpl": {
- source: "iana"
- },
- "application/vnd.fut-misnet": {
- source: "iana"
- },
- "application/vnd.futoin+cbor": {
- source: "iana"
- },
- "application/vnd.futoin+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.fuzzysheet": {
- source: "iana",
- extensions: ["fzs"]
- },
- "application/vnd.ga4gh.passport+jwt": {
- source: "iana"
- },
- "application/vnd.genomatix.tuxedo": {
- source: "iana",
- extensions: ["txd"]
- },
- "application/vnd.genozip": {
- source: "iana"
- },
- "application/vnd.gentics.grd+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.gentoo.catmetadata+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.gentoo.ebuild": {
- source: "iana"
- },
- "application/vnd.gentoo.eclass": {
- source: "iana"
- },
- "application/vnd.gentoo.gpkg": {
- source: "iana"
- },
- "application/vnd.gentoo.manifest": {
- source: "iana"
- },
- "application/vnd.gentoo.pkgmetadata+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.gentoo.xpak": {
- source: "iana"
- },
- "application/vnd.geo+json": {
- source: "apache",
- compressible: true
- },
- "application/vnd.geocube+xml": {
- source: "apache",
- compressible: true
- },
- "application/vnd.geogebra.file": {
- source: "iana",
- extensions: ["ggb"]
- },
- "application/vnd.geogebra.pinboard": {
- source: "iana"
- },
- "application/vnd.geogebra.slides": {
- source: "iana",
- extensions: ["ggs"]
- },
- "application/vnd.geogebra.tool": {
- source: "iana",
- extensions: ["ggt"]
- },
- "application/vnd.geometry-explorer": {
- source: "iana",
- extensions: ["gex", "gre"]
- },
- "application/vnd.geonext": {
- source: "iana",
- extensions: ["gxt"]
- },
- "application/vnd.geoplan": {
- source: "iana",
- extensions: ["g2w"]
- },
- "application/vnd.geospace": {
- source: "iana",
- extensions: ["g3w"]
- },
- "application/vnd.gerber": {
- source: "iana"
- },
- "application/vnd.globalplatform.card-content-mgt": {
- source: "iana"
- },
- "application/vnd.globalplatform.card-content-mgt-response": {
- source: "iana"
- },
- "application/vnd.gmx": {
- source: "iana",
- extensions: ["gmx"]
- },
- "application/vnd.gnu.taler.exchange+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.gnu.taler.merchant+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.google-apps.audio": {},
- "application/vnd.google-apps.document": {
- compressible: false,
- extensions: ["gdoc"]
- },
- "application/vnd.google-apps.drawing": {
- compressible: false,
- extensions: ["gdraw"]
- },
- "application/vnd.google-apps.drive-sdk": {
- compressible: false
- },
- "application/vnd.google-apps.file": {},
- "application/vnd.google-apps.folder": {
- compressible: false
- },
- "application/vnd.google-apps.form": {
- compressible: false,
- extensions: ["gform"]
- },
- "application/vnd.google-apps.fusiontable": {},
- "application/vnd.google-apps.jam": {
- compressible: false,
- extensions: ["gjam"]
- },
- "application/vnd.google-apps.mail-layout": {},
- "application/vnd.google-apps.map": {
- compressible: false,
- extensions: ["gmap"]
- },
- "application/vnd.google-apps.photo": {},
- "application/vnd.google-apps.presentation": {
- compressible: false,
- extensions: ["gslides"]
- },
- "application/vnd.google-apps.script": {
- compressible: false,
- extensions: ["gscript"]
- },
- "application/vnd.google-apps.shortcut": {},
- "application/vnd.google-apps.site": {
- compressible: false,
- extensions: ["gsite"]
- },
- "application/vnd.google-apps.spreadsheet": {
- compressible: false,
- extensions: ["gsheet"]
- },
- "application/vnd.google-apps.unknown": {},
- "application/vnd.google-apps.video": {},
- "application/vnd.google-earth.kml+xml": {
- source: "iana",
- compressible: true,
- extensions: ["kml"]
- },
- "application/vnd.google-earth.kmz": {
- source: "iana",
- compressible: false,
- extensions: ["kmz"]
- },
- "application/vnd.gov.sk.e-form+xml": {
- source: "apache",
- compressible: true
- },
- "application/vnd.gov.sk.e-form+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.gov.sk.xmldatacontainer+xml": {
- source: "iana",
- compressible: true,
- extensions: ["xdcf"]
- },
- "application/vnd.gpxsee.map+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.grafeq": {
- source: "iana",
- extensions: ["gqf", "gqs"]
- },
- "application/vnd.gridmp": {
- source: "iana"
- },
- "application/vnd.groove-account": {
- source: "iana",
- extensions: ["gac"]
- },
- "application/vnd.groove-help": {
- source: "iana",
- extensions: ["ghf"]
- },
- "application/vnd.groove-identity-message": {
- source: "iana",
- extensions: ["gim"]
- },
- "application/vnd.groove-injector": {
- source: "iana",
- extensions: ["grv"]
- },
- "application/vnd.groove-tool-message": {
- source: "iana",
- extensions: ["gtm"]
- },
- "application/vnd.groove-tool-template": {
- source: "iana",
- extensions: ["tpl"]
- },
- "application/vnd.groove-vcard": {
- source: "iana",
- extensions: ["vcg"]
- },
- "application/vnd.hal+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.hal+xml": {
- source: "iana",
- compressible: true,
- extensions: ["hal"]
- },
- "application/vnd.handheld-entertainment+xml": {
- source: "iana",
- compressible: true,
- extensions: ["zmm"]
- },
- "application/vnd.hbci": {
- source: "iana",
- extensions: ["hbci"]
- },
- "application/vnd.hc+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.hcl-bireports": {
- source: "iana"
- },
- "application/vnd.hdt": {
- source: "iana"
- },
- "application/vnd.heroku+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.hhe.lesson-player": {
- source: "iana",
- extensions: ["les"]
- },
- "application/vnd.hp-hpgl": {
- source: "iana",
- extensions: ["hpgl"]
- },
- "application/vnd.hp-hpid": {
- source: "iana",
- extensions: ["hpid"]
- },
- "application/vnd.hp-hps": {
- source: "iana",
- extensions: ["hps"]
- },
- "application/vnd.hp-jlyt": {
- source: "iana",
- extensions: ["jlt"]
- },
- "application/vnd.hp-pcl": {
- source: "iana",
- extensions: ["pcl"]
- },
- "application/vnd.hp-pclxl": {
- source: "iana",
- extensions: ["pclxl"]
- },
- "application/vnd.hsl": {
- source: "iana"
- },
- "application/vnd.httphone": {
- source: "iana"
- },
- "application/vnd.hydrostatix.sof-data": {
- source: "iana",
- extensions: ["sfd-hdstx"]
- },
- "application/vnd.hyper+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.hyper-item+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.hyperdrive+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.hzn-3d-crossword": {
- source: "iana"
- },
- "application/vnd.ibm.afplinedata": {
- source: "apache"
- },
- "application/vnd.ibm.electronic-media": {
- source: "iana"
- },
- "application/vnd.ibm.minipay": {
- source: "iana",
- extensions: ["mpy"]
- },
- "application/vnd.ibm.modcap": {
- source: "apache",
- extensions: ["afp", "listafp", "list3820"]
- },
- "application/vnd.ibm.rights-management": {
- source: "iana",
- extensions: ["irm"]
- },
- "application/vnd.ibm.secure-container": {
- source: "iana",
- extensions: ["sc"]
- },
- "application/vnd.iccprofile": {
- source: "iana",
- extensions: ["icc", "icm"]
- },
- "application/vnd.ieee.1905": {
- source: "iana"
- },
- "application/vnd.igloader": {
- source: "iana",
- extensions: ["igl"]
- },
- "application/vnd.imagemeter.folder+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.imagemeter.image+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.immervision-ivp": {
- source: "iana",
- extensions: ["ivp"]
- },
- "application/vnd.immervision-ivu": {
- source: "iana",
- extensions: ["ivu"]
- },
- "application/vnd.ims.imsccv1p1": {
- source: "iana"
- },
- "application/vnd.ims.imsccv1p2": {
- source: "iana"
- },
- "application/vnd.ims.imsccv1p3": {
- source: "iana"
- },
- "application/vnd.ims.lis.v2.result+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ims.lti.v2.toolconsumerprofile+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ims.lti.v2.toolproxy+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ims.lti.v2.toolproxy.id+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ims.lti.v2.toolsettings+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ims.lti.v2.toolsettings.simple+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.informedcontrol.rms+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.informix-visionary": {
- source: "apache"
- },
- "application/vnd.infotech.project": {
- source: "iana"
- },
- "application/vnd.infotech.project+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.innopath.wamp.notification": {
- source: "iana"
- },
- "application/vnd.insors.igm": {
- source: "iana",
- extensions: ["igm"]
- },
- "application/vnd.intercon.formnet": {
- source: "iana",
- extensions: ["xpw", "xpx"]
- },
- "application/vnd.intergeo": {
- source: "iana",
- extensions: ["i2g"]
- },
- "application/vnd.intertrust.digibox": {
- source: "iana"
- },
- "application/vnd.intertrust.nncp": {
- source: "iana"
- },
- "application/vnd.intu.qbo": {
- source: "iana",
- extensions: ["qbo"]
- },
- "application/vnd.intu.qfx": {
- source: "iana",
- extensions: ["qfx"]
- },
- "application/vnd.ipfs.ipns-record": {
- source: "iana"
- },
- "application/vnd.ipld.car": {
- source: "iana"
- },
- "application/vnd.ipld.dag-cbor": {
- source: "iana"
- },
- "application/vnd.ipld.dag-json": {
- source: "iana"
- },
- "application/vnd.ipld.raw": {
- source: "iana"
- },
- "application/vnd.iptc.g2.catalogitem+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.iptc.g2.conceptitem+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.iptc.g2.knowledgeitem+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.iptc.g2.newsitem+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.iptc.g2.newsmessage+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.iptc.g2.packageitem+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.iptc.g2.planningitem+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ipunplugged.rcprofile": {
- source: "iana",
- extensions: ["rcprofile"]
- },
- "application/vnd.irepository.package+xml": {
- source: "iana",
- compressible: true,
- extensions: ["irp"]
- },
- "application/vnd.is-xpr": {
- source: "iana",
- extensions: ["xpr"]
- },
- "application/vnd.isac.fcs": {
- source: "iana",
- extensions: ["fcs"]
- },
- "application/vnd.iso11783-10+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.jam": {
- source: "iana",
- extensions: ["jam"]
- },
- "application/vnd.japannet-directory-service": {
- source: "iana"
- },
- "application/vnd.japannet-jpnstore-wakeup": {
- source: "iana"
- },
- "application/vnd.japannet-payment-wakeup": {
- source: "iana"
- },
- "application/vnd.japannet-registration": {
- source: "iana"
- },
- "application/vnd.japannet-registration-wakeup": {
- source: "iana"
- },
- "application/vnd.japannet-setstore-wakeup": {
- source: "iana"
- },
- "application/vnd.japannet-verification": {
- source: "iana"
- },
- "application/vnd.japannet-verification-wakeup": {
- source: "iana"
- },
- "application/vnd.jcp.javame.midlet-rms": {
- source: "iana",
- extensions: ["rms"]
- },
- "application/vnd.jisp": {
- source: "iana",
- extensions: ["jisp"]
- },
- "application/vnd.joost.joda-archive": {
- source: "iana",
- extensions: ["joda"]
- },
- "application/vnd.jsk.isdn-ngn": {
- source: "iana"
- },
- "application/vnd.kahootz": {
- source: "iana",
- extensions: ["ktz", "ktr"]
- },
- "application/vnd.kde.karbon": {
- source: "iana",
- extensions: ["karbon"]
- },
- "application/vnd.kde.kchart": {
- source: "iana",
- extensions: ["chrt"]
- },
- "application/vnd.kde.kformula": {
- source: "iana",
- extensions: ["kfo"]
- },
- "application/vnd.kde.kivio": {
- source: "iana",
- extensions: ["flw"]
- },
- "application/vnd.kde.kontour": {
- source: "iana",
- extensions: ["kon"]
- },
- "application/vnd.kde.kpresenter": {
- source: "iana",
- extensions: ["kpr", "kpt"]
- },
- "application/vnd.kde.kspread": {
- source: "iana",
- extensions: ["ksp"]
- },
- "application/vnd.kde.kword": {
- source: "iana",
- extensions: ["kwd", "kwt"]
- },
- "application/vnd.kdl": {
- source: "iana"
- },
- "application/vnd.kenameaapp": {
- source: "iana",
- extensions: ["htke"]
- },
- "application/vnd.keyman.kmp+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.keyman.kmx": {
- source: "iana"
- },
- "application/vnd.kidspiration": {
- source: "iana",
- extensions: ["kia"]
- },
- "application/vnd.kinar": {
- source: "iana",
- extensions: ["kne", "knp"]
- },
- "application/vnd.koan": {
- source: "iana",
- extensions: ["skp", "skd", "skt", "skm"]
- },
- "application/vnd.kodak-descriptor": {
- source: "iana",
- extensions: ["sse"]
- },
- "application/vnd.las": {
- source: "iana"
- },
- "application/vnd.las.las+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.las.las+xml": {
- source: "iana",
- compressible: true,
- extensions: ["lasxml"]
- },
- "application/vnd.laszip": {
- source: "iana"
- },
- "application/vnd.ldev.productlicensing": {
- source: "iana"
- },
- "application/vnd.leap+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.liberty-request+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.llamagraphics.life-balance.desktop": {
- source: "iana",
- extensions: ["lbd"]
- },
- "application/vnd.llamagraphics.life-balance.exchange+xml": {
- source: "iana",
- compressible: true,
- extensions: ["lbe"]
- },
- "application/vnd.logipipe.circuit+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.loom": {
- source: "iana"
- },
- "application/vnd.lotus-1-2-3": {
- source: "iana",
- extensions: ["123"]
- },
- "application/vnd.lotus-approach": {
- source: "iana",
- extensions: ["apr"]
- },
- "application/vnd.lotus-freelance": {
- source: "iana",
- extensions: ["pre"]
- },
- "application/vnd.lotus-notes": {
- source: "iana",
- extensions: ["nsf"]
- },
- "application/vnd.lotus-organizer": {
- source: "iana",
- extensions: ["org"]
- },
- "application/vnd.lotus-screencam": {
- source: "iana",
- extensions: ["scm"]
- },
- "application/vnd.lotus-wordpro": {
- source: "iana",
- extensions: ["lwp"]
- },
- "application/vnd.macports.portpkg": {
- source: "iana",
- extensions: ["portpkg"]
- },
- "application/vnd.mapbox-vector-tile": {
- source: "iana",
- extensions: ["mvt"]
- },
- "application/vnd.marlin.drm.actiontoken+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.marlin.drm.conftoken+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.marlin.drm.license+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.marlin.drm.mdcf": {
- source: "iana"
- },
- "application/vnd.mason+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.maxar.archive.3tz+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.maxmind.maxmind-db": {
- source: "iana"
- },
- "application/vnd.mcd": {
- source: "iana",
- extensions: ["mcd"]
- },
- "application/vnd.mdl": {
- source: "iana"
- },
- "application/vnd.mdl-mbsdf": {
- source: "iana"
- },
- "application/vnd.medcalcdata": {
- source: "iana",
- extensions: ["mc1"]
- },
- "application/vnd.mediastation.cdkey": {
- source: "iana",
- extensions: ["cdkey"]
- },
- "application/vnd.medicalholodeck.recordxr": {
- source: "iana"
- },
- "application/vnd.meridian-slingshot": {
- source: "iana"
- },
- "application/vnd.mermaid": {
- source: "iana"
- },
- "application/vnd.mfer": {
- source: "iana",
- extensions: ["mwf"]
- },
- "application/vnd.mfmp": {
- source: "iana",
- extensions: ["mfm"]
- },
- "application/vnd.micro+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.micrografx.flo": {
- source: "iana",
- extensions: ["flo"]
- },
- "application/vnd.micrografx.igx": {
- source: "iana",
- extensions: ["igx"]
- },
- "application/vnd.microsoft.portable-executable": {
- source: "iana"
- },
- "application/vnd.microsoft.windows.thumbnail-cache": {
- source: "iana"
- },
- "application/vnd.miele+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.mif": {
- source: "iana",
- extensions: ["mif"]
- },
- "application/vnd.minisoft-hp3000-save": {
- source: "iana"
- },
- "application/vnd.mitsubishi.misty-guard.trustweb": {
- source: "iana"
- },
- "application/vnd.mobius.daf": {
- source: "iana",
- extensions: ["daf"]
- },
- "application/vnd.mobius.dis": {
- source: "iana",
- extensions: ["dis"]
- },
- "application/vnd.mobius.mbk": {
- source: "iana",
- extensions: ["mbk"]
- },
- "application/vnd.mobius.mqy": {
- source: "iana",
- extensions: ["mqy"]
- },
- "application/vnd.mobius.msl": {
- source: "iana",
- extensions: ["msl"]
- },
- "application/vnd.mobius.plc": {
- source: "iana",
- extensions: ["plc"]
- },
- "application/vnd.mobius.txf": {
- source: "iana",
- extensions: ["txf"]
- },
- "application/vnd.modl": {
- source: "iana"
- },
- "application/vnd.mophun.application": {
- source: "iana",
- extensions: ["mpn"]
- },
- "application/vnd.mophun.certificate": {
- source: "iana",
- extensions: ["mpc"]
- },
- "application/vnd.motorola.flexsuite": {
- source: "iana"
- },
- "application/vnd.motorola.flexsuite.adsi": {
- source: "iana"
- },
- "application/vnd.motorola.flexsuite.fis": {
- source: "iana"
- },
- "application/vnd.motorola.flexsuite.gotap": {
- source: "iana"
- },
- "application/vnd.motorola.flexsuite.kmr": {
- source: "iana"
- },
- "application/vnd.motorola.flexsuite.ttc": {
- source: "iana"
- },
- "application/vnd.motorola.flexsuite.wem": {
- source: "iana"
- },
- "application/vnd.motorola.iprm": {
- source: "iana"
- },
- "application/vnd.mozilla.xul+xml": {
- source: "iana",
- compressible: true,
- extensions: ["xul"]
- },
- "application/vnd.ms-3mfdocument": {
- source: "iana"
- },
- "application/vnd.ms-artgalry": {
- source: "iana",
- extensions: ["cil"]
- },
- "application/vnd.ms-asf": {
- source: "iana"
- },
- "application/vnd.ms-cab-compressed": {
- source: "iana",
- extensions: ["cab"]
- },
- "application/vnd.ms-color.iccprofile": {
- source: "apache"
- },
- "application/vnd.ms-excel": {
- source: "iana",
- compressible: false,
- extensions: ["xls", "xlm", "xla", "xlc", "xlt", "xlw"]
- },
- "application/vnd.ms-excel.addin.macroenabled.12": {
- source: "iana",
- extensions: ["xlam"]
- },
- "application/vnd.ms-excel.sheet.binary.macroenabled.12": {
- source: "iana",
- extensions: ["xlsb"]
- },
- "application/vnd.ms-excel.sheet.macroenabled.12": {
- source: "iana",
- extensions: ["xlsm"]
- },
- "application/vnd.ms-excel.template.macroenabled.12": {
- source: "iana",
- extensions: ["xltm"]
- },
- "application/vnd.ms-fontobject": {
- source: "iana",
- compressible: true,
- extensions: ["eot"]
- },
- "application/vnd.ms-htmlhelp": {
- source: "iana",
- extensions: ["chm"]
- },
- "application/vnd.ms-ims": {
- source: "iana",
- extensions: ["ims"]
- },
- "application/vnd.ms-lrm": {
- source: "iana",
- extensions: ["lrm"]
- },
- "application/vnd.ms-office.activex+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ms-officetheme": {
- source: "iana",
- extensions: ["thmx"]
- },
- "application/vnd.ms-opentype": {
- source: "apache",
- compressible: true
- },
- "application/vnd.ms-outlook": {
- compressible: false,
- extensions: ["msg"]
- },
- "application/vnd.ms-package.obfuscated-opentype": {
- source: "apache"
- },
- "application/vnd.ms-pki.seccat": {
- source: "apache",
- extensions: ["cat"]
- },
- "application/vnd.ms-pki.stl": {
- source: "apache",
- extensions: ["stl"]
- },
- "application/vnd.ms-playready.initiator+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ms-powerpoint": {
- source: "iana",
- compressible: false,
- extensions: ["ppt", "pps", "pot"]
- },
- "application/vnd.ms-powerpoint.addin.macroenabled.12": {
- source: "iana",
- extensions: ["ppam"]
- },
- "application/vnd.ms-powerpoint.presentation.macroenabled.12": {
- source: "iana",
- extensions: ["pptm"]
- },
- "application/vnd.ms-powerpoint.slide.macroenabled.12": {
- source: "iana",
- extensions: ["sldm"]
- },
- "application/vnd.ms-powerpoint.slideshow.macroenabled.12": {
- source: "iana",
- extensions: ["ppsm"]
- },
- "application/vnd.ms-powerpoint.template.macroenabled.12": {
- source: "iana",
- extensions: ["potm"]
- },
- "application/vnd.ms-printdevicecapabilities+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ms-printing.printticket+xml": {
- source: "apache",
- compressible: true
- },
- "application/vnd.ms-printschematicket+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ms-project": {
- source: "iana",
- extensions: ["mpp", "mpt"]
- },
- "application/vnd.ms-tnef": {
- source: "iana"
- },
- "application/vnd.ms-visio.viewer": {
- extensions: ["vdx"]
- },
- "application/vnd.ms-windows.devicepairing": {
- source: "iana"
- },
- "application/vnd.ms-windows.nwprinting.oob": {
- source: "iana"
- },
- "application/vnd.ms-windows.printerpairing": {
- source: "iana"
- },
- "application/vnd.ms-windows.wsd.oob": {
- source: "iana"
- },
- "application/vnd.ms-wmdrm.lic-chlg-req": {
- source: "iana"
- },
- "application/vnd.ms-wmdrm.lic-resp": {
- source: "iana"
- },
- "application/vnd.ms-wmdrm.meter-chlg-req": {
- source: "iana"
- },
- "application/vnd.ms-wmdrm.meter-resp": {
- source: "iana"
- },
- "application/vnd.ms-word.document.macroenabled.12": {
- source: "iana",
- extensions: ["docm"]
- },
- "application/vnd.ms-word.template.macroenabled.12": {
- source: "iana",
- extensions: ["dotm"]
- },
- "application/vnd.ms-works": {
- source: "iana",
- extensions: ["wps", "wks", "wcm", "wdb"]
- },
- "application/vnd.ms-wpl": {
- source: "iana",
- extensions: ["wpl"]
- },
- "application/vnd.ms-xpsdocument": {
- source: "iana",
- compressible: false,
- extensions: ["xps"]
- },
- "application/vnd.msa-disk-image": {
- source: "iana"
- },
- "application/vnd.mseq": {
- source: "iana",
- extensions: ["mseq"]
- },
- "application/vnd.msgpack": {
- source: "iana"
- },
- "application/vnd.msign": {
- source: "iana"
- },
- "application/vnd.multiad.creator": {
- source: "iana"
- },
- "application/vnd.multiad.creator.cif": {
- source: "iana"
- },
- "application/vnd.music-niff": {
- source: "iana"
- },
- "application/vnd.musician": {
- source: "iana",
- extensions: ["mus"]
- },
- "application/vnd.muvee.style": {
- source: "iana",
- extensions: ["msty"]
- },
- "application/vnd.mynfc": {
- source: "iana",
- extensions: ["taglet"]
- },
- "application/vnd.nacamar.ybrid+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.nato.bindingdataobject+cbor": {
- source: "iana"
- },
- "application/vnd.nato.bindingdataobject+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.nato.bindingdataobject+xml": {
- source: "iana",
- compressible: true,
- extensions: ["bdo"]
- },
- "application/vnd.nato.openxmlformats-package.iepd+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.ncd.control": {
- source: "iana"
- },
- "application/vnd.ncd.reference": {
- source: "iana"
- },
- "application/vnd.nearst.inv+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.nebumind.line": {
- source: "iana"
- },
- "application/vnd.nervana": {
- source: "iana"
- },
- "application/vnd.netfpx": {
- source: "iana"
- },
- "application/vnd.neurolanguage.nlu": {
- source: "iana",
- extensions: ["nlu"]
- },
- "application/vnd.nimn": {
- source: "iana"
- },
- "application/vnd.nintendo.nitro.rom": {
- source: "iana"
- },
- "application/vnd.nintendo.snes.rom": {
- source: "iana"
- },
- "application/vnd.nitf": {
- source: "iana",
- extensions: ["ntf", "nitf"]
- },
- "application/vnd.noblenet-directory": {
- source: "iana",
- extensions: ["nnd"]
- },
- "application/vnd.noblenet-sealer": {
- source: "iana",
- extensions: ["nns"]
- },
- "application/vnd.noblenet-web": {
- source: "iana",
- extensions: ["nnw"]
- },
- "application/vnd.nokia.catalogs": {
- source: "iana"
- },
- "application/vnd.nokia.conml+wbxml": {
- source: "iana"
- },
- "application/vnd.nokia.conml+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.nokia.iptv.config+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.nokia.isds-radio-presets": {
- source: "iana"
- },
- "application/vnd.nokia.landmark+wbxml": {
- source: "iana"
- },
- "application/vnd.nokia.landmark+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.nokia.landmarkcollection+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.nokia.n-gage.ac+xml": {
- source: "iana",
- compressible: true,
- extensions: ["ac"]
- },
- "application/vnd.nokia.n-gage.data": {
- source: "iana",
- extensions: ["ngdat"]
- },
- "application/vnd.nokia.n-gage.symbian.install": {
- source: "apache",
- extensions: ["n-gage"]
- },
- "application/vnd.nokia.ncd": {
- source: "iana"
- },
- "application/vnd.nokia.pcd+wbxml": {
- source: "iana"
- },
- "application/vnd.nokia.pcd+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.nokia.radio-preset": {
- source: "iana",
- extensions: ["rpst"]
- },
- "application/vnd.nokia.radio-presets": {
- source: "iana",
- extensions: ["rpss"]
- },
- "application/vnd.novadigm.edm": {
- source: "iana",
- extensions: ["edm"]
- },
- "application/vnd.novadigm.edx": {
- source: "iana",
- extensions: ["edx"]
- },
- "application/vnd.novadigm.ext": {
- source: "iana",
- extensions: ["ext"]
- },
- "application/vnd.ntt-local.content-share": {
- source: "iana"
- },
- "application/vnd.ntt-local.file-transfer": {
- source: "iana"
- },
- "application/vnd.ntt-local.ogw_remote-access": {
- source: "iana"
- },
- "application/vnd.ntt-local.sip-ta_remote": {
- source: "iana"
- },
- "application/vnd.ntt-local.sip-ta_tcp_stream": {
- source: "iana"
- },
- "application/vnd.oai.workflows": {
- source: "iana"
- },
- "application/vnd.oai.workflows+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oai.workflows+yaml": {
- source: "iana"
- },
- "application/vnd.oasis.opendocument.base": {
- source: "iana"
- },
- "application/vnd.oasis.opendocument.chart": {
- source: "iana",
- extensions: ["odc"]
- },
- "application/vnd.oasis.opendocument.chart-template": {
- source: "iana",
- extensions: ["otc"]
- },
- "application/vnd.oasis.opendocument.database": {
- source: "apache",
- extensions: ["odb"]
- },
- "application/vnd.oasis.opendocument.formula": {
- source: "iana",
- extensions: ["odf"]
- },
- "application/vnd.oasis.opendocument.formula-template": {
- source: "iana",
- extensions: ["odft"]
- },
- "application/vnd.oasis.opendocument.graphics": {
- source: "iana",
- compressible: false,
- extensions: ["odg"]
- },
- "application/vnd.oasis.opendocument.graphics-template": {
- source: "iana",
- extensions: ["otg"]
- },
- "application/vnd.oasis.opendocument.image": {
- source: "iana",
- extensions: ["odi"]
- },
- "application/vnd.oasis.opendocument.image-template": {
- source: "iana",
- extensions: ["oti"]
- },
- "application/vnd.oasis.opendocument.presentation": {
- source: "iana",
- compressible: false,
- extensions: ["odp"]
- },
- "application/vnd.oasis.opendocument.presentation-template": {
- source: "iana",
- extensions: ["otp"]
- },
- "application/vnd.oasis.opendocument.spreadsheet": {
- source: "iana",
- compressible: false,
- extensions: ["ods"]
- },
- "application/vnd.oasis.opendocument.spreadsheet-template": {
- source: "iana",
- extensions: ["ots"]
- },
- "application/vnd.oasis.opendocument.text": {
- source: "iana",
- compressible: false,
- extensions: ["odt"]
- },
- "application/vnd.oasis.opendocument.text-master": {
- source: "iana",
- extensions: ["odm"]
- },
- "application/vnd.oasis.opendocument.text-master-template": {
- source: "iana"
- },
- "application/vnd.oasis.opendocument.text-template": {
- source: "iana",
- extensions: ["ott"]
- },
- "application/vnd.oasis.opendocument.text-web": {
- source: "iana",
- extensions: ["oth"]
- },
- "application/vnd.obn": {
- source: "iana"
- },
- "application/vnd.ocf+cbor": {
- source: "iana"
- },
- "application/vnd.oci.image.manifest.v1+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oftn.l10n+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oipf.contentaccessdownload+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oipf.contentaccessstreaming+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oipf.cspg-hexbinary": {
- source: "iana"
- },
- "application/vnd.oipf.dae.svg+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oipf.dae.xhtml+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oipf.mippvcontrolmessage+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oipf.pae.gem": {
- source: "iana"
- },
- "application/vnd.oipf.spdiscovery+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oipf.spdlist+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oipf.ueprofile+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oipf.userprofile+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.olpc-sugar": {
- source: "iana",
- extensions: ["xo"]
- },
- "application/vnd.oma-scws-config": {
- source: "iana"
- },
- "application/vnd.oma-scws-http-request": {
- source: "iana"
- },
- "application/vnd.oma-scws-http-response": {
- source: "iana"
- },
- "application/vnd.oma.bcast.associated-procedure-parameter+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.bcast.drm-trigger+xml": {
- source: "apache",
- compressible: true
- },
- "application/vnd.oma.bcast.imd+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.bcast.ltkm": {
- source: "iana"
- },
- "application/vnd.oma.bcast.notification+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.bcast.provisioningtrigger": {
- source: "iana"
- },
- "application/vnd.oma.bcast.sgboot": {
- source: "iana"
- },
- "application/vnd.oma.bcast.sgdd+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.bcast.sgdu": {
- source: "iana"
- },
- "application/vnd.oma.bcast.simple-symbol-container": {
- source: "iana"
- },
- "application/vnd.oma.bcast.smartcard-trigger+xml": {
- source: "apache",
- compressible: true
- },
- "application/vnd.oma.bcast.sprov+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.bcast.stkm": {
- source: "iana"
- },
- "application/vnd.oma.cab-address-book+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.cab-feature-handler+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.cab-pcc+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.cab-subs-invite+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.cab-user-prefs+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.dcd": {
- source: "iana"
- },
- "application/vnd.oma.dcdc": {
- source: "iana"
- },
- "application/vnd.oma.dd2+xml": {
- source: "iana",
- compressible: true,
- extensions: ["dd2"]
- },
- "application/vnd.oma.drm.risd+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.group-usage-list+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.lwm2m+cbor": {
- source: "iana"
- },
- "application/vnd.oma.lwm2m+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.lwm2m+tlv": {
- source: "iana"
- },
- "application/vnd.oma.pal+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.poc.detailed-progress-report+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.poc.final-report+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.poc.groups+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.poc.invocation-descriptor+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.poc.optimized-progress-report+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.push": {
- source: "iana"
- },
- "application/vnd.oma.scidm.messages+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.xcap-directory+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.omads-email+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/vnd.omads-file+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/vnd.omads-folder+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/vnd.omaloc-supl-init": {
- source: "iana"
- },
- "application/vnd.onepager": {
- source: "iana"
- },
- "application/vnd.onepagertamp": {
- source: "iana"
- },
- "application/vnd.onepagertamx": {
- source: "iana"
- },
- "application/vnd.onepagertat": {
- source: "iana"
- },
- "application/vnd.onepagertatp": {
- source: "iana"
- },
- "application/vnd.onepagertatx": {
- source: "iana"
- },
- "application/vnd.onvif.metadata": {
- source: "iana"
- },
- "application/vnd.openblox.game+xml": {
- source: "iana",
- compressible: true,
- extensions: ["obgx"]
- },
- "application/vnd.openblox.game-binary": {
- source: "iana"
- },
- "application/vnd.openeye.oeb": {
- source: "iana"
- },
- "application/vnd.openofficeorg.extension": {
- source: "apache",
- extensions: ["oxt"]
- },
- "application/vnd.openstreetmap.data+xml": {
- source: "iana",
- compressible: true,
- extensions: ["osm"]
- },
- "application/vnd.opentimestamps.ots": {
- source: "iana"
- },
- "application/vnd.openvpi.dspx+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.custom-properties+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.drawing+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.extended-properties+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.presentation": {
- source: "iana",
- compressible: false,
- extensions: ["pptx"]
- },
- "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slide": {
- source: "iana",
- extensions: ["sldx"]
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slideshow": {
- source: "iana",
- extensions: ["ppsx"]
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.template": {
- source: "iana",
- extensions: ["potx"]
- },
- "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
- source: "iana",
- compressible: false,
- extensions: ["xlsx"]
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.template": {
- source: "iana",
- extensions: ["xltx"]
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.theme+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.themeoverride+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.vmldrawing": {
- source: "iana"
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
- source: "iana",
- compressible: false,
- extensions: ["docx"]
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.template": {
- source: "iana",
- extensions: ["dotx"]
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-package.core-properties+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-package.relationships+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oracle.resource+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.orange.indata": {
- source: "iana"
- },
- "application/vnd.osa.netdeploy": {
- source: "iana"
- },
- "application/vnd.osgeo.mapguide.package": {
- source: "iana",
- extensions: ["mgp"]
- },
- "application/vnd.osgi.bundle": {
- source: "iana"
- },
- "application/vnd.osgi.dp": {
- source: "iana",
- extensions: ["dp"]
- },
- "application/vnd.osgi.subsystem": {
- source: "iana",
- extensions: ["esa"]
- },
- "application/vnd.otps.ct-kip+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oxli.countgraph": {
- source: "iana"
- },
- "application/vnd.pagerduty+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.palm": {
- source: "iana",
- extensions: ["pdb", "pqa", "oprc"]
- },
- "application/vnd.panoply": {
- source: "iana"
- },
- "application/vnd.paos.xml": {
- source: "iana"
- },
- "application/vnd.patentdive": {
- source: "iana"
- },
- "application/vnd.patientecommsdoc": {
- source: "iana"
- },
- "application/vnd.pawaafile": {
- source: "iana",
- extensions: ["paw"]
- },
- "application/vnd.pcos": {
- source: "iana"
- },
- "application/vnd.pg.format": {
- source: "iana",
- extensions: ["str"]
- },
- "application/vnd.pg.osasli": {
- source: "iana",
- extensions: ["ei6"]
- },
- "application/vnd.piaccess.application-licence": {
- source: "iana"
- },
- "application/vnd.picsel": {
- source: "iana",
- extensions: ["efif"]
- },
- "application/vnd.pmi.widget": {
- source: "iana",
- extensions: ["wg"]
- },
- "application/vnd.poc.group-advertisement+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.pocketlearn": {
- source: "iana",
- extensions: ["plf"]
- },
- "application/vnd.powerbuilder6": {
- source: "iana",
- extensions: ["pbd"]
- },
- "application/vnd.powerbuilder6-s": {
- source: "iana"
- },
- "application/vnd.powerbuilder7": {
- source: "iana"
- },
- "application/vnd.powerbuilder7-s": {
- source: "iana"
- },
- "application/vnd.powerbuilder75": {
- source: "iana"
- },
- "application/vnd.powerbuilder75-s": {
- source: "iana"
- },
- "application/vnd.preminet": {
- source: "iana"
- },
- "application/vnd.previewsystems.box": {
- source: "iana",
- extensions: ["box"]
- },
- "application/vnd.procrate.brushset": {
- extensions: ["brushset"]
- },
- "application/vnd.procreate.brush": {
- extensions: ["brush"]
- },
- "application/vnd.procreate.dream": {
- extensions: ["drm"]
- },
- "application/vnd.proteus.magazine": {
- source: "iana",
- extensions: ["mgz"]
- },
- "application/vnd.psfs": {
- source: "iana"
- },
- "application/vnd.pt.mundusmundi": {
- source: "iana"
- },
- "application/vnd.publishare-delta-tree": {
- source: "iana",
- extensions: ["qps"]
- },
- "application/vnd.pvi.ptid1": {
- source: "iana",
- extensions: ["ptid"]
- },
- "application/vnd.pwg-multiplexed": {
- source: "iana"
- },
- "application/vnd.pwg-xhtml-print+xml": {
- source: "iana",
- compressible: true,
- extensions: ["xhtm"]
- },
- "application/vnd.qualcomm.brew-app-res": {
- source: "iana"
- },
- "application/vnd.quarantainenet": {
- source: "iana"
- },
- "application/vnd.quark.quarkxpress": {
- source: "iana",
- extensions: ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"]
- },
- "application/vnd.quobject-quoxdocument": {
- source: "iana"
- },
- "application/vnd.radisys.moml+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-audit+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-audit-conf+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-audit-conn+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-audit-dialog+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-audit-stream+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-conf+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-dialog+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-dialog-base+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-dialog-fax-detect+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-dialog-group+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-dialog-speech+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-dialog-transform+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.rainstor.data": {
- source: "iana"
- },
- "application/vnd.rapid": {
- source: "iana"
- },
- "application/vnd.rar": {
- source: "iana",
- extensions: ["rar"]
- },
- "application/vnd.realvnc.bed": {
- source: "iana",
- extensions: ["bed"]
- },
- "application/vnd.recordare.musicxml": {
- source: "iana",
- extensions: ["mxl"]
- },
- "application/vnd.recordare.musicxml+xml": {
- source: "iana",
- compressible: true,
- extensions: ["musicxml"]
- },
- "application/vnd.relpipe": {
- source: "iana"
- },
- "application/vnd.renlearn.rlprint": {
- source: "iana"
- },
- "application/vnd.resilient.logic": {
- source: "iana"
- },
- "application/vnd.restful+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.rig.cryptonote": {
- source: "iana",
- extensions: ["cryptonote"]
- },
- "application/vnd.rim.cod": {
- source: "apache",
- extensions: ["cod"]
- },
- "application/vnd.rn-realmedia": {
- source: "apache",
- extensions: ["rm"]
- },
- "application/vnd.rn-realmedia-vbr": {
- source: "apache",
- extensions: ["rmvb"]
- },
- "application/vnd.route66.link66+xml": {
- source: "iana",
- compressible: true,
- extensions: ["link66"]
- },
- "application/vnd.rs-274x": {
- source: "iana"
- },
- "application/vnd.ruckus.download": {
- source: "iana"
- },
- "application/vnd.s3sms": {
- source: "iana"
- },
- "application/vnd.sailingtracker.track": {
- source: "iana",
- extensions: ["st"]
- },
- "application/vnd.sar": {
- source: "iana"
- },
- "application/vnd.sbm.cid": {
- source: "iana"
- },
- "application/vnd.sbm.mid2": {
- source: "iana"
- },
- "application/vnd.scribus": {
- source: "iana"
- },
- "application/vnd.sealed.3df": {
- source: "iana"
- },
- "application/vnd.sealed.csf": {
- source: "iana"
- },
- "application/vnd.sealed.doc": {
- source: "iana"
- },
- "application/vnd.sealed.eml": {
- source: "iana"
- },
- "application/vnd.sealed.mht": {
- source: "iana"
- },
- "application/vnd.sealed.net": {
- source: "iana"
- },
- "application/vnd.sealed.ppt": {
- source: "iana"
- },
- "application/vnd.sealed.tiff": {
- source: "iana"
- },
- "application/vnd.sealed.xls": {
- source: "iana"
- },
- "application/vnd.sealedmedia.softseal.html": {
- source: "iana"
- },
- "application/vnd.sealedmedia.softseal.pdf": {
- source: "iana"
- },
- "application/vnd.seemail": {
- source: "iana",
- extensions: ["see"]
- },
- "application/vnd.seis+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.sema": {
- source: "iana",
- extensions: ["sema"]
- },
- "application/vnd.semd": {
- source: "iana",
- extensions: ["semd"]
- },
- "application/vnd.semf": {
- source: "iana",
- extensions: ["semf"]
- },
- "application/vnd.shade-save-file": {
- source: "iana"
- },
- "application/vnd.shana.informed.formdata": {
- source: "iana",
- extensions: ["ifm"]
- },
- "application/vnd.shana.informed.formtemplate": {
- source: "iana",
- extensions: ["itp"]
- },
- "application/vnd.shana.informed.interchange": {
- source: "iana",
- extensions: ["iif"]
- },
- "application/vnd.shana.informed.package": {
- source: "iana",
- extensions: ["ipk"]
- },
- "application/vnd.shootproof+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.shopkick+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.shp": {
- source: "iana"
- },
- "application/vnd.shx": {
- source: "iana"
- },
- "application/vnd.sigrok.session": {
- source: "iana"
- },
- "application/vnd.simtech-mindmapper": {
- source: "iana",
- extensions: ["twd", "twds"]
- },
- "application/vnd.siren+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.sketchometry": {
- source: "iana"
- },
- "application/vnd.smaf": {
- source: "iana",
- extensions: ["mmf"]
- },
- "application/vnd.smart.notebook": {
- source: "iana"
- },
- "application/vnd.smart.teacher": {
- source: "iana",
- extensions: ["teacher"]
- },
- "application/vnd.smintio.portals.archive": {
- source: "iana"
- },
- "application/vnd.snesdev-page-table": {
- source: "iana"
- },
- "application/vnd.software602.filler.form+xml": {
- source: "iana",
- compressible: true,
- extensions: ["fo"]
- },
- "application/vnd.software602.filler.form-xml-zip": {
- source: "iana"
- },
- "application/vnd.solent.sdkm+xml": {
- source: "iana",
- compressible: true,
- extensions: ["sdkm", "sdkd"]
- },
- "application/vnd.spotfire.dxp": {
- source: "iana",
- extensions: ["dxp"]
- },
- "application/vnd.spotfire.sfs": {
- source: "iana",
- extensions: ["sfs"]
- },
- "application/vnd.sqlite3": {
- source: "iana"
- },
- "application/vnd.sss-cod": {
- source: "iana"
- },
- "application/vnd.sss-dtf": {
- source: "iana"
- },
- "application/vnd.sss-ntf": {
- source: "iana"
- },
- "application/vnd.stardivision.calc": {
- source: "apache",
- extensions: ["sdc"]
- },
- "application/vnd.stardivision.draw": {
- source: "apache",
- extensions: ["sda"]
- },
- "application/vnd.stardivision.impress": {
- source: "apache",
- extensions: ["sdd"]
- },
- "application/vnd.stardivision.math": {
- source: "apache",
- extensions: ["smf"]
- },
- "application/vnd.stardivision.writer": {
- source: "apache",
- extensions: ["sdw", "vor"]
- },
- "application/vnd.stardivision.writer-global": {
- source: "apache",
- extensions: ["sgl"]
- },
- "application/vnd.stepmania.package": {
- source: "iana",
- extensions: ["smzip"]
- },
- "application/vnd.stepmania.stepchart": {
- source: "iana",
- extensions: ["sm"]
- },
- "application/vnd.street-stream": {
- source: "iana"
- },
- "application/vnd.sun.wadl+xml": {
- source: "iana",
- compressible: true,
- extensions: ["wadl"]
- },
- "application/vnd.sun.xml.calc": {
- source: "apache",
- extensions: ["sxc"]
- },
- "application/vnd.sun.xml.calc.template": {
- source: "apache",
- extensions: ["stc"]
- },
- "application/vnd.sun.xml.draw": {
- source: "apache",
- extensions: ["sxd"]
- },
- "application/vnd.sun.xml.draw.template": {
- source: "apache",
- extensions: ["std"]
- },
- "application/vnd.sun.xml.impress": {
- source: "apache",
- extensions: ["sxi"]
- },
- "application/vnd.sun.xml.impress.template": {
- source: "apache",
- extensions: ["sti"]
- },
- "application/vnd.sun.xml.math": {
- source: "apache",
- extensions: ["sxm"]
- },
- "application/vnd.sun.xml.writer": {
- source: "apache",
- extensions: ["sxw"]
- },
- "application/vnd.sun.xml.writer.global": {
- source: "apache",
- extensions: ["sxg"]
- },
- "application/vnd.sun.xml.writer.template": {
- source: "apache",
- extensions: ["stw"]
- },
- "application/vnd.sus-calendar": {
- source: "iana",
- extensions: ["sus", "susp"]
- },
- "application/vnd.svd": {
- source: "iana",
- extensions: ["svd"]
- },
- "application/vnd.swiftview-ics": {
- source: "iana"
- },
- "application/vnd.sybyl.mol2": {
- source: "iana"
- },
- "application/vnd.sycle+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.syft+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.symbian.install": {
- source: "apache",
- extensions: ["sis", "sisx"]
- },
- "application/vnd.syncml+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true,
- extensions: ["xsm"]
- },
- "application/vnd.syncml.dm+wbxml": {
- source: "iana",
- charset: "UTF-8",
- extensions: ["bdm"]
- },
- "application/vnd.syncml.dm+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true,
- extensions: ["xdm"]
- },
- "application/vnd.syncml.dm.notification": {
- source: "iana"
- },
- "application/vnd.syncml.dmddf+wbxml": {
- source: "iana"
- },
- "application/vnd.syncml.dmddf+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true,
- extensions: ["ddf"]
- },
- "application/vnd.syncml.dmtnds+wbxml": {
- source: "iana"
- },
- "application/vnd.syncml.dmtnds+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/vnd.syncml.ds.notification": {
- source: "iana"
- },
- "application/vnd.tableschema+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.tao.intent-module-archive": {
- source: "iana",
- extensions: ["tao"]
- },
- "application/vnd.tcpdump.pcap": {
- source: "iana",
- extensions: ["pcap", "cap", "dmp"]
- },
- "application/vnd.think-cell.ppttc+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.tmd.mediaflex.api+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.tml": {
- source: "iana"
- },
- "application/vnd.tmobile-livetv": {
- source: "iana",
- extensions: ["tmo"]
- },
- "application/vnd.tri.onesource": {
- source: "iana"
- },
- "application/vnd.trid.tpt": {
- source: "iana",
- extensions: ["tpt"]
- },
- "application/vnd.triscape.mxs": {
- source: "iana",
- extensions: ["mxs"]
- },
- "application/vnd.trueapp": {
- source: "iana",
- extensions: ["tra"]
- },
- "application/vnd.truedoc": {
- source: "iana"
- },
- "application/vnd.ubisoft.webplayer": {
- source: "iana"
- },
- "application/vnd.ufdl": {
- source: "iana",
- extensions: ["ufd", "ufdl"]
- },
- "application/vnd.uic.osdm+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.uiq.theme": {
- source: "iana",
- extensions: ["utz"]
- },
- "application/vnd.umajin": {
- source: "iana",
- extensions: ["umj"]
- },
- "application/vnd.unity": {
- source: "iana",
- extensions: ["unityweb"]
- },
- "application/vnd.uoml+xml": {
- source: "iana",
- compressible: true,
- extensions: ["uoml", "uo"]
- },
- "application/vnd.uplanet.alert": {
- source: "iana"
- },
- "application/vnd.uplanet.alert-wbxml": {
- source: "iana"
- },
- "application/vnd.uplanet.bearer-choice": {
- source: "iana"
- },
- "application/vnd.uplanet.bearer-choice-wbxml": {
- source: "iana"
- },
- "application/vnd.uplanet.cacheop": {
- source: "iana"
- },
- "application/vnd.uplanet.cacheop-wbxml": {
- source: "iana"
- },
- "application/vnd.uplanet.channel": {
- source: "iana"
- },
- "application/vnd.uplanet.channel-wbxml": {
- source: "iana"
- },
- "application/vnd.uplanet.list": {
- source: "iana"
- },
- "application/vnd.uplanet.list-wbxml": {
- source: "iana"
- },
- "application/vnd.uplanet.listcmd": {
- source: "iana"
- },
- "application/vnd.uplanet.listcmd-wbxml": {
- source: "iana"
- },
- "application/vnd.uplanet.signal": {
- source: "iana"
- },
- "application/vnd.uri-map": {
- source: "iana"
- },
- "application/vnd.valve.source.material": {
- source: "iana"
- },
- "application/vnd.vcx": {
- source: "iana",
- extensions: ["vcx"]
- },
- "application/vnd.vd-study": {
- source: "iana"
- },
- "application/vnd.vectorworks": {
- source: "iana"
- },
- "application/vnd.vel+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.veraison.tsm-report+cbor": {
- source: "iana"
- },
- "application/vnd.veraison.tsm-report+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.verimatrix.vcas": {
- source: "iana"
- },
- "application/vnd.veritone.aion+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.veryant.thin": {
- source: "iana"
- },
- "application/vnd.ves.encrypted": {
- source: "iana"
- },
- "application/vnd.vidsoft.vidconference": {
- source: "iana"
- },
- "application/vnd.visio": {
- source: "iana",
- extensions: ["vsd", "vst", "vss", "vsw", "vsdx", "vtx"]
- },
- "application/vnd.visionary": {
- source: "iana",
- extensions: ["vis"]
- },
- "application/vnd.vividence.scriptfile": {
- source: "iana"
- },
- "application/vnd.vocalshaper.vsp4": {
- source: "iana"
- },
- "application/vnd.vsf": {
- source: "iana",
- extensions: ["vsf"]
- },
- "application/vnd.wap.sic": {
- source: "iana"
- },
- "application/vnd.wap.slc": {
- source: "iana"
- },
- "application/vnd.wap.wbxml": {
- source: "iana",
- charset: "UTF-8",
- extensions: ["wbxml"]
- },
- "application/vnd.wap.wmlc": {
- source: "iana",
- extensions: ["wmlc"]
- },
- "application/vnd.wap.wmlscriptc": {
- source: "iana",
- extensions: ["wmlsc"]
- },
- "application/vnd.wasmflow.wafl": {
- source: "iana"
- },
- "application/vnd.webturbo": {
- source: "iana",
- extensions: ["wtb"]
- },
- "application/vnd.wfa.dpp": {
- source: "iana"
- },
- "application/vnd.wfa.p2p": {
- source: "iana"
- },
- "application/vnd.wfa.wsc": {
- source: "iana"
- },
- "application/vnd.windows.devicepairing": {
- source: "iana"
- },
- "application/vnd.wmc": {
- source: "iana"
- },
- "application/vnd.wmf.bootstrap": {
- source: "iana"
- },
- "application/vnd.wolfram.mathematica": {
- source: "iana"
- },
- "application/vnd.wolfram.mathematica.package": {
- source: "iana"
- },
- "application/vnd.wolfram.player": {
- source: "iana",
- extensions: ["nbp"]
- },
- "application/vnd.wordlift": {
- source: "iana"
- },
- "application/vnd.wordperfect": {
- source: "iana",
- extensions: ["wpd"]
- },
- "application/vnd.wqd": {
- source: "iana",
- extensions: ["wqd"]
- },
- "application/vnd.wrq-hp3000-labelled": {
- source: "iana"
- },
- "application/vnd.wt.stf": {
- source: "iana",
- extensions: ["stf"]
- },
- "application/vnd.wv.csp+wbxml": {
- source: "iana"
- },
- "application/vnd.wv.csp+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.wv.ssp+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.xacml+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.xara": {
- source: "iana",
- extensions: ["xar"]
- },
- "application/vnd.xarin.cpj": {
- source: "iana"
- },
- "application/vnd.xecrets-encrypted": {
- source: "iana"
- },
- "application/vnd.xfdl": {
- source: "iana",
- extensions: ["xfdl"]
- },
- "application/vnd.xfdl.webform": {
- source: "iana"
- },
- "application/vnd.xmi+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.xmpie.cpkg": {
- source: "iana"
- },
- "application/vnd.xmpie.dpkg": {
- source: "iana"
- },
- "application/vnd.xmpie.plan": {
- source: "iana"
- },
- "application/vnd.xmpie.ppkg": {
- source: "iana"
- },
- "application/vnd.xmpie.xlim": {
- source: "iana"
- },
- "application/vnd.yamaha.hv-dic": {
- source: "iana",
- extensions: ["hvd"]
- },
- "application/vnd.yamaha.hv-script": {
- source: "iana",
- extensions: ["hvs"]
- },
- "application/vnd.yamaha.hv-voice": {
- source: "iana",
- extensions: ["hvp"]
- },
- "application/vnd.yamaha.openscoreformat": {
- source: "iana",
- extensions: ["osf"]
- },
- "application/vnd.yamaha.openscoreformat.osfpvg+xml": {
- source: "iana",
- compressible: true,
- extensions: ["osfpvg"]
- },
- "application/vnd.yamaha.remote-setup": {
- source: "iana"
- },
- "application/vnd.yamaha.smaf-audio": {
- source: "iana",
- extensions: ["saf"]
- },
- "application/vnd.yamaha.smaf-phrase": {
- source: "iana",
- extensions: ["spf"]
- },
- "application/vnd.yamaha.through-ngn": {
- source: "iana"
- },
- "application/vnd.yamaha.tunnel-udpencap": {
- source: "iana"
- },
- "application/vnd.yaoweme": {
- source: "iana"
- },
- "application/vnd.yellowriver-custom-menu": {
- source: "iana",
- extensions: ["cmp"]
- },
- "application/vnd.zul": {
- source: "iana",
- extensions: ["zir", "zirz"]
- },
- "application/vnd.zzazz.deck+xml": {
- source: "iana",
- compressible: true,
- extensions: ["zaz"]
- },
- "application/voicexml+xml": {
- source: "iana",
- compressible: true,
- extensions: ["vxml"]
- },
- "application/voucher-cms+json": {
- source: "iana",
- compressible: true
- },
- "application/voucher-jws+json": {
- source: "iana",
- compressible: true
- },
- "application/vp": {
- source: "iana"
- },
- "application/vp+cose": {
- source: "iana"
- },
- "application/vp+jwt": {
- source: "iana"
- },
- "application/vq-rtcpxr": {
- source: "iana"
- },
- "application/wasm": {
- source: "iana",
- compressible: true,
- extensions: ["wasm"]
- },
- "application/watcherinfo+xml": {
- source: "iana",
- compressible: true,
- extensions: ["wif"]
- },
- "application/webpush-options+json": {
- source: "iana",
- compressible: true
- },
- "application/whoispp-query": {
- source: "iana"
- },
- "application/whoispp-response": {
- source: "iana"
- },
- "application/widget": {
- source: "iana",
- extensions: ["wgt"]
- },
- "application/winhlp": {
- source: "apache",
- extensions: ["hlp"]
- },
- "application/wita": {
- source: "iana"
- },
- "application/wordperfect5.1": {
- source: "iana"
- },
- "application/wsdl+xml": {
- source: "iana",
- compressible: true,
- extensions: ["wsdl"]
- },
- "application/wspolicy+xml": {
- source: "iana",
- compressible: true,
- extensions: ["wspolicy"]
- },
- "application/x-7z-compressed": {
- source: "apache",
- compressible: false,
- extensions: ["7z"]
- },
- "application/x-abiword": {
- source: "apache",
- extensions: ["abw"]
- },
- "application/x-ace-compressed": {
- source: "apache",
- extensions: ["ace"]
- },
- "application/x-amf": {
- source: "apache"
- },
- "application/x-apple-diskimage": {
- source: "apache",
- extensions: ["dmg"]
- },
- "application/x-arj": {
- compressible: false,
- extensions: ["arj"]
- },
- "application/x-authorware-bin": {
- source: "apache",
- extensions: ["aab", "x32", "u32", "vox"]
- },
- "application/x-authorware-map": {
- source: "apache",
- extensions: ["aam"]
- },
- "application/x-authorware-seg": {
- source: "apache",
- extensions: ["aas"]
- },
- "application/x-bcpio": {
- source: "apache",
- extensions: ["bcpio"]
- },
- "application/x-bdoc": {
- compressible: false,
- extensions: ["bdoc"]
- },
- "application/x-bittorrent": {
- source: "apache",
- extensions: ["torrent"]
- },
- "application/x-blender": {
- extensions: ["blend"]
- },
- "application/x-blorb": {
- source: "apache",
- extensions: ["blb", "blorb"]
- },
- "application/x-bzip": {
- source: "apache",
- compressible: false,
- extensions: ["bz"]
- },
- "application/x-bzip2": {
- source: "apache",
- compressible: false,
- extensions: ["bz2", "boz"]
- },
- "application/x-cbr": {
- source: "apache",
- extensions: ["cbr", "cba", "cbt", "cbz", "cb7"]
- },
- "application/x-cdlink": {
- source: "apache",
- extensions: ["vcd"]
- },
- "application/x-cfs-compressed": {
- source: "apache",
- extensions: ["cfs"]
- },
- "application/x-chat": {
- source: "apache",
- extensions: ["chat"]
- },
- "application/x-chess-pgn": {
- source: "apache",
- extensions: ["pgn"]
- },
- "application/x-chrome-extension": {
- extensions: ["crx"]
- },
- "application/x-cocoa": {
- source: "nginx",
- extensions: ["cco"]
- },
- "application/x-compress": {
- source: "apache"
- },
- "application/x-compressed": {
- extensions: ["rar"]
- },
- "application/x-conference": {
- source: "apache",
- extensions: ["nsc"]
- },
- "application/x-cpio": {
- source: "apache",
- extensions: ["cpio"]
- },
- "application/x-csh": {
- source: "apache",
- extensions: ["csh"]
- },
- "application/x-deb": {
- compressible: false
- },
- "application/x-debian-package": {
- source: "apache",
- extensions: ["deb", "udeb"]
- },
- "application/x-dgc-compressed": {
- source: "apache",
- extensions: ["dgc"]
- },
- "application/x-director": {
- source: "apache",
- extensions: ["dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"]
- },
- "application/x-doom": {
- source: "apache",
- extensions: ["wad"]
- },
- "application/x-dtbncx+xml": {
- source: "apache",
- compressible: true,
- extensions: ["ncx"]
- },
- "application/x-dtbook+xml": {
- source: "apache",
- compressible: true,
- extensions: ["dtb"]
- },
- "application/x-dtbresource+xml": {
- source: "apache",
- compressible: true,
- extensions: ["res"]
- },
- "application/x-dvi": {
- source: "apache",
- compressible: false,
- extensions: ["dvi"]
- },
- "application/x-envoy": {
- source: "apache",
- extensions: ["evy"]
- },
- "application/x-eva": {
- source: "apache",
- extensions: ["eva"]
- },
- "application/x-font-bdf": {
- source: "apache",
- extensions: ["bdf"]
- },
- "application/x-font-dos": {
- source: "apache"
- },
- "application/x-font-framemaker": {
- source: "apache"
- },
- "application/x-font-ghostscript": {
- source: "apache",
- extensions: ["gsf"]
- },
- "application/x-font-libgrx": {
- source: "apache"
- },
- "application/x-font-linux-psf": {
- source: "apache",
- extensions: ["psf"]
- },
- "application/x-font-pcf": {
- source: "apache",
- extensions: ["pcf"]
- },
- "application/x-font-snf": {
- source: "apache",
- extensions: ["snf"]
- },
- "application/x-font-speedo": {
- source: "apache"
- },
- "application/x-font-sunos-news": {
- source: "apache"
- },
- "application/x-font-type1": {
- source: "apache",
- extensions: ["pfa", "pfb", "pfm", "afm"]
- },
- "application/x-font-vfont": {
- source: "apache"
- },
- "application/x-freearc": {
- source: "apache",
- extensions: ["arc"]
- },
- "application/x-futuresplash": {
- source: "apache",
- extensions: ["spl"]
- },
- "application/x-gca-compressed": {
- source: "apache",
- extensions: ["gca"]
- },
- "application/x-glulx": {
- source: "apache",
- extensions: ["ulx"]
- },
- "application/x-gnumeric": {
- source: "apache",
- extensions: ["gnumeric"]
- },
- "application/x-gramps-xml": {
- source: "apache",
- extensions: ["gramps"]
- },
- "application/x-gtar": {
- source: "apache",
- extensions: ["gtar"]
- },
- "application/x-gzip": {
- source: "apache"
- },
- "application/x-hdf": {
- source: "apache",
- extensions: ["hdf"]
- },
- "application/x-httpd-php": {
- compressible: true,
- extensions: ["php"]
- },
- "application/x-install-instructions": {
- source: "apache",
- extensions: ["install"]
- },
- "application/x-ipynb+json": {
- compressible: true,
- extensions: ["ipynb"]
- },
- "application/x-iso9660-image": {
- source: "apache",
- extensions: ["iso"]
- },
- "application/x-iwork-keynote-sffkey": {
- extensions: ["key"]
- },
- "application/x-iwork-numbers-sffnumbers": {
- extensions: ["numbers"]
- },
- "application/x-iwork-pages-sffpages": {
- extensions: ["pages"]
- },
- "application/x-java-archive-diff": {
- source: "nginx",
- extensions: ["jardiff"]
- },
- "application/x-java-jnlp-file": {
- source: "apache",
- compressible: false,
- extensions: ["jnlp"]
- },
- "application/x-javascript": {
- compressible: true
- },
- "application/x-keepass2": {
- extensions: ["kdbx"]
- },
- "application/x-latex": {
- source: "apache",
- compressible: false,
- extensions: ["latex"]
- },
- "application/x-lua-bytecode": {
- extensions: ["luac"]
- },
- "application/x-lzh-compressed": {
- source: "apache",
- extensions: ["lzh", "lha"]
- },
- "application/x-makeself": {
- source: "nginx",
- extensions: ["run"]
- },
- "application/x-mie": {
- source: "apache",
- extensions: ["mie"]
- },
- "application/x-mobipocket-ebook": {
- source: "apache",
- extensions: ["prc", "mobi"]
- },
- "application/x-mpegurl": {
- compressible: false
- },
- "application/x-ms-application": {
- source: "apache",
- extensions: ["application"]
- },
- "application/x-ms-shortcut": {
- source: "apache",
- extensions: ["lnk"]
- },
- "application/x-ms-wmd": {
- source: "apache",
- extensions: ["wmd"]
- },
- "application/x-ms-wmz": {
- source: "apache",
- extensions: ["wmz"]
- },
- "application/x-ms-xbap": {
- source: "apache",
- extensions: ["xbap"]
- },
- "application/x-msaccess": {
- source: "apache",
- extensions: ["mdb"]
- },
- "application/x-msbinder": {
- source: "apache",
- extensions: ["obd"]
- },
- "application/x-mscardfile": {
- source: "apache",
- extensions: ["crd"]
- },
- "application/x-msclip": {
- source: "apache",
- extensions: ["clp"]
- },
- "application/x-msdos-program": {
- extensions: ["exe"]
- },
- "application/x-msdownload": {
- source: "apache",
- extensions: ["exe", "dll", "com", "bat", "msi"]
- },
- "application/x-msmediaview": {
- source: "apache",
- extensions: ["mvb", "m13", "m14"]
- },
- "application/x-msmetafile": {
- source: "apache",
- extensions: ["wmf", "wmz", "emf", "emz"]
- },
- "application/x-msmoney": {
- source: "apache",
- extensions: ["mny"]
- },
- "application/x-mspublisher": {
- source: "apache",
- extensions: ["pub"]
- },
- "application/x-msschedule": {
- source: "apache",
- extensions: ["scd"]
- },
- "application/x-msterminal": {
- source: "apache",
- extensions: ["trm"]
- },
- "application/x-mswrite": {
- source: "apache",
- extensions: ["wri"]
- },
- "application/x-netcdf": {
- source: "apache",
- extensions: ["nc", "cdf"]
- },
- "application/x-ns-proxy-autoconfig": {
- compressible: true,
- extensions: ["pac"]
- },
- "application/x-nzb": {
- source: "apache",
- extensions: ["nzb"]
- },
- "application/x-perl": {
- source: "nginx",
- extensions: ["pl", "pm"]
- },
- "application/x-pilot": {
- source: "nginx",
- extensions: ["prc", "pdb"]
- },
- "application/x-pkcs12": {
- source: "apache",
- compressible: false,
- extensions: ["p12", "pfx"]
- },
- "application/x-pkcs7-certificates": {
- source: "apache",
- extensions: ["p7b", "spc"]
- },
- "application/x-pkcs7-certreqresp": {
- source: "apache",
- extensions: ["p7r"]
- },
- "application/x-pki-message": {
- source: "iana"
- },
- "application/x-rar-compressed": {
- source: "apache",
- compressible: false,
- extensions: ["rar"]
- },
- "application/x-redhat-package-manager": {
- source: "nginx",
- extensions: ["rpm"]
- },
- "application/x-research-info-systems": {
- source: "apache",
- extensions: ["ris"]
- },
- "application/x-sea": {
- source: "nginx",
- extensions: ["sea"]
- },
- "application/x-sh": {
- source: "apache",
- compressible: true,
- extensions: ["sh"]
- },
- "application/x-shar": {
- source: "apache",
- extensions: ["shar"]
- },
- "application/x-shockwave-flash": {
- source: "apache",
- compressible: false,
- extensions: ["swf"]
- },
- "application/x-silverlight-app": {
- source: "apache",
- extensions: ["xap"]
- },
- "application/x-sql": {
- source: "apache",
- extensions: ["sql"]
- },
- "application/x-stuffit": {
- source: "apache",
- compressible: false,
- extensions: ["sit"]
- },
- "application/x-stuffitx": {
- source: "apache",
- extensions: ["sitx"]
- },
- "application/x-subrip": {
- source: "apache",
- extensions: ["srt"]
- },
- "application/x-sv4cpio": {
- source: "apache",
- extensions: ["sv4cpio"]
- },
- "application/x-sv4crc": {
- source: "apache",
- extensions: ["sv4crc"]
- },
- "application/x-t3vm-image": {
- source: "apache",
- extensions: ["t3"]
- },
- "application/x-tads": {
- source: "apache",
- extensions: ["gam"]
- },
- "application/x-tar": {
- source: "apache",
- compressible: true,
- extensions: ["tar"]
- },
- "application/x-tcl": {
- source: "apache",
- extensions: ["tcl", "tk"]
- },
- "application/x-tex": {
- source: "apache",
- extensions: ["tex"]
- },
- "application/x-tex-tfm": {
- source: "apache",
- extensions: ["tfm"]
- },
- "application/x-texinfo": {
- source: "apache",
- extensions: ["texinfo", "texi"]
- },
- "application/x-tgif": {
- source: "apache",
- extensions: ["obj"]
- },
- "application/x-ustar": {
- source: "apache",
- extensions: ["ustar"]
- },
- "application/x-virtualbox-hdd": {
- compressible: true,
- extensions: ["hdd"]
- },
- "application/x-virtualbox-ova": {
- compressible: true,
- extensions: ["ova"]
- },
- "application/x-virtualbox-ovf": {
- compressible: true,
- extensions: ["ovf"]
- },
- "application/x-virtualbox-vbox": {
- compressible: true,
- extensions: ["vbox"]
- },
- "application/x-virtualbox-vbox-extpack": {
- compressible: false,
- extensions: ["vbox-extpack"]
- },
- "application/x-virtualbox-vdi": {
- compressible: true,
- extensions: ["vdi"]
- },
- "application/x-virtualbox-vhd": {
- compressible: true,
- extensions: ["vhd"]
- },
- "application/x-virtualbox-vmdk": {
- compressible: true,
- extensions: ["vmdk"]
- },
- "application/x-wais-source": {
- source: "apache",
- extensions: ["src"]
- },
- "application/x-web-app-manifest+json": {
- compressible: true,
- extensions: ["webapp"]
- },
- "application/x-www-form-urlencoded": {
- source: "iana",
- compressible: true
- },
- "application/x-x509-ca-cert": {
- source: "iana",
- extensions: ["der", "crt", "pem"]
- },
- "application/x-x509-ca-ra-cert": {
- source: "iana"
- },
- "application/x-x509-next-ca-cert": {
- source: "iana"
- },
- "application/x-xfig": {
- source: "apache",
- extensions: ["fig"]
- },
- "application/x-xliff+xml": {
- source: "apache",
- compressible: true,
- extensions: ["xlf"]
- },
- "application/x-xpinstall": {
- source: "apache",
- compressible: false,
- extensions: ["xpi"]
- },
- "application/x-xz": {
- source: "apache",
- extensions: ["xz"]
- },
- "application/x-zip-compressed": {
- extensions: ["zip"]
- },
- "application/x-zmachine": {
- source: "apache",
- extensions: ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"]
- },
- "application/x400-bp": {
- source: "iana"
- },
- "application/xacml+xml": {
- source: "iana",
- compressible: true
- },
- "application/xaml+xml": {
- source: "apache",
- compressible: true,
- extensions: ["xaml"]
- },
- "application/xcap-att+xml": {
- source: "iana",
- compressible: true,
- extensions: ["xav"]
- },
- "application/xcap-caps+xml": {
- source: "iana",
- compressible: true,
- extensions: ["xca"]
- },
- "application/xcap-diff+xml": {
- source: "iana",
- compressible: true,
- extensions: ["xdf"]
- },
- "application/xcap-el+xml": {
- source: "iana",
- compressible: true,
- extensions: ["xel"]
- },
- "application/xcap-error+xml": {
- source: "iana",
- compressible: true
- },
- "application/xcap-ns+xml": {
- source: "iana",
- compressible: true,
- extensions: ["xns"]
- },
- "application/xcon-conference-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/xcon-conference-info-diff+xml": {
- source: "iana",
- compressible: true
- },
- "application/xenc+xml": {
- source: "iana",
- compressible: true,
- extensions: ["xenc"]
- },
- "application/xfdf": {
- source: "iana",
- extensions: ["xfdf"]
- },
- "application/xhtml+xml": {
- source: "iana",
- compressible: true,
- extensions: ["xhtml", "xht"]
- },
- "application/xhtml-voice+xml": {
- source: "apache",
- compressible: true
- },
- "application/xliff+xml": {
- source: "iana",
- compressible: true,
- extensions: ["xlf"]
- },
- "application/xml": {
- source: "iana",
- compressible: true,
- extensions: ["xml", "xsl", "xsd", "rng"]
- },
- "application/xml-dtd": {
- source: "iana",
- compressible: true,
- extensions: ["dtd"]
- },
- "application/xml-external-parsed-entity": {
- source: "iana"
- },
- "application/xml-patch+xml": {
- source: "iana",
- compressible: true
- },
- "application/xmpp+xml": {
- source: "iana",
- compressible: true
- },
- "application/xop+xml": {
- source: "iana",
- compressible: true,
- extensions: ["xop"]
- },
- "application/xproc+xml": {
- source: "apache",
- compressible: true,
- extensions: ["xpl"]
- },
- "application/xslt+xml": {
- source: "iana",
- compressible: true,
- extensions: ["xsl", "xslt"]
- },
- "application/xspf+xml": {
- source: "apache",
- compressible: true,
- extensions: ["xspf"]
- },
- "application/xv+xml": {
- source: "iana",
- compressible: true,
- extensions: ["mxml", "xhvml", "xvml", "xvm"]
- },
- "application/yaml": {
- source: "iana"
- },
- "application/yang": {
- source: "iana",
- extensions: ["yang"]
- },
- "application/yang-data+cbor": {
- source: "iana"
- },
- "application/yang-data+json": {
- source: "iana",
- compressible: true
- },
- "application/yang-data+xml": {
- source: "iana",
- compressible: true
- },
- "application/yang-patch+json": {
- source: "iana",
- compressible: true
- },
- "application/yang-patch+xml": {
- source: "iana",
- compressible: true
- },
- "application/yang-sid+json": {
- source: "iana",
- compressible: true
- },
- "application/yin+xml": {
- source: "iana",
- compressible: true,
- extensions: ["yin"]
- },
- "application/zip": {
- source: "iana",
- compressible: false,
- extensions: ["zip"]
- },
- "application/zip+dotlottie": {
- extensions: ["lottie"]
- },
- "application/zlib": {
- source: "iana"
- },
- "application/zstd": {
- source: "iana"
- },
- "audio/1d-interleaved-parityfec": {
- source: "iana"
- },
- "audio/32kadpcm": {
- source: "iana"
- },
- "audio/3gpp": {
- source: "iana",
- compressible: false,
- extensions: ["3gpp"]
- },
- "audio/3gpp2": {
- source: "iana"
- },
- "audio/aac": {
- source: "iana",
- extensions: ["adts", "aac"]
- },
- "audio/ac3": {
- source: "iana"
- },
- "audio/adpcm": {
- source: "apache",
- extensions: ["adp"]
- },
- "audio/amr": {
- source: "iana",
- extensions: ["amr"]
- },
- "audio/amr-wb": {
- source: "iana"
- },
- "audio/amr-wb+": {
- source: "iana"
- },
- "audio/aptx": {
- source: "iana"
- },
- "audio/asc": {
- source: "iana"
- },
- "audio/atrac-advanced-lossless": {
- source: "iana"
- },
- "audio/atrac-x": {
- source: "iana"
- },
- "audio/atrac3": {
- source: "iana"
- },
- "audio/basic": {
- source: "iana",
- compressible: false,
- extensions: ["au", "snd"]
- },
- "audio/bv16": {
- source: "iana"
- },
- "audio/bv32": {
- source: "iana"
- },
- "audio/clearmode": {
- source: "iana"
- },
- "audio/cn": {
- source: "iana"
- },
- "audio/dat12": {
- source: "iana"
- },
- "audio/dls": {
- source: "iana"
- },
- "audio/dsr-es201108": {
- source: "iana"
- },
- "audio/dsr-es202050": {
- source: "iana"
- },
- "audio/dsr-es202211": {
- source: "iana"
- },
- "audio/dsr-es202212": {
- source: "iana"
- },
- "audio/dv": {
- source: "iana"
- },
- "audio/dvi4": {
- source: "iana"
- },
- "audio/eac3": {
- source: "iana"
- },
- "audio/encaprtp": {
- source: "iana"
- },
- "audio/evrc": {
- source: "iana"
- },
- "audio/evrc-qcp": {
- source: "iana"
- },
- "audio/evrc0": {
- source: "iana"
- },
- "audio/evrc1": {
- source: "iana"
- },
- "audio/evrcb": {
- source: "iana"
- },
- "audio/evrcb0": {
- source: "iana"
- },
- "audio/evrcb1": {
- source: "iana"
- },
- "audio/evrcnw": {
- source: "iana"
- },
- "audio/evrcnw0": {
- source: "iana"
- },
- "audio/evrcnw1": {
- source: "iana"
- },
- "audio/evrcwb": {
- source: "iana"
- },
- "audio/evrcwb0": {
- source: "iana"
- },
- "audio/evrcwb1": {
- source: "iana"
- },
- "audio/evs": {
- source: "iana"
- },
- "audio/flac": {
- source: "iana"
- },
- "audio/flexfec": {
- source: "iana"
- },
- "audio/fwdred": {
- source: "iana"
- },
- "audio/g711-0": {
- source: "iana"
- },
- "audio/g719": {
- source: "iana"
- },
- "audio/g722": {
- source: "iana"
- },
- "audio/g7221": {
- source: "iana"
- },
- "audio/g723": {
- source: "iana"
- },
- "audio/g726-16": {
- source: "iana"
- },
- "audio/g726-24": {
- source: "iana"
- },
- "audio/g726-32": {
- source: "iana"
- },
- "audio/g726-40": {
- source: "iana"
- },
- "audio/g728": {
- source: "iana"
- },
- "audio/g729": {
- source: "iana"
- },
- "audio/g7291": {
- source: "iana"
- },
- "audio/g729d": {
- source: "iana"
- },
- "audio/g729e": {
- source: "iana"
- },
- "audio/gsm": {
- source: "iana"
- },
- "audio/gsm-efr": {
- source: "iana"
- },
- "audio/gsm-hr-08": {
- source: "iana"
- },
- "audio/ilbc": {
- source: "iana"
- },
- "audio/ip-mr_v2.5": {
- source: "iana"
- },
- "audio/isac": {
- source: "apache"
- },
- "audio/l16": {
- source: "iana"
- },
- "audio/l20": {
- source: "iana"
- },
- "audio/l24": {
- source: "iana",
- compressible: false
- },
- "audio/l8": {
- source: "iana"
- },
- "audio/lpc": {
- source: "iana"
- },
- "audio/matroska": {
- source: "iana"
- },
- "audio/melp": {
- source: "iana"
- },
- "audio/melp1200": {
- source: "iana"
- },
- "audio/melp2400": {
- source: "iana"
- },
- "audio/melp600": {
- source: "iana"
- },
- "audio/mhas": {
- source: "iana"
- },
- "audio/midi": {
- source: "apache",
- extensions: ["mid", "midi", "kar", "rmi"]
- },
- "audio/midi-clip": {
- source: "iana"
- },
- "audio/mobile-xmf": {
- source: "iana",
- extensions: ["mxmf"]
- },
- "audio/mp3": {
- compressible: false,
- extensions: ["mp3"]
- },
- "audio/mp4": {
- source: "iana",
- compressible: false,
- extensions: ["m4a", "mp4a", "m4b"]
- },
- "audio/mp4a-latm": {
- source: "iana"
- },
- "audio/mpa": {
- source: "iana"
- },
- "audio/mpa-robust": {
- source: "iana"
- },
- "audio/mpeg": {
- source: "iana",
- compressible: false,
- extensions: ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"]
- },
- "audio/mpeg4-generic": {
- source: "iana"
- },
- "audio/musepack": {
- source: "apache"
- },
- "audio/ogg": {
- source: "iana",
- compressible: false,
- extensions: ["oga", "ogg", "spx", "opus"]
- },
- "audio/opus": {
- source: "iana"
- },
- "audio/parityfec": {
- source: "iana"
- },
- "audio/pcma": {
- source: "iana"
- },
- "audio/pcma-wb": {
- source: "iana"
- },
- "audio/pcmu": {
- source: "iana"
- },
- "audio/pcmu-wb": {
- source: "iana"
- },
- "audio/prs.sid": {
- source: "iana"
- },
- "audio/qcelp": {
- source: "iana"
- },
- "audio/raptorfec": {
- source: "iana"
- },
- "audio/red": {
- source: "iana"
- },
- "audio/rtp-enc-aescm128": {
- source: "iana"
- },
- "audio/rtp-midi": {
- source: "iana"
- },
- "audio/rtploopback": {
- source: "iana"
- },
- "audio/rtx": {
- source: "iana"
- },
- "audio/s3m": {
- source: "apache",
- extensions: ["s3m"]
- },
- "audio/scip": {
- source: "iana"
- },
- "audio/silk": {
- source: "apache",
- extensions: ["sil"]
- },
- "audio/smv": {
- source: "iana"
- },
- "audio/smv-qcp": {
- source: "iana"
- },
- "audio/smv0": {
- source: "iana"
- },
- "audio/sofa": {
- source: "iana"
- },
- "audio/sp-midi": {
- source: "iana"
- },
- "audio/speex": {
- source: "iana"
- },
- "audio/t140c": {
- source: "iana"
- },
- "audio/t38": {
- source: "iana"
- },
- "audio/telephone-event": {
- source: "iana"
- },
- "audio/tetra_acelp": {
- source: "iana"
- },
- "audio/tetra_acelp_bb": {
- source: "iana"
- },
- "audio/tone": {
- source: "iana"
- },
- "audio/tsvcis": {
- source: "iana"
- },
- "audio/uemclip": {
- source: "iana"
- },
- "audio/ulpfec": {
- source: "iana"
- },
- "audio/usac": {
- source: "iana"
- },
- "audio/vdvi": {
- source: "iana"
- },
- "audio/vmr-wb": {
- source: "iana"
- },
- "audio/vnd.3gpp.iufp": {
- source: "iana"
- },
- "audio/vnd.4sb": {
- source: "iana"
- },
- "audio/vnd.audiokoz": {
- source: "iana"
- },
- "audio/vnd.celp": {
- source: "iana"
- },
- "audio/vnd.cisco.nse": {
- source: "iana"
- },
- "audio/vnd.cmles.radio-events": {
- source: "iana"
- },
- "audio/vnd.cns.anp1": {
- source: "iana"
- },
- "audio/vnd.cns.inf1": {
- source: "iana"
- },
- "audio/vnd.dece.audio": {
- source: "iana",
- extensions: ["uva", "uvva"]
- },
- "audio/vnd.digital-winds": {
- source: "iana",
- extensions: ["eol"]
- },
- "audio/vnd.dlna.adts": {
- source: "iana"
- },
- "audio/vnd.dolby.heaac.1": {
- source: "iana"
- },
- "audio/vnd.dolby.heaac.2": {
- source: "iana"
- },
- "audio/vnd.dolby.mlp": {
- source: "iana"
- },
- "audio/vnd.dolby.mps": {
- source: "iana"
- },
- "audio/vnd.dolby.pl2": {
- source: "iana"
- },
- "audio/vnd.dolby.pl2x": {
- source: "iana"
- },
- "audio/vnd.dolby.pl2z": {
- source: "iana"
- },
- "audio/vnd.dolby.pulse.1": {
- source: "iana"
- },
- "audio/vnd.dra": {
- source: "iana",
- extensions: ["dra"]
- },
- "audio/vnd.dts": {
- source: "iana",
- extensions: ["dts"]
- },
- "audio/vnd.dts.hd": {
- source: "iana",
- extensions: ["dtshd"]
- },
- "audio/vnd.dts.uhd": {
- source: "iana"
- },
- "audio/vnd.dvb.file": {
- source: "iana"
- },
- "audio/vnd.everad.plj": {
- source: "iana"
- },
- "audio/vnd.hns.audio": {
- source: "iana"
- },
- "audio/vnd.lucent.voice": {
- source: "iana",
- extensions: ["lvp"]
- },
- "audio/vnd.ms-playready.media.pya": {
- source: "iana",
- extensions: ["pya"]
- },
- "audio/vnd.nokia.mobile-xmf": {
- source: "iana"
- },
- "audio/vnd.nortel.vbk": {
- source: "iana"
- },
- "audio/vnd.nuera.ecelp4800": {
- source: "iana",
- extensions: ["ecelp4800"]
- },
- "audio/vnd.nuera.ecelp7470": {
- source: "iana",
- extensions: ["ecelp7470"]
- },
- "audio/vnd.nuera.ecelp9600": {
- source: "iana",
- extensions: ["ecelp9600"]
- },
- "audio/vnd.octel.sbc": {
- source: "iana"
- },
- "audio/vnd.presonus.multitrack": {
- source: "iana"
- },
- "audio/vnd.qcelp": {
- source: "apache"
- },
- "audio/vnd.rhetorex.32kadpcm": {
- source: "iana"
- },
- "audio/vnd.rip": {
- source: "iana",
- extensions: ["rip"]
- },
- "audio/vnd.rn-realaudio": {
- compressible: false
- },
- "audio/vnd.sealedmedia.softseal.mpeg": {
- source: "iana"
- },
- "audio/vnd.vmx.cvsd": {
- source: "iana"
- },
- "audio/vnd.wave": {
- compressible: false
- },
- "audio/vorbis": {
- source: "iana",
- compressible: false
- },
- "audio/vorbis-config": {
- source: "iana"
- },
- "audio/wav": {
- compressible: false,
- extensions: ["wav"]
- },
- "audio/wave": {
- compressible: false,
- extensions: ["wav"]
- },
- "audio/webm": {
- source: "apache",
- compressible: false,
- extensions: ["weba"]
- },
- "audio/x-aac": {
- source: "apache",
- compressible: false,
- extensions: ["aac"]
- },
- "audio/x-aiff": {
- source: "apache",
- extensions: ["aif", "aiff", "aifc"]
- },
- "audio/x-caf": {
- source: "apache",
- compressible: false,
- extensions: ["caf"]
- },
- "audio/x-flac": {
- source: "apache",
- extensions: ["flac"]
- },
- "audio/x-m4a": {
- source: "nginx",
- extensions: ["m4a"]
- },
- "audio/x-matroska": {
- source: "apache",
- extensions: ["mka"]
- },
- "audio/x-mpegurl": {
- source: "apache",
- extensions: ["m3u"]
- },
- "audio/x-ms-wax": {
- source: "apache",
- extensions: ["wax"]
- },
- "audio/x-ms-wma": {
- source: "apache",
- extensions: ["wma"]
- },
- "audio/x-pn-realaudio": {
- source: "apache",
- extensions: ["ram", "ra"]
- },
- "audio/x-pn-realaudio-plugin": {
- source: "apache",
- extensions: ["rmp"]
- },
- "audio/x-realaudio": {
- source: "nginx",
- extensions: ["ra"]
- },
- "audio/x-tta": {
- source: "apache"
- },
- "audio/x-wav": {
- source: "apache",
- extensions: ["wav"]
- },
- "audio/xm": {
- source: "apache",
- extensions: ["xm"]
- },
- "chemical/x-cdx": {
- source: "apache",
- extensions: ["cdx"]
- },
- "chemical/x-cif": {
- source: "apache",
- extensions: ["cif"]
- },
- "chemical/x-cmdf": {
- source: "apache",
- extensions: ["cmdf"]
- },
- "chemical/x-cml": {
- source: "apache",
- extensions: ["cml"]
- },
- "chemical/x-csml": {
- source: "apache",
- extensions: ["csml"]
- },
- "chemical/x-pdb": {
- source: "apache"
- },
- "chemical/x-xyz": {
- source: "apache",
- extensions: ["xyz"]
- },
- "font/collection": {
- source: "iana",
- extensions: ["ttc"]
- },
- "font/otf": {
- source: "iana",
- compressible: true,
- extensions: ["otf"]
- },
- "font/sfnt": {
- source: "iana"
- },
- "font/ttf": {
- source: "iana",
- compressible: true,
- extensions: ["ttf"]
- },
- "font/woff": {
- source: "iana",
- extensions: ["woff"]
- },
- "font/woff2": {
- source: "iana",
- extensions: ["woff2"]
- },
- "image/aces": {
- source: "iana",
- extensions: ["exr"]
- },
- "image/apng": {
- source: "iana",
- compressible: false,
- extensions: ["apng"]
- },
- "image/avci": {
- source: "iana",
- extensions: ["avci"]
- },
- "image/avcs": {
- source: "iana",
- extensions: ["avcs"]
- },
- "image/avif": {
- source: "iana",
- compressible: false,
- extensions: ["avif"]
- },
- "image/bmp": {
- source: "iana",
- compressible: true,
- extensions: ["bmp", "dib"]
- },
- "image/cgm": {
- source: "iana",
- extensions: ["cgm"]
- },
- "image/dicom-rle": {
- source: "iana",
- extensions: ["drle"]
- },
- "image/dpx": {
- source: "iana",
- extensions: ["dpx"]
- },
- "image/emf": {
- source: "iana",
- extensions: ["emf"]
- },
- "image/fits": {
- source: "iana",
- extensions: ["fits"]
- },
- "image/g3fax": {
- source: "iana",
- extensions: ["g3"]
- },
- "image/gif": {
- source: "iana",
- compressible: false,
- extensions: ["gif"]
- },
- "image/heic": {
- source: "iana",
- extensions: ["heic"]
- },
- "image/heic-sequence": {
- source: "iana",
- extensions: ["heics"]
- },
- "image/heif": {
- source: "iana",
- extensions: ["heif"]
- },
- "image/heif-sequence": {
- source: "iana",
- extensions: ["heifs"]
- },
- "image/hej2k": {
- source: "iana",
- extensions: ["hej2"]
- },
- "image/ief": {
- source: "iana",
- extensions: ["ief"]
- },
- "image/j2c": {
- source: "iana"
- },
- "image/jaii": {
- source: "iana",
- extensions: ["jaii"]
- },
- "image/jais": {
- source: "iana",
- extensions: ["jais"]
- },
- "image/jls": {
- source: "iana",
- extensions: ["jls"]
- },
- "image/jp2": {
- source: "iana",
- compressible: false,
- extensions: ["jp2", "jpg2"]
- },
- "image/jpeg": {
- source: "iana",
- compressible: false,
- extensions: ["jpg", "jpeg", "jpe"]
- },
- "image/jph": {
- source: "iana",
- extensions: ["jph"]
- },
- "image/jphc": {
- source: "iana",
- extensions: ["jhc"]
- },
- "image/jpm": {
- source: "iana",
- compressible: false,
- extensions: ["jpm", "jpgm"]
- },
- "image/jpx": {
- source: "iana",
- compressible: false,
- extensions: ["jpx", "jpf"]
- },
- "image/jxl": {
- source: "iana",
- extensions: ["jxl"]
- },
- "image/jxr": {
- source: "iana",
- extensions: ["jxr"]
- },
- "image/jxra": {
- source: "iana",
- extensions: ["jxra"]
- },
- "image/jxrs": {
- source: "iana",
- extensions: ["jxrs"]
- },
- "image/jxs": {
- source: "iana",
- extensions: ["jxs"]
- },
- "image/jxsc": {
- source: "iana",
- extensions: ["jxsc"]
- },
- "image/jxsi": {
- source: "iana",
- extensions: ["jxsi"]
- },
- "image/jxss": {
- source: "iana",
- extensions: ["jxss"]
- },
- "image/ktx": {
- source: "iana",
- extensions: ["ktx"]
- },
- "image/ktx2": {
- source: "iana",
- extensions: ["ktx2"]
- },
- "image/naplps": {
- source: "iana"
- },
- "image/pjpeg": {
- compressible: false,
- extensions: ["jfif"]
- },
- "image/png": {
- source: "iana",
- compressible: false,
- extensions: ["png"]
- },
- "image/prs.btif": {
- source: "iana",
- extensions: ["btif", "btf"]
- },
- "image/prs.pti": {
- source: "iana",
- extensions: ["pti"]
- },
- "image/pwg-raster": {
- source: "iana"
- },
- "image/sgi": {
- source: "apache",
- extensions: ["sgi"]
- },
- "image/svg+xml": {
- source: "iana",
- compressible: true,
- extensions: ["svg", "svgz"]
- },
- "image/t38": {
- source: "iana",
- extensions: ["t38"]
- },
- "image/tiff": {
- source: "iana",
- compressible: false,
- extensions: ["tif", "tiff"]
- },
- "image/tiff-fx": {
- source: "iana",
- extensions: ["tfx"]
- },
- "image/vnd.adobe.photoshop": {
- source: "iana",
- compressible: true,
- extensions: ["psd"]
- },
- "image/vnd.airzip.accelerator.azv": {
- source: "iana",
- extensions: ["azv"]
- },
- "image/vnd.clip": {
- source: "iana"
- },
- "image/vnd.cns.inf2": {
- source: "iana"
- },
- "image/vnd.dece.graphic": {
- source: "iana",
- extensions: ["uvi", "uvvi", "uvg", "uvvg"]
- },
- "image/vnd.djvu": {
- source: "iana",
- extensions: ["djvu", "djv"]
- },
- "image/vnd.dvb.subtitle": {
- source: "iana",
- extensions: ["sub"]
- },
- "image/vnd.dwg": {
- source: "iana",
- extensions: ["dwg"]
- },
- "image/vnd.dxf": {
- source: "iana",
- extensions: ["dxf"]
- },
- "image/vnd.fastbidsheet": {
- source: "iana",
- extensions: ["fbs"]
- },
- "image/vnd.fpx": {
- source: "iana",
- extensions: ["fpx"]
- },
- "image/vnd.fst": {
- source: "iana",
- extensions: ["fst"]
- },
- "image/vnd.fujixerox.edmics-mmr": {
- source: "iana",
- extensions: ["mmr"]
- },
- "image/vnd.fujixerox.edmics-rlc": {
- source: "iana",
- extensions: ["rlc"]
- },
- "image/vnd.globalgraphics.pgb": {
- source: "iana"
- },
- "image/vnd.microsoft.icon": {
- source: "iana",
- compressible: true,
- extensions: ["ico"]
- },
- "image/vnd.mix": {
- source: "iana"
- },
- "image/vnd.mozilla.apng": {
- source: "iana"
- },
- "image/vnd.ms-dds": {
- compressible: true,
- extensions: ["dds"]
- },
- "image/vnd.ms-modi": {
- source: "iana",
- extensions: ["mdi"]
- },
- "image/vnd.ms-photo": {
- source: "apache",
- extensions: ["wdp"]
- },
- "image/vnd.net-fpx": {
- source: "iana",
- extensions: ["npx"]
- },
- "image/vnd.pco.b16": {
- source: "iana",
- extensions: ["b16"]
- },
- "image/vnd.radiance": {
- source: "iana"
- },
- "image/vnd.sealed.png": {
- source: "iana"
- },
- "image/vnd.sealedmedia.softseal.gif": {
- source: "iana"
- },
- "image/vnd.sealedmedia.softseal.jpg": {
- source: "iana"
- },
- "image/vnd.svf": {
- source: "iana"
- },
- "image/vnd.tencent.tap": {
- source: "iana",
- extensions: ["tap"]
- },
- "image/vnd.valve.source.texture": {
- source: "iana",
- extensions: ["vtf"]
- },
- "image/vnd.wap.wbmp": {
- source: "iana",
- extensions: ["wbmp"]
- },
- "image/vnd.xiff": {
- source: "iana",
- extensions: ["xif"]
- },
- "image/vnd.zbrush.pcx": {
- source: "iana",
- extensions: ["pcx"]
- },
- "image/webp": {
- source: "iana",
- extensions: ["webp"]
- },
- "image/wmf": {
- source: "iana",
- extensions: ["wmf"]
- },
- "image/x-3ds": {
- source: "apache",
- extensions: ["3ds"]
- },
- "image/x-adobe-dng": {
- extensions: ["dng"]
- },
- "image/x-cmu-raster": {
- source: "apache",
- extensions: ["ras"]
- },
- "image/x-cmx": {
- source: "apache",
- extensions: ["cmx"]
- },
- "image/x-emf": {
- source: "iana"
- },
- "image/x-freehand": {
- source: "apache",
- extensions: ["fh", "fhc", "fh4", "fh5", "fh7"]
- },
- "image/x-icon": {
- source: "apache",
- compressible: true,
- extensions: ["ico"]
- },
- "image/x-jng": {
- source: "nginx",
- extensions: ["jng"]
- },
- "image/x-mrsid-image": {
- source: "apache",
- extensions: ["sid"]
- },
- "image/x-ms-bmp": {
- source: "nginx",
- compressible: true,
- extensions: ["bmp"]
- },
- "image/x-pcx": {
- source: "apache",
- extensions: ["pcx"]
- },
- "image/x-pict": {
- source: "apache",
- extensions: ["pic", "pct"]
- },
- "image/x-portable-anymap": {
- source: "apache",
- extensions: ["pnm"]
- },
- "image/x-portable-bitmap": {
- source: "apache",
- extensions: ["pbm"]
- },
- "image/x-portable-graymap": {
- source: "apache",
- extensions: ["pgm"]
- },
- "image/x-portable-pixmap": {
- source: "apache",
- extensions: ["ppm"]
- },
- "image/x-rgb": {
- source: "apache",
- extensions: ["rgb"]
- },
- "image/x-tga": {
- source: "apache",
- extensions: ["tga"]
- },
- "image/x-wmf": {
- source: "iana"
- },
- "image/x-xbitmap": {
- source: "apache",
- extensions: ["xbm"]
- },
- "image/x-xcf": {
- compressible: false
- },
- "image/x-xpixmap": {
- source: "apache",
- extensions: ["xpm"]
- },
- "image/x-xwindowdump": {
- source: "apache",
- extensions: ["xwd"]
- },
- "message/bhttp": {
- source: "iana"
- },
- "message/cpim": {
- source: "iana"
- },
- "message/delivery-status": {
- source: "iana"
- },
- "message/disposition-notification": {
- source: "iana",
- extensions: [
- "disposition-notification"
- ]
- },
- "message/external-body": {
- source: "iana"
- },
- "message/feedback-report": {
- source: "iana"
- },
- "message/global": {
- source: "iana",
- extensions: ["u8msg"]
- },
- "message/global-delivery-status": {
- source: "iana",
- extensions: ["u8dsn"]
- },
- "message/global-disposition-notification": {
- source: "iana",
- extensions: ["u8mdn"]
- },
- "message/global-headers": {
- source: "iana",
- extensions: ["u8hdr"]
- },
- "message/http": {
- source: "iana",
- compressible: false
- },
- "message/imdn+xml": {
- source: "iana",
- compressible: true
- },
- "message/mls": {
- source: "iana"
- },
- "message/news": {
- source: "apache"
- },
- "message/ohttp-req": {
- source: "iana"
- },
- "message/ohttp-res": {
- source: "iana"
- },
- "message/partial": {
- source: "iana",
- compressible: false
- },
- "message/rfc822": {
- source: "iana",
- compressible: true,
- extensions: ["eml", "mime", "mht", "mhtml"]
- },
- "message/s-http": {
- source: "apache"
- },
- "message/sip": {
- source: "iana"
- },
- "message/sipfrag": {
- source: "iana"
- },
- "message/tracking-status": {
- source: "iana"
- },
- "message/vnd.si.simp": {
- source: "apache"
- },
- "message/vnd.wfa.wsc": {
- source: "iana",
- extensions: ["wsc"]
- },
- "model/3mf": {
- source: "iana",
- extensions: ["3mf"]
- },
- "model/e57": {
- source: "iana"
- },
- "model/gltf+json": {
- source: "iana",
- compressible: true,
- extensions: ["gltf"]
- },
- "model/gltf-binary": {
- source: "iana",
- compressible: true,
- extensions: ["glb"]
- },
- "model/iges": {
- source: "iana",
- compressible: false,
- extensions: ["igs", "iges"]
- },
- "model/jt": {
- source: "iana",
- extensions: ["jt"]
- },
- "model/mesh": {
- source: "iana",
- compressible: false,
- extensions: ["msh", "mesh", "silo"]
- },
- "model/mtl": {
- source: "iana",
- extensions: ["mtl"]
- },
- "model/obj": {
- source: "iana",
- extensions: ["obj"]
- },
- "model/prc": {
- source: "iana",
- extensions: ["prc"]
- },
- "model/step": {
- source: "iana",
- extensions: ["step", "stp", "stpnc", "p21", "210"]
- },
- "model/step+xml": {
- source: "iana",
- compressible: true,
- extensions: ["stpx"]
- },
- "model/step+zip": {
- source: "iana",
- compressible: false,
- extensions: ["stpz"]
- },
- "model/step-xml+zip": {
- source: "iana",
- compressible: false,
- extensions: ["stpxz"]
- },
- "model/stl": {
- source: "iana",
- extensions: ["stl"]
- },
- "model/u3d": {
- source: "iana",
- extensions: ["u3d"]
- },
- "model/vnd.bary": {
- source: "iana",
- extensions: ["bary"]
- },
- "model/vnd.cld": {
- source: "iana",
- extensions: ["cld"]
- },
- "model/vnd.collada+xml": {
- source: "iana",
- compressible: true,
- extensions: ["dae"]
- },
- "model/vnd.dwf": {
- source: "iana",
- extensions: ["dwf"]
- },
- "model/vnd.flatland.3dml": {
- source: "iana"
- },
- "model/vnd.gdl": {
- source: "iana",
- extensions: ["gdl"]
- },
- "model/vnd.gs-gdl": {
- source: "apache"
- },
- "model/vnd.gs.gdl": {
- source: "iana"
- },
- "model/vnd.gtw": {
- source: "iana",
- extensions: ["gtw"]
- },
- "model/vnd.moml+xml": {
- source: "iana",
- compressible: true
- },
- "model/vnd.mts": {
- source: "iana",
- extensions: ["mts"]
- },
- "model/vnd.opengex": {
- source: "iana",
- extensions: ["ogex"]
- },
- "model/vnd.parasolid.transmit.binary": {
- source: "iana",
- extensions: ["x_b"]
- },
- "model/vnd.parasolid.transmit.text": {
- source: "iana",
- extensions: ["x_t"]
- },
- "model/vnd.pytha.pyox": {
- source: "iana",
- extensions: ["pyo", "pyox"]
- },
- "model/vnd.rosette.annotated-data-model": {
- source: "iana"
- },
- "model/vnd.sap.vds": {
- source: "iana",
- extensions: ["vds"]
- },
- "model/vnd.usda": {
- source: "iana",
- extensions: ["usda"]
- },
- "model/vnd.usdz+zip": {
- source: "iana",
- compressible: false,
- extensions: ["usdz"]
- },
- "model/vnd.valve.source.compiled-map": {
- source: "iana",
- extensions: ["bsp"]
- },
- "model/vnd.vtu": {
- source: "iana",
- extensions: ["vtu"]
- },
- "model/vrml": {
- source: "iana",
- compressible: false,
- extensions: ["wrl", "vrml"]
- },
- "model/x3d+binary": {
- source: "apache",
- compressible: false,
- extensions: ["x3db", "x3dbz"]
- },
- "model/x3d+fastinfoset": {
- source: "iana",
- extensions: ["x3db"]
- },
- "model/x3d+vrml": {
- source: "apache",
- compressible: false,
- extensions: ["x3dv", "x3dvz"]
- },
- "model/x3d+xml": {
- source: "iana",
- compressible: true,
- extensions: ["x3d", "x3dz"]
- },
- "model/x3d-vrml": {
- source: "iana",
- extensions: ["x3dv"]
- },
- "multipart/alternative": {
- source: "iana",
- compressible: false
- },
- "multipart/appledouble": {
- source: "iana"
- },
- "multipart/byteranges": {
- source: "iana"
- },
- "multipart/digest": {
- source: "iana"
- },
- "multipart/encrypted": {
- source: "iana",
- compressible: false
- },
- "multipart/form-data": {
- source: "iana",
- compressible: false
- },
- "multipart/header-set": {
- source: "iana"
- },
- "multipart/mixed": {
- source: "iana"
- },
- "multipart/multilingual": {
- source: "iana"
- },
- "multipart/parallel": {
- source: "iana"
- },
- "multipart/related": {
- source: "iana",
- compressible: false
- },
- "multipart/report": {
- source: "iana"
- },
- "multipart/signed": {
- source: "iana",
- compressible: false
- },
- "multipart/vnd.bint.med-plus": {
- source: "iana"
- },
- "multipart/voice-message": {
- source: "iana"
- },
- "multipart/x-mixed-replace": {
- source: "iana"
- },
- "text/1d-interleaved-parityfec": {
- source: "iana"
- },
- "text/cache-manifest": {
- source: "iana",
- compressible: true,
- extensions: ["appcache", "manifest"]
- },
- "text/calendar": {
- source: "iana",
- extensions: ["ics", "ifb"]
- },
- "text/calender": {
- compressible: true
- },
- "text/cmd": {
- compressible: true
- },
- "text/coffeescript": {
- extensions: ["coffee", "litcoffee"]
- },
- "text/cql": {
- source: "iana"
- },
- "text/cql-expression": {
- source: "iana"
- },
- "text/cql-identifier": {
- source: "iana"
- },
- "text/css": {
- source: "iana",
- charset: "UTF-8",
- compressible: true,
- extensions: ["css"]
- },
- "text/csv": {
- source: "iana",
- compressible: true,
- extensions: ["csv"]
- },
- "text/csv-schema": {
- source: "iana"
- },
- "text/directory": {
- source: "iana"
- },
- "text/dns": {
- source: "iana"
- },
- "text/ecmascript": {
- source: "apache"
- },
- "text/encaprtp": {
- source: "iana"
- },
- "text/enriched": {
- source: "iana"
- },
- "text/fhirpath": {
- source: "iana"
- },
- "text/flexfec": {
- source: "iana"
- },
- "text/fwdred": {
- source: "iana"
- },
- "text/gff3": {
- source: "iana"
- },
- "text/grammar-ref-list": {
- source: "iana"
- },
- "text/hl7v2": {
- source: "iana"
- },
- "text/html": {
- source: "iana",
- compressible: true,
- extensions: ["html", "htm", "shtml"]
- },
- "text/jade": {
- extensions: ["jade"]
- },
- "text/javascript": {
- source: "iana",
- charset: "UTF-8",
- compressible: true,
- extensions: ["js", "mjs"]
- },
- "text/jcr-cnd": {
- source: "iana"
- },
- "text/jsx": {
- compressible: true,
- extensions: ["jsx"]
- },
- "text/less": {
- compressible: true,
- extensions: ["less"]
- },
- "text/markdown": {
- source: "iana",
- compressible: true,
- extensions: ["md", "markdown"]
- },
- "text/mathml": {
- source: "nginx",
- extensions: ["mml"]
- },
- "text/mdx": {
- compressible: true,
- extensions: ["mdx"]
- },
- "text/mizar": {
- source: "iana"
- },
- "text/n3": {
- source: "iana",
- charset: "UTF-8",
- compressible: true,
- extensions: ["n3"]
- },
- "text/parameters": {
- source: "iana",
- charset: "UTF-8"
- },
- "text/parityfec": {
- source: "iana"
- },
- "text/plain": {
- source: "iana",
- compressible: true,
- extensions: ["txt", "text", "conf", "def", "list", "log", "in", "ini"]
- },
- "text/provenance-notation": {
- source: "iana",
- charset: "UTF-8"
- },
- "text/prs.fallenstein.rst": {
- source: "iana"
- },
- "text/prs.lines.tag": {
- source: "iana",
- extensions: ["dsc"]
- },
- "text/prs.prop.logic": {
- source: "iana"
- },
- "text/prs.texi": {
- source: "iana"
- },
- "text/raptorfec": {
- source: "iana"
- },
- "text/red": {
- source: "iana"
- },
- "text/rfc822-headers": {
- source: "iana"
- },
- "text/richtext": {
- source: "iana",
- compressible: true,
- extensions: ["rtx"]
- },
- "text/rtf": {
- source: "iana",
- compressible: true,
- extensions: ["rtf"]
- },
- "text/rtp-enc-aescm128": {
- source: "iana"
- },
- "text/rtploopback": {
- source: "iana"
- },
- "text/rtx": {
- source: "iana"
- },
- "text/sgml": {
- source: "iana",
- extensions: ["sgml", "sgm"]
- },
- "text/shaclc": {
- source: "iana"
- },
- "text/shex": {
- source: "iana",
- extensions: ["shex"]
- },
- "text/slim": {
- extensions: ["slim", "slm"]
- },
- "text/spdx": {
- source: "iana",
- extensions: ["spdx"]
- },
- "text/strings": {
- source: "iana"
- },
- "text/stylus": {
- extensions: ["stylus", "styl"]
- },
- "text/t140": {
- source: "iana"
- },
- "text/tab-separated-values": {
- source: "iana",
- compressible: true,
- extensions: ["tsv"]
- },
- "text/troff": {
- source: "iana",
- extensions: ["t", "tr", "roff", "man", "me", "ms"]
- },
- "text/turtle": {
- source: "iana",
- charset: "UTF-8",
- extensions: ["ttl"]
- },
- "text/ulpfec": {
- source: "iana"
- },
- "text/uri-list": {
- source: "iana",
- compressible: true,
- extensions: ["uri", "uris", "urls"]
- },
- "text/vcard": {
- source: "iana",
- compressible: true,
- extensions: ["vcard"]
- },
- "text/vnd.a": {
- source: "iana"
- },
- "text/vnd.abc": {
- source: "iana"
- },
- "text/vnd.ascii-art": {
- source: "iana"
- },
- "text/vnd.curl": {
- source: "iana",
- extensions: ["curl"]
- },
- "text/vnd.curl.dcurl": {
- source: "apache",
- extensions: ["dcurl"]
- },
- "text/vnd.curl.mcurl": {
- source: "apache",
- extensions: ["mcurl"]
- },
- "text/vnd.curl.scurl": {
- source: "apache",
- extensions: ["scurl"]
- },
- "text/vnd.debian.copyright": {
- source: "iana",
- charset: "UTF-8"
- },
- "text/vnd.dmclientscript": {
- source: "iana"
- },
- "text/vnd.dvb.subtitle": {
- source: "iana",
- extensions: ["sub"]
- },
- "text/vnd.esmertec.theme-descriptor": {
- source: "iana",
- charset: "UTF-8"
- },
- "text/vnd.exchangeable": {
- source: "iana"
- },
- "text/vnd.familysearch.gedcom": {
- source: "iana",
- extensions: ["ged"]
- },
- "text/vnd.ficlab.flt": {
- source: "iana"
- },
- "text/vnd.fly": {
- source: "iana",
- extensions: ["fly"]
- },
- "text/vnd.fmi.flexstor": {
- source: "iana",
- extensions: ["flx"]
- },
- "text/vnd.gml": {
- source: "iana"
- },
- "text/vnd.graphviz": {
- source: "iana",
- extensions: ["gv"]
- },
- "text/vnd.hans": {
- source: "iana"
- },
- "text/vnd.hgl": {
- source: "iana"
- },
- "text/vnd.in3d.3dml": {
- source: "iana",
- extensions: ["3dml"]
- },
- "text/vnd.in3d.spot": {
- source: "iana",
- extensions: ["spot"]
- },
- "text/vnd.iptc.newsml": {
- source: "iana"
- },
- "text/vnd.iptc.nitf": {
- source: "iana"
- },
- "text/vnd.latex-z": {
- source: "iana"
- },
- "text/vnd.motorola.reflex": {
- source: "iana"
- },
- "text/vnd.ms-mediapackage": {
- source: "iana"
- },
- "text/vnd.net2phone.commcenter.command": {
- source: "iana"
- },
- "text/vnd.radisys.msml-basic-layout": {
- source: "iana"
- },
- "text/vnd.senx.warpscript": {
- source: "iana"
- },
- "text/vnd.si.uricatalogue": {
- source: "apache"
- },
- "text/vnd.sosi": {
- source: "iana"
- },
- "text/vnd.sun.j2me.app-descriptor": {
- source: "iana",
- charset: "UTF-8",
- extensions: ["jad"]
- },
- "text/vnd.trolltech.linguist": {
- source: "iana",
- charset: "UTF-8"
- },
- "text/vnd.vcf": {
- source: "iana"
- },
- "text/vnd.wap.si": {
- source: "iana"
- },
- "text/vnd.wap.sl": {
- source: "iana"
- },
- "text/vnd.wap.wml": {
- source: "iana",
- extensions: ["wml"]
- },
- "text/vnd.wap.wmlscript": {
- source: "iana",
- extensions: ["wmls"]
- },
- "text/vnd.zoo.kcl": {
- source: "iana"
- },
- "text/vtt": {
- source: "iana",
- charset: "UTF-8",
- compressible: true,
- extensions: ["vtt"]
- },
- "text/wgsl": {
- source: "iana",
- extensions: ["wgsl"]
- },
- "text/x-asm": {
- source: "apache",
- extensions: ["s", "asm"]
- },
- "text/x-c": {
- source: "apache",
- extensions: ["c", "cc", "cxx", "cpp", "h", "hh", "dic"]
- },
- "text/x-component": {
- source: "nginx",
- extensions: ["htc"]
- },
- "text/x-fortran": {
- source: "apache",
- extensions: ["f", "for", "f77", "f90"]
- },
- "text/x-gwt-rpc": {
- compressible: true
- },
- "text/x-handlebars-template": {
- extensions: ["hbs"]
- },
- "text/x-java-source": {
- source: "apache",
- extensions: ["java"]
- },
- "text/x-jquery-tmpl": {
- compressible: true
- },
- "text/x-lua": {
- extensions: ["lua"]
- },
- "text/x-markdown": {
- compressible: true,
- extensions: ["mkd"]
- },
- "text/x-nfo": {
- source: "apache",
- extensions: ["nfo"]
- },
- "text/x-opml": {
- source: "apache",
- extensions: ["opml"]
- },
- "text/x-org": {
- compressible: true,
- extensions: ["org"]
- },
- "text/x-pascal": {
- source: "apache",
- extensions: ["p", "pas"]
- },
- "text/x-processing": {
- compressible: true,
- extensions: ["pde"]
- },
- "text/x-sass": {
- extensions: ["sass"]
- },
- "text/x-scss": {
- extensions: ["scss"]
- },
- "text/x-setext": {
- source: "apache",
- extensions: ["etx"]
- },
- "text/x-sfv": {
- source: "apache",
- extensions: ["sfv"]
- },
- "text/x-suse-ymp": {
- compressible: true,
- extensions: ["ymp"]
- },
- "text/x-uuencode": {
- source: "apache",
- extensions: ["uu"]
- },
- "text/x-vcalendar": {
- source: "apache",
- extensions: ["vcs"]
- },
- "text/x-vcard": {
- source: "apache",
- extensions: ["vcf"]
- },
- "text/xml": {
- source: "iana",
- compressible: true,
- extensions: ["xml"]
- },
- "text/xml-external-parsed-entity": {
- source: "iana"
- },
- "text/yaml": {
- compressible: true,
- extensions: ["yaml", "yml"]
- },
- "video/1d-interleaved-parityfec": {
- source: "iana"
- },
- "video/3gpp": {
- source: "iana",
- extensions: ["3gp", "3gpp"]
- },
- "video/3gpp-tt": {
- source: "iana"
- },
- "video/3gpp2": {
- source: "iana",
- extensions: ["3g2"]
- },
- "video/av1": {
- source: "iana"
- },
- "video/bmpeg": {
- source: "iana"
- },
- "video/bt656": {
- source: "iana"
- },
- "video/celb": {
- source: "iana"
- },
- "video/dv": {
- source: "iana"
- },
- "video/encaprtp": {
- source: "iana"
- },
- "video/evc": {
- source: "iana"
- },
- "video/ffv1": {
- source: "iana"
- },
- "video/flexfec": {
- source: "iana"
- },
- "video/h261": {
- source: "iana",
- extensions: ["h261"]
- },
- "video/h263": {
- source: "iana",
- extensions: ["h263"]
- },
- "video/h263-1998": {
- source: "iana"
- },
- "video/h263-2000": {
- source: "iana"
- },
- "video/h264": {
- source: "iana",
- extensions: ["h264"]
- },
- "video/h264-rcdo": {
- source: "iana"
- },
- "video/h264-svc": {
- source: "iana"
- },
- "video/h265": {
- source: "iana"
- },
- "video/h266": {
- source: "iana"
- },
- "video/iso.segment": {
- source: "iana",
- extensions: ["m4s"]
- },
- "video/jpeg": {
- source: "iana",
- extensions: ["jpgv"]
- },
- "video/jpeg2000": {
- source: "iana"
- },
- "video/jpm": {
- source: "apache",
- extensions: ["jpm", "jpgm"]
- },
- "video/jxsv": {
- source: "iana"
- },
- "video/lottie+json": {
- source: "iana",
- compressible: true
- },
- "video/matroska": {
- source: "iana"
- },
- "video/matroska-3d": {
- source: "iana"
- },
- "video/mj2": {
- source: "iana",
- extensions: ["mj2", "mjp2"]
- },
- "video/mp1s": {
- source: "iana"
- },
- "video/mp2p": {
- source: "iana"
- },
- "video/mp2t": {
- source: "iana",
- extensions: ["ts", "m2t", "m2ts", "mts"]
- },
- "video/mp4": {
- source: "iana",
- compressible: false,
- extensions: ["mp4", "mp4v", "mpg4"]
- },
- "video/mp4v-es": {
- source: "iana"
- },
- "video/mpeg": {
- source: "iana",
- compressible: false,
- extensions: ["mpeg", "mpg", "mpe", "m1v", "m2v"]
- },
- "video/mpeg4-generic": {
- source: "iana"
- },
- "video/mpv": {
- source: "iana"
- },
- "video/nv": {
- source: "iana"
- },
- "video/ogg": {
- source: "iana",
- compressible: false,
- extensions: ["ogv"]
- },
- "video/parityfec": {
- source: "iana"
- },
- "video/pointer": {
- source: "iana"
- },
- "video/quicktime": {
- source: "iana",
- compressible: false,
- extensions: ["qt", "mov"]
- },
- "video/raptorfec": {
- source: "iana"
- },
- "video/raw": {
- source: "iana"
- },
- "video/rtp-enc-aescm128": {
- source: "iana"
- },
- "video/rtploopback": {
- source: "iana"
- },
- "video/rtx": {
- source: "iana"
- },
- "video/scip": {
- source: "iana"
- },
- "video/smpte291": {
- source: "iana"
- },
- "video/smpte292m": {
- source: "iana"
- },
- "video/ulpfec": {
- source: "iana"
- },
- "video/vc1": {
- source: "iana"
- },
- "video/vc2": {
- source: "iana"
- },
- "video/vnd.cctv": {
- source: "iana"
- },
- "video/vnd.dece.hd": {
- source: "iana",
- extensions: ["uvh", "uvvh"]
- },
- "video/vnd.dece.mobile": {
- source: "iana",
- extensions: ["uvm", "uvvm"]
- },
- "video/vnd.dece.mp4": {
- source: "iana"
- },
- "video/vnd.dece.pd": {
- source: "iana",
- extensions: ["uvp", "uvvp"]
- },
- "video/vnd.dece.sd": {
- source: "iana",
- extensions: ["uvs", "uvvs"]
- },
- "video/vnd.dece.video": {
- source: "iana",
- extensions: ["uvv", "uvvv"]
- },
- "video/vnd.directv.mpeg": {
- source: "iana"
- },
- "video/vnd.directv.mpeg-tts": {
- source: "iana"
- },
- "video/vnd.dlna.mpeg-tts": {
- source: "iana"
- },
- "video/vnd.dvb.file": {
- source: "iana",
- extensions: ["dvb"]
- },
- "video/vnd.fvt": {
- source: "iana",
- extensions: ["fvt"]
- },
- "video/vnd.hns.video": {
- source: "iana"
- },
- "video/vnd.iptvforum.1dparityfec-1010": {
- source: "iana"
- },
- "video/vnd.iptvforum.1dparityfec-2005": {
- source: "iana"
- },
- "video/vnd.iptvforum.2dparityfec-1010": {
- source: "iana"
- },
- "video/vnd.iptvforum.2dparityfec-2005": {
- source: "iana"
- },
- "video/vnd.iptvforum.ttsavc": {
- source: "iana"
- },
- "video/vnd.iptvforum.ttsmpeg2": {
- source: "iana"
- },
- "video/vnd.motorola.video": {
- source: "iana"
- },
- "video/vnd.motorola.videop": {
- source: "iana"
- },
- "video/vnd.mpegurl": {
- source: "iana",
- extensions: ["mxu", "m4u"]
- },
- "video/vnd.ms-playready.media.pyv": {
- source: "iana",
- extensions: ["pyv"]
- },
- "video/vnd.nokia.interleaved-multimedia": {
- source: "iana"
- },
- "video/vnd.nokia.mp4vr": {
- source: "iana"
- },
- "video/vnd.nokia.videovoip": {
- source: "iana"
- },
- "video/vnd.objectvideo": {
- source: "iana"
- },
- "video/vnd.planar": {
- source: "iana"
- },
- "video/vnd.radgamettools.bink": {
- source: "iana"
- },
- "video/vnd.radgamettools.smacker": {
- source: "apache"
- },
- "video/vnd.sealed.mpeg1": {
- source: "iana"
- },
- "video/vnd.sealed.mpeg4": {
- source: "iana"
- },
- "video/vnd.sealed.swf": {
- source: "iana"
- },
- "video/vnd.sealedmedia.softseal.mov": {
- source: "iana"
- },
- "video/vnd.uvvu.mp4": {
- source: "iana",
- extensions: ["uvu", "uvvu"]
- },
- "video/vnd.vivo": {
- source: "iana",
- extensions: ["viv"]
- },
- "video/vnd.youtube.yt": {
- source: "iana"
- },
- "video/vp8": {
- source: "iana"
- },
- "video/vp9": {
- source: "iana"
- },
- "video/webm": {
- source: "apache",
- compressible: false,
- extensions: ["webm"]
- },
- "video/x-f4v": {
- source: "apache",
- extensions: ["f4v"]
- },
- "video/x-fli": {
- source: "apache",
- extensions: ["fli"]
- },
- "video/x-flv": {
- source: "apache",
- compressible: false,
- extensions: ["flv"]
- },
- "video/x-m4v": {
- source: "apache",
- extensions: ["m4v"]
- },
- "video/x-matroska": {
- source: "apache",
- compressible: false,
- extensions: ["mkv", "mk3d", "mks"]
- },
- "video/x-mng": {
- source: "apache",
- extensions: ["mng"]
- },
- "video/x-ms-asf": {
- source: "apache",
- extensions: ["asf", "asx"]
- },
- "video/x-ms-vob": {
- source: "apache",
- extensions: ["vob"]
- },
- "video/x-ms-wm": {
- source: "apache",
- extensions: ["wm"]
- },
- "video/x-ms-wmv": {
- source: "apache",
- compressible: false,
- extensions: ["wmv"]
- },
- "video/x-ms-wmx": {
- source: "apache",
- extensions: ["wmx"]
- },
- "video/x-ms-wvx": {
- source: "apache",
- extensions: ["wvx"]
- },
- "video/x-msvideo": {
- source: "apache",
- extensions: ["avi"]
- },
- "video/x-sgi-movie": {
- source: "apache",
- extensions: ["movie"]
- },
- "video/x-smv": {
- source: "apache",
- extensions: ["smv"]
- },
- "x-conference/x-cooltalk": {
- source: "apache",
- extensions: ["ice"]
- },
- "x-shader/x-fragment": {
- compressible: true
- },
- "x-shader/x-vertex": {
- compressible: true
- }
- };
- }
- });
- // node_modules/mime-db/index.js
- var require_mime_db = __commonJS({
- "node_modules/mime-db/index.js"(exports2, module2) {
- module2.exports = require_db();
- }
- });
- // node_modules/mime-types/mimeScore.js
- var require_mimeScore = __commonJS({
- "node_modules/mime-types/mimeScore.js"(exports2, module2) {
- var FACET_SCORES = {
- "prs.": 100,
- "x-": 200,
- "x.": 300,
- "vnd.": 400,
- default: 900
- };
- var SOURCE_SCORES = {
- nginx: 10,
- apache: 20,
- iana: 40,
- default: 30
- // definitions added by `jshttp/mime-db` project?
- };
- var TYPE_SCORES = {
- // prefer application/xml over text/xml
- // prefer application/rtf over text/rtf
- application: 1,
- // prefer font/woff over application/font-woff
- font: 2,
- // prefer video/mp4 over audio/mp4 over application/mp4
- // See https://www.rfc-editor.org/rfc/rfc4337.html#section-2
- audio: 2,
- video: 3,
- default: 0
- };
- module2.exports = function mimeScore(mimeType, source = "default") {
- if (mimeType === "application/octet-stream") {
- return 0;
- }
- const [type, subtype] = mimeType.split("/");
- const facet = subtype.replace(/(\.|x-).*/, "$1");
- const facetScore = FACET_SCORES[facet] || FACET_SCORES.default;
- const sourceScore = SOURCE_SCORES[source] || SOURCE_SCORES.default;
- const typeScore = TYPE_SCORES[type] || TYPE_SCORES.default;
- const lengthScore = 1 - mimeType.length / 100;
- return facetScore + sourceScore + typeScore + lengthScore;
- };
- }
- });
- // node_modules/mime-types/index.js
- var require_mime_types = __commonJS({
- "node_modules/mime-types/index.js"(exports2) {
- "use strict";
- var db = require_mime_db();
- var extname = require("path").extname;
- var mimeScore = require_mimeScore();
- var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
- var TEXT_TYPE_REGEXP = /^text\//i;
- exports2.charset = charset;
- exports2.charsets = { lookup: charset };
- exports2.contentType = contentType;
- exports2.extension = extension2;
- exports2.extensions = /* @__PURE__ */ Object.create(null);
- exports2.lookup = lookup;
- exports2.types = /* @__PURE__ */ Object.create(null);
- exports2._extensionConflicts = [];
- populateMaps(exports2.extensions, exports2.types);
- function charset(type) {
- if (!type || typeof type !== "string") {
- return false;
- }
- var match = EXTRACT_TYPE_REGEXP.exec(type);
- var mime = match && db[match[1].toLowerCase()];
- if (mime && mime.charset) {
- return mime.charset;
- }
- if (match && TEXT_TYPE_REGEXP.test(match[1])) {
- return "UTF-8";
- }
- return false;
- }
- function contentType(str) {
- if (!str || typeof str !== "string") {
- return false;
- }
- var mime = str.indexOf("/") === -1 ? exports2.lookup(str) : str;
- if (!mime) {
- return false;
- }
- if (mime.indexOf("charset") === -1) {
- var charset2 = exports2.charset(mime);
- if (charset2) mime += "; charset=" + charset2.toLowerCase();
- }
- return mime;
- }
- function extension2(type) {
- if (!type || typeof type !== "string") {
- return false;
- }
- var match = EXTRACT_TYPE_REGEXP.exec(type);
- var exts = match && exports2.extensions[match[1].toLowerCase()];
- if (!exts || !exts.length) {
- return false;
- }
- return exts[0];
- }
- function lookup(path2) {
- if (!path2 || typeof path2 !== "string") {
- return false;
- }
- var extension3 = extname("x." + path2).toLowerCase().slice(1);
- if (!extension3) {
- return false;
- }
- return exports2.types[extension3] || false;
- }
- function populateMaps(extensions, types) {
- Object.keys(db).forEach(function forEachMimeType(type) {
- var mime = db[type];
- var exts = mime.extensions;
- if (!exts || !exts.length) {
- return;
- }
- extensions[type] = exts;
- for (var i = 0; i < exts.length; i++) {
- var extension3 = exts[i];
- types[extension3] = _preferredType(extension3, types[extension3], type);
- const legacyType = _preferredTypeLegacy(
- extension3,
- types[extension3],
- type
- );
- if (legacyType !== types[extension3]) {
- exports2._extensionConflicts.push([extension3, legacyType, types[extension3]]);
- }
- }
- });
- }
- function _preferredType(ext, type0, type1) {
- var score0 = type0 ? mimeScore(type0, db[type0].source) : 0;
- var score1 = type1 ? mimeScore(type1, db[type1].source) : 0;
- return score0 > score1 ? type0 : type1;
- }
- function _preferredTypeLegacy(ext, type0, type1) {
- var SOURCE_RANK = ["nginx", "apache", void 0, "iana"];
- var score0 = type0 ? SOURCE_RANK.indexOf(db[type0].source) : 0;
- var score1 = type1 ? SOURCE_RANK.indexOf(db[type1].source) : 0;
- if (exports2.types[extension2] !== "application/octet-stream" && (score0 > score1 || score0 === score1 && exports2.types[extension2]?.slice(0, 12) === "application/")) {
- return type0;
- }
- return score0 > score1 ? type0 : type1;
- }
- }
- });
- // node_modules/media-typer/index.js
- var require_media_typer = __commonJS({
- "node_modules/media-typer/index.js"(exports2) {
- "use strict";
- var SUBTYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/;
- var TYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/;
- var TYPE_REGEXP = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;
- exports2.format = format;
- exports2.parse = parse;
- exports2.test = test;
- function format(obj) {
- if (!obj || typeof obj !== "object") {
- throw new TypeError("argument obj is required");
- }
- var subtype = obj.subtype;
- var suffix = obj.suffix;
- var type = obj.type;
- if (!type || !TYPE_NAME_REGEXP.test(type)) {
- throw new TypeError("invalid type");
- }
- if (!subtype || !SUBTYPE_NAME_REGEXP.test(subtype)) {
- throw new TypeError("invalid subtype");
- }
- var string = type + "/" + subtype;
- if (suffix) {
- if (!TYPE_NAME_REGEXP.test(suffix)) {
- throw new TypeError("invalid suffix");
- }
- string += "+" + suffix;
- }
- return string;
- }
- function test(string) {
- if (!string) {
- throw new TypeError("argument string is required");
- }
- if (typeof string !== "string") {
- throw new TypeError("argument string is required to be a string");
- }
- return TYPE_REGEXP.test(string.toLowerCase());
- }
- function parse(string) {
- if (!string) {
- throw new TypeError("argument string is required");
- }
- if (typeof string !== "string") {
- throw new TypeError("argument string is required to be a string");
- }
- var match = TYPE_REGEXP.exec(string.toLowerCase());
- if (!match) {
- throw new TypeError("invalid media type");
- }
- var type = match[1];
- var subtype = match[2];
- var suffix;
- var index = subtype.lastIndexOf("+");
- if (index !== -1) {
- suffix = subtype.substr(index + 1);
- subtype = subtype.substr(0, index);
- }
- return new MediaType(type, subtype, suffix);
- }
- function MediaType(type, subtype, suffix) {
- this.type = type;
- this.subtype = subtype;
- this.suffix = suffix;
- }
- }
- });
- // node_modules/type-is/index.js
- var require_type_is = __commonJS({
- "node_modules/type-is/index.js"(exports2, module2) {
- "use strict";
- var contentType = require_content_type();
- var mime = require_mime_types();
- var typer = require_media_typer();
- module2.exports = typeofrequest;
- module2.exports.is = typeis;
- module2.exports.hasBody = hasbody;
- module2.exports.normalize = normalize;
- module2.exports.match = mimeMatch;
- function typeis(value, types_) {
- var i;
- var types = types_;
- var val = tryNormalizeType(value);
- if (!val) {
- return false;
- }
- if (types && !Array.isArray(types)) {
- types = new Array(arguments.length - 1);
- for (i = 0; i < types.length; i++) {
- types[i] = arguments[i + 1];
- }
- }
- if (!types || !types.length) {
- return val;
- }
- var type;
- for (i = 0; i < types.length; i++) {
- if (mimeMatch(normalize(type = types[i]), val)) {
- return type[0] === "+" || type.indexOf("*") !== -1 ? val : type;
- }
- }
- return false;
- }
- function hasbody(req) {
- return req.headers["transfer-encoding"] !== void 0 || !isNaN(req.headers["content-length"]);
- }
- function typeofrequest(req, types_) {
- if (!hasbody(req)) return null;
- var types = arguments.length > 2 ? Array.prototype.slice.call(arguments, 1) : types_;
- var value = req.headers["content-type"];
- return typeis(value, types);
- }
- function normalize(type) {
- if (typeof type !== "string") {
- return false;
- }
- switch (type) {
- case "urlencoded":
- return "application/x-www-form-urlencoded";
- case "multipart":
- return "multipart/*";
- }
- if (type[0] === "+") {
- return "*/*" + type;
- }
- return type.indexOf("/") === -1 ? mime.lookup(type) : type;
- }
- function mimeMatch(expected, actual) {
- if (expected === false) {
- return false;
- }
- var actualParts = actual.split("/");
- var expectedParts = expected.split("/");
- if (actualParts.length !== 2 || expectedParts.length !== 2) {
- return false;
- }
- if (expectedParts[0] !== "*" && expectedParts[0] !== actualParts[0]) {
- return false;
- }
- if (expectedParts[1].slice(0, 2) === "*+") {
- return expectedParts[1].length <= actualParts[1].length + 1 && expectedParts[1].slice(1) === actualParts[1].slice(1 - expectedParts[1].length);
- }
- if (expectedParts[1] !== "*" && expectedParts[1] !== actualParts[1]) {
- return false;
- }
- return true;
- }
- function normalizeType(value) {
- var type = contentType.parse(value).type;
- return typer.test(type) ? type : null;
- }
- function tryNormalizeType(value) {
- try {
- return value ? normalizeType(value) : null;
- } catch (err) {
- return null;
- }
- }
- }
- });
- // node_modules/body-parser/lib/utils.js
- var require_utils = __commonJS({
- "node_modules/body-parser/lib/utils.js"(exports2, module2) {
- "use strict";
- var bytes = require_bytes();
- var contentType = require_content_type();
- var typeis = require_type_is();
- module2.exports = {
- getCharset,
- normalizeOptions,
- passthrough
- };
- function getCharset(req) {
- try {
- return (contentType.parse(req).parameters.charset || "").toLowerCase();
- } catch {
- return void 0;
- }
- }
- function typeChecker(type) {
- return function checkType(req) {
- return Boolean(typeis(req, type));
- };
- }
- function normalizeOptions(options, defaultType) {
- if (!defaultType) {
- throw new TypeError("defaultType must be provided");
- }
- var inflate = options?.inflate !== false;
- var limit = typeof options?.limit !== "number" ? bytes.parse(options?.limit || "100kb") : options?.limit;
- var type = options?.type || defaultType;
- var verify = options?.verify || false;
- var defaultCharset = options?.defaultCharset || "utf-8";
- if (verify !== false && typeof verify !== "function") {
- throw new TypeError("option verify must be function");
- }
- var shouldParse = typeof type !== "function" ? typeChecker(type) : type;
- return {
- inflate,
- limit,
- verify,
- defaultCharset,
- shouldParse
- };
- }
- function passthrough(value) {
- return value;
- }
- }
- });
- // node_modules/body-parser/lib/read.js
- var require_read = __commonJS({
- "node_modules/body-parser/lib/read.js"(exports2, module2) {
- "use strict";
- var createError = require_http_errors();
- var getBody = require_raw_body();
- var iconv = require_lib();
- var onFinished = require_on_finished();
- var zlib = require("node:zlib");
- var hasBody = require_type_is().hasBody;
- var { getCharset } = require_utils();
- module2.exports = read;
- function read(req, res, next, parse, debug, options) {
- if (onFinished.isFinished(req)) {
- debug("body already parsed");
- next();
- return;
- }
- if (!("body" in req)) {
- req.body = void 0;
- }
- if (!hasBody(req)) {
- debug("skip empty body");
- next();
- return;
- }
- debug("content-type %j", req.headers["content-type"]);
- if (!options.shouldParse(req)) {
- debug("skip parsing");
- next();
- return;
- }
- var encoding = null;
- if (options?.skipCharset !== true) {
- encoding = getCharset(req) || options.defaultCharset;
- if (!!options?.isValidCharset && !options.isValidCharset(encoding)) {
- debug("invalid charset");
- next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', {
- charset: encoding,
- type: "charset.unsupported"
- }));
- return;
- }
- }
- var length;
- var opts = options;
- var stream;
- var verify = opts.verify;
- try {
- stream = contentstream(req, debug, opts.inflate);
- length = stream.length;
- stream.length = void 0;
- } catch (err) {
- return next(err);
- }
- opts.length = length;
- opts.encoding = verify ? null : encoding;
- if (opts.encoding === null && encoding !== null && !iconv.encodingExists(encoding)) {
- return next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', {
- charset: encoding.toLowerCase(),
- type: "charset.unsupported"
- }));
- }
- debug("read body");
- getBody(stream, opts, function(error, body) {
- if (error) {
- var _error;
- if (error.type === "encoding.unsupported") {
- _error = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', {
- charset: encoding.toLowerCase(),
- type: "charset.unsupported"
- });
- } else {
- _error = createError(400, error);
- }
- if (stream !== req) {
- req.unpipe();
- stream.destroy();
- }
- dump(req, function onfinished() {
- next(createError(400, _error));
- });
- return;
- }
- if (verify) {
- try {
- debug("verify body");
- verify(req, res, body, encoding);
- } catch (err) {
- next(createError(403, err, {
- body,
- type: err.type || "entity.verify.failed"
- }));
- return;
- }
- }
- var str = body;
- try {
- debug("parse body");
- str = typeof body !== "string" && encoding !== null ? iconv.decode(body, encoding) : body;
- req.body = parse(str, encoding);
- } catch (err) {
- next(createError(400, err, {
- body: str,
- type: err.type || "entity.parse.failed"
- }));
- return;
- }
- next();
- });
- }
- function contentstream(req, debug, inflate) {
- var encoding = (req.headers["content-encoding"] || "identity").toLowerCase();
- var length = req.headers["content-length"];
- debug('content-encoding "%s"', encoding);
- if (inflate === false && encoding !== "identity") {
- throw createError(415, "content encoding unsupported", {
- encoding,
- type: "encoding.unsupported"
- });
- }
- if (encoding === "identity") {
- req.length = length;
- return req;
- }
- var stream = createDecompressionStream(encoding, debug);
- req.pipe(stream);
- return stream;
- }
- function createDecompressionStream(encoding, debug) {
- switch (encoding) {
- case "deflate":
- debug("inflate body");
- return zlib.createInflate();
- case "gzip":
- debug("gunzip body");
- return zlib.createGunzip();
- case "br":
- debug("brotli decompress body");
- return zlib.createBrotliDecompress();
- default:
- throw createError(415, 'unsupported content encoding "' + encoding + '"', {
- encoding,
- type: "encoding.unsupported"
- });
- }
- }
- function dump(req, callback) {
- if (onFinished.isFinished(req)) {
- callback(null);
- } else {
- onFinished(req, callback);
- req.resume();
- }
- }
- }
- });
- // node_modules/body-parser/lib/types/json.js
- var require_json = __commonJS({
- "node_modules/body-parser/lib/types/json.js"(exports2, module2) {
- "use strict";
- var debug = require_src()("body-parser:json");
- var read = require_read();
- var { normalizeOptions } = require_utils();
- module2.exports = json;
- var FIRST_CHAR_REGEXP = /^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/;
- var JSON_SYNTAX_CHAR = "#";
- var JSON_SYNTAX_REGEXP = /#+/g;
- function json(options) {
- const normalizedOptions = normalizeOptions(options, "application/json");
- var reviver = options?.reviver;
- var strict = options?.strict !== false;
- function parse(body) {
- if (body.length === 0) {
- return {};
- }
- if (strict) {
- var first = firstchar(body);
- if (first !== "{" && first !== "[") {
- debug("strict violation");
- throw createStrictSyntaxError(body, first);
- }
- }
- try {
- debug("parse json");
- return JSON.parse(body, reviver);
- } catch (e) {
- throw normalizeJsonSyntaxError(e, {
- message: e.message,
- stack: e.stack
- });
- }
- }
- const readOptions = {
- ...normalizedOptions,
- // assert charset per RFC 7159 sec 8.1
- isValidCharset: (charset) => charset.slice(0, 4) === "utf-"
- };
- return function jsonParser(req, res, next) {
- read(req, res, next, parse, debug, readOptions);
- };
- }
- function createStrictSyntaxError(str, char) {
- var index = str.indexOf(char);
- var partial = "";
- if (index !== -1) {
- partial = str.substring(0, index) + JSON_SYNTAX_CHAR.repeat(str.length - index);
- }
- try {
- JSON.parse(partial);
- throw new SyntaxError("strict violation");
- } catch (e) {
- return normalizeJsonSyntaxError(e, {
- message: e.message.replace(JSON_SYNTAX_REGEXP, function(placeholder) {
- return str.substring(index, index + placeholder.length);
- }),
- stack: e.stack
- });
- }
- }
- function firstchar(str) {
- var match = FIRST_CHAR_REGEXP.exec(str);
- return match ? match[1] : void 0;
- }
- function normalizeJsonSyntaxError(error, obj) {
- var keys = Object.getOwnPropertyNames(error);
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i];
- if (key !== "stack" && key !== "message") {
- delete error[key];
- }
- }
- error.stack = obj.stack.replace(error.message, obj.message);
- error.message = obj.message;
- return error;
- }
- }
- });
- // node_modules/body-parser/lib/types/raw.js
- var require_raw = __commonJS({
- "node_modules/body-parser/lib/types/raw.js"(exports2, module2) {
- "use strict";
- var debug = require_src()("body-parser:raw");
- var read = require_read();
- var { normalizeOptions, passthrough } = require_utils();
- module2.exports = raw;
- function raw(options) {
- const normalizedOptions = normalizeOptions(options, "application/octet-stream");
- const readOptions = {
- ...normalizedOptions,
- // Skip charset validation and parse the body as is
- skipCharset: true
- };
- return function rawParser(req, res, next) {
- read(req, res, next, passthrough, debug, readOptions);
- };
- }
- }
- });
- // node_modules/body-parser/lib/types/text.js
- var require_text = __commonJS({
- "node_modules/body-parser/lib/types/text.js"(exports2, module2) {
- "use strict";
- var debug = require_src()("body-parser:text");
- var read = require_read();
- var { normalizeOptions, passthrough } = require_utils();
- module2.exports = text;
- function text(options) {
- const normalizedOptions = normalizeOptions(options, "text/plain");
- return function textParser(req, res, next) {
- read(req, res, next, passthrough, debug, normalizedOptions);
- };
- }
- }
- });
- // node_modules/es-errors/type.js
- var require_type = __commonJS({
- "node_modules/es-errors/type.js"(exports2, module2) {
- "use strict";
- module2.exports = TypeError;
- }
- });
- // node_modules/object-inspect/util.inspect.js
- var require_util_inspect = __commonJS({
- "node_modules/object-inspect/util.inspect.js"(exports2, module2) {
- module2.exports = require("util").inspect;
- }
- });
- // node_modules/object-inspect/index.js
- var require_object_inspect = __commonJS({
- "node_modules/object-inspect/index.js"(exports2, module2) {
- var hasMap = typeof Map === "function" && Map.prototype;
- var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, "size") : null;
- var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === "function" ? mapSizeDescriptor.get : null;
- var mapForEach = hasMap && Map.prototype.forEach;
- var hasSet = typeof Set === "function" && Set.prototype;
- var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, "size") : null;
- var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === "function" ? setSizeDescriptor.get : null;
- var setForEach = hasSet && Set.prototype.forEach;
- var hasWeakMap = typeof WeakMap === "function" && WeakMap.prototype;
- var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;
- var hasWeakSet = typeof WeakSet === "function" && WeakSet.prototype;
- var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;
- var hasWeakRef = typeof WeakRef === "function" && WeakRef.prototype;
- var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;
- var booleanValueOf = Boolean.prototype.valueOf;
- var objectToString = Object.prototype.toString;
- var functionToString = Function.prototype.toString;
- var $match = String.prototype.match;
- var $slice = String.prototype.slice;
- var $replace = String.prototype.replace;
- var $toUpperCase = String.prototype.toUpperCase;
- var $toLowerCase = String.prototype.toLowerCase;
- var $test = RegExp.prototype.test;
- var $concat = Array.prototype.concat;
- var $join = Array.prototype.join;
- var $arrSlice = Array.prototype.slice;
- var $floor = Math.floor;
- var bigIntValueOf = typeof BigInt === "function" ? BigInt.prototype.valueOf : null;
- var gOPS = Object.getOwnPropertySymbols;
- var symToString = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? Symbol.prototype.toString : null;
- var hasShammedSymbols = typeof Symbol === "function" && typeof Symbol.iterator === "object";
- var toStringTag = typeof Symbol === "function" && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? "object" : "symbol") ? Symbol.toStringTag : null;
- var isEnumerable = Object.prototype.propertyIsEnumerable;
- var gPO = (typeof Reflect === "function" ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ([].__proto__ === Array.prototype ? function(O) {
- return O.__proto__;
- } : null);
- function addNumericSeparator(num, str) {
- if (num === Infinity || num === -Infinity || num !== num || num && num > -1e3 && num < 1e3 || $test.call(/e/, str)) {
- return str;
- }
- var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;
- if (typeof num === "number") {
- var int = num < 0 ? -$floor(-num) : $floor(num);
- if (int !== num) {
- var intStr = String(int);
- var dec = $slice.call(str, intStr.length + 1);
- return $replace.call(intStr, sepRegex, "$&_") + "." + $replace.call($replace.call(dec, /([0-9]{3})/g, "$&_"), /_$/, "");
- }
- }
- return $replace.call(str, sepRegex, "$&_");
- }
- var utilInspect = require_util_inspect();
- var inspectCustom = utilInspect.custom;
- var inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;
- var quotes = {
- __proto__: null,
- "double": '"',
- single: "'"
- };
- var quoteREs = {
- __proto__: null,
- "double": /(["\\])/g,
- single: /(['\\])/g
- };
- module2.exports = function inspect_(obj, options, depth, seen) {
- var opts = options || {};
- if (has(opts, "quoteStyle") && !has(quotes, opts.quoteStyle)) {
- throw new TypeError('option "quoteStyle" must be "single" or "double"');
- }
- if (has(opts, "maxStringLength") && (typeof opts.maxStringLength === "number" ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity : opts.maxStringLength !== null)) {
- throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');
- }
- var customInspect = has(opts, "customInspect") ? opts.customInspect : true;
- if (typeof customInspect !== "boolean" && customInspect !== "symbol") {
- throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");
- }
- if (has(opts, "indent") && opts.indent !== null && opts.indent !== " " && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)) {
- throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');
- }
- if (has(opts, "numericSeparator") && typeof opts.numericSeparator !== "boolean") {
- throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');
- }
- var numericSeparator = opts.numericSeparator;
- if (typeof obj === "undefined") {
- return "undefined";
- }
- if (obj === null) {
- return "null";
- }
- if (typeof obj === "boolean") {
- return obj ? "true" : "false";
- }
- if (typeof obj === "string") {
- return inspectString(obj, opts);
- }
- if (typeof obj === "number") {
- if (obj === 0) {
- return Infinity / obj > 0 ? "0" : "-0";
- }
- var str = String(obj);
- return numericSeparator ? addNumericSeparator(obj, str) : str;
- }
- if (typeof obj === "bigint") {
- var bigIntStr = String(obj) + "n";
- return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;
- }
- var maxDepth = typeof opts.depth === "undefined" ? 5 : opts.depth;
- if (typeof depth === "undefined") {
- depth = 0;
- }
- if (depth >= maxDepth && maxDepth > 0 && typeof obj === "object") {
- return isArray(obj) ? "[Array]" : "[Object]";
- }
- var indent = getIndent(opts, depth);
- if (typeof seen === "undefined") {
- seen = [];
- } else if (indexOf(seen, obj) >= 0) {
- return "[Circular]";
- }
- function inspect(value, from, noIndent) {
- if (from) {
- seen = $arrSlice.call(seen);
- seen.push(from);
- }
- if (noIndent) {
- var newOpts = {
- depth: opts.depth
- };
- if (has(opts, "quoteStyle")) {
- newOpts.quoteStyle = opts.quoteStyle;
- }
- return inspect_(value, newOpts, depth + 1, seen);
- }
- return inspect_(value, opts, depth + 1, seen);
- }
- if (typeof obj === "function" && !isRegExp(obj)) {
- var name = nameOf(obj);
- var keys = arrObjKeys(obj, inspect);
- return "[Function" + (name ? ": " + name : " (anonymous)") + "]" + (keys.length > 0 ? " { " + $join.call(keys, ", ") + " }" : "");
- }
- if (isSymbol(obj)) {
- var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, "$1") : symToString.call(obj);
- return typeof obj === "object" && !hasShammedSymbols ? markBoxed(symString) : symString;
- }
- if (isElement(obj)) {
- var s = "<" + $toLowerCase.call(String(obj.nodeName));
- var attrs = obj.attributes || [];
- for (var i = 0; i < attrs.length; i++) {
- s += " " + attrs[i].name + "=" + wrapQuotes(quote(attrs[i].value), "double", opts);
- }
- s += ">";
- if (obj.childNodes && obj.childNodes.length) {
- s += "...";
- }
- s += "</" + $toLowerCase.call(String(obj.nodeName)) + ">";
- return s;
- }
- if (isArray(obj)) {
- if (obj.length === 0) {
- return "[]";
- }
- var xs = arrObjKeys(obj, inspect);
- if (indent && !singleLineValues(xs)) {
- return "[" + indentedJoin(xs, indent) + "]";
- }
- return "[ " + $join.call(xs, ", ") + " ]";
- }
- if (isError(obj)) {
- var parts = arrObjKeys(obj, inspect);
- if (!("cause" in Error.prototype) && "cause" in obj && !isEnumerable.call(obj, "cause")) {
- return "{ [" + String(obj) + "] " + $join.call($concat.call("[cause]: " + inspect(obj.cause), parts), ", ") + " }";
- }
- if (parts.length === 0) {
- return "[" + String(obj) + "]";
- }
- return "{ [" + String(obj) + "] " + $join.call(parts, ", ") + " }";
- }
- if (typeof obj === "object" && customInspect) {
- if (inspectSymbol && typeof obj[inspectSymbol] === "function" && utilInspect) {
- return utilInspect(obj, { depth: maxDepth - depth });
- } else if (customInspect !== "symbol" && typeof obj.inspect === "function") {
- return obj.inspect();
- }
- }
- if (isMap(obj)) {
- var mapParts = [];
- if (mapForEach) {
- mapForEach.call(obj, function(value, key) {
- mapParts.push(inspect(key, obj, true) + " => " + inspect(value, obj));
- });
- }
- return collectionOf("Map", mapSize.call(obj), mapParts, indent);
- }
- if (isSet(obj)) {
- var setParts = [];
- if (setForEach) {
- setForEach.call(obj, function(value) {
- setParts.push(inspect(value, obj));
- });
- }
- return collectionOf("Set", setSize.call(obj), setParts, indent);
- }
- if (isWeakMap(obj)) {
- return weakCollectionOf("WeakMap");
- }
- if (isWeakSet(obj)) {
- return weakCollectionOf("WeakSet");
- }
- if (isWeakRef(obj)) {
- return weakCollectionOf("WeakRef");
- }
- if (isNumber(obj)) {
- return markBoxed(inspect(Number(obj)));
- }
- if (isBigInt(obj)) {
- return markBoxed(inspect(bigIntValueOf.call(obj)));
- }
- if (isBoolean(obj)) {
- return markBoxed(booleanValueOf.call(obj));
- }
- if (isString(obj)) {
- return markBoxed(inspect(String(obj)));
- }
- if (typeof window !== "undefined" && obj === window) {
- return "{ [object Window] }";
- }
- if (typeof globalThis !== "undefined" && obj === globalThis || typeof global !== "undefined" && obj === global) {
- return "{ [object globalThis] }";
- }
- if (!isDate(obj) && !isRegExp(obj)) {
- var ys = arrObjKeys(obj, inspect);
- var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;
- var protoTag = obj instanceof Object ? "" : "null prototype";
- var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? "Object" : "";
- var constructorTag = isPlainObject || typeof obj.constructor !== "function" ? "" : obj.constructor.name ? obj.constructor.name + " " : "";
- var tag = constructorTag + (stringTag || protoTag ? "[" + $join.call($concat.call([], stringTag || [], protoTag || []), ": ") + "] " : "");
- if (ys.length === 0) {
- return tag + "{}";
- }
- if (indent) {
- return tag + "{" + indentedJoin(ys, indent) + "}";
- }
- return tag + "{ " + $join.call(ys, ", ") + " }";
- }
- return String(obj);
- };
- function wrapQuotes(s, defaultStyle, opts) {
- var style = opts.quoteStyle || defaultStyle;
- var quoteChar = quotes[style];
- return quoteChar + s + quoteChar;
- }
- function quote(s) {
- return $replace.call(String(s), /"/g, """);
- }
- function canTrustToString(obj) {
- return !toStringTag || !(typeof obj === "object" && (toStringTag in obj || typeof obj[toStringTag] !== "undefined"));
- }
- function isArray(obj) {
- return toStr(obj) === "[object Array]" && canTrustToString(obj);
- }
- function isDate(obj) {
- return toStr(obj) === "[object Date]" && canTrustToString(obj);
- }
- function isRegExp(obj) {
- return toStr(obj) === "[object RegExp]" && canTrustToString(obj);
- }
- function isError(obj) {
- return toStr(obj) === "[object Error]" && canTrustToString(obj);
- }
- function isString(obj) {
- return toStr(obj) === "[object String]" && canTrustToString(obj);
- }
- function isNumber(obj) {
- return toStr(obj) === "[object Number]" && canTrustToString(obj);
- }
- function isBoolean(obj) {
- return toStr(obj) === "[object Boolean]" && canTrustToString(obj);
- }
- function isSymbol(obj) {
- if (hasShammedSymbols) {
- return obj && typeof obj === "object" && obj instanceof Symbol;
- }
- if (typeof obj === "symbol") {
- return true;
- }
- if (!obj || typeof obj !== "object" || !symToString) {
- return false;
- }
- try {
- symToString.call(obj);
- return true;
- } catch (e) {
- }
- return false;
- }
- function isBigInt(obj) {
- if (!obj || typeof obj !== "object" || !bigIntValueOf) {
- return false;
- }
- try {
- bigIntValueOf.call(obj);
- return true;
- } catch (e) {
- }
- return false;
- }
- var hasOwn = Object.prototype.hasOwnProperty || function(key) {
- return key in this;
- };
- function has(obj, key) {
- return hasOwn.call(obj, key);
- }
- function toStr(obj) {
- return objectToString.call(obj);
- }
- function nameOf(f) {
- if (f.name) {
- return f.name;
- }
- var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/);
- if (m) {
- return m[1];
- }
- return null;
- }
- function indexOf(xs, x) {
- if (xs.indexOf) {
- return xs.indexOf(x);
- }
- for (var i = 0, l = xs.length; i < l; i++) {
- if (xs[i] === x) {
- return i;
- }
- }
- return -1;
- }
- function isMap(x) {
- if (!mapSize || !x || typeof x !== "object") {
- return false;
- }
- try {
- mapSize.call(x);
- try {
- setSize.call(x);
- } catch (s) {
- return true;
- }
- return x instanceof Map;
- } catch (e) {
- }
- return false;
- }
- function isWeakMap(x) {
- if (!weakMapHas || !x || typeof x !== "object") {
- return false;
- }
- try {
- weakMapHas.call(x, weakMapHas);
- try {
- weakSetHas.call(x, weakSetHas);
- } catch (s) {
- return true;
- }
- return x instanceof WeakMap;
- } catch (e) {
- }
- return false;
- }
- function isWeakRef(x) {
- if (!weakRefDeref || !x || typeof x !== "object") {
- return false;
- }
- try {
- weakRefDeref.call(x);
- return true;
- } catch (e) {
- }
- return false;
- }
- function isSet(x) {
- if (!setSize || !x || typeof x !== "object") {
- return false;
- }
- try {
- setSize.call(x);
- try {
- mapSize.call(x);
- } catch (m) {
- return true;
- }
- return x instanceof Set;
- } catch (e) {
- }
- return false;
- }
- function isWeakSet(x) {
- if (!weakSetHas || !x || typeof x !== "object") {
- return false;
- }
- try {
- weakSetHas.call(x, weakSetHas);
- try {
- weakMapHas.call(x, weakMapHas);
- } catch (s) {
- return true;
- }
- return x instanceof WeakSet;
- } catch (e) {
- }
- return false;
- }
- function isElement(x) {
- if (!x || typeof x !== "object") {
- return false;
- }
- if (typeof HTMLElement !== "undefined" && x instanceof HTMLElement) {
- return true;
- }
- return typeof x.nodeName === "string" && typeof x.getAttribute === "function";
- }
- function inspectString(str, opts) {
- if (str.length > opts.maxStringLength) {
- var remaining = str.length - opts.maxStringLength;
- var trailer = "... " + remaining + " more character" + (remaining > 1 ? "s" : "");
- return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;
- }
- var quoteRE = quoteREs[opts.quoteStyle || "single"];
- quoteRE.lastIndex = 0;
- var s = $replace.call($replace.call(str, quoteRE, "\\$1"), /[\x00-\x1f]/g, lowbyte);
- return wrapQuotes(s, "single", opts);
- }
- function lowbyte(c) {
- var n = c.charCodeAt(0);
- var x = {
- 8: "b",
- 9: "t",
- 10: "n",
- 12: "f",
- 13: "r"
- }[n];
- if (x) {
- return "\\" + x;
- }
- return "\\x" + (n < 16 ? "0" : "") + $toUpperCase.call(n.toString(16));
- }
- function markBoxed(str) {
- return "Object(" + str + ")";
- }
- function weakCollectionOf(type) {
- return type + " { ? }";
- }
- function collectionOf(type, size, entries, indent) {
- var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ", ");
- return type + " (" + size + ") {" + joinedEntries + "}";
- }
- function singleLineValues(xs) {
- for (var i = 0; i < xs.length; i++) {
- if (indexOf(xs[i], "\n") >= 0) {
- return false;
- }
- }
- return true;
- }
- function getIndent(opts, depth) {
- var baseIndent;
- if (opts.indent === " ") {
- baseIndent = " ";
- } else if (typeof opts.indent === "number" && opts.indent > 0) {
- baseIndent = $join.call(Array(opts.indent + 1), " ");
- } else {
- return null;
- }
- return {
- base: baseIndent,
- prev: $join.call(Array(depth + 1), baseIndent)
- };
- }
- function indentedJoin(xs, indent) {
- if (xs.length === 0) {
- return "";
- }
- var lineJoiner = "\n" + indent.prev + indent.base;
- return lineJoiner + $join.call(xs, "," + lineJoiner) + "\n" + indent.prev;
- }
- function arrObjKeys(obj, inspect) {
- var isArr = isArray(obj);
- var xs = [];
- if (isArr) {
- xs.length = obj.length;
- for (var i = 0; i < obj.length; i++) {
- xs[i] = has(obj, i) ? inspect(obj[i], obj) : "";
- }
- }
- var syms = typeof gOPS === "function" ? gOPS(obj) : [];
- var symMap;
- if (hasShammedSymbols) {
- symMap = {};
- for (var k = 0; k < syms.length; k++) {
- symMap["$" + syms[k]] = syms[k];
- }
- }
- for (var key in obj) {
- if (!has(obj, key)) {
- continue;
- }
- if (isArr && String(Number(key)) === key && key < obj.length) {
- continue;
- }
- if (hasShammedSymbols && symMap["$" + key] instanceof Symbol) {
- continue;
- } else if ($test.call(/[^\w$]/, key)) {
- xs.push(inspect(key, obj) + ": " + inspect(obj[key], obj));
- } else {
- xs.push(key + ": " + inspect(obj[key], obj));
- }
- }
- if (typeof gOPS === "function") {
- for (var j = 0; j < syms.length; j++) {
- if (isEnumerable.call(obj, syms[j])) {
- xs.push("[" + inspect(syms[j]) + "]: " + inspect(obj[syms[j]], obj));
- }
- }
- }
- return xs;
- }
- }
- });
- // node_modules/side-channel-list/index.js
- var require_side_channel_list = __commonJS({
- "node_modules/side-channel-list/index.js"(exports2, module2) {
- "use strict";
- var inspect = require_object_inspect();
- var $TypeError = require_type();
- var listGetNode = function(list, key, isDelete) {
- var prev = list;
- var curr;
- for (; (curr = prev.next) != null; prev = curr) {
- if (curr.key === key) {
- prev.next = curr.next;
- if (!isDelete) {
- curr.next = /** @type {NonNullable<typeof list.next>} */
- list.next;
- list.next = curr;
- }
- return curr;
- }
- }
- };
- var listGet = function(objects, key) {
- if (!objects) {
- return void 0;
- }
- var node = listGetNode(objects, key);
- return node && node.value;
- };
- var listSet = function(objects, key, value) {
- var node = listGetNode(objects, key);
- if (node) {
- node.value = value;
- } else {
- objects.next = /** @type {import('./list.d.ts').ListNode<typeof value, typeof key>} */
- {
- // eslint-disable-line no-param-reassign, no-extra-parens
- key,
- next: objects.next,
- value
- };
- }
- };
- var listHas = function(objects, key) {
- if (!objects) {
- return false;
- }
- return !!listGetNode(objects, key);
- };
- var listDelete = function(objects, key) {
- if (objects) {
- return listGetNode(objects, key, true);
- }
- };
- module2.exports = function getSideChannelList() {
- var $o;
- var channel = {
- assert: function(key) {
- if (!channel.has(key)) {
- throw new $TypeError("Side channel does not contain " + inspect(key));
- }
- },
- "delete": function(key) {
- var deletedNode = listDelete($o, key);
- if (deletedNode && $o && !$o.next) {
- $o = void 0;
- }
- return !!deletedNode;
- },
- get: function(key) {
- return listGet($o, key);
- },
- has: function(key) {
- return listHas($o, key);
- },
- set: function(key, value) {
- if (!$o) {
- $o = {
- next: void 0
- };
- }
- listSet(
- /** @type {NonNullable<typeof $o>} */
- $o,
- key,
- value
- );
- }
- };
- return channel;
- };
- }
- });
- // node_modules/es-object-atoms/index.js
- var require_es_object_atoms = __commonJS({
- "node_modules/es-object-atoms/index.js"(exports2, module2) {
- "use strict";
- module2.exports = Object;
- }
- });
- // node_modules/es-errors/index.js
- var require_es_errors = __commonJS({
- "node_modules/es-errors/index.js"(exports2, module2) {
- "use strict";
- module2.exports = Error;
- }
- });
- // node_modules/es-errors/eval.js
- var require_eval = __commonJS({
- "node_modules/es-errors/eval.js"(exports2, module2) {
- "use strict";
- module2.exports = EvalError;
- }
- });
- // node_modules/es-errors/range.js
- var require_range = __commonJS({
- "node_modules/es-errors/range.js"(exports2, module2) {
- "use strict";
- module2.exports = RangeError;
- }
- });
- // node_modules/es-errors/ref.js
- var require_ref = __commonJS({
- "node_modules/es-errors/ref.js"(exports2, module2) {
- "use strict";
- module2.exports = ReferenceError;
- }
- });
- // node_modules/es-errors/syntax.js
- var require_syntax = __commonJS({
- "node_modules/es-errors/syntax.js"(exports2, module2) {
- "use strict";
- module2.exports = SyntaxError;
- }
- });
- // node_modules/es-errors/uri.js
- var require_uri = __commonJS({
- "node_modules/es-errors/uri.js"(exports2, module2) {
- "use strict";
- module2.exports = URIError;
- }
- });
- // node_modules/math-intrinsics/abs.js
- var require_abs = __commonJS({
- "node_modules/math-intrinsics/abs.js"(exports2, module2) {
- "use strict";
- module2.exports = Math.abs;
- }
- });
- // node_modules/math-intrinsics/floor.js
- var require_floor = __commonJS({
- "node_modules/math-intrinsics/floor.js"(exports2, module2) {
- "use strict";
- module2.exports = Math.floor;
- }
- });
- // node_modules/math-intrinsics/max.js
- var require_max = __commonJS({
- "node_modules/math-intrinsics/max.js"(exports2, module2) {
- "use strict";
- module2.exports = Math.max;
- }
- });
- // node_modules/math-intrinsics/min.js
- var require_min = __commonJS({
- "node_modules/math-intrinsics/min.js"(exports2, module2) {
- "use strict";
- module2.exports = Math.min;
- }
- });
- // node_modules/math-intrinsics/pow.js
- var require_pow = __commonJS({
- "node_modules/math-intrinsics/pow.js"(exports2, module2) {
- "use strict";
- module2.exports = Math.pow;
- }
- });
- // node_modules/math-intrinsics/round.js
- var require_round = __commonJS({
- "node_modules/math-intrinsics/round.js"(exports2, module2) {
- "use strict";
- module2.exports = Math.round;
- }
- });
- // node_modules/math-intrinsics/isNaN.js
- var require_isNaN = __commonJS({
- "node_modules/math-intrinsics/isNaN.js"(exports2, module2) {
- "use strict";
- module2.exports = Number.isNaN || function isNaN2(a) {
- return a !== a;
- };
- }
- });
- // node_modules/math-intrinsics/sign.js
- var require_sign = __commonJS({
- "node_modules/math-intrinsics/sign.js"(exports2, module2) {
- "use strict";
- var $isNaN = require_isNaN();
- module2.exports = function sign(number) {
- if ($isNaN(number) || number === 0) {
- return number;
- }
- return number < 0 ? -1 : 1;
- };
- }
- });
- // node_modules/gopd/gOPD.js
- var require_gOPD = __commonJS({
- "node_modules/gopd/gOPD.js"(exports2, module2) {
- "use strict";
- module2.exports = Object.getOwnPropertyDescriptor;
- }
- });
- // node_modules/gopd/index.js
- var require_gopd = __commonJS({
- "node_modules/gopd/index.js"(exports2, module2) {
- "use strict";
- var $gOPD = require_gOPD();
- if ($gOPD) {
- try {
- $gOPD([], "length");
- } catch (e) {
- $gOPD = null;
- }
- }
- module2.exports = $gOPD;
- }
- });
- // node_modules/es-define-property/index.js
- var require_es_define_property = __commonJS({
- "node_modules/es-define-property/index.js"(exports2, module2) {
- "use strict";
- var $defineProperty = Object.defineProperty || false;
- if ($defineProperty) {
- try {
- $defineProperty({}, "a", { value: 1 });
- } catch (e) {
- $defineProperty = false;
- }
- }
- module2.exports = $defineProperty;
- }
- });
- // node_modules/has-symbols/shams.js
- var require_shams = __commonJS({
- "node_modules/has-symbols/shams.js"(exports2, module2) {
- "use strict";
- module2.exports = function hasSymbols() {
- if (typeof Symbol !== "function" || typeof Object.getOwnPropertySymbols !== "function") {
- return false;
- }
- if (typeof Symbol.iterator === "symbol") {
- return true;
- }
- var obj = {};
- var sym = /* @__PURE__ */ Symbol("test");
- var symObj = Object(sym);
- if (typeof sym === "string") {
- return false;
- }
- if (Object.prototype.toString.call(sym) !== "[object Symbol]") {
- return false;
- }
- if (Object.prototype.toString.call(symObj) !== "[object Symbol]") {
- return false;
- }
- var symVal = 42;
- obj[sym] = symVal;
- for (var _ in obj) {
- return false;
- }
- if (typeof Object.keys === "function" && Object.keys(obj).length !== 0) {
- return false;
- }
- if (typeof Object.getOwnPropertyNames === "function" && Object.getOwnPropertyNames(obj).length !== 0) {
- return false;
- }
- var syms = Object.getOwnPropertySymbols(obj);
- if (syms.length !== 1 || syms[0] !== sym) {
- return false;
- }
- if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {
- return false;
- }
- if (typeof Object.getOwnPropertyDescriptor === "function") {
- var descriptor = (
- /** @type {PropertyDescriptor} */
- Object.getOwnPropertyDescriptor(obj, sym)
- );
- if (descriptor.value !== symVal || descriptor.enumerable !== true) {
- return false;
- }
- }
- return true;
- };
- }
- });
- // node_modules/has-symbols/index.js
- var require_has_symbols = __commonJS({
- "node_modules/has-symbols/index.js"(exports2, module2) {
- "use strict";
- var origSymbol = typeof Symbol !== "undefined" && Symbol;
- var hasSymbolSham = require_shams();
- module2.exports = function hasNativeSymbols() {
- if (typeof origSymbol !== "function") {
- return false;
- }
- if (typeof Symbol !== "function") {
- return false;
- }
- if (typeof origSymbol("foo") !== "symbol") {
- return false;
- }
- if (typeof /* @__PURE__ */ Symbol("bar") !== "symbol") {
- return false;
- }
- return hasSymbolSham();
- };
- }
- });
- // node_modules/get-proto/Reflect.getPrototypeOf.js
- var require_Reflect_getPrototypeOf = __commonJS({
- "node_modules/get-proto/Reflect.getPrototypeOf.js"(exports2, module2) {
- "use strict";
- module2.exports = typeof Reflect !== "undefined" && Reflect.getPrototypeOf || null;
- }
- });
- // node_modules/get-proto/Object.getPrototypeOf.js
- var require_Object_getPrototypeOf = __commonJS({
- "node_modules/get-proto/Object.getPrototypeOf.js"(exports2, module2) {
- "use strict";
- var $Object = require_es_object_atoms();
- module2.exports = $Object.getPrototypeOf || null;
- }
- });
- // node_modules/function-bind/implementation.js
- var require_implementation = __commonJS({
- "node_modules/function-bind/implementation.js"(exports2, module2) {
- "use strict";
- var ERROR_MESSAGE = "Function.prototype.bind called on incompatible ";
- var toStr = Object.prototype.toString;
- var max = Math.max;
- var funcType = "[object Function]";
- var concatty = function concatty2(a, b) {
- var arr = [];
- for (var i = 0; i < a.length; i += 1) {
- arr[i] = a[i];
- }
- for (var j = 0; j < b.length; j += 1) {
- arr[j + a.length] = b[j];
- }
- return arr;
- };
- var slicy = function slicy2(arrLike, offset) {
- var arr = [];
- for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {
- arr[j] = arrLike[i];
- }
- return arr;
- };
- var joiny = function(arr, joiner) {
- var str = "";
- for (var i = 0; i < arr.length; i += 1) {
- str += arr[i];
- if (i + 1 < arr.length) {
- str += joiner;
- }
- }
- return str;
- };
- module2.exports = function bind(that) {
- var target = this;
- if (typeof target !== "function" || toStr.apply(target) !== funcType) {
- throw new TypeError(ERROR_MESSAGE + target);
- }
- var args = slicy(arguments, 1);
- var bound;
- var binder = function() {
- if (this instanceof bound) {
- var result = target.apply(
- this,
- concatty(args, arguments)
- );
- if (Object(result) === result) {
- return result;
- }
- return this;
- }
- return target.apply(
- that,
- concatty(args, arguments)
- );
- };
- var boundLength = max(0, target.length - args.length);
- var boundArgs = [];
- for (var i = 0; i < boundLength; i++) {
- boundArgs[i] = "$" + i;
- }
- bound = Function("binder", "return function (" + joiny(boundArgs, ",") + "){ return binder.apply(this,arguments); }")(binder);
- if (target.prototype) {
- var Empty = function Empty2() {
- };
- Empty.prototype = target.prototype;
- bound.prototype = new Empty();
- Empty.prototype = null;
- }
- return bound;
- };
- }
- });
- // node_modules/function-bind/index.js
- var require_function_bind = __commonJS({
- "node_modules/function-bind/index.js"(exports2, module2) {
- "use strict";
- var implementation = require_implementation();
- module2.exports = Function.prototype.bind || implementation;
- }
- });
- // node_modules/call-bind-apply-helpers/functionCall.js
- var require_functionCall = __commonJS({
- "node_modules/call-bind-apply-helpers/functionCall.js"(exports2, module2) {
- "use strict";
- module2.exports = Function.prototype.call;
- }
- });
- // node_modules/call-bind-apply-helpers/functionApply.js
- var require_functionApply = __commonJS({
- "node_modules/call-bind-apply-helpers/functionApply.js"(exports2, module2) {
- "use strict";
- module2.exports = Function.prototype.apply;
- }
- });
- // node_modules/call-bind-apply-helpers/reflectApply.js
- var require_reflectApply = __commonJS({
- "node_modules/call-bind-apply-helpers/reflectApply.js"(exports2, module2) {
- "use strict";
- module2.exports = typeof Reflect !== "undefined" && Reflect && Reflect.apply;
- }
- });
- // node_modules/call-bind-apply-helpers/actualApply.js
- var require_actualApply = __commonJS({
- "node_modules/call-bind-apply-helpers/actualApply.js"(exports2, module2) {
- "use strict";
- var bind = require_function_bind();
- var $apply = require_functionApply();
- var $call = require_functionCall();
- var $reflectApply = require_reflectApply();
- module2.exports = $reflectApply || bind.call($call, $apply);
- }
- });
- // node_modules/call-bind-apply-helpers/index.js
- var require_call_bind_apply_helpers = __commonJS({
- "node_modules/call-bind-apply-helpers/index.js"(exports2, module2) {
- "use strict";
- var bind = require_function_bind();
- var $TypeError = require_type();
- var $call = require_functionCall();
- var $actualApply = require_actualApply();
- module2.exports = function callBindBasic(args) {
- if (args.length < 1 || typeof args[0] !== "function") {
- throw new $TypeError("a function is required");
- }
- return $actualApply(bind, $call, args);
- };
- }
- });
- // node_modules/dunder-proto/get.js
- var require_get = __commonJS({
- "node_modules/dunder-proto/get.js"(exports2, module2) {
- "use strict";
- var callBind = require_call_bind_apply_helpers();
- var gOPD = require_gopd();
- var hasProtoAccessor;
- try {
- hasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */
- [].__proto__ === Array.prototype;
- } catch (e) {
- if (!e || typeof e !== "object" || !("code" in e) || e.code !== "ERR_PROTO_ACCESS") {
- throw e;
- }
- }
- var desc = !!hasProtoAccessor && gOPD && gOPD(
- Object.prototype,
- /** @type {keyof typeof Object.prototype} */
- "__proto__"
- );
- var $Object = Object;
- var $getPrototypeOf = $Object.getPrototypeOf;
- module2.exports = desc && typeof desc.get === "function" ? callBind([desc.get]) : typeof $getPrototypeOf === "function" ? (
- /** @type {import('./get')} */
- function getDunder(value) {
- return $getPrototypeOf(value == null ? value : $Object(value));
- }
- ) : false;
- }
- });
- // node_modules/get-proto/index.js
- var require_get_proto = __commonJS({
- "node_modules/get-proto/index.js"(exports2, module2) {
- "use strict";
- var reflectGetProto = require_Reflect_getPrototypeOf();
- var originalGetProto = require_Object_getPrototypeOf();
- var getDunderProto = require_get();
- module2.exports = reflectGetProto ? function getProto(O) {
- return reflectGetProto(O);
- } : originalGetProto ? function getProto(O) {
- if (!O || typeof O !== "object" && typeof O !== "function") {
- throw new TypeError("getProto: not an object");
- }
- return originalGetProto(O);
- } : getDunderProto ? function getProto(O) {
- return getDunderProto(O);
- } : null;
- }
- });
- // node_modules/hasown/index.js
- var require_hasown = __commonJS({
- "node_modules/hasown/index.js"(exports2, module2) {
- "use strict";
- var call = Function.prototype.call;
- var $hasOwn = Object.prototype.hasOwnProperty;
- var bind = require_function_bind();
- module2.exports = bind.call(call, $hasOwn);
- }
- });
- // node_modules/get-intrinsic/index.js
- var require_get_intrinsic = __commonJS({
- "node_modules/get-intrinsic/index.js"(exports2, module2) {
- "use strict";
- var undefined2;
- var $Object = require_es_object_atoms();
- var $Error = require_es_errors();
- var $EvalError = require_eval();
- var $RangeError = require_range();
- var $ReferenceError = require_ref();
- var $SyntaxError = require_syntax();
- var $TypeError = require_type();
- var $URIError = require_uri();
- var abs = require_abs();
- var floor = require_floor();
- var max = require_max();
- var min = require_min();
- var pow = require_pow();
- var round = require_round();
- var sign = require_sign();
- var $Function = Function;
- var getEvalledConstructor = function(expressionSyntax) {
- try {
- return $Function('"use strict"; return (' + expressionSyntax + ").constructor;")();
- } catch (e) {
- }
- };
- var $gOPD = require_gopd();
- var $defineProperty = require_es_define_property();
- var throwTypeError = function() {
- throw new $TypeError();
- };
- var ThrowTypeError = $gOPD ? (function() {
- try {
- arguments.callee;
- return throwTypeError;
- } catch (calleeThrows) {
- try {
- return $gOPD(arguments, "callee").get;
- } catch (gOPDthrows) {
- return throwTypeError;
- }
- }
- })() : throwTypeError;
- var hasSymbols = require_has_symbols()();
- var getProto = require_get_proto();
- var $ObjectGPO = require_Object_getPrototypeOf();
- var $ReflectGPO = require_Reflect_getPrototypeOf();
- var $apply = require_functionApply();
- var $call = require_functionCall();
- var needsEval = {};
- var TypedArray = typeof Uint8Array === "undefined" || !getProto ? undefined2 : getProto(Uint8Array);
- var INTRINSICS = {
- __proto__: null,
- "%AggregateError%": typeof AggregateError === "undefined" ? undefined2 : AggregateError,
- "%Array%": Array,
- "%ArrayBuffer%": typeof ArrayBuffer === "undefined" ? undefined2 : ArrayBuffer,
- "%ArrayIteratorPrototype%": hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined2,
- "%AsyncFromSyncIteratorPrototype%": undefined2,
- "%AsyncFunction%": needsEval,
- "%AsyncGenerator%": needsEval,
- "%AsyncGeneratorFunction%": needsEval,
- "%AsyncIteratorPrototype%": needsEval,
- "%Atomics%": typeof Atomics === "undefined" ? undefined2 : Atomics,
- "%BigInt%": typeof BigInt === "undefined" ? undefined2 : BigInt,
- "%BigInt64Array%": typeof BigInt64Array === "undefined" ? undefined2 : BigInt64Array,
- "%BigUint64Array%": typeof BigUint64Array === "undefined" ? undefined2 : BigUint64Array,
- "%Boolean%": Boolean,
- "%DataView%": typeof DataView === "undefined" ? undefined2 : DataView,
- "%Date%": Date,
- "%decodeURI%": decodeURI,
- "%decodeURIComponent%": decodeURIComponent,
- "%encodeURI%": encodeURI,
- "%encodeURIComponent%": encodeURIComponent,
- "%Error%": $Error,
- "%eval%": eval,
- // eslint-disable-line no-eval
- "%EvalError%": $EvalError,
- "%Float16Array%": typeof Float16Array === "undefined" ? undefined2 : Float16Array,
- "%Float32Array%": typeof Float32Array === "undefined" ? undefined2 : Float32Array,
- "%Float64Array%": typeof Float64Array === "undefined" ? undefined2 : Float64Array,
- "%FinalizationRegistry%": typeof FinalizationRegistry === "undefined" ? undefined2 : FinalizationRegistry,
- "%Function%": $Function,
- "%GeneratorFunction%": needsEval,
- "%Int8Array%": typeof Int8Array === "undefined" ? undefined2 : Int8Array,
- "%Int16Array%": typeof Int16Array === "undefined" ? undefined2 : Int16Array,
- "%Int32Array%": typeof Int32Array === "undefined" ? undefined2 : Int32Array,
- "%isFinite%": isFinite,
- "%isNaN%": isNaN,
- "%IteratorPrototype%": hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined2,
- "%JSON%": typeof JSON === "object" ? JSON : undefined2,
- "%Map%": typeof Map === "undefined" ? undefined2 : Map,
- "%MapIteratorPrototype%": typeof Map === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Map())[Symbol.iterator]()),
- "%Math%": Math,
- "%Number%": Number,
- "%Object%": $Object,
- "%Object.getOwnPropertyDescriptor%": $gOPD,
- "%parseFloat%": parseFloat,
- "%parseInt%": parseInt,
- "%Promise%": typeof Promise === "undefined" ? undefined2 : Promise,
- "%Proxy%": typeof Proxy === "undefined" ? undefined2 : Proxy,
- "%RangeError%": $RangeError,
- "%ReferenceError%": $ReferenceError,
- "%Reflect%": typeof Reflect === "undefined" ? undefined2 : Reflect,
- "%RegExp%": RegExp,
- "%Set%": typeof Set === "undefined" ? undefined2 : Set,
- "%SetIteratorPrototype%": typeof Set === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Set())[Symbol.iterator]()),
- "%SharedArrayBuffer%": typeof SharedArrayBuffer === "undefined" ? undefined2 : SharedArrayBuffer,
- "%String%": String,
- "%StringIteratorPrototype%": hasSymbols && getProto ? getProto(""[Symbol.iterator]()) : undefined2,
- "%Symbol%": hasSymbols ? Symbol : undefined2,
- "%SyntaxError%": $SyntaxError,
- "%ThrowTypeError%": ThrowTypeError,
- "%TypedArray%": TypedArray,
- "%TypeError%": $TypeError,
- "%Uint8Array%": typeof Uint8Array === "undefined" ? undefined2 : Uint8Array,
- "%Uint8ClampedArray%": typeof Uint8ClampedArray === "undefined" ? undefined2 : Uint8ClampedArray,
- "%Uint16Array%": typeof Uint16Array === "undefined" ? undefined2 : Uint16Array,
- "%Uint32Array%": typeof Uint32Array === "undefined" ? undefined2 : Uint32Array,
- "%URIError%": $URIError,
- "%WeakMap%": typeof WeakMap === "undefined" ? undefined2 : WeakMap,
- "%WeakRef%": typeof WeakRef === "undefined" ? undefined2 : WeakRef,
- "%WeakSet%": typeof WeakSet === "undefined" ? undefined2 : WeakSet,
- "%Function.prototype.call%": $call,
- "%Function.prototype.apply%": $apply,
- "%Object.defineProperty%": $defineProperty,
- "%Object.getPrototypeOf%": $ObjectGPO,
- "%Math.abs%": abs,
- "%Math.floor%": floor,
- "%Math.max%": max,
- "%Math.min%": min,
- "%Math.pow%": pow,
- "%Math.round%": round,
- "%Math.sign%": sign,
- "%Reflect.getPrototypeOf%": $ReflectGPO
- };
- if (getProto) {
- try {
- null.error;
- } catch (e) {
- errorProto = getProto(getProto(e));
- INTRINSICS["%Error.prototype%"] = errorProto;
- }
- }
- var errorProto;
- var doEval = function doEval2(name) {
- var value;
- if (name === "%AsyncFunction%") {
- value = getEvalledConstructor("async function () {}");
- } else if (name === "%GeneratorFunction%") {
- value = getEvalledConstructor("function* () {}");
- } else if (name === "%AsyncGeneratorFunction%") {
- value = getEvalledConstructor("async function* () {}");
- } else if (name === "%AsyncGenerator%") {
- var fn = doEval2("%AsyncGeneratorFunction%");
- if (fn) {
- value = fn.prototype;
- }
- } else if (name === "%AsyncIteratorPrototype%") {
- var gen = doEval2("%AsyncGenerator%");
- if (gen && getProto) {
- value = getProto(gen.prototype);
- }
- }
- INTRINSICS[name] = value;
- return value;
- };
- var LEGACY_ALIASES = {
- __proto__: null,
- "%ArrayBufferPrototype%": ["ArrayBuffer", "prototype"],
- "%ArrayPrototype%": ["Array", "prototype"],
- "%ArrayProto_entries%": ["Array", "prototype", "entries"],
- "%ArrayProto_forEach%": ["Array", "prototype", "forEach"],
- "%ArrayProto_keys%": ["Array", "prototype", "keys"],
- "%ArrayProto_values%": ["Array", "prototype", "values"],
- "%AsyncFunctionPrototype%": ["AsyncFunction", "prototype"],
- "%AsyncGenerator%": ["AsyncGeneratorFunction", "prototype"],
- "%AsyncGeneratorPrototype%": ["AsyncGeneratorFunction", "prototype", "prototype"],
- "%BooleanPrototype%": ["Boolean", "prototype"],
- "%DataViewPrototype%": ["DataView", "prototype"],
- "%DatePrototype%": ["Date", "prototype"],
- "%ErrorPrototype%": ["Error", "prototype"],
- "%EvalErrorPrototype%": ["EvalError", "prototype"],
- "%Float32ArrayPrototype%": ["Float32Array", "prototype"],
- "%Float64ArrayPrototype%": ["Float64Array", "prototype"],
- "%FunctionPrototype%": ["Function", "prototype"],
- "%Generator%": ["GeneratorFunction", "prototype"],
- "%GeneratorPrototype%": ["GeneratorFunction", "prototype", "prototype"],
- "%Int8ArrayPrototype%": ["Int8Array", "prototype"],
- "%Int16ArrayPrototype%": ["Int16Array", "prototype"],
- "%Int32ArrayPrototype%": ["Int32Array", "prototype"],
- "%JSONParse%": ["JSON", "parse"],
- "%JSONStringify%": ["JSON", "stringify"],
- "%MapPrototype%": ["Map", "prototype"],
- "%NumberPrototype%": ["Number", "prototype"],
- "%ObjectPrototype%": ["Object", "prototype"],
- "%ObjProto_toString%": ["Object", "prototype", "toString"],
- "%ObjProto_valueOf%": ["Object", "prototype", "valueOf"],
- "%PromisePrototype%": ["Promise", "prototype"],
- "%PromiseProto_then%": ["Promise", "prototype", "then"],
- "%Promise_all%": ["Promise", "all"],
- "%Promise_reject%": ["Promise", "reject"],
- "%Promise_resolve%": ["Promise", "resolve"],
- "%RangeErrorPrototype%": ["RangeError", "prototype"],
- "%ReferenceErrorPrototype%": ["ReferenceError", "prototype"],
- "%RegExpPrototype%": ["RegExp", "prototype"],
- "%SetPrototype%": ["Set", "prototype"],
- "%SharedArrayBufferPrototype%": ["SharedArrayBuffer", "prototype"],
- "%StringPrototype%": ["String", "prototype"],
- "%SymbolPrototype%": ["Symbol", "prototype"],
- "%SyntaxErrorPrototype%": ["SyntaxError", "prototype"],
- "%TypedArrayPrototype%": ["TypedArray", "prototype"],
- "%TypeErrorPrototype%": ["TypeError", "prototype"],
- "%Uint8ArrayPrototype%": ["Uint8Array", "prototype"],
- "%Uint8ClampedArrayPrototype%": ["Uint8ClampedArray", "prototype"],
- "%Uint16ArrayPrototype%": ["Uint16Array", "prototype"],
- "%Uint32ArrayPrototype%": ["Uint32Array", "prototype"],
- "%URIErrorPrototype%": ["URIError", "prototype"],
- "%WeakMapPrototype%": ["WeakMap", "prototype"],
- "%WeakSetPrototype%": ["WeakSet", "prototype"]
- };
- var bind = require_function_bind();
- var hasOwn = require_hasown();
- var $concat = bind.call($call, Array.prototype.concat);
- var $spliceApply = bind.call($apply, Array.prototype.splice);
- var $replace = bind.call($call, String.prototype.replace);
- var $strSlice = bind.call($call, String.prototype.slice);
- var $exec = bind.call($call, RegExp.prototype.exec);
- var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
- var reEscapeChar = /\\(\\)?/g;
- var stringToPath = function stringToPath2(string) {
- var first = $strSlice(string, 0, 1);
- var last = $strSlice(string, -1);
- if (first === "%" && last !== "%") {
- throw new $SyntaxError("invalid intrinsic syntax, expected closing `%`");
- } else if (last === "%" && first !== "%") {
- throw new $SyntaxError("invalid intrinsic syntax, expected opening `%`");
- }
- var result = [];
- $replace(string, rePropName, function(match, number, quote, subString) {
- result[result.length] = quote ? $replace(subString, reEscapeChar, "$1") : number || match;
- });
- return result;
- };
- var getBaseIntrinsic = function getBaseIntrinsic2(name, allowMissing) {
- var intrinsicName = name;
- var alias;
- if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
- alias = LEGACY_ALIASES[intrinsicName];
- intrinsicName = "%" + alias[0] + "%";
- }
- if (hasOwn(INTRINSICS, intrinsicName)) {
- var value = INTRINSICS[intrinsicName];
- if (value === needsEval) {
- value = doEval(intrinsicName);
- }
- if (typeof value === "undefined" && !allowMissing) {
- throw new $TypeError("intrinsic " + name + " exists, but is not available. Please file an issue!");
- }
- return {
- alias,
- name: intrinsicName,
- value
- };
- }
- throw new $SyntaxError("intrinsic " + name + " does not exist!");
- };
- module2.exports = function GetIntrinsic(name, allowMissing) {
- if (typeof name !== "string" || name.length === 0) {
- throw new $TypeError("intrinsic name must be a non-empty string");
- }
- if (arguments.length > 1 && typeof allowMissing !== "boolean") {
- throw new $TypeError('"allowMissing" argument must be a boolean');
- }
- if ($exec(/^%?[^%]*%?$/, name) === null) {
- throw new $SyntaxError("`%` may not be present anywhere but at the beginning and end of the intrinsic name");
- }
- var parts = stringToPath(name);
- var intrinsicBaseName = parts.length > 0 ? parts[0] : "";
- var intrinsic = getBaseIntrinsic("%" + intrinsicBaseName + "%", allowMissing);
- var intrinsicRealName = intrinsic.name;
- var value = intrinsic.value;
- var skipFurtherCaching = false;
- var alias = intrinsic.alias;
- if (alias) {
- intrinsicBaseName = alias[0];
- $spliceApply(parts, $concat([0, 1], alias));
- }
- for (var i = 1, isOwn = true; i < parts.length; i += 1) {
- var part = parts[i];
- var first = $strSlice(part, 0, 1);
- var last = $strSlice(part, -1);
- if ((first === '"' || first === "'" || first === "`" || (last === '"' || last === "'" || last === "`")) && first !== last) {
- throw new $SyntaxError("property names with quotes must have matching quotes");
- }
- if (part === "constructor" || !isOwn) {
- skipFurtherCaching = true;
- }
- intrinsicBaseName += "." + part;
- intrinsicRealName = "%" + intrinsicBaseName + "%";
- if (hasOwn(INTRINSICS, intrinsicRealName)) {
- value = INTRINSICS[intrinsicRealName];
- } else if (value != null) {
- if (!(part in value)) {
- if (!allowMissing) {
- throw new $TypeError("base intrinsic for " + name + " exists, but the property is not available.");
- }
- return void undefined2;
- }
- if ($gOPD && i + 1 >= parts.length) {
- var desc = $gOPD(value, part);
- isOwn = !!desc;
- if (isOwn && "get" in desc && !("originalValue" in desc.get)) {
- value = desc.get;
- } else {
- value = value[part];
- }
- } else {
- isOwn = hasOwn(value, part);
- value = value[part];
- }
- if (isOwn && !skipFurtherCaching) {
- INTRINSICS[intrinsicRealName] = value;
- }
- }
- }
- return value;
- };
- }
- });
- // node_modules/call-bound/index.js
- var require_call_bound = __commonJS({
- "node_modules/call-bound/index.js"(exports2, module2) {
- "use strict";
- var GetIntrinsic = require_get_intrinsic();
- var callBindBasic = require_call_bind_apply_helpers();
- var $indexOf = callBindBasic([GetIntrinsic("%String.prototype.indexOf%")]);
- module2.exports = function callBoundIntrinsic(name, allowMissing) {
- var intrinsic = (
- /** @type {(this: unknown, ...args: unknown[]) => unknown} */
- GetIntrinsic(name, !!allowMissing)
- );
- if (typeof intrinsic === "function" && $indexOf(name, ".prototype.") > -1) {
- return callBindBasic(
- /** @type {const} */
- [intrinsic]
- );
- }
- return intrinsic;
- };
- }
- });
- // node_modules/side-channel-map/index.js
- var require_side_channel_map = __commonJS({
- "node_modules/side-channel-map/index.js"(exports2, module2) {
- "use strict";
- var GetIntrinsic = require_get_intrinsic();
- var callBound = require_call_bound();
- var inspect = require_object_inspect();
- var $TypeError = require_type();
- var $Map = GetIntrinsic("%Map%", true);
- var $mapGet = callBound("Map.prototype.get", true);
- var $mapSet = callBound("Map.prototype.set", true);
- var $mapHas = callBound("Map.prototype.has", true);
- var $mapDelete = callBound("Map.prototype.delete", true);
- var $mapSize = callBound("Map.prototype.size", true);
- module2.exports = !!$Map && /** @type {Exclude<import('.'), false>} */
- function getSideChannelMap() {
- var $m;
- var channel = {
- assert: function(key) {
- if (!channel.has(key)) {
- throw new $TypeError("Side channel does not contain " + inspect(key));
- }
- },
- "delete": function(key) {
- if ($m) {
- var result = $mapDelete($m, key);
- if ($mapSize($m) === 0) {
- $m = void 0;
- }
- return result;
- }
- return false;
- },
- get: function(key) {
- if ($m) {
- return $mapGet($m, key);
- }
- },
- has: function(key) {
- if ($m) {
- return $mapHas($m, key);
- }
- return false;
- },
- set: function(key, value) {
- if (!$m) {
- $m = new $Map();
- }
- $mapSet($m, key, value);
- }
- };
- return channel;
- };
- }
- });
- // node_modules/side-channel-weakmap/index.js
- var require_side_channel_weakmap = __commonJS({
- "node_modules/side-channel-weakmap/index.js"(exports2, module2) {
- "use strict";
- var GetIntrinsic = require_get_intrinsic();
- var callBound = require_call_bound();
- var inspect = require_object_inspect();
- var getSideChannelMap = require_side_channel_map();
- var $TypeError = require_type();
- var $WeakMap = GetIntrinsic("%WeakMap%", true);
- var $weakMapGet = callBound("WeakMap.prototype.get", true);
- var $weakMapSet = callBound("WeakMap.prototype.set", true);
- var $weakMapHas = callBound("WeakMap.prototype.has", true);
- var $weakMapDelete = callBound("WeakMap.prototype.delete", true);
- module2.exports = $WeakMap ? (
- /** @type {Exclude<import('.'), false>} */
- function getSideChannelWeakMap() {
- var $wm;
- var $m;
- var channel = {
- assert: function(key) {
- if (!channel.has(key)) {
- throw new $TypeError("Side channel does not contain " + inspect(key));
- }
- },
- "delete": function(key) {
- if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) {
- if ($wm) {
- return $weakMapDelete($wm, key);
- }
- } else if (getSideChannelMap) {
- if ($m) {
- return $m["delete"](key);
- }
- }
- return false;
- },
- get: function(key) {
- if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) {
- if ($wm) {
- return $weakMapGet($wm, key);
- }
- }
- return $m && $m.get(key);
- },
- has: function(key) {
- if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) {
- if ($wm) {
- return $weakMapHas($wm, key);
- }
- }
- return !!$m && $m.has(key);
- },
- set: function(key, value) {
- if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) {
- if (!$wm) {
- $wm = new $WeakMap();
- }
- $weakMapSet($wm, key, value);
- } else if (getSideChannelMap) {
- if (!$m) {
- $m = getSideChannelMap();
- }
- $m.set(key, value);
- }
- }
- };
- return channel;
- }
- ) : getSideChannelMap;
- }
- });
- // node_modules/side-channel/index.js
- var require_side_channel = __commonJS({
- "node_modules/side-channel/index.js"(exports2, module2) {
- "use strict";
- var $TypeError = require_type();
- var inspect = require_object_inspect();
- var getSideChannelList = require_side_channel_list();
- var getSideChannelMap = require_side_channel_map();
- var getSideChannelWeakMap = require_side_channel_weakmap();
- var makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList;
- module2.exports = function getSideChannel() {
- var $channelData;
- var channel = {
- assert: function(key) {
- if (!channel.has(key)) {
- throw new $TypeError("Side channel does not contain " + inspect(key));
- }
- },
- "delete": function(key) {
- return !!$channelData && $channelData["delete"](key);
- },
- get: function(key) {
- return $channelData && $channelData.get(key);
- },
- has: function(key) {
- return !!$channelData && $channelData.has(key);
- },
- set: function(key, value) {
- if (!$channelData) {
- $channelData = makeChannel();
- }
- $channelData.set(key, value);
- }
- };
- return channel;
- };
- }
- });
- // node_modules/qs/lib/formats.js
- var require_formats = __commonJS({
- "node_modules/qs/lib/formats.js"(exports2, module2) {
- "use strict";
- var replace = String.prototype.replace;
- var percentTwenties = /%20/g;
- var Format = {
- RFC1738: "RFC1738",
- RFC3986: "RFC3986"
- };
- module2.exports = {
- "default": Format.RFC3986,
- formatters: {
- RFC1738: function(value) {
- return replace.call(value, percentTwenties, "+");
- },
- RFC3986: function(value) {
- return String(value);
- }
- },
- RFC1738: Format.RFC1738,
- RFC3986: Format.RFC3986
- };
- }
- });
- // node_modules/qs/lib/utils.js
- var require_utils2 = __commonJS({
- "node_modules/qs/lib/utils.js"(exports2, module2) {
- "use strict";
- var formats = require_formats();
- var getSideChannel = require_side_channel();
- var has = Object.prototype.hasOwnProperty;
- var isArray = Array.isArray;
- var overflowChannel = getSideChannel();
- var markOverflow = function markOverflow2(obj, maxIndex) {
- overflowChannel.set(obj, maxIndex);
- return obj;
- };
- var isOverflow = function isOverflow2(obj) {
- return overflowChannel.has(obj);
- };
- var getMaxIndex = function getMaxIndex2(obj) {
- return overflowChannel.get(obj);
- };
- var setMaxIndex = function setMaxIndex2(obj, maxIndex) {
- overflowChannel.set(obj, maxIndex);
- };
- var hexTable = (function() {
- var array = [];
- for (var i = 0; i < 256; ++i) {
- array[array.length] = "%" + ((i < 16 ? "0" : "") + i.toString(16)).toUpperCase();
- }
- return array;
- })();
- var compactQueue = function compactQueue2(queue) {
- while (queue.length > 1) {
- var item = queue.pop();
- var obj = item.obj[item.prop];
- if (isArray(obj)) {
- var compacted = [];
- for (var j = 0; j < obj.length; ++j) {
- if (typeof obj[j] !== "undefined") {
- compacted[compacted.length] = obj[j];
- }
- }
- item.obj[item.prop] = compacted;
- }
- }
- };
- var arrayToObject = function arrayToObject2(source, options) {
- var obj = options && options.plainObjects ? { __proto__: null } : {};
- for (var i = 0; i < source.length; ++i) {
- if (typeof source[i] !== "undefined") {
- obj[i] = source[i];
- }
- }
- return obj;
- };
- var merge = function merge2(target, source, options) {
- if (!source) {
- return target;
- }
- if (typeof source !== "object" && typeof source !== "function") {
- if (isArray(target)) {
- var nextIndex = target.length;
- if (options && typeof options.arrayLimit === "number" && nextIndex > options.arrayLimit) {
- return markOverflow(arrayToObject(target.concat(source), options), nextIndex);
- }
- target[nextIndex] = source;
- } else if (target && typeof target === "object") {
- if (isOverflow(target)) {
- var newIndex = getMaxIndex(target) + 1;
- target[newIndex] = source;
- setMaxIndex(target, newIndex);
- } else if (options && options.strictMerge) {
- return [target, source];
- } else if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) {
- target[source] = true;
- }
- } else {
- return [target, source];
- }
- return target;
- }
- if (!target || typeof target !== "object") {
- if (isOverflow(source)) {
- var sourceKeys = Object.keys(source);
- var result = options && options.plainObjects ? { __proto__: null, 0: target } : { 0: target };
- for (var m = 0; m < sourceKeys.length; m++) {
- var oldKey = parseInt(sourceKeys[m], 10);
- result[oldKey + 1] = source[sourceKeys[m]];
- }
- return markOverflow(result, getMaxIndex(source) + 1);
- }
- var combined = [target].concat(source);
- if (options && typeof options.arrayLimit === "number" && combined.length > options.arrayLimit) {
- return markOverflow(arrayToObject(combined, options), combined.length - 1);
- }
- return combined;
- }
- var mergeTarget = target;
- if (isArray(target) && !isArray(source)) {
- mergeTarget = arrayToObject(target, options);
- }
- if (isArray(target) && isArray(source)) {
- source.forEach(function(item, i) {
- if (has.call(target, i)) {
- var targetItem = target[i];
- if (targetItem && typeof targetItem === "object" && item && typeof item === "object") {
- target[i] = merge2(targetItem, item, options);
- } else {
- target[target.length] = item;
- }
- } else {
- target[i] = item;
- }
- });
- return target;
- }
- return Object.keys(source).reduce(function(acc, key) {
- var value = source[key];
- if (has.call(acc, key)) {
- acc[key] = merge2(acc[key], value, options);
- } else {
- acc[key] = value;
- }
- if (isOverflow(source) && !isOverflow(acc)) {
- markOverflow(acc, getMaxIndex(source));
- }
- if (isOverflow(acc)) {
- var keyNum = parseInt(key, 10);
- if (String(keyNum) === key && keyNum >= 0 && keyNum > getMaxIndex(acc)) {
- setMaxIndex(acc, keyNum);
- }
- }
- return acc;
- }, mergeTarget);
- };
- var assign = function assignSingleSource(target, source) {
- return Object.keys(source).reduce(function(acc, key) {
- acc[key] = source[key];
- return acc;
- }, target);
- };
- var decode = function(str, defaultDecoder, charset) {
- var strWithoutPlus = str.replace(/\+/g, " ");
- if (charset === "iso-8859-1") {
- return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
- }
- try {
- return decodeURIComponent(strWithoutPlus);
- } catch (e) {
- return strWithoutPlus;
- }
- };
- var limit = 1024;
- var encode = function encode2(str, defaultEncoder, charset, kind, format) {
- if (str.length === 0) {
- return str;
- }
- var string = str;
- if (typeof str === "symbol") {
- string = Symbol.prototype.toString.call(str);
- } else if (typeof str !== "string") {
- string = String(str);
- }
- if (charset === "iso-8859-1") {
- return escape(string).replace(/%u[0-9a-f]{4}/gi, function($0) {
- return "%26%23" + parseInt($0.slice(2), 16) + "%3B";
- });
- }
- var out = "";
- for (var j = 0; j < string.length; j += limit) {
- var segment = string.length >= limit ? string.slice(j, j + limit) : string;
- var arr = [];
- for (var i = 0; i < segment.length; ++i) {
- var c = segment.charCodeAt(i);
- if (c === 45 || c === 46 || c === 95 || c === 126 || c >= 48 && c <= 57 || c >= 65 && c <= 90 || c >= 97 && c <= 122 || format === formats.RFC1738 && (c === 40 || c === 41)) {
- arr[arr.length] = segment.charAt(i);
- continue;
- }
- if (c < 128) {
- arr[arr.length] = hexTable[c];
- continue;
- }
- if (c < 2048) {
- arr[arr.length] = hexTable[192 | c >> 6] + hexTable[128 | c & 63];
- continue;
- }
- if (c < 55296 || c >= 57344) {
- arr[arr.length] = hexTable[224 | c >> 12] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63];
- continue;
- }
- i += 1;
- c = 65536 + ((c & 1023) << 10 | segment.charCodeAt(i) & 1023);
- arr[arr.length] = hexTable[240 | c >> 18] + hexTable[128 | c >> 12 & 63] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63];
- }
- out += arr.join("");
- }
- return out;
- };
- var compact = function compact2(value) {
- var queue = [{ obj: { o: value }, prop: "o" }];
- var refs = [];
- for (var i = 0; i < queue.length; ++i) {
- var item = queue[i];
- var obj = item.obj[item.prop];
- var keys = Object.keys(obj);
- for (var j = 0; j < keys.length; ++j) {
- var key = keys[j];
- var val = obj[key];
- if (typeof val === "object" && val !== null && refs.indexOf(val) === -1) {
- queue[queue.length] = { obj, prop: key };
- refs[refs.length] = val;
- }
- }
- }
- compactQueue(queue);
- return value;
- };
- var isRegExp = function isRegExp2(obj) {
- return Object.prototype.toString.call(obj) === "[object RegExp]";
- };
- var isBuffer = function isBuffer2(obj) {
- if (!obj || typeof obj !== "object") {
- return false;
- }
- return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
- };
- var combine = function combine2(a, b, arrayLimit, plainObjects) {
- if (isOverflow(a)) {
- var newIndex = getMaxIndex(a) + 1;
- a[newIndex] = b;
- setMaxIndex(a, newIndex);
- return a;
- }
- var result = [].concat(a, b);
- if (result.length > arrayLimit) {
- return markOverflow(arrayToObject(result, { plainObjects }), result.length - 1);
- }
- return result;
- };
- var maybeMap = function maybeMap2(val, fn) {
- if (isArray(val)) {
- var mapped = [];
- for (var i = 0; i < val.length; i += 1) {
- mapped[mapped.length] = fn(val[i]);
- }
- return mapped;
- }
- return fn(val);
- };
- module2.exports = {
- arrayToObject,
- assign,
- combine,
- compact,
- decode,
- encode,
- isBuffer,
- isOverflow,
- isRegExp,
- markOverflow,
- maybeMap,
- merge
- };
- }
- });
- // node_modules/qs/lib/stringify.js
- var require_stringify = __commonJS({
- "node_modules/qs/lib/stringify.js"(exports2, module2) {
- "use strict";
- var getSideChannel = require_side_channel();
- var utils = require_utils2();
- var formats = require_formats();
- var has = Object.prototype.hasOwnProperty;
- var arrayPrefixGenerators = {
- brackets: function brackets(prefix) {
- return prefix + "[]";
- },
- comma: "comma",
- indices: function indices(prefix, key) {
- return prefix + "[" + key + "]";
- },
- repeat: function repeat(prefix) {
- return prefix;
- }
- };
- var isArray = Array.isArray;
- var push = Array.prototype.push;
- var pushToArray = function(arr, valueOrArray) {
- push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);
- };
- var toISO = Date.prototype.toISOString;
- var defaultFormat = formats["default"];
- var defaults = {
- addQueryPrefix: false,
- allowDots: false,
- allowEmptyArrays: false,
- arrayFormat: "indices",
- charset: "utf-8",
- charsetSentinel: false,
- commaRoundTrip: false,
- delimiter: "&",
- encode: true,
- encodeDotInKeys: false,
- encoder: utils.encode,
- encodeValuesOnly: false,
- filter: void 0,
- format: defaultFormat,
- formatter: formats.formatters[defaultFormat],
- // deprecated
- indices: false,
- serializeDate: function serializeDate(date) {
- return toISO.call(date);
- },
- skipNulls: false,
- strictNullHandling: false
- };
- var isNonNullishPrimitive = function isNonNullishPrimitive2(v) {
- return typeof v === "string" || typeof v === "number" || typeof v === "boolean" || typeof v === "symbol" || typeof v === "bigint";
- };
- var sentinel = {};
- var stringify = function stringify2(object, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, sideChannel) {
- var obj = object;
- var tmpSc = sideChannel;
- var step = 0;
- var findFlag = false;
- while ((tmpSc = tmpSc.get(sentinel)) !== void 0 && !findFlag) {
- var pos = tmpSc.get(object);
- step += 1;
- if (typeof pos !== "undefined") {
- if (pos === step) {
- throw new RangeError("Cyclic object value");
- } else {
- findFlag = true;
- }
- }
- if (typeof tmpSc.get(sentinel) === "undefined") {
- step = 0;
- }
- }
- if (typeof filter === "function") {
- obj = filter(prefix, obj);
- } else if (obj instanceof Date) {
- obj = serializeDate(obj);
- } else if (generateArrayPrefix === "comma" && isArray(obj)) {
- obj = utils.maybeMap(obj, function(value2) {
- if (value2 instanceof Date) {
- return serializeDate(value2);
- }
- return value2;
- });
- }
- if (obj === null) {
- if (strictNullHandling) {
- return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, "key", format) : prefix;
- }
- obj = "";
- }
- if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {
- if (encoder) {
- var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, "key", format);
- return [formatter(keyValue) + "=" + formatter(encoder(obj, defaults.encoder, charset, "value", format))];
- }
- return [formatter(prefix) + "=" + formatter(String(obj))];
- }
- var values = [];
- if (typeof obj === "undefined") {
- return values;
- }
- var objKeys;
- if (generateArrayPrefix === "comma" && isArray(obj)) {
- if (encodeValuesOnly && encoder) {
- obj = utils.maybeMap(obj, encoder);
- }
- objKeys = [{ value: obj.length > 0 ? obj.join(",") || null : void 0 }];
- } else if (isArray(filter)) {
- objKeys = filter;
- } else {
- var keys = Object.keys(obj);
- objKeys = sort ? keys.sort(sort) : keys;
- }
- var encodedPrefix = encodeDotInKeys ? String(prefix).replace(/\./g, "%2E") : String(prefix);
- var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + "[]" : encodedPrefix;
- if (allowEmptyArrays && isArray(obj) && obj.length === 0) {
- return adjustedPrefix + "[]";
- }
- for (var j = 0; j < objKeys.length; ++j) {
- var key = objKeys[j];
- var value = typeof key === "object" && key && typeof key.value !== "undefined" ? key.value : obj[key];
- if (skipNulls && value === null) {
- continue;
- }
- var encodedKey = allowDots && encodeDotInKeys ? String(key).replace(/\./g, "%2E") : String(key);
- var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === "function" ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix : adjustedPrefix + (allowDots ? "." + encodedKey : "[" + encodedKey + "]");
- sideChannel.set(object, step);
- var valueSideChannel = getSideChannel();
- valueSideChannel.set(sentinel, sideChannel);
- pushToArray(values, stringify2(
- value,
- keyPrefix,
- generateArrayPrefix,
- commaRoundTrip,
- allowEmptyArrays,
- strictNullHandling,
- skipNulls,
- encodeDotInKeys,
- generateArrayPrefix === "comma" && encodeValuesOnly && isArray(obj) ? null : encoder,
- filter,
- sort,
- allowDots,
- serializeDate,
- format,
- formatter,
- encodeValuesOnly,
- charset,
- valueSideChannel
- ));
- }
- return values;
- };
- var normalizeStringifyOptions = function normalizeStringifyOptions2(opts) {
- if (!opts) {
- return defaults;
- }
- if (typeof opts.allowEmptyArrays !== "undefined" && typeof opts.allowEmptyArrays !== "boolean") {
- throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");
- }
- if (typeof opts.encodeDotInKeys !== "undefined" && typeof opts.encodeDotInKeys !== "boolean") {
- throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");
- }
- if (opts.encoder !== null && typeof opts.encoder !== "undefined" && typeof opts.encoder !== "function") {
- throw new TypeError("Encoder has to be a function.");
- }
- var charset = opts.charset || defaults.charset;
- if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") {
- throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");
- }
- var format = formats["default"];
- if (typeof opts.format !== "undefined") {
- if (!has.call(formats.formatters, opts.format)) {
- throw new TypeError("Unknown format option provided.");
- }
- format = opts.format;
- }
- var formatter = formats.formatters[format];
- var filter = defaults.filter;
- if (typeof opts.filter === "function" || isArray(opts.filter)) {
- filter = opts.filter;
- }
- var arrayFormat;
- if (opts.arrayFormat in arrayPrefixGenerators) {
- arrayFormat = opts.arrayFormat;
- } else if ("indices" in opts) {
- arrayFormat = opts.indices ? "indices" : "repeat";
- } else {
- arrayFormat = defaults.arrayFormat;
- }
- if ("commaRoundTrip" in opts && typeof opts.commaRoundTrip !== "boolean") {
- throw new TypeError("`commaRoundTrip` must be a boolean, or absent");
- }
- var allowDots = typeof opts.allowDots === "undefined" ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;
- return {
- addQueryPrefix: typeof opts.addQueryPrefix === "boolean" ? opts.addQueryPrefix : defaults.addQueryPrefix,
- allowDots,
- allowEmptyArrays: typeof opts.allowEmptyArrays === "boolean" ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,
- arrayFormat,
- charset,
- charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults.charsetSentinel,
- commaRoundTrip: !!opts.commaRoundTrip,
- delimiter: typeof opts.delimiter === "undefined" ? defaults.delimiter : opts.delimiter,
- encode: typeof opts.encode === "boolean" ? opts.encode : defaults.encode,
- encodeDotInKeys: typeof opts.encodeDotInKeys === "boolean" ? opts.encodeDotInKeys : defaults.encodeDotInKeys,
- encoder: typeof opts.encoder === "function" ? opts.encoder : defaults.encoder,
- encodeValuesOnly: typeof opts.encodeValuesOnly === "boolean" ? opts.encodeValuesOnly : defaults.encodeValuesOnly,
- filter,
- format,
- formatter,
- serializeDate: typeof opts.serializeDate === "function" ? opts.serializeDate : defaults.serializeDate,
- skipNulls: typeof opts.skipNulls === "boolean" ? opts.skipNulls : defaults.skipNulls,
- sort: typeof opts.sort === "function" ? opts.sort : null,
- strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults.strictNullHandling
- };
- };
- module2.exports = function(object, opts) {
- var obj = object;
- var options = normalizeStringifyOptions(opts);
- var objKeys;
- var filter;
- if (typeof options.filter === "function") {
- filter = options.filter;
- obj = filter("", obj);
- } else if (isArray(options.filter)) {
- filter = options.filter;
- objKeys = filter;
- }
- var keys = [];
- if (typeof obj !== "object" || obj === null) {
- return "";
- }
- var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];
- var commaRoundTrip = generateArrayPrefix === "comma" && options.commaRoundTrip;
- if (!objKeys) {
- objKeys = Object.keys(obj);
- }
- if (options.sort) {
- objKeys.sort(options.sort);
- }
- var sideChannel = getSideChannel();
- for (var i = 0; i < objKeys.length; ++i) {
- var key = objKeys[i];
- var value = obj[key];
- if (options.skipNulls && value === null) {
- continue;
- }
- pushToArray(keys, stringify(
- value,
- key,
- generateArrayPrefix,
- commaRoundTrip,
- options.allowEmptyArrays,
- options.strictNullHandling,
- options.skipNulls,
- options.encodeDotInKeys,
- options.encode ? options.encoder : null,
- options.filter,
- options.sort,
- options.allowDots,
- options.serializeDate,
- options.format,
- options.formatter,
- options.encodeValuesOnly,
- options.charset,
- sideChannel
- ));
- }
- var joined = keys.join(options.delimiter);
- var prefix = options.addQueryPrefix === true ? "?" : "";
- if (options.charsetSentinel) {
- if (options.charset === "iso-8859-1") {
- prefix += "utf8=%26%2310003%3B&";
- } else {
- prefix += "utf8=%E2%9C%93&";
- }
- }
- return joined.length > 0 ? prefix + joined : "";
- };
- }
- });
- // node_modules/qs/lib/parse.js
- var require_parse = __commonJS({
- "node_modules/qs/lib/parse.js"(exports2, module2) {
- "use strict";
- var utils = require_utils2();
- var has = Object.prototype.hasOwnProperty;
- var isArray = Array.isArray;
- var defaults = {
- allowDots: false,
- allowEmptyArrays: false,
- allowPrototypes: false,
- allowSparse: false,
- arrayLimit: 20,
- charset: "utf-8",
- charsetSentinel: false,
- comma: false,
- decodeDotInKeys: false,
- decoder: utils.decode,
- delimiter: "&",
- depth: 5,
- duplicates: "combine",
- ignoreQueryPrefix: false,
- interpretNumericEntities: false,
- parameterLimit: 1e3,
- parseArrays: true,
- plainObjects: false,
- strictDepth: false,
- strictMerge: true,
- strictNullHandling: false,
- throwOnLimitExceeded: false
- };
- var interpretNumericEntities = function(str) {
- return str.replace(/&#(\d+);/g, function($0, numberStr) {
- return String.fromCharCode(parseInt(numberStr, 10));
- });
- };
- var parseArrayValue = function(val, options, currentArrayLength) {
- if (val && typeof val === "string" && options.comma && val.indexOf(",") > -1) {
- return val.split(",");
- }
- if (options.throwOnLimitExceeded && currentArrayLength >= options.arrayLimit) {
- throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
- }
- return val;
- };
- var isoSentinel = "utf8=%26%2310003%3B";
- var charsetSentinel = "utf8=%E2%9C%93";
- var parseValues = function parseQueryStringValues(str, options) {
- var obj = { __proto__: null };
- var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, "") : str;
- cleanStr = cleanStr.replace(/%5B/gi, "[").replace(/%5D/gi, "]");
- var limit = options.parameterLimit === Infinity ? void 0 : options.parameterLimit;
- var parts = cleanStr.split(
- options.delimiter,
- options.throwOnLimitExceeded && typeof limit !== "undefined" ? limit + 1 : limit
- );
- if (options.throwOnLimitExceeded && typeof limit !== "undefined" && parts.length > limit) {
- throw new RangeError("Parameter limit exceeded. Only " + limit + " parameter" + (limit === 1 ? "" : "s") + " allowed.");
- }
- var skipIndex = -1;
- var i;
- var charset = options.charset;
- if (options.charsetSentinel) {
- for (i = 0; i < parts.length; ++i) {
- if (parts[i].indexOf("utf8=") === 0) {
- if (parts[i] === charsetSentinel) {
- charset = "utf-8";
- } else if (parts[i] === isoSentinel) {
- charset = "iso-8859-1";
- }
- skipIndex = i;
- i = parts.length;
- }
- }
- }
- for (i = 0; i < parts.length; ++i) {
- if (i === skipIndex) {
- continue;
- }
- var part = parts[i];
- var bracketEqualsPos = part.indexOf("]=");
- var pos = bracketEqualsPos === -1 ? part.indexOf("=") : bracketEqualsPos + 1;
- var key;
- var val;
- if (pos === -1) {
- key = options.decoder(part, defaults.decoder, charset, "key");
- val = options.strictNullHandling ? null : "";
- } else {
- key = options.decoder(part.slice(0, pos), defaults.decoder, charset, "key");
- if (key !== null) {
- val = utils.maybeMap(
- parseArrayValue(
- part.slice(pos + 1),
- options,
- isArray(obj[key]) ? obj[key].length : 0
- ),
- function(encodedVal) {
- return options.decoder(encodedVal, defaults.decoder, charset, "value");
- }
- );
- }
- }
- if (val && options.interpretNumericEntities && charset === "iso-8859-1") {
- val = interpretNumericEntities(String(val));
- }
- if (part.indexOf("[]=") > -1) {
- val = isArray(val) ? [val] : val;
- }
- if (options.comma && isArray(val) && val.length > options.arrayLimit) {
- if (options.throwOnLimitExceeded) {
- throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
- }
- val = utils.combine([], val, options.arrayLimit, options.plainObjects);
- }
- if (key !== null) {
- var existing = has.call(obj, key);
- if (existing && (options.duplicates === "combine" || part.indexOf("[]=") > -1)) {
- obj[key] = utils.combine(
- obj[key],
- val,
- options.arrayLimit,
- options.plainObjects
- );
- } else if (!existing || options.duplicates === "last") {
- obj[key] = val;
- }
- }
- }
- return obj;
- };
- var parseObject = function(chain, val, options, valuesParsed) {
- var currentArrayLength = 0;
- if (chain.length > 0 && chain[chain.length - 1] === "[]") {
- var parentKey = chain.slice(0, -1).join("");
- currentArrayLength = Array.isArray(val) && val[parentKey] ? val[parentKey].length : 0;
- }
- var leaf = valuesParsed ? val : parseArrayValue(val, options, currentArrayLength);
- for (var i = chain.length - 1; i >= 0; --i) {
- var obj;
- var root = chain[i];
- if (root === "[]" && options.parseArrays) {
- if (utils.isOverflow(leaf)) {
- obj = leaf;
- } else {
- obj = options.allowEmptyArrays && (leaf === "" || options.strictNullHandling && leaf === null) ? [] : utils.combine(
- [],
- leaf,
- options.arrayLimit,
- options.plainObjects
- );
- }
- } else {
- obj = options.plainObjects ? { __proto__: null } : {};
- var cleanRoot = root.charAt(0) === "[" && root.charAt(root.length - 1) === "]" ? root.slice(1, -1) : root;
- var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, ".") : cleanRoot;
- var index = parseInt(decodedRoot, 10);
- var isValidArrayIndex = !isNaN(index) && root !== decodedRoot && String(index) === decodedRoot && index >= 0 && options.parseArrays;
- if (!options.parseArrays && decodedRoot === "") {
- obj = { 0: leaf };
- } else if (isValidArrayIndex && index < options.arrayLimit) {
- obj = [];
- obj[index] = leaf;
- } else if (isValidArrayIndex && options.throwOnLimitExceeded) {
- throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
- } else if (isValidArrayIndex) {
- obj[index] = leaf;
- utils.markOverflow(obj, index);
- } else if (decodedRoot !== "__proto__") {
- obj[decodedRoot] = leaf;
- }
- }
- leaf = obj;
- }
- return leaf;
- };
- var splitKeyIntoSegments = function splitKeyIntoSegments2(givenKey, options) {
- var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, "[$1]") : givenKey;
- if (options.depth <= 0) {
- if (!options.plainObjects && has.call(Object.prototype, key)) {
- if (!options.allowPrototypes) {
- return;
- }
- }
- return [key];
- }
- var brackets = /(\[[^[\]]*])/;
- var child = /(\[[^[\]]*])/g;
- var segment = brackets.exec(key);
- var parent = segment ? key.slice(0, segment.index) : key;
- var keys = [];
- if (parent) {
- if (!options.plainObjects && has.call(Object.prototype, parent)) {
- if (!options.allowPrototypes) {
- return;
- }
- }
- keys[keys.length] = parent;
- }
- var i = 0;
- while ((segment = child.exec(key)) !== null && i < options.depth) {
- i += 1;
- var segmentContent = segment[1].slice(1, -1);
- if (!options.plainObjects && has.call(Object.prototype, segmentContent)) {
- if (!options.allowPrototypes) {
- return;
- }
- }
- keys[keys.length] = segment[1];
- }
- if (segment) {
- if (options.strictDepth === true) {
- throw new RangeError("Input depth exceeded depth option of " + options.depth + " and strictDepth is true");
- }
- keys[keys.length] = "[" + key.slice(segment.index) + "]";
- }
- return keys;
- };
- var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {
- if (!givenKey) {
- return;
- }
- var keys = splitKeyIntoSegments(givenKey, options);
- if (!keys) {
- return;
- }
- return parseObject(keys, val, options, valuesParsed);
- };
- var normalizeParseOptions = function normalizeParseOptions2(opts) {
- if (!opts) {
- return defaults;
- }
- if (typeof opts.allowEmptyArrays !== "undefined" && typeof opts.allowEmptyArrays !== "boolean") {
- throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");
- }
- if (typeof opts.decodeDotInKeys !== "undefined" && typeof opts.decodeDotInKeys !== "boolean") {
- throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided");
- }
- if (opts.decoder !== null && typeof opts.decoder !== "undefined" && typeof opts.decoder !== "function") {
- throw new TypeError("Decoder has to be a function.");
- }
- if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") {
- throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");
- }
- if (typeof opts.throwOnLimitExceeded !== "undefined" && typeof opts.throwOnLimitExceeded !== "boolean") {
- throw new TypeError("`throwOnLimitExceeded` option must be a boolean");
- }
- var charset = typeof opts.charset === "undefined" ? defaults.charset : opts.charset;
- var duplicates = typeof opts.duplicates === "undefined" ? defaults.duplicates : opts.duplicates;
- if (duplicates !== "combine" && duplicates !== "first" && duplicates !== "last") {
- throw new TypeError("The duplicates option must be either combine, first, or last");
- }
- var allowDots = typeof opts.allowDots === "undefined" ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;
- return {
- allowDots,
- allowEmptyArrays: typeof opts.allowEmptyArrays === "boolean" ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,
- allowPrototypes: typeof opts.allowPrototypes === "boolean" ? opts.allowPrototypes : defaults.allowPrototypes,
- allowSparse: typeof opts.allowSparse === "boolean" ? opts.allowSparse : defaults.allowSparse,
- arrayLimit: typeof opts.arrayLimit === "number" ? opts.arrayLimit : defaults.arrayLimit,
- charset,
- charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults.charsetSentinel,
- comma: typeof opts.comma === "boolean" ? opts.comma : defaults.comma,
- decodeDotInKeys: typeof opts.decodeDotInKeys === "boolean" ? opts.decodeDotInKeys : defaults.decodeDotInKeys,
- decoder: typeof opts.decoder === "function" ? opts.decoder : defaults.decoder,
- delimiter: typeof opts.delimiter === "string" || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,
- // eslint-disable-next-line no-implicit-coercion, no-extra-parens
- depth: typeof opts.depth === "number" || opts.depth === false ? +opts.depth : defaults.depth,
- duplicates,
- ignoreQueryPrefix: opts.ignoreQueryPrefix === true,
- interpretNumericEntities: typeof opts.interpretNumericEntities === "boolean" ? opts.interpretNumericEntities : defaults.interpretNumericEntities,
- parameterLimit: typeof opts.parameterLimit === "number" ? opts.parameterLimit : defaults.parameterLimit,
- parseArrays: opts.parseArrays !== false,
- plainObjects: typeof opts.plainObjects === "boolean" ? opts.plainObjects : defaults.plainObjects,
- strictDepth: typeof opts.strictDepth === "boolean" ? !!opts.strictDepth : defaults.strictDepth,
- strictMerge: typeof opts.strictMerge === "boolean" ? !!opts.strictMerge : defaults.strictMerge,
- strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults.strictNullHandling,
- throwOnLimitExceeded: typeof opts.throwOnLimitExceeded === "boolean" ? opts.throwOnLimitExceeded : false
- };
- };
- module2.exports = function(str, opts) {
- var options = normalizeParseOptions(opts);
- if (str === "" || str === null || typeof str === "undefined") {
- return options.plainObjects ? { __proto__: null } : {};
- }
- var tempObj = typeof str === "string" ? parseValues(str, options) : str;
- var obj = options.plainObjects ? { __proto__: null } : {};
- var keys = Object.keys(tempObj);
- for (var i = 0; i < keys.length; ++i) {
- var key = keys[i];
- var newObj = parseKeys(key, tempObj[key], options, typeof str === "string");
- obj = utils.merge(obj, newObj, options);
- }
- if (options.allowSparse === true) {
- return obj;
- }
- return utils.compact(obj);
- };
- }
- });
- // node_modules/qs/lib/index.js
- var require_lib2 = __commonJS({
- "node_modules/qs/lib/index.js"(exports2, module2) {
- "use strict";
- var stringify = require_stringify();
- var parse = require_parse();
- var formats = require_formats();
- module2.exports = {
- formats,
- parse,
- stringify
- };
- }
- });
- // node_modules/body-parser/lib/types/urlencoded.js
- var require_urlencoded = __commonJS({
- "node_modules/body-parser/lib/types/urlencoded.js"(exports2, module2) {
- "use strict";
- var createError = require_http_errors();
- var debug = require_src()("body-parser:urlencoded");
- var read = require_read();
- var qs = require_lib2();
- var { normalizeOptions } = require_utils();
- module2.exports = urlencoded;
- function urlencoded(options) {
- const normalizedOptions = normalizeOptions(options, "application/x-www-form-urlencoded");
- if (normalizedOptions.defaultCharset !== "utf-8" && normalizedOptions.defaultCharset !== "iso-8859-1") {
- throw new TypeError("option defaultCharset must be either utf-8 or iso-8859-1");
- }
- var queryparse = createQueryParser(options);
- function parse(body, encoding) {
- return body.length ? queryparse(body, encoding) : {};
- }
- const readOptions = {
- ...normalizedOptions,
- // assert charset
- isValidCharset: (charset) => charset === "utf-8" || charset === "iso-8859-1"
- };
- return function urlencodedParser(req, res, next) {
- read(req, res, next, parse, debug, readOptions);
- };
- }
- function createQueryParser(options) {
- var extended = Boolean(options?.extended);
- var parameterLimit = options?.parameterLimit !== void 0 ? options?.parameterLimit : 1e3;
- var charsetSentinel = options?.charsetSentinel;
- var interpretNumericEntities = options?.interpretNumericEntities;
- var depth = extended ? options?.depth !== void 0 ? options?.depth : 32 : 0;
- if (isNaN(parameterLimit) || parameterLimit < 1) {
- throw new TypeError("option parameterLimit must be a positive number");
- }
- if (isNaN(depth) || depth < 0) {
- throw new TypeError("option depth must be a zero or a positive number");
- }
- if (isFinite(parameterLimit)) {
- parameterLimit = parameterLimit | 0;
- }
- return function queryparse(body, encoding) {
- var paramCount = parameterCount(body, parameterLimit);
- if (paramCount === void 0) {
- debug("too many parameters");
- throw createError(413, "too many parameters", {
- type: "parameters.too.many"
- });
- }
- var arrayLimit = extended ? Math.max(100, paramCount) : paramCount;
- debug("parse " + (extended ? "extended " : "") + "urlencoding");
- try {
- return qs.parse(body, {
- allowPrototypes: true,
- arrayLimit,
- depth,
- charsetSentinel,
- interpretNumericEntities,
- charset: encoding,
- parameterLimit,
- strictDepth: true
- });
- } catch (err) {
- if (err instanceof RangeError) {
- throw createError(400, "The input exceeded the depth", {
- type: "querystring.parse.rangeError"
- });
- } else {
- throw err;
- }
- }
- };
- }
- function parameterCount(body, limit) {
- let count = 0;
- let index = -1;
- do {
- count++;
- if (count > limit) return void 0;
- index = body.indexOf("&", index + 1);
- } while (index !== -1);
- return count;
- }
- }
- });
- // node_modules/body-parser/index.js
- var require_body_parser = __commonJS({
- "node_modules/body-parser/index.js"(exports2, module2) {
- "use strict";
- exports2 = module2.exports = bodyParser;
- Object.defineProperty(exports2, "json", {
- configurable: true,
- enumerable: true,
- get: () => require_json()
- });
- Object.defineProperty(exports2, "raw", {
- configurable: true,
- enumerable: true,
- get: () => require_raw()
- });
- Object.defineProperty(exports2, "text", {
- configurable: true,
- enumerable: true,
- get: () => require_text()
- });
- Object.defineProperty(exports2, "urlencoded", {
- configurable: true,
- enumerable: true,
- get: () => require_urlencoded()
- });
- function bodyParser() {
- throw new Error("The bodyParser() generic has been split into individual middleware to use instead.");
- }
- }
- });
- // node_modules/merge-descriptors/index.js
- var require_merge_descriptors = __commonJS({
- "node_modules/merge-descriptors/index.js"(exports2, module2) {
- "use strict";
- function mergeDescriptors(destination, source, overwrite = true) {
- if (!destination) {
- throw new TypeError("The `destination` argument is required.");
- }
- if (!source) {
- throw new TypeError("The `source` argument is required.");
- }
- for (const name of Object.getOwnPropertyNames(source)) {
- if (!overwrite && Object.hasOwn(destination, name)) {
- continue;
- }
- const descriptor = Object.getOwnPropertyDescriptor(source, name);
- Object.defineProperty(destination, name, descriptor);
- }
- return destination;
- }
- module2.exports = mergeDescriptors;
- }
- });
- // node_modules/encodeurl/index.js
- var require_encodeurl = __commonJS({
- "node_modules/encodeurl/index.js"(exports2, module2) {
- "use strict";
- module2.exports = encodeUrl;
- var ENCODE_CHARS_REGEXP = /(?:[^\x21\x23-\x3B\x3D\x3F-\x5F\x61-\x7A\x7C\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g;
- var UNMATCHED_SURROGATE_PAIR_REGEXP = /(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g;
- var UNMATCHED_SURROGATE_PAIR_REPLACE = "$1\uFFFD$2";
- function encodeUrl(url) {
- return String(url).replace(UNMATCHED_SURROGATE_PAIR_REGEXP, UNMATCHED_SURROGATE_PAIR_REPLACE).replace(ENCODE_CHARS_REGEXP, encodeURI);
- }
- }
- });
- // node_modules/escape-html/index.js
- var require_escape_html = __commonJS({
- "node_modules/escape-html/index.js"(exports2, module2) {
- "use strict";
- var matchHtmlRegExp = /["'&<>]/;
- module2.exports = escapeHtml;
- function escapeHtml(string) {
- var str = "" + string;
- var match = matchHtmlRegExp.exec(str);
- if (!match) {
- return str;
- }
- var escape2;
- var html = "";
- var index = 0;
- var lastIndex = 0;
- for (index = match.index; index < str.length; index++) {
- switch (str.charCodeAt(index)) {
- case 34:
- escape2 = """;
- break;
- case 38:
- escape2 = "&";
- break;
- case 39:
- escape2 = "'";
- break;
- case 60:
- escape2 = "<";
- break;
- case 62:
- escape2 = ">";
- break;
- default:
- continue;
- }
- if (lastIndex !== index) {
- html += str.substring(lastIndex, index);
- }
- lastIndex = index + 1;
- html += escape2;
- }
- return lastIndex !== index ? html + str.substring(lastIndex, index) : html;
- }
- }
- });
- // node_modules/parseurl/index.js
- var require_parseurl = __commonJS({
- "node_modules/parseurl/index.js"(exports2, module2) {
- "use strict";
- var url = require("url");
- var parse = url.parse;
- var Url = url.Url;
- module2.exports = parseurl;
- module2.exports.original = originalurl;
- function parseurl(req) {
- var url2 = req.url;
- if (url2 === void 0) {
- return void 0;
- }
- var parsed = req._parsedUrl;
- if (fresh(url2, parsed)) {
- return parsed;
- }
- parsed = fastparse(url2);
- parsed._raw = url2;
- return req._parsedUrl = parsed;
- }
- function originalurl(req) {
- var url2 = req.originalUrl;
- if (typeof url2 !== "string") {
- return parseurl(req);
- }
- var parsed = req._parsedOriginalUrl;
- if (fresh(url2, parsed)) {
- return parsed;
- }
- parsed = fastparse(url2);
- parsed._raw = url2;
- return req._parsedOriginalUrl = parsed;
- }
- function fastparse(str) {
- if (typeof str !== "string" || str.charCodeAt(0) !== 47) {
- return parse(str);
- }
- var pathname = str;
- var query = null;
- var search = null;
- for (var i = 1; i < str.length; i++) {
- switch (str.charCodeAt(i)) {
- case 63:
- if (search === null) {
- pathname = str.substring(0, i);
- query = str.substring(i + 1);
- search = str.substring(i);
- }
- break;
- case 9:
- /* \t */
- case 10:
- /* \n */
- case 12:
- /* \f */
- case 13:
- /* \r */
- case 32:
- /* */
- case 35:
- /* # */
- case 160:
- case 65279:
- return parse(str);
- }
- }
- var url2 = Url !== void 0 ? new Url() : {};
- url2.path = str;
- url2.href = str;
- url2.pathname = pathname;
- if (search !== null) {
- url2.query = query;
- url2.search = search;
- }
- return url2;
- }
- function fresh(url2, parsedUrl) {
- return typeof parsedUrl === "object" && parsedUrl !== null && (Url === void 0 || parsedUrl instanceof Url) && parsedUrl._raw === url2;
- }
- }
- });
- // node_modules/finalhandler/index.js
- var require_finalhandler = __commonJS({
- "node_modules/finalhandler/index.js"(exports2, module2) {
- "use strict";
- var debug = require_src()("finalhandler");
- var encodeUrl = require_encodeurl();
- var escapeHtml = require_escape_html();
- var onFinished = require_on_finished();
- var parseUrl = require_parseurl();
- var statuses = require_statuses();
- var isFinished = onFinished.isFinished;
- function createHtmlDocument(message) {
- var body = escapeHtml(message).replaceAll("\n", "<br>").replaceAll(" ", " ");
- return '<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>Error</title>\n</head>\n<body>\n<pre>' + body + "</pre>\n</body>\n</html>\n";
- }
- module2.exports = finalhandler;
- function finalhandler(req, res, options) {
- var opts = options || {};
- var env = opts.env || process.env.NODE_ENV || "development";
- var onerror = opts.onerror;
- return function(err) {
- var headers;
- var msg;
- var status;
- if (!err && res.headersSent) {
- debug("cannot 404 after headers sent");
- return;
- }
- if (err) {
- status = getErrorStatusCode(err);
- if (status === void 0) {
- status = getResponseStatusCode(res);
- } else {
- headers = getErrorHeaders(err);
- }
- msg = getErrorMessage(err, status, env);
- } else {
- status = 404;
- msg = "Cannot " + req.method + " " + encodeUrl(getResourceName(req));
- }
- debug("default %s", status);
- if (err && onerror) {
- setImmediate(onerror, err, req, res);
- }
- if (res.headersSent) {
- debug("cannot %d after headers sent", status);
- if (req.socket) {
- req.socket.destroy();
- }
- return;
- }
- send(req, res, status, headers, msg);
- };
- }
- function getErrorHeaders(err) {
- if (!err.headers || typeof err.headers !== "object") {
- return void 0;
- }
- return { ...err.headers };
- }
- function getErrorMessage(err, status, env) {
- var msg;
- if (env !== "production") {
- msg = err.stack;
- if (!msg && typeof err.toString === "function") {
- msg = err.toString();
- }
- }
- return msg || statuses.message[status];
- }
- function getErrorStatusCode(err) {
- if (typeof err.status === "number" && err.status >= 400 && err.status < 600) {
- return err.status;
- }
- if (typeof err.statusCode === "number" && err.statusCode >= 400 && err.statusCode < 600) {
- return err.statusCode;
- }
- return void 0;
- }
- function getResourceName(req) {
- try {
- return parseUrl.original(req).pathname;
- } catch (e) {
- return "resource";
- }
- }
- function getResponseStatusCode(res) {
- var status = res.statusCode;
- if (typeof status !== "number" || status < 400 || status > 599) {
- status = 500;
- }
- return status;
- }
- function send(req, res, status, headers, message) {
- function write() {
- var body = createHtmlDocument(message);
- res.statusCode = status;
- if (req.httpVersionMajor < 2) {
- res.statusMessage = statuses.message[status];
- }
- res.removeHeader("Content-Encoding");
- res.removeHeader("Content-Language");
- res.removeHeader("Content-Range");
- for (const [key, value] of Object.entries(headers ?? {})) {
- res.setHeader(key, value);
- }
- res.setHeader("Content-Security-Policy", "default-src 'none'");
- res.setHeader("X-Content-Type-Options", "nosniff");
- res.setHeader("Content-Type", "text/html; charset=utf-8");
- res.setHeader("Content-Length", Buffer.byteLength(body, "utf8"));
- if (req.method === "HEAD") {
- res.end();
- return;
- }
- res.end(body, "utf8");
- }
- if (isFinished(req)) {
- write();
- return;
- }
- req.unpipe();
- onFinished(req, write);
- req.resume();
- }
- }
- });
- // node_modules/express/lib/view.js
- var require_view = __commonJS({
- "node_modules/express/lib/view.js"(exports2, module2) {
- "use strict";
- var debug = require_src()("express:view");
- var path2 = require("node:path");
- var fs4 = require("node:fs");
- var dirname = path2.dirname;
- var basename = path2.basename;
- var extname = path2.extname;
- var join2 = path2.join;
- var resolve = path2.resolve;
- module2.exports = View;
- function View(name, options) {
- var opts = options || {};
- this.defaultEngine = opts.defaultEngine;
- this.ext = extname(name);
- this.name = name;
- this.root = opts.root;
- if (!this.ext && !this.defaultEngine) {
- throw new Error("No default engine was specified and no extension was provided.");
- }
- var fileName = name;
- if (!this.ext) {
- this.ext = this.defaultEngine[0] !== "." ? "." + this.defaultEngine : this.defaultEngine;
- fileName += this.ext;
- }
- if (!opts.engines[this.ext]) {
- var mod = this.ext.slice(1);
- debug('require "%s"', mod);
- var fn = require(mod).__express;
- if (typeof fn !== "function") {
- throw new Error('Module "' + mod + '" does not provide a view engine.');
- }
- opts.engines[this.ext] = fn;
- }
- this.engine = opts.engines[this.ext];
- this.path = this.lookup(fileName);
- }
- View.prototype.lookup = function lookup(name) {
- var path3;
- var roots = [].concat(this.root);
- debug('lookup "%s"', name);
- for (var i = 0; i < roots.length && !path3; i++) {
- var root = roots[i];
- var loc = resolve(root, name);
- var dir = dirname(loc);
- var file = basename(loc);
- path3 = this.resolve(dir, file);
- }
- return path3;
- };
- View.prototype.render = function render(options, callback) {
- var sync = true;
- debug('render "%s"', this.path);
- this.engine(this.path, options, function onRender() {
- if (!sync) {
- return callback.apply(this, arguments);
- }
- var args = new Array(arguments.length);
- var cntx = this;
- for (var i = 0; i < arguments.length; i++) {
- args[i] = arguments[i];
- }
- return process.nextTick(function renderTick() {
- return callback.apply(cntx, args);
- });
- });
- sync = false;
- };
- View.prototype.resolve = function resolve2(dir, file) {
- var ext = this.ext;
- var path3 = join2(dir, file);
- var stat = tryStat(path3);
- if (stat && stat.isFile()) {
- return path3;
- }
- path3 = join2(dir, basename(file, ext), "index" + ext);
- stat = tryStat(path3);
- if (stat && stat.isFile()) {
- return path3;
- }
- };
- function tryStat(path3) {
- debug('stat "%s"', path3);
- try {
- return fs4.statSync(path3);
- } catch (e) {
- return void 0;
- }
- }
- }
- });
- // node_modules/etag/index.js
- var require_etag = __commonJS({
- "node_modules/etag/index.js"(exports2, module2) {
- "use strict";
- module2.exports = etag;
- var crypto2 = require("crypto");
- var Stats = require("fs").Stats;
- var toString2 = Object.prototype.toString;
- function entitytag(entity) {
- if (entity.length === 0) {
- return '"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"';
- }
- var hash = crypto2.createHash("sha1").update(entity, "utf8").digest("base64").substring(0, 27);
- var len = typeof entity === "string" ? Buffer.byteLength(entity, "utf8") : entity.length;
- return '"' + len.toString(16) + "-" + hash + '"';
- }
- function etag(entity, options) {
- if (entity == null) {
- throw new TypeError("argument entity is required");
- }
- var isStats = isstats(entity);
- var weak = options && typeof options.weak === "boolean" ? options.weak : isStats;
- if (!isStats && typeof entity !== "string" && !Buffer.isBuffer(entity)) {
- throw new TypeError("argument entity must be string, Buffer, or fs.Stats");
- }
- var tag = isStats ? stattag(entity) : entitytag(entity);
- return weak ? "W/" + tag : tag;
- }
- function isstats(obj) {
- if (typeof Stats === "function" && obj instanceof Stats) {
- return true;
- }
- return obj && typeof obj === "object" && "ctime" in obj && toString2.call(obj.ctime) === "[object Date]" && "mtime" in obj && toString2.call(obj.mtime) === "[object Date]" && "ino" in obj && typeof obj.ino === "number" && "size" in obj && typeof obj.size === "number";
- }
- function stattag(stat) {
- var mtime = stat.mtime.getTime().toString(16);
- var size = stat.size.toString(16);
- return '"' + size + "-" + mtime + '"';
- }
- }
- });
- // node_modules/forwarded/index.js
- var require_forwarded = __commonJS({
- "node_modules/forwarded/index.js"(exports2, module2) {
- "use strict";
- module2.exports = forwarded;
- function forwarded(req) {
- if (!req) {
- throw new TypeError("argument req is required");
- }
- var proxyAddrs = parse(req.headers["x-forwarded-for"] || "");
- var socketAddr = getSocketAddr(req);
- var addrs = [socketAddr].concat(proxyAddrs);
- return addrs;
- }
- function getSocketAddr(req) {
- return req.socket ? req.socket.remoteAddress : req.connection.remoteAddress;
- }
- function parse(header) {
- var end = header.length;
- var list = [];
- var start = header.length;
- for (var i = header.length - 1; i >= 0; i--) {
- switch (header.charCodeAt(i)) {
- case 32:
- if (start === end) {
- start = end = i;
- }
- break;
- case 44:
- if (start !== end) {
- list.push(header.substring(start, end));
- }
- start = end = i;
- break;
- default:
- start = i;
- break;
- }
- }
- if (start !== end) {
- list.push(header.substring(start, end));
- }
- return list;
- }
- }
- });
- // node_modules/ipaddr.js/lib/ipaddr.js
- var require_ipaddr = __commonJS({
- "node_modules/ipaddr.js/lib/ipaddr.js"(exports2, module2) {
- (function() {
- var expandIPv6, ipaddr, ipv4Part, ipv4Regexes, ipv6Part, ipv6Regexes, matchCIDR, root, zoneIndex;
- ipaddr = {};
- root = this;
- if (typeof module2 !== "undefined" && module2 !== null && module2.exports) {
- module2.exports = ipaddr;
- } else {
- root["ipaddr"] = ipaddr;
- }
- matchCIDR = function(first, second, partSize, cidrBits) {
- var part, shift;
- if (first.length !== second.length) {
- throw new Error("ipaddr: cannot match CIDR for objects with different lengths");
- }
- part = 0;
- while (cidrBits > 0) {
- shift = partSize - cidrBits;
- if (shift < 0) {
- shift = 0;
- }
- if (first[part] >> shift !== second[part] >> shift) {
- return false;
- }
- cidrBits -= partSize;
- part += 1;
- }
- return true;
- };
- ipaddr.subnetMatch = function(address, rangeList, defaultName) {
- var k, len, rangeName, rangeSubnets, subnet;
- if (defaultName == null) {
- defaultName = "unicast";
- }
- for (rangeName in rangeList) {
- rangeSubnets = rangeList[rangeName];
- if (rangeSubnets[0] && !(rangeSubnets[0] instanceof Array)) {
- rangeSubnets = [rangeSubnets];
- }
- for (k = 0, len = rangeSubnets.length; k < len; k++) {
- subnet = rangeSubnets[k];
- if (address.kind() === subnet[0].kind()) {
- if (address.match.apply(address, subnet)) {
- return rangeName;
- }
- }
- }
- }
- return defaultName;
- };
- ipaddr.IPv4 = (function() {
- function IPv4(octets) {
- var k, len, octet;
- if (octets.length !== 4) {
- throw new Error("ipaddr: ipv4 octet count should be 4");
- }
- for (k = 0, len = octets.length; k < len; k++) {
- octet = octets[k];
- if (!(0 <= octet && octet <= 255)) {
- throw new Error("ipaddr: ipv4 octet should fit in 8 bits");
- }
- }
- this.octets = octets;
- }
- IPv4.prototype.kind = function() {
- return "ipv4";
- };
- IPv4.prototype.toString = function() {
- return this.octets.join(".");
- };
- IPv4.prototype.toNormalizedString = function() {
- return this.toString();
- };
- IPv4.prototype.toByteArray = function() {
- return this.octets.slice(0);
- };
- IPv4.prototype.match = function(other, cidrRange) {
- var ref;
- if (cidrRange === void 0) {
- ref = other, other = ref[0], cidrRange = ref[1];
- }
- if (other.kind() !== "ipv4") {
- throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");
- }
- return matchCIDR(this.octets, other.octets, 8, cidrRange);
- };
- IPv4.prototype.SpecialRanges = {
- unspecified: [[new IPv4([0, 0, 0, 0]), 8]],
- broadcast: [[new IPv4([255, 255, 255, 255]), 32]],
- multicast: [[new IPv4([224, 0, 0, 0]), 4]],
- linkLocal: [[new IPv4([169, 254, 0, 0]), 16]],
- loopback: [[new IPv4([127, 0, 0, 0]), 8]],
- carrierGradeNat: [[new IPv4([100, 64, 0, 0]), 10]],
- "private": [[new IPv4([10, 0, 0, 0]), 8], [new IPv4([172, 16, 0, 0]), 12], [new IPv4([192, 168, 0, 0]), 16]],
- reserved: [[new IPv4([192, 0, 0, 0]), 24], [new IPv4([192, 0, 2, 0]), 24], [new IPv4([192, 88, 99, 0]), 24], [new IPv4([198, 51, 100, 0]), 24], [new IPv4([203, 0, 113, 0]), 24], [new IPv4([240, 0, 0, 0]), 4]]
- };
- IPv4.prototype.range = function() {
- return ipaddr.subnetMatch(this, this.SpecialRanges);
- };
- IPv4.prototype.toIPv4MappedAddress = function() {
- return ipaddr.IPv6.parse("::ffff:" + this.toString());
- };
- IPv4.prototype.prefixLengthFromSubnetMask = function() {
- var cidr, i, k, octet, stop, zeros, zerotable;
- zerotable = {
- 0: 8,
- 128: 7,
- 192: 6,
- 224: 5,
- 240: 4,
- 248: 3,
- 252: 2,
- 254: 1,
- 255: 0
- };
- cidr = 0;
- stop = false;
- for (i = k = 3; k >= 0; i = k += -1) {
- octet = this.octets[i];
- if (octet in zerotable) {
- zeros = zerotable[octet];
- if (stop && zeros !== 0) {
- return null;
- }
- if (zeros !== 8) {
- stop = true;
- }
- cidr += zeros;
- } else {
- return null;
- }
- }
- return 32 - cidr;
- };
- return IPv4;
- })();
- ipv4Part = "(0?\\d+|0x[a-f0-9]+)";
- ipv4Regexes = {
- fourOctet: new RegExp("^" + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "$", "i"),
- longValue: new RegExp("^" + ipv4Part + "$", "i")
- };
- ipaddr.IPv4.parser = function(string) {
- var match, parseIntAuto, part, shift, value;
- parseIntAuto = function(string2) {
- if (string2[0] === "0" && string2[1] !== "x") {
- return parseInt(string2, 8);
- } else {
- return parseInt(string2);
- }
- };
- if (match = string.match(ipv4Regexes.fourOctet)) {
- return (function() {
- var k, len, ref, results;
- ref = match.slice(1, 6);
- results = [];
- for (k = 0, len = ref.length; k < len; k++) {
- part = ref[k];
- results.push(parseIntAuto(part));
- }
- return results;
- })();
- } else if (match = string.match(ipv4Regexes.longValue)) {
- value = parseIntAuto(match[1]);
- if (value > 4294967295 || value < 0) {
- throw new Error("ipaddr: address outside defined range");
- }
- return (function() {
- var k, results;
- results = [];
- for (shift = k = 0; k <= 24; shift = k += 8) {
- results.push(value >> shift & 255);
- }
- return results;
- })().reverse();
- } else {
- return null;
- }
- };
- ipaddr.IPv6 = (function() {
- function IPv6(parts, zoneId) {
- var i, k, l, len, part, ref;
- if (parts.length === 16) {
- this.parts = [];
- for (i = k = 0; k <= 14; i = k += 2) {
- this.parts.push(parts[i] << 8 | parts[i + 1]);
- }
- } else if (parts.length === 8) {
- this.parts = parts;
- } else {
- throw new Error("ipaddr: ipv6 part count should be 8 or 16");
- }
- ref = this.parts;
- for (l = 0, len = ref.length; l < len; l++) {
- part = ref[l];
- if (!(0 <= part && part <= 65535)) {
- throw new Error("ipaddr: ipv6 part should fit in 16 bits");
- }
- }
- if (zoneId) {
- this.zoneId = zoneId;
- }
- }
- IPv6.prototype.kind = function() {
- return "ipv6";
- };
- IPv6.prototype.toString = function() {
- return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/, "::");
- };
- IPv6.prototype.toRFC5952String = function() {
- var bestMatchIndex, bestMatchLength, match, regex, string;
- regex = /((^|:)(0(:|$)){2,})/g;
- string = this.toNormalizedString();
- bestMatchIndex = 0;
- bestMatchLength = -1;
- while (match = regex.exec(string)) {
- if (match[0].length > bestMatchLength) {
- bestMatchIndex = match.index;
- bestMatchLength = match[0].length;
- }
- }
- if (bestMatchLength < 0) {
- return string;
- }
- return string.substring(0, bestMatchIndex) + "::" + string.substring(bestMatchIndex + bestMatchLength);
- };
- IPv6.prototype.toByteArray = function() {
- var bytes, k, len, part, ref;
- bytes = [];
- ref = this.parts;
- for (k = 0, len = ref.length; k < len; k++) {
- part = ref[k];
- bytes.push(part >> 8);
- bytes.push(part & 255);
- }
- return bytes;
- };
- IPv6.prototype.toNormalizedString = function() {
- var addr, part, suffix;
- addr = (function() {
- var k, len, ref, results;
- ref = this.parts;
- results = [];
- for (k = 0, len = ref.length; k < len; k++) {
- part = ref[k];
- results.push(part.toString(16));
- }
- return results;
- }).call(this).join(":");
- suffix = "";
- if (this.zoneId) {
- suffix = "%" + this.zoneId;
- }
- return addr + suffix;
- };
- IPv6.prototype.toFixedLengthString = function() {
- var addr, part, suffix;
- addr = (function() {
- var k, len, ref, results;
- ref = this.parts;
- results = [];
- for (k = 0, len = ref.length; k < len; k++) {
- part = ref[k];
- results.push(part.toString(16).padStart(4, "0"));
- }
- return results;
- }).call(this).join(":");
- suffix = "";
- if (this.zoneId) {
- suffix = "%" + this.zoneId;
- }
- return addr + suffix;
- };
- IPv6.prototype.match = function(other, cidrRange) {
- var ref;
- if (cidrRange === void 0) {
- ref = other, other = ref[0], cidrRange = ref[1];
- }
- if (other.kind() !== "ipv6") {
- throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");
- }
- return matchCIDR(this.parts, other.parts, 16, cidrRange);
- };
- IPv6.prototype.SpecialRanges = {
- unspecified: [new IPv6([0, 0, 0, 0, 0, 0, 0, 0]), 128],
- linkLocal: [new IPv6([65152, 0, 0, 0, 0, 0, 0, 0]), 10],
- multicast: [new IPv6([65280, 0, 0, 0, 0, 0, 0, 0]), 8],
- loopback: [new IPv6([0, 0, 0, 0, 0, 0, 0, 1]), 128],
- uniqueLocal: [new IPv6([64512, 0, 0, 0, 0, 0, 0, 0]), 7],
- ipv4Mapped: [new IPv6([0, 0, 0, 0, 0, 65535, 0, 0]), 96],
- rfc6145: [new IPv6([0, 0, 0, 0, 65535, 0, 0, 0]), 96],
- rfc6052: [new IPv6([100, 65435, 0, 0, 0, 0, 0, 0]), 96],
- "6to4": [new IPv6([8194, 0, 0, 0, 0, 0, 0, 0]), 16],
- teredo: [new IPv6([8193, 0, 0, 0, 0, 0, 0, 0]), 32],
- reserved: [[new IPv6([8193, 3512, 0, 0, 0, 0, 0, 0]), 32]]
- };
- IPv6.prototype.range = function() {
- return ipaddr.subnetMatch(this, this.SpecialRanges);
- };
- IPv6.prototype.isIPv4MappedAddress = function() {
- return this.range() === "ipv4Mapped";
- };
- IPv6.prototype.toIPv4Address = function() {
- var high, low, ref;
- if (!this.isIPv4MappedAddress()) {
- throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");
- }
- ref = this.parts.slice(-2), high = ref[0], low = ref[1];
- return new ipaddr.IPv4([high >> 8, high & 255, low >> 8, low & 255]);
- };
- IPv6.prototype.prefixLengthFromSubnetMask = function() {
- var cidr, i, k, part, stop, zeros, zerotable;
- zerotable = {
- 0: 16,
- 32768: 15,
- 49152: 14,
- 57344: 13,
- 61440: 12,
- 63488: 11,
- 64512: 10,
- 65024: 9,
- 65280: 8,
- 65408: 7,
- 65472: 6,
- 65504: 5,
- 65520: 4,
- 65528: 3,
- 65532: 2,
- 65534: 1,
- 65535: 0
- };
- cidr = 0;
- stop = false;
- for (i = k = 7; k >= 0; i = k += -1) {
- part = this.parts[i];
- if (part in zerotable) {
- zeros = zerotable[part];
- if (stop && zeros !== 0) {
- return null;
- }
- if (zeros !== 16) {
- stop = true;
- }
- cidr += zeros;
- } else {
- return null;
- }
- }
- return 128 - cidr;
- };
- return IPv6;
- })();
- ipv6Part = "(?:[0-9a-f]+::?)+";
- zoneIndex = "%[0-9a-z]{1,}";
- ipv6Regexes = {
- zoneIndex: new RegExp(zoneIndex, "i"),
- "native": new RegExp("^(::)?(" + ipv6Part + ")?([0-9a-f]+)?(::)?(" + zoneIndex + ")?$", "i"),
- transitional: new RegExp("^((?:" + ipv6Part + ")|(?:::)(?:" + ipv6Part + ")?)" + (ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part) + ("(" + zoneIndex + ")?$"), "i")
- };
- expandIPv6 = function(string, parts) {
- var colonCount, lastColon, part, replacement, replacementCount, zoneId;
- if (string.indexOf("::") !== string.lastIndexOf("::")) {
- return null;
- }
- zoneId = (string.match(ipv6Regexes["zoneIndex"]) || [])[0];
- if (zoneId) {
- zoneId = zoneId.substring(1);
- string = string.replace(/%.+$/, "");
- }
- colonCount = 0;
- lastColon = -1;
- while ((lastColon = string.indexOf(":", lastColon + 1)) >= 0) {
- colonCount++;
- }
- if (string.substr(0, 2) === "::") {
- colonCount--;
- }
- if (string.substr(-2, 2) === "::") {
- colonCount--;
- }
- if (colonCount > parts) {
- return null;
- }
- replacementCount = parts - colonCount;
- replacement = ":";
- while (replacementCount--) {
- replacement += "0:";
- }
- string = string.replace("::", replacement);
- if (string[0] === ":") {
- string = string.slice(1);
- }
- if (string[string.length - 1] === ":") {
- string = string.slice(0, -1);
- }
- parts = (function() {
- var k, len, ref, results;
- ref = string.split(":");
- results = [];
- for (k = 0, len = ref.length; k < len; k++) {
- part = ref[k];
- results.push(parseInt(part, 16));
- }
- return results;
- })();
- return {
- parts,
- zoneId
- };
- };
- ipaddr.IPv6.parser = function(string) {
- var addr, k, len, match, octet, octets, zoneId;
- if (ipv6Regexes["native"].test(string)) {
- return expandIPv6(string, 8);
- } else if (match = string.match(ipv6Regexes["transitional"])) {
- zoneId = match[6] || "";
- addr = expandIPv6(match[1].slice(0, -1) + zoneId, 6);
- if (addr.parts) {
- octets = [parseInt(match[2]), parseInt(match[3]), parseInt(match[4]), parseInt(match[5])];
- for (k = 0, len = octets.length; k < len; k++) {
- octet = octets[k];
- if (!(0 <= octet && octet <= 255)) {
- return null;
- }
- }
- addr.parts.push(octets[0] << 8 | octets[1]);
- addr.parts.push(octets[2] << 8 | octets[3]);
- return {
- parts: addr.parts,
- zoneId: addr.zoneId
- };
- }
- }
- return null;
- };
- ipaddr.IPv4.isIPv4 = ipaddr.IPv6.isIPv6 = function(string) {
- return this.parser(string) !== null;
- };
- ipaddr.IPv4.isValid = function(string) {
- var e;
- try {
- new this(this.parser(string));
- return true;
- } catch (error1) {
- e = error1;
- return false;
- }
- };
- ipaddr.IPv4.isValidFourPartDecimal = function(string) {
- if (ipaddr.IPv4.isValid(string) && string.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/)) {
- return true;
- } else {
- return false;
- }
- };
- ipaddr.IPv6.isValid = function(string) {
- var addr, e;
- if (typeof string === "string" && string.indexOf(":") === -1) {
- return false;
- }
- try {
- addr = this.parser(string);
- new this(addr.parts, addr.zoneId);
- return true;
- } catch (error1) {
- e = error1;
- return false;
- }
- };
- ipaddr.IPv4.parse = function(string) {
- var parts;
- parts = this.parser(string);
- if (parts === null) {
- throw new Error("ipaddr: string is not formatted like ip address");
- }
- return new this(parts);
- };
- ipaddr.IPv6.parse = function(string) {
- var addr;
- addr = this.parser(string);
- if (addr.parts === null) {
- throw new Error("ipaddr: string is not formatted like ip address");
- }
- return new this(addr.parts, addr.zoneId);
- };
- ipaddr.IPv4.parseCIDR = function(string) {
- var maskLength, match, parsed;
- if (match = string.match(/^(.+)\/(\d+)$/)) {
- maskLength = parseInt(match[2]);
- if (maskLength >= 0 && maskLength <= 32) {
- parsed = [this.parse(match[1]), maskLength];
- Object.defineProperty(parsed, "toString", {
- value: function() {
- return this.join("/");
- }
- });
- return parsed;
- }
- }
- throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range");
- };
- ipaddr.IPv4.subnetMaskFromPrefixLength = function(prefix) {
- var filledOctetCount, j, octets;
- prefix = parseInt(prefix);
- if (prefix < 0 || prefix > 32) {
- throw new Error("ipaddr: invalid IPv4 prefix length");
- }
- octets = [0, 0, 0, 0];
- j = 0;
- filledOctetCount = Math.floor(prefix / 8);
- while (j < filledOctetCount) {
- octets[j] = 255;
- j++;
- }
- if (filledOctetCount < 4) {
- octets[filledOctetCount] = Math.pow(2, prefix % 8) - 1 << 8 - prefix % 8;
- }
- return new this(octets);
- };
- ipaddr.IPv4.broadcastAddressFromCIDR = function(string) {
- var cidr, error, i, ipInterfaceOctets, octets, subnetMaskOctets;
- try {
- cidr = this.parseCIDR(string);
- ipInterfaceOctets = cidr[0].toByteArray();
- subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray();
- octets = [];
- i = 0;
- while (i < 4) {
- octets.push(parseInt(ipInterfaceOctets[i], 10) | parseInt(subnetMaskOctets[i], 10) ^ 255);
- i++;
- }
- return new this(octets);
- } catch (error1) {
- error = error1;
- throw new Error("ipaddr: the address does not have IPv4 CIDR format");
- }
- };
- ipaddr.IPv4.networkAddressFromCIDR = function(string) {
- var cidr, error, i, ipInterfaceOctets, octets, subnetMaskOctets;
- try {
- cidr = this.parseCIDR(string);
- ipInterfaceOctets = cidr[0].toByteArray();
- subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray();
- octets = [];
- i = 0;
- while (i < 4) {
- octets.push(parseInt(ipInterfaceOctets[i], 10) & parseInt(subnetMaskOctets[i], 10));
- i++;
- }
- return new this(octets);
- } catch (error1) {
- error = error1;
- throw new Error("ipaddr: the address does not have IPv4 CIDR format");
- }
- };
- ipaddr.IPv6.parseCIDR = function(string) {
- var maskLength, match, parsed;
- if (match = string.match(/^(.+)\/(\d+)$/)) {
- maskLength = parseInt(match[2]);
- if (maskLength >= 0 && maskLength <= 128) {
- parsed = [this.parse(match[1]), maskLength];
- Object.defineProperty(parsed, "toString", {
- value: function() {
- return this.join("/");
- }
- });
- return parsed;
- }
- }
- throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range");
- };
- ipaddr.isValid = function(string) {
- return ipaddr.IPv6.isValid(string) || ipaddr.IPv4.isValid(string);
- };
- ipaddr.parse = function(string) {
- if (ipaddr.IPv6.isValid(string)) {
- return ipaddr.IPv6.parse(string);
- } else if (ipaddr.IPv4.isValid(string)) {
- return ipaddr.IPv4.parse(string);
- } else {
- throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format");
- }
- };
- ipaddr.parseCIDR = function(string) {
- var e;
- try {
- return ipaddr.IPv6.parseCIDR(string);
- } catch (error1) {
- e = error1;
- try {
- return ipaddr.IPv4.parseCIDR(string);
- } catch (error12) {
- e = error12;
- throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format");
- }
- }
- };
- ipaddr.fromByteArray = function(bytes) {
- var length;
- length = bytes.length;
- if (length === 4) {
- return new ipaddr.IPv4(bytes);
- } else if (length === 16) {
- return new ipaddr.IPv6(bytes);
- } else {
- throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address");
- }
- };
- ipaddr.process = function(string) {
- var addr;
- addr = this.parse(string);
- if (addr.kind() === "ipv6" && addr.isIPv4MappedAddress()) {
- return addr.toIPv4Address();
- } else {
- return addr;
- }
- };
- }).call(exports2);
- }
- });
- // node_modules/proxy-addr/index.js
- var require_proxy_addr = __commonJS({
- "node_modules/proxy-addr/index.js"(exports2, module2) {
- "use strict";
- module2.exports = proxyaddr;
- module2.exports.all = alladdrs;
- module2.exports.compile = compile;
- var forwarded = require_forwarded();
- var ipaddr = require_ipaddr();
- var DIGIT_REGEXP = /^[0-9]+$/;
- var isip = ipaddr.isValid;
- var parseip = ipaddr.parse;
- var IP_RANGES = {
- linklocal: ["169.254.0.0/16", "fe80::/10"],
- loopback: ["127.0.0.1/8", "::1/128"],
- uniquelocal: ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "fc00::/7"]
- };
- function alladdrs(req, trust) {
- var addrs = forwarded(req);
- if (!trust) {
- return addrs;
- }
- if (typeof trust !== "function") {
- trust = compile(trust);
- }
- for (var i = 0; i < addrs.length - 1; i++) {
- if (trust(addrs[i], i)) continue;
- addrs.length = i + 1;
- }
- return addrs;
- }
- function compile(val) {
- if (!val) {
- throw new TypeError("argument is required");
- }
- var trust;
- if (typeof val === "string") {
- trust = [val];
- } else if (Array.isArray(val)) {
- trust = val.slice();
- } else {
- throw new TypeError("unsupported trust argument");
- }
- for (var i = 0; i < trust.length; i++) {
- val = trust[i];
- if (!Object.prototype.hasOwnProperty.call(IP_RANGES, val)) {
- continue;
- }
- val = IP_RANGES[val];
- trust.splice.apply(trust, [i, 1].concat(val));
- i += val.length - 1;
- }
- return compileTrust(compileRangeSubnets(trust));
- }
- function compileRangeSubnets(arr) {
- var rangeSubnets = new Array(arr.length);
- for (var i = 0; i < arr.length; i++) {
- rangeSubnets[i] = parseipNotation(arr[i]);
- }
- return rangeSubnets;
- }
- function compileTrust(rangeSubnets) {
- var len = rangeSubnets.length;
- return len === 0 ? trustNone : len === 1 ? trustSingle(rangeSubnets[0]) : trustMulti(rangeSubnets);
- }
- function parseipNotation(note) {
- var pos = note.lastIndexOf("/");
- var str = pos !== -1 ? note.substring(0, pos) : note;
- if (!isip(str)) {
- throw new TypeError("invalid IP address: " + str);
- }
- var ip = parseip(str);
- if (pos === -1 && ip.kind() === "ipv6" && ip.isIPv4MappedAddress()) {
- ip = ip.toIPv4Address();
- }
- var max = ip.kind() === "ipv6" ? 128 : 32;
- var range = pos !== -1 ? note.substring(pos + 1, note.length) : null;
- if (range === null) {
- range = max;
- } else if (DIGIT_REGEXP.test(range)) {
- range = parseInt(range, 10);
- } else if (ip.kind() === "ipv4" && isip(range)) {
- range = parseNetmask(range);
- } else {
- range = null;
- }
- if (range <= 0 || range > max) {
- throw new TypeError("invalid range on address: " + note);
- }
- return [ip, range];
- }
- function parseNetmask(netmask) {
- var ip = parseip(netmask);
- var kind = ip.kind();
- return kind === "ipv4" ? ip.prefixLengthFromSubnetMask() : null;
- }
- function proxyaddr(req, trust) {
- if (!req) {
- throw new TypeError("req argument is required");
- }
- if (!trust) {
- throw new TypeError("trust argument is required");
- }
- var addrs = alladdrs(req, trust);
- var addr = addrs[addrs.length - 1];
- return addr;
- }
- function trustNone() {
- return false;
- }
- function trustMulti(subnets) {
- return function trust(addr) {
- if (!isip(addr)) return false;
- var ip = parseip(addr);
- var ipconv;
- var kind = ip.kind();
- for (var i = 0; i < subnets.length; i++) {
- var subnet = subnets[i];
- var subnetip = subnet[0];
- var subnetkind = subnetip.kind();
- var subnetrange = subnet[1];
- var trusted = ip;
- if (kind !== subnetkind) {
- if (subnetkind === "ipv4" && !ip.isIPv4MappedAddress()) {
- continue;
- }
- if (!ipconv) {
- ipconv = subnetkind === "ipv4" ? ip.toIPv4Address() : ip.toIPv4MappedAddress();
- }
- trusted = ipconv;
- }
- if (trusted.match(subnetip, subnetrange)) {
- return true;
- }
- }
- return false;
- };
- }
- function trustSingle(subnet) {
- var subnetip = subnet[0];
- var subnetkind = subnetip.kind();
- var subnetisipv4 = subnetkind === "ipv4";
- var subnetrange = subnet[1];
- return function trust(addr) {
- if (!isip(addr)) return false;
- var ip = parseip(addr);
- var kind = ip.kind();
- if (kind !== subnetkind) {
- if (subnetisipv4 && !ip.isIPv4MappedAddress()) {
- return false;
- }
- ip = subnetisipv4 ? ip.toIPv4Address() : ip.toIPv4MappedAddress();
- }
- return ip.match(subnetip, subnetrange);
- };
- }
- }
- });
- // node_modules/express/lib/utils.js
- var require_utils3 = __commonJS({
- "node_modules/express/lib/utils.js"(exports2) {
- "use strict";
- var { METHODS } = require("node:http");
- var contentType = require_content_type();
- var etag = require_etag();
- var mime = require_mime_types();
- var proxyaddr = require_proxy_addr();
- var qs = require_lib2();
- var querystring = require("node:querystring");
- var { Buffer: Buffer2 } = require("node:buffer");
- exports2.methods = METHODS.map((method) => method.toLowerCase());
- exports2.etag = createETagGenerator({ weak: false });
- exports2.wetag = createETagGenerator({ weak: true });
- exports2.normalizeType = function(type) {
- return ~type.indexOf("/") ? acceptParams(type) : { value: mime.lookup(type) || "application/octet-stream", params: {} };
- };
- exports2.normalizeTypes = function(types) {
- return types.map(exports2.normalizeType);
- };
- function acceptParams(str) {
- var length = str.length;
- var colonIndex = str.indexOf(";");
- var index = colonIndex === -1 ? length : colonIndex;
- var ret = { value: str.slice(0, index).trim(), quality: 1, params: {} };
- while (index < length) {
- var splitIndex = str.indexOf("=", index);
- if (splitIndex === -1) break;
- var colonIndex = str.indexOf(";", index);
- var endIndex = colonIndex === -1 ? length : colonIndex;
- if (splitIndex > endIndex) {
- index = str.lastIndexOf(";", splitIndex - 1) + 1;
- continue;
- }
- var key = str.slice(index, splitIndex).trim();
- var value = str.slice(splitIndex + 1, endIndex).trim();
- if (key === "q") {
- ret.quality = parseFloat(value);
- } else {
- ret.params[key] = value;
- }
- index = endIndex + 1;
- }
- return ret;
- }
- exports2.compileETag = function(val) {
- var fn;
- if (typeof val === "function") {
- return val;
- }
- switch (val) {
- case true:
- case "weak":
- fn = exports2.wetag;
- break;
- case false:
- break;
- case "strong":
- fn = exports2.etag;
- break;
- default:
- throw new TypeError("unknown value for etag function: " + val);
- }
- return fn;
- };
- exports2.compileQueryParser = function compileQueryParser(val) {
- var fn;
- if (typeof val === "function") {
- return val;
- }
- switch (val) {
- case true:
- case "simple":
- fn = querystring.parse;
- break;
- case false:
- break;
- case "extended":
- fn = parseExtendedQueryString;
- break;
- default:
- throw new TypeError("unknown value for query parser function: " + val);
- }
- return fn;
- };
- exports2.compileTrust = function(val) {
- if (typeof val === "function") return val;
- if (val === true) {
- return function() {
- return true;
- };
- }
- if (typeof val === "number") {
- return function(a, i) {
- return i < val;
- };
- }
- if (typeof val === "string") {
- val = val.split(",").map(function(v) {
- return v.trim();
- });
- }
- return proxyaddr.compile(val || []);
- };
- exports2.setCharset = function setCharset(type, charset) {
- if (!type || !charset) {
- return type;
- }
- var parsed = contentType.parse(type);
- parsed.parameters.charset = charset;
- return contentType.format(parsed);
- };
- function createETagGenerator(options) {
- return function generateETag(body, encoding) {
- var buf = !Buffer2.isBuffer(body) ? Buffer2.from(body, encoding) : body;
- return etag(buf, options);
- };
- }
- function parseExtendedQueryString(str) {
- return qs.parse(str, {
- allowPrototypes: true
- });
- }
- }
- });
- // node_modules/wrappy/wrappy.js
- var require_wrappy = __commonJS({
- "node_modules/wrappy/wrappy.js"(exports2, module2) {
- module2.exports = wrappy;
- function wrappy(fn, cb) {
- if (fn && cb) return wrappy(fn)(cb);
- if (typeof fn !== "function")
- throw new TypeError("need wrapper function");
- Object.keys(fn).forEach(function(k) {
- wrapper[k] = fn[k];
- });
- return wrapper;
- function wrapper() {
- var args = new Array(arguments.length);
- for (var i = 0; i < args.length; i++) {
- args[i] = arguments[i];
- }
- var ret = fn.apply(this, args);
- var cb2 = args[args.length - 1];
- if (typeof ret === "function" && ret !== cb2) {
- Object.keys(cb2).forEach(function(k) {
- ret[k] = cb2[k];
- });
- }
- return ret;
- }
- }
- }
- });
- // node_modules/once/once.js
- var require_once = __commonJS({
- "node_modules/once/once.js"(exports2, module2) {
- var wrappy = require_wrappy();
- module2.exports = wrappy(once);
- module2.exports.strict = wrappy(onceStrict);
- once.proto = once(function() {
- Object.defineProperty(Function.prototype, "once", {
- value: function() {
- return once(this);
- },
- configurable: true
- });
- Object.defineProperty(Function.prototype, "onceStrict", {
- value: function() {
- return onceStrict(this);
- },
- configurable: true
- });
- });
- function once(fn) {
- var f = function() {
- if (f.called) return f.value;
- f.called = true;
- return f.value = fn.apply(this, arguments);
- };
- f.called = false;
- return f;
- }
- function onceStrict(fn) {
- var f = function() {
- if (f.called)
- throw new Error(f.onceError);
- f.called = true;
- return f.value = fn.apply(this, arguments);
- };
- var name = fn.name || "Function wrapped with `once`";
- f.onceError = name + " shouldn't be called more than once";
- f.called = false;
- return f;
- }
- }
- });
- // node_modules/is-promise/index.js
- var require_is_promise = __commonJS({
- "node_modules/is-promise/index.js"(exports2, module2) {
- module2.exports = isPromise;
- module2.exports.default = isPromise;
- function isPromise(obj) {
- return !!obj && (typeof obj === "object" || typeof obj === "function") && typeof obj.then === "function";
- }
- }
- });
- // node_modules/path-to-regexp/dist/index.js
- var require_dist = __commonJS({
- "node_modules/path-to-regexp/dist/index.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", { value: true });
- exports2.PathError = exports2.TokenData = void 0;
- exports2.parse = parse;
- exports2.compile = compile;
- exports2.match = match;
- exports2.pathToRegexp = pathToRegexp;
- exports2.stringify = stringify;
- var DEFAULT_DELIMITER = "/";
- var NOOP_VALUE = (value) => value;
- var ID_START = /^[$_\p{ID_Start}]$/u;
- var ID_CONTINUE = /^[$\u200c\u200d\p{ID_Continue}]$/u;
- var ID = /^[$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*$/u;
- function escapeText(str) {
- return str.replace(/[{}()\[\]+?!:*\\]/g, "\\$&");
- }
- function escape2(str) {
- return str.replace(/[.+*?^${}()[\]|/\\]/g, "\\$&");
- }
- var TokenData = class {
- constructor(tokens, originalPath) {
- this.tokens = tokens;
- this.originalPath = originalPath;
- }
- };
- exports2.TokenData = TokenData;
- var PathError = class extends TypeError {
- constructor(message, originalPath) {
- let text = message;
- if (originalPath)
- text += `: ${originalPath}`;
- text += `; visit https://git.new/pathToRegexpError for info`;
- super(text);
- this.originalPath = originalPath;
- }
- };
- exports2.PathError = PathError;
- function parse(str, options = {}) {
- const { encodePath = NOOP_VALUE } = options;
- const chars = [...str];
- let index = 0;
- function consumeUntil(end) {
- const output = [];
- let path2 = "";
- function writePath() {
- if (!path2)
- return;
- output.push({
- type: "text",
- value: encodePath(path2)
- });
- path2 = "";
- }
- while (index < chars.length) {
- const value = chars[index++];
- if (value === end) {
- writePath();
- return output;
- }
- if (value === "\\") {
- if (index === chars.length) {
- throw new PathError(`Unexpected end after \\ at index ${index}`, str);
- }
- path2 += chars[index++];
- continue;
- }
- if (value === ":" || value === "*") {
- const type = value === ":" ? "param" : "wildcard";
- let name = "";
- if (ID_START.test(chars[index])) {
- do {
- name += chars[index++];
- } while (ID_CONTINUE.test(chars[index]));
- } else if (chars[index] === '"') {
- let quoteStart = index;
- while (index < chars.length) {
- if (chars[++index] === '"') {
- index++;
- quoteStart = 0;
- break;
- }
- if (chars[index] === "\\")
- index++;
- name += chars[index];
- }
- if (quoteStart) {
- throw new PathError(`Unterminated quote at index ${quoteStart}`, str);
- }
- }
- if (!name) {
- throw new PathError(`Missing parameter name at index ${index}`, str);
- }
- writePath();
- output.push({ type, name });
- continue;
- }
- if (value === "{") {
- writePath();
- output.push({
- type: "group",
- tokens: consumeUntil("}")
- });
- continue;
- }
- if (value === "}" || value === "(" || value === ")" || value === "[" || value === "]" || value === "+" || value === "?" || value === "!") {
- throw new PathError(`Unexpected ${value} at index ${index - 1}`, str);
- }
- path2 += value;
- }
- if (end) {
- throw new PathError(`Unexpected end at index ${index}, expected ${end}`, str);
- }
- writePath();
- return output;
- }
- return new TokenData(consumeUntil(""), str);
- }
- function compile(path2, options = {}) {
- const { encode = encodeURIComponent, delimiter = DEFAULT_DELIMITER } = options;
- const data = typeof path2 === "object" ? path2 : parse(path2, options);
- const fn = tokensToFunction(data.tokens, delimiter, encode);
- return function path3(params = {}) {
- const missing = [];
- const path4 = fn(params, missing);
- if (missing.length) {
- throw new TypeError(`Missing parameters: ${missing.join(", ")}`);
- }
- return path4;
- };
- }
- function tokensToFunction(tokens, delimiter, encode) {
- const encoders = tokens.map((token) => tokenToFunction(token, delimiter, encode));
- return (data, missing) => {
- let result = "";
- for (const encoder of encoders) {
- result += encoder(data, missing);
- }
- return result;
- };
- }
- function tokenToFunction(token, delimiter, encode) {
- if (token.type === "text")
- return () => token.value;
- if (token.type === "group") {
- const fn = tokensToFunction(token.tokens, delimiter, encode);
- return (data, missing) => {
- const len = missing.length;
- const value = fn(data, missing);
- if (missing.length === len)
- return value;
- missing.length = len;
- return "";
- };
- }
- const encodeValue = encode || NOOP_VALUE;
- if (token.type === "wildcard" && encode !== false) {
- return (data, missing) => {
- const value = data[token.name];
- if (value == null) {
- missing.push(token.name);
- return "";
- }
- if (!Array.isArray(value) || value.length === 0) {
- throw new TypeError(`Expected "${token.name}" to be a non-empty array`);
- }
- let result = "";
- for (let i = 0; i < value.length; i++) {
- if (typeof value[i] !== "string") {
- throw new TypeError(`Expected "${token.name}/${i}" to be a string`);
- }
- if (i > 0)
- result += delimiter;
- result += encodeValue(value[i]);
- }
- return result;
- };
- }
- return (data, missing) => {
- const value = data[token.name];
- if (value == null) {
- missing.push(token.name);
- return "";
- }
- if (typeof value !== "string") {
- throw new TypeError(`Expected "${token.name}" to be a string`);
- }
- return encodeValue(value);
- };
- }
- function match(path2, options = {}) {
- const { decode = decodeURIComponent, delimiter = DEFAULT_DELIMITER } = options;
- const { regexp, keys } = pathToRegexp(path2, options);
- const decoders = keys.map((key) => {
- if (decode === false)
- return NOOP_VALUE;
- if (key.type === "param")
- return decode;
- return (value) => value.split(delimiter).map(decode);
- });
- return function match2(input) {
- const m = regexp.exec(input);
- if (!m)
- return false;
- const path3 = m[0];
- const params = /* @__PURE__ */ Object.create(null);
- for (let i = 1; i < m.length; i++) {
- if (m[i] === void 0)
- continue;
- const key = keys[i - 1];
- const decoder = decoders[i - 1];
- params[key.name] = decoder(m[i]);
- }
- return { path: path3, params };
- };
- }
- function pathToRegexp(path2, options = {}) {
- const { delimiter = DEFAULT_DELIMITER, end = true, sensitive = false, trailing = true } = options;
- const keys = [];
- let source = "";
- let combinations = 0;
- function process2(path3) {
- if (Array.isArray(path3)) {
- for (const p of path3)
- process2(p);
- return;
- }
- const data = typeof path3 === "object" ? path3 : parse(path3, options);
- flatten(data.tokens, 0, [], (tokens) => {
- if (combinations >= 256) {
- throw new PathError("Too many path combinations", data.originalPath);
- }
- if (combinations > 0)
- source += "|";
- source += toRegExpSource(tokens, delimiter, keys, data.originalPath);
- combinations++;
- });
- }
- process2(path2);
- let pattern = `^(?:${source})`;
- if (trailing)
- pattern += "(?:" + escape2(delimiter) + "$)?";
- pattern += end ? "$" : "(?=" + escape2(delimiter) + "|$)";
- return { regexp: new RegExp(pattern, sensitive ? "" : "i"), keys };
- }
- function flatten(tokens, index, result, callback) {
- while (index < tokens.length) {
- const token = tokens[index++];
- if (token.type === "group") {
- const len = result.length;
- flatten(token.tokens, 0, result, (seq) => flatten(tokens, index, seq, callback));
- result.length = len;
- continue;
- }
- result.push(token);
- }
- callback(result);
- }
- function toRegExpSource(tokens, delimiter, keys, originalPath) {
- let result = "";
- let backtrack = "";
- let wildcardBacktrack = "";
- let prevCaptureType = 0;
- let hasSegmentCapture = 0;
- let index = 0;
- function hasInSegment(index2, type) {
- while (index2 < tokens.length) {
- const token = tokens[index2++];
- if (token.type === type)
- return true;
- if (token.type === "text") {
- if (token.value.includes(delimiter))
- break;
- }
- }
- return false;
- }
- function peekText(index2) {
- let result2 = "";
- while (index2 < tokens.length) {
- const token = tokens[index2++];
- if (token.type !== "text")
- break;
- result2 += token.value;
- }
- return result2;
- }
- while (index < tokens.length) {
- const token = tokens[index++];
- if (token.type === "text") {
- result += escape2(token.value);
- backtrack += token.value;
- if (prevCaptureType === 2)
- wildcardBacktrack += token.value;
- if (token.value.includes(delimiter))
- hasSegmentCapture = 0;
- continue;
- }
- if (token.type === "param" || token.type === "wildcard") {
- if (prevCaptureType && !backtrack) {
- throw new PathError(`Missing text before "${token.name}" ${token.type}`, originalPath);
- }
- if (token.type === "param") {
- result += hasSegmentCapture & 2 ? `(${negate(delimiter, backtrack)}+)` : hasInSegment(index, "wildcard") ? `(${negate(delimiter, peekText(index))}+)` : hasSegmentCapture & 1 ? `(${negate(delimiter, backtrack)}+|${escape2(backtrack)})` : `(${negate(delimiter, "")}+)`;
- hasSegmentCapture |= prevCaptureType = 1;
- } else {
- result += hasSegmentCapture & 2 ? `(${negate(backtrack, "")}+)` : wildcardBacktrack ? `(${negate(wildcardBacktrack, "")}+|${negate(delimiter, "")}+)` : `([^]+)`;
- wildcardBacktrack = "";
- hasSegmentCapture |= prevCaptureType = 2;
- }
- keys.push(token);
- backtrack = "";
- continue;
- }
- throw new TypeError(`Unknown token type: ${token.type}`);
- }
- return result;
- }
- function negate(a, b) {
- if (b.length > a.length)
- return negate(b, a);
- if (a === b)
- b = "";
- if (b.length > 1)
- return `(?:(?!${escape2(a)}|${escape2(b)})[^])`;
- if (a.length > 1)
- return `(?:(?!${escape2(a)})[^${escape2(b)}])`;
- return `[^${escape2(a + b)}]`;
- }
- function stringifyTokens(tokens, index) {
- let value = "";
- while (index < tokens.length) {
- const token = tokens[index++];
- if (token.type === "text") {
- value += escapeText(token.value);
- continue;
- }
- if (token.type === "group") {
- value += "{" + stringifyTokens(token.tokens, 0) + "}";
- continue;
- }
- if (token.type === "param") {
- value += ":" + stringifyName(token.name, tokens[index]);
- continue;
- }
- if (token.type === "wildcard") {
- value += "*" + stringifyName(token.name, tokens[index]);
- continue;
- }
- throw new TypeError(`Unknown token type: ${token.type}`);
- }
- return value;
- }
- function stringify(data) {
- return stringifyTokens(data.tokens, 0);
- }
- function stringifyName(name, next) {
- if (!ID.test(name))
- return JSON.stringify(name);
- if ((next === null || next === void 0 ? void 0 : next.type) === "text" && ID_CONTINUE.test(next.value[0])) {
- return JSON.stringify(name);
- }
- return name;
- }
- }
- });
- // node_modules/router/lib/layer.js
- var require_layer = __commonJS({
- "node_modules/router/lib/layer.js"(exports2, module2) {
- "use strict";
- var isPromise = require_is_promise();
- var pathRegexp = require_dist();
- var debug = require_src()("router:layer");
- var deprecate = require_depd()("router");
- var TRAILING_SLASH_REGEXP = /\/+$/;
- var MATCHING_GROUP_REGEXP = /\((?:\?<(.*?)>)?(?!\?)/g;
- module2.exports = Layer;
- function Layer(path2, options, fn) {
- if (!(this instanceof Layer)) {
- return new Layer(path2, options, fn);
- }
- debug("new %o", path2);
- const opts = options || {};
- this.handle = fn;
- this.keys = [];
- this.name = fn.name || "<anonymous>";
- this.params = void 0;
- this.path = void 0;
- this.slash = path2 === "/" && opts.end === false;
- function matcher(_path) {
- if (_path instanceof RegExp) {
- const keys = [];
- let name = 0;
- let m;
- while (m = MATCHING_GROUP_REGEXP.exec(_path.source)) {
- keys.push({
- name: m[1] || name++,
- offset: m.index
- });
- }
- return function regexpMatcher(p) {
- const match = _path.exec(p);
- if (!match) {
- return false;
- }
- const params = {};
- for (let i = 1; i < match.length; i++) {
- const key = keys[i - 1];
- const prop = key.name;
- const val = decodeParam(match[i]);
- if (val !== void 0) {
- params[prop] = val;
- }
- }
- return {
- params,
- path: match[0]
- };
- };
- }
- return pathRegexp.match(opts.strict ? _path : loosen(_path), {
- sensitive: opts.sensitive,
- end: opts.end,
- trailing: !opts.strict,
- decode: decodeParam
- });
- }
- this.matchers = Array.isArray(path2) ? path2.map(matcher) : [matcher(path2)];
- }
- Layer.prototype.handleError = function handleError(error, req, res, next) {
- const fn = this.handle;
- if (fn.length !== 4) {
- return next(error);
- }
- try {
- const ret = fn(error, req, res, next);
- if (isPromise(ret)) {
- if (!(ret instanceof Promise)) {
- deprecate("handlers that are Promise-like are deprecated, use a native Promise instead");
- }
- ret.then(null, function(error2) {
- next(error2 || new Error("Rejected promise"));
- });
- }
- } catch (err) {
- next(err);
- }
- };
- Layer.prototype.handleRequest = function handleRequest(req, res, next) {
- const fn = this.handle;
- if (fn.length > 3) {
- return next();
- }
- try {
- const ret = fn(req, res, next);
- if (isPromise(ret)) {
- if (!(ret instanceof Promise)) {
- deprecate("handlers that are Promise-like are deprecated, use a native Promise instead");
- }
- ret.then(null, function(error) {
- next(error || new Error("Rejected promise"));
- });
- }
- } catch (err) {
- next(err);
- }
- };
- Layer.prototype.match = function match(path2) {
- let match2;
- if (path2 != null) {
- if (this.slash) {
- this.params = {};
- this.path = "";
- return true;
- }
- let i = 0;
- while (!match2 && i < this.matchers.length) {
- match2 = this.matchers[i](path2);
- i++;
- }
- }
- if (!match2) {
- this.params = void 0;
- this.path = void 0;
- return false;
- }
- this.params = match2.params;
- this.path = match2.path;
- this.keys = Object.keys(match2.params);
- return true;
- };
- function decodeParam(val) {
- if (typeof val !== "string" || val.length === 0) {
- return val;
- }
- try {
- return decodeURIComponent(val);
- } catch (err) {
- if (err instanceof URIError) {
- err.message = "Failed to decode param '" + val + "'";
- err.status = 400;
- }
- throw err;
- }
- }
- function loosen(path2) {
- if (path2 instanceof RegExp || path2 === "/") {
- return path2;
- }
- return Array.isArray(path2) ? path2.map(function(p) {
- return loosen(p);
- }) : String(path2).replace(TRAILING_SLASH_REGEXP, "");
- }
- }
- });
- // node_modules/router/lib/route.js
- var require_route = __commonJS({
- "node_modules/router/lib/route.js"(exports2, module2) {
- "use strict";
- var debug = require_src()("router:route");
- var Layer = require_layer();
- var { METHODS } = require("node:http");
- var slice = Array.prototype.slice;
- var flatten = Array.prototype.flat;
- var methods = METHODS.map((method) => method.toLowerCase());
- module2.exports = Route2;
- function Route2(path2) {
- debug("new %o", path2);
- this.path = path2;
- this.stack = [];
- this.methods = /* @__PURE__ */ Object.create(null);
- }
- Route2.prototype._handlesMethod = function _handlesMethod(method) {
- if (this.methods._all) {
- return true;
- }
- let name = typeof method === "string" ? method.toLowerCase() : method;
- if (name === "head" && !this.methods.head) {
- name = "get";
- }
- return Boolean(this.methods[name]);
- };
- Route2.prototype._methods = function _methods() {
- const methods2 = Object.keys(this.methods);
- if (this.methods.get && !this.methods.head) {
- methods2.push("head");
- }
- for (let i = 0; i < methods2.length; i++) {
- methods2[i] = methods2[i].toUpperCase();
- }
- return methods2;
- };
- Route2.prototype.dispatch = function dispatch(req, res, done) {
- let idx = 0;
- const stack = this.stack;
- let sync = 0;
- if (stack.length === 0) {
- return done();
- }
- let method = typeof req.method === "string" ? req.method.toLowerCase() : req.method;
- if (method === "head" && !this.methods.head) {
- method = "get";
- }
- req.route = this;
- next();
- function next(err) {
- if (err && err === "route") {
- return done();
- }
- if (err && err === "router") {
- return done(err);
- }
- if (idx >= stack.length) {
- return done(err);
- }
- if (++sync > 100) {
- return setImmediate(next, err);
- }
- let layer;
- let match;
- while (match !== true && idx < stack.length) {
- layer = stack[idx++];
- match = !layer.method || layer.method === method;
- }
- if (match !== true) {
- return done(err);
- }
- if (err) {
- layer.handleError(err, req, res, next);
- } else {
- layer.handleRequest(req, res, next);
- }
- sync = 0;
- }
- };
- Route2.prototype.all = function all(handler) {
- const callbacks = flatten.call(slice.call(arguments), Infinity);
- if (callbacks.length === 0) {
- throw new TypeError("argument handler is required");
- }
- for (let i = 0; i < callbacks.length; i++) {
- const fn = callbacks[i];
- if (typeof fn !== "function") {
- throw new TypeError("argument handler must be a function");
- }
- const layer = Layer("/", {}, fn);
- layer.method = void 0;
- this.methods._all = true;
- this.stack.push(layer);
- }
- return this;
- };
- methods.forEach(function(method) {
- Route2.prototype[method] = function(handler) {
- const callbacks = flatten.call(slice.call(arguments), Infinity);
- if (callbacks.length === 0) {
- throw new TypeError("argument handler is required");
- }
- for (let i = 0; i < callbacks.length; i++) {
- const fn = callbacks[i];
- if (typeof fn !== "function") {
- throw new TypeError("argument handler must be a function");
- }
- debug("%s %s", method, this.path);
- const layer = Layer("/", {}, fn);
- layer.method = method;
- this.methods[method] = true;
- this.stack.push(layer);
- }
- return this;
- };
- });
- }
- });
- // node_modules/router/index.js
- var require_router = __commonJS({
- "node_modules/router/index.js"(exports2, module2) {
- "use strict";
- var isPromise = require_is_promise();
- var Layer = require_layer();
- var { METHODS } = require("node:http");
- var parseUrl = require_parseurl();
- var Route2 = require_route();
- var debug = require_src()("router");
- var deprecate = require_depd()("router");
- var slice = Array.prototype.slice;
- var flatten = Array.prototype.flat;
- var methods = METHODS.map((method) => method.toLowerCase());
- module2.exports = Router;
- module2.exports.Route = Route2;
- function Router(options) {
- if (!(this instanceof Router)) {
- return new Router(options);
- }
- const opts = options || {};
- function router(req, res, next) {
- router.handle(req, res, next);
- }
- Object.setPrototypeOf(router, this);
- router.caseSensitive = opts.caseSensitive;
- router.mergeParams = opts.mergeParams;
- router.params = {};
- router.strict = opts.strict;
- router.stack = [];
- return router;
- }
- Router.prototype = function() {
- };
- Router.prototype.param = function param(name, fn) {
- if (!name) {
- throw new TypeError("argument name is required");
- }
- if (typeof name !== "string") {
- throw new TypeError("argument name must be a string");
- }
- if (!fn) {
- throw new TypeError("argument fn is required");
- }
- if (typeof fn !== "function") {
- throw new TypeError("argument fn must be a function");
- }
- let params = this.params[name];
- if (!params) {
- params = this.params[name] = [];
- }
- params.push(fn);
- return this;
- };
- Router.prototype.handle = function handle(req, res, callback) {
- if (!callback) {
- throw new TypeError("argument callback is required");
- }
- debug("dispatching %s %s", req.method, req.url);
- let idx = 0;
- let methods2;
- const protohost = getProtohost(req.url) || "";
- let removed = "";
- const self2 = this;
- let slashAdded = false;
- let sync = 0;
- const paramcalled = {};
- const stack = this.stack;
- const parentParams = req.params;
- const parentUrl = req.baseUrl || "";
- let done = restore(callback, req, "baseUrl", "next", "params");
- req.next = next;
- if (req.method === "OPTIONS") {
- methods2 = [];
- done = wrap(done, generateOptionsResponder(res, methods2));
- }
- req.baseUrl = parentUrl;
- req.originalUrl = req.originalUrl || req.url;
- next();
- function next(err) {
- let layerError = err === "route" ? null : err;
- if (slashAdded) {
- req.url = req.url.slice(1);
- slashAdded = false;
- }
- if (removed.length !== 0) {
- req.baseUrl = parentUrl;
- req.url = protohost + removed + req.url.slice(protohost.length);
- removed = "";
- }
- if (layerError === "router") {
- setImmediate(done, null);
- return;
- }
- if (idx >= stack.length) {
- setImmediate(done, layerError);
- return;
- }
- if (++sync > 100) {
- return setImmediate(next, err);
- }
- const path2 = getPathname(req);
- if (path2 == null) {
- return done(layerError);
- }
- let layer;
- let match;
- let route;
- while (match !== true && idx < stack.length) {
- layer = stack[idx++];
- match = matchLayer(layer, path2);
- route = layer.route;
- if (typeof match !== "boolean") {
- layerError = layerError || match;
- }
- if (match !== true) {
- continue;
- }
- if (!route) {
- continue;
- }
- if (layerError) {
- match = false;
- continue;
- }
- const method = req.method;
- const hasMethod = route._handlesMethod(method);
- if (!hasMethod && method === "OPTIONS" && methods2) {
- methods2.push.apply(methods2, route._methods());
- }
- if (!hasMethod && method !== "HEAD") {
- match = false;
- }
- }
- if (match !== true) {
- return done(layerError);
- }
- if (route) {
- req.route = route;
- }
- req.params = self2.mergeParams ? mergeParams(layer.params, parentParams) : layer.params;
- const layerPath = layer.path;
- processParams(self2.params, layer, paramcalled, req, res, function(err2) {
- if (err2) {
- next(layerError || err2);
- } else if (route) {
- layer.handleRequest(req, res, next);
- } else {
- trimPrefix(layer, layerError, layerPath, path2);
- }
- sync = 0;
- });
- }
- function trimPrefix(layer, layerError, layerPath, path2) {
- if (layerPath.length !== 0) {
- if (layerPath !== path2.substring(0, layerPath.length)) {
- next(layerError);
- return;
- }
- const c = path2[layerPath.length];
- if (c && c !== "/") {
- next(layerError);
- return;
- }
- debug("trim prefix (%s) from url %s", layerPath, req.url);
- removed = layerPath;
- req.url = protohost + req.url.slice(protohost.length + removed.length);
- if (!protohost && req.url[0] !== "/") {
- req.url = "/" + req.url;
- slashAdded = true;
- }
- req.baseUrl = parentUrl + (removed[removed.length - 1] === "/" ? removed.substring(0, removed.length - 1) : removed);
- }
- debug("%s %s : %s", layer.name, layerPath, req.originalUrl);
- if (layerError) {
- layer.handleError(layerError, req, res, next);
- } else {
- layer.handleRequest(req, res, next);
- }
- }
- };
- Router.prototype.use = function use(handler) {
- let offset = 0;
- let path2 = "/";
- if (typeof handler !== "function") {
- let arg = handler;
- while (Array.isArray(arg) && arg.length !== 0) {
- arg = arg[0];
- }
- if (typeof arg !== "function") {
- offset = 1;
- path2 = handler;
- }
- }
- const callbacks = flatten.call(slice.call(arguments, offset), Infinity);
- if (callbacks.length === 0) {
- throw new TypeError("argument handler is required");
- }
- for (let i = 0; i < callbacks.length; i++) {
- const fn = callbacks[i];
- if (typeof fn !== "function") {
- throw new TypeError("argument handler must be a function");
- }
- debug("use %o %s", path2, fn.name || "<anonymous>");
- const layer = new Layer(path2, {
- sensitive: this.caseSensitive,
- strict: false,
- end: false
- }, fn);
- layer.route = void 0;
- this.stack.push(layer);
- }
- return this;
- };
- Router.prototype.route = function route(path2) {
- const route2 = new Route2(path2);
- const layer = new Layer(path2, {
- sensitive: this.caseSensitive,
- strict: this.strict,
- end: true
- }, handle);
- function handle(req, res, next) {
- route2.dispatch(req, res, next);
- }
- layer.route = route2;
- this.stack.push(layer);
- return route2;
- };
- methods.concat("all").forEach(function(method) {
- Router.prototype[method] = function(path2) {
- const route = this.route(path2);
- route[method].apply(route, slice.call(arguments, 1));
- return this;
- };
- });
- function generateOptionsResponder(res, methods2) {
- return function onDone(fn, err) {
- if (err || methods2.length === 0) {
- return fn(err);
- }
- trySendOptionsResponse(res, methods2, fn);
- };
- }
- function getPathname(req) {
- try {
- return parseUrl(req).pathname;
- } catch (err) {
- return void 0;
- }
- }
- function getProtohost(url) {
- if (typeof url !== "string" || url.length === 0 || url[0] === "/") {
- return void 0;
- }
- const searchIndex = url.indexOf("?");
- const pathLength = searchIndex !== -1 ? searchIndex : url.length;
- const fqdnIndex = url.substring(0, pathLength).indexOf("://");
- return fqdnIndex !== -1 ? url.substring(0, url.indexOf("/", 3 + fqdnIndex)) : void 0;
- }
- function matchLayer(layer, path2) {
- try {
- return layer.match(path2);
- } catch (err) {
- return err;
- }
- }
- function mergeParams(params, parent) {
- if (typeof parent !== "object" || !parent) {
- return params;
- }
- const obj = Object.assign({}, parent);
- if (!(0 in params) || !(0 in parent)) {
- return Object.assign(obj, params);
- }
- let i = 0;
- let o = 0;
- while (i in params) {
- i++;
- }
- while (o in parent) {
- o++;
- }
- for (i--; i >= 0; i--) {
- params[i + o] = params[i];
- if (i < o) {
- delete params[i];
- }
- }
- return Object.assign(obj, params);
- }
- function processParams(params, layer, called, req, res, done) {
- const keys = layer.keys;
- if (!keys || keys.length === 0) {
- return done();
- }
- let i = 0;
- let paramIndex = 0;
- let key;
- let paramVal;
- let paramCallbacks;
- let paramCalled;
- function param(err) {
- if (err) {
- return done(err);
- }
- if (i >= keys.length) {
- return done();
- }
- paramIndex = 0;
- key = keys[i++];
- paramVal = req.params[key];
- paramCallbacks = params[key];
- paramCalled = called[key];
- if (paramVal === void 0 || !paramCallbacks) {
- return param();
- }
- if (paramCalled && (paramCalled.match === paramVal || paramCalled.error && paramCalled.error !== "route")) {
- req.params[key] = paramCalled.value;
- return param(paramCalled.error);
- }
- called[key] = paramCalled = {
- error: null,
- match: paramVal,
- value: paramVal
- };
- paramCallback();
- }
- function paramCallback(err) {
- const fn = paramCallbacks[paramIndex++];
- paramCalled.value = req.params[key];
- if (err) {
- paramCalled.error = err;
- param(err);
- return;
- }
- if (!fn) return param();
- try {
- const ret = fn(req, res, paramCallback, paramVal, key);
- if (isPromise(ret)) {
- if (!(ret instanceof Promise)) {
- deprecate("parameters that are Promise-like are deprecated, use a native Promise instead");
- }
- ret.then(null, function(error) {
- paramCallback(error || new Error("Rejected promise"));
- });
- }
- } catch (e) {
- paramCallback(e);
- }
- }
- param();
- }
- function restore(fn, obj) {
- const props = new Array(arguments.length - 2);
- const vals = new Array(arguments.length - 2);
- for (let i = 0; i < props.length; i++) {
- props[i] = arguments[i + 2];
- vals[i] = obj[props[i]];
- }
- return function() {
- for (let i = 0; i < props.length; i++) {
- obj[props[i]] = vals[i];
- }
- return fn.apply(this, arguments);
- };
- }
- function sendOptionsResponse(res, methods2) {
- const options = /* @__PURE__ */ Object.create(null);
- for (let i = 0; i < methods2.length; i++) {
- options[methods2[i]] = true;
- }
- const allow = Object.keys(options).sort().join(", ");
- res.setHeader("Allow", allow);
- res.setHeader("Content-Length", Buffer.byteLength(allow));
- res.setHeader("Content-Type", "text/plain");
- res.setHeader("X-Content-Type-Options", "nosniff");
- res.end(allow);
- }
- function trySendOptionsResponse(res, methods2, next) {
- try {
- sendOptionsResponse(res, methods2);
- } catch (err) {
- next(err);
- }
- }
- function wrap(old, fn) {
- return function proxy() {
- const args = new Array(arguments.length + 1);
- args[0] = old;
- for (let i = 0, len = arguments.length; i < len; i++) {
- args[i + 1] = arguments[i];
- }
- fn.apply(this, args);
- };
- }
- }
- });
- // node_modules/express/lib/application.js
- var require_application = __commonJS({
- "node_modules/express/lib/application.js"(exports2, module2) {
- "use strict";
- var finalhandler = require_finalhandler();
- var debug = require_src()("express:application");
- var View = require_view();
- var http2 = require("node:http");
- var methods = require_utils3().methods;
- var compileETag = require_utils3().compileETag;
- var compileQueryParser = require_utils3().compileQueryParser;
- var compileTrust = require_utils3().compileTrust;
- var resolve = require("node:path").resolve;
- var once = require_once();
- var Router = require_router();
- var slice = Array.prototype.slice;
- var flatten = Array.prototype.flat;
- var app = exports2 = module2.exports = {};
- var trustProxyDefaultSymbol = "@@symbol:trust_proxy_default";
- app.init = function init() {
- var router = null;
- this.cache = /* @__PURE__ */ Object.create(null);
- this.engines = /* @__PURE__ */ Object.create(null);
- this.settings = /* @__PURE__ */ Object.create(null);
- this.defaultConfiguration();
- Object.defineProperty(this, "router", {
- configurable: true,
- enumerable: true,
- get: function getrouter() {
- if (router === null) {
- router = new Router({
- caseSensitive: this.enabled("case sensitive routing"),
- strict: this.enabled("strict routing")
- });
- }
- return router;
- }
- });
- };
- app.defaultConfiguration = function defaultConfiguration() {
- var env = process.env.NODE_ENV || "development";
- this.enable("x-powered-by");
- this.set("etag", "weak");
- this.set("env", env);
- this.set("query parser", "simple");
- this.set("subdomain offset", 2);
- this.set("trust proxy", false);
- Object.defineProperty(this.settings, trustProxyDefaultSymbol, {
- configurable: true,
- value: true
- });
- debug("booting in %s mode", env);
- this.on("mount", function onmount(parent) {
- if (this.settings[trustProxyDefaultSymbol] === true && typeof parent.settings["trust proxy fn"] === "function") {
- delete this.settings["trust proxy"];
- delete this.settings["trust proxy fn"];
- }
- Object.setPrototypeOf(this.request, parent.request);
- Object.setPrototypeOf(this.response, parent.response);
- Object.setPrototypeOf(this.engines, parent.engines);
- Object.setPrototypeOf(this.settings, parent.settings);
- });
- this.locals = /* @__PURE__ */ Object.create(null);
- this.mountpath = "/";
- this.locals.settings = this.settings;
- this.set("view", View);
- this.set("views", resolve("views"));
- this.set("jsonp callback name", "callback");
- if (env === "production") {
- this.enable("view cache");
- }
- };
- app.handle = function handle(req, res, callback) {
- var done = callback || finalhandler(req, res, {
- env: this.get("env"),
- onerror: logerror.bind(this)
- });
- if (this.enabled("x-powered-by")) {
- res.setHeader("X-Powered-By", "Express");
- }
- req.res = res;
- res.req = req;
- Object.setPrototypeOf(req, this.request);
- Object.setPrototypeOf(res, this.response);
- if (!res.locals) {
- res.locals = /* @__PURE__ */ Object.create(null);
- }
- this.router.handle(req, res, done);
- };
- app.use = function use(fn) {
- var offset = 0;
- var path2 = "/";
- if (typeof fn !== "function") {
- var arg = fn;
- while (Array.isArray(arg) && arg.length !== 0) {
- arg = arg[0];
- }
- if (typeof arg !== "function") {
- offset = 1;
- path2 = fn;
- }
- }
- var fns = flatten.call(slice.call(arguments, offset), Infinity);
- if (fns.length === 0) {
- throw new TypeError("app.use() requires a middleware function");
- }
- var router = this.router;
- fns.forEach(function(fn2) {
- if (!fn2 || !fn2.handle || !fn2.set) {
- return router.use(path2, fn2);
- }
- debug(".use app under %s", path2);
- fn2.mountpath = path2;
- fn2.parent = this;
- router.use(path2, function mounted_app(req, res, next) {
- var orig = req.app;
- fn2.handle(req, res, function(err) {
- Object.setPrototypeOf(req, orig.request);
- Object.setPrototypeOf(res, orig.response);
- next(err);
- });
- });
- fn2.emit("mount", this);
- }, this);
- return this;
- };
- app.route = function route(path2) {
- return this.router.route(path2);
- };
- app.engine = function engine(ext, fn) {
- if (typeof fn !== "function") {
- throw new Error("callback function required");
- }
- var extension2 = ext[0] !== "." ? "." + ext : ext;
- this.engines[extension2] = fn;
- return this;
- };
- app.param = function param(name, fn) {
- if (Array.isArray(name)) {
- for (var i = 0; i < name.length; i++) {
- this.param(name[i], fn);
- }
- return this;
- }
- this.router.param(name, fn);
- return this;
- };
- app.set = function set(setting, val) {
- if (arguments.length === 1) {
- return this.settings[setting];
- }
- debug('set "%s" to %o', setting, val);
- this.settings[setting] = val;
- switch (setting) {
- case "etag":
- this.set("etag fn", compileETag(val));
- break;
- case "query parser":
- this.set("query parser fn", compileQueryParser(val));
- break;
- case "trust proxy":
- this.set("trust proxy fn", compileTrust(val));
- Object.defineProperty(this.settings, trustProxyDefaultSymbol, {
- configurable: true,
- value: false
- });
- break;
- }
- return this;
- };
- app.path = function path2() {
- return this.parent ? this.parent.path() + this.mountpath : "";
- };
- app.enabled = function enabled(setting) {
- return Boolean(this.set(setting));
- };
- app.disabled = function disabled(setting) {
- return !this.set(setting);
- };
- app.enable = function enable(setting) {
- return this.set(setting, true);
- };
- app.disable = function disable(setting) {
- return this.set(setting, false);
- };
- methods.forEach(function(method) {
- app[method] = function(path2) {
- if (method === "get" && arguments.length === 1) {
- return this.set(path2);
- }
- var route = this.route(path2);
- route[method].apply(route, slice.call(arguments, 1));
- return this;
- };
- });
- app.all = function all(path2) {
- var route = this.route(path2);
- var args = slice.call(arguments, 1);
- for (var i = 0; i < methods.length; i++) {
- route[methods[i]].apply(route, args);
- }
- return this;
- };
- app.render = function render(name, options, callback) {
- var cache = this.cache;
- var done = callback;
- var engines = this.engines;
- var opts = options;
- var view;
- if (typeof options === "function") {
- done = options;
- opts = {};
- }
- var renderOptions = { ...this.locals, ...opts._locals, ...opts };
- if (renderOptions.cache == null) {
- renderOptions.cache = this.enabled("view cache");
- }
- if (renderOptions.cache) {
- view = cache[name];
- }
- if (!view) {
- var View2 = this.get("view");
- view = new View2(name, {
- defaultEngine: this.get("view engine"),
- root: this.get("views"),
- engines
- });
- if (!view.path) {
- var dirs = Array.isArray(view.root) && view.root.length > 1 ? 'directories "' + view.root.slice(0, -1).join('", "') + '" or "' + view.root[view.root.length - 1] + '"' : 'directory "' + view.root + '"';
- var err = new Error('Failed to lookup view "' + name + '" in views ' + dirs);
- err.view = view;
- return done(err);
- }
- if (renderOptions.cache) {
- cache[name] = view;
- }
- }
- tryRender(view, renderOptions, done);
- };
- app.listen = function listen() {
- var server = http2.createServer(this);
- var args = slice.call(arguments);
- if (typeof args[args.length - 1] === "function") {
- var done = args[args.length - 1] = once(args[args.length - 1]);
- server.once("error", done);
- }
- return server.listen.apply(server, args);
- };
- function logerror(err) {
- if (this.get("env") !== "test") console.error(err.stack || err.toString());
- }
- function tryRender(view, options, callback) {
- try {
- view.render(options, callback);
- } catch (err) {
- callback(err);
- }
- }
- }
- });
- // node_modules/negotiator/lib/charset.js
- var require_charset = __commonJS({
- "node_modules/negotiator/lib/charset.js"(exports2, module2) {
- "use strict";
- module2.exports = preferredCharsets;
- module2.exports.preferredCharsets = preferredCharsets;
- var simpleCharsetRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/;
- function parseAcceptCharset(accept) {
- var accepts = accept.split(",");
- for (var i = 0, j = 0; i < accepts.length; i++) {
- var charset = parseCharset(accepts[i].trim(), i);
- if (charset) {
- accepts[j++] = charset;
- }
- }
- accepts.length = j;
- return accepts;
- }
- function parseCharset(str, i) {
- var match = simpleCharsetRegExp.exec(str);
- if (!match) return null;
- var charset = match[1];
- var q = 1;
- if (match[2]) {
- var params = match[2].split(";");
- for (var j = 0; j < params.length; j++) {
- var p = params[j].trim().split("=");
- if (p[0] === "q") {
- q = parseFloat(p[1]);
- break;
- }
- }
- }
- return {
- charset,
- q,
- i
- };
- }
- function getCharsetPriority(charset, accepted, index) {
- var priority = { o: -1, q: 0, s: 0 };
- for (var i = 0; i < accepted.length; i++) {
- var spec = specify(charset, accepted[i], index);
- if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
- priority = spec;
- }
- }
- return priority;
- }
- function specify(charset, spec, index) {
- var s = 0;
- if (spec.charset.toLowerCase() === charset.toLowerCase()) {
- s |= 1;
- } else if (spec.charset !== "*") {
- return null;
- }
- return {
- i: index,
- o: spec.i,
- q: spec.q,
- s
- };
- }
- function preferredCharsets(accept, provided) {
- var accepts = parseAcceptCharset(accept === void 0 ? "*" : accept || "");
- if (!provided) {
- return accepts.filter(isQuality).sort(compareSpecs).map(getFullCharset);
- }
- var priorities = provided.map(function getPriority(type, index) {
- return getCharsetPriority(type, accepts, index);
- });
- return priorities.filter(isQuality).sort(compareSpecs).map(function getCharset(priority) {
- return provided[priorities.indexOf(priority)];
- });
- }
- function compareSpecs(a, b) {
- return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0;
- }
- function getFullCharset(spec) {
- return spec.charset;
- }
- function isQuality(spec) {
- return spec.q > 0;
- }
- }
- });
- // node_modules/negotiator/lib/encoding.js
- var require_encoding = __commonJS({
- "node_modules/negotiator/lib/encoding.js"(exports2, module2) {
- "use strict";
- module2.exports = preferredEncodings;
- module2.exports.preferredEncodings = preferredEncodings;
- var simpleEncodingRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/;
- function parseAcceptEncoding(accept) {
- var accepts = accept.split(",");
- var hasIdentity = false;
- var minQuality = 1;
- for (var i = 0, j = 0; i < accepts.length; i++) {
- var encoding = parseEncoding(accepts[i].trim(), i);
- if (encoding) {
- accepts[j++] = encoding;
- hasIdentity = hasIdentity || specify("identity", encoding);
- minQuality = Math.min(minQuality, encoding.q || 1);
- }
- }
- if (!hasIdentity) {
- accepts[j++] = {
- encoding: "identity",
- q: minQuality,
- i
- };
- }
- accepts.length = j;
- return accepts;
- }
- function parseEncoding(str, i) {
- var match = simpleEncodingRegExp.exec(str);
- if (!match) return null;
- var encoding = match[1];
- var q = 1;
- if (match[2]) {
- var params = match[2].split(";");
- for (var j = 0; j < params.length; j++) {
- var p = params[j].trim().split("=");
- if (p[0] === "q") {
- q = parseFloat(p[1]);
- break;
- }
- }
- }
- return {
- encoding,
- q,
- i
- };
- }
- function getEncodingPriority(encoding, accepted, index) {
- var priority = { encoding, o: -1, q: 0, s: 0 };
- for (var i = 0; i < accepted.length; i++) {
- var spec = specify(encoding, accepted[i], index);
- if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
- priority = spec;
- }
- }
- return priority;
- }
- function specify(encoding, spec, index) {
- var s = 0;
- if (spec.encoding.toLowerCase() === encoding.toLowerCase()) {
- s |= 1;
- } else if (spec.encoding !== "*") {
- return null;
- }
- return {
- encoding,
- i: index,
- o: spec.i,
- q: spec.q,
- s
- };
- }
- function preferredEncodings(accept, provided, preferred) {
- var accepts = parseAcceptEncoding(accept || "");
- var comparator = preferred ? function comparator2(a, b) {
- if (a.q !== b.q) {
- return b.q - a.q;
- }
- var aPreferred = preferred.indexOf(a.encoding);
- var bPreferred = preferred.indexOf(b.encoding);
- if (aPreferred === -1 && bPreferred === -1) {
- return b.s - a.s || a.o - b.o || a.i - b.i;
- }
- if (aPreferred !== -1 && bPreferred !== -1) {
- return aPreferred - bPreferred;
- }
- return aPreferred === -1 ? 1 : -1;
- } : compareSpecs;
- if (!provided) {
- return accepts.filter(isQuality).sort(comparator).map(getFullEncoding);
- }
- var priorities = provided.map(function getPriority(type, index) {
- return getEncodingPriority(type, accepts, index);
- });
- return priorities.filter(isQuality).sort(comparator).map(function getEncoding(priority) {
- return provided[priorities.indexOf(priority)];
- });
- }
- function compareSpecs(a, b) {
- return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i;
- }
- function getFullEncoding(spec) {
- return spec.encoding;
- }
- function isQuality(spec) {
- return spec.q > 0;
- }
- }
- });
- // node_modules/negotiator/lib/language.js
- var require_language = __commonJS({
- "node_modules/negotiator/lib/language.js"(exports2, module2) {
- "use strict";
- module2.exports = preferredLanguages;
- module2.exports.preferredLanguages = preferredLanguages;
- var simpleLanguageRegExp = /^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;
- function parseAcceptLanguage(accept) {
- var accepts = accept.split(",");
- for (var i = 0, j = 0; i < accepts.length; i++) {
- var language = parseLanguage(accepts[i].trim(), i);
- if (language) {
- accepts[j++] = language;
- }
- }
- accepts.length = j;
- return accepts;
- }
- function parseLanguage(str, i) {
- var match = simpleLanguageRegExp.exec(str);
- if (!match) return null;
- var prefix = match[1];
- var suffix = match[2];
- var full = prefix;
- if (suffix) full += "-" + suffix;
- var q = 1;
- if (match[3]) {
- var params = match[3].split(";");
- for (var j = 0; j < params.length; j++) {
- var p = params[j].split("=");
- if (p[0] === "q") q = parseFloat(p[1]);
- }
- }
- return {
- prefix,
- suffix,
- q,
- i,
- full
- };
- }
- function getLanguagePriority(language, accepted, index) {
- var priority = { o: -1, q: 0, s: 0 };
- for (var i = 0; i < accepted.length; i++) {
- var spec = specify(language, accepted[i], index);
- if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
- priority = spec;
- }
- }
- return priority;
- }
- function specify(language, spec, index) {
- var p = parseLanguage(language);
- if (!p) return null;
- var s = 0;
- if (spec.full.toLowerCase() === p.full.toLowerCase()) {
- s |= 4;
- } else if (spec.prefix.toLowerCase() === p.full.toLowerCase()) {
- s |= 2;
- } else if (spec.full.toLowerCase() === p.prefix.toLowerCase()) {
- s |= 1;
- } else if (spec.full !== "*") {
- return null;
- }
- return {
- i: index,
- o: spec.i,
- q: spec.q,
- s
- };
- }
- function preferredLanguages(accept, provided) {
- var accepts = parseAcceptLanguage(accept === void 0 ? "*" : accept || "");
- if (!provided) {
- return accepts.filter(isQuality).sort(compareSpecs).map(getFullLanguage);
- }
- var priorities = provided.map(function getPriority(type, index) {
- return getLanguagePriority(type, accepts, index);
- });
- return priorities.filter(isQuality).sort(compareSpecs).map(function getLanguage(priority) {
- return provided[priorities.indexOf(priority)];
- });
- }
- function compareSpecs(a, b) {
- return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0;
- }
- function getFullLanguage(spec) {
- return spec.full;
- }
- function isQuality(spec) {
- return spec.q > 0;
- }
- }
- });
- // node_modules/negotiator/lib/mediaType.js
- var require_mediaType = __commonJS({
- "node_modules/negotiator/lib/mediaType.js"(exports2, module2) {
- "use strict";
- module2.exports = preferredMediaTypes;
- module2.exports.preferredMediaTypes = preferredMediaTypes;
- var simpleMediaTypeRegExp = /^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;
- function parseAccept(accept) {
- var accepts = splitMediaTypes(accept);
- for (var i = 0, j = 0; i < accepts.length; i++) {
- var mediaType = parseMediaType(accepts[i].trim(), i);
- if (mediaType) {
- accepts[j++] = mediaType;
- }
- }
- accepts.length = j;
- return accepts;
- }
- function parseMediaType(str, i) {
- var match = simpleMediaTypeRegExp.exec(str);
- if (!match) return null;
- var params = /* @__PURE__ */ Object.create(null);
- var q = 1;
- var subtype = match[2];
- var type = match[1];
- if (match[3]) {
- var kvps = splitParameters(match[3]).map(splitKeyValuePair);
- for (var j = 0; j < kvps.length; j++) {
- var pair = kvps[j];
- var key = pair[0].toLowerCase();
- var val = pair[1];
- var value = val && val[0] === '"' && val[val.length - 1] === '"' ? val.slice(1, -1) : val;
- if (key === "q") {
- q = parseFloat(value);
- break;
- }
- params[key] = value;
- }
- }
- return {
- type,
- subtype,
- params,
- q,
- i
- };
- }
- function getMediaTypePriority(type, accepted, index) {
- var priority = { o: -1, q: 0, s: 0 };
- for (var i = 0; i < accepted.length; i++) {
- var spec = specify(type, accepted[i], index);
- if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
- priority = spec;
- }
- }
- return priority;
- }
- function specify(type, spec, index) {
- var p = parseMediaType(type);
- var s = 0;
- if (!p) {
- return null;
- }
- if (spec.type.toLowerCase() == p.type.toLowerCase()) {
- s |= 4;
- } else if (spec.type != "*") {
- return null;
- }
- if (spec.subtype.toLowerCase() == p.subtype.toLowerCase()) {
- s |= 2;
- } else if (spec.subtype != "*") {
- return null;
- }
- var keys = Object.keys(spec.params);
- if (keys.length > 0) {
- if (keys.every(function(k) {
- return spec.params[k] == "*" || (spec.params[k] || "").toLowerCase() == (p.params[k] || "").toLowerCase();
- })) {
- s |= 1;
- } else {
- return null;
- }
- }
- return {
- i: index,
- o: spec.i,
- q: spec.q,
- s
- };
- }
- function preferredMediaTypes(accept, provided) {
- var accepts = parseAccept(accept === void 0 ? "*/*" : accept || "");
- if (!provided) {
- return accepts.filter(isQuality).sort(compareSpecs).map(getFullType);
- }
- var priorities = provided.map(function getPriority(type, index) {
- return getMediaTypePriority(type, accepts, index);
- });
- return priorities.filter(isQuality).sort(compareSpecs).map(function getType(priority) {
- return provided[priorities.indexOf(priority)];
- });
- }
- function compareSpecs(a, b) {
- return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0;
- }
- function getFullType(spec) {
- return spec.type + "/" + spec.subtype;
- }
- function isQuality(spec) {
- return spec.q > 0;
- }
- function quoteCount(string) {
- var count = 0;
- var index = 0;
- while ((index = string.indexOf('"', index)) !== -1) {
- count++;
- index++;
- }
- return count;
- }
- function splitKeyValuePair(str) {
- var index = str.indexOf("=");
- var key;
- var val;
- if (index === -1) {
- key = str;
- } else {
- key = str.slice(0, index);
- val = str.slice(index + 1);
- }
- return [key, val];
- }
- function splitMediaTypes(accept) {
- var accepts = accept.split(",");
- for (var i = 1, j = 0; i < accepts.length; i++) {
- if (quoteCount(accepts[j]) % 2 == 0) {
- accepts[++j] = accepts[i];
- } else {
- accepts[j] += "," + accepts[i];
- }
- }
- accepts.length = j + 1;
- return accepts;
- }
- function splitParameters(str) {
- var parameters = str.split(";");
- for (var i = 1, j = 0; i < parameters.length; i++) {
- if (quoteCount(parameters[j]) % 2 == 0) {
- parameters[++j] = parameters[i];
- } else {
- parameters[j] += ";" + parameters[i];
- }
- }
- parameters.length = j + 1;
- for (var i = 0; i < parameters.length; i++) {
- parameters[i] = parameters[i].trim();
- }
- return parameters;
- }
- }
- });
- // node_modules/negotiator/index.js
- var require_negotiator = __commonJS({
- "node_modules/negotiator/index.js"(exports2, module2) {
- "use strict";
- var preferredCharsets = require_charset();
- var preferredEncodings = require_encoding();
- var preferredLanguages = require_language();
- var preferredMediaTypes = require_mediaType();
- module2.exports = Negotiator;
- module2.exports.Negotiator = Negotiator;
- function Negotiator(request) {
- if (!(this instanceof Negotiator)) {
- return new Negotiator(request);
- }
- this.request = request;
- }
- Negotiator.prototype.charset = function charset(available) {
- var set = this.charsets(available);
- return set && set[0];
- };
- Negotiator.prototype.charsets = function charsets(available) {
- return preferredCharsets(this.request.headers["accept-charset"], available);
- };
- Negotiator.prototype.encoding = function encoding(available, opts) {
- var set = this.encodings(available, opts);
- return set && set[0];
- };
- Negotiator.prototype.encodings = function encodings(available, options) {
- var opts = options || {};
- return preferredEncodings(this.request.headers["accept-encoding"], available, opts.preferred);
- };
- Negotiator.prototype.language = function language(available) {
- var set = this.languages(available);
- return set && set[0];
- };
- Negotiator.prototype.languages = function languages(available) {
- return preferredLanguages(this.request.headers["accept-language"], available);
- };
- Negotiator.prototype.mediaType = function mediaType(available) {
- var set = this.mediaTypes(available);
- return set && set[0];
- };
- Negotiator.prototype.mediaTypes = function mediaTypes(available) {
- return preferredMediaTypes(this.request.headers.accept, available);
- };
- Negotiator.prototype.preferredCharset = Negotiator.prototype.charset;
- Negotiator.prototype.preferredCharsets = Negotiator.prototype.charsets;
- Negotiator.prototype.preferredEncoding = Negotiator.prototype.encoding;
- Negotiator.prototype.preferredEncodings = Negotiator.prototype.encodings;
- Negotiator.prototype.preferredLanguage = Negotiator.prototype.language;
- Negotiator.prototype.preferredLanguages = Negotiator.prototype.languages;
- Negotiator.prototype.preferredMediaType = Negotiator.prototype.mediaType;
- Negotiator.prototype.preferredMediaTypes = Negotiator.prototype.mediaTypes;
- }
- });
- // node_modules/accepts/index.js
- var require_accepts = __commonJS({
- "node_modules/accepts/index.js"(exports2, module2) {
- "use strict";
- var Negotiator = require_negotiator();
- var mime = require_mime_types();
- module2.exports = Accepts;
- function Accepts(req) {
- if (!(this instanceof Accepts)) {
- return new Accepts(req);
- }
- this.headers = req.headers;
- this.negotiator = new Negotiator(req);
- }
- Accepts.prototype.type = Accepts.prototype.types = function(types_) {
- var types = types_;
- if (types && !Array.isArray(types)) {
- types = new Array(arguments.length);
- for (var i = 0; i < types.length; i++) {
- types[i] = arguments[i];
- }
- }
- if (!types || types.length === 0) {
- return this.negotiator.mediaTypes();
- }
- if (!this.headers.accept) {
- return types[0];
- }
- var mimes = types.map(extToMime);
- var accepts = this.negotiator.mediaTypes(mimes.filter(validMime));
- var first = accepts[0];
- return first ? types[mimes.indexOf(first)] : false;
- };
- Accepts.prototype.encoding = Accepts.prototype.encodings = function(encodings_) {
- var encodings = encodings_;
- if (encodings && !Array.isArray(encodings)) {
- encodings = new Array(arguments.length);
- for (var i = 0; i < encodings.length; i++) {
- encodings[i] = arguments[i];
- }
- }
- if (!encodings || encodings.length === 0) {
- return this.negotiator.encodings();
- }
- return this.negotiator.encodings(encodings)[0] || false;
- };
- Accepts.prototype.charset = Accepts.prototype.charsets = function(charsets_) {
- var charsets = charsets_;
- if (charsets && !Array.isArray(charsets)) {
- charsets = new Array(arguments.length);
- for (var i = 0; i < charsets.length; i++) {
- charsets[i] = arguments[i];
- }
- }
- if (!charsets || charsets.length === 0) {
- return this.negotiator.charsets();
- }
- return this.negotiator.charsets(charsets)[0] || false;
- };
- Accepts.prototype.lang = Accepts.prototype.langs = Accepts.prototype.language = Accepts.prototype.languages = function(languages_) {
- var languages = languages_;
- if (languages && !Array.isArray(languages)) {
- languages = new Array(arguments.length);
- for (var i = 0; i < languages.length; i++) {
- languages[i] = arguments[i];
- }
- }
- if (!languages || languages.length === 0) {
- return this.negotiator.languages();
- }
- return this.negotiator.languages(languages)[0] || false;
- };
- function extToMime(type) {
- return type.indexOf("/") === -1 ? mime.lookup(type) : type;
- }
- function validMime(type) {
- return typeof type === "string";
- }
- }
- });
- // node_modules/fresh/index.js
- var require_fresh = __commonJS({
- "node_modules/fresh/index.js"(exports2, module2) {
- "use strict";
- var CACHE_CONTROL_NO_CACHE_REGEXP = /(?:^|,)\s*?no-cache\s*?(?:,|$)/;
- module2.exports = fresh;
- function fresh(reqHeaders, resHeaders) {
- var modifiedSince = reqHeaders["if-modified-since"];
- var noneMatch = reqHeaders["if-none-match"];
- if (!modifiedSince && !noneMatch) {
- return false;
- }
- var cacheControl = reqHeaders["cache-control"];
- if (cacheControl && CACHE_CONTROL_NO_CACHE_REGEXP.test(cacheControl)) {
- return false;
- }
- if (noneMatch) {
- if (noneMatch === "*") {
- return true;
- }
- var etag = resHeaders.etag;
- if (!etag) {
- return false;
- }
- var matches = parseTokenList(noneMatch);
- for (var i = 0; i < matches.length; i++) {
- var match = matches[i];
- if (match === etag || match === "W/" + etag || "W/" + match === etag) {
- return true;
- }
- }
- return false;
- }
- if (modifiedSince) {
- var lastModified = resHeaders["last-modified"];
- var modifiedStale = !lastModified || !(parseHttpDate(lastModified) <= parseHttpDate(modifiedSince));
- if (modifiedStale) {
- return false;
- }
- }
- return true;
- }
- function parseHttpDate(date) {
- var timestamp = date && Date.parse(date);
- return typeof timestamp === "number" ? timestamp : NaN;
- }
- function parseTokenList(str) {
- var end = 0;
- var list = [];
- var start = 0;
- for (var i = 0, len = str.length; i < len; i++) {
- switch (str.charCodeAt(i)) {
- case 32:
- if (start === end) {
- start = end = i + 1;
- }
- break;
- case 44:
- list.push(str.substring(start, end));
- start = end = i + 1;
- break;
- default:
- end = i + 1;
- break;
- }
- }
- list.push(str.substring(start, end));
- return list;
- }
- }
- });
- // node_modules/range-parser/index.js
- var require_range_parser = __commonJS({
- "node_modules/range-parser/index.js"(exports2, module2) {
- "use strict";
- module2.exports = rangeParser;
- function rangeParser(size, str, options) {
- if (typeof str !== "string") {
- throw new TypeError("argument str must be a string");
- }
- var index = str.indexOf("=");
- if (index === -1) {
- return -2;
- }
- var arr = str.slice(index + 1).split(",");
- var ranges = [];
- ranges.type = str.slice(0, index);
- for (var i = 0; i < arr.length; i++) {
- var range = arr[i].split("-");
- var start = parseInt(range[0], 10);
- var end = parseInt(range[1], 10);
- if (isNaN(start)) {
- start = size - end;
- end = size - 1;
- } else if (isNaN(end)) {
- end = size - 1;
- }
- if (end > size - 1) {
- end = size - 1;
- }
- if (isNaN(start) || isNaN(end) || start > end || start < 0) {
- continue;
- }
- ranges.push({
- start,
- end
- });
- }
- if (ranges.length < 1) {
- return -1;
- }
- return options && options.combine ? combineRanges(ranges) : ranges;
- }
- function combineRanges(ranges) {
- var ordered = ranges.map(mapWithIndex).sort(sortByRangeStart);
- for (var j = 0, i = 1; i < ordered.length; i++) {
- var range = ordered[i];
- var current = ordered[j];
- if (range.start > current.end + 1) {
- ordered[++j] = range;
- } else if (range.end > current.end) {
- current.end = range.end;
- current.index = Math.min(current.index, range.index);
- }
- }
- ordered.length = j + 1;
- var combined = ordered.sort(sortByRangeIndex).map(mapWithoutIndex);
- combined.type = ranges.type;
- return combined;
- }
- function mapWithIndex(range, index) {
- return {
- start: range.start,
- end: range.end,
- index
- };
- }
- function mapWithoutIndex(range) {
- return {
- start: range.start,
- end: range.end
- };
- }
- function sortByRangeIndex(a, b) {
- return a.index - b.index;
- }
- function sortByRangeStart(a, b) {
- return a.start - b.start;
- }
- }
- });
- // node_modules/express/lib/request.js
- var require_request = __commonJS({
- "node_modules/express/lib/request.js"(exports2, module2) {
- "use strict";
- var accepts = require_accepts();
- var isIP = require("node:net").isIP;
- var typeis = require_type_is();
- var http2 = require("node:http");
- var fresh = require_fresh();
- var parseRange = require_range_parser();
- var parse = require_parseurl();
- var proxyaddr = require_proxy_addr();
- var req = Object.create(http2.IncomingMessage.prototype);
- module2.exports = req;
- req.get = req.header = function header(name) {
- if (!name) {
- throw new TypeError("name argument is required to req.get");
- }
- if (typeof name !== "string") {
- throw new TypeError("name must be a string to req.get");
- }
- var lc = name.toLowerCase();
- switch (lc) {
- case "referer":
- case "referrer":
- return this.headers.referrer || this.headers.referer;
- default:
- return this.headers[lc];
- }
- };
- req.accepts = function() {
- var accept = accepts(this);
- return accept.types.apply(accept, arguments);
- };
- req.acceptsEncodings = function() {
- var accept = accepts(this);
- return accept.encodings.apply(accept, arguments);
- };
- req.acceptsCharsets = function() {
- var accept = accepts(this);
- return accept.charsets.apply(accept, arguments);
- };
- req.acceptsLanguages = function(...languages) {
- return accepts(this).languages(...languages);
- };
- req.range = function range(size, options) {
- var range2 = this.get("Range");
- if (!range2) return;
- return parseRange(size, range2, options);
- };
- defineGetter(req, "query", function query() {
- var queryparse = this.app.get("query parser fn");
- if (!queryparse) {
- return /* @__PURE__ */ Object.create(null);
- }
- var querystring = parse(this).query;
- return queryparse(querystring);
- });
- req.is = function is(types) {
- var arr = types;
- if (!Array.isArray(types)) {
- arr = new Array(arguments.length);
- for (var i = 0; i < arr.length; i++) {
- arr[i] = arguments[i];
- }
- }
- return typeis(this, arr);
- };
- defineGetter(req, "protocol", function protocol() {
- var proto = this.socket.encrypted ? "https" : "http";
- var trust = this.app.get("trust proxy fn");
- if (!trust(this.socket.remoteAddress, 0)) {
- return proto;
- }
- var header = this.get("X-Forwarded-Proto") || proto;
- var index = header.indexOf(",");
- return index !== -1 ? header.substring(0, index).trim() : header.trim();
- });
- defineGetter(req, "secure", function secure() {
- return this.protocol === "https";
- });
- defineGetter(req, "ip", function ip() {
- var trust = this.app.get("trust proxy fn");
- return proxyaddr(this, trust);
- });
- defineGetter(req, "ips", function ips() {
- var trust = this.app.get("trust proxy fn");
- var addrs = proxyaddr.all(this, trust);
- addrs.reverse().pop();
- return addrs;
- });
- defineGetter(req, "subdomains", function subdomains() {
- var hostname = this.hostname;
- if (!hostname) return [];
- var offset = this.app.get("subdomain offset");
- var subdomains2 = !isIP(hostname) ? hostname.split(".").reverse() : [hostname];
- return subdomains2.slice(offset);
- });
- defineGetter(req, "path", function path2() {
- return parse(this).pathname;
- });
- defineGetter(req, "host", function host() {
- var trust = this.app.get("trust proxy fn");
- var val = this.get("X-Forwarded-Host");
- if (!val || !trust(this.socket.remoteAddress, 0)) {
- val = this.get("Host");
- } else if (val.indexOf(",") !== -1) {
- val = val.substring(0, val.indexOf(",")).trimRight();
- }
- return val || void 0;
- });
- defineGetter(req, "hostname", function hostname() {
- var host = this.host;
- if (!host) return;
- var offset = host[0] === "[" ? host.indexOf("]") + 1 : 0;
- var index = host.indexOf(":", offset);
- return index !== -1 ? host.substring(0, index) : host;
- });
- defineGetter(req, "fresh", function() {
- var method = this.method;
- var res = this.res;
- var status = res.statusCode;
- if ("GET" !== method && "HEAD" !== method) return false;
- if (status >= 200 && status < 300 || 304 === status) {
- return fresh(this.headers, {
- "etag": res.get("ETag"),
- "last-modified": res.get("Last-Modified")
- });
- }
- return false;
- });
- defineGetter(req, "stale", function stale() {
- return !this.fresh;
- });
- defineGetter(req, "xhr", function xhr() {
- var val = this.get("X-Requested-With") || "";
- return val.toLowerCase() === "xmlhttprequest";
- });
- function defineGetter(obj, name, getter) {
- Object.defineProperty(obj, name, {
- configurable: true,
- enumerable: true,
- get: getter
- });
- }
- }
- });
- // node_modules/content-disposition/index.js
- var require_content_disposition = __commonJS({
- "node_modules/content-disposition/index.js"(exports2, module2) {
- "use strict";
- module2.exports = contentDisposition;
- module2.exports.parse = parse;
- var utf8Decoder = new TextDecoder("utf-8");
- var ENCODE_URL_ATTR_CHAR_REGEXP = /[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g;
- var NON_LATIN1_REGEXP = /[^\x20-\x7e\xa0-\xff]/g;
- var QESC_REGEXP = /\\([\u0000-\u007f])/g;
- var QUOTE_REGEXP = /([\\"])/g;
- var PARAM_REGEXP = /;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g;
- var TEXT_REGEXP = /^[\x20-\x7e\x80-\xff]+$/;
- var TOKEN_REGEXP = /^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/;
- var EXT_VALUE_REGEXP = /^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/;
- var DISPOSITION_TYPE_REGEXP = /^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;
- function contentDisposition(filename, options) {
- var opts = options || {};
- var type = opts.type || "attachment";
- var params = createparams(filename, opts.fallback);
- return format(new ContentDisposition(type, params));
- }
- function createparams(filename, fallback) {
- if (filename === void 0) {
- return;
- }
- var params = {};
- if (typeof filename !== "string") {
- throw new TypeError("filename must be a string");
- }
- if (fallback === void 0) {
- fallback = true;
- }
- if (typeof fallback !== "string" && typeof fallback !== "boolean") {
- throw new TypeError("fallback must be a string or boolean");
- }
- if (typeof fallback === "string" && NON_LATIN1_REGEXP.test(fallback)) {
- throw new TypeError("fallback must be ISO-8859-1 string");
- }
- var name = basename(filename);
- var isQuotedString = TEXT_REGEXP.test(name);
- var fallbackName = typeof fallback !== "string" ? fallback && getlatin1(name) : basename(fallback);
- var hasFallback = typeof fallbackName === "string" && fallbackName !== name;
- if (hasFallback || !isQuotedString || hasHexEscape(name)) {
- params["filename*"] = name;
- }
- if (isQuotedString || hasFallback) {
- params.filename = hasFallback ? fallbackName : name;
- }
- return params;
- }
- function format(obj) {
- var parameters = obj.parameters;
- var type = obj.type;
- if (!type || typeof type !== "string" || !TOKEN_REGEXP.test(type)) {
- throw new TypeError("invalid type");
- }
- var string = String(type).toLowerCase();
- if (parameters && typeof parameters === "object") {
- var param;
- var params = Object.keys(parameters).sort();
- for (var i = 0; i < params.length; i++) {
- param = params[i];
- var val = param.slice(-1) === "*" ? ustring(parameters[param]) : qstring(parameters[param]);
- string += "; " + param + "=" + val;
- }
- }
- return string;
- }
- function decodefield(str) {
- const match = EXT_VALUE_REGEXP.exec(str);
- if (!match) {
- throw new TypeError("invalid extended field value");
- }
- const charset = match[1].toLowerCase();
- const encoded = match[2];
- switch (charset) {
- case "iso-8859-1": {
- const binary = decodeHexEscapes(encoded);
- return getlatin1(binary);
- }
- case "utf-8":
- case "utf8": {
- try {
- return decodeURIComponent(encoded);
- } catch {
- const binary = decodeHexEscapes(encoded);
- const bytes = new Uint8Array(binary.length);
- for (let idx = 0; idx < binary.length; idx++) {
- bytes[idx] = binary.charCodeAt(idx);
- }
- return utf8Decoder.decode(bytes);
- }
- }
- }
- throw new TypeError("unsupported charset in extended field");
- }
- function getlatin1(val) {
- return String(val).replace(NON_LATIN1_REGEXP, "?");
- }
- function parse(string) {
- if (!string || typeof string !== "string") {
- throw new TypeError("argument string is required");
- }
- var match = DISPOSITION_TYPE_REGEXP.exec(string);
- if (!match) {
- throw new TypeError("invalid type format");
- }
- var index = match[0].length;
- var type = match[1].toLowerCase();
- var key;
- var names = [];
- var params = {};
- var value;
- index = PARAM_REGEXP.lastIndex = match[0].slice(-1) === ";" ? index - 1 : index;
- while (match = PARAM_REGEXP.exec(string)) {
- if (match.index !== index) {
- throw new TypeError("invalid parameter format");
- }
- index += match[0].length;
- key = match[1].toLowerCase();
- value = match[2];
- if (names.indexOf(key) !== -1) {
- throw new TypeError("invalid duplicate parameter");
- }
- names.push(key);
- if (key.indexOf("*") + 1 === key.length) {
- key = key.slice(0, -1);
- value = decodefield(value);
- params[key] = value;
- continue;
- }
- if (typeof params[key] === "string") {
- continue;
- }
- if (value[0] === '"') {
- value = value.slice(1, -1).replace(QESC_REGEXP, "$1");
- }
- params[key] = value;
- }
- if (index !== -1 && index !== string.length) {
- throw new TypeError("invalid parameter format");
- }
- return new ContentDisposition(type, params);
- }
- function pencode(char) {
- return "%" + String(char).charCodeAt(0).toString(16).toUpperCase();
- }
- function qstring(val) {
- var str = String(val);
- return '"' + str.replace(QUOTE_REGEXP, "\\$1") + '"';
- }
- function ustring(val) {
- var str = String(val);
- var encoded = encodeURIComponent(str).replace(ENCODE_URL_ATTR_CHAR_REGEXP, pencode);
- return "UTF-8''" + encoded;
- }
- function ContentDisposition(type, parameters) {
- this.type = type;
- this.parameters = parameters;
- }
- function basename(path2) {
- const normalized = path2.replaceAll("\\", "/");
- let end = normalized.length;
- while (end > 0 && normalized[end - 1] === "/") {
- end--;
- }
- if (end === 0) {
- return "";
- }
- let start = end - 1;
- while (start >= 0 && normalized[start] !== "/") {
- start--;
- }
- return normalized.slice(start + 1, end);
- }
- function isHexDigit(char) {
- const code = char.charCodeAt(0);
- return code >= 48 && code <= 57 || // 0-9
- code >= 65 && code <= 70 || // A-F
- code >= 97 && code <= 102;
- }
- function hasHexEscape(str) {
- const maxIndex = str.length - 3;
- let lastIndex = -1;
- while ((lastIndex = str.indexOf("%", lastIndex + 1)) !== -1 && lastIndex <= maxIndex) {
- if (isHexDigit(str[lastIndex + 1]) && isHexDigit(str[lastIndex + 2])) {
- return true;
- }
- }
- return false;
- }
- function decodeHexEscapes(str) {
- const firstEscape = str.indexOf("%");
- if (firstEscape === -1) return str;
- let result = str.slice(0, firstEscape);
- for (let idx = firstEscape; idx < str.length; idx++) {
- if (str[idx] === "%" && idx + 2 < str.length && isHexDigit(str[idx + 1]) && isHexDigit(str[idx + 2])) {
- result += String.fromCharCode(Number.parseInt(str[idx + 1] + str[idx + 2], 16));
- idx += 2;
- } else {
- result += str[idx];
- }
- }
- return result;
- }
- }
- });
- // node_modules/express/node_modules/cookie-signature/index.js
- var require_cookie_signature = __commonJS({
- "node_modules/express/node_modules/cookie-signature/index.js"(exports2) {
- var crypto2 = require("crypto");
- exports2.sign = function(val, secret) {
- if ("string" != typeof val) throw new TypeError("Cookie value must be provided as a string.");
- if (null == secret) throw new TypeError("Secret key must be provided.");
- return val + "." + crypto2.createHmac("sha256", secret).update(val).digest("base64").replace(/\=+$/, "");
- };
- exports2.unsign = function(input, secret) {
- if ("string" != typeof input) throw new TypeError("Signed cookie string must be provided.");
- if (null == secret) throw new TypeError("Secret key must be provided.");
- var tentativeValue = input.slice(0, input.lastIndexOf(".")), expectedInput = exports2.sign(tentativeValue, secret), expectedBuffer = Buffer.from(expectedInput), inputBuffer = Buffer.from(input);
- return expectedBuffer.length === inputBuffer.length && crypto2.timingSafeEqual(expectedBuffer, inputBuffer) ? tentativeValue : false;
- };
- }
- });
- // node_modules/cookie/index.js
- var require_cookie = __commonJS({
- "node_modules/cookie/index.js"(exports2) {
- "use strict";
- exports2.parse = parse;
- exports2.serialize = serialize;
- var __toString = Object.prototype.toString;
- var __hasOwnProperty = Object.prototype.hasOwnProperty;
- var cookieNameRegExp = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
- var cookieValueRegExp = /^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/;
- var domainValueRegExp = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;
- var pathValueRegExp = /^[\u0020-\u003A\u003D-\u007E]*$/;
- function parse(str, opt) {
- if (typeof str !== "string") {
- throw new TypeError("argument str must be a string");
- }
- var obj = {};
- var len = str.length;
- if (len < 2) return obj;
- var dec = opt && opt.decode || decode;
- var index = 0;
- var eqIdx = 0;
- var endIdx = 0;
- do {
- eqIdx = str.indexOf("=", index);
- if (eqIdx === -1) break;
- endIdx = str.indexOf(";", index);
- if (endIdx === -1) {
- endIdx = len;
- } else if (eqIdx > endIdx) {
- index = str.lastIndexOf(";", eqIdx - 1) + 1;
- continue;
- }
- var keyStartIdx = startIndex(str, index, eqIdx);
- var keyEndIdx = endIndex(str, eqIdx, keyStartIdx);
- var key = str.slice(keyStartIdx, keyEndIdx);
- if (!__hasOwnProperty.call(obj, key)) {
- var valStartIdx = startIndex(str, eqIdx + 1, endIdx);
- var valEndIdx = endIndex(str, endIdx, valStartIdx);
- if (str.charCodeAt(valStartIdx) === 34 && str.charCodeAt(valEndIdx - 1) === 34) {
- valStartIdx++;
- valEndIdx--;
- }
- var val = str.slice(valStartIdx, valEndIdx);
- obj[key] = tryDecode(val, dec);
- }
- index = endIdx + 1;
- } while (index < len);
- return obj;
- }
- function startIndex(str, index, max) {
- do {
- var code = str.charCodeAt(index);
- if (code !== 32 && code !== 9) return index;
- } while (++index < max);
- return max;
- }
- function endIndex(str, index, min) {
- while (index > min) {
- var code = str.charCodeAt(--index);
- if (code !== 32 && code !== 9) return index + 1;
- }
- return min;
- }
- function serialize(name, val, opt) {
- var enc = opt && opt.encode || encodeURIComponent;
- if (typeof enc !== "function") {
- throw new TypeError("option encode is invalid");
- }
- if (!cookieNameRegExp.test(name)) {
- throw new TypeError("argument name is invalid");
- }
- var value = enc(val);
- if (!cookieValueRegExp.test(value)) {
- throw new TypeError("argument val is invalid");
- }
- var str = name + "=" + value;
- if (!opt) return str;
- if (null != opt.maxAge) {
- var maxAge = Math.floor(opt.maxAge);
- if (!isFinite(maxAge)) {
- throw new TypeError("option maxAge is invalid");
- }
- str += "; Max-Age=" + maxAge;
- }
- if (opt.domain) {
- if (!domainValueRegExp.test(opt.domain)) {
- throw new TypeError("option domain is invalid");
- }
- str += "; Domain=" + opt.domain;
- }
- if (opt.path) {
- if (!pathValueRegExp.test(opt.path)) {
- throw new TypeError("option path is invalid");
- }
- str += "; Path=" + opt.path;
- }
- if (opt.expires) {
- var expires = opt.expires;
- if (!isDate(expires) || isNaN(expires.valueOf())) {
- throw new TypeError("option expires is invalid");
- }
- str += "; Expires=" + expires.toUTCString();
- }
- if (opt.httpOnly) {
- str += "; HttpOnly";
- }
- if (opt.secure) {
- str += "; Secure";
- }
- if (opt.partitioned) {
- str += "; Partitioned";
- }
- if (opt.priority) {
- var priority = typeof opt.priority === "string" ? opt.priority.toLowerCase() : opt.priority;
- switch (priority) {
- case "low":
- str += "; Priority=Low";
- break;
- case "medium":
- str += "; Priority=Medium";
- break;
- case "high":
- str += "; Priority=High";
- break;
- default:
- throw new TypeError("option priority is invalid");
- }
- }
- if (opt.sameSite) {
- var sameSite = typeof opt.sameSite === "string" ? opt.sameSite.toLowerCase() : opt.sameSite;
- switch (sameSite) {
- case true:
- str += "; SameSite=Strict";
- break;
- case "lax":
- str += "; SameSite=Lax";
- break;
- case "strict":
- str += "; SameSite=Strict";
- break;
- case "none":
- str += "; SameSite=None";
- break;
- default:
- throw new TypeError("option sameSite is invalid");
- }
- }
- return str;
- }
- function decode(str) {
- return str.indexOf("%") !== -1 ? decodeURIComponent(str) : str;
- }
- function isDate(val) {
- return __toString.call(val) === "[object Date]";
- }
- function tryDecode(str, decode2) {
- try {
- return decode2(str);
- } catch (e) {
- return str;
- }
- }
- }
- });
- // node_modules/send/index.js
- var require_send = __commonJS({
- "node_modules/send/index.js"(exports2, module2) {
- "use strict";
- var createError = require_http_errors();
- var debug = require_src()("send");
- var encodeUrl = require_encodeurl();
- var escapeHtml = require_escape_html();
- var etag = require_etag();
- var fresh = require_fresh();
- var fs4 = require("fs");
- var mime = require_mime_types();
- var ms = require_ms();
- var onFinished = require_on_finished();
- var parseRange = require_range_parser();
- var path2 = require("path");
- var statuses = require_statuses();
- var Stream = require("stream");
- var util = require("util");
- var extname = path2.extname;
- var join2 = path2.join;
- var normalize = path2.normalize;
- var resolve = path2.resolve;
- var sep = path2.sep;
- var BYTES_RANGE_REGEXP = /^ *bytes=/;
- var MAX_MAXAGE = 60 * 60 * 24 * 365 * 1e3;
- var UP_PATH_REGEXP = /(?:^|[\\/])\.\.(?:[\\/]|$)/;
- module2.exports = send;
- function send(req, path3, options) {
- return new SendStream(req, path3, options);
- }
- function SendStream(req, path3, options) {
- Stream.call(this);
- var opts = options || {};
- this.options = opts;
- this.path = path3;
- this.req = req;
- this._acceptRanges = opts.acceptRanges !== void 0 ? Boolean(opts.acceptRanges) : true;
- this._cacheControl = opts.cacheControl !== void 0 ? Boolean(opts.cacheControl) : true;
- this._etag = opts.etag !== void 0 ? Boolean(opts.etag) : true;
- this._dotfiles = opts.dotfiles !== void 0 ? opts.dotfiles : "ignore";
- if (this._dotfiles !== "ignore" && this._dotfiles !== "allow" && this._dotfiles !== "deny") {
- throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"');
- }
- this._extensions = opts.extensions !== void 0 ? normalizeList(opts.extensions, "extensions option") : [];
- this._immutable = opts.immutable !== void 0 ? Boolean(opts.immutable) : false;
- this._index = opts.index !== void 0 ? normalizeList(opts.index, "index option") : ["index.html"];
- this._lastModified = opts.lastModified !== void 0 ? Boolean(opts.lastModified) : true;
- this._maxage = opts.maxAge || opts.maxage;
- this._maxage = typeof this._maxage === "string" ? ms(this._maxage) : Number(this._maxage);
- this._maxage = !isNaN(this._maxage) ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE) : 0;
- this._root = opts.root ? resolve(opts.root) : null;
- }
- util.inherits(SendStream, Stream);
- SendStream.prototype.error = function error(status, err) {
- if (hasListeners(this, "error")) {
- return this.emit("error", createHttpError(status, err));
- }
- var res = this.res;
- var msg = statuses.message[status] || String(status);
- var doc = createHtmlDocument("Error", escapeHtml(msg));
- clearHeaders(res);
- if (err && err.headers) {
- setHeaders(res, err.headers);
- }
- res.statusCode = status;
- res.setHeader("Content-Type", "text/html; charset=UTF-8");
- res.setHeader("Content-Length", Buffer.byteLength(doc));
- res.setHeader("Content-Security-Policy", "default-src 'none'");
- res.setHeader("X-Content-Type-Options", "nosniff");
- res.end(doc);
- };
- SendStream.prototype.hasTrailingSlash = function hasTrailingSlash() {
- return this.path[this.path.length - 1] === "/";
- };
- SendStream.prototype.isConditionalGET = function isConditionalGET() {
- return this.req.headers["if-match"] || this.req.headers["if-unmodified-since"] || this.req.headers["if-none-match"] || this.req.headers["if-modified-since"];
- };
- SendStream.prototype.isPreconditionFailure = function isPreconditionFailure() {
- var req = this.req;
- var res = this.res;
- var match = req.headers["if-match"];
- if (match) {
- var etag2 = res.getHeader("ETag");
- return !etag2 || match !== "*" && parseTokenList(match).every(function(match2) {
- return match2 !== etag2 && match2 !== "W/" + etag2 && "W/" + match2 !== etag2;
- });
- }
- var unmodifiedSince = parseHttpDate(req.headers["if-unmodified-since"]);
- if (!isNaN(unmodifiedSince)) {
- var lastModified = parseHttpDate(res.getHeader("Last-Modified"));
- return isNaN(lastModified) || lastModified > unmodifiedSince;
- }
- return false;
- };
- SendStream.prototype.removeContentHeaderFields = function removeContentHeaderFields() {
- var res = this.res;
- res.removeHeader("Content-Encoding");
- res.removeHeader("Content-Language");
- res.removeHeader("Content-Length");
- res.removeHeader("Content-Range");
- res.removeHeader("Content-Type");
- };
- SendStream.prototype.notModified = function notModified() {
- var res = this.res;
- debug("not modified");
- this.removeContentHeaderFields();
- res.statusCode = 304;
- res.end();
- };
- SendStream.prototype.headersAlreadySent = function headersAlreadySent() {
- var err = new Error("Can't set headers after they are sent.");
- debug("headers already sent");
- this.error(500, err);
- };
- SendStream.prototype.isCachable = function isCachable() {
- var statusCode = this.res.statusCode;
- return statusCode >= 200 && statusCode < 300 || statusCode === 304;
- };
- SendStream.prototype.onStatError = function onStatError(error) {
- switch (error.code) {
- case "ENAMETOOLONG":
- case "ENOENT":
- case "ENOTDIR":
- this.error(404, error);
- break;
- default:
- this.error(500, error);
- break;
- }
- };
- SendStream.prototype.isFresh = function isFresh() {
- return fresh(this.req.headers, {
- etag: this.res.getHeader("ETag"),
- "last-modified": this.res.getHeader("Last-Modified")
- });
- };
- SendStream.prototype.isRangeFresh = function isRangeFresh() {
- var ifRange = this.req.headers["if-range"];
- if (!ifRange) {
- return true;
- }
- if (ifRange.indexOf('"') !== -1) {
- var etag2 = this.res.getHeader("ETag");
- return Boolean(etag2 && ifRange.indexOf(etag2) !== -1);
- }
- var lastModified = this.res.getHeader("Last-Modified");
- return parseHttpDate(lastModified) <= parseHttpDate(ifRange);
- };
- SendStream.prototype.redirect = function redirect(path3) {
- var res = this.res;
- if (hasListeners(this, "directory")) {
- this.emit("directory", res, path3);
- return;
- }
- if (this.hasTrailingSlash()) {
- this.error(403);
- return;
- }
- var loc = encodeUrl(collapseLeadingSlashes(this.path + "/"));
- var doc = createHtmlDocument("Redirecting", "Redirecting to " + escapeHtml(loc));
- res.statusCode = 301;
- res.setHeader("Content-Type", "text/html; charset=UTF-8");
- res.setHeader("Content-Length", Buffer.byteLength(doc));
- res.setHeader("Content-Security-Policy", "default-src 'none'");
- res.setHeader("X-Content-Type-Options", "nosniff");
- res.setHeader("Location", loc);
- res.end(doc);
- };
- SendStream.prototype.pipe = function pipe(res) {
- var root = this._root;
- this.res = res;
- var path3 = decode(this.path);
- if (path3 === -1) {
- this.error(400);
- return res;
- }
- if (~path3.indexOf("\0")) {
- this.error(400);
- return res;
- }
- var parts;
- if (root !== null) {
- if (path3) {
- path3 = normalize("." + sep + path3);
- }
- if (UP_PATH_REGEXP.test(path3)) {
- debug('malicious path "%s"', path3);
- this.error(403);
- return res;
- }
- parts = path3.split(sep);
- path3 = normalize(join2(root, path3));
- } else {
- if (UP_PATH_REGEXP.test(path3)) {
- debug('malicious path "%s"', path3);
- this.error(403);
- return res;
- }
- parts = normalize(path3).split(sep);
- path3 = resolve(path3);
- }
- if (containsDotFile(parts)) {
- debug('%s dotfile "%s"', this._dotfiles, path3);
- switch (this._dotfiles) {
- case "allow":
- break;
- case "deny":
- this.error(403);
- return res;
- case "ignore":
- default:
- this.error(404);
- return res;
- }
- }
- if (this._index.length && this.hasTrailingSlash()) {
- this.sendIndex(path3);
- return res;
- }
- this.sendFile(path3);
- return res;
- };
- SendStream.prototype.send = function send2(path3, stat) {
- var len = stat.size;
- var options = this.options;
- var opts = {};
- var res = this.res;
- var req = this.req;
- var ranges = req.headers.range;
- var offset = options.start || 0;
- if (res.headersSent) {
- this.headersAlreadySent();
- return;
- }
- debug('pipe "%s"', path3);
- this.setHeader(path3, stat);
- this.type(path3);
- if (this.isConditionalGET()) {
- if (this.isPreconditionFailure()) {
- this.error(412);
- return;
- }
- if (this.isCachable() && this.isFresh()) {
- this.notModified();
- return;
- }
- }
- len = Math.max(0, len - offset);
- if (options.end !== void 0) {
- var bytes = options.end - offset + 1;
- if (len > bytes) len = bytes;
- }
- if (this._acceptRanges && BYTES_RANGE_REGEXP.test(ranges)) {
- ranges = parseRange(len, ranges, {
- combine: true
- });
- if (!this.isRangeFresh()) {
- debug("range stale");
- ranges = -2;
- }
- if (ranges === -1) {
- debug("range unsatisfiable");
- res.setHeader("Content-Range", contentRange("bytes", len));
- return this.error(416, {
- headers: { "Content-Range": res.getHeader("Content-Range") }
- });
- }
- if (ranges !== -2 && ranges.length === 1) {
- debug("range %j", ranges);
- res.statusCode = 206;
- res.setHeader("Content-Range", contentRange("bytes", len, ranges[0]));
- offset += ranges[0].start;
- len = ranges[0].end - ranges[0].start + 1;
- }
- }
- for (var prop in options) {
- opts[prop] = options[prop];
- }
- opts.start = offset;
- opts.end = Math.max(offset, offset + len - 1);
- res.setHeader("Content-Length", len);
- if (req.method === "HEAD") {
- res.end();
- return;
- }
- this.stream(path3, opts);
- };
- SendStream.prototype.sendFile = function sendFile(path3) {
- var i = 0;
- var self2 = this;
- debug('stat "%s"', path3);
- fs4.stat(path3, function onstat(err, stat) {
- var pathEndsWithSep = path3[path3.length - 1] === sep;
- if (err && err.code === "ENOENT" && !extname(path3) && !pathEndsWithSep) {
- return next(err);
- }
- if (err) return self2.onStatError(err);
- if (stat.isDirectory()) return self2.redirect(path3);
- if (pathEndsWithSep) return self2.error(404);
- self2.emit("file", path3, stat);
- self2.send(path3, stat);
- });
- function next(err) {
- if (self2._extensions.length <= i) {
- return err ? self2.onStatError(err) : self2.error(404);
- }
- var p = path3 + "." + self2._extensions[i++];
- debug('stat "%s"', p);
- fs4.stat(p, function(err2, stat) {
- if (err2) return next(err2);
- if (stat.isDirectory()) return next();
- self2.emit("file", p, stat);
- self2.send(p, stat);
- });
- }
- };
- SendStream.prototype.sendIndex = function sendIndex(path3) {
- var i = -1;
- var self2 = this;
- function next(err) {
- if (++i >= self2._index.length) {
- if (err) return self2.onStatError(err);
- return self2.error(404);
- }
- var p = join2(path3, self2._index[i]);
- debug('stat "%s"', p);
- fs4.stat(p, function(err2, stat) {
- if (err2) return next(err2);
- if (stat.isDirectory()) return next();
- self2.emit("file", p, stat);
- self2.send(p, stat);
- });
- }
- next();
- };
- SendStream.prototype.stream = function stream(path3, options) {
- var self2 = this;
- var res = this.res;
- var stream2 = fs4.createReadStream(path3, options);
- this.emit("stream", stream2);
- stream2.pipe(res);
- function cleanup() {
- stream2.destroy();
- }
- onFinished(res, cleanup);
- stream2.on("error", function onerror(err) {
- cleanup();
- self2.onStatError(err);
- });
- stream2.on("end", function onend() {
- self2.emit("end");
- });
- };
- SendStream.prototype.type = function type(path3) {
- var res = this.res;
- if (res.getHeader("Content-Type")) return;
- var ext = extname(path3);
- var type2 = mime.contentType(ext) || "application/octet-stream";
- debug("content-type %s", type2);
- res.setHeader("Content-Type", type2);
- };
- SendStream.prototype.setHeader = function setHeader(path3, stat) {
- var res = this.res;
- this.emit("headers", res, path3, stat);
- if (this._acceptRanges && !res.getHeader("Accept-Ranges")) {
- debug("accept ranges");
- res.setHeader("Accept-Ranges", "bytes");
- }
- if (this._cacheControl && !res.getHeader("Cache-Control")) {
- var cacheControl = "public, max-age=" + Math.floor(this._maxage / 1e3);
- if (this._immutable) {
- cacheControl += ", immutable";
- }
- debug("cache-control %s", cacheControl);
- res.setHeader("Cache-Control", cacheControl);
- }
- if (this._lastModified && !res.getHeader("Last-Modified")) {
- var modified = stat.mtime.toUTCString();
- debug("modified %s", modified);
- res.setHeader("Last-Modified", modified);
- }
- if (this._etag && !res.getHeader("ETag")) {
- var val = etag(stat);
- debug("etag %s", val);
- res.setHeader("ETag", val);
- }
- };
- function clearHeaders(res) {
- for (const header of res.getHeaderNames()) {
- res.removeHeader(header);
- }
- }
- function collapseLeadingSlashes(str) {
- for (var i = 0; i < str.length; i++) {
- if (str[i] !== "/") {
- break;
- }
- }
- return i > 1 ? "/" + str.substr(i) : str;
- }
- function containsDotFile(parts) {
- for (var i = 0; i < parts.length; i++) {
- var part = parts[i];
- if (part.length > 1 && part[0] === ".") {
- return true;
- }
- }
- return false;
- }
- function contentRange(type, size, range) {
- return type + " " + (range ? range.start + "-" + range.end : "*") + "/" + size;
- }
- function createHtmlDocument(title, body) {
- return '<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>' + title + "</title>\n</head>\n<body>\n<pre>" + body + "</pre>\n</body>\n</html>\n";
- }
- function createHttpError(status, err) {
- if (!err) {
- return createError(status);
- }
- return err instanceof Error ? createError(status, err, { expose: false }) : createError(status, err);
- }
- function decode(path3) {
- try {
- return decodeURIComponent(path3);
- } catch (err) {
- return -1;
- }
- }
- function hasListeners(emitter, type) {
- var count = typeof emitter.listenerCount !== "function" ? emitter.listeners(type).length : emitter.listenerCount(type);
- return count > 0;
- }
- function normalizeList(val, name) {
- var list = [].concat(val || []);
- for (var i = 0; i < list.length; i++) {
- if (typeof list[i] !== "string") {
- throw new TypeError(name + " must be array of strings or false");
- }
- }
- return list;
- }
- function parseHttpDate(date) {
- var timestamp = date && Date.parse(date);
- return typeof timestamp === "number" ? timestamp : NaN;
- }
- function parseTokenList(str) {
- var end = 0;
- var list = [];
- var start = 0;
- for (var i = 0, len = str.length; i < len; i++) {
- switch (str.charCodeAt(i)) {
- case 32:
- if (start === end) {
- start = end = i + 1;
- }
- break;
- case 44:
- if (start !== end) {
- list.push(str.substring(start, end));
- }
- start = end = i + 1;
- break;
- default:
- end = i + 1;
- break;
- }
- }
- if (start !== end) {
- list.push(str.substring(start, end));
- }
- return list;
- }
- function setHeaders(res, headers) {
- var keys = Object.keys(headers);
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i];
- res.setHeader(key, headers[key]);
- }
- }
- }
- });
- // node_modules/vary/index.js
- var require_vary = __commonJS({
- "node_modules/vary/index.js"(exports2, module2) {
- "use strict";
- module2.exports = vary;
- module2.exports.append = append;
- var FIELD_NAME_REGEXP = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
- function append(header, field) {
- if (typeof header !== "string") {
- throw new TypeError("header argument is required");
- }
- if (!field) {
- throw new TypeError("field argument is required");
- }
- var fields = !Array.isArray(field) ? parse(String(field)) : field;
- for (var j = 0; j < fields.length; j++) {
- if (!FIELD_NAME_REGEXP.test(fields[j])) {
- throw new TypeError("field argument contains an invalid header name");
- }
- }
- if (header === "*") {
- return header;
- }
- var val = header;
- var vals = parse(header.toLowerCase());
- if (fields.indexOf("*") !== -1 || vals.indexOf("*") !== -1) {
- return "*";
- }
- for (var i = 0; i < fields.length; i++) {
- var fld = fields[i].toLowerCase();
- if (vals.indexOf(fld) === -1) {
- vals.push(fld);
- val = val ? val + ", " + fields[i] : fields[i];
- }
- }
- return val;
- }
- function parse(header) {
- var end = 0;
- var list = [];
- var start = 0;
- for (var i = 0, len = header.length; i < len; i++) {
- switch (header.charCodeAt(i)) {
- case 32:
- if (start === end) {
- start = end = i + 1;
- }
- break;
- case 44:
- list.push(header.substring(start, end));
- start = end = i + 1;
- break;
- default:
- end = i + 1;
- break;
- }
- }
- list.push(header.substring(start, end));
- return list;
- }
- function vary(res, field) {
- if (!res || !res.getHeader || !res.setHeader) {
- throw new TypeError("res argument is required");
- }
- var val = res.getHeader("Vary") || "";
- var header = Array.isArray(val) ? val.join(", ") : String(val);
- if (val = append(header, field)) {
- res.setHeader("Vary", val);
- }
- }
- }
- });
- // node_modules/express/lib/response.js
- var require_response = __commonJS({
- "node_modules/express/lib/response.js"(exports2, module2) {
- "use strict";
- var contentDisposition = require_content_disposition();
- var createError = require_http_errors();
- var deprecate = require_depd()("express");
- var encodeUrl = require_encodeurl();
- var escapeHtml = require_escape_html();
- var http2 = require("node:http");
- var onFinished = require_on_finished();
- var mime = require_mime_types();
- var path2 = require("node:path");
- var pathIsAbsolute = require("node:path").isAbsolute;
- var statuses = require_statuses();
- var sign = require_cookie_signature().sign;
- var normalizeType = require_utils3().normalizeType;
- var normalizeTypes = require_utils3().normalizeTypes;
- var setCharset = require_utils3().setCharset;
- var cookie = require_cookie();
- var send = require_send();
- var extname = path2.extname;
- var resolve = path2.resolve;
- var vary = require_vary();
- var { Buffer: Buffer2 } = require("node:buffer");
- var res = Object.create(http2.ServerResponse.prototype);
- module2.exports = res;
- res.status = function status(code) {
- if (!Number.isInteger(code)) {
- throw new TypeError(`Invalid status code: ${JSON.stringify(code)}. Status code must be an integer.`);
- }
- if (code < 100 || code > 999) {
- throw new RangeError(`Invalid status code: ${JSON.stringify(code)}. Status code must be greater than 99 and less than 1000.`);
- }
- this.statusCode = code;
- return this;
- };
- res.links = function(links) {
- var link = this.get("Link") || "";
- if (link) link += ", ";
- return this.set("Link", link + Object.keys(links).map(function(rel) {
- if (Array.isArray(links[rel])) {
- return links[rel].map(function(singleLink) {
- return `<${singleLink}>; rel="${rel}"`;
- }).join(", ");
- } else {
- return `<${links[rel]}>; rel="${rel}"`;
- }
- }).join(", "));
- };
- res.send = function send2(body) {
- var chunk = body;
- var encoding;
- var req = this.req;
- var type;
- var app = this.app;
- switch (typeof chunk) {
- // string defaulting to html
- case "string":
- if (!this.get("Content-Type")) {
- this.type("html");
- }
- break;
- case "boolean":
- case "number":
- case "object":
- if (chunk === null) {
- chunk = "";
- } else if (ArrayBuffer.isView(chunk)) {
- if (!this.get("Content-Type")) {
- this.type("bin");
- }
- } else {
- return this.json(chunk);
- }
- break;
- }
- if (typeof chunk === "string") {
- encoding = "utf8";
- type = this.get("Content-Type");
- if (typeof type === "string") {
- this.set("Content-Type", setCharset(type, "utf-8"));
- }
- }
- var etagFn = app.get("etag fn");
- var generateETag = !this.get("ETag") && typeof etagFn === "function";
- var len;
- if (chunk !== void 0) {
- if (Buffer2.isBuffer(chunk)) {
- len = chunk.length;
- } else if (!generateETag && chunk.length < 1e3) {
- len = Buffer2.byteLength(chunk, encoding);
- } else {
- chunk = Buffer2.from(chunk, encoding);
- encoding = void 0;
- len = chunk.length;
- }
- this.set("Content-Length", len);
- }
- var etag;
- if (generateETag && len !== void 0) {
- if (etag = etagFn(chunk, encoding)) {
- this.set("ETag", etag);
- }
- }
- if (req.fresh) this.status(304);
- if (204 === this.statusCode || 304 === this.statusCode) {
- this.removeHeader("Content-Type");
- this.removeHeader("Content-Length");
- this.removeHeader("Transfer-Encoding");
- chunk = "";
- }
- if (this.statusCode === 205) {
- this.set("Content-Length", "0");
- this.removeHeader("Transfer-Encoding");
- chunk = "";
- }
- if (req.method === "HEAD") {
- this.end();
- } else {
- this.end(chunk, encoding);
- }
- return this;
- };
- res.json = function json(obj) {
- var app = this.app;
- var escape2 = app.get("json escape");
- var replacer = app.get("json replacer");
- var spaces = app.get("json spaces");
- var body = stringify(obj, replacer, spaces, escape2);
- if (!this.get("Content-Type")) {
- this.set("Content-Type", "application/json");
- }
- return this.send(body);
- };
- res.jsonp = function jsonp(obj) {
- var app = this.app;
- var escape2 = app.get("json escape");
- var replacer = app.get("json replacer");
- var spaces = app.get("json spaces");
- var body = stringify(obj, replacer, spaces, escape2);
- var callback = this.req.query[app.get("jsonp callback name")];
- if (!this.get("Content-Type")) {
- this.set("X-Content-Type-Options", "nosniff");
- this.set("Content-Type", "application/json");
- }
- if (Array.isArray(callback)) {
- callback = callback[0];
- }
- if (typeof callback === "string" && callback.length !== 0) {
- this.set("X-Content-Type-Options", "nosniff");
- this.set("Content-Type", "text/javascript");
- callback = callback.replace(/[^\[\]\w$.]/g, "");
- if (body === void 0) {
- body = "";
- } else if (typeof body === "string") {
- body = body.replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
- }
- body = "/**/ typeof " + callback + " === 'function' && " + callback + "(" + body + ");";
- }
- return this.send(body);
- };
- res.sendStatus = function sendStatus(statusCode) {
- var body = statuses.message[statusCode] || String(statusCode);
- this.status(statusCode);
- this.type("txt");
- return this.send(body);
- };
- res.sendFile = function sendFile(path3, options, callback) {
- var done = callback;
- var req = this.req;
- var res2 = this;
- var next = req.next;
- var opts = options || {};
- if (!path3) {
- throw new TypeError("path argument is required to res.sendFile");
- }
- if (typeof path3 !== "string") {
- throw new TypeError("path must be a string to res.sendFile");
- }
- if (typeof options === "function") {
- done = options;
- opts = {};
- }
- if (!opts.root && !pathIsAbsolute(path3)) {
- throw new TypeError("path must be absolute or specify root to res.sendFile");
- }
- var pathname = encodeURI(path3);
- opts.etag = this.app.enabled("etag");
- var file = send(req, pathname, opts);
- sendfile(res2, file, opts, function(err) {
- if (done) return done(err);
- if (err && err.code === "EISDIR") return next();
- if (err && err.code !== "ECONNABORTED" && err.syscall !== "write") {
- next(err);
- }
- });
- };
- res.download = function download(path3, filename, options, callback) {
- var done = callback;
- var name = filename;
- var opts = options || null;
- if (typeof filename === "function") {
- done = filename;
- name = null;
- opts = null;
- } else if (typeof options === "function") {
- done = options;
- opts = null;
- }
- if (typeof filename === "object" && (typeof options === "function" || options === void 0)) {
- name = null;
- opts = filename;
- }
- var headers = {
- "Content-Disposition": contentDisposition(name || path3)
- };
- if (opts && opts.headers) {
- var keys = Object.keys(opts.headers);
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i];
- if (key.toLowerCase() !== "content-disposition") {
- headers[key] = opts.headers[key];
- }
- }
- }
- opts = Object.create(opts);
- opts.headers = headers;
- var fullPath = !opts.root ? resolve(path3) : path3;
- return this.sendFile(fullPath, opts, done);
- };
- res.contentType = res.type = function contentType(type) {
- var ct = type.indexOf("/") === -1 ? mime.contentType(type) || "application/octet-stream" : type;
- return this.set("Content-Type", ct);
- };
- res.format = function(obj) {
- var req = this.req;
- var next = req.next;
- var keys = Object.keys(obj).filter(function(v) {
- return v !== "default";
- });
- var key = keys.length > 0 ? req.accepts(keys) : false;
- this.vary("Accept");
- if (key) {
- this.set("Content-Type", normalizeType(key).value);
- obj[key](req, this, next);
- } else if (obj.default) {
- obj.default(req, this, next);
- } else {
- next(createError(406, {
- types: normalizeTypes(keys).map(function(o) {
- return o.value;
- })
- }));
- }
- return this;
- };
- res.attachment = function attachment(filename) {
- if (filename) {
- this.type(extname(filename));
- }
- this.set("Content-Disposition", contentDisposition(filename));
- return this;
- };
- res.append = function append(field, val) {
- var prev = this.get(field);
- var value = val;
- if (prev) {
- value = Array.isArray(prev) ? prev.concat(val) : Array.isArray(val) ? [prev].concat(val) : [prev, val];
- }
- return this.set(field, value);
- };
- res.set = res.header = function header(field, val) {
- if (arguments.length === 2) {
- var value = Array.isArray(val) ? val.map(String) : String(val);
- if (field.toLowerCase() === "content-type") {
- if (Array.isArray(value)) {
- throw new TypeError("Content-Type cannot be set to an Array");
- }
- value = mime.contentType(value);
- }
- this.setHeader(field, value);
- } else {
- for (var key in field) {
- this.set(key, field[key]);
- }
- }
- return this;
- };
- res.get = function(field) {
- return this.getHeader(field);
- };
- res.clearCookie = function clearCookie(name, options) {
- const opts = { path: "/", ...options, expires: /* @__PURE__ */ new Date(1) };
- delete opts.maxAge;
- return this.cookie(name, "", opts);
- };
- res.cookie = function(name, value, options) {
- var opts = { ...options };
- var secret = this.req.secret;
- var signed = opts.signed;
- if (signed && !secret) {
- throw new Error('cookieParser("secret") required for signed cookies');
- }
- var val = typeof value === "object" ? "j:" + JSON.stringify(value) : String(value);
- if (signed) {
- val = "s:" + sign(val, secret);
- }
- if (opts.maxAge != null) {
- var maxAge = opts.maxAge - 0;
- if (!isNaN(maxAge)) {
- opts.expires = new Date(Date.now() + maxAge);
- opts.maxAge = Math.floor(maxAge / 1e3);
- }
- }
- if (opts.path == null) {
- opts.path = "/";
- }
- this.append("Set-Cookie", cookie.serialize(name, String(val), opts));
- return this;
- };
- res.location = function location2(url) {
- return this.set("Location", encodeUrl(url));
- };
- res.redirect = function redirect(url) {
- var address = url;
- var body;
- var status = 302;
- if (arguments.length === 2) {
- status = arguments[0];
- address = arguments[1];
- }
- if (!address) {
- deprecate("Provide a url argument");
- }
- if (typeof address !== "string") {
- deprecate("Url must be a string");
- }
- if (typeof status !== "number") {
- deprecate("Status must be a number");
- }
- address = this.location(address).get("Location");
- this.format({
- text: function() {
- body = statuses.message[status] + ". Redirecting to " + address;
- },
- html: function() {
- var u = escapeHtml(address);
- body = "<p>" + statuses.message[status] + ". Redirecting to " + u + "</p>";
- },
- default: function() {
- body = "";
- }
- });
- this.status(status);
- this.set("Content-Length", Buffer2.byteLength(body));
- if (this.req.method === "HEAD") {
- this.end();
- } else {
- this.end(body);
- }
- };
- res.vary = function(field) {
- vary(this, field);
- return this;
- };
- res.render = function render(view, options, callback) {
- var app = this.req.app;
- var done = callback;
- var opts = options || {};
- var req = this.req;
- var self2 = this;
- if (typeof options === "function") {
- done = options;
- opts = {};
- }
- opts._locals = self2.locals;
- done = done || function(err, str) {
- if (err) return req.next(err);
- self2.send(str);
- };
- app.render(view, opts, done);
- };
- function sendfile(res2, file, options, callback) {
- var done = false;
- var streaming;
- function onaborted() {
- if (done) return;
- done = true;
- var err = new Error("Request aborted");
- err.code = "ECONNABORTED";
- callback(err);
- }
- function ondirectory() {
- if (done) return;
- done = true;
- var err = new Error("EISDIR, read");
- err.code = "EISDIR";
- callback(err);
- }
- function onerror(err) {
- if (done) return;
- done = true;
- callback(err);
- }
- function onend() {
- if (done) return;
- done = true;
- callback();
- }
- function onfile() {
- streaming = false;
- }
- function onfinish(err) {
- if (err && err.code === "ECONNRESET") return onaborted();
- if (err) return onerror(err);
- if (done) return;
- setImmediate(function() {
- if (streaming !== false && !done) {
- onaborted();
- return;
- }
- if (done) return;
- done = true;
- callback();
- });
- }
- function onstream() {
- streaming = true;
- }
- file.on("directory", ondirectory);
- file.on("end", onend);
- file.on("error", onerror);
- file.on("file", onfile);
- file.on("stream", onstream);
- onFinished(res2, onfinish);
- if (options.headers) {
- file.on("headers", function headers(res3) {
- var obj = options.headers;
- var keys = Object.keys(obj);
- for (var i = 0; i < keys.length; i++) {
- var k = keys[i];
- res3.setHeader(k, obj[k]);
- }
- });
- }
- file.pipe(res2);
- }
- function stringify(value, replacer, spaces, escape2) {
- var json = replacer || spaces ? JSON.stringify(value, replacer, spaces) : JSON.stringify(value);
- if (escape2 && typeof json === "string") {
- json = json.replace(/[<>&]/g, function(c) {
- switch (c.charCodeAt(0)) {
- case 60:
- return "\\u003c";
- case 62:
- return "\\u003e";
- case 38:
- return "\\u0026";
- /* istanbul ignore next: unreachable default */
- default:
- return c;
- }
- });
- }
- return json;
- }
- }
- });
- // node_modules/serve-static/index.js
- var require_serve_static = __commonJS({
- "node_modules/serve-static/index.js"(exports2, module2) {
- "use strict";
- var encodeUrl = require_encodeurl();
- var escapeHtml = require_escape_html();
- var parseUrl = require_parseurl();
- var resolve = require("path").resolve;
- var send = require_send();
- var url = require("url");
- module2.exports = serveStatic;
- function serveStatic(root, options) {
- if (!root) {
- throw new TypeError("root path required");
- }
- if (typeof root !== "string") {
- throw new TypeError("root path must be a string");
- }
- var opts = Object.create(options || null);
- var fallthrough = opts.fallthrough !== false;
- var redirect = opts.redirect !== false;
- var setHeaders = opts.setHeaders;
- if (setHeaders && typeof setHeaders !== "function") {
- throw new TypeError("option setHeaders must be function");
- }
- opts.maxage = opts.maxage || opts.maxAge || 0;
- opts.root = resolve(root);
- var onDirectory = redirect ? createRedirectDirectoryListener() : createNotFoundDirectoryListener();
- return function serveStatic2(req, res, next) {
- if (req.method !== "GET" && req.method !== "HEAD") {
- if (fallthrough) {
- return next();
- }
- res.statusCode = 405;
- res.setHeader("Allow", "GET, HEAD");
- res.setHeader("Content-Length", "0");
- res.end();
- return;
- }
- var forwardError = !fallthrough;
- var originalUrl = parseUrl.original(req);
- var path2 = parseUrl(req).pathname;
- if (path2 === "/" && originalUrl.pathname.substr(-1) !== "/") {
- path2 = "";
- }
- var stream = send(req, path2, opts);
- stream.on("directory", onDirectory);
- if (setHeaders) {
- stream.on("headers", setHeaders);
- }
- if (fallthrough) {
- stream.on("file", function onFile() {
- forwardError = true;
- });
- }
- stream.on("error", function error(err) {
- if (forwardError || !(err.statusCode < 500)) {
- next(err);
- return;
- }
- next();
- });
- stream.pipe(res);
- };
- }
- function collapseLeadingSlashes(str) {
- for (var i = 0; i < str.length; i++) {
- if (str.charCodeAt(i) !== 47) {
- break;
- }
- }
- return i > 1 ? "/" + str.substr(i) : str;
- }
- function createHtmlDocument(title, body) {
- return '<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>' + title + "</title>\n</head>\n<body>\n<pre>" + body + "</pre>\n</body>\n</html>\n";
- }
- function createNotFoundDirectoryListener() {
- return function notFound() {
- this.error(404);
- };
- }
- function createRedirectDirectoryListener() {
- return function redirect(res) {
- if (this.hasTrailingSlash()) {
- this.error(404);
- return;
- }
- var originalUrl = parseUrl.original(this.req);
- originalUrl.path = null;
- originalUrl.pathname = collapseLeadingSlashes(originalUrl.pathname + "/");
- var loc = encodeUrl(url.format(originalUrl));
- var doc = createHtmlDocument("Redirecting", "Redirecting to " + escapeHtml(loc));
- res.statusCode = 301;
- res.setHeader("Content-Type", "text/html; charset=UTF-8");
- res.setHeader("Content-Length", Buffer.byteLength(doc));
- res.setHeader("Content-Security-Policy", "default-src 'none'");
- res.setHeader("X-Content-Type-Options", "nosniff");
- res.setHeader("Location", loc);
- res.end(doc);
- };
- }
- }
- });
- // node_modules/express/lib/express.js
- var require_express = __commonJS({
- "node_modules/express/lib/express.js"(exports2, module2) {
- "use strict";
- var bodyParser = require_body_parser();
- var EventEmitter = require("node:events").EventEmitter;
- var mixin = require_merge_descriptors();
- var proto = require_application();
- var Router = require_router();
- var req = require_request();
- var res = require_response();
- exports2 = module2.exports = createApplication;
- function createApplication() {
- var app = function(req2, res2, next) {
- app.handle(req2, res2, next);
- };
- mixin(app, EventEmitter.prototype, false);
- mixin(app, proto, false);
- app.request = Object.create(req, {
- app: { configurable: true, enumerable: true, writable: true, value: app }
- });
- app.response = Object.create(res, {
- app: { configurable: true, enumerable: true, writable: true, value: app }
- });
- app.init();
- return app;
- }
- exports2.application = proto;
- exports2.request = req;
- exports2.response = res;
- exports2.Route = Router.Route;
- exports2.Router = Router;
- exports2.json = bodyParser.json;
- exports2.raw = bodyParser.raw;
- exports2.static = require_serve_static();
- exports2.text = bodyParser.text;
- exports2.urlencoded = bodyParser.urlencoded;
- }
- });
- // node_modules/express/index.js
- var require_express2 = __commonJS({
- "node_modules/express/index.js"(exports2, module2) {
- "use strict";
- module2.exports = require_express();
- }
- });
- // node_modules/ws/lib/constants.js
- var require_constants = __commonJS({
- "node_modules/ws/lib/constants.js"(exports2, module2) {
- "use strict";
- var BINARY_TYPES = ["nodebuffer", "arraybuffer", "fragments"];
- var hasBlob = typeof Blob !== "undefined";
- if (hasBlob) BINARY_TYPES.push("blob");
- module2.exports = {
- BINARY_TYPES,
- CLOSE_TIMEOUT: 3e4,
- EMPTY_BUFFER: Buffer.alloc(0),
- GUID: "258EAFA5-E914-47DA-95CA-C5AB0DC85B11",
- hasBlob,
- kForOnEventAttribute: /* @__PURE__ */ Symbol("kIsForOnEventAttribute"),
- kListener: /* @__PURE__ */ Symbol("kListener"),
- kStatusCode: /* @__PURE__ */ Symbol("status-code"),
- kWebSocket: /* @__PURE__ */ Symbol("websocket"),
- NOOP: () => {
- }
- };
- }
- });
- // node_modules/ws/lib/buffer-util.js
- var require_buffer_util = __commonJS({
- "node_modules/ws/lib/buffer-util.js"(exports2, module2) {
- "use strict";
- var { EMPTY_BUFFER } = require_constants();
- var FastBuffer = Buffer[Symbol.species];
- function concat(list, totalLength) {
- if (list.length === 0) return EMPTY_BUFFER;
- if (list.length === 1) return list[0];
- const target = Buffer.allocUnsafe(totalLength);
- let offset = 0;
- for (let i = 0; i < list.length; i++) {
- const buf = list[i];
- target.set(buf, offset);
- offset += buf.length;
- }
- if (offset < totalLength) {
- return new FastBuffer(target.buffer, target.byteOffset, offset);
- }
- return target;
- }
- function _mask(source, mask, output, offset, length) {
- for (let i = 0; i < length; i++) {
- output[offset + i] = source[i] ^ mask[i & 3];
- }
- }
- function _unmask(buffer, mask) {
- for (let i = 0; i < buffer.length; i++) {
- buffer[i] ^= mask[i & 3];
- }
- }
- function toArrayBuffer(buf) {
- if (buf.length === buf.buffer.byteLength) {
- return buf.buffer;
- }
- return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.length);
- }
- function toBuffer(data) {
- toBuffer.readOnly = true;
- if (Buffer.isBuffer(data)) return data;
- let buf;
- if (data instanceof ArrayBuffer) {
- buf = new FastBuffer(data);
- } else if (ArrayBuffer.isView(data)) {
- buf = new FastBuffer(data.buffer, data.byteOffset, data.byteLength);
- } else {
- buf = Buffer.from(data);
- toBuffer.readOnly = false;
- }
- return buf;
- }
- module2.exports = {
- concat,
- mask: _mask,
- toArrayBuffer,
- toBuffer,
- unmask: _unmask
- };
- if (!process.env.WS_NO_BUFFER_UTIL) {
- try {
- const bufferUtil = require("bufferutil");
- module2.exports.mask = function(source, mask, output, offset, length) {
- if (length < 48) _mask(source, mask, output, offset, length);
- else bufferUtil.mask(source, mask, output, offset, length);
- };
- module2.exports.unmask = function(buffer, mask) {
- if (buffer.length < 32) _unmask(buffer, mask);
- else bufferUtil.unmask(buffer, mask);
- };
- } catch (e) {
- }
- }
- }
- });
- // node_modules/ws/lib/limiter.js
- var require_limiter = __commonJS({
- "node_modules/ws/lib/limiter.js"(exports2, module2) {
- "use strict";
- var kDone = /* @__PURE__ */ Symbol("kDone");
- var kRun = /* @__PURE__ */ Symbol("kRun");
- var Limiter = class {
- /**
- * Creates a new `Limiter`.
- *
- * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed
- * to run concurrently
- */
- constructor(concurrency) {
- this[kDone] = () => {
- this.pending--;
- this[kRun]();
- };
- this.concurrency = concurrency || Infinity;
- this.jobs = [];
- this.pending = 0;
- }
- /**
- * Adds a job to the queue.
- *
- * @param {Function} job The job to run
- * @public
- */
- add(job) {
- this.jobs.push(job);
- this[kRun]();
- }
- /**
- * Removes a job from the queue and runs it if possible.
- *
- * @private
- */
- [kRun]() {
- if (this.pending === this.concurrency) return;
- if (this.jobs.length) {
- const job = this.jobs.shift();
- this.pending++;
- job(this[kDone]);
- }
- }
- };
- module2.exports = Limiter;
- }
- });
- // node_modules/ws/lib/permessage-deflate.js
- var require_permessage_deflate = __commonJS({
- "node_modules/ws/lib/permessage-deflate.js"(exports2, module2) {
- "use strict";
- var zlib = require("zlib");
- var bufferUtil = require_buffer_util();
- var Limiter = require_limiter();
- var { kStatusCode } = require_constants();
- var FastBuffer = Buffer[Symbol.species];
- var TRAILER = Buffer.from([0, 0, 255, 255]);
- var kPerMessageDeflate = /* @__PURE__ */ Symbol("permessage-deflate");
- var kTotalLength = /* @__PURE__ */ Symbol("total-length");
- var kCallback = /* @__PURE__ */ Symbol("callback");
- var kBuffers = /* @__PURE__ */ Symbol("buffers");
- var kError = /* @__PURE__ */ Symbol("error");
- var zlibLimiter;
- var PerMessageDeflate2 = class {
- /**
- * Creates a PerMessageDeflate instance.
- *
- * @param {Object} [options] Configuration options
- * @param {(Boolean|Number)} [options.clientMaxWindowBits] Advertise support
- * for, or request, a custom client window size
- * @param {Boolean} [options.clientNoContextTakeover=false] Advertise/
- * acknowledge disabling of client context takeover
- * @param {Number} [options.concurrencyLimit=10] The number of concurrent
- * calls to zlib
- * @param {Boolean} [options.isServer=false] Create the instance in either
- * server or client mode
- * @param {Number} [options.maxPayload=0] The maximum allowed message length
- * @param {(Boolean|Number)} [options.serverMaxWindowBits] Request/confirm the
- * use of a custom server window size
- * @param {Boolean} [options.serverNoContextTakeover=false] Request/accept
- * disabling of server context takeover
- * @param {Number} [options.threshold=1024] Size (in bytes) below which
- * messages should not be compressed if context takeover is disabled
- * @param {Object} [options.zlibDeflateOptions] Options to pass to zlib on
- * deflate
- * @param {Object} [options.zlibInflateOptions] Options to pass to zlib on
- * inflate
- */
- constructor(options) {
- this._options = options || {};
- this._threshold = this._options.threshold !== void 0 ? this._options.threshold : 1024;
- this._maxPayload = this._options.maxPayload | 0;
- this._isServer = !!this._options.isServer;
- this._deflate = null;
- this._inflate = null;
- this.params = null;
- if (!zlibLimiter) {
- const concurrency = this._options.concurrencyLimit !== void 0 ? this._options.concurrencyLimit : 10;
- zlibLimiter = new Limiter(concurrency);
- }
- }
- /**
- * @type {String}
- */
- static get extensionName() {
- return "permessage-deflate";
- }
- /**
- * Create an extension negotiation offer.
- *
- * @return {Object} Extension parameters
- * @public
- */
- offer() {
- const params = {};
- if (this._options.serverNoContextTakeover) {
- params.server_no_context_takeover = true;
- }
- if (this._options.clientNoContextTakeover) {
- params.client_no_context_takeover = true;
- }
- if (this._options.serverMaxWindowBits) {
- params.server_max_window_bits = this._options.serverMaxWindowBits;
- }
- if (this._options.clientMaxWindowBits) {
- params.client_max_window_bits = this._options.clientMaxWindowBits;
- } else if (this._options.clientMaxWindowBits == null) {
- params.client_max_window_bits = true;
- }
- return params;
- }
- /**
- * Accept an extension negotiation offer/response.
- *
- * @param {Array} configurations The extension negotiation offers/reponse
- * @return {Object} Accepted configuration
- * @public
- */
- accept(configurations) {
- configurations = this.normalizeParams(configurations);
- this.params = this._isServer ? this.acceptAsServer(configurations) : this.acceptAsClient(configurations);
- return this.params;
- }
- /**
- * Releases all resources used by the extension.
- *
- * @public
- */
- cleanup() {
- if (this._inflate) {
- this._inflate.close();
- this._inflate = null;
- }
- if (this._deflate) {
- const callback = this._deflate[kCallback];
- this._deflate.close();
- this._deflate = null;
- if (callback) {
- callback(
- new Error(
- "The deflate stream was closed while data was being processed"
- )
- );
- }
- }
- }
- /**
- * Accept an extension negotiation offer.
- *
- * @param {Array} offers The extension negotiation offers
- * @return {Object} Accepted configuration
- * @private
- */
- acceptAsServer(offers) {
- const opts = this._options;
- const accepted = offers.find((params) => {
- if (opts.serverNoContextTakeover === false && params.server_no_context_takeover || params.server_max_window_bits && (opts.serverMaxWindowBits === false || typeof opts.serverMaxWindowBits === "number" && opts.serverMaxWindowBits > params.server_max_window_bits) || typeof opts.clientMaxWindowBits === "number" && !params.client_max_window_bits) {
- return false;
- }
- return true;
- });
- if (!accepted) {
- throw new Error("None of the extension offers can be accepted");
- }
- if (opts.serverNoContextTakeover) {
- accepted.server_no_context_takeover = true;
- }
- if (opts.clientNoContextTakeover) {
- accepted.client_no_context_takeover = true;
- }
- if (typeof opts.serverMaxWindowBits === "number") {
- accepted.server_max_window_bits = opts.serverMaxWindowBits;
- }
- if (typeof opts.clientMaxWindowBits === "number") {
- accepted.client_max_window_bits = opts.clientMaxWindowBits;
- } else if (accepted.client_max_window_bits === true || opts.clientMaxWindowBits === false) {
- delete accepted.client_max_window_bits;
- }
- return accepted;
- }
- /**
- * Accept the extension negotiation response.
- *
- * @param {Array} response The extension negotiation response
- * @return {Object} Accepted configuration
- * @private
- */
- acceptAsClient(response) {
- const params = response[0];
- if (this._options.clientNoContextTakeover === false && params.client_no_context_takeover) {
- throw new Error('Unexpected parameter "client_no_context_takeover"');
- }
- if (!params.client_max_window_bits) {
- if (typeof this._options.clientMaxWindowBits === "number") {
- params.client_max_window_bits = this._options.clientMaxWindowBits;
- }
- } else if (this._options.clientMaxWindowBits === false || typeof this._options.clientMaxWindowBits === "number" && params.client_max_window_bits > this._options.clientMaxWindowBits) {
- throw new Error(
- 'Unexpected or invalid parameter "client_max_window_bits"'
- );
- }
- return params;
- }
- /**
- * Normalize parameters.
- *
- * @param {Array} configurations The extension negotiation offers/reponse
- * @return {Array} The offers/response with normalized parameters
- * @private
- */
- normalizeParams(configurations) {
- configurations.forEach((params) => {
- Object.keys(params).forEach((key) => {
- let value = params[key];
- if (value.length > 1) {
- throw new Error(`Parameter "${key}" must have only a single value`);
- }
- value = value[0];
- if (key === "client_max_window_bits") {
- if (value !== true) {
- const num = +value;
- if (!Number.isInteger(num) || num < 8 || num > 15) {
- throw new TypeError(
- `Invalid value for parameter "${key}": ${value}`
- );
- }
- value = num;
- } else if (!this._isServer) {
- throw new TypeError(
- `Invalid value for parameter "${key}": ${value}`
- );
- }
- } else if (key === "server_max_window_bits") {
- const num = +value;
- if (!Number.isInteger(num) || num < 8 || num > 15) {
- throw new TypeError(
- `Invalid value for parameter "${key}": ${value}`
- );
- }
- value = num;
- } else if (key === "client_no_context_takeover" || key === "server_no_context_takeover") {
- if (value !== true) {
- throw new TypeError(
- `Invalid value for parameter "${key}": ${value}`
- );
- }
- } else {
- throw new Error(`Unknown parameter "${key}"`);
- }
- params[key] = value;
- });
- });
- return configurations;
- }
- /**
- * Decompress data. Concurrency limited.
- *
- * @param {Buffer} data Compressed data
- * @param {Boolean} fin Specifies whether or not this is the last fragment
- * @param {Function} callback Callback
- * @public
- */
- decompress(data, fin, callback) {
- zlibLimiter.add((done) => {
- this._decompress(data, fin, (err, result) => {
- done();
- callback(err, result);
- });
- });
- }
- /**
- * Compress data. Concurrency limited.
- *
- * @param {(Buffer|String)} data Data to compress
- * @param {Boolean} fin Specifies whether or not this is the last fragment
- * @param {Function} callback Callback
- * @public
- */
- compress(data, fin, callback) {
- zlibLimiter.add((done) => {
- this._compress(data, fin, (err, result) => {
- done();
- callback(err, result);
- });
- });
- }
- /**
- * Decompress data.
- *
- * @param {Buffer} data Compressed data
- * @param {Boolean} fin Specifies whether or not this is the last fragment
- * @param {Function} callback Callback
- * @private
- */
- _decompress(data, fin, callback) {
- const endpoint = this._isServer ? "client" : "server";
- if (!this._inflate) {
- const key = `${endpoint}_max_window_bits`;
- const windowBits = typeof this.params[key] !== "number" ? zlib.Z_DEFAULT_WINDOWBITS : this.params[key];
- this._inflate = zlib.createInflateRaw({
- ...this._options.zlibInflateOptions,
- windowBits
- });
- this._inflate[kPerMessageDeflate] = this;
- this._inflate[kTotalLength] = 0;
- this._inflate[kBuffers] = [];
- this._inflate.on("error", inflateOnError);
- this._inflate.on("data", inflateOnData);
- }
- this._inflate[kCallback] = callback;
- this._inflate.write(data);
- if (fin) this._inflate.write(TRAILER);
- this._inflate.flush(() => {
- const err = this._inflate[kError];
- if (err) {
- this._inflate.close();
- this._inflate = null;
- callback(err);
- return;
- }
- const data2 = bufferUtil.concat(
- this._inflate[kBuffers],
- this._inflate[kTotalLength]
- );
- if (this._inflate._readableState.endEmitted) {
- this._inflate.close();
- this._inflate = null;
- } else {
- this._inflate[kTotalLength] = 0;
- this._inflate[kBuffers] = [];
- if (fin && this.params[`${endpoint}_no_context_takeover`]) {
- this._inflate.reset();
- }
- }
- callback(null, data2);
- });
- }
- /**
- * Compress data.
- *
- * @param {(Buffer|String)} data Data to compress
- * @param {Boolean} fin Specifies whether or not this is the last fragment
- * @param {Function} callback Callback
- * @private
- */
- _compress(data, fin, callback) {
- const endpoint = this._isServer ? "server" : "client";
- if (!this._deflate) {
- const key = `${endpoint}_max_window_bits`;
- const windowBits = typeof this.params[key] !== "number" ? zlib.Z_DEFAULT_WINDOWBITS : this.params[key];
- this._deflate = zlib.createDeflateRaw({
- ...this._options.zlibDeflateOptions,
- windowBits
- });
- this._deflate[kTotalLength] = 0;
- this._deflate[kBuffers] = [];
- this._deflate.on("data", deflateOnData);
- }
- this._deflate[kCallback] = callback;
- this._deflate.write(data);
- this._deflate.flush(zlib.Z_SYNC_FLUSH, () => {
- if (!this._deflate) {
- return;
- }
- let data2 = bufferUtil.concat(
- this._deflate[kBuffers],
- this._deflate[kTotalLength]
- );
- if (fin) {
- data2 = new FastBuffer(data2.buffer, data2.byteOffset, data2.length - 4);
- }
- this._deflate[kCallback] = null;
- this._deflate[kTotalLength] = 0;
- this._deflate[kBuffers] = [];
- if (fin && this.params[`${endpoint}_no_context_takeover`]) {
- this._deflate.reset();
- }
- callback(null, data2);
- });
- }
- };
- module2.exports = PerMessageDeflate2;
- function deflateOnData(chunk) {
- this[kBuffers].push(chunk);
- this[kTotalLength] += chunk.length;
- }
- function inflateOnData(chunk) {
- this[kTotalLength] += chunk.length;
- if (this[kPerMessageDeflate]._maxPayload < 1 || this[kTotalLength] <= this[kPerMessageDeflate]._maxPayload) {
- this[kBuffers].push(chunk);
- return;
- }
- this[kError] = new RangeError("Max payload size exceeded");
- this[kError].code = "WS_ERR_UNSUPPORTED_MESSAGE_LENGTH";
- this[kError][kStatusCode] = 1009;
- this.removeListener("data", inflateOnData);
- this.reset();
- }
- function inflateOnError(err) {
- this[kPerMessageDeflate]._inflate = null;
- if (this[kError]) {
- this[kCallback](this[kError]);
- return;
- }
- err[kStatusCode] = 1007;
- this[kCallback](err);
- }
- }
- });
- // node_modules/ws/lib/validation.js
- var require_validation = __commonJS({
- "node_modules/ws/lib/validation.js"(exports2, module2) {
- "use strict";
- var { isUtf8 } = require("buffer");
- var { hasBlob } = require_constants();
- var tokenChars = [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- // 0 - 15
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- // 16 - 31
- 0,
- 1,
- 0,
- 1,
- 1,
- 1,
- 1,
- 1,
- 0,
- 0,
- 1,
- 1,
- 0,
- 1,
- 1,
- 0,
- // 32 - 47
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- // 48 - 63
- 0,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- // 64 - 79
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 0,
- 0,
- 0,
- 1,
- 1,
- // 80 - 95
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- // 96 - 111
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 0,
- 1,
- 0,
- 1,
- 0
- // 112 - 127
- ];
- function isValidStatusCode(code) {
- return code >= 1e3 && code <= 1014 && code !== 1004 && code !== 1005 && code !== 1006 || code >= 3e3 && code <= 4999;
- }
- function _isValidUTF8(buf) {
- const len = buf.length;
- let i = 0;
- while (i < len) {
- if ((buf[i] & 128) === 0) {
- i++;
- } else if ((buf[i] & 224) === 192) {
- if (i + 1 === len || (buf[i + 1] & 192) !== 128 || (buf[i] & 254) === 192) {
- return false;
- }
- i += 2;
- } else if ((buf[i] & 240) === 224) {
- if (i + 2 >= len || (buf[i + 1] & 192) !== 128 || (buf[i + 2] & 192) !== 128 || buf[i] === 224 && (buf[i + 1] & 224) === 128 || // Overlong
- buf[i] === 237 && (buf[i + 1] & 224) === 160) {
- return false;
- }
- i += 3;
- } else if ((buf[i] & 248) === 240) {
- if (i + 3 >= len || (buf[i + 1] & 192) !== 128 || (buf[i + 2] & 192) !== 128 || (buf[i + 3] & 192) !== 128 || buf[i] === 240 && (buf[i + 1] & 240) === 128 || // Overlong
- buf[i] === 244 && buf[i + 1] > 143 || buf[i] > 244) {
- return false;
- }
- i += 4;
- } else {
- return false;
- }
- }
- return true;
- }
- function isBlob(value) {
- return hasBlob && typeof value === "object" && typeof value.arrayBuffer === "function" && typeof value.type === "string" && typeof value.stream === "function" && (value[Symbol.toStringTag] === "Blob" || value[Symbol.toStringTag] === "File");
- }
- module2.exports = {
- isBlob,
- isValidStatusCode,
- isValidUTF8: _isValidUTF8,
- tokenChars
- };
- if (isUtf8) {
- module2.exports.isValidUTF8 = function(buf) {
- return buf.length < 24 ? _isValidUTF8(buf) : isUtf8(buf);
- };
- } else if (!process.env.WS_NO_UTF_8_VALIDATE) {
- try {
- const isValidUTF8 = require("utf-8-validate");
- module2.exports.isValidUTF8 = function(buf) {
- return buf.length < 32 ? _isValidUTF8(buf) : isValidUTF8(buf);
- };
- } catch (e) {
- }
- }
- }
- });
- // node_modules/ws/lib/receiver.js
- var require_receiver = __commonJS({
- "node_modules/ws/lib/receiver.js"(exports2, module2) {
- "use strict";
- var { Writable } = require("stream");
- var PerMessageDeflate2 = require_permessage_deflate();
- var {
- BINARY_TYPES,
- EMPTY_BUFFER,
- kStatusCode,
- kWebSocket
- } = require_constants();
- var { concat, toArrayBuffer, unmask } = require_buffer_util();
- var { isValidStatusCode, isValidUTF8 } = require_validation();
- var FastBuffer = Buffer[Symbol.species];
- var GET_INFO = 0;
- var GET_PAYLOAD_LENGTH_16 = 1;
- var GET_PAYLOAD_LENGTH_64 = 2;
- var GET_MASK = 3;
- var GET_DATA = 4;
- var INFLATING = 5;
- var DEFER_EVENT = 6;
- var Receiver2 = class extends Writable {
- /**
- * Creates a Receiver instance.
- *
- * @param {Object} [options] Options object
- * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether
- * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted
- * multiple times in the same tick
- * @param {String} [options.binaryType=nodebuffer] The type for binary data
- * @param {Object} [options.extensions] An object containing the negotiated
- * extensions
- * @param {Boolean} [options.isServer=false] Specifies whether to operate in
- * client or server mode
- * @param {Number} [options.maxPayload=0] The maximum allowed message length
- * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or
- * not to skip UTF-8 validation for text and close messages
- */
- constructor(options = {}) {
- super();
- this._allowSynchronousEvents = options.allowSynchronousEvents !== void 0 ? options.allowSynchronousEvents : true;
- this._binaryType = options.binaryType || BINARY_TYPES[0];
- this._extensions = options.extensions || {};
- this._isServer = !!options.isServer;
- this._maxPayload = options.maxPayload | 0;
- this._skipUTF8Validation = !!options.skipUTF8Validation;
- this[kWebSocket] = void 0;
- this._bufferedBytes = 0;
- this._buffers = [];
- this._compressed = false;
- this._payloadLength = 0;
- this._mask = void 0;
- this._fragmented = 0;
- this._masked = false;
- this._fin = false;
- this._opcode = 0;
- this._totalPayloadLength = 0;
- this._messageLength = 0;
- this._fragments = [];
- this._errored = false;
- this._loop = false;
- this._state = GET_INFO;
- }
- /**
- * Implements `Writable.prototype._write()`.
- *
- * @param {Buffer} chunk The chunk of data to write
- * @param {String} encoding The character encoding of `chunk`
- * @param {Function} cb Callback
- * @private
- */
- _write(chunk, encoding, cb) {
- if (this._opcode === 8 && this._state == GET_INFO) return cb();
- this._bufferedBytes += chunk.length;
- this._buffers.push(chunk);
- this.startLoop(cb);
- }
- /**
- * Consumes `n` bytes from the buffered data.
- *
- * @param {Number} n The number of bytes to consume
- * @return {Buffer} The consumed bytes
- * @private
- */
- consume(n) {
- this._bufferedBytes -= n;
- if (n === this._buffers[0].length) return this._buffers.shift();
- if (n < this._buffers[0].length) {
- const buf = this._buffers[0];
- this._buffers[0] = new FastBuffer(
- buf.buffer,
- buf.byteOffset + n,
- buf.length - n
- );
- return new FastBuffer(buf.buffer, buf.byteOffset, n);
- }
- const dst = Buffer.allocUnsafe(n);
- do {
- const buf = this._buffers[0];
- const offset = dst.length - n;
- if (n >= buf.length) {
- dst.set(this._buffers.shift(), offset);
- } else {
- dst.set(new Uint8Array(buf.buffer, buf.byteOffset, n), offset);
- this._buffers[0] = new FastBuffer(
- buf.buffer,
- buf.byteOffset + n,
- buf.length - n
- );
- }
- n -= buf.length;
- } while (n > 0);
- return dst;
- }
- /**
- * Starts the parsing loop.
- *
- * @param {Function} cb Callback
- * @private
- */
- startLoop(cb) {
- this._loop = true;
- do {
- switch (this._state) {
- case GET_INFO:
- this.getInfo(cb);
- break;
- case GET_PAYLOAD_LENGTH_16:
- this.getPayloadLength16(cb);
- break;
- case GET_PAYLOAD_LENGTH_64:
- this.getPayloadLength64(cb);
- break;
- case GET_MASK:
- this.getMask();
- break;
- case GET_DATA:
- this.getData(cb);
- break;
- case INFLATING:
- case DEFER_EVENT:
- this._loop = false;
- return;
- }
- } while (this._loop);
- if (!this._errored) cb();
- }
- /**
- * Reads the first two bytes of a frame.
- *
- * @param {Function} cb Callback
- * @private
- */
- getInfo(cb) {
- if (this._bufferedBytes < 2) {
- this._loop = false;
- return;
- }
- const buf = this.consume(2);
- if ((buf[0] & 48) !== 0) {
- const error = this.createError(
- RangeError,
- "RSV2 and RSV3 must be clear",
- true,
- 1002,
- "WS_ERR_UNEXPECTED_RSV_2_3"
- );
- cb(error);
- return;
- }
- const compressed = (buf[0] & 64) === 64;
- if (compressed && !this._extensions[PerMessageDeflate2.extensionName]) {
- const error = this.createError(
- RangeError,
- "RSV1 must be clear",
- true,
- 1002,
- "WS_ERR_UNEXPECTED_RSV_1"
- );
- cb(error);
- return;
- }
- this._fin = (buf[0] & 128) === 128;
- this._opcode = buf[0] & 15;
- this._payloadLength = buf[1] & 127;
- if (this._opcode === 0) {
- if (compressed) {
- const error = this.createError(
- RangeError,
- "RSV1 must be clear",
- true,
- 1002,
- "WS_ERR_UNEXPECTED_RSV_1"
- );
- cb(error);
- return;
- }
- if (!this._fragmented) {
- const error = this.createError(
- RangeError,
- "invalid opcode 0",
- true,
- 1002,
- "WS_ERR_INVALID_OPCODE"
- );
- cb(error);
- return;
- }
- this._opcode = this._fragmented;
- } else if (this._opcode === 1 || this._opcode === 2) {
- if (this._fragmented) {
- const error = this.createError(
- RangeError,
- `invalid opcode ${this._opcode}`,
- true,
- 1002,
- "WS_ERR_INVALID_OPCODE"
- );
- cb(error);
- return;
- }
- this._compressed = compressed;
- } else if (this._opcode > 7 && this._opcode < 11) {
- if (!this._fin) {
- const error = this.createError(
- RangeError,
- "FIN must be set",
- true,
- 1002,
- "WS_ERR_EXPECTED_FIN"
- );
- cb(error);
- return;
- }
- if (compressed) {
- const error = this.createError(
- RangeError,
- "RSV1 must be clear",
- true,
- 1002,
- "WS_ERR_UNEXPECTED_RSV_1"
- );
- cb(error);
- return;
- }
- if (this._payloadLength > 125 || this._opcode === 8 && this._payloadLength === 1) {
- const error = this.createError(
- RangeError,
- `invalid payload length ${this._payloadLength}`,
- true,
- 1002,
- "WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH"
- );
- cb(error);
- return;
- }
- } else {
- const error = this.createError(
- RangeError,
- `invalid opcode ${this._opcode}`,
- true,
- 1002,
- "WS_ERR_INVALID_OPCODE"
- );
- cb(error);
- return;
- }
- if (!this._fin && !this._fragmented) this._fragmented = this._opcode;
- this._masked = (buf[1] & 128) === 128;
- if (this._isServer) {
- if (!this._masked) {
- const error = this.createError(
- RangeError,
- "MASK must be set",
- true,
- 1002,
- "WS_ERR_EXPECTED_MASK"
- );
- cb(error);
- return;
- }
- } else if (this._masked) {
- const error = this.createError(
- RangeError,
- "MASK must be clear",
- true,
- 1002,
- "WS_ERR_UNEXPECTED_MASK"
- );
- cb(error);
- return;
- }
- if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16;
- else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64;
- else this.haveLength(cb);
- }
- /**
- * Gets extended payload length (7+16).
- *
- * @param {Function} cb Callback
- * @private
- */
- getPayloadLength16(cb) {
- if (this._bufferedBytes < 2) {
- this._loop = false;
- return;
- }
- this._payloadLength = this.consume(2).readUInt16BE(0);
- this.haveLength(cb);
- }
- /**
- * Gets extended payload length (7+64).
- *
- * @param {Function} cb Callback
- * @private
- */
- getPayloadLength64(cb) {
- if (this._bufferedBytes < 8) {
- this._loop = false;
- return;
- }
- const buf = this.consume(8);
- const num = buf.readUInt32BE(0);
- if (num > Math.pow(2, 53 - 32) - 1) {
- const error = this.createError(
- RangeError,
- "Unsupported WebSocket frame: payload length > 2^53 - 1",
- false,
- 1009,
- "WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH"
- );
- cb(error);
- return;
- }
- this._payloadLength = num * Math.pow(2, 32) + buf.readUInt32BE(4);
- this.haveLength(cb);
- }
- /**
- * Payload length has been read.
- *
- * @param {Function} cb Callback
- * @private
- */
- haveLength(cb) {
- if (this._payloadLength && this._opcode < 8) {
- this._totalPayloadLength += this._payloadLength;
- if (this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) {
- const error = this.createError(
- RangeError,
- "Max payload size exceeded",
- false,
- 1009,
- "WS_ERR_UNSUPPORTED_MESSAGE_LENGTH"
- );
- cb(error);
- return;
- }
- }
- if (this._masked) this._state = GET_MASK;
- else this._state = GET_DATA;
- }
- /**
- * Reads mask bytes.
- *
- * @private
- */
- getMask() {
- if (this._bufferedBytes < 4) {
- this._loop = false;
- return;
- }
- this._mask = this.consume(4);
- this._state = GET_DATA;
- }
- /**
- * Reads data bytes.
- *
- * @param {Function} cb Callback
- * @private
- */
- getData(cb) {
- let data = EMPTY_BUFFER;
- if (this._payloadLength) {
- if (this._bufferedBytes < this._payloadLength) {
- this._loop = false;
- return;
- }
- data = this.consume(this._payloadLength);
- if (this._masked && (this._mask[0] | this._mask[1] | this._mask[2] | this._mask[3]) !== 0) {
- unmask(data, this._mask);
- }
- }
- if (this._opcode > 7) {
- this.controlMessage(data, cb);
- return;
- }
- if (this._compressed) {
- this._state = INFLATING;
- this.decompress(data, cb);
- return;
- }
- if (data.length) {
- this._messageLength = this._totalPayloadLength;
- this._fragments.push(data);
- }
- this.dataMessage(cb);
- }
- /**
- * Decompresses data.
- *
- * @param {Buffer} data Compressed data
- * @param {Function} cb Callback
- * @private
- */
- decompress(data, cb) {
- const perMessageDeflate = this._extensions[PerMessageDeflate2.extensionName];
- perMessageDeflate.decompress(data, this._fin, (err, buf) => {
- if (err) return cb(err);
- if (buf.length) {
- this._messageLength += buf.length;
- if (this._messageLength > this._maxPayload && this._maxPayload > 0) {
- const error = this.createError(
- RangeError,
- "Max payload size exceeded",
- false,
- 1009,
- "WS_ERR_UNSUPPORTED_MESSAGE_LENGTH"
- );
- cb(error);
- return;
- }
- this._fragments.push(buf);
- }
- this.dataMessage(cb);
- if (this._state === GET_INFO) this.startLoop(cb);
- });
- }
- /**
- * Handles a data message.
- *
- * @param {Function} cb Callback
- * @private
- */
- dataMessage(cb) {
- if (!this._fin) {
- this._state = GET_INFO;
- return;
- }
- const messageLength = this._messageLength;
- const fragments = this._fragments;
- this._totalPayloadLength = 0;
- this._messageLength = 0;
- this._fragmented = 0;
- this._fragments = [];
- if (this._opcode === 2) {
- let data;
- if (this._binaryType === "nodebuffer") {
- data = concat(fragments, messageLength);
- } else if (this._binaryType === "arraybuffer") {
- data = toArrayBuffer(concat(fragments, messageLength));
- } else if (this._binaryType === "blob") {
- data = new Blob(fragments);
- } else {
- data = fragments;
- }
- if (this._allowSynchronousEvents) {
- this.emit("message", data, true);
- this._state = GET_INFO;
- } else {
- this._state = DEFER_EVENT;
- setImmediate(() => {
- this.emit("message", data, true);
- this._state = GET_INFO;
- this.startLoop(cb);
- });
- }
- } else {
- const buf = concat(fragments, messageLength);
- if (!this._skipUTF8Validation && !isValidUTF8(buf)) {
- const error = this.createError(
- Error,
- "invalid UTF-8 sequence",
- true,
- 1007,
- "WS_ERR_INVALID_UTF8"
- );
- cb(error);
- return;
- }
- if (this._state === INFLATING || this._allowSynchronousEvents) {
- this.emit("message", buf, false);
- this._state = GET_INFO;
- } else {
- this._state = DEFER_EVENT;
- setImmediate(() => {
- this.emit("message", buf, false);
- this._state = GET_INFO;
- this.startLoop(cb);
- });
- }
- }
- }
- /**
- * Handles a control message.
- *
- * @param {Buffer} data Data to handle
- * @return {(Error|RangeError|undefined)} A possible error
- * @private
- */
- controlMessage(data, cb) {
- if (this._opcode === 8) {
- if (data.length === 0) {
- this._loop = false;
- this.emit("conclude", 1005, EMPTY_BUFFER);
- this.end();
- } else {
- const code = data.readUInt16BE(0);
- if (!isValidStatusCode(code)) {
- const error = this.createError(
- RangeError,
- `invalid status code ${code}`,
- true,
- 1002,
- "WS_ERR_INVALID_CLOSE_CODE"
- );
- cb(error);
- return;
- }
- const buf = new FastBuffer(
- data.buffer,
- data.byteOffset + 2,
- data.length - 2
- );
- if (!this._skipUTF8Validation && !isValidUTF8(buf)) {
- const error = this.createError(
- Error,
- "invalid UTF-8 sequence",
- true,
- 1007,
- "WS_ERR_INVALID_UTF8"
- );
- cb(error);
- return;
- }
- this._loop = false;
- this.emit("conclude", code, buf);
- this.end();
- }
- this._state = GET_INFO;
- return;
- }
- if (this._allowSynchronousEvents) {
- this.emit(this._opcode === 9 ? "ping" : "pong", data);
- this._state = GET_INFO;
- } else {
- this._state = DEFER_EVENT;
- setImmediate(() => {
- this.emit(this._opcode === 9 ? "ping" : "pong", data);
- this._state = GET_INFO;
- this.startLoop(cb);
- });
- }
- }
- /**
- * Builds an error object.
- *
- * @param {function(new:Error|RangeError)} ErrorCtor The error constructor
- * @param {String} message The error message
- * @param {Boolean} prefix Specifies whether or not to add a default prefix to
- * `message`
- * @param {Number} statusCode The status code
- * @param {String} errorCode The exposed error code
- * @return {(Error|RangeError)} The error
- * @private
- */
- createError(ErrorCtor, message, prefix, statusCode, errorCode) {
- this._loop = false;
- this._errored = true;
- const err = new ErrorCtor(
- prefix ? `Invalid WebSocket frame: ${message}` : message
- );
- Error.captureStackTrace(err, this.createError);
- err.code = errorCode;
- err[kStatusCode] = statusCode;
- return err;
- }
- };
- module2.exports = Receiver2;
- }
- });
- // node_modules/ws/lib/sender.js
- var require_sender = __commonJS({
- "node_modules/ws/lib/sender.js"(exports2, module2) {
- "use strict";
- var { Duplex } = require("stream");
- var { randomFillSync } = require("crypto");
- var PerMessageDeflate2 = require_permessage_deflate();
- var { EMPTY_BUFFER, kWebSocket, NOOP } = require_constants();
- var { isBlob, isValidStatusCode } = require_validation();
- var { mask: applyMask, toBuffer } = require_buffer_util();
- var kByteLength = /* @__PURE__ */ Symbol("kByteLength");
- var maskBuffer = Buffer.alloc(4);
- var RANDOM_POOL_SIZE = 8 * 1024;
- var randomPool;
- var randomPoolPointer = RANDOM_POOL_SIZE;
- var DEFAULT = 0;
- var DEFLATING = 1;
- var GET_BLOB_DATA = 2;
- var Sender2 = class _Sender {
- /**
- * Creates a Sender instance.
- *
- * @param {Duplex} socket The connection socket
- * @param {Object} [extensions] An object containing the negotiated extensions
- * @param {Function} [generateMask] The function used to generate the masking
- * key
- */
- constructor(socket, extensions, generateMask) {
- this._extensions = extensions || {};
- if (generateMask) {
- this._generateMask = generateMask;
- this._maskBuffer = Buffer.alloc(4);
- }
- this._socket = socket;
- this._firstFragment = true;
- this._compress = false;
- this._bufferedBytes = 0;
- this._queue = [];
- this._state = DEFAULT;
- this.onerror = NOOP;
- this[kWebSocket] = void 0;
- }
- /**
- * Frames a piece of data according to the HyBi WebSocket protocol.
- *
- * @param {(Buffer|String)} data The data to frame
- * @param {Object} options Options object
- * @param {Boolean} [options.fin=false] Specifies whether or not to set the
- * FIN bit
- * @param {Function} [options.generateMask] The function used to generate the
- * masking key
- * @param {Boolean} [options.mask=false] Specifies whether or not to mask
- * `data`
- * @param {Buffer} [options.maskBuffer] The buffer used to store the masking
- * key
- * @param {Number} options.opcode The opcode
- * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be
- * modified
- * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the
- * RSV1 bit
- * @return {(Buffer|String)[]} The framed data
- * @public
- */
- static frame(data, options) {
- let mask;
- let merge = false;
- let offset = 2;
- let skipMasking = false;
- if (options.mask) {
- mask = options.maskBuffer || maskBuffer;
- if (options.generateMask) {
- options.generateMask(mask);
- } else {
- if (randomPoolPointer === RANDOM_POOL_SIZE) {
- if (randomPool === void 0) {
- randomPool = Buffer.alloc(RANDOM_POOL_SIZE);
- }
- randomFillSync(randomPool, 0, RANDOM_POOL_SIZE);
- randomPoolPointer = 0;
- }
- mask[0] = randomPool[randomPoolPointer++];
- mask[1] = randomPool[randomPoolPointer++];
- mask[2] = randomPool[randomPoolPointer++];
- mask[3] = randomPool[randomPoolPointer++];
- }
- skipMasking = (mask[0] | mask[1] | mask[2] | mask[3]) === 0;
- offset = 6;
- }
- let dataLength;
- if (typeof data === "string") {
- if ((!options.mask || skipMasking) && options[kByteLength] !== void 0) {
- dataLength = options[kByteLength];
- } else {
- data = Buffer.from(data);
- dataLength = data.length;
- }
- } else {
- dataLength = data.length;
- merge = options.mask && options.readOnly && !skipMasking;
- }
- let payloadLength = dataLength;
- if (dataLength >= 65536) {
- offset += 8;
- payloadLength = 127;
- } else if (dataLength > 125) {
- offset += 2;
- payloadLength = 126;
- }
- const target = Buffer.allocUnsafe(merge ? dataLength + offset : offset);
- target[0] = options.fin ? options.opcode | 128 : options.opcode;
- if (options.rsv1) target[0] |= 64;
- target[1] = payloadLength;
- if (payloadLength === 126) {
- target.writeUInt16BE(dataLength, 2);
- } else if (payloadLength === 127) {
- target[2] = target[3] = 0;
- target.writeUIntBE(dataLength, 4, 6);
- }
- if (!options.mask) return [target, data];
- target[1] |= 128;
- target[offset - 4] = mask[0];
- target[offset - 3] = mask[1];
- target[offset - 2] = mask[2];
- target[offset - 1] = mask[3];
- if (skipMasking) return [target, data];
- if (merge) {
- applyMask(data, mask, target, offset, dataLength);
- return [target];
- }
- applyMask(data, mask, data, 0, dataLength);
- return [target, data];
- }
- /**
- * Sends a close message to the other peer.
- *
- * @param {Number} [code] The status code component of the body
- * @param {(String|Buffer)} [data] The message component of the body
- * @param {Boolean} [mask=false] Specifies whether or not to mask the message
- * @param {Function} [cb] Callback
- * @public
- */
- close(code, data, mask, cb) {
- let buf;
- if (code === void 0) {
- buf = EMPTY_BUFFER;
- } else if (typeof code !== "number" || !isValidStatusCode(code)) {
- throw new TypeError("First argument must be a valid error code number");
- } else if (data === void 0 || !data.length) {
- buf = Buffer.allocUnsafe(2);
- buf.writeUInt16BE(code, 0);
- } else {
- const length = Buffer.byteLength(data);
- if (length > 123) {
- throw new RangeError("The message must not be greater than 123 bytes");
- }
- buf = Buffer.allocUnsafe(2 + length);
- buf.writeUInt16BE(code, 0);
- if (typeof data === "string") {
- buf.write(data, 2);
- } else {
- buf.set(data, 2);
- }
- }
- const options = {
- [kByteLength]: buf.length,
- fin: true,
- generateMask: this._generateMask,
- mask,
- maskBuffer: this._maskBuffer,
- opcode: 8,
- readOnly: false,
- rsv1: false
- };
- if (this._state !== DEFAULT) {
- this.enqueue([this.dispatch, buf, false, options, cb]);
- } else {
- this.sendFrame(_Sender.frame(buf, options), cb);
- }
- }
- /**
- * Sends a ping message to the other peer.
- *
- * @param {*} data The message to send
- * @param {Boolean} [mask=false] Specifies whether or not to mask `data`
- * @param {Function} [cb] Callback
- * @public
- */
- ping(data, mask, cb) {
- let byteLength;
- let readOnly;
- if (typeof data === "string") {
- byteLength = Buffer.byteLength(data);
- readOnly = false;
- } else if (isBlob(data)) {
- byteLength = data.size;
- readOnly = false;
- } else {
- data = toBuffer(data);
- byteLength = data.length;
- readOnly = toBuffer.readOnly;
- }
- if (byteLength > 125) {
- throw new RangeError("The data size must not be greater than 125 bytes");
- }
- const options = {
- [kByteLength]: byteLength,
- fin: true,
- generateMask: this._generateMask,
- mask,
- maskBuffer: this._maskBuffer,
- opcode: 9,
- readOnly,
- rsv1: false
- };
- if (isBlob(data)) {
- if (this._state !== DEFAULT) {
- this.enqueue([this.getBlobData, data, false, options, cb]);
- } else {
- this.getBlobData(data, false, options, cb);
- }
- } else if (this._state !== DEFAULT) {
- this.enqueue([this.dispatch, data, false, options, cb]);
- } else {
- this.sendFrame(_Sender.frame(data, options), cb);
- }
- }
- /**
- * Sends a pong message to the other peer.
- *
- * @param {*} data The message to send
- * @param {Boolean} [mask=false] Specifies whether or not to mask `data`
- * @param {Function} [cb] Callback
- * @public
- */
- pong(data, mask, cb) {
- let byteLength;
- let readOnly;
- if (typeof data === "string") {
- byteLength = Buffer.byteLength(data);
- readOnly = false;
- } else if (isBlob(data)) {
- byteLength = data.size;
- readOnly = false;
- } else {
- data = toBuffer(data);
- byteLength = data.length;
- readOnly = toBuffer.readOnly;
- }
- if (byteLength > 125) {
- throw new RangeError("The data size must not be greater than 125 bytes");
- }
- const options = {
- [kByteLength]: byteLength,
- fin: true,
- generateMask: this._generateMask,
- mask,
- maskBuffer: this._maskBuffer,
- opcode: 10,
- readOnly,
- rsv1: false
- };
- if (isBlob(data)) {
- if (this._state !== DEFAULT) {
- this.enqueue([this.getBlobData, data, false, options, cb]);
- } else {
- this.getBlobData(data, false, options, cb);
- }
- } else if (this._state !== DEFAULT) {
- this.enqueue([this.dispatch, data, false, options, cb]);
- } else {
- this.sendFrame(_Sender.frame(data, options), cb);
- }
- }
- /**
- * Sends a data message to the other peer.
- *
- * @param {*} data The message to send
- * @param {Object} options Options object
- * @param {Boolean} [options.binary=false] Specifies whether `data` is binary
- * or text
- * @param {Boolean} [options.compress=false] Specifies whether or not to
- * compress `data`
- * @param {Boolean} [options.fin=false] Specifies whether the fragment is the
- * last one
- * @param {Boolean} [options.mask=false] Specifies whether or not to mask
- * `data`
- * @param {Function} [cb] Callback
- * @public
- */
- send(data, options, cb) {
- const perMessageDeflate = this._extensions[PerMessageDeflate2.extensionName];
- let opcode = options.binary ? 2 : 1;
- let rsv1 = options.compress;
- let byteLength;
- let readOnly;
- if (typeof data === "string") {
- byteLength = Buffer.byteLength(data);
- readOnly = false;
- } else if (isBlob(data)) {
- byteLength = data.size;
- readOnly = false;
- } else {
- data = toBuffer(data);
- byteLength = data.length;
- readOnly = toBuffer.readOnly;
- }
- if (this._firstFragment) {
- this._firstFragment = false;
- if (rsv1 && perMessageDeflate && perMessageDeflate.params[perMessageDeflate._isServer ? "server_no_context_takeover" : "client_no_context_takeover"]) {
- rsv1 = byteLength >= perMessageDeflate._threshold;
- }
- this._compress = rsv1;
- } else {
- rsv1 = false;
- opcode = 0;
- }
- if (options.fin) this._firstFragment = true;
- const opts = {
- [kByteLength]: byteLength,
- fin: options.fin,
- generateMask: this._generateMask,
- mask: options.mask,
- maskBuffer: this._maskBuffer,
- opcode,
- readOnly,
- rsv1
- };
- if (isBlob(data)) {
- if (this._state !== DEFAULT) {
- this.enqueue([this.getBlobData, data, this._compress, opts, cb]);
- } else {
- this.getBlobData(data, this._compress, opts, cb);
- }
- } else if (this._state !== DEFAULT) {
- this.enqueue([this.dispatch, data, this._compress, opts, cb]);
- } else {
- this.dispatch(data, this._compress, opts, cb);
- }
- }
- /**
- * Gets the contents of a blob as binary data.
- *
- * @param {Blob} blob The blob
- * @param {Boolean} [compress=false] Specifies whether or not to compress
- * the data
- * @param {Object} options Options object
- * @param {Boolean} [options.fin=false] Specifies whether or not to set the
- * FIN bit
- * @param {Function} [options.generateMask] The function used to generate the
- * masking key
- * @param {Boolean} [options.mask=false] Specifies whether or not to mask
- * `data`
- * @param {Buffer} [options.maskBuffer] The buffer used to store the masking
- * key
- * @param {Number} options.opcode The opcode
- * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be
- * modified
- * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the
- * RSV1 bit
- * @param {Function} [cb] Callback
- * @private
- */
- getBlobData(blob, compress, options, cb) {
- this._bufferedBytes += options[kByteLength];
- this._state = GET_BLOB_DATA;
- blob.arrayBuffer().then((arrayBuffer) => {
- if (this._socket.destroyed) {
- const err = new Error(
- "The socket was closed while the blob was being read"
- );
- process.nextTick(callCallbacks, this, err, cb);
- return;
- }
- this._bufferedBytes -= options[kByteLength];
- const data = toBuffer(arrayBuffer);
- if (!compress) {
- this._state = DEFAULT;
- this.sendFrame(_Sender.frame(data, options), cb);
- this.dequeue();
- } else {
- this.dispatch(data, compress, options, cb);
- }
- }).catch((err) => {
- process.nextTick(onError, this, err, cb);
- });
- }
- /**
- * Dispatches a message.
- *
- * @param {(Buffer|String)} data The message to send
- * @param {Boolean} [compress=false] Specifies whether or not to compress
- * `data`
- * @param {Object} options Options object
- * @param {Boolean} [options.fin=false] Specifies whether or not to set the
- * FIN bit
- * @param {Function} [options.generateMask] The function used to generate the
- * masking key
- * @param {Boolean} [options.mask=false] Specifies whether or not to mask
- * `data`
- * @param {Buffer} [options.maskBuffer] The buffer used to store the masking
- * key
- * @param {Number} options.opcode The opcode
- * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be
- * modified
- * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the
- * RSV1 bit
- * @param {Function} [cb] Callback
- * @private
- */
- dispatch(data, compress, options, cb) {
- if (!compress) {
- this.sendFrame(_Sender.frame(data, options), cb);
- return;
- }
- const perMessageDeflate = this._extensions[PerMessageDeflate2.extensionName];
- this._bufferedBytes += options[kByteLength];
- this._state = DEFLATING;
- perMessageDeflate.compress(data, options.fin, (_, buf) => {
- if (this._socket.destroyed) {
- const err = new Error(
- "The socket was closed while data was being compressed"
- );
- callCallbacks(this, err, cb);
- return;
- }
- this._bufferedBytes -= options[kByteLength];
- this._state = DEFAULT;
- options.readOnly = false;
- this.sendFrame(_Sender.frame(buf, options), cb);
- this.dequeue();
- });
- }
- /**
- * Executes queued send operations.
- *
- * @private
- */
- dequeue() {
- while (this._state === DEFAULT && this._queue.length) {
- const params = this._queue.shift();
- this._bufferedBytes -= params[3][kByteLength];
- Reflect.apply(params[0], this, params.slice(1));
- }
- }
- /**
- * Enqueues a send operation.
- *
- * @param {Array} params Send operation parameters.
- * @private
- */
- enqueue(params) {
- this._bufferedBytes += params[3][kByteLength];
- this._queue.push(params);
- }
- /**
- * Sends a frame.
- *
- * @param {(Buffer | String)[]} list The frame to send
- * @param {Function} [cb] Callback
- * @private
- */
- sendFrame(list, cb) {
- if (list.length === 2) {
- this._socket.cork();
- this._socket.write(list[0]);
- this._socket.write(list[1], cb);
- this._socket.uncork();
- } else {
- this._socket.write(list[0], cb);
- }
- }
- };
- module2.exports = Sender2;
- function callCallbacks(sender, err, cb) {
- if (typeof cb === "function") cb(err);
- for (let i = 0; i < sender._queue.length; i++) {
- const params = sender._queue[i];
- const callback = params[params.length - 1];
- if (typeof callback === "function") callback(err);
- }
- }
- function onError(sender, err, cb) {
- callCallbacks(sender, err, cb);
- sender.onerror(err);
- }
- }
- });
- // node_modules/ws/lib/event-target.js
- var require_event_target = __commonJS({
- "node_modules/ws/lib/event-target.js"(exports2, module2) {
- "use strict";
- var { kForOnEventAttribute, kListener } = require_constants();
- var kCode = /* @__PURE__ */ Symbol("kCode");
- var kData = /* @__PURE__ */ Symbol("kData");
- var kError = /* @__PURE__ */ Symbol("kError");
- var kMessage = /* @__PURE__ */ Symbol("kMessage");
- var kReason = /* @__PURE__ */ Symbol("kReason");
- var kTarget = /* @__PURE__ */ Symbol("kTarget");
- var kType = /* @__PURE__ */ Symbol("kType");
- var kWasClean = /* @__PURE__ */ Symbol("kWasClean");
- var Event = class {
- /**
- * Create a new `Event`.
- *
- * @param {String} type The name of the event
- * @throws {TypeError} If the `type` argument is not specified
- */
- constructor(type) {
- this[kTarget] = null;
- this[kType] = type;
- }
- /**
- * @type {*}
- */
- get target() {
- return this[kTarget];
- }
- /**
- * @type {String}
- */
- get type() {
- return this[kType];
- }
- };
- Object.defineProperty(Event.prototype, "target", { enumerable: true });
- Object.defineProperty(Event.prototype, "type", { enumerable: true });
- var CloseEvent = class extends Event {
- /**
- * Create a new `CloseEvent`.
- *
- * @param {String} type The name of the event
- * @param {Object} [options] A dictionary object that allows for setting
- * attributes via object members of the same name
- * @param {Number} [options.code=0] The status code explaining why the
- * connection was closed
- * @param {String} [options.reason=''] A human-readable string explaining why
- * the connection was closed
- * @param {Boolean} [options.wasClean=false] Indicates whether or not the
- * connection was cleanly closed
- */
- constructor(type, options = {}) {
- super(type);
- this[kCode] = options.code === void 0 ? 0 : options.code;
- this[kReason] = options.reason === void 0 ? "" : options.reason;
- this[kWasClean] = options.wasClean === void 0 ? false : options.wasClean;
- }
- /**
- * @type {Number}
- */
- get code() {
- return this[kCode];
- }
- /**
- * @type {String}
- */
- get reason() {
- return this[kReason];
- }
- /**
- * @type {Boolean}
- */
- get wasClean() {
- return this[kWasClean];
- }
- };
- Object.defineProperty(CloseEvent.prototype, "code", { enumerable: true });
- Object.defineProperty(CloseEvent.prototype, "reason", { enumerable: true });
- Object.defineProperty(CloseEvent.prototype, "wasClean", { enumerable: true });
- var ErrorEvent = class extends Event {
- /**
- * Create a new `ErrorEvent`.
- *
- * @param {String} type The name of the event
- * @param {Object} [options] A dictionary object that allows for setting
- * attributes via object members of the same name
- * @param {*} [options.error=null] The error that generated this event
- * @param {String} [options.message=''] The error message
- */
- constructor(type, options = {}) {
- super(type);
- this[kError] = options.error === void 0 ? null : options.error;
- this[kMessage] = options.message === void 0 ? "" : options.message;
- }
- /**
- * @type {*}
- */
- get error() {
- return this[kError];
- }
- /**
- * @type {String}
- */
- get message() {
- return this[kMessage];
- }
- };
- Object.defineProperty(ErrorEvent.prototype, "error", { enumerable: true });
- Object.defineProperty(ErrorEvent.prototype, "message", { enumerable: true });
- var MessageEvent = class extends Event {
- /**
- * Create a new `MessageEvent`.
- *
- * @param {String} type The name of the event
- * @param {Object} [options] A dictionary object that allows for setting
- * attributes via object members of the same name
- * @param {*} [options.data=null] The message content
- */
- constructor(type, options = {}) {
- super(type);
- this[kData] = options.data === void 0 ? null : options.data;
- }
- /**
- * @type {*}
- */
- get data() {
- return this[kData];
- }
- };
- Object.defineProperty(MessageEvent.prototype, "data", { enumerable: true });
- var EventTarget = {
- /**
- * Register an event listener.
- *
- * @param {String} type A string representing the event type to listen for
- * @param {(Function|Object)} handler The listener to add
- * @param {Object} [options] An options object specifies characteristics about
- * the event listener
- * @param {Boolean} [options.once=false] A `Boolean` indicating that the
- * listener should be invoked at most once after being added. If `true`,
- * the listener would be automatically removed when invoked.
- * @public
- */
- addEventListener(type, handler, options = {}) {
- for (const listener of this.listeners(type)) {
- if (!options[kForOnEventAttribute] && listener[kListener] === handler && !listener[kForOnEventAttribute]) {
- return;
- }
- }
- let wrapper;
- if (type === "message") {
- wrapper = function onMessage(data, isBinary) {
- const event = new MessageEvent("message", {
- data: isBinary ? data : data.toString()
- });
- event[kTarget] = this;
- callListener(handler, this, event);
- };
- } else if (type === "close") {
- wrapper = function onClose(code, message) {
- const event = new CloseEvent("close", {
- code,
- reason: message.toString(),
- wasClean: this._closeFrameReceived && this._closeFrameSent
- });
- event[kTarget] = this;
- callListener(handler, this, event);
- };
- } else if (type === "error") {
- wrapper = function onError(error) {
- const event = new ErrorEvent("error", {
- error,
- message: error.message
- });
- event[kTarget] = this;
- callListener(handler, this, event);
- };
- } else if (type === "open") {
- wrapper = function onOpen() {
- const event = new Event("open");
- event[kTarget] = this;
- callListener(handler, this, event);
- };
- } else {
- return;
- }
- wrapper[kForOnEventAttribute] = !!options[kForOnEventAttribute];
- wrapper[kListener] = handler;
- if (options.once) {
- this.once(type, wrapper);
- } else {
- this.on(type, wrapper);
- }
- },
- /**
- * Remove an event listener.
- *
- * @param {String} type A string representing the event type to remove
- * @param {(Function|Object)} handler The listener to remove
- * @public
- */
- removeEventListener(type, handler) {
- for (const listener of this.listeners(type)) {
- if (listener[kListener] === handler && !listener[kForOnEventAttribute]) {
- this.removeListener(type, listener);
- break;
- }
- }
- }
- };
- module2.exports = {
- CloseEvent,
- ErrorEvent,
- Event,
- EventTarget,
- MessageEvent
- };
- function callListener(listener, thisArg, event) {
- if (typeof listener === "object" && listener.handleEvent) {
- listener.handleEvent.call(listener, event);
- } else {
- listener.call(thisArg, event);
- }
- }
- }
- });
- // node_modules/ws/lib/extension.js
- var require_extension = __commonJS({
- "node_modules/ws/lib/extension.js"(exports2, module2) {
- "use strict";
- var { tokenChars } = require_validation();
- function push(dest, name, elem) {
- if (dest[name] === void 0) dest[name] = [elem];
- else dest[name].push(elem);
- }
- function parse(header) {
- const offers = /* @__PURE__ */ Object.create(null);
- let params = /* @__PURE__ */ Object.create(null);
- let mustUnescape = false;
- let isEscaping = false;
- let inQuotes = false;
- let extensionName;
- let paramName;
- let start = -1;
- let code = -1;
- let end = -1;
- let i = 0;
- for (; i < header.length; i++) {
- code = header.charCodeAt(i);
- if (extensionName === void 0) {
- if (end === -1 && tokenChars[code] === 1) {
- if (start === -1) start = i;
- } else if (i !== 0 && (code === 32 || code === 9)) {
- if (end === -1 && start !== -1) end = i;
- } else if (code === 59 || code === 44) {
- if (start === -1) {
- throw new SyntaxError(`Unexpected character at index ${i}`);
- }
- if (end === -1) end = i;
- const name = header.slice(start, end);
- if (code === 44) {
- push(offers, name, params);
- params = /* @__PURE__ */ Object.create(null);
- } else {
- extensionName = name;
- }
- start = end = -1;
- } else {
- throw new SyntaxError(`Unexpected character at index ${i}`);
- }
- } else if (paramName === void 0) {
- if (end === -1 && tokenChars[code] === 1) {
- if (start === -1) start = i;
- } else if (code === 32 || code === 9) {
- if (end === -1 && start !== -1) end = i;
- } else if (code === 59 || code === 44) {
- if (start === -1) {
- throw new SyntaxError(`Unexpected character at index ${i}`);
- }
- if (end === -1) end = i;
- push(params, header.slice(start, end), true);
- if (code === 44) {
- push(offers, extensionName, params);
- params = /* @__PURE__ */ Object.create(null);
- extensionName = void 0;
- }
- start = end = -1;
- } else if (code === 61 && start !== -1 && end === -1) {
- paramName = header.slice(start, i);
- start = end = -1;
- } else {
- throw new SyntaxError(`Unexpected character at index ${i}`);
- }
- } else {
- if (isEscaping) {
- if (tokenChars[code] !== 1) {
- throw new SyntaxError(`Unexpected character at index ${i}`);
- }
- if (start === -1) start = i;
- else if (!mustUnescape) mustUnescape = true;
- isEscaping = false;
- } else if (inQuotes) {
- if (tokenChars[code] === 1) {
- if (start === -1) start = i;
- } else if (code === 34 && start !== -1) {
- inQuotes = false;
- end = i;
- } else if (code === 92) {
- isEscaping = true;
- } else {
- throw new SyntaxError(`Unexpected character at index ${i}`);
- }
- } else if (code === 34 && header.charCodeAt(i - 1) === 61) {
- inQuotes = true;
- } else if (end === -1 && tokenChars[code] === 1) {
- if (start === -1) start = i;
- } else if (start !== -1 && (code === 32 || code === 9)) {
- if (end === -1) end = i;
- } else if (code === 59 || code === 44) {
- if (start === -1) {
- throw new SyntaxError(`Unexpected character at index ${i}`);
- }
- if (end === -1) end = i;
- let value = header.slice(start, end);
- if (mustUnescape) {
- value = value.replace(/\\/g, "");
- mustUnescape = false;
- }
- push(params, paramName, value);
- if (code === 44) {
- push(offers, extensionName, params);
- params = /* @__PURE__ */ Object.create(null);
- extensionName = void 0;
- }
- paramName = void 0;
- start = end = -1;
- } else {
- throw new SyntaxError(`Unexpected character at index ${i}`);
- }
- }
- }
- if (start === -1 || inQuotes || code === 32 || code === 9) {
- throw new SyntaxError("Unexpected end of input");
- }
- if (end === -1) end = i;
- const token = header.slice(start, end);
- if (extensionName === void 0) {
- push(offers, token, params);
- } else {
- if (paramName === void 0) {
- push(params, token, true);
- } else if (mustUnescape) {
- push(params, paramName, token.replace(/\\/g, ""));
- } else {
- push(params, paramName, token);
- }
- push(offers, extensionName, params);
- }
- return offers;
- }
- function format(extensions) {
- return Object.keys(extensions).map((extension2) => {
- let configurations = extensions[extension2];
- if (!Array.isArray(configurations)) configurations = [configurations];
- return configurations.map((params) => {
- return [extension2].concat(
- Object.keys(params).map((k) => {
- let values = params[k];
- if (!Array.isArray(values)) values = [values];
- return values.map((v) => v === true ? k : `${k}=${v}`).join("; ");
- })
- ).join("; ");
- }).join(", ");
- }).join(", ");
- }
- module2.exports = { format, parse };
- }
- });
- // node_modules/ws/lib/websocket.js
- var require_websocket = __commonJS({
- "node_modules/ws/lib/websocket.js"(exports2, module2) {
- "use strict";
- var EventEmitter = require("events");
- var https = require("https");
- var http2 = require("http");
- var net = require("net");
- var tls = require("tls");
- var { randomBytes, createHash } = require("crypto");
- var { Duplex, Readable } = require("stream");
- var { URL } = require("url");
- var PerMessageDeflate2 = require_permessage_deflate();
- var Receiver2 = require_receiver();
- var Sender2 = require_sender();
- var { isBlob } = require_validation();
- var {
- BINARY_TYPES,
- CLOSE_TIMEOUT,
- EMPTY_BUFFER,
- GUID,
- kForOnEventAttribute,
- kListener,
- kStatusCode,
- kWebSocket,
- NOOP
- } = require_constants();
- var {
- EventTarget: { addEventListener, removeEventListener }
- } = require_event_target();
- var { format, parse } = require_extension();
- var { toBuffer } = require_buffer_util();
- var kAborted = /* @__PURE__ */ Symbol("kAborted");
- var protocolVersions = [8, 13];
- var readyStates = ["CONNECTING", "OPEN", "CLOSING", "CLOSED"];
- var subprotocolRegex = /^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;
- var WebSocket2 = class _WebSocket extends EventEmitter {
- /**
- * Create a new `WebSocket`.
- *
- * @param {(String|URL)} address The URL to which to connect
- * @param {(String|String[])} [protocols] The subprotocols
- * @param {Object} [options] Connection options
- */
- constructor(address, protocols, options) {
- super();
- this._binaryType = BINARY_TYPES[0];
- this._closeCode = 1006;
- this._closeFrameReceived = false;
- this._closeFrameSent = false;
- this._closeMessage = EMPTY_BUFFER;
- this._closeTimer = null;
- this._errorEmitted = false;
- this._extensions = {};
- this._paused = false;
- this._protocol = "";
- this._readyState = _WebSocket.CONNECTING;
- this._receiver = null;
- this._sender = null;
- this._socket = null;
- if (address !== null) {
- this._bufferedAmount = 0;
- this._isServer = false;
- this._redirects = 0;
- if (protocols === void 0) {
- protocols = [];
- } else if (!Array.isArray(protocols)) {
- if (typeof protocols === "object" && protocols !== null) {
- options = protocols;
- protocols = [];
- } else {
- protocols = [protocols];
- }
- }
- initAsClient(this, address, protocols, options);
- } else {
- this._autoPong = options.autoPong;
- this._closeTimeout = options.closeTimeout;
- this._isServer = true;
- }
- }
- /**
- * For historical reasons, the custom "nodebuffer" type is used by the default
- * instead of "blob".
- *
- * @type {String}
- */
- get binaryType() {
- return this._binaryType;
- }
- set binaryType(type) {
- if (!BINARY_TYPES.includes(type)) return;
- this._binaryType = type;
- if (this._receiver) this._receiver._binaryType = type;
- }
- /**
- * @type {Number}
- */
- get bufferedAmount() {
- if (!this._socket) return this._bufferedAmount;
- return this._socket._writableState.length + this._sender._bufferedBytes;
- }
- /**
- * @type {String}
- */
- get extensions() {
- return Object.keys(this._extensions).join();
- }
- /**
- * @type {Boolean}
- */
- get isPaused() {
- return this._paused;
- }
- /**
- * @type {Function}
- */
- /* istanbul ignore next */
- get onclose() {
- return null;
- }
- /**
- * @type {Function}
- */
- /* istanbul ignore next */
- get onerror() {
- return null;
- }
- /**
- * @type {Function}
- */
- /* istanbul ignore next */
- get onopen() {
- return null;
- }
- /**
- * @type {Function}
- */
- /* istanbul ignore next */
- get onmessage() {
- return null;
- }
- /**
- * @type {String}
- */
- get protocol() {
- return this._protocol;
- }
- /**
- * @type {Number}
- */
- get readyState() {
- return this._readyState;
- }
- /**
- * @type {String}
- */
- get url() {
- return this._url;
- }
- /**
- * Set up the socket and the internal resources.
- *
- * @param {Duplex} socket The network socket between the server and client
- * @param {Buffer} head The first packet of the upgraded stream
- * @param {Object} options Options object
- * @param {Boolean} [options.allowSynchronousEvents=false] Specifies whether
- * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted
- * multiple times in the same tick
- * @param {Function} [options.generateMask] The function used to generate the
- * masking key
- * @param {Number} [options.maxPayload=0] The maximum allowed message size
- * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or
- * not to skip UTF-8 validation for text and close messages
- * @private
- */
- setSocket(socket, head, options) {
- const receiver = new Receiver2({
- allowSynchronousEvents: options.allowSynchronousEvents,
- binaryType: this.binaryType,
- extensions: this._extensions,
- isServer: this._isServer,
- maxPayload: options.maxPayload,
- skipUTF8Validation: options.skipUTF8Validation
- });
- const sender = new Sender2(socket, this._extensions, options.generateMask);
- this._receiver = receiver;
- this._sender = sender;
- this._socket = socket;
- receiver[kWebSocket] = this;
- sender[kWebSocket] = this;
- socket[kWebSocket] = this;
- receiver.on("conclude", receiverOnConclude);
- receiver.on("drain", receiverOnDrain);
- receiver.on("error", receiverOnError);
- receiver.on("message", receiverOnMessage);
- receiver.on("ping", receiverOnPing);
- receiver.on("pong", receiverOnPong);
- sender.onerror = senderOnError;
- if (socket.setTimeout) socket.setTimeout(0);
- if (socket.setNoDelay) socket.setNoDelay();
- if (head.length > 0) socket.unshift(head);
- socket.on("close", socketOnClose);
- socket.on("data", socketOnData);
- socket.on("end", socketOnEnd);
- socket.on("error", socketOnError);
- this._readyState = _WebSocket.OPEN;
- this.emit("open");
- }
- /**
- * Emit the `'close'` event.
- *
- * @private
- */
- emitClose() {
- if (!this._socket) {
- this._readyState = _WebSocket.CLOSED;
- this.emit("close", this._closeCode, this._closeMessage);
- return;
- }
- if (this._extensions[PerMessageDeflate2.extensionName]) {
- this._extensions[PerMessageDeflate2.extensionName].cleanup();
- }
- this._receiver.removeAllListeners();
- this._readyState = _WebSocket.CLOSED;
- this.emit("close", this._closeCode, this._closeMessage);
- }
- /**
- * Start a closing handshake.
- *
- * +----------+ +-----------+ +----------+
- * - - -|ws.close()|-->|close frame|-->|ws.close()|- - -
- * | +----------+ +-----------+ +----------+ |
- * +----------+ +-----------+ |
- * CLOSING |ws.close()|<--|close frame|<--+-----+ CLOSING
- * +----------+ +-----------+ |
- * | | | +---+ |
- * +------------------------+-->|fin| - - - -
- * | +---+ | +---+
- * - - - - -|fin|<---------------------+
- * +---+
- *
- * @param {Number} [code] Status code explaining why the connection is closing
- * @param {(String|Buffer)} [data] The reason why the connection is
- * closing
- * @public
- */
- close(code, data) {
- if (this.readyState === _WebSocket.CLOSED) return;
- if (this.readyState === _WebSocket.CONNECTING) {
- const msg = "WebSocket was closed before the connection was established";
- abortHandshake(this, this._req, msg);
- return;
- }
- if (this.readyState === _WebSocket.CLOSING) {
- if (this._closeFrameSent && (this._closeFrameReceived || this._receiver._writableState.errorEmitted)) {
- this._socket.end();
- }
- return;
- }
- this._readyState = _WebSocket.CLOSING;
- this._sender.close(code, data, !this._isServer, (err) => {
- if (err) return;
- this._closeFrameSent = true;
- if (this._closeFrameReceived || this._receiver._writableState.errorEmitted) {
- this._socket.end();
- }
- });
- setCloseTimer(this);
- }
- /**
- * Pause the socket.
- *
- * @public
- */
- pause() {
- if (this.readyState === _WebSocket.CONNECTING || this.readyState === _WebSocket.CLOSED) {
- return;
- }
- this._paused = true;
- this._socket.pause();
- }
- /**
- * Send a ping.
- *
- * @param {*} [data] The data to send
- * @param {Boolean} [mask] Indicates whether or not to mask `data`
- * @param {Function} [cb] Callback which is executed when the ping is sent
- * @public
- */
- ping(data, mask, cb) {
- if (this.readyState === _WebSocket.CONNECTING) {
- throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");
- }
- if (typeof data === "function") {
- cb = data;
- data = mask = void 0;
- } else if (typeof mask === "function") {
- cb = mask;
- mask = void 0;
- }
- if (typeof data === "number") data = data.toString();
- if (this.readyState !== _WebSocket.OPEN) {
- sendAfterClose(this, data, cb);
- return;
- }
- if (mask === void 0) mask = !this._isServer;
- this._sender.ping(data || EMPTY_BUFFER, mask, cb);
- }
- /**
- * Send a pong.
- *
- * @param {*} [data] The data to send
- * @param {Boolean} [mask] Indicates whether or not to mask `data`
- * @param {Function} [cb] Callback which is executed when the pong is sent
- * @public
- */
- pong(data, mask, cb) {
- if (this.readyState === _WebSocket.CONNECTING) {
- throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");
- }
- if (typeof data === "function") {
- cb = data;
- data = mask = void 0;
- } else if (typeof mask === "function") {
- cb = mask;
- mask = void 0;
- }
- if (typeof data === "number") data = data.toString();
- if (this.readyState !== _WebSocket.OPEN) {
- sendAfterClose(this, data, cb);
- return;
- }
- if (mask === void 0) mask = !this._isServer;
- this._sender.pong(data || EMPTY_BUFFER, mask, cb);
- }
- /**
- * Resume the socket.
- *
- * @public
- */
- resume() {
- if (this.readyState === _WebSocket.CONNECTING || this.readyState === _WebSocket.CLOSED) {
- return;
- }
- this._paused = false;
- if (!this._receiver._writableState.needDrain) this._socket.resume();
- }
- /**
- * Send a data message.
- *
- * @param {*} data The message to send
- * @param {Object} [options] Options object
- * @param {Boolean} [options.binary] Specifies whether `data` is binary or
- * text
- * @param {Boolean} [options.compress] Specifies whether or not to compress
- * `data`
- * @param {Boolean} [options.fin=true] Specifies whether the fragment is the
- * last one
- * @param {Boolean} [options.mask] Specifies whether or not to mask `data`
- * @param {Function} [cb] Callback which is executed when data is written out
- * @public
- */
- send(data, options, cb) {
- if (this.readyState === _WebSocket.CONNECTING) {
- throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");
- }
- if (typeof options === "function") {
- cb = options;
- options = {};
- }
- if (typeof data === "number") data = data.toString();
- if (this.readyState !== _WebSocket.OPEN) {
- sendAfterClose(this, data, cb);
- return;
- }
- const opts = {
- binary: typeof data !== "string",
- mask: !this._isServer,
- compress: true,
- fin: true,
- ...options
- };
- if (!this._extensions[PerMessageDeflate2.extensionName]) {
- opts.compress = false;
- }
- this._sender.send(data || EMPTY_BUFFER, opts, cb);
- }
- /**
- * Forcibly close the connection.
- *
- * @public
- */
- terminate() {
- if (this.readyState === _WebSocket.CLOSED) return;
- if (this.readyState === _WebSocket.CONNECTING) {
- const msg = "WebSocket was closed before the connection was established";
- abortHandshake(this, this._req, msg);
- return;
- }
- if (this._socket) {
- this._readyState = _WebSocket.CLOSING;
- this._socket.destroy();
- }
- }
- };
- Object.defineProperty(WebSocket2, "CONNECTING", {
- enumerable: true,
- value: readyStates.indexOf("CONNECTING")
- });
- Object.defineProperty(WebSocket2.prototype, "CONNECTING", {
- enumerable: true,
- value: readyStates.indexOf("CONNECTING")
- });
- Object.defineProperty(WebSocket2, "OPEN", {
- enumerable: true,
- value: readyStates.indexOf("OPEN")
- });
- Object.defineProperty(WebSocket2.prototype, "OPEN", {
- enumerable: true,
- value: readyStates.indexOf("OPEN")
- });
- Object.defineProperty(WebSocket2, "CLOSING", {
- enumerable: true,
- value: readyStates.indexOf("CLOSING")
- });
- Object.defineProperty(WebSocket2.prototype, "CLOSING", {
- enumerable: true,
- value: readyStates.indexOf("CLOSING")
- });
- Object.defineProperty(WebSocket2, "CLOSED", {
- enumerable: true,
- value: readyStates.indexOf("CLOSED")
- });
- Object.defineProperty(WebSocket2.prototype, "CLOSED", {
- enumerable: true,
- value: readyStates.indexOf("CLOSED")
- });
- [
- "binaryType",
- "bufferedAmount",
- "extensions",
- "isPaused",
- "protocol",
- "readyState",
- "url"
- ].forEach((property) => {
- Object.defineProperty(WebSocket2.prototype, property, { enumerable: true });
- });
- ["open", "error", "close", "message"].forEach((method) => {
- Object.defineProperty(WebSocket2.prototype, `on${method}`, {
- enumerable: true,
- get() {
- for (const listener of this.listeners(method)) {
- if (listener[kForOnEventAttribute]) return listener[kListener];
- }
- return null;
- },
- set(handler) {
- for (const listener of this.listeners(method)) {
- if (listener[kForOnEventAttribute]) {
- this.removeListener(method, listener);
- break;
- }
- }
- if (typeof handler !== "function") return;
- this.addEventListener(method, handler, {
- [kForOnEventAttribute]: true
- });
- }
- });
- });
- WebSocket2.prototype.addEventListener = addEventListener;
- WebSocket2.prototype.removeEventListener = removeEventListener;
- module2.exports = WebSocket2;
- function initAsClient(websocket, address, protocols, options) {
- const opts = {
- allowSynchronousEvents: true,
- autoPong: true,
- closeTimeout: CLOSE_TIMEOUT,
- protocolVersion: protocolVersions[1],
- maxPayload: 100 * 1024 * 1024,
- skipUTF8Validation: false,
- perMessageDeflate: true,
- followRedirects: false,
- maxRedirects: 10,
- ...options,
- socketPath: void 0,
- hostname: void 0,
- protocol: void 0,
- timeout: void 0,
- method: "GET",
- host: void 0,
- path: void 0,
- port: void 0
- };
- websocket._autoPong = opts.autoPong;
- websocket._closeTimeout = opts.closeTimeout;
- if (!protocolVersions.includes(opts.protocolVersion)) {
- throw new RangeError(
- `Unsupported protocol version: ${opts.protocolVersion} (supported versions: ${protocolVersions.join(", ")})`
- );
- }
- let parsedUrl;
- if (address instanceof URL) {
- parsedUrl = address;
- } else {
- try {
- parsedUrl = new URL(address);
- } catch {
- throw new SyntaxError(`Invalid URL: ${address}`);
- }
- }
- if (parsedUrl.protocol === "http:") {
- parsedUrl.protocol = "ws:";
- } else if (parsedUrl.protocol === "https:") {
- parsedUrl.protocol = "wss:";
- }
- websocket._url = parsedUrl.href;
- const isSecure = parsedUrl.protocol === "wss:";
- const isIpcUrl = parsedUrl.protocol === "ws+unix:";
- let invalidUrlMessage;
- if (parsedUrl.protocol !== "ws:" && !isSecure && !isIpcUrl) {
- invalidUrlMessage = `The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`;
- } else if (isIpcUrl && !parsedUrl.pathname) {
- invalidUrlMessage = "The URL's pathname is empty";
- } else if (parsedUrl.hash) {
- invalidUrlMessage = "The URL contains a fragment identifier";
- }
- if (invalidUrlMessage) {
- const err = new SyntaxError(invalidUrlMessage);
- if (websocket._redirects === 0) {
- throw err;
- } else {
- emitErrorAndClose(websocket, err);
- return;
- }
- }
- const defaultPort = isSecure ? 443 : 80;
- const key = randomBytes(16).toString("base64");
- const request = isSecure ? https.request : http2.request;
- const protocolSet = /* @__PURE__ */ new Set();
- let perMessageDeflate;
- opts.createConnection = opts.createConnection || (isSecure ? tlsConnect : netConnect);
- opts.defaultPort = opts.defaultPort || defaultPort;
- opts.port = parsedUrl.port || defaultPort;
- opts.host = parsedUrl.hostname.startsWith("[") ? parsedUrl.hostname.slice(1, -1) : parsedUrl.hostname;
- opts.headers = {
- ...opts.headers,
- "Sec-WebSocket-Version": opts.protocolVersion,
- "Sec-WebSocket-Key": key,
- Connection: "Upgrade",
- Upgrade: "websocket"
- };
- opts.path = parsedUrl.pathname + parsedUrl.search;
- opts.timeout = opts.handshakeTimeout;
- if (opts.perMessageDeflate) {
- perMessageDeflate = new PerMessageDeflate2({
- ...opts.perMessageDeflate,
- isServer: false,
- maxPayload: opts.maxPayload
- });
- opts.headers["Sec-WebSocket-Extensions"] = format({
- [PerMessageDeflate2.extensionName]: perMessageDeflate.offer()
- });
- }
- if (protocols.length) {
- for (const protocol of protocols) {
- if (typeof protocol !== "string" || !subprotocolRegex.test(protocol) || protocolSet.has(protocol)) {
- throw new SyntaxError(
- "An invalid or duplicated subprotocol was specified"
- );
- }
- protocolSet.add(protocol);
- }
- opts.headers["Sec-WebSocket-Protocol"] = protocols.join(",");
- }
- if (opts.origin) {
- if (opts.protocolVersion < 13) {
- opts.headers["Sec-WebSocket-Origin"] = opts.origin;
- } else {
- opts.headers.Origin = opts.origin;
- }
- }
- if (parsedUrl.username || parsedUrl.password) {
- opts.auth = `${parsedUrl.username}:${parsedUrl.password}`;
- }
- if (isIpcUrl) {
- const parts = opts.path.split(":");
- opts.socketPath = parts[0];
- opts.path = parts[1];
- }
- let req;
- if (opts.followRedirects) {
- if (websocket._redirects === 0) {
- websocket._originalIpc = isIpcUrl;
- websocket._originalSecure = isSecure;
- websocket._originalHostOrSocketPath = isIpcUrl ? opts.socketPath : parsedUrl.host;
- const headers = options && options.headers;
- options = { ...options, headers: {} };
- if (headers) {
- for (const [key2, value] of Object.entries(headers)) {
- options.headers[key2.toLowerCase()] = value;
- }
- }
- } else if (websocket.listenerCount("redirect") === 0) {
- const isSameHost = isIpcUrl ? websocket._originalIpc ? opts.socketPath === websocket._originalHostOrSocketPath : false : websocket._originalIpc ? false : parsedUrl.host === websocket._originalHostOrSocketPath;
- if (!isSameHost || websocket._originalSecure && !isSecure) {
- delete opts.headers.authorization;
- delete opts.headers.cookie;
- if (!isSameHost) delete opts.headers.host;
- opts.auth = void 0;
- }
- }
- if (opts.auth && !options.headers.authorization) {
- options.headers.authorization = "Basic " + Buffer.from(opts.auth).toString("base64");
- }
- req = websocket._req = request(opts);
- if (websocket._redirects) {
- websocket.emit("redirect", websocket.url, req);
- }
- } else {
- req = websocket._req = request(opts);
- }
- if (opts.timeout) {
- req.on("timeout", () => {
- abortHandshake(websocket, req, "Opening handshake has timed out");
- });
- }
- req.on("error", (err) => {
- if (req === null || req[kAborted]) return;
- req = websocket._req = null;
- emitErrorAndClose(websocket, err);
- });
- req.on("response", (res) => {
- const location2 = res.headers.location;
- const statusCode = res.statusCode;
- if (location2 && opts.followRedirects && statusCode >= 300 && statusCode < 400) {
- if (++websocket._redirects > opts.maxRedirects) {
- abortHandshake(websocket, req, "Maximum redirects exceeded");
- return;
- }
- req.abort();
- let addr;
- try {
- addr = new URL(location2, address);
- } catch (e) {
- const err = new SyntaxError(`Invalid URL: ${location2}`);
- emitErrorAndClose(websocket, err);
- return;
- }
- initAsClient(websocket, addr, protocols, options);
- } else if (!websocket.emit("unexpected-response", req, res)) {
- abortHandshake(
- websocket,
- req,
- `Unexpected server response: ${res.statusCode}`
- );
- }
- });
- req.on("upgrade", (res, socket, head) => {
- websocket.emit("upgrade", res);
- if (websocket.readyState !== WebSocket2.CONNECTING) return;
- req = websocket._req = null;
- const upgrade = res.headers.upgrade;
- if (upgrade === void 0 || upgrade.toLowerCase() !== "websocket") {
- abortHandshake(websocket, socket, "Invalid Upgrade header");
- return;
- }
- const digest = createHash("sha1").update(key + GUID).digest("base64");
- if (res.headers["sec-websocket-accept"] !== digest) {
- abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header");
- return;
- }
- const serverProt = res.headers["sec-websocket-protocol"];
- let protError;
- if (serverProt !== void 0) {
- if (!protocolSet.size) {
- protError = "Server sent a subprotocol but none was requested";
- } else if (!protocolSet.has(serverProt)) {
- protError = "Server sent an invalid subprotocol";
- }
- } else if (protocolSet.size) {
- protError = "Server sent no subprotocol";
- }
- if (protError) {
- abortHandshake(websocket, socket, protError);
- return;
- }
- if (serverProt) websocket._protocol = serverProt;
- const secWebSocketExtensions = res.headers["sec-websocket-extensions"];
- if (secWebSocketExtensions !== void 0) {
- if (!perMessageDeflate) {
- const message = "Server sent a Sec-WebSocket-Extensions header but no extension was requested";
- abortHandshake(websocket, socket, message);
- return;
- }
- let extensions;
- try {
- extensions = parse(secWebSocketExtensions);
- } catch (err) {
- const message = "Invalid Sec-WebSocket-Extensions header";
- abortHandshake(websocket, socket, message);
- return;
- }
- const extensionNames = Object.keys(extensions);
- if (extensionNames.length !== 1 || extensionNames[0] !== PerMessageDeflate2.extensionName) {
- const message = "Server indicated an extension that was not requested";
- abortHandshake(websocket, socket, message);
- return;
- }
- try {
- perMessageDeflate.accept(extensions[PerMessageDeflate2.extensionName]);
- } catch (err) {
- const message = "Invalid Sec-WebSocket-Extensions header";
- abortHandshake(websocket, socket, message);
- return;
- }
- websocket._extensions[PerMessageDeflate2.extensionName] = perMessageDeflate;
- }
- websocket.setSocket(socket, head, {
- allowSynchronousEvents: opts.allowSynchronousEvents,
- generateMask: opts.generateMask,
- maxPayload: opts.maxPayload,
- skipUTF8Validation: opts.skipUTF8Validation
- });
- });
- if (opts.finishRequest) {
- opts.finishRequest(req, websocket);
- } else {
- req.end();
- }
- }
- function emitErrorAndClose(websocket, err) {
- websocket._readyState = WebSocket2.CLOSING;
- websocket._errorEmitted = true;
- websocket.emit("error", err);
- websocket.emitClose();
- }
- function netConnect(options) {
- options.path = options.socketPath;
- return net.connect(options);
- }
- function tlsConnect(options) {
- options.path = void 0;
- if (!options.servername && options.servername !== "") {
- options.servername = net.isIP(options.host) ? "" : options.host;
- }
- return tls.connect(options);
- }
- function abortHandshake(websocket, stream, message) {
- websocket._readyState = WebSocket2.CLOSING;
- const err = new Error(message);
- Error.captureStackTrace(err, abortHandshake);
- if (stream.setHeader) {
- stream[kAborted] = true;
- stream.abort();
- if (stream.socket && !stream.socket.destroyed) {
- stream.socket.destroy();
- }
- process.nextTick(emitErrorAndClose, websocket, err);
- } else {
- stream.destroy(err);
- stream.once("error", websocket.emit.bind(websocket, "error"));
- stream.once("close", websocket.emitClose.bind(websocket));
- }
- }
- function sendAfterClose(websocket, data, cb) {
- if (data) {
- const length = isBlob(data) ? data.size : toBuffer(data).length;
- if (websocket._socket) websocket._sender._bufferedBytes += length;
- else websocket._bufferedAmount += length;
- }
- if (cb) {
- const err = new Error(
- `WebSocket is not open: readyState ${websocket.readyState} (${readyStates[websocket.readyState]})`
- );
- process.nextTick(cb, err);
- }
- }
- function receiverOnConclude(code, reason) {
- const websocket = this[kWebSocket];
- websocket._closeFrameReceived = true;
- websocket._closeMessage = reason;
- websocket._closeCode = code;
- if (websocket._socket[kWebSocket] === void 0) return;
- websocket._socket.removeListener("data", socketOnData);
- process.nextTick(resume, websocket._socket);
- if (code === 1005) websocket.close();
- else websocket.close(code, reason);
- }
- function receiverOnDrain() {
- const websocket = this[kWebSocket];
- if (!websocket.isPaused) websocket._socket.resume();
- }
- function receiverOnError(err) {
- const websocket = this[kWebSocket];
- if (websocket._socket[kWebSocket] !== void 0) {
- websocket._socket.removeListener("data", socketOnData);
- process.nextTick(resume, websocket._socket);
- websocket.close(err[kStatusCode]);
- }
- if (!websocket._errorEmitted) {
- websocket._errorEmitted = true;
- websocket.emit("error", err);
- }
- }
- function receiverOnFinish() {
- this[kWebSocket].emitClose();
- }
- function receiverOnMessage(data, isBinary) {
- this[kWebSocket].emit("message", data, isBinary);
- }
- function receiverOnPing(data) {
- const websocket = this[kWebSocket];
- if (websocket._autoPong) websocket.pong(data, !this._isServer, NOOP);
- websocket.emit("ping", data);
- }
- function receiverOnPong(data) {
- this[kWebSocket].emit("pong", data);
- }
- function resume(stream) {
- stream.resume();
- }
- function senderOnError(err) {
- const websocket = this[kWebSocket];
- if (websocket.readyState === WebSocket2.CLOSED) return;
- if (websocket.readyState === WebSocket2.OPEN) {
- websocket._readyState = WebSocket2.CLOSING;
- setCloseTimer(websocket);
- }
- this._socket.end();
- if (!websocket._errorEmitted) {
- websocket._errorEmitted = true;
- websocket.emit("error", err);
- }
- }
- function setCloseTimer(websocket) {
- websocket._closeTimer = setTimeout(
- websocket._socket.destroy.bind(websocket._socket),
- websocket._closeTimeout
- );
- }
- function socketOnClose() {
- const websocket = this[kWebSocket];
- this.removeListener("close", socketOnClose);
- this.removeListener("data", socketOnData);
- this.removeListener("end", socketOnEnd);
- websocket._readyState = WebSocket2.CLOSING;
- if (!this._readableState.endEmitted && !websocket._closeFrameReceived && !websocket._receiver._writableState.errorEmitted && this._readableState.length !== 0) {
- const chunk = this.read(this._readableState.length);
- websocket._receiver.write(chunk);
- }
- websocket._receiver.end();
- this[kWebSocket] = void 0;
- clearTimeout(websocket._closeTimer);
- if (websocket._receiver._writableState.finished || websocket._receiver._writableState.errorEmitted) {
- websocket.emitClose();
- } else {
- websocket._receiver.on("error", receiverOnFinish);
- websocket._receiver.on("finish", receiverOnFinish);
- }
- }
- function socketOnData(chunk) {
- if (!this[kWebSocket]._receiver.write(chunk)) {
- this.pause();
- }
- }
- function socketOnEnd() {
- const websocket = this[kWebSocket];
- websocket._readyState = WebSocket2.CLOSING;
- websocket._receiver.end();
- this.end();
- }
- function socketOnError() {
- const websocket = this[kWebSocket];
- this.removeListener("error", socketOnError);
- this.on("error", NOOP);
- if (websocket) {
- websocket._readyState = WebSocket2.CLOSING;
- this.destroy();
- }
- }
- }
- });
- // node_modules/ws/lib/stream.js
- var require_stream = __commonJS({
- "node_modules/ws/lib/stream.js"(exports2, module2) {
- "use strict";
- var WebSocket2 = require_websocket();
- var { Duplex } = require("stream");
- function emitClose(stream) {
- stream.emit("close");
- }
- function duplexOnEnd() {
- if (!this.destroyed && this._writableState.finished) {
- this.destroy();
- }
- }
- function duplexOnError(err) {
- this.removeListener("error", duplexOnError);
- this.destroy();
- if (this.listenerCount("error") === 0) {
- this.emit("error", err);
- }
- }
- function createWebSocketStream2(ws, options) {
- let terminateOnDestroy = true;
- const duplex = new Duplex({
- ...options,
- autoDestroy: false,
- emitClose: false,
- objectMode: false,
- writableObjectMode: false
- });
- ws.on("message", function message(msg, isBinary) {
- const data = !isBinary && duplex._readableState.objectMode ? msg.toString() : msg;
- if (!duplex.push(data)) ws.pause();
- });
- ws.once("error", function error(err) {
- if (duplex.destroyed) return;
- terminateOnDestroy = false;
- duplex.destroy(err);
- });
- ws.once("close", function close() {
- if (duplex.destroyed) return;
- duplex.push(null);
- });
- duplex._destroy = function(err, callback) {
- if (ws.readyState === ws.CLOSED) {
- callback(err);
- process.nextTick(emitClose, duplex);
- return;
- }
- let called = false;
- ws.once("error", function error(err2) {
- called = true;
- callback(err2);
- });
- ws.once("close", function close() {
- if (!called) callback(err);
- process.nextTick(emitClose, duplex);
- });
- if (terminateOnDestroy) ws.terminate();
- };
- duplex._final = function(callback) {
- if (ws.readyState === ws.CONNECTING) {
- ws.once("open", function open() {
- duplex._final(callback);
- });
- return;
- }
- if (ws._socket === null) return;
- if (ws._socket._writableState.finished) {
- callback();
- if (duplex._readableState.endEmitted) duplex.destroy();
- } else {
- ws._socket.once("finish", function finish() {
- callback();
- });
- ws.close();
- }
- };
- duplex._read = function() {
- if (ws.isPaused) ws.resume();
- };
- duplex._write = function(chunk, encoding, callback) {
- if (ws.readyState === ws.CONNECTING) {
- ws.once("open", function open() {
- duplex._write(chunk, encoding, callback);
- });
- return;
- }
- ws.send(chunk, callback);
- };
- duplex.on("end", duplexOnEnd);
- duplex.on("error", duplexOnError);
- return duplex;
- }
- module2.exports = createWebSocketStream2;
- }
- });
- // node_modules/ws/lib/subprotocol.js
- var require_subprotocol = __commonJS({
- "node_modules/ws/lib/subprotocol.js"(exports2, module2) {
- "use strict";
- var { tokenChars } = require_validation();
- function parse(header) {
- const protocols = /* @__PURE__ */ new Set();
- let start = -1;
- let end = -1;
- let i = 0;
- for (i; i < header.length; i++) {
- const code = header.charCodeAt(i);
- if (end === -1 && tokenChars[code] === 1) {
- if (start === -1) start = i;
- } else if (i !== 0 && (code === 32 || code === 9)) {
- if (end === -1 && start !== -1) end = i;
- } else if (code === 44) {
- if (start === -1) {
- throw new SyntaxError(`Unexpected character at index ${i}`);
- }
- if (end === -1) end = i;
- const protocol2 = header.slice(start, end);
- if (protocols.has(protocol2)) {
- throw new SyntaxError(`The "${protocol2}" subprotocol is duplicated`);
- }
- protocols.add(protocol2);
- start = end = -1;
- } else {
- throw new SyntaxError(`Unexpected character at index ${i}`);
- }
- }
- if (start === -1 || end !== -1) {
- throw new SyntaxError("Unexpected end of input");
- }
- const protocol = header.slice(start, i);
- if (protocols.has(protocol)) {
- throw new SyntaxError(`The "${protocol}" subprotocol is duplicated`);
- }
- protocols.add(protocol);
- return protocols;
- }
- module2.exports = { parse };
- }
- });
- // node_modules/ws/lib/websocket-server.js
- var require_websocket_server = __commonJS({
- "node_modules/ws/lib/websocket-server.js"(exports2, module2) {
- "use strict";
- var EventEmitter = require("events");
- var http2 = require("http");
- var { Duplex } = require("stream");
- var { createHash } = require("crypto");
- var extension2 = require_extension();
- var PerMessageDeflate2 = require_permessage_deflate();
- var subprotocol2 = require_subprotocol();
- var WebSocket2 = require_websocket();
- var { CLOSE_TIMEOUT, GUID, kWebSocket } = require_constants();
- var keyRegex = /^[+/0-9A-Za-z]{22}==$/;
- var RUNNING = 0;
- var CLOSING = 1;
- var CLOSED = 2;
- var WebSocketServer2 = class extends EventEmitter {
- /**
- * Create a `WebSocketServer` instance.
- *
- * @param {Object} options Configuration options
- * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether
- * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted
- * multiple times in the same tick
- * @param {Boolean} [options.autoPong=true] Specifies whether or not to
- * automatically send a pong in response to a ping
- * @param {Number} [options.backlog=511] The maximum length of the queue of
- * pending connections
- * @param {Boolean} [options.clientTracking=true] Specifies whether or not to
- * track clients
- * @param {Number} [options.closeTimeout=30000] Duration in milliseconds to
- * wait for the closing handshake to finish after `websocket.close()` is
- * called
- * @param {Function} [options.handleProtocols] A hook to handle protocols
- * @param {String} [options.host] The hostname where to bind the server
- * @param {Number} [options.maxPayload=104857600] The maximum allowed message
- * size
- * @param {Boolean} [options.noServer=false] Enable no server mode
- * @param {String} [options.path] Accept only connections matching this path
- * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable
- * permessage-deflate
- * @param {Number} [options.port] The port where to bind the server
- * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S
- * server to use
- * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or
- * not to skip UTF-8 validation for text and close messages
- * @param {Function} [options.verifyClient] A hook to reject connections
- * @param {Function} [options.WebSocket=WebSocket] Specifies the `WebSocket`
- * class to use. It must be the `WebSocket` class or class that extends it
- * @param {Function} [callback] A listener for the `listening` event
- */
- constructor(options, callback) {
- super();
- options = {
- allowSynchronousEvents: true,
- autoPong: true,
- maxPayload: 100 * 1024 * 1024,
- skipUTF8Validation: false,
- perMessageDeflate: false,
- handleProtocols: null,
- clientTracking: true,
- closeTimeout: CLOSE_TIMEOUT,
- verifyClient: null,
- noServer: false,
- backlog: null,
- // use default (511 as implemented in net.js)
- server: null,
- host: null,
- path: null,
- port: null,
- WebSocket: WebSocket2,
- ...options
- };
- if (options.port == null && !options.server && !options.noServer || options.port != null && (options.server || options.noServer) || options.server && options.noServer) {
- throw new TypeError(
- 'One and only one of the "port", "server", or "noServer" options must be specified'
- );
- }
- if (options.port != null) {
- this._server = http2.createServer((req, res) => {
- const body = http2.STATUS_CODES[426];
- res.writeHead(426, {
- "Content-Length": body.length,
- "Content-Type": "text/plain"
- });
- res.end(body);
- });
- this._server.listen(
- options.port,
- options.host,
- options.backlog,
- callback
- );
- } else if (options.server) {
- this._server = options.server;
- }
- if (this._server) {
- const emitConnection = this.emit.bind(this, "connection");
- this._removeListeners = addListeners(this._server, {
- listening: this.emit.bind(this, "listening"),
- error: this.emit.bind(this, "error"),
- upgrade: (req, socket, head) => {
- this.handleUpgrade(req, socket, head, emitConnection);
- }
- });
- }
- if (options.perMessageDeflate === true) options.perMessageDeflate = {};
- if (options.clientTracking) {
- this.clients = /* @__PURE__ */ new Set();
- this._shouldEmitClose = false;
- }
- this.options = options;
- this._state = RUNNING;
- }
- /**
- * Returns the bound address, the address family name, and port of the server
- * as reported by the operating system if listening on an IP socket.
- * If the server is listening on a pipe or UNIX domain socket, the name is
- * returned as a string.
- *
- * @return {(Object|String|null)} The address of the server
- * @public
- */
- address() {
- if (this.options.noServer) {
- throw new Error('The server is operating in "noServer" mode');
- }
- if (!this._server) return null;
- return this._server.address();
- }
- /**
- * Stop the server from accepting new connections and emit the `'close'` event
- * when all existing connections are closed.
- *
- * @param {Function} [cb] A one-time listener for the `'close'` event
- * @public
- */
- close(cb) {
- if (this._state === CLOSED) {
- if (cb) {
- this.once("close", () => {
- cb(new Error("The server is not running"));
- });
- }
- process.nextTick(emitClose, this);
- return;
- }
- if (cb) this.once("close", cb);
- if (this._state === CLOSING) return;
- this._state = CLOSING;
- if (this.options.noServer || this.options.server) {
- if (this._server) {
- this._removeListeners();
- this._removeListeners = this._server = null;
- }
- if (this.clients) {
- if (!this.clients.size) {
- process.nextTick(emitClose, this);
- } else {
- this._shouldEmitClose = true;
- }
- } else {
- process.nextTick(emitClose, this);
- }
- } else {
- const server = this._server;
- this._removeListeners();
- this._removeListeners = this._server = null;
- server.close(() => {
- emitClose(this);
- });
- }
- }
- /**
- * See if a given request should be handled by this server instance.
- *
- * @param {http.IncomingMessage} req Request object to inspect
- * @return {Boolean} `true` if the request is valid, else `false`
- * @public
- */
- shouldHandle(req) {
- if (this.options.path) {
- const index = req.url.indexOf("?");
- const pathname = index !== -1 ? req.url.slice(0, index) : req.url;
- if (pathname !== this.options.path) return false;
- }
- return true;
- }
- /**
- * Handle a HTTP Upgrade request.
- *
- * @param {http.IncomingMessage} req The request object
- * @param {Duplex} socket The network socket between the server and client
- * @param {Buffer} head The first packet of the upgraded stream
- * @param {Function} cb Callback
- * @public
- */
- handleUpgrade(req, socket, head, cb) {
- socket.on("error", socketOnError);
- const key = req.headers["sec-websocket-key"];
- const upgrade = req.headers.upgrade;
- const version = +req.headers["sec-websocket-version"];
- if (req.method !== "GET") {
- const message = "Invalid HTTP method";
- abortHandshakeOrEmitwsClientError(this, req, socket, 405, message);
- return;
- }
- if (upgrade === void 0 || upgrade.toLowerCase() !== "websocket") {
- const message = "Invalid Upgrade header";
- abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);
- return;
- }
- if (key === void 0 || !keyRegex.test(key)) {
- const message = "Missing or invalid Sec-WebSocket-Key header";
- abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);
- return;
- }
- if (version !== 13 && version !== 8) {
- const message = "Missing or invalid Sec-WebSocket-Version header";
- abortHandshakeOrEmitwsClientError(this, req, socket, 400, message, {
- "Sec-WebSocket-Version": "13, 8"
- });
- return;
- }
- if (!this.shouldHandle(req)) {
- abortHandshake(socket, 400);
- return;
- }
- const secWebSocketProtocol = req.headers["sec-websocket-protocol"];
- let protocols = /* @__PURE__ */ new Set();
- if (secWebSocketProtocol !== void 0) {
- try {
- protocols = subprotocol2.parse(secWebSocketProtocol);
- } catch (err) {
- const message = "Invalid Sec-WebSocket-Protocol header";
- abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);
- return;
- }
- }
- const secWebSocketExtensions = req.headers["sec-websocket-extensions"];
- const extensions = {};
- if (this.options.perMessageDeflate && secWebSocketExtensions !== void 0) {
- const perMessageDeflate = new PerMessageDeflate2({
- ...this.options.perMessageDeflate,
- isServer: true,
- maxPayload: this.options.maxPayload
- });
- try {
- const offers = extension2.parse(secWebSocketExtensions);
- if (offers[PerMessageDeflate2.extensionName]) {
- perMessageDeflate.accept(offers[PerMessageDeflate2.extensionName]);
- extensions[PerMessageDeflate2.extensionName] = perMessageDeflate;
- }
- } catch (err) {
- const message = "Invalid or unacceptable Sec-WebSocket-Extensions header";
- abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);
- return;
- }
- }
- if (this.options.verifyClient) {
- const info = {
- origin: req.headers[`${version === 8 ? "sec-websocket-origin" : "origin"}`],
- secure: !!(req.socket.authorized || req.socket.encrypted),
- req
- };
- if (this.options.verifyClient.length === 2) {
- this.options.verifyClient(info, (verified, code, message, headers) => {
- if (!verified) {
- return abortHandshake(socket, code || 401, message, headers);
- }
- this.completeUpgrade(
- extensions,
- key,
- protocols,
- req,
- socket,
- head,
- cb
- );
- });
- return;
- }
- if (!this.options.verifyClient(info)) return abortHandshake(socket, 401);
- }
- this.completeUpgrade(extensions, key, protocols, req, socket, head, cb);
- }
- /**
- * Upgrade the connection to WebSocket.
- *
- * @param {Object} extensions The accepted extensions
- * @param {String} key The value of the `Sec-WebSocket-Key` header
- * @param {Set} protocols The subprotocols
- * @param {http.IncomingMessage} req The request object
- * @param {Duplex} socket The network socket between the server and client
- * @param {Buffer} head The first packet of the upgraded stream
- * @param {Function} cb Callback
- * @throws {Error} If called more than once with the same socket
- * @private
- */
- completeUpgrade(extensions, key, protocols, req, socket, head, cb) {
- if (!socket.readable || !socket.writable) return socket.destroy();
- if (socket[kWebSocket]) {
- throw new Error(
- "server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration"
- );
- }
- if (this._state > RUNNING) return abortHandshake(socket, 503);
- const digest = createHash("sha1").update(key + GUID).digest("base64");
- const headers = [
- "HTTP/1.1 101 Switching Protocols",
- "Upgrade: websocket",
- "Connection: Upgrade",
- `Sec-WebSocket-Accept: ${digest}`
- ];
- const ws = new this.options.WebSocket(null, void 0, this.options);
- if (protocols.size) {
- const protocol = this.options.handleProtocols ? this.options.handleProtocols(protocols, req) : protocols.values().next().value;
- if (protocol) {
- headers.push(`Sec-WebSocket-Protocol: ${protocol}`);
- ws._protocol = protocol;
- }
- }
- if (extensions[PerMessageDeflate2.extensionName]) {
- const params = extensions[PerMessageDeflate2.extensionName].params;
- const value = extension2.format({
- [PerMessageDeflate2.extensionName]: [params]
- });
- headers.push(`Sec-WebSocket-Extensions: ${value}`);
- ws._extensions = extensions;
- }
- this.emit("headers", headers, req);
- socket.write(headers.concat("\r\n").join("\r\n"));
- socket.removeListener("error", socketOnError);
- ws.setSocket(socket, head, {
- allowSynchronousEvents: this.options.allowSynchronousEvents,
- maxPayload: this.options.maxPayload,
- skipUTF8Validation: this.options.skipUTF8Validation
- });
- if (this.clients) {
- this.clients.add(ws);
- ws.on("close", () => {
- this.clients.delete(ws);
- if (this._shouldEmitClose && !this.clients.size) {
- process.nextTick(emitClose, this);
- }
- });
- }
- cb(ws, req);
- }
- };
- module2.exports = WebSocketServer2;
- function addListeners(server, map) {
- for (const event of Object.keys(map)) server.on(event, map[event]);
- return function removeListeners() {
- for (const event of Object.keys(map)) {
- server.removeListener(event, map[event]);
- }
- };
- }
- function emitClose(server) {
- server._state = CLOSED;
- server.emit("close");
- }
- function socketOnError() {
- this.destroy();
- }
- function abortHandshake(socket, code, message, headers) {
- message = message || http2.STATUS_CODES[code];
- headers = {
- Connection: "close",
- "Content-Type": "text/html",
- "Content-Length": Buffer.byteLength(message),
- ...headers
- };
- socket.once("finish", socket.destroy);
- socket.end(
- `HTTP/1.1 ${code} ${http2.STATUS_CODES[code]}\r
- ` + Object.keys(headers).map((h) => `${h}: ${headers[h]}`).join("\r\n") + "\r\n\r\n" + message
- );
- }
- function abortHandshakeOrEmitwsClientError(server, req, socket, code, message, headers) {
- if (server.listenerCount("wsClientError")) {
- const err = new Error(message);
- Error.captureStackTrace(err, abortHandshakeOrEmitwsClientError);
- server.emit("wsClientError", err, socket, req);
- } else {
- abortHandshake(socket, code, message, headers);
- }
- }
- }
- });
- // node_modules/safe-buffer/index.js
- var require_safe_buffer = __commonJS({
- "node_modules/safe-buffer/index.js"(exports2, module2) {
- var buffer = require("buffer");
- var Buffer2 = buffer.Buffer;
- function copyProps(src, dst) {
- for (var key in src) {
- dst[key] = src[key];
- }
- }
- if (Buffer2.from && Buffer2.alloc && Buffer2.allocUnsafe && Buffer2.allocUnsafeSlow) {
- module2.exports = buffer;
- } else {
- copyProps(buffer, exports2);
- exports2.Buffer = SafeBuffer;
- }
- function SafeBuffer(arg, encodingOrOffset, length) {
- return Buffer2(arg, encodingOrOffset, length);
- }
- SafeBuffer.prototype = Object.create(Buffer2.prototype);
- copyProps(Buffer2, SafeBuffer);
- SafeBuffer.from = function(arg, encodingOrOffset, length) {
- if (typeof arg === "number") {
- throw new TypeError("Argument must not be a number");
- }
- return Buffer2(arg, encodingOrOffset, length);
- };
- SafeBuffer.alloc = function(size, fill, encoding) {
- if (typeof size !== "number") {
- throw new TypeError("Argument must be a number");
- }
- var buf = Buffer2(size);
- if (fill !== void 0) {
- if (typeof encoding === "string") {
- buf.fill(fill, encoding);
- } else {
- buf.fill(fill);
- }
- } else {
- buf.fill(0);
- }
- return buf;
- };
- SafeBuffer.allocUnsafe = function(size) {
- if (typeof size !== "number") {
- throw new TypeError("Argument must be a number");
- }
- return Buffer2(size);
- };
- SafeBuffer.allocUnsafeSlow = function(size) {
- if (typeof size !== "number") {
- throw new TypeError("Argument must be a number");
- }
- return buffer.SlowBuffer(size);
- };
- }
- });
- // node_modules/express-session/node_modules/ms/index.js
- var require_ms2 = __commonJS({
- "node_modules/express-session/node_modules/ms/index.js"(exports2, module2) {
- var s = 1e3;
- var m = s * 60;
- var h = m * 60;
- var d = h * 24;
- var y = d * 365.25;
- module2.exports = function(val, options) {
- options = options || {};
- var type = typeof val;
- if (type === "string" && val.length > 0) {
- return parse(val);
- } else if (type === "number" && isNaN(val) === false) {
- return options.long ? fmtLong(val) : fmtShort(val);
- }
- throw new Error(
- "val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
- );
- };
- function parse(str) {
- str = String(str);
- if (str.length > 100) {
- return;
- }
- var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
- str
- );
- if (!match) {
- return;
- }
- var n = parseFloat(match[1]);
- var type = (match[2] || "ms").toLowerCase();
- switch (type) {
- case "years":
- case "year":
- case "yrs":
- case "yr":
- case "y":
- return n * y;
- case "days":
- case "day":
- case "d":
- return n * d;
- case "hours":
- case "hour":
- case "hrs":
- case "hr":
- case "h":
- return n * h;
- case "minutes":
- case "minute":
- case "mins":
- case "min":
- case "m":
- return n * m;
- case "seconds":
- case "second":
- case "secs":
- case "sec":
- case "s":
- return n * s;
- case "milliseconds":
- case "millisecond":
- case "msecs":
- case "msec":
- case "ms":
- return n;
- default:
- return void 0;
- }
- }
- function fmtShort(ms) {
- if (ms >= d) {
- return Math.round(ms / d) + "d";
- }
- if (ms >= h) {
- return Math.round(ms / h) + "h";
- }
- if (ms >= m) {
- return Math.round(ms / m) + "m";
- }
- if (ms >= s) {
- return Math.round(ms / s) + "s";
- }
- return ms + "ms";
- }
- function fmtLong(ms) {
- return plural(ms, d, "day") || plural(ms, h, "hour") || plural(ms, m, "minute") || plural(ms, s, "second") || ms + " ms";
- }
- function plural(ms, n, name) {
- if (ms < n) {
- return;
- }
- if (ms < n * 1.5) {
- return Math.floor(ms / n) + " " + name;
- }
- return Math.ceil(ms / n) + " " + name + "s";
- }
- }
- });
- // node_modules/express-session/node_modules/debug/src/debug.js
- var require_debug = __commonJS({
- "node_modules/express-session/node_modules/debug/src/debug.js"(exports2, module2) {
- exports2 = module2.exports = createDebug.debug = createDebug["default"] = createDebug;
- exports2.coerce = coerce;
- exports2.disable = disable;
- exports2.enable = enable;
- exports2.enabled = enabled;
- exports2.humanize = require_ms2();
- exports2.names = [];
- exports2.skips = [];
- exports2.formatters = {};
- var prevTime;
- function selectColor(namespace) {
- var hash = 0, i;
- for (i in namespace) {
- hash = (hash << 5) - hash + namespace.charCodeAt(i);
- hash |= 0;
- }
- return exports2.colors[Math.abs(hash) % exports2.colors.length];
- }
- function createDebug(namespace) {
- function debug() {
- if (!debug.enabled) return;
- var self2 = debug;
- var curr = +/* @__PURE__ */ new Date();
- var ms = curr - (prevTime || curr);
- self2.diff = ms;
- self2.prev = prevTime;
- self2.curr = curr;
- prevTime = curr;
- var args = new Array(arguments.length);
- for (var i = 0; i < args.length; i++) {
- args[i] = arguments[i];
- }
- args[0] = exports2.coerce(args[0]);
- if ("string" !== typeof args[0]) {
- args.unshift("%O");
- }
- var index = 0;
- args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
- if (match === "%%") return match;
- index++;
- var formatter = exports2.formatters[format];
- if ("function" === typeof formatter) {
- var val = args[index];
- match = formatter.call(self2, val);
- args.splice(index, 1);
- index--;
- }
- return match;
- });
- exports2.formatArgs.call(self2, args);
- var logFn = debug.log || exports2.log || console.log.bind(console);
- logFn.apply(self2, args);
- }
- debug.namespace = namespace;
- debug.enabled = exports2.enabled(namespace);
- debug.useColors = exports2.useColors();
- debug.color = selectColor(namespace);
- if ("function" === typeof exports2.init) {
- exports2.init(debug);
- }
- return debug;
- }
- function enable(namespaces) {
- exports2.save(namespaces);
- exports2.names = [];
- exports2.skips = [];
- var split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/);
- var len = split.length;
- for (var i = 0; i < len; i++) {
- if (!split[i]) continue;
- namespaces = split[i].replace(/\*/g, ".*?");
- if (namespaces[0] === "-") {
- exports2.skips.push(new RegExp("^" + namespaces.substr(1) + "$"));
- } else {
- exports2.names.push(new RegExp("^" + namespaces + "$"));
- }
- }
- }
- function disable() {
- exports2.enable("");
- }
- function enabled(name) {
- var i, len;
- for (i = 0, len = exports2.skips.length; i < len; i++) {
- if (exports2.skips[i].test(name)) {
- return false;
- }
- }
- for (i = 0, len = exports2.names.length; i < len; i++) {
- if (exports2.names[i].test(name)) {
- return true;
- }
- }
- return false;
- }
- function coerce(val) {
- if (val instanceof Error) return val.stack || val.message;
- return val;
- }
- }
- });
- // node_modules/express-session/node_modules/debug/src/browser.js
- var require_browser2 = __commonJS({
- "node_modules/express-session/node_modules/debug/src/browser.js"(exports2, module2) {
- exports2 = module2.exports = require_debug();
- exports2.log = log;
- exports2.formatArgs = formatArgs;
- exports2.save = save;
- exports2.load = load;
- exports2.useColors = useColors;
- exports2.storage = "undefined" != typeof chrome && "undefined" != typeof chrome.storage ? chrome.storage.local : localstorage();
- exports2.colors = [
- "lightseagreen",
- "forestgreen",
- "goldenrod",
- "dodgerblue",
- "darkorchid",
- "crimson"
- ];
- function useColors() {
- if (typeof window !== "undefined" && window.process && window.process.type === "renderer") {
- return true;
- }
- return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // is firebug? http://stackoverflow.com/a/398120/376773
- typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // is firefox >= v31?
- // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
- typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // double check webkit in userAgent just in case we are in a worker
- typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
- }
- exports2.formatters.j = function(v) {
- try {
- return JSON.stringify(v);
- } catch (err) {
- return "[UnexpectedJSONParseError]: " + err.message;
- }
- };
- function formatArgs(args) {
- var useColors2 = this.useColors;
- args[0] = (useColors2 ? "%c" : "") + this.namespace + (useColors2 ? " %c" : " ") + args[0] + (useColors2 ? "%c " : " ") + "+" + exports2.humanize(this.diff);
- if (!useColors2) return;
- var c = "color: " + this.color;
- args.splice(1, 0, c, "color: inherit");
- var index = 0;
- var lastC = 0;
- args[0].replace(/%[a-zA-Z%]/g, function(match) {
- if ("%%" === match) return;
- index++;
- if ("%c" === match) {
- lastC = index;
- }
- });
- args.splice(lastC, 0, c);
- }
- function log() {
- return "object" === typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments);
- }
- function save(namespaces) {
- try {
- if (null == namespaces) {
- exports2.storage.removeItem("debug");
- } else {
- exports2.storage.debug = namespaces;
- }
- } catch (e) {
- }
- }
- function load() {
- var r;
- try {
- r = exports2.storage.debug;
- } catch (e) {
- }
- if (!r && typeof process !== "undefined" && "env" in process) {
- r = process.env.DEBUG;
- }
- return r;
- }
- exports2.enable(load());
- function localstorage() {
- try {
- return window.localStorage;
- } catch (e) {
- }
- }
- }
- });
- // node_modules/express-session/node_modules/debug/src/node.js
- var require_node2 = __commonJS({
- "node_modules/express-session/node_modules/debug/src/node.js"(exports2, module2) {
- var tty = require("tty");
- var util = require("util");
- exports2 = module2.exports = require_debug();
- exports2.init = init;
- exports2.log = log;
- exports2.formatArgs = formatArgs;
- exports2.save = save;
- exports2.load = load;
- exports2.useColors = useColors;
- exports2.colors = [6, 2, 3, 4, 5, 1];
- exports2.inspectOpts = Object.keys(process.env).filter(function(key) {
- return /^debug_/i.test(key);
- }).reduce(function(obj, key) {
- var prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, function(_, k) {
- return k.toUpperCase();
- });
- var val = process.env[key];
- if (/^(yes|on|true|enabled)$/i.test(val)) val = true;
- else if (/^(no|off|false|disabled)$/i.test(val)) val = false;
- else if (val === "null") val = null;
- else val = Number(val);
- obj[prop] = val;
- return obj;
- }, {});
- var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
- if (1 !== fd && 2 !== fd) {
- util.deprecate(function() {
- }, "except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();
- }
- var stream = 1 === fd ? process.stdout : 2 === fd ? process.stderr : createWritableStdioStream(fd);
- function useColors() {
- return "colors" in exports2.inspectOpts ? Boolean(exports2.inspectOpts.colors) : tty.isatty(fd);
- }
- exports2.formatters.o = function(v) {
- this.inspectOpts.colors = this.useColors;
- return util.inspect(v, this.inspectOpts).split("\n").map(function(str) {
- return str.trim();
- }).join(" ");
- };
- exports2.formatters.O = function(v) {
- this.inspectOpts.colors = this.useColors;
- return util.inspect(v, this.inspectOpts);
- };
- function formatArgs(args) {
- var name = this.namespace;
- var useColors2 = this.useColors;
- if (useColors2) {
- var c = this.color;
- var prefix = " \x1B[3" + c + ";1m" + name + " \x1B[0m";
- args[0] = prefix + args[0].split("\n").join("\n" + prefix);
- args.push("\x1B[3" + c + "m+" + exports2.humanize(this.diff) + "\x1B[0m");
- } else {
- args[0] = (/* @__PURE__ */ new Date()).toUTCString() + " " + name + " " + args[0];
- }
- }
- function log() {
- return stream.write(util.format.apply(util, arguments) + "\n");
- }
- function save(namespaces) {
- if (null == namespaces) {
- delete process.env.DEBUG;
- } else {
- process.env.DEBUG = namespaces;
- }
- }
- function load() {
- return process.env.DEBUG;
- }
- function createWritableStdioStream(fd2) {
- var stream2;
- var tty_wrap = process.binding("tty_wrap");
- switch (tty_wrap.guessHandleType(fd2)) {
- case "TTY":
- stream2 = new tty.WriteStream(fd2);
- stream2._type = "tty";
- if (stream2._handle && stream2._handle.unref) {
- stream2._handle.unref();
- }
- break;
- case "FILE":
- var fs4 = require("fs");
- stream2 = new fs4.SyncWriteStream(fd2, { autoClose: false });
- stream2._type = "fs";
- break;
- case "PIPE":
- case "TCP":
- var net = require("net");
- stream2 = new net.Socket({
- fd: fd2,
- readable: false,
- writable: true
- });
- stream2.readable = false;
- stream2.read = null;
- stream2._type = "pipe";
- if (stream2._handle && stream2._handle.unref) {
- stream2._handle.unref();
- }
- break;
- default:
- throw new Error("Implement me. Unknown stream file type!");
- }
- stream2.fd = fd2;
- stream2._isStdio = true;
- return stream2;
- }
- function init(debug) {
- debug.inspectOpts = {};
- var keys = Object.keys(exports2.inspectOpts);
- for (var i = 0; i < keys.length; i++) {
- debug.inspectOpts[keys[i]] = exports2.inspectOpts[keys[i]];
- }
- }
- exports2.enable(load());
- }
- });
- // node_modules/express-session/node_modules/debug/src/index.js
- var require_src2 = __commonJS({
- "node_modules/express-session/node_modules/debug/src/index.js"(exports2, module2) {
- if (typeof process !== "undefined" && process.type === "renderer") {
- module2.exports = require_browser2();
- } else {
- module2.exports = require_node2();
- }
- }
- });
- // node_modules/on-headers/index.js
- var require_on_headers = __commonJS({
- "node_modules/on-headers/index.js"(exports2, module2) {
- "use strict";
- module2.exports = onHeaders;
- var http2 = require("http");
- var isAppendHeaderSupported = typeof http2.ServerResponse.prototype.appendHeader === "function";
- var set1dArray = isAppendHeaderSupported ? set1dArrayWithAppend : set1dArrayWithSet;
- function createWriteHead(prevWriteHead, listener) {
- var fired = false;
- return function writeHead(statusCode) {
- var args = setWriteHeadHeaders.apply(this, arguments);
- if (!fired) {
- fired = true;
- listener.call(this);
- if (typeof args[0] === "number" && this.statusCode !== args[0]) {
- args[0] = this.statusCode;
- args.length = 1;
- }
- }
- return prevWriteHead.apply(this, args);
- };
- }
- function onHeaders(res, listener) {
- if (!res) {
- throw new TypeError("argument res is required");
- }
- if (typeof listener !== "function") {
- throw new TypeError("argument listener must be a function");
- }
- res.writeHead = createWriteHead(res.writeHead, listener);
- }
- function setHeadersFromArray(res, headers) {
- if (headers.length && Array.isArray(headers[0])) {
- set2dArray(res, headers);
- } else {
- if (headers.length % 2 !== 0) {
- throw new TypeError("headers array is malformed");
- }
- set1dArray(res, headers);
- }
- }
- function setHeadersFromObject(res, headers) {
- var keys = Object.keys(headers);
- for (var i = 0; i < keys.length; i++) {
- var k = keys[i];
- if (k) res.setHeader(k, headers[k]);
- }
- }
- function setWriteHeadHeaders(statusCode) {
- var length = arguments.length;
- var headerIndex = length > 1 && typeof arguments[1] === "string" ? 2 : 1;
- var headers = length >= headerIndex + 1 ? arguments[headerIndex] : void 0;
- this.statusCode = statusCode;
- if (Array.isArray(headers)) {
- setHeadersFromArray(this, headers);
- } else if (headers) {
- setHeadersFromObject(this, headers);
- }
- var args = new Array(Math.min(length, headerIndex));
- for (var i = 0; i < args.length; i++) {
- args[i] = arguments[i];
- }
- return args;
- }
- function set2dArray(res, headers) {
- var key;
- for (var i = 0; i < headers.length; i++) {
- key = headers[i][0];
- if (key) {
- res.setHeader(key, headers[i][1]);
- }
- }
- }
- function set1dArrayWithAppend(res, headers) {
- for (var i = 0; i < headers.length; i += 2) {
- res.removeHeader(headers[i]);
- }
- var key;
- for (var j = 0; j < headers.length; j += 2) {
- key = headers[j];
- if (key) {
- res.appendHeader(key, headers[j + 1]);
- }
- }
- }
- function set1dArrayWithSet(res, headers) {
- var key;
- for (var i = 0; i < headers.length; i += 2) {
- key = headers[i];
- if (key) {
- res.setHeader(key, headers[i + 1]);
- }
- }
- }
- }
- });
- // node_modules/cookie-signature/index.js
- var require_cookie_signature2 = __commonJS({
- "node_modules/cookie-signature/index.js"(exports2) {
- var crypto2 = require("crypto");
- exports2.sign = function(val, secret) {
- if ("string" !== typeof val) throw new TypeError("Cookie value must be provided as a string.");
- if (null == secret) throw new TypeError("Secret key must be provided.");
- return val + "." + crypto2.createHmac("sha256", secret).update(val).digest("base64").replace(/\=+$/, "");
- };
- exports2.unsign = function(val, secret) {
- if ("string" !== typeof val) throw new TypeError("Signed cookie string must be provided.");
- if (null == secret) throw new TypeError("Secret key must be provided.");
- var str = val.slice(0, val.lastIndexOf(".")), mac = exports2.sign(str, secret);
- return sha1(mac) == sha1(val) ? str : false;
- };
- function sha1(str) {
- return crypto2.createHash("sha1").update(str).digest("hex");
- }
- }
- });
- // node_modules/random-bytes/index.js
- var require_random_bytes = __commonJS({
- "node_modules/random-bytes/index.js"(exports2, module2) {
- "use strict";
- var crypto2 = require("crypto");
- var generateAttempts = crypto2.randomBytes === crypto2.pseudoRandomBytes ? 1 : 3;
- module2.exports = randomBytes;
- module2.exports.sync = randomBytesSync;
- function randomBytes(size, callback) {
- if (callback !== void 0 && typeof callback !== "function") {
- throw new TypeError("argument callback must be a function");
- }
- if (!callback && !global.Promise) {
- throw new TypeError("argument callback is required");
- }
- if (callback) {
- return generateRandomBytes(size, generateAttempts, callback);
- }
- return new Promise(function executor(resolve, reject) {
- generateRandomBytes(size, generateAttempts, function onRandomBytes(err, str) {
- if (err) return reject(err);
- resolve(str);
- });
- });
- }
- function randomBytesSync(size) {
- var err = null;
- for (var i = 0; i < generateAttempts; i++) {
- try {
- return crypto2.randomBytes(size);
- } catch (e) {
- err = e;
- }
- }
- throw err;
- }
- function generateRandomBytes(size, attempts, callback) {
- crypto2.randomBytes(size, function onRandomBytes(err, buf) {
- if (!err) return callback(null, buf);
- if (!--attempts) return callback(err);
- setTimeout(generateRandomBytes.bind(null, size, attempts, callback), 10);
- });
- }
- }
- });
- // node_modules/uid-safe/index.js
- var require_uid_safe = __commonJS({
- "node_modules/uid-safe/index.js"(exports2, module2) {
- "use strict";
- var randomBytes = require_random_bytes();
- var EQUAL_END_REGEXP = /=+$/;
- var PLUS_GLOBAL_REGEXP = /\+/g;
- var SLASH_GLOBAL_REGEXP = /\//g;
- module2.exports = uid;
- module2.exports.sync = uidSync;
- function uid(length, callback) {
- if (callback !== void 0 && typeof callback !== "function") {
- throw new TypeError("argument callback must be a function");
- }
- if (!callback && !global.Promise) {
- throw new TypeError("argument callback is required");
- }
- if (callback) {
- return generateUid(length, callback);
- }
- return new Promise(function executor(resolve, reject) {
- generateUid(length, function onUid(err, str) {
- if (err) return reject(err);
- resolve(str);
- });
- });
- }
- function uidSync(length) {
- return toString2(randomBytes.sync(length));
- }
- function generateUid(length, callback) {
- randomBytes(length, function(err, buf) {
- if (err) return callback(err);
- callback(null, toString2(buf));
- });
- }
- function toString2(buf) {
- return buf.toString("base64").replace(EQUAL_END_REGEXP, "").replace(PLUS_GLOBAL_REGEXP, "-").replace(SLASH_GLOBAL_REGEXP, "_");
- }
- }
- });
- // node_modules/express-session/session/cookie.js
- var require_cookie2 = __commonJS({
- "node_modules/express-session/session/cookie.js"(exports2, module2) {
- "use strict";
- var cookie = require_cookie();
- var deprecate = require_depd()("express-session");
- var Cookie = module2.exports = function Cookie2(options) {
- this.path = "/";
- this.maxAge = null;
- this.httpOnly = true;
- if (options) {
- if (typeof options !== "object") {
- throw new TypeError("argument options must be a object");
- }
- for (var key in options) {
- if (key !== "data") {
- this[key] = options[key];
- }
- }
- }
- if (this.originalMaxAge === void 0 || this.originalMaxAge === null) {
- this.originalMaxAge = this.maxAge;
- }
- };
- Cookie.prototype = {
- /**
- * Set expires `date`.
- *
- * @param {Date} date
- * @api public
- */
- set expires(date) {
- this._expires = date;
- this.originalMaxAge = this.maxAge;
- },
- /**
- * Get expires `date`.
- *
- * @return {Date}
- * @api public
- */
- get expires() {
- return this._expires;
- },
- /**
- * Set expires via max-age in `ms`.
- *
- * @param {Number} ms
- * @api public
- */
- set maxAge(ms) {
- if (ms && typeof ms !== "number" && !(ms instanceof Date)) {
- throw new TypeError("maxAge must be a number or Date");
- }
- if (ms instanceof Date) {
- deprecate("maxAge as Date; pass number of milliseconds instead");
- }
- this.expires = typeof ms === "number" ? new Date(Date.now() + ms) : ms;
- },
- /**
- * Get expires max-age in `ms`.
- *
- * @return {Number}
- * @api public
- */
- get maxAge() {
- return this.expires instanceof Date ? this.expires.valueOf() - Date.now() : this.expires;
- },
- /**
- * Return cookie data object.
- *
- * @return {Object}
- * @api private
- */
- get data() {
- return {
- originalMaxAge: this.originalMaxAge,
- partitioned: this.partitioned,
- priority: this.priority,
- expires: this._expires,
- secure: this.secure,
- httpOnly: this.httpOnly,
- domain: this.domain,
- path: this.path,
- sameSite: this.sameSite
- };
- },
- /**
- * Return a serialized cookie string.
- *
- * @return {String}
- * @api public
- */
- serialize: function(name, val) {
- return cookie.serialize(name, val, this.data);
- },
- /**
- * Return JSON representation of this cookie.
- *
- * @return {Object}
- * @api private
- */
- toJSON: function() {
- return this.data;
- }
- };
- }
- });
- // node_modules/express-session/session/session.js
- var require_session = __commonJS({
- "node_modules/express-session/session/session.js"(exports2, module2) {
- "use strict";
- module2.exports = Session;
- function Session(req, data) {
- Object.defineProperty(this, "req", { value: req });
- Object.defineProperty(this, "id", { value: req.sessionID });
- if (typeof data === "object" && data !== null) {
- for (var prop in data) {
- if (!(prop in this)) {
- this[prop] = data[prop];
- }
- }
- }
- }
- defineMethod(Session.prototype, "touch", function touch() {
- return this.resetMaxAge();
- });
- defineMethod(Session.prototype, "resetMaxAge", function resetMaxAge() {
- this.cookie.maxAge = this.cookie.originalMaxAge;
- return this;
- });
- defineMethod(Session.prototype, "save", function save(fn) {
- this.req.sessionStore.set(this.id, this, fn || function() {
- });
- return this;
- });
- defineMethod(Session.prototype, "reload", function reload(fn) {
- var req = this.req;
- var store = this.req.sessionStore;
- store.get(this.id, function(err, sess) {
- if (err) return fn(err);
- if (!sess) return fn(new Error("failed to load session"));
- store.createSession(req, sess);
- fn();
- });
- return this;
- });
- defineMethod(Session.prototype, "destroy", function destroy(fn) {
- delete this.req.session;
- this.req.sessionStore.destroy(this.id, fn);
- return this;
- });
- defineMethod(Session.prototype, "regenerate", function regenerate(fn) {
- this.req.sessionStore.regenerate(this.req, fn);
- return this;
- });
- function defineMethod(obj, name, fn) {
- Object.defineProperty(obj, name, {
- configurable: true,
- enumerable: false,
- value: fn,
- writable: true
- });
- }
- }
- });
- // node_modules/express-session/session/store.js
- var require_store = __commonJS({
- "node_modules/express-session/session/store.js"(exports2, module2) {
- "use strict";
- var Cookie = require_cookie2();
- var EventEmitter = require("events").EventEmitter;
- var Session = require_session();
- var util = require("util");
- module2.exports = Store;
- function Store() {
- EventEmitter.call(this);
- }
- util.inherits(Store, EventEmitter);
- Store.prototype.regenerate = function(req, fn) {
- var self2 = this;
- this.destroy(req.sessionID, function(err) {
- self2.generate(req);
- fn(err);
- });
- };
- Store.prototype.load = function(sid, fn) {
- var self2 = this;
- this.get(sid, function(err, sess) {
- if (err) return fn(err);
- if (!sess) return fn();
- var req = { sessionID: sid, sessionStore: self2 };
- fn(null, self2.createSession(req, sess));
- });
- };
- Store.prototype.createSession = function(req, sess) {
- var expires = sess.cookie.expires;
- var originalMaxAge = sess.cookie.originalMaxAge;
- sess.cookie = new Cookie(sess.cookie);
- if (typeof expires === "string") {
- sess.cookie.expires = new Date(expires);
- }
- sess.cookie.originalMaxAge = originalMaxAge;
- req.session = new Session(req, sess);
- return req.session;
- };
- }
- });
- // node_modules/express-session/session/memory.js
- var require_memory = __commonJS({
- "node_modules/express-session/session/memory.js"(exports2, module2) {
- "use strict";
- var Store = require_store();
- var util = require("util");
- var defer = typeof setImmediate === "function" ? setImmediate : function(fn) {
- process.nextTick(fn.bind.apply(fn, arguments));
- };
- module2.exports = MemoryStore;
- function MemoryStore() {
- Store.call(this);
- this.sessions = /* @__PURE__ */ Object.create(null);
- }
- util.inherits(MemoryStore, Store);
- MemoryStore.prototype.all = function all(callback) {
- var sessionIds = Object.keys(this.sessions);
- var sessions = /* @__PURE__ */ Object.create(null);
- for (var i = 0; i < sessionIds.length; i++) {
- var sessionId = sessionIds[i];
- var session2 = getSession.call(this, sessionId);
- if (session2) {
- sessions[sessionId] = session2;
- }
- }
- callback && defer(callback, null, sessions);
- };
- MemoryStore.prototype.clear = function clear(callback) {
- this.sessions = /* @__PURE__ */ Object.create(null);
- callback && defer(callback);
- };
- MemoryStore.prototype.destroy = function destroy(sessionId, callback) {
- delete this.sessions[sessionId];
- callback && defer(callback);
- };
- MemoryStore.prototype.get = function get(sessionId, callback) {
- defer(callback, null, getSession.call(this, sessionId));
- };
- MemoryStore.prototype.set = function set(sessionId, session2, callback) {
- this.sessions[sessionId] = JSON.stringify(session2);
- callback && defer(callback);
- };
- MemoryStore.prototype.length = function length(callback) {
- this.all(function(err, sessions) {
- if (err) return callback(err);
- callback(null, Object.keys(sessions).length);
- });
- };
- MemoryStore.prototype.touch = function touch(sessionId, session2, callback) {
- var currentSession = getSession.call(this, sessionId);
- if (currentSession) {
- currentSession.cookie = session2.cookie;
- this.sessions[sessionId] = JSON.stringify(currentSession);
- }
- callback && defer(callback);
- };
- function getSession(sessionId) {
- var sess = this.sessions[sessionId];
- if (!sess) {
- return;
- }
- sess = JSON.parse(sess);
- if (sess.cookie) {
- var expires = typeof sess.cookie.expires === "string" ? new Date(sess.cookie.expires) : sess.cookie.expires;
- if (expires && expires <= Date.now()) {
- delete this.sessions[sessionId];
- return;
- }
- }
- return sess;
- }
- }
- });
- // node_modules/express-session/index.js
- var require_express_session = __commonJS({
- "node_modules/express-session/index.js"(exports2, module2) {
- "use strict";
- var Buffer2 = require_safe_buffer().Buffer;
- var cookie = require_cookie();
- var crypto2 = require("crypto");
- var debug = require_src2()("express-session");
- var deprecate = require_depd()("express-session");
- var onHeaders = require_on_headers();
- var parseUrl = require_parseurl();
- var signature = require_cookie_signature2();
- var uid = require_uid_safe().sync;
- var Cookie = require_cookie2();
- var MemoryStore = require_memory();
- var Session = require_session();
- var Store = require_store();
- var env = process.env.NODE_ENV;
- exports2 = module2.exports = session2;
- exports2.Store = Store;
- exports2.Cookie = Cookie;
- exports2.Session = Session;
- exports2.MemoryStore = MemoryStore;
- var warning = "Warning: connect.session() MemoryStore is not\ndesigned for a production environment, as it will leak\nmemory, and will not scale past a single process.";
- var defer = typeof setImmediate === "function" ? setImmediate : function(fn) {
- process.nextTick(fn.bind.apply(fn, arguments));
- };
- function session2(options) {
- var opts = options || {};
- var cookieOptions = opts.cookie || {};
- var generateId = opts.genid || generateSessionId;
- var name = opts.name || opts.key || "connect.sid";
- var store = opts.store || new MemoryStore();
- var trustProxy = opts.proxy;
- var resaveSession = opts.resave;
- var rollingSessions = Boolean(opts.rolling);
- var saveUninitializedSession = opts.saveUninitialized;
- var secret = opts.secret;
- if (typeof generateId !== "function") {
- throw new TypeError("genid option must be a function");
- }
- if (resaveSession === void 0) {
- deprecate("undefined resave option; provide resave option");
- resaveSession = true;
- }
- if (saveUninitializedSession === void 0) {
- deprecate("undefined saveUninitialized option; provide saveUninitialized option");
- saveUninitializedSession = true;
- }
- if (opts.unset && opts.unset !== "destroy" && opts.unset !== "keep") {
- throw new TypeError('unset option must be "destroy" or "keep"');
- }
- var unsetDestroy = opts.unset === "destroy";
- if (Array.isArray(secret) && secret.length === 0) {
- throw new TypeError("secret option array must contain one or more strings");
- }
- if (secret && !Array.isArray(secret)) {
- secret = [secret];
- }
- if (!secret) {
- deprecate("req.secret; provide secret option");
- }
- if (env === "production" && store instanceof MemoryStore) {
- console.warn(warning);
- }
- store.generate = function(req) {
- req.sessionID = generateId(req);
- req.session = new Session(req);
- req.session.cookie = new Cookie(typeof cookieOptions === "function" ? cookieOptions(req) : cookieOptions);
- var isSecure = issecure(req, trustProxy);
- if (cookieOptions.secure === "auto") {
- req.session.cookie.secure = isSecure;
- }
- if (cookieOptions.sameSite === "auto") {
- req.session.cookie.sameSite = isSecure ? "none" : "lax";
- }
- };
- var storeImplementsTouch = typeof store.touch === "function";
- var storeReady = true;
- store.on("disconnect", function ondisconnect() {
- storeReady = false;
- });
- store.on("connect", function onconnect() {
- storeReady = true;
- });
- return function session3(req, res, next) {
- if (req.session) {
- next();
- return;
- }
- if (!storeReady) {
- debug("store is disconnected");
- next();
- return;
- }
- var originalPath = parseUrl.original(req).pathname || "/";
- var resolvedCookieOptions = typeof cookieOptions === "function" ? cookieOptions(req) : cookieOptions;
- if (originalPath.indexOf(resolvedCookieOptions.path || "/") !== 0) {
- debug("pathname mismatch");
- next();
- return;
- }
- if (!secret && !req.secret) {
- next(new Error("secret option required for sessions"));
- return;
- }
- var secrets = secret || [req.secret];
- var originalHash;
- var originalId;
- var savedHash;
- var touched = false;
- req.sessionStore = store;
- var cookieId = req.sessionID = getcookie(req, name, secrets);
- onHeaders(res, function() {
- if (!req.session) {
- debug("no session");
- return;
- }
- if (!shouldSetCookie(req)) {
- return;
- }
- if (req.session.cookie.secure && !issecure(req, trustProxy)) {
- debug("not secured");
- return;
- }
- if (!touched) {
- req.session.touch();
- touched = true;
- }
- try {
- setcookie(res, name, req.sessionID, secrets[0], req.session.cookie.data);
- } catch (err) {
- defer(next, err);
- }
- });
- var _end = res.end;
- var _write = res.write;
- var ended = false;
- res.end = function end(chunk, encoding) {
- if (ended) {
- return false;
- }
- ended = true;
- var ret;
- var sync = true;
- function writeend() {
- if (sync) {
- ret = _end.call(res, chunk, encoding);
- sync = false;
- return;
- }
- _end.call(res);
- }
- function writetop() {
- if (!sync) {
- return ret;
- }
- if (!res._header) {
- res._implicitHeader();
- }
- if (chunk == null) {
- ret = true;
- return ret;
- }
- var contentLength = Number(res.getHeader("Content-Length"));
- if (!isNaN(contentLength) && contentLength > 0) {
- chunk = !Buffer2.isBuffer(chunk) ? Buffer2.from(chunk, encoding) : chunk;
- encoding = void 0;
- if (chunk.length !== 0) {
- debug("split response");
- ret = _write.call(res, chunk.slice(0, chunk.length - 1));
- chunk = chunk.slice(chunk.length - 1, chunk.length);
- return ret;
- }
- }
- ret = _write.call(res, chunk, encoding);
- sync = false;
- return ret;
- }
- if (shouldDestroy(req)) {
- debug("destroying");
- store.destroy(req.sessionID, function ondestroy(err) {
- if (err) {
- defer(next, err);
- }
- debug("destroyed");
- writeend();
- });
- return writetop();
- }
- if (!req.session) {
- debug("no session");
- return _end.call(res, chunk, encoding);
- }
- if (!touched) {
- req.session.touch();
- touched = true;
- }
- if (shouldSave(req)) {
- req.session.save(function onsave(err) {
- if (err) {
- defer(next, err);
- }
- writeend();
- });
- return writetop();
- } else if (storeImplementsTouch && shouldTouch(req)) {
- debug("touching");
- store.touch(req.sessionID, req.session, function ontouch(err) {
- if (err) {
- defer(next, err);
- }
- debug("touched");
- writeend();
- });
- return writetop();
- }
- return _end.call(res, chunk, encoding);
- };
- function generate() {
- store.generate(req);
- originalId = req.sessionID;
- originalHash = hash(req.session);
- wrapmethods(req.session);
- }
- function inflate(req2, sess) {
- store.createSession(req2, sess);
- originalId = req2.sessionID;
- originalHash = hash(sess);
- if (!resaveSession) {
- savedHash = originalHash;
- }
- wrapmethods(req2.session);
- }
- function rewrapmethods(sess, callback) {
- return function() {
- if (req.session !== sess) {
- wrapmethods(req.session);
- }
- callback.apply(this, arguments);
- };
- }
- function wrapmethods(sess) {
- var _reload = sess.reload;
- var _save = sess.save;
- function reload(callback) {
- debug("reloading %s", this.id);
- _reload.call(this, rewrapmethods(this, callback));
- }
- function save() {
- debug("saving %s", this.id);
- savedHash = hash(this);
- _save.apply(this, arguments);
- }
- Object.defineProperty(sess, "reload", {
- configurable: true,
- enumerable: false,
- value: reload,
- writable: true
- });
- Object.defineProperty(sess, "save", {
- configurable: true,
- enumerable: false,
- value: save,
- writable: true
- });
- }
- function isModified(sess) {
- return originalId !== sess.id || originalHash !== hash(sess);
- }
- function isSaved(sess) {
- return originalId === sess.id && savedHash === hash(sess);
- }
- function shouldDestroy(req2) {
- return req2.sessionID && unsetDestroy && req2.session == null;
- }
- function shouldSave(req2) {
- if (typeof req2.sessionID !== "string") {
- debug("session ignored because of bogus req.sessionID %o", req2.sessionID);
- return false;
- }
- return !saveUninitializedSession && !savedHash && cookieId !== req2.sessionID ? isModified(req2.session) : !isSaved(req2.session);
- }
- function shouldTouch(req2) {
- if (typeof req2.sessionID !== "string") {
- debug("session ignored because of bogus req.sessionID %o", req2.sessionID);
- return false;
- }
- return cookieId === req2.sessionID && !shouldSave(req2);
- }
- function shouldSetCookie(req2) {
- if (typeof req2.sessionID !== "string") {
- return false;
- }
- return cookieId !== req2.sessionID ? saveUninitializedSession || isModified(req2.session) : rollingSessions || req2.session.cookie.expires != null && isModified(req2.session);
- }
- if (!req.sessionID) {
- debug("no SID sent, generating session");
- generate();
- next();
- return;
- }
- debug("fetching %s", req.sessionID);
- store.get(req.sessionID, function(err, sess) {
- if (err && err.code !== "ENOENT") {
- debug("error %j", err);
- next(err);
- return;
- }
- try {
- if (err || !sess) {
- debug("no session found");
- generate();
- } else {
- debug("session found");
- inflate(req, sess);
- }
- } catch (e) {
- next(e);
- return;
- }
- next();
- });
- };
- }
- function generateSessionId() {
- return uid(24);
- }
- function getcookie(req, name, secrets) {
- var header = req.headers.cookie;
- var raw;
- var val;
- if (header) {
- var cookies = cookie.parse(header);
- raw = cookies[name];
- if (raw) {
- if (raw.substr(0, 2) === "s:") {
- val = unsigncookie(raw.slice(2), secrets);
- if (val === false) {
- debug("cookie signature invalid");
- val = void 0;
- }
- } else {
- debug("cookie unsigned");
- }
- }
- }
- if (!val && req.signedCookies) {
- val = req.signedCookies[name];
- if (val) {
- deprecate("cookie should be available in req.headers.cookie");
- }
- }
- if (!val && req.cookies) {
- raw = req.cookies[name];
- if (raw) {
- if (raw.substr(0, 2) === "s:") {
- val = unsigncookie(raw.slice(2), secrets);
- if (val) {
- deprecate("cookie should be available in req.headers.cookie");
- }
- if (val === false) {
- debug("cookie signature invalid");
- val = void 0;
- }
- } else {
- debug("cookie unsigned");
- }
- }
- }
- return val;
- }
- function hash(sess) {
- var str = JSON.stringify(sess, function(key, val) {
- if (this === sess && key === "cookie") {
- return;
- }
- return val;
- });
- return crypto2.createHash("sha1").update(str, "utf8").digest("hex");
- }
- function issecure(req, trustProxy) {
- if (req.connection && req.connection.encrypted) {
- return true;
- }
- if (trustProxy === false) {
- return false;
- }
- if (trustProxy !== true) {
- return req.secure === true;
- }
- var header = req.headers["x-forwarded-proto"] || "";
- var index = header.indexOf(",");
- var proto = index !== -1 ? header.substr(0, index).toLowerCase().trim() : header.toLowerCase().trim();
- return proto === "https";
- }
- function setcookie(res, name, val, secret, options) {
- var signed = "s:" + signature.sign(val, secret);
- var data = cookie.serialize(name, signed, options);
- debug("set-cookie %s", data);
- var prev = res.getHeader("Set-Cookie") || [];
- var header = Array.isArray(prev) ? prev.concat(data) : [prev, data];
- res.setHeader("Set-Cookie", header);
- }
- function unsigncookie(val, secrets) {
- for (var i = 0; i < secrets.length; i++) {
- var result = signature.unsign(val, secrets[i]);
- if (result !== false) {
- return result;
- }
- }
- return false;
- }
- }
- });
- // node_modules/swagger-ui-dist/absolute-path.js
- var require_absolute_path = __commonJS({
- "node_modules/swagger-ui-dist/absolute-path.js"(exports2, module2) {
- var getAbsoluteFSPath = function() {
- if (typeof module2 !== "undefined" && module2.exports) {
- return require("path").resolve(__dirname);
- }
- throw new Error("getAbsoluteFSPath can only be called within a Nodejs environment");
- };
- module2.exports = getAbsoluteFSPath;
- }
- });
- // node_modules/swagger-ui-express/index.js
- var require_swagger_ui_express = __commonJS({
- "node_modules/swagger-ui-express/index.js"(exports2, module2) {
- "use strict";
- var express4 = require_express2();
- var getAbsoluteSwaggerFsPath = require_absolute_path();
- var favIconHtml = '<link rel="icon" type="image/png" href="./favicon-32x32.png" sizes="32x32" /><link rel="icon" type="image/png" href="./favicon-16x16.png" sizes="16x16" />';
- var swaggerInit = "";
- function trimQuery(q) {
- return q && q.split("?")[0];
- }
- var htmlTplString = `
- <!-- HTML for static distribution bundle build -->
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <% robotsMetaString %>
- <title><% title %></title>
- <link rel="stylesheet" type="text/css" href="./swagger-ui.css" >
- <% favIconString %>
- <style>
- html
- {
- box-sizing: border-box;
- overflow: -moz-scrollbars-vertical;
- overflow-y: scroll;
- }
- *,
- *:before,
- *:after
- {
- box-sizing: inherit;
- }
- body {
- margin:0;
- background: #fafafa;
- }
- </style>
- </head>
- <body>
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="position:absolute;width:0;height:0">
- <defs>
- <symbol viewBox="0 0 20 20" id="unlocked">
- <path d="M15.8 8H14V5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V6h2v-.801C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8z"></path>
- </symbol>
- <symbol viewBox="0 0 20 20" id="locked">
- <path d="M15.8 8H14V5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8zM12 8H8V5.199C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8z"/>
- </symbol>
- <symbol viewBox="0 0 20 20" id="close">
- <path d="M14.348 14.849c-.469.469-1.229.469-1.697 0L10 11.819l-2.651 3.029c-.469.469-1.229.469-1.697 0-.469-.469-.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-.469-.469-.469-1.228 0-1.697.469-.469 1.228-.469 1.697 0L10 8.183l2.651-3.031c.469-.469 1.228-.469 1.697 0 .469.469.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c.469.469.469 1.229 0 1.698z"/>
- </symbol>
- <symbol viewBox="0 0 20 20" id="large-arrow">
- <path d="M13.25 10L6.109 2.58c-.268-.27-.268-.707 0-.979.268-.27.701-.27.969 0l7.83 7.908c.268.271.268.709 0 .979l-7.83 7.908c-.268.271-.701.27-.969 0-.268-.269-.268-.707 0-.979L13.25 10z"/>
- </symbol>
- <symbol viewBox="0 0 20 20" id="large-arrow-down">
- <path d="M17.418 6.109c.272-.268.709-.268.979 0s.271.701 0 .969l-7.908 7.83c-.27.268-.707.268-.979 0l-7.908-7.83c-.27-.268-.27-.701 0-.969.271-.268.709-.268.979 0L10 13.25l7.418-7.141z"/>
- </symbol>
- <symbol viewBox="0 0 24 24" id="jump-to">
- <path d="M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z"/>
- </symbol>
- <symbol viewBox="0 0 24 24" id="expand">
- <path d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>
- </symbol>
- </defs>
- </svg>
- <div id="swagger-ui"></div>
- <script src="./swagger-ui-bundle.js"> </script>
- <script src="./swagger-ui-standalone-preset.js"> </script>
- <script src="./swagger-ui-init.js"> </script>
- <% customJs %>
- <% customJsStr %>
- <% customCssUrl %>
- <style>
- <% customCss %>
- </style>
- </body>
- </html>
- `;
- var jsTplString = `
- window.onload = function() {
- // Build a system
- var url = window.location.search.match(/url=([^&]+)/);
- if (url && url.length > 1) {
- url = decodeURIComponent(url[1]);
- } else {
- url = window.location.origin;
- }
- <% swaggerOptions %>
- url = options.swaggerUrl || url
- var urls = options.swaggerUrls
- var customOptions = options.customOptions
- var spec1 = options.swaggerDoc
- var swaggerOptions = {
- spec: spec1,
- url: url,
- urls: urls,
- dom_id: '#swagger-ui',
- deepLinking: true,
- presets: [
- SwaggerUIBundle.presets.apis,
- SwaggerUIStandalonePreset
- ],
- plugins: [
- SwaggerUIBundle.plugins.DownloadUrl
- ],
- layout: "StandaloneLayout"
- }
- for (var attrname in customOptions) {
- swaggerOptions[attrname] = customOptions[attrname];
- }
- var ui = SwaggerUIBundle(swaggerOptions)
- if (customOptions.oauth) {
- ui.initOAuth(customOptions.oauth)
- }
- if (customOptions.preauthorizeApiKey) {
- const key = customOptions.preauthorizeApiKey.authDefinitionKey;
- const value = customOptions.preauthorizeApiKey.apiKeyValue;
- if (!!key && !!value) {
- const pid = setInterval(() => {
- const authorized = ui.preauthorizeApiKey(key, value);
- if(!!authorized) clearInterval(pid);
- }, 500)
- }
- }
- if (customOptions.authAction) {
- ui.authActions.authorize(customOptions.authAction)
- }
- window.ui = ui
- }
- `;
- function toExternalScriptTag(url) {
- return `<script src='${url}'></script>`;
- }
- function toInlineScriptTag(jsCode) {
- return `<script>${jsCode}</script>`;
- }
- function toExternalStylesheetTag(url) {
- return `<link href='${url}' rel='stylesheet'>`;
- }
- function toTags(customCode, toScript) {
- if (typeof customCode === "string") {
- return toScript(customCode);
- } else if (Array.isArray(customCode)) {
- return customCode.map(toScript).join("\n");
- } else {
- return "";
- }
- }
- var generateHTML = function(swaggerDoc, opts, options, customCss, customfavIcon, swaggerUrl, customSiteTitle, _htmlTplString, _jsTplString) {
- var isExplorer;
- var customJs;
- var customJsStr;
- var swaggerUrls;
- var customCssUrl;
- var customRobots;
- if (opts && typeof opts === "object") {
- options = opts.swaggerOptions;
- customCss = opts.customCss;
- customJs = opts.customJs;
- customJsStr = opts.customJsStr;
- customfavIcon = opts.customfavIcon;
- customRobots = opts.customRobots;
- swaggerUrl = opts.swaggerUrl;
- swaggerUrls = opts.swaggerUrls;
- isExplorer = opts.explorer || !!swaggerUrls;
- customSiteTitle = opts.customSiteTitle;
- customCssUrl = opts.customCssUrl;
- } else {
- isExplorer = opts;
- }
- options = options || {};
- var explorerString = isExplorer ? "" : ".swagger-ui .topbar .download-url-wrapper { display: none }";
- customCss = explorerString + " " + customCss || explorerString;
- customfavIcon = customfavIcon || false;
- customSiteTitle = customSiteTitle || "Swagger UI";
- _htmlTplString = _htmlTplString || htmlTplString;
- _jsTplString = _jsTplString || jsTplString;
- var robotsMetaString = customRobots ? '<meta name="robots" content="' + customRobots + '" />' : "";
- var favIconString = customfavIcon ? '<link rel="icon" href="' + customfavIcon + '" />' : favIconHtml;
- var htmlWithCustomCss = _htmlTplString.toString().replace("<% customCss %>", customCss);
- var htmlWithCustomRobots = htmlWithCustomCss.replace("<% robotsMetaString %>", robotsMetaString);
- var htmlWithFavIcon = htmlWithCustomRobots.replace("<% favIconString %>", favIconString);
- var htmlWithCustomJsUrl = htmlWithFavIcon.replace("<% customJs %>", toTags(customJs, toExternalScriptTag));
- var htmlWithCustomJs = htmlWithCustomJsUrl.replace("<% customJsStr %>", toTags(customJsStr, toInlineScriptTag));
- var htmlWithCustomCssUrl = htmlWithCustomJs.replace("<% customCssUrl %>", toTags(customCssUrl, toExternalStylesheetTag));
- var initOptions = {
- swaggerDoc: swaggerDoc || void 0,
- customOptions: options,
- swaggerUrl: swaggerUrl || void 0,
- swaggerUrls: swaggerUrls || void 0
- };
- swaggerInit = _jsTplString.toString().replace("<% swaggerOptions %>", stringify(initOptions));
- return htmlWithCustomCssUrl.replace("<% title %>", customSiteTitle);
- };
- var setup = function(swaggerDoc, opts, options, customCss, customfavIcon, swaggerUrl, customSiteTitle) {
- var html = generateHTML(swaggerDoc, opts, options, customCss, customfavIcon, swaggerUrl, customSiteTitle, htmlTplString, jsTplString);
- return function(req, res) {
- if (req.swaggerDoc) {
- var reqHtml = generateHTML(req.swaggerDoc, opts, options, customCss, customfavIcon, swaggerUrl, customSiteTitle, htmlTplString, jsTplString);
- res.send(reqHtml);
- } else {
- res.send(html);
- }
- };
- };
- function swaggerInitFn(req, res, next) {
- if (trimQuery(req.url).endsWith("/package.json")) {
- res.sendStatus(404);
- } else if (trimQuery(req.url).endsWith("/swagger-ui-init.js")) {
- res.set("Content-Type", "application/javascript");
- res.send(swaggerInit);
- } else {
- next();
- }
- }
- var swaggerInitFunction = function(swaggerDoc, opts) {
- var swaggerInitFile = jsTplString.toString().replace("<% swaggerOptions %>", stringify(opts));
- return function(req, res, next) {
- if (trimQuery(req.url).endsWith("/package.json")) {
- res.sendStatus(404);
- } else if (trimQuery(req.url).endsWith("/swagger-ui-init.js")) {
- if (req.swaggerDoc) {
- opts.swaggerDoc = req.swaggerDoc;
- swaggerInitFile = jsTplString.toString().replace("<% swaggerOptions %>", stringify(opts));
- }
- res.set("Content-Type", "application/javascript");
- res.send(swaggerInitFile);
- } else {
- next();
- }
- };
- };
- var swaggerAssetMiddleware = (options) => {
- var opts = options || {};
- opts.index = false;
- return express4.static(getAbsoluteSwaggerFsPath(), opts);
- };
- var serveFiles = function(swaggerDoc, opts) {
- opts = opts || {};
- var initOptions = {
- swaggerDoc: swaggerDoc || void 0,
- customOptions: opts.swaggerOptions || {},
- swaggerUrl: opts.swaggerUrl || {},
- swaggerUrls: opts.swaggerUrls || void 0
- };
- var swaggerInitWithOpts = swaggerInitFunction(swaggerDoc, initOptions);
- return [swaggerInitWithOpts, swaggerAssetMiddleware()];
- };
- var serve = [swaggerInitFn, swaggerAssetMiddleware()];
- var serveWithOptions = (options) => [swaggerInitFn, swaggerAssetMiddleware(options)];
- var stringify = function(obj, prop) {
- var placeholder = "____FUNCTIONPLACEHOLDER____";
- var fns = [];
- var json = JSON.stringify(obj, function(key, value) {
- if (typeof value === "function") {
- fns.push(value);
- return placeholder;
- }
- return value;
- }, 2);
- json = json.replace(new RegExp('"' + placeholder + '"', "g"), function(_) {
- return fns.shift();
- });
- return "var options = " + json + ";";
- };
- module2.exports = {
- setup,
- serve,
- serveWithOptions,
- generateHTML,
- serveFiles
- };
- }
- });
- // node_modules/esutils/lib/ast.js
- var require_ast = __commonJS({
- "node_modules/esutils/lib/ast.js"(exports2, module2) {
- (function() {
- "use strict";
- function isExpression(node) {
- if (node == null) {
- return false;
- }
- switch (node.type) {
- case "ArrayExpression":
- case "AssignmentExpression":
- case "BinaryExpression":
- case "CallExpression":
- case "ConditionalExpression":
- case "FunctionExpression":
- case "Identifier":
- case "Literal":
- case "LogicalExpression":
- case "MemberExpression":
- case "NewExpression":
- case "ObjectExpression":
- case "SequenceExpression":
- case "ThisExpression":
- case "UnaryExpression":
- case "UpdateExpression":
- return true;
- }
- return false;
- }
- function isIterationStatement(node) {
- if (node == null) {
- return false;
- }
- switch (node.type) {
- case "DoWhileStatement":
- case "ForInStatement":
- case "ForStatement":
- case "WhileStatement":
- return true;
- }
- return false;
- }
- function isStatement(node) {
- if (node == null) {
- return false;
- }
- switch (node.type) {
- case "BlockStatement":
- case "BreakStatement":
- case "ContinueStatement":
- case "DebuggerStatement":
- case "DoWhileStatement":
- case "EmptyStatement":
- case "ExpressionStatement":
- case "ForInStatement":
- case "ForStatement":
- case "IfStatement":
- case "LabeledStatement":
- case "ReturnStatement":
- case "SwitchStatement":
- case "ThrowStatement":
- case "TryStatement":
- case "VariableDeclaration":
- case "WhileStatement":
- case "WithStatement":
- return true;
- }
- return false;
- }
- function isSourceElement(node) {
- return isStatement(node) || node != null && node.type === "FunctionDeclaration";
- }
- function trailingStatement(node) {
- switch (node.type) {
- case "IfStatement":
- if (node.alternate != null) {
- return node.alternate;
- }
- return node.consequent;
- case "LabeledStatement":
- case "ForStatement":
- case "ForInStatement":
- case "WhileStatement":
- case "WithStatement":
- return node.body;
- }
- return null;
- }
- function isProblematicIfStatement(node) {
- var current;
- if (node.type !== "IfStatement") {
- return false;
- }
- if (node.alternate == null) {
- return false;
- }
- current = node.consequent;
- do {
- if (current.type === "IfStatement") {
- if (current.alternate == null) {
- return true;
- }
- }
- current = trailingStatement(current);
- } while (current);
- return false;
- }
- module2.exports = {
- isExpression,
- isStatement,
- isIterationStatement,
- isSourceElement,
- isProblematicIfStatement,
- trailingStatement
- };
- })();
- }
- });
- // node_modules/esutils/lib/code.js
- var require_code = __commonJS({
- "node_modules/esutils/lib/code.js"(exports2, module2) {
- (function() {
- "use strict";
- var ES6Regex, ES5Regex, NON_ASCII_WHITESPACES, IDENTIFIER_START, IDENTIFIER_PART, ch;
- ES5Regex = {
- // ECMAScript 5.1/Unicode v9.0.0 NonAsciiIdentifierStart:
- NonAsciiIdentifierStart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,
- // ECMAScript 5.1/Unicode v9.0.0 NonAsciiIdentifierPart:
- NonAsciiIdentifierPart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/
- };
- ES6Regex = {
- // ECMAScript 6/Unicode v9.0.0 NonAsciiIdentifierStart:
- NonAsciiIdentifierStart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,
- // ECMAScript 6/Unicode v9.0.0 NonAsciiIdentifierPart:
- NonAsciiIdentifierPart: /[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/
- };
- function isDecimalDigit(ch2) {
- return 48 <= ch2 && ch2 <= 57;
- }
- function isHexDigit(ch2) {
- return 48 <= ch2 && ch2 <= 57 || // 0..9
- 97 <= ch2 && ch2 <= 102 || // a..f
- 65 <= ch2 && ch2 <= 70;
- }
- function isOctalDigit(ch2) {
- return ch2 >= 48 && ch2 <= 55;
- }
- NON_ASCII_WHITESPACES = [
- 5760,
- 8192,
- 8193,
- 8194,
- 8195,
- 8196,
- 8197,
- 8198,
- 8199,
- 8200,
- 8201,
- 8202,
- 8239,
- 8287,
- 12288,
- 65279
- ];
- function isWhiteSpace(ch2) {
- return ch2 === 32 || ch2 === 9 || ch2 === 11 || ch2 === 12 || ch2 === 160 || ch2 >= 5760 && NON_ASCII_WHITESPACES.indexOf(ch2) >= 0;
- }
- function isLineTerminator(ch2) {
- return ch2 === 10 || ch2 === 13 || ch2 === 8232 || ch2 === 8233;
- }
- function fromCodePoint(cp) {
- if (cp <= 65535) {
- return String.fromCharCode(cp);
- }
- var cu1 = String.fromCharCode(Math.floor((cp - 65536) / 1024) + 55296);
- var cu2 = String.fromCharCode((cp - 65536) % 1024 + 56320);
- return cu1 + cu2;
- }
- IDENTIFIER_START = new Array(128);
- for (ch = 0; ch < 128; ++ch) {
- IDENTIFIER_START[ch] = ch >= 97 && ch <= 122 || // a..z
- ch >= 65 && ch <= 90 || // A..Z
- ch === 36 || ch === 95;
- }
- IDENTIFIER_PART = new Array(128);
- for (ch = 0; ch < 128; ++ch) {
- IDENTIFIER_PART[ch] = ch >= 97 && ch <= 122 || // a..z
- ch >= 65 && ch <= 90 || // A..Z
- ch >= 48 && ch <= 57 || // 0..9
- ch === 36 || ch === 95;
- }
- function isIdentifierStartES5(ch2) {
- return ch2 < 128 ? IDENTIFIER_START[ch2] : ES5Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch2));
- }
- function isIdentifierPartES5(ch2) {
- return ch2 < 128 ? IDENTIFIER_PART[ch2] : ES5Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch2));
- }
- function isIdentifierStartES6(ch2) {
- return ch2 < 128 ? IDENTIFIER_START[ch2] : ES6Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch2));
- }
- function isIdentifierPartES6(ch2) {
- return ch2 < 128 ? IDENTIFIER_PART[ch2] : ES6Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch2));
- }
- module2.exports = {
- isDecimalDigit,
- isHexDigit,
- isOctalDigit,
- isWhiteSpace,
- isLineTerminator,
- isIdentifierStartES5,
- isIdentifierPartES5,
- isIdentifierStartES6,
- isIdentifierPartES6
- };
- })();
- }
- });
- // node_modules/esutils/lib/keyword.js
- var require_keyword = __commonJS({
- "node_modules/esutils/lib/keyword.js"(exports2, module2) {
- (function() {
- "use strict";
- var code = require_code();
- function isStrictModeReservedWordES6(id) {
- switch (id) {
- case "implements":
- case "interface":
- case "package":
- case "private":
- case "protected":
- case "public":
- case "static":
- case "let":
- return true;
- default:
- return false;
- }
- }
- function isKeywordES5(id, strict) {
- if (!strict && id === "yield") {
- return false;
- }
- return isKeywordES6(id, strict);
- }
- function isKeywordES6(id, strict) {
- if (strict && isStrictModeReservedWordES6(id)) {
- return true;
- }
- switch (id.length) {
- case 2:
- return id === "if" || id === "in" || id === "do";
- case 3:
- return id === "var" || id === "for" || id === "new" || id === "try";
- case 4:
- return id === "this" || id === "else" || id === "case" || id === "void" || id === "with" || id === "enum";
- case 5:
- return id === "while" || id === "break" || id === "catch" || id === "throw" || id === "const" || id === "yield" || id === "class" || id === "super";
- case 6:
- return id === "return" || id === "typeof" || id === "delete" || id === "switch" || id === "export" || id === "import";
- case 7:
- return id === "default" || id === "finally" || id === "extends";
- case 8:
- return id === "function" || id === "continue" || id === "debugger";
- case 10:
- return id === "instanceof";
- default:
- return false;
- }
- }
- function isReservedWordES5(id, strict) {
- return id === "null" || id === "true" || id === "false" || isKeywordES5(id, strict);
- }
- function isReservedWordES6(id, strict) {
- return id === "null" || id === "true" || id === "false" || isKeywordES6(id, strict);
- }
- function isRestrictedWord(id) {
- return id === "eval" || id === "arguments";
- }
- function isIdentifierNameES5(id) {
- var i, iz, ch;
- if (id.length === 0) {
- return false;
- }
- ch = id.charCodeAt(0);
- if (!code.isIdentifierStartES5(ch)) {
- return false;
- }
- for (i = 1, iz = id.length; i < iz; ++i) {
- ch = id.charCodeAt(i);
- if (!code.isIdentifierPartES5(ch)) {
- return false;
- }
- }
- return true;
- }
- function decodeUtf16(lead, trail) {
- return (lead - 55296) * 1024 + (trail - 56320) + 65536;
- }
- function isIdentifierNameES6(id) {
- var i, iz, ch, lowCh, check;
- if (id.length === 0) {
- return false;
- }
- check = code.isIdentifierStartES6;
- for (i = 0, iz = id.length; i < iz; ++i) {
- ch = id.charCodeAt(i);
- if (55296 <= ch && ch <= 56319) {
- ++i;
- if (i >= iz) {
- return false;
- }
- lowCh = id.charCodeAt(i);
- if (!(56320 <= lowCh && lowCh <= 57343)) {
- return false;
- }
- ch = decodeUtf16(ch, lowCh);
- }
- if (!check(ch)) {
- return false;
- }
- check = code.isIdentifierPartES6;
- }
- return true;
- }
- function isIdentifierES5(id, strict) {
- return isIdentifierNameES5(id) && !isReservedWordES5(id, strict);
- }
- function isIdentifierES6(id, strict) {
- return isIdentifierNameES6(id) && !isReservedWordES6(id, strict);
- }
- module2.exports = {
- isKeywordES5,
- isKeywordES6,
- isReservedWordES5,
- isReservedWordES6,
- isRestrictedWord,
- isIdentifierNameES5,
- isIdentifierNameES6,
- isIdentifierES5,
- isIdentifierES6
- };
- })();
- }
- });
- // node_modules/esutils/lib/utils.js
- var require_utils4 = __commonJS({
- "node_modules/esutils/lib/utils.js"(exports2) {
- (function() {
- "use strict";
- exports2.ast = require_ast();
- exports2.code = require_code();
- exports2.keyword = require_keyword();
- })();
- }
- });
- // node_modules/doctrine/package.json
- var require_package = __commonJS({
- "node_modules/doctrine/package.json"(exports2, module2) {
- module2.exports = {
- name: "doctrine",
- description: "JSDoc parser",
- homepage: "https://github.com/eslint/doctrine",
- main: "lib/doctrine.js",
- version: "3.0.0",
- engines: {
- node: ">=6.0.0"
- },
- directories: {
- lib: "./lib"
- },
- files: [
- "lib"
- ],
- maintainers: [
- {
- name: "Nicholas C. Zakas",
- email: "nicholas+npm@nczconsulting.com",
- web: "https://www.nczonline.net"
- },
- {
- name: "Yusuke Suzuki",
- email: "utatane.tea@gmail.com",
- web: "https://github.com/Constellation"
- }
- ],
- repository: "eslint/doctrine",
- devDependencies: {
- coveralls: "^3.0.1",
- dateformat: "^1.0.11",
- eslint: "^1.10.3",
- "eslint-release": "^1.0.0",
- linefix: "^0.1.1",
- mocha: "^3.4.2",
- "npm-license": "^0.3.1",
- nyc: "^10.3.2",
- semver: "^5.0.3",
- shelljs: "^0.5.3",
- "shelljs-nodecli": "^0.1.1",
- should: "^5.0.1"
- },
- license: "Apache-2.0",
- scripts: {
- pretest: "npm run lint",
- test: "nyc mocha",
- coveralls: "nyc report --reporter=text-lcov | coveralls",
- lint: "eslint lib/",
- "generate-release": "eslint-generate-release",
- "generate-alpharelease": "eslint-generate-prerelease alpha",
- "generate-betarelease": "eslint-generate-prerelease beta",
- "generate-rcrelease": "eslint-generate-prerelease rc",
- "publish-release": "eslint-publish-release"
- },
- dependencies: {
- esutils: "^2.0.2"
- }
- };
- }
- });
- // node_modules/doctrine/lib/utility.js
- var require_utility = __commonJS({
- "node_modules/doctrine/lib/utility.js"(exports2) {
- (function() {
- "use strict";
- var VERSION;
- VERSION = require_package().version;
- exports2.VERSION = VERSION;
- function DoctrineError(message) {
- this.name = "DoctrineError";
- this.message = message;
- }
- DoctrineError.prototype = (function() {
- var Middle = function() {
- };
- Middle.prototype = Error.prototype;
- return new Middle();
- })();
- DoctrineError.prototype.constructor = DoctrineError;
- exports2.DoctrineError = DoctrineError;
- function throwError(message) {
- throw new DoctrineError(message);
- }
- exports2.throwError = throwError;
- exports2.assert = require("assert");
- })();
- }
- });
- // node_modules/doctrine/lib/typed.js
- var require_typed = __commonJS({
- "node_modules/doctrine/lib/typed.js"(exports2) {
- (function() {
- "use strict";
- var Syntax, Token, source, length, index, previous, token, value, esutils, utility, rangeOffset, addRange;
- esutils = require_utils4();
- utility = require_utility();
- Syntax = {
- NullableLiteral: "NullableLiteral",
- AllLiteral: "AllLiteral",
- NullLiteral: "NullLiteral",
- UndefinedLiteral: "UndefinedLiteral",
- VoidLiteral: "VoidLiteral",
- UnionType: "UnionType",
- ArrayType: "ArrayType",
- RecordType: "RecordType",
- FieldType: "FieldType",
- FunctionType: "FunctionType",
- ParameterType: "ParameterType",
- RestType: "RestType",
- NonNullableType: "NonNullableType",
- OptionalType: "OptionalType",
- NullableType: "NullableType",
- NameExpression: "NameExpression",
- TypeApplication: "TypeApplication",
- StringLiteralType: "StringLiteralType",
- NumericLiteralType: "NumericLiteralType",
- BooleanLiteralType: "BooleanLiteralType"
- };
- Token = {
- ILLEGAL: 0,
- // ILLEGAL
- DOT_LT: 1,
- // .<
- REST: 2,
- // ...
- LT: 3,
- // <
- GT: 4,
- // >
- LPAREN: 5,
- // (
- RPAREN: 6,
- // )
- LBRACE: 7,
- // {
- RBRACE: 8,
- // }
- LBRACK: 9,
- // [
- RBRACK: 10,
- // ]
- COMMA: 11,
- // ,
- COLON: 12,
- // :
- STAR: 13,
- // *
- PIPE: 14,
- // |
- QUESTION: 15,
- // ?
- BANG: 16,
- // !
- EQUAL: 17,
- // =
- NAME: 18,
- // name token
- STRING: 19,
- // string
- NUMBER: 20,
- // number
- EOF: 21
- };
- function isTypeName(ch) {
- return "><(){}[],:*|?!=".indexOf(String.fromCharCode(ch)) === -1 && !esutils.code.isWhiteSpace(ch) && !esutils.code.isLineTerminator(ch);
- }
- function Context(previous2, index2, token2, value2) {
- this._previous = previous2;
- this._index = index2;
- this._token = token2;
- this._value = value2;
- }
- Context.prototype.restore = function() {
- previous = this._previous;
- index = this._index;
- token = this._token;
- value = this._value;
- };
- Context.save = function() {
- return new Context(previous, index, token, value);
- };
- function maybeAddRange(node, range) {
- if (addRange) {
- node.range = [range[0] + rangeOffset, range[1] + rangeOffset];
- }
- return node;
- }
- function advance() {
- var ch = source.charAt(index);
- index += 1;
- return ch;
- }
- function scanHexEscape(prefix) {
- var i, len, ch, code = 0;
- len = prefix === "u" ? 4 : 2;
- for (i = 0; i < len; ++i) {
- if (index < length && esutils.code.isHexDigit(source.charCodeAt(index))) {
- ch = advance();
- code = code * 16 + "0123456789abcdef".indexOf(ch.toLowerCase());
- } else {
- return "";
- }
- }
- return String.fromCharCode(code);
- }
- function scanString() {
- var str = "", quote, ch, code, unescaped, restore;
- quote = source.charAt(index);
- ++index;
- while (index < length) {
- ch = advance();
- if (ch === quote) {
- quote = "";
- break;
- } else if (ch === "\\") {
- ch = advance();
- if (!esutils.code.isLineTerminator(ch.charCodeAt(0))) {
- switch (ch) {
- case "n":
- str += "\n";
- break;
- case "r":
- str += "\r";
- break;
- case "t":
- str += " ";
- break;
- case "u":
- case "x":
- restore = index;
- unescaped = scanHexEscape(ch);
- if (unescaped) {
- str += unescaped;
- } else {
- index = restore;
- str += ch;
- }
- break;
- case "b":
- str += "\b";
- break;
- case "f":
- str += "\f";
- break;
- case "v":
- str += "\v";
- break;
- default:
- if (esutils.code.isOctalDigit(ch.charCodeAt(0))) {
- code = "01234567".indexOf(ch);
- if (index < length && esutils.code.isOctalDigit(source.charCodeAt(index))) {
- code = code * 8 + "01234567".indexOf(advance());
- if ("0123".indexOf(ch) >= 0 && index < length && esutils.code.isOctalDigit(source.charCodeAt(index))) {
- code = code * 8 + "01234567".indexOf(advance());
- }
- }
- str += String.fromCharCode(code);
- } else {
- str += ch;
- }
- break;
- }
- } else {
- if (ch === "\r" && source.charCodeAt(index) === 10) {
- ++index;
- }
- }
- } else if (esutils.code.isLineTerminator(ch.charCodeAt(0))) {
- break;
- } else {
- str += ch;
- }
- }
- if (quote !== "") {
- utility.throwError("unexpected quote");
- }
- value = str;
- return Token.STRING;
- }
- function scanNumber() {
- var number, ch;
- number = "";
- ch = source.charCodeAt(index);
- if (ch !== 46) {
- number = advance();
- ch = source.charCodeAt(index);
- if (number === "0") {
- if (ch === 120 || ch === 88) {
- number += advance();
- while (index < length) {
- ch = source.charCodeAt(index);
- if (!esutils.code.isHexDigit(ch)) {
- break;
- }
- number += advance();
- }
- if (number.length <= 2) {
- utility.throwError("unexpected token");
- }
- if (index < length) {
- ch = source.charCodeAt(index);
- if (esutils.code.isIdentifierStartES5(ch)) {
- utility.throwError("unexpected token");
- }
- }
- value = parseInt(number, 16);
- return Token.NUMBER;
- }
- if (esutils.code.isOctalDigit(ch)) {
- number += advance();
- while (index < length) {
- ch = source.charCodeAt(index);
- if (!esutils.code.isOctalDigit(ch)) {
- break;
- }
- number += advance();
- }
- if (index < length) {
- ch = source.charCodeAt(index);
- if (esutils.code.isIdentifierStartES5(ch) || esutils.code.isDecimalDigit(ch)) {
- utility.throwError("unexpected token");
- }
- }
- value = parseInt(number, 8);
- return Token.NUMBER;
- }
- if (esutils.code.isDecimalDigit(ch)) {
- utility.throwError("unexpected token");
- }
- }
- while (index < length) {
- ch = source.charCodeAt(index);
- if (!esutils.code.isDecimalDigit(ch)) {
- break;
- }
- number += advance();
- }
- }
- if (ch === 46) {
- number += advance();
- while (index < length) {
- ch = source.charCodeAt(index);
- if (!esutils.code.isDecimalDigit(ch)) {
- break;
- }
- number += advance();
- }
- }
- if (ch === 101 || ch === 69) {
- number += advance();
- ch = source.charCodeAt(index);
- if (ch === 43 || ch === 45) {
- number += advance();
- }
- ch = source.charCodeAt(index);
- if (esutils.code.isDecimalDigit(ch)) {
- number += advance();
- while (index < length) {
- ch = source.charCodeAt(index);
- if (!esutils.code.isDecimalDigit(ch)) {
- break;
- }
- number += advance();
- }
- } else {
- utility.throwError("unexpected token");
- }
- }
- if (index < length) {
- ch = source.charCodeAt(index);
- if (esutils.code.isIdentifierStartES5(ch)) {
- utility.throwError("unexpected token");
- }
- }
- value = parseFloat(number);
- return Token.NUMBER;
- }
- function scanTypeName() {
- var ch, ch2;
- value = advance();
- while (index < length && isTypeName(source.charCodeAt(index))) {
- ch = source.charCodeAt(index);
- if (ch === 46) {
- if (index + 1 >= length) {
- return Token.ILLEGAL;
- }
- ch2 = source.charCodeAt(index + 1);
- if (ch2 === 60) {
- break;
- }
- }
- value += advance();
- }
- return Token.NAME;
- }
- function next() {
- var ch;
- previous = index;
- while (index < length && esutils.code.isWhiteSpace(source.charCodeAt(index))) {
- advance();
- }
- if (index >= length) {
- token = Token.EOF;
- return token;
- }
- ch = source.charCodeAt(index);
- switch (ch) {
- case 39:
- /* ''' */
- case 34:
- token = scanString();
- return token;
- case 58:
- advance();
- token = Token.COLON;
- return token;
- case 44:
- advance();
- token = Token.COMMA;
- return token;
- case 40:
- advance();
- token = Token.LPAREN;
- return token;
- case 41:
- advance();
- token = Token.RPAREN;
- return token;
- case 91:
- advance();
- token = Token.LBRACK;
- return token;
- case 93:
- advance();
- token = Token.RBRACK;
- return token;
- case 123:
- advance();
- token = Token.LBRACE;
- return token;
- case 125:
- advance();
- token = Token.RBRACE;
- return token;
- case 46:
- if (index + 1 < length) {
- ch = source.charCodeAt(index + 1);
- if (ch === 60) {
- advance();
- advance();
- token = Token.DOT_LT;
- return token;
- }
- if (ch === 46 && index + 2 < length && source.charCodeAt(index + 2) === 46) {
- advance();
- advance();
- advance();
- token = Token.REST;
- return token;
- }
- if (esutils.code.isDecimalDigit(ch)) {
- token = scanNumber();
- return token;
- }
- }
- token = Token.ILLEGAL;
- return token;
- case 60:
- advance();
- token = Token.LT;
- return token;
- case 62:
- advance();
- token = Token.GT;
- return token;
- case 42:
- advance();
- token = Token.STAR;
- return token;
- case 124:
- advance();
- token = Token.PIPE;
- return token;
- case 63:
- advance();
- token = Token.QUESTION;
- return token;
- case 33:
- advance();
- token = Token.BANG;
- return token;
- case 61:
- advance();
- token = Token.EQUAL;
- return token;
- case 45:
- token = scanNumber();
- return token;
- default:
- if (esutils.code.isDecimalDigit(ch)) {
- token = scanNumber();
- return token;
- }
- utility.assert(isTypeName(ch));
- token = scanTypeName();
- return token;
- }
- }
- function consume(target, text) {
- utility.assert(token === target, text || "consumed token not matched");
- next();
- }
- function expect(target, message) {
- if (token !== target) {
- utility.throwError(message || "unexpected token");
- }
- next();
- }
- function parseUnionType() {
- var elements, startIndex = index - 1;
- consume(Token.LPAREN, "UnionType should start with (");
- elements = [];
- if (token !== Token.RPAREN) {
- while (true) {
- elements.push(parseTypeExpression());
- if (token === Token.RPAREN) {
- break;
- }
- expect(Token.PIPE);
- }
- }
- consume(Token.RPAREN, "UnionType should end with )");
- return maybeAddRange({
- type: Syntax.UnionType,
- elements
- }, [startIndex, previous]);
- }
- function parseArrayType() {
- var elements, startIndex = index - 1, restStartIndex;
- consume(Token.LBRACK, "ArrayType should start with [");
- elements = [];
- while (token !== Token.RBRACK) {
- if (token === Token.REST) {
- restStartIndex = index - 3;
- consume(Token.REST);
- elements.push(maybeAddRange({
- type: Syntax.RestType,
- expression: parseTypeExpression()
- }, [restStartIndex, previous]));
- break;
- } else {
- elements.push(parseTypeExpression());
- }
- if (token !== Token.RBRACK) {
- expect(Token.COMMA);
- }
- }
- expect(Token.RBRACK);
- return maybeAddRange({
- type: Syntax.ArrayType,
- elements
- }, [startIndex, previous]);
- }
- function parseFieldName() {
- var v = value;
- if (token === Token.NAME || token === Token.STRING) {
- next();
- return v;
- }
- if (token === Token.NUMBER) {
- consume(Token.NUMBER);
- return String(v);
- }
- utility.throwError("unexpected token");
- }
- function parseFieldType() {
- var key, rangeStart = previous;
- key = parseFieldName();
- if (token === Token.COLON) {
- consume(Token.COLON);
- return maybeAddRange({
- type: Syntax.FieldType,
- key,
- value: parseTypeExpression()
- }, [rangeStart, previous]);
- }
- return maybeAddRange({
- type: Syntax.FieldType,
- key,
- value: null
- }, [rangeStart, previous]);
- }
- function parseRecordType() {
- var fields, rangeStart = index - 1, rangeEnd;
- consume(Token.LBRACE, "RecordType should start with {");
- fields = [];
- if (token === Token.COMMA) {
- consume(Token.COMMA);
- } else {
- while (token !== Token.RBRACE) {
- fields.push(parseFieldType());
- if (token !== Token.RBRACE) {
- expect(Token.COMMA);
- }
- }
- }
- rangeEnd = index;
- expect(Token.RBRACE);
- return maybeAddRange({
- type: Syntax.RecordType,
- fields
- }, [rangeStart, rangeEnd]);
- }
- function parseNameExpression() {
- var name = value, rangeStart = index - name.length;
- expect(Token.NAME);
- if (token === Token.COLON && (name === "module" || name === "external" || name === "event")) {
- consume(Token.COLON);
- name += ":" + value;
- expect(Token.NAME);
- }
- return maybeAddRange({
- type: Syntax.NameExpression,
- name
- }, [rangeStart, previous]);
- }
- function parseTypeExpressionList() {
- var elements = [];
- elements.push(parseTop());
- while (token === Token.COMMA) {
- consume(Token.COMMA);
- elements.push(parseTop());
- }
- return elements;
- }
- function parseTypeName() {
- var expr, applications, startIndex = index - value.length;
- expr = parseNameExpression();
- if (token === Token.DOT_LT || token === Token.LT) {
- next();
- applications = parseTypeExpressionList();
- expect(Token.GT);
- return maybeAddRange({
- type: Syntax.TypeApplication,
- expression: expr,
- applications
- }, [startIndex, previous]);
- }
- return expr;
- }
- function parseResultType() {
- consume(Token.COLON, "ResultType should start with :");
- if (token === Token.NAME && value === "void") {
- consume(Token.NAME);
- return {
- type: Syntax.VoidLiteral
- };
- }
- return parseTypeExpression();
- }
- function parseParametersType() {
- var params = [], optionalSequence = false, expr, rest = false, startIndex, restStartIndex = index - 3, nameStartIndex;
- while (token !== Token.RPAREN) {
- if (token === Token.REST) {
- consume(Token.REST);
- rest = true;
- }
- startIndex = previous;
- expr = parseTypeExpression();
- if (expr.type === Syntax.NameExpression && token === Token.COLON) {
- nameStartIndex = previous - expr.name.length;
- consume(Token.COLON);
- expr = maybeAddRange({
- type: Syntax.ParameterType,
- name: expr.name,
- expression: parseTypeExpression()
- }, [nameStartIndex, previous]);
- }
- if (token === Token.EQUAL) {
- consume(Token.EQUAL);
- expr = maybeAddRange({
- type: Syntax.OptionalType,
- expression: expr
- }, [startIndex, previous]);
- optionalSequence = true;
- } else {
- if (optionalSequence) {
- utility.throwError("unexpected token");
- }
- }
- if (rest) {
- expr = maybeAddRange({
- type: Syntax.RestType,
- expression: expr
- }, [restStartIndex, previous]);
- }
- params.push(expr);
- if (token !== Token.RPAREN) {
- expect(Token.COMMA);
- }
- }
- return params;
- }
- function parseFunctionType() {
- var isNew, thisBinding, params, result, fnType, startIndex = index - value.length;
- utility.assert(token === Token.NAME && value === "function", "FunctionType should start with 'function'");
- consume(Token.NAME);
- expect(Token.LPAREN);
- isNew = false;
- params = [];
- thisBinding = null;
- if (token !== Token.RPAREN) {
- if (token === Token.NAME && (value === "this" || value === "new")) {
- isNew = value === "new";
- consume(Token.NAME);
- expect(Token.COLON);
- thisBinding = parseTypeName();
- if (token === Token.COMMA) {
- consume(Token.COMMA);
- params = parseParametersType();
- }
- } else {
- params = parseParametersType();
- }
- }
- expect(Token.RPAREN);
- result = null;
- if (token === Token.COLON) {
- result = parseResultType();
- }
- fnType = maybeAddRange({
- type: Syntax.FunctionType,
- params,
- result
- }, [startIndex, previous]);
- if (thisBinding) {
- fnType["this"] = thisBinding;
- if (isNew) {
- fnType["new"] = true;
- }
- }
- return fnType;
- }
- function parseBasicTypeExpression() {
- var context, startIndex;
- switch (token) {
- case Token.STAR:
- consume(Token.STAR);
- return maybeAddRange({
- type: Syntax.AllLiteral
- }, [previous - 1, previous]);
- case Token.LPAREN:
- return parseUnionType();
- case Token.LBRACK:
- return parseArrayType();
- case Token.LBRACE:
- return parseRecordType();
- case Token.NAME:
- startIndex = index - value.length;
- if (value === "null") {
- consume(Token.NAME);
- return maybeAddRange({
- type: Syntax.NullLiteral
- }, [startIndex, previous]);
- }
- if (value === "undefined") {
- consume(Token.NAME);
- return maybeAddRange({
- type: Syntax.UndefinedLiteral
- }, [startIndex, previous]);
- }
- if (value === "true" || value === "false") {
- consume(Token.NAME);
- return maybeAddRange({
- type: Syntax.BooleanLiteralType,
- value: value === "true"
- }, [startIndex, previous]);
- }
- context = Context.save();
- if (value === "function") {
- try {
- return parseFunctionType();
- } catch (e) {
- context.restore();
- }
- }
- return parseTypeName();
- case Token.STRING:
- next();
- return maybeAddRange({
- type: Syntax.StringLiteralType,
- value
- }, [previous - value.length - 2, previous]);
- case Token.NUMBER:
- next();
- return maybeAddRange({
- type: Syntax.NumericLiteralType,
- value
- }, [previous - String(value).length, previous]);
- default:
- utility.throwError("unexpected token");
- }
- }
- function parseTypeExpression() {
- var expr, rangeStart;
- if (token === Token.QUESTION) {
- rangeStart = index - 1;
- consume(Token.QUESTION);
- if (token === Token.COMMA || token === Token.EQUAL || token === Token.RBRACE || token === Token.RPAREN || token === Token.PIPE || token === Token.EOF || token === Token.RBRACK || token === Token.GT) {
- return maybeAddRange({
- type: Syntax.NullableLiteral
- }, [rangeStart, previous]);
- }
- return maybeAddRange({
- type: Syntax.NullableType,
- expression: parseBasicTypeExpression(),
- prefix: true
- }, [rangeStart, previous]);
- } else if (token === Token.BANG) {
- rangeStart = index - 1;
- consume(Token.BANG);
- return maybeAddRange({
- type: Syntax.NonNullableType,
- expression: parseBasicTypeExpression(),
- prefix: true
- }, [rangeStart, previous]);
- } else {
- rangeStart = previous;
- }
- expr = parseBasicTypeExpression();
- if (token === Token.BANG) {
- consume(Token.BANG);
- return maybeAddRange({
- type: Syntax.NonNullableType,
- expression: expr,
- prefix: false
- }, [rangeStart, previous]);
- }
- if (token === Token.QUESTION) {
- consume(Token.QUESTION);
- return maybeAddRange({
- type: Syntax.NullableType,
- expression: expr,
- prefix: false
- }, [rangeStart, previous]);
- }
- if (token === Token.LBRACK) {
- consume(Token.LBRACK);
- expect(Token.RBRACK, "expected an array-style type declaration (" + value + "[])");
- return maybeAddRange({
- type: Syntax.TypeApplication,
- expression: maybeAddRange({
- type: Syntax.NameExpression,
- name: "Array"
- }, [rangeStart, previous]),
- applications: [expr]
- }, [rangeStart, previous]);
- }
- return expr;
- }
- function parseTop() {
- var expr, elements;
- expr = parseTypeExpression();
- if (token !== Token.PIPE) {
- return expr;
- }
- elements = [expr];
- consume(Token.PIPE);
- while (true) {
- elements.push(parseTypeExpression());
- if (token !== Token.PIPE) {
- break;
- }
- consume(Token.PIPE);
- }
- return maybeAddRange({
- type: Syntax.UnionType,
- elements
- }, [0, index]);
- }
- function parseTopParamType() {
- var expr;
- if (token === Token.REST) {
- consume(Token.REST);
- return maybeAddRange({
- type: Syntax.RestType,
- expression: parseTop()
- }, [0, index]);
- }
- expr = parseTop();
- if (token === Token.EQUAL) {
- consume(Token.EQUAL);
- return maybeAddRange({
- type: Syntax.OptionalType,
- expression: expr
- }, [0, index]);
- }
- return expr;
- }
- function parseType(src, opt) {
- var expr;
- source = src;
- length = source.length;
- index = 0;
- previous = 0;
- addRange = opt && opt.range;
- rangeOffset = opt && opt.startIndex || 0;
- next();
- expr = parseTop();
- if (opt && opt.midstream) {
- return {
- expression: expr,
- index: previous
- };
- }
- if (token !== Token.EOF) {
- utility.throwError("not reach to EOF");
- }
- return expr;
- }
- function parseParamType(src, opt) {
- var expr;
- source = src;
- length = source.length;
- index = 0;
- previous = 0;
- addRange = opt && opt.range;
- rangeOffset = opt && opt.startIndex || 0;
- next();
- expr = parseTopParamType();
- if (opt && opt.midstream) {
- return {
- expression: expr,
- index: previous
- };
- }
- if (token !== Token.EOF) {
- utility.throwError("not reach to EOF");
- }
- return expr;
- }
- function stringifyImpl(node, compact, topLevel) {
- var result, i, iz;
- switch (node.type) {
- case Syntax.NullableLiteral:
- result = "?";
- break;
- case Syntax.AllLiteral:
- result = "*";
- break;
- case Syntax.NullLiteral:
- result = "null";
- break;
- case Syntax.UndefinedLiteral:
- result = "undefined";
- break;
- case Syntax.VoidLiteral:
- result = "void";
- break;
- case Syntax.UnionType:
- if (!topLevel) {
- result = "(";
- } else {
- result = "";
- }
- for (i = 0, iz = node.elements.length; i < iz; ++i) {
- result += stringifyImpl(node.elements[i], compact);
- if (i + 1 !== iz) {
- result += compact ? "|" : " | ";
- }
- }
- if (!topLevel) {
- result += ")";
- }
- break;
- case Syntax.ArrayType:
- result = "[";
- for (i = 0, iz = node.elements.length; i < iz; ++i) {
- result += stringifyImpl(node.elements[i], compact);
- if (i + 1 !== iz) {
- result += compact ? "," : ", ";
- }
- }
- result += "]";
- break;
- case Syntax.RecordType:
- result = "{";
- for (i = 0, iz = node.fields.length; i < iz; ++i) {
- result += stringifyImpl(node.fields[i], compact);
- if (i + 1 !== iz) {
- result += compact ? "," : ", ";
- }
- }
- result += "}";
- break;
- case Syntax.FieldType:
- if (node.value) {
- result = node.key + (compact ? ":" : ": ") + stringifyImpl(node.value, compact);
- } else {
- result = node.key;
- }
- break;
- case Syntax.FunctionType:
- result = compact ? "function(" : "function (";
- if (node["this"]) {
- if (node["new"]) {
- result += compact ? "new:" : "new: ";
- } else {
- result += compact ? "this:" : "this: ";
- }
- result += stringifyImpl(node["this"], compact);
- if (node.params.length !== 0) {
- result += compact ? "," : ", ";
- }
- }
- for (i = 0, iz = node.params.length; i < iz; ++i) {
- result += stringifyImpl(node.params[i], compact);
- if (i + 1 !== iz) {
- result += compact ? "," : ", ";
- }
- }
- result += ")";
- if (node.result) {
- result += (compact ? ":" : ": ") + stringifyImpl(node.result, compact);
- }
- break;
- case Syntax.ParameterType:
- result = node.name + (compact ? ":" : ": ") + stringifyImpl(node.expression, compact);
- break;
- case Syntax.RestType:
- result = "...";
- if (node.expression) {
- result += stringifyImpl(node.expression, compact);
- }
- break;
- case Syntax.NonNullableType:
- if (node.prefix) {
- result = "!" + stringifyImpl(node.expression, compact);
- } else {
- result = stringifyImpl(node.expression, compact) + "!";
- }
- break;
- case Syntax.OptionalType:
- result = stringifyImpl(node.expression, compact) + "=";
- break;
- case Syntax.NullableType:
- if (node.prefix) {
- result = "?" + stringifyImpl(node.expression, compact);
- } else {
- result = stringifyImpl(node.expression, compact) + "?";
- }
- break;
- case Syntax.NameExpression:
- result = node.name;
- break;
- case Syntax.TypeApplication:
- result = stringifyImpl(node.expression, compact) + ".<";
- for (i = 0, iz = node.applications.length; i < iz; ++i) {
- result += stringifyImpl(node.applications[i], compact);
- if (i + 1 !== iz) {
- result += compact ? "," : ", ";
- }
- }
- result += ">";
- break;
- case Syntax.StringLiteralType:
- result = '"' + node.value + '"';
- break;
- case Syntax.NumericLiteralType:
- result = String(node.value);
- break;
- case Syntax.BooleanLiteralType:
- result = String(node.value);
- break;
- default:
- utility.throwError("Unknown type " + node.type);
- }
- return result;
- }
- function stringify(node, options) {
- if (options == null) {
- options = {};
- }
- return stringifyImpl(node, options.compact, options.topLevel);
- }
- exports2.parseType = parseType;
- exports2.parseParamType = parseParamType;
- exports2.stringify = stringify;
- exports2.Syntax = Syntax;
- })();
- }
- });
- // node_modules/doctrine/lib/doctrine.js
- var require_doctrine = __commonJS({
- "node_modules/doctrine/lib/doctrine.js"(exports2) {
- (function() {
- "use strict";
- var typed, utility, jsdoc, esutils, hasOwnProperty;
- esutils = require_utils4();
- typed = require_typed();
- utility = require_utility();
- function sliceSource(source, index, last) {
- return source.slice(index, last);
- }
- hasOwnProperty = /* @__PURE__ */ (function() {
- var func = Object.prototype.hasOwnProperty;
- return function hasOwnProperty2(obj, name) {
- return func.call(obj, name);
- };
- })();
- function shallowCopy(obj) {
- var ret = {}, key;
- for (key in obj) {
- if (obj.hasOwnProperty(key)) {
- ret[key] = obj[key];
- }
- }
- return ret;
- }
- function isASCIIAlphanumeric(ch) {
- return ch >= 97 && ch <= 122 || ch >= 65 && ch <= 90 || ch >= 48 && ch <= 57;
- }
- function isParamTitle(title) {
- return title === "param" || title === "argument" || title === "arg";
- }
- function isReturnTitle(title) {
- return title === "return" || title === "returns";
- }
- function isProperty(title) {
- return title === "property" || title === "prop";
- }
- function isNameParameterRequired(title) {
- return isParamTitle(title) || isProperty(title) || title === "alias" || title === "this" || title === "mixes" || title === "requires";
- }
- function isAllowedName(title) {
- return isNameParameterRequired(title) || title === "const" || title === "constant";
- }
- function isAllowedNested(title) {
- return isProperty(title) || isParamTitle(title);
- }
- function isAllowedOptional(title) {
- return isProperty(title) || isParamTitle(title);
- }
- function isTypeParameterRequired(title) {
- return isParamTitle(title) || isReturnTitle(title) || title === "define" || title === "enum" || title === "implements" || title === "this" || title === "type" || title === "typedef" || isProperty(title);
- }
- function isAllowedType(title) {
- return isTypeParameterRequired(title) || title === "throws" || title === "const" || title === "constant" || title === "namespace" || title === "member" || title === "var" || title === "module" || title === "constructor" || title === "class" || title === "extends" || title === "augments" || title === "public" || title === "private" || title === "protected";
- }
- var WHITESPACE = "[ \\f\\t\\v\\u00a0\\u1680\\u180e\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]";
- var STAR_MATCHER = "(" + WHITESPACE + "*(?:\\*" + WHITESPACE + "?)?)(.+|[\r\n\u2028\u2029])";
- function unwrapComment(doc) {
- return doc.replace(/^\/\*\*?/, "").replace(/\*\/$/, "").replace(new RegExp(STAR_MATCHER, "g"), "$2").replace(/\s*$/, "");
- }
- function convertUnwrappedCommentIndex(originalSource, unwrappedIndex) {
- var replacedSource = originalSource.replace(/^\/\*\*?/, "");
- var numSkippedChars = 0;
- var matcher = new RegExp(STAR_MATCHER, "g");
- var match;
- while (match = matcher.exec(replacedSource)) {
- numSkippedChars += match[1].length;
- if (match.index + match[0].length > unwrappedIndex + numSkippedChars) {
- return unwrappedIndex + numSkippedChars + originalSource.length - replacedSource.length;
- }
- }
- return originalSource.replace(/\*\/$/, "").replace(/\s*$/, "").length;
- }
- (function(exports3) {
- var Rules, index, lineNumber, length, source, originalSource, recoverable, sloppy, strict;
- function advance() {
- var ch = source.charCodeAt(index);
- index += 1;
- if (esutils.code.isLineTerminator(ch) && !(ch === 13 && source.charCodeAt(index) === 10)) {
- lineNumber += 1;
- }
- return String.fromCharCode(ch);
- }
- function scanTitle() {
- var title = "";
- advance();
- while (index < length && isASCIIAlphanumeric(source.charCodeAt(index))) {
- title += advance();
- }
- return title;
- }
- function seekContent() {
- var ch, waiting, last = index;
- waiting = false;
- while (last < length) {
- ch = source.charCodeAt(last);
- if (esutils.code.isLineTerminator(ch) && !(ch === 13 && source.charCodeAt(last + 1) === 10)) {
- waiting = true;
- } else if (waiting) {
- if (ch === 64) {
- break;
- }
- if (!esutils.code.isWhiteSpace(ch)) {
- waiting = false;
- }
- }
- last += 1;
- }
- return last;
- }
- function parseType(title, last, addRange) {
- var ch, brace, type, startIndex, direct = false;
- while (index < last) {
- ch = source.charCodeAt(index);
- if (esutils.code.isWhiteSpace(ch)) {
- advance();
- } else if (ch === 123) {
- advance();
- break;
- } else {
- direct = true;
- break;
- }
- }
- if (direct) {
- return null;
- }
- brace = 1;
- type = "";
- while (index < last) {
- ch = source.charCodeAt(index);
- if (esutils.code.isLineTerminator(ch)) {
- advance();
- } else {
- if (ch === 125) {
- brace -= 1;
- if (brace === 0) {
- advance();
- break;
- }
- } else if (ch === 123) {
- brace += 1;
- }
- if (type === "") {
- startIndex = index;
- }
- type += advance();
- }
- }
- if (brace !== 0) {
- return utility.throwError("Braces are not balanced");
- }
- if (isAllowedOptional(title)) {
- return typed.parseParamType(type, { startIndex: convertIndex(startIndex), range: addRange });
- }
- return typed.parseType(type, { startIndex: convertIndex(startIndex), range: addRange });
- }
- function scanIdentifier(last) {
- var identifier;
- if (!esutils.code.isIdentifierStartES5(source.charCodeAt(index)) && !source[index].match(/[0-9]/)) {
- return null;
- }
- identifier = advance();
- while (index < last && esutils.code.isIdentifierPartES5(source.charCodeAt(index))) {
- identifier += advance();
- }
- return identifier;
- }
- function skipWhiteSpace(last) {
- while (index < last && (esutils.code.isWhiteSpace(source.charCodeAt(index)) || esutils.code.isLineTerminator(source.charCodeAt(index)))) {
- advance();
- }
- }
- function parseName(last, allowBrackets, allowNestedParams) {
- var name = "", useBrackets, insideString;
- skipWhiteSpace(last);
- if (index >= last) {
- return null;
- }
- if (source.charCodeAt(index) === 91) {
- if (allowBrackets) {
- useBrackets = true;
- name = advance();
- } else {
- return null;
- }
- }
- name += scanIdentifier(last);
- if (allowNestedParams) {
- if (source.charCodeAt(index) === 58 && (name === "module" || name === "external" || name === "event")) {
- name += advance();
- name += scanIdentifier(last);
- }
- if (source.charCodeAt(index) === 91 && source.charCodeAt(index + 1) === 93) {
- name += advance();
- name += advance();
- }
- while (source.charCodeAt(index) === 46 || source.charCodeAt(index) === 47 || source.charCodeAt(index) === 35 || source.charCodeAt(index) === 45 || source.charCodeAt(index) === 126) {
- name += advance();
- name += scanIdentifier(last);
- }
- }
- if (useBrackets) {
- skipWhiteSpace(last);
- if (source.charCodeAt(index) === 61) {
- name += advance();
- skipWhiteSpace(last);
- var ch;
- var bracketDepth = 1;
- while (index < last) {
- ch = source.charCodeAt(index);
- if (esutils.code.isWhiteSpace(ch)) {
- if (!insideString) {
- skipWhiteSpace(last);
- ch = source.charCodeAt(index);
- }
- }
- if (ch === 39) {
- if (!insideString) {
- insideString = "'";
- } else {
- if (insideString === "'") {
- insideString = "";
- }
- }
- }
- if (ch === 34) {
- if (!insideString) {
- insideString = '"';
- } else {
- if (insideString === '"') {
- insideString = "";
- }
- }
- }
- if (ch === 91) {
- bracketDepth++;
- } else if (ch === 93 && --bracketDepth === 0) {
- break;
- }
- name += advance();
- }
- }
- skipWhiteSpace(last);
- if (index >= last || source.charCodeAt(index) !== 93) {
- return null;
- }
- name += advance();
- }
- return name;
- }
- function skipToTag() {
- while (index < length && source.charCodeAt(index) !== 64) {
- advance();
- }
- if (index >= length) {
- return false;
- }
- utility.assert(
- source.charCodeAt(index) === 64
- /* '@' */
- );
- return true;
- }
- function convertIndex(rangeIndex) {
- if (source === originalSource) {
- return rangeIndex;
- }
- return convertUnwrappedCommentIndex(originalSource, rangeIndex);
- }
- function TagParser(options, title) {
- this._options = options;
- this._title = title.toLowerCase();
- this._tag = {
- title,
- description: null
- };
- if (this._options.lineNumbers) {
- this._tag.lineNumber = lineNumber;
- }
- this._first = index - title.length - 1;
- this._last = 0;
- this._extra = {};
- }
- TagParser.prototype.addError = function addError(errorText) {
- var args = Array.prototype.slice.call(arguments, 1), msg = errorText.replace(
- /%(\d)/g,
- function(whole, index2) {
- utility.assert(index2 < args.length, "Message reference must be in range");
- return args[index2];
- }
- );
- if (!this._tag.errors) {
- this._tag.errors = [];
- }
- if (strict) {
- utility.throwError(msg);
- }
- this._tag.errors.push(msg);
- return recoverable;
- };
- TagParser.prototype.parseType = function() {
- if (isTypeParameterRequired(this._title)) {
- try {
- this._tag.type = parseType(this._title, this._last, this._options.range);
- if (!this._tag.type) {
- if (!isParamTitle(this._title) && !isReturnTitle(this._title)) {
- if (!this.addError("Missing or invalid tag type")) {
- return false;
- }
- }
- }
- } catch (error) {
- this._tag.type = null;
- if (!this.addError(error.message)) {
- return false;
- }
- }
- } else if (isAllowedType(this._title)) {
- try {
- this._tag.type = parseType(this._title, this._last, this._options.range);
- } catch (e) {
- }
- }
- return true;
- };
- TagParser.prototype._parseNamePath = function(optional) {
- var name;
- name = parseName(this._last, sloppy && isAllowedOptional(this._title), true);
- if (!name) {
- if (!optional) {
- if (!this.addError("Missing or invalid tag name")) {
- return false;
- }
- }
- }
- this._tag.name = name;
- return true;
- };
- TagParser.prototype.parseNamePath = function() {
- return this._parseNamePath(false);
- };
- TagParser.prototype.parseNamePathOptional = function() {
- return this._parseNamePath(true);
- };
- TagParser.prototype.parseName = function() {
- var assign, name;
- if (isAllowedName(this._title)) {
- this._tag.name = parseName(this._last, sloppy && isAllowedOptional(this._title), isAllowedNested(this._title));
- if (!this._tag.name) {
- if (!isNameParameterRequired(this._title)) {
- return true;
- }
- if (isParamTitle(this._title) && this._tag.type && this._tag.type.name) {
- this._extra.name = this._tag.type;
- this._tag.name = this._tag.type.name;
- this._tag.type = null;
- } else {
- if (!this.addError("Missing or invalid tag name")) {
- return false;
- }
- }
- } else {
- name = this._tag.name;
- if (name.charAt(0) === "[" && name.charAt(name.length - 1) === "]") {
- assign = name.substring(1, name.length - 1).split("=");
- if (assign.length > 1) {
- this._tag["default"] = assign.slice(1).join("=");
- }
- this._tag.name = assign[0];
- if (this._tag.type && this._tag.type.type !== "OptionalType") {
- this._tag.type = {
- type: "OptionalType",
- expression: this._tag.type
- };
- }
- }
- }
- }
- return true;
- };
- TagParser.prototype.parseDescription = function parseDescription() {
- var description = sliceSource(source, index, this._last).trim();
- if (description) {
- if (/^-\s+/.test(description)) {
- description = description.substring(2);
- }
- this._tag.description = description;
- }
- return true;
- };
- TagParser.prototype.parseCaption = function parseDescription() {
- var description = sliceSource(source, index, this._last).trim();
- var captionStartTag = "<caption>";
- var captionEndTag = "</caption>";
- var captionStart = description.indexOf(captionStartTag);
- var captionEnd = description.indexOf(captionEndTag);
- if (captionStart >= 0 && captionEnd >= 0) {
- this._tag.caption = description.substring(
- captionStart + captionStartTag.length,
- captionEnd
- ).trim();
- this._tag.description = description.substring(captionEnd + captionEndTag.length).trim();
- } else {
- this._tag.description = description;
- }
- return true;
- };
- TagParser.prototype.parseKind = function parseKind() {
- var kind, kinds;
- kinds = {
- "class": true,
- "constant": true,
- "event": true,
- "external": true,
- "file": true,
- "function": true,
- "member": true,
- "mixin": true,
- "module": true,
- "namespace": true,
- "typedef": true
- };
- kind = sliceSource(source, index, this._last).trim();
- this._tag.kind = kind;
- if (!hasOwnProperty(kinds, kind)) {
- if (!this.addError("Invalid kind name '%0'", kind)) {
- return false;
- }
- }
- return true;
- };
- TagParser.prototype.parseAccess = function parseAccess() {
- var access;
- access = sliceSource(source, index, this._last).trim();
- this._tag.access = access;
- if (access !== "private" && access !== "protected" && access !== "public") {
- if (!this.addError("Invalid access name '%0'", access)) {
- return false;
- }
- }
- return true;
- };
- TagParser.prototype.parseThis = function parseThis() {
- var value = sliceSource(source, index, this._last).trim();
- if (value && value.charAt(0) === "{") {
- var gotType = this.parseType();
- if (gotType && this._tag.type.type === "NameExpression" || this._tag.type.type === "UnionType") {
- this._tag.name = this._tag.type.name;
- return true;
- } else {
- return this.addError("Invalid name for this");
- }
- } else {
- return this.parseNamePath();
- }
- };
- TagParser.prototype.parseVariation = function parseVariation() {
- var variation, text;
- text = sliceSource(source, index, this._last).trim();
- variation = parseFloat(text, 10);
- this._tag.variation = variation;
- if (isNaN(variation)) {
- if (!this.addError("Invalid variation '%0'", text)) {
- return false;
- }
- }
- return true;
- };
- TagParser.prototype.ensureEnd = function() {
- var shouldBeEmpty = sliceSource(source, index, this._last).trim();
- if (shouldBeEmpty) {
- if (!this.addError("Unknown content '%0'", shouldBeEmpty)) {
- return false;
- }
- }
- return true;
- };
- TagParser.prototype.epilogue = function epilogue() {
- var description;
- description = this._tag.description;
- if (isAllowedOptional(this._title) && !this._tag.type && description && description.charAt(0) === "[") {
- this._tag.type = this._extra.name;
- if (!this._tag.name) {
- this._tag.name = void 0;
- }
- if (!sloppy) {
- if (!this.addError("Missing or invalid tag name")) {
- return false;
- }
- }
- }
- return true;
- };
- Rules = {
- // http://usejsdoc.org/tags-access.html
- "access": ["parseAccess"],
- // http://usejsdoc.org/tags-alias.html
- "alias": ["parseNamePath", "ensureEnd"],
- // http://usejsdoc.org/tags-augments.html
- "augments": ["parseType", "parseNamePathOptional", "ensureEnd"],
- // http://usejsdoc.org/tags-constructor.html
- "constructor": ["parseType", "parseNamePathOptional", "ensureEnd"],
- // Synonym: http://usejsdoc.org/tags-constructor.html
- "class": ["parseType", "parseNamePathOptional", "ensureEnd"],
- // Synonym: http://usejsdoc.org/tags-extends.html
- "extends": ["parseType", "parseNamePathOptional", "ensureEnd"],
- // http://usejsdoc.org/tags-example.html
- "example": ["parseCaption"],
- // http://usejsdoc.org/tags-deprecated.html
- "deprecated": ["parseDescription"],
- // http://usejsdoc.org/tags-global.html
- "global": ["ensureEnd"],
- // http://usejsdoc.org/tags-inner.html
- "inner": ["ensureEnd"],
- // http://usejsdoc.org/tags-instance.html
- "instance": ["ensureEnd"],
- // http://usejsdoc.org/tags-kind.html
- "kind": ["parseKind"],
- // http://usejsdoc.org/tags-mixes.html
- "mixes": ["parseNamePath", "ensureEnd"],
- // http://usejsdoc.org/tags-mixin.html
- "mixin": ["parseNamePathOptional", "ensureEnd"],
- // http://usejsdoc.org/tags-member.html
- "member": ["parseType", "parseNamePathOptional", "ensureEnd"],
- // http://usejsdoc.org/tags-method.html
- "method": ["parseNamePathOptional", "ensureEnd"],
- // http://usejsdoc.org/tags-module.html
- "module": ["parseType", "parseNamePathOptional", "ensureEnd"],
- // Synonym: http://usejsdoc.org/tags-method.html
- "func": ["parseNamePathOptional", "ensureEnd"],
- // Synonym: http://usejsdoc.org/tags-method.html
- "function": ["parseNamePathOptional", "ensureEnd"],
- // Synonym: http://usejsdoc.org/tags-member.html
- "var": ["parseType", "parseNamePathOptional", "ensureEnd"],
- // http://usejsdoc.org/tags-name.html
- "name": ["parseNamePath", "ensureEnd"],
- // http://usejsdoc.org/tags-namespace.html
- "namespace": ["parseType", "parseNamePathOptional", "ensureEnd"],
- // http://usejsdoc.org/tags-private.html
- "private": ["parseType", "parseDescription"],
- // http://usejsdoc.org/tags-protected.html
- "protected": ["parseType", "parseDescription"],
- // http://usejsdoc.org/tags-public.html
- "public": ["parseType", "parseDescription"],
- // http://usejsdoc.org/tags-readonly.html
- "readonly": ["ensureEnd"],
- // http://usejsdoc.org/tags-requires.html
- "requires": ["parseNamePath", "ensureEnd"],
- // http://usejsdoc.org/tags-since.html
- "since": ["parseDescription"],
- // http://usejsdoc.org/tags-static.html
- "static": ["ensureEnd"],
- // http://usejsdoc.org/tags-summary.html
- "summary": ["parseDescription"],
- // http://usejsdoc.org/tags-this.html
- "this": ["parseThis", "ensureEnd"],
- // http://usejsdoc.org/tags-todo.html
- "todo": ["parseDescription"],
- // http://usejsdoc.org/tags-typedef.html
- "typedef": ["parseType", "parseNamePathOptional"],
- // http://usejsdoc.org/tags-variation.html
- "variation": ["parseVariation"],
- // http://usejsdoc.org/tags-version.html
- "version": ["parseDescription"]
- };
- TagParser.prototype.parse = function parse2() {
- var i, iz, sequences, method;
- if (!this._title) {
- if (!this.addError("Missing or invalid title")) {
- return null;
- }
- }
- this._last = seekContent(this._title);
- if (this._options.range) {
- this._tag.range = [this._first, source.slice(0, this._last).replace(/\s*$/, "").length].map(convertIndex);
- }
- if (hasOwnProperty(Rules, this._title)) {
- sequences = Rules[this._title];
- } else {
- sequences = ["parseType", "parseName", "parseDescription", "epilogue"];
- }
- for (i = 0, iz = sequences.length; i < iz; ++i) {
- method = sequences[i];
- if (!this[method]()) {
- return null;
- }
- }
- return this._tag;
- };
- function parseTag(options) {
- var title, parser, tag;
- if (!skipToTag()) {
- return null;
- }
- title = scanTitle();
- parser = new TagParser(options, title);
- tag = parser.parse();
- while (index < parser._last) {
- advance();
- }
- return tag;
- }
- function scanJSDocDescription(preserveWhitespace) {
- var description = "", ch, atAllowed;
- atAllowed = true;
- while (index < length) {
- ch = source.charCodeAt(index);
- if (atAllowed && ch === 64) {
- break;
- }
- if (esutils.code.isLineTerminator(ch)) {
- atAllowed = true;
- } else if (atAllowed && !esutils.code.isWhiteSpace(ch)) {
- atAllowed = false;
- }
- description += advance();
- }
- return preserveWhitespace ? description : description.trim();
- }
- function parse(comment, options) {
- var tags = [], tag, description, interestingTags, i, iz;
- if (options === void 0) {
- options = {};
- }
- if (typeof options.unwrap === "boolean" && options.unwrap) {
- source = unwrapComment(comment);
- } else {
- source = comment;
- }
- originalSource = comment;
- if (options.tags) {
- if (Array.isArray(options.tags)) {
- interestingTags = {};
- for (i = 0, iz = options.tags.length; i < iz; i++) {
- if (typeof options.tags[i] === "string") {
- interestingTags[options.tags[i]] = true;
- } else {
- utility.throwError('Invalid "tags" parameter: ' + options.tags);
- }
- }
- } else {
- utility.throwError('Invalid "tags" parameter: ' + options.tags);
- }
- }
- length = source.length;
- index = 0;
- lineNumber = 0;
- recoverable = options.recoverable;
- sloppy = options.sloppy;
- strict = options.strict;
- description = scanJSDocDescription(options.preserveWhitespace);
- while (true) {
- tag = parseTag(options);
- if (!tag) {
- break;
- }
- if (!interestingTags || interestingTags.hasOwnProperty(tag.title)) {
- tags.push(tag);
- }
- }
- return {
- description,
- tags
- };
- }
- exports3.parse = parse;
- })(jsdoc = {});
- exports2.version = utility.VERSION;
- exports2.parse = jsdoc.parse;
- exports2.parseType = typed.parseType;
- exports2.parseParamType = typed.parseParamType;
- exports2.unwrapComment = unwrapComment;
- exports2.Syntax = shallowCopy(typed.Syntax);
- exports2.Error = utility.DoctrineError;
- exports2.type = {
- Syntax: exports2.Syntax,
- parseType: typed.parseType,
- parseParamType: typed.parseParamType,
- stringify: typed.stringify
- };
- })();
- }
- });
- // node_modules/@apidevtools/swagger-parser/lib/util.js
- var require_util = __commonJS({
- "node_modules/@apidevtools/swagger-parser/lib/util.js"(exports2) {
- "use strict";
- var util = require("util");
- exports2.format = util.format;
- exports2.inherits = util.inherits;
- exports2.swaggerParamRegExp = /\{([^/}]+)}/g;
- }
- });
- // node_modules/@jsdevtools/ono/cjs/to-json.js
- var require_to_json = __commonJS({
- "node_modules/@jsdevtools/ono/cjs/to-json.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", { value: true });
- exports2.getDeepKeys = exports2.toJSON = void 0;
- var nonJsonTypes = ["function", "symbol", "undefined"];
- var protectedProps = ["constructor", "prototype", "__proto__"];
- var objectPrototype = Object.getPrototypeOf({});
- function toJSON() {
- let pojo = {};
- let error = this;
- for (let key of getDeepKeys(error)) {
- if (typeof key === "string") {
- let value = error[key];
- let type = typeof value;
- if (!nonJsonTypes.includes(type)) {
- pojo[key] = value;
- }
- }
- }
- return pojo;
- }
- exports2.toJSON = toJSON;
- function getDeepKeys(obj, omit = []) {
- let keys = [];
- while (obj && obj !== objectPrototype) {
- keys = keys.concat(Object.getOwnPropertyNames(obj), Object.getOwnPropertySymbols(obj));
- obj = Object.getPrototypeOf(obj);
- }
- let uniqueKeys = new Set(keys);
- for (let key of omit.concat(protectedProps)) {
- uniqueKeys.delete(key);
- }
- return uniqueKeys;
- }
- exports2.getDeepKeys = getDeepKeys;
- }
- });
- // node_modules/@jsdevtools/ono/cjs/isomorphic.node.js
- var require_isomorphic_node = __commonJS({
- "node_modules/@jsdevtools/ono/cjs/isomorphic.node.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", { value: true });
- exports2.addInspectMethod = exports2.format = void 0;
- var util = require("util");
- var to_json_1 = require_to_json();
- var inspectMethod = util.inspect.custom || /* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom");
- exports2.format = util.format;
- function addInspectMethod(newError) {
- newError[inspectMethod] = inspect;
- }
- exports2.addInspectMethod = addInspectMethod;
- function inspect() {
- let pojo = {};
- let error = this;
- for (let key of to_json_1.getDeepKeys(error)) {
- let value = error[key];
- pojo[key] = value;
- }
- delete pojo[inspectMethod];
- return pojo;
- }
- }
- });
- // node_modules/@jsdevtools/ono/cjs/stack.js
- var require_stack = __commonJS({
- "node_modules/@jsdevtools/ono/cjs/stack.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", { value: true });
- exports2.lazyJoinStacks = exports2.joinStacks = exports2.isWritableStack = exports2.isLazyStack = void 0;
- var newline = /\r?\n/;
- var onoCall = /\bono[ @]/;
- function isLazyStack(stackProp) {
- return Boolean(stackProp && stackProp.configurable && typeof stackProp.get === "function");
- }
- exports2.isLazyStack = isLazyStack;
- function isWritableStack(stackProp) {
- return Boolean(
- // If there is no stack property, then it's writable, since assigning it will create it
- !stackProp || stackProp.writable || typeof stackProp.set === "function"
- );
- }
- exports2.isWritableStack = isWritableStack;
- function joinStacks(newError, originalError) {
- let newStack = popStack(newError.stack);
- let originalStack = originalError ? originalError.stack : void 0;
- if (newStack && originalStack) {
- return newStack + "\n\n" + originalStack;
- } else {
- return newStack || originalStack;
- }
- }
- exports2.joinStacks = joinStacks;
- function lazyJoinStacks(lazyStack, newError, originalError) {
- if (originalError) {
- Object.defineProperty(newError, "stack", {
- get: () => {
- let newStack = lazyStack.get.apply(newError);
- return joinStacks({ stack: newStack }, originalError);
- },
- enumerable: false,
- configurable: true
- });
- } else {
- lazyPopStack(newError, lazyStack);
- }
- }
- exports2.lazyJoinStacks = lazyJoinStacks;
- function popStack(stack) {
- if (stack) {
- let lines = stack.split(newline);
- let onoStart;
- for (let i = 0; i < lines.length; i++) {
- let line = lines[i];
- if (onoCall.test(line)) {
- if (onoStart === void 0) {
- onoStart = i;
- }
- } else if (onoStart !== void 0) {
- lines.splice(onoStart, i - onoStart);
- break;
- }
- }
- if (lines.length > 0) {
- return lines.join("\n");
- }
- }
- return stack;
- }
- function lazyPopStack(error, lazyStack) {
- Object.defineProperty(error, "stack", {
- get: () => popStack(lazyStack.get.apply(error)),
- enumerable: false,
- configurable: true
- });
- }
- }
- });
- // node_modules/@jsdevtools/ono/cjs/extend-error.js
- var require_extend_error = __commonJS({
- "node_modules/@jsdevtools/ono/cjs/extend-error.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", { value: true });
- exports2.extendError = void 0;
- var isomorphic_node_1 = require_isomorphic_node();
- var stack_1 = require_stack();
- var to_json_1 = require_to_json();
- var protectedProps = ["name", "message", "stack"];
- function extendError(error, originalError, props) {
- let onoError = error;
- extendStack(onoError, originalError);
- if (originalError && typeof originalError === "object") {
- mergeErrors(onoError, originalError);
- }
- onoError.toJSON = to_json_1.toJSON;
- if (isomorphic_node_1.addInspectMethod) {
- isomorphic_node_1.addInspectMethod(onoError);
- }
- if (props && typeof props === "object") {
- Object.assign(onoError, props);
- }
- return onoError;
- }
- exports2.extendError = extendError;
- function extendStack(newError, originalError) {
- let stackProp = Object.getOwnPropertyDescriptor(newError, "stack");
- if (stack_1.isLazyStack(stackProp)) {
- stack_1.lazyJoinStacks(stackProp, newError, originalError);
- } else if (stack_1.isWritableStack(stackProp)) {
- newError.stack = stack_1.joinStacks(newError, originalError);
- }
- }
- function mergeErrors(newError, originalError) {
- let keys = to_json_1.getDeepKeys(originalError, protectedProps);
- let _newError = newError;
- let _originalError = originalError;
- for (let key of keys) {
- if (_newError[key] === void 0) {
- try {
- _newError[key] = _originalError[key];
- } catch (e) {
- }
- }
- }
- }
- }
- });
- // node_modules/@jsdevtools/ono/cjs/normalize.js
- var require_normalize = __commonJS({
- "node_modules/@jsdevtools/ono/cjs/normalize.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", { value: true });
- exports2.normalizeArgs = exports2.normalizeOptions = void 0;
- var isomorphic_node_1 = require_isomorphic_node();
- function normalizeOptions(options) {
- options = options || {};
- return {
- concatMessages: options.concatMessages === void 0 ? true : Boolean(options.concatMessages),
- format: options.format === void 0 ? isomorphic_node_1.format : typeof options.format === "function" ? options.format : false
- };
- }
- exports2.normalizeOptions = normalizeOptions;
- function normalizeArgs(args, options) {
- let originalError;
- let props;
- let formatArgs;
- let message = "";
- if (typeof args[0] === "string") {
- formatArgs = args;
- } else if (typeof args[1] === "string") {
- if (args[0] instanceof Error) {
- originalError = args[0];
- } else {
- props = args[0];
- }
- formatArgs = args.slice(1);
- } else {
- originalError = args[0];
- props = args[1];
- formatArgs = args.slice(2);
- }
- if (formatArgs.length > 0) {
- if (options.format) {
- message = options.format.apply(void 0, formatArgs);
- } else {
- message = formatArgs.join(" ");
- }
- }
- if (options.concatMessages && originalError && originalError.message) {
- message += (message ? " \n" : "") + originalError.message;
- }
- return { originalError, props, message };
- }
- exports2.normalizeArgs = normalizeArgs;
- }
- });
- // node_modules/@jsdevtools/ono/cjs/constructor.js
- var require_constructor = __commonJS({
- "node_modules/@jsdevtools/ono/cjs/constructor.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", { value: true });
- exports2.Ono = void 0;
- var extend_error_1 = require_extend_error();
- var normalize_1 = require_normalize();
- var to_json_1 = require_to_json();
- var constructor = Ono;
- exports2.Ono = constructor;
- function Ono(ErrorConstructor, options) {
- options = normalize_1.normalizeOptions(options);
- function ono(...args) {
- let { originalError, props, message } = normalize_1.normalizeArgs(args, options);
- let newError = new ErrorConstructor(message);
- return extend_error_1.extendError(newError, originalError, props);
- }
- ono[Symbol.species] = ErrorConstructor;
- return ono;
- }
- Ono.toJSON = function toJSON(error) {
- return to_json_1.toJSON.call(error);
- };
- Ono.extend = function extend(error, originalError, props) {
- if (props || originalError instanceof Error) {
- return extend_error_1.extendError(error, originalError, props);
- } else if (originalError) {
- return extend_error_1.extendError(error, void 0, originalError);
- } else {
- return extend_error_1.extendError(error);
- }
- };
- }
- });
- // node_modules/@jsdevtools/ono/cjs/singleton.js
- var require_singleton = __commonJS({
- "node_modules/@jsdevtools/ono/cjs/singleton.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", { value: true });
- exports2.ono = void 0;
- var constructor_1 = require_constructor();
- var singleton = ono;
- exports2.ono = singleton;
- ono.error = new constructor_1.Ono(Error);
- ono.eval = new constructor_1.Ono(EvalError);
- ono.range = new constructor_1.Ono(RangeError);
- ono.reference = new constructor_1.Ono(ReferenceError);
- ono.syntax = new constructor_1.Ono(SyntaxError);
- ono.type = new constructor_1.Ono(TypeError);
- ono.uri = new constructor_1.Ono(URIError);
- var onoMap = ono;
- function ono(...args) {
- let originalError = args[0];
- if (typeof originalError === "object" && typeof originalError.name === "string") {
- for (let typedOno of Object.values(onoMap)) {
- if (typeof typedOno === "function" && typedOno.name === "ono") {
- let species = typedOno[Symbol.species];
- if (species && species !== Error && (originalError instanceof species || originalError.name === species.name)) {
- return typedOno.apply(void 0, args);
- }
- }
- }
- }
- return ono.error.apply(void 0, args);
- }
- }
- });
- // node_modules/@jsdevtools/ono/cjs/types.js
- var require_types = __commonJS({
- "node_modules/@jsdevtools/ono/cjs/types.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", { value: true });
- var util_1 = require("util");
- }
- });
- // node_modules/@jsdevtools/ono/cjs/index.js
- var require_cjs = __commonJS({
- "node_modules/@jsdevtools/ono/cjs/index.js"(exports2, module2) {
- "use strict";
- var __createBinding = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) {
- if (k2 === void 0) k2 = k;
- Object.defineProperty(o, k2, { enumerable: true, get: function() {
- return m[k];
- } });
- }) : (function(o, m, k, k2) {
- if (k2 === void 0) k2 = k;
- o[k2] = m[k];
- }));
- var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) {
- for (var p in m) if (p !== "default" && !exports3.hasOwnProperty(p)) __createBinding(exports3, m, p);
- };
- Object.defineProperty(exports2, "__esModule", { value: true });
- exports2.ono = void 0;
- var singleton_1 = require_singleton();
- Object.defineProperty(exports2, "ono", { enumerable: true, get: function() {
- return singleton_1.ono;
- } });
- var constructor_1 = require_constructor();
- Object.defineProperty(exports2, "Ono", { enumerable: true, get: function() {
- return constructor_1.Ono;
- } });
- __exportStar(require_types(), exports2);
- exports2.default = singleton_1.ono;
- if (typeof module2 === "object" && typeof module2.exports === "object") {
- module2.exports = Object.assign(module2.exports.default, module2.exports);
- }
- }
- });
- // node_modules/z-schema/src/Polyfills.js
- var require_Polyfills = __commonJS({
- "node_modules/z-schema/src/Polyfills.js"() {
- if (typeof Number.isFinite !== "function") {
- Number.isFinite = function isFinite2(value) {
- if (typeof value !== "number") {
- return false;
- }
- if (value !== value || value === Infinity || value === -Infinity) {
- return false;
- }
- return true;
- };
- }
- }
- });
- // node_modules/lodash.get/index.js
- var require_lodash = __commonJS({
- "node_modules/lodash.get/index.js"(exports2, module2) {
- var FUNC_ERROR_TEXT = "Expected a function";
- var HASH_UNDEFINED = "__lodash_hash_undefined__";
- var INFINITY = 1 / 0;
- var funcTag = "[object Function]";
- var genTag = "[object GeneratorFunction]";
- var symbolTag = "[object Symbol]";
- var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/;
- var reIsPlainProp = /^\w*$/;
- var reLeadingDot = /^\./;
- var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
- var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
- var reEscapeChar = /\\(\\)?/g;
- var reIsHostCtor = /^\[object .+?Constructor\]$/;
- var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
- var freeSelf = typeof self == "object" && self && self.Object === Object && self;
- var root = freeGlobal || freeSelf || Function("return this")();
- function getValue(object, key) {
- return object == null ? void 0 : object[key];
- }
- function isHostObject(value) {
- var result = false;
- if (value != null && typeof value.toString != "function") {
- try {
- result = !!(value + "");
- } catch (e) {
- }
- }
- return result;
- }
- var arrayProto = Array.prototype;
- var funcProto = Function.prototype;
- var objectProto = Object.prototype;
- var coreJsData = root["__core-js_shared__"];
- var maskSrcKey = (function() {
- var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
- return uid ? "Symbol(src)_1." + uid : "";
- })();
- var funcToString = funcProto.toString;
- var hasOwnProperty = objectProto.hasOwnProperty;
- var objectToString = objectProto.toString;
- var reIsNative = RegExp(
- "^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
- );
- var Symbol2 = root.Symbol;
- var splice = arrayProto.splice;
- var Map2 = getNative(root, "Map");
- var nativeCreate = getNative(Object, "create");
- var symbolProto = Symbol2 ? Symbol2.prototype : void 0;
- var symbolToString = symbolProto ? symbolProto.toString : void 0;
- function Hash(entries) {
- var index = -1, length = entries ? entries.length : 0;
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
- }
- function hashClear() {
- this.__data__ = nativeCreate ? nativeCreate(null) : {};
- }
- function hashDelete(key) {
- return this.has(key) && delete this.__data__[key];
- }
- function hashGet(key) {
- var data = this.__data__;
- if (nativeCreate) {
- var result = data[key];
- return result === HASH_UNDEFINED ? void 0 : result;
- }
- return hasOwnProperty.call(data, key) ? data[key] : void 0;
- }
- function hashHas(key) {
- var data = this.__data__;
- return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key);
- }
- function hashSet(key, value) {
- var data = this.__data__;
- data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED : value;
- return this;
- }
- Hash.prototype.clear = hashClear;
- Hash.prototype["delete"] = hashDelete;
- Hash.prototype.get = hashGet;
- Hash.prototype.has = hashHas;
- Hash.prototype.set = hashSet;
- function ListCache(entries) {
- var index = -1, length = entries ? entries.length : 0;
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
- }
- function listCacheClear() {
- this.__data__ = [];
- }
- function listCacheDelete(key) {
- var data = this.__data__, index = assocIndexOf(data, key);
- if (index < 0) {
- return false;
- }
- var lastIndex = data.length - 1;
- if (index == lastIndex) {
- data.pop();
- } else {
- splice.call(data, index, 1);
- }
- return true;
- }
- function listCacheGet(key) {
- var data = this.__data__, index = assocIndexOf(data, key);
- return index < 0 ? void 0 : data[index][1];
- }
- function listCacheHas(key) {
- return assocIndexOf(this.__data__, key) > -1;
- }
- function listCacheSet(key, value) {
- var data = this.__data__, index = assocIndexOf(data, key);
- if (index < 0) {
- data.push([key, value]);
- } else {
- data[index][1] = value;
- }
- return this;
- }
- ListCache.prototype.clear = listCacheClear;
- ListCache.prototype["delete"] = listCacheDelete;
- ListCache.prototype.get = listCacheGet;
- ListCache.prototype.has = listCacheHas;
- ListCache.prototype.set = listCacheSet;
- function MapCache(entries) {
- var index = -1, length = entries ? entries.length : 0;
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
- }
- function mapCacheClear() {
- this.__data__ = {
- "hash": new Hash(),
- "map": new (Map2 || ListCache)(),
- "string": new Hash()
- };
- }
- function mapCacheDelete(key) {
- return getMapData(this, key)["delete"](key);
- }
- function mapCacheGet(key) {
- return getMapData(this, key).get(key);
- }
- function mapCacheHas(key) {
- return getMapData(this, key).has(key);
- }
- function mapCacheSet(key, value) {
- getMapData(this, key).set(key, value);
- return this;
- }
- MapCache.prototype.clear = mapCacheClear;
- MapCache.prototype["delete"] = mapCacheDelete;
- MapCache.prototype.get = mapCacheGet;
- MapCache.prototype.has = mapCacheHas;
- MapCache.prototype.set = mapCacheSet;
- function assocIndexOf(array, key) {
- var length = array.length;
- while (length--) {
- if (eq(array[length][0], key)) {
- return length;
- }
- }
- return -1;
- }
- function baseGet(object, path2) {
- path2 = isKey(path2, object) ? [path2] : castPath(path2);
- var index = 0, length = path2.length;
- while (object != null && index < length) {
- object = object[toKey(path2[index++])];
- }
- return index && index == length ? object : void 0;
- }
- function baseIsNative(value) {
- if (!isObject(value) || isMasked(value)) {
- return false;
- }
- var pattern = isFunction(value) || isHostObject(value) ? reIsNative : reIsHostCtor;
- return pattern.test(toSource(value));
- }
- function baseToString(value) {
- if (typeof value == "string") {
- return value;
- }
- if (isSymbol(value)) {
- return symbolToString ? symbolToString.call(value) : "";
- }
- var result = value + "";
- return result == "0" && 1 / value == -INFINITY ? "-0" : result;
- }
- function castPath(value) {
- return isArray(value) ? value : stringToPath(value);
- }
- function getMapData(map, key) {
- var data = map.__data__;
- return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
- }
- function getNative(object, key) {
- var value = getValue(object, key);
- return baseIsNative(value) ? value : void 0;
- }
- function isKey(value, object) {
- if (isArray(value)) {
- return false;
- }
- var type = typeof value;
- if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol(value)) {
- return true;
- }
- return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object);
- }
- function isKeyable(value) {
- var type = typeof value;
- return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null;
- }
- function isMasked(func) {
- return !!maskSrcKey && maskSrcKey in func;
- }
- var stringToPath = memoize(function(string) {
- string = toString2(string);
- var result = [];
- if (reLeadingDot.test(string)) {
- result.push("");
- }
- string.replace(rePropName, function(match, number, quote, string2) {
- result.push(quote ? string2.replace(reEscapeChar, "$1") : number || match);
- });
- return result;
- });
- function toKey(value) {
- if (typeof value == "string" || isSymbol(value)) {
- return value;
- }
- var result = value + "";
- return result == "0" && 1 / value == -INFINITY ? "-0" : result;
- }
- function toSource(func) {
- if (func != null) {
- try {
- return funcToString.call(func);
- } catch (e) {
- }
- try {
- return func + "";
- } catch (e) {
- }
- }
- return "";
- }
- function memoize(func, resolver) {
- if (typeof func != "function" || resolver && typeof resolver != "function") {
- throw new TypeError(FUNC_ERROR_TEXT);
- }
- var memoized = function() {
- var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache;
- if (cache.has(key)) {
- return cache.get(key);
- }
- var result = func.apply(this, args);
- memoized.cache = cache.set(key, result);
- return result;
- };
- memoized.cache = new (memoize.Cache || MapCache)();
- return memoized;
- }
- memoize.Cache = MapCache;
- function eq(value, other) {
- return value === other || value !== value && other !== other;
- }
- var isArray = Array.isArray;
- function isFunction(value) {
- var tag = isObject(value) ? objectToString.call(value) : "";
- return tag == funcTag || tag == genTag;
- }
- function isObject(value) {
- var type = typeof value;
- return !!value && (type == "object" || type == "function");
- }
- function isObjectLike(value) {
- return !!value && typeof value == "object";
- }
- function isSymbol(value) {
- return typeof value == "symbol" || isObjectLike(value) && objectToString.call(value) == symbolTag;
- }
- function toString2(value) {
- return value == null ? "" : baseToString(value);
- }
- function get(object, path2, defaultValue) {
- var result = object == null ? void 0 : baseGet(object, path2);
- return result === void 0 ? defaultValue : result;
- }
- module2.exports = get;
- }
- });
- // node_modules/z-schema/src/Errors.js
- var require_Errors = __commonJS({
- "node_modules/z-schema/src/Errors.js"(exports2, module2) {
- "use strict";
- module2.exports = {
- INVALID_TYPE: "Expected type {0} but found type {1}",
- INVALID_FORMAT: "Object didn't pass validation for format {0}: {1}",
- ENUM_MISMATCH: "No enum match for: {0}",
- ENUM_CASE_MISMATCH: "Enum does not match case for: {0}",
- ANY_OF_MISSING: "Data does not match any schemas from 'anyOf'",
- ONE_OF_MISSING: "Data does not match any schemas from 'oneOf'",
- ONE_OF_MULTIPLE: "Data is valid against more than one schema from 'oneOf'",
- NOT_PASSED: "Data matches schema from 'not'",
- // Array errors
- ARRAY_LENGTH_SHORT: "Array is too short ({0}), minimum {1}",
- ARRAY_LENGTH_LONG: "Array is too long ({0}), maximum {1}",
- ARRAY_UNIQUE: "Array items are not unique (indexes {0} and {1})",
- ARRAY_ADDITIONAL_ITEMS: "Additional items not allowed",
- // Numeric errors
- MULTIPLE_OF: "Value {0} is not a multiple of {1}",
- MINIMUM: "Value {0} is less than minimum {1}",
- MINIMUM_EXCLUSIVE: "Value {0} is equal or less than exclusive minimum {1}",
- MAXIMUM: "Value {0} is greater than maximum {1}",
- MAXIMUM_EXCLUSIVE: "Value {0} is equal or greater than exclusive maximum {1}",
- // Object errors
- OBJECT_PROPERTIES_MINIMUM: "Too few properties defined ({0}), minimum {1}",
- OBJECT_PROPERTIES_MAXIMUM: "Too many properties defined ({0}), maximum {1}",
- OBJECT_MISSING_REQUIRED_PROPERTY: "Missing required property: {0}",
- OBJECT_ADDITIONAL_PROPERTIES: "Additional properties not allowed: {0}",
- OBJECT_DEPENDENCY_KEY: "Dependency failed - key must exist: {0} (due to key: {1})",
- // String errors
- MIN_LENGTH: "String is too short ({0} chars), minimum {1}",
- MAX_LENGTH: "String is too long ({0} chars), maximum {1}",
- PATTERN: "String does not match pattern {0}: {1}",
- // Schema validation errors
- KEYWORD_TYPE_EXPECTED: "Keyword '{0}' is expected to be of type '{1}'",
- KEYWORD_UNDEFINED_STRICT: "Keyword '{0}' must be defined in strict mode",
- KEYWORD_UNEXPECTED: "Keyword '{0}' is not expected to appear in the schema",
- KEYWORD_MUST_BE: "Keyword '{0}' must be {1}",
- KEYWORD_DEPENDENCY: "Keyword '{0}' requires keyword '{1}'",
- KEYWORD_PATTERN: "Keyword '{0}' is not a valid RegExp pattern: {1}",
- KEYWORD_VALUE_TYPE: "Each element of keyword '{0}' array must be a '{1}'",
- UNKNOWN_FORMAT: "There is no validation function for format '{0}'",
- CUSTOM_MODE_FORCE_PROPERTIES: "{0} must define at least one property if present",
- // Remote errors
- REF_UNRESOLVED: "Reference has not been resolved during compilation: {0}",
- UNRESOLVABLE_REFERENCE: "Reference could not be resolved: {0}",
- SCHEMA_NOT_REACHABLE: "Validator was not able to read schema with uri: {0}",
- SCHEMA_TYPE_EXPECTED: "Schema is expected to be of type 'object'",
- SCHEMA_NOT_AN_OBJECT: "Schema is not an object: {0}",
- ASYNC_TIMEOUT: "{0} asynchronous task(s) have timed out after {1} ms",
- PARENT_SCHEMA_VALIDATION_FAILED: "Schema failed to validate against its parent schema, see inner errors for details.",
- REMOTE_NOT_VALID: "Remote reference didn't compile successfully: {0}"
- };
- }
- });
- // node_modules/z-schema/src/Utils.js
- var require_Utils = __commonJS({
- "node_modules/z-schema/src/Utils.js"(exports2) {
- "use strict";
- exports2.jsonSymbol = /* @__PURE__ */ Symbol.for("z-schema/json");
- exports2.schemaSymbol = /* @__PURE__ */ Symbol.for("z-schema/schema");
- var sortedKeys = exports2.sortedKeys = function(obj) {
- return Object.keys(obj).sort();
- };
- exports2.isAbsoluteUri = function(uri) {
- return /^https?:\/\//.test(uri);
- };
- exports2.isRelativeUri = function(uri) {
- return /.+#/.test(uri);
- };
- exports2.whatIs = function(what) {
- var to = typeof what;
- if (to === "object") {
- if (what === null) {
- return "null";
- }
- if (Array.isArray(what)) {
- return "array";
- }
- return "object";
- }
- if (to === "number") {
- if (Number.isFinite(what)) {
- if (what % 1 === 0) {
- return "integer";
- } else {
- return "number";
- }
- }
- if (Number.isNaN(what)) {
- return "not-a-number";
- }
- return "unknown-number";
- }
- return to;
- };
- exports2.areEqual = function areEqual(json1, json2, options) {
- options = options || {};
- var caseInsensitiveComparison = options.caseInsensitiveComparison || false;
- if (json1 === json2) {
- return true;
- }
- if (caseInsensitiveComparison === true && typeof json1 === "string" && typeof json2 === "string" && json1.toUpperCase() === json2.toUpperCase()) {
- return true;
- }
- var i, len;
- if (Array.isArray(json1) && Array.isArray(json2)) {
- if (json1.length !== json2.length) {
- return false;
- }
- len = json1.length;
- for (i = 0; i < len; i++) {
- if (!areEqual(json1[i], json2[i], { caseInsensitiveComparison })) {
- return false;
- }
- }
- return true;
- }
- if (exports2.whatIs(json1) === "object" && exports2.whatIs(json2) === "object") {
- var keys1 = sortedKeys(json1);
- var keys2 = sortedKeys(json2);
- if (!areEqual(keys1, keys2, { caseInsensitiveComparison })) {
- return false;
- }
- len = keys1.length;
- for (i = 0; i < len; i++) {
- if (!areEqual(json1[keys1[i]], json2[keys1[i]], { caseInsensitiveComparison })) {
- return false;
- }
- }
- return true;
- }
- return false;
- };
- exports2.isUniqueArray = function(arr, indexes) {
- var i, j, l = arr.length;
- for (i = 0; i < l; i++) {
- for (j = i + 1; j < l; j++) {
- if (exports2.areEqual(arr[i], arr[j])) {
- if (indexes) {
- indexes.push(i, j);
- }
- return false;
- }
- }
- }
- return true;
- };
- exports2.difference = function(bigSet, subSet) {
- var arr = [], idx = bigSet.length;
- while (idx--) {
- if (subSet.indexOf(bigSet[idx]) === -1) {
- arr.push(bigSet[idx]);
- }
- }
- return arr;
- };
- exports2.clone = function(src) {
- if (typeof src === "undefined") {
- return void 0;
- }
- if (typeof src !== "object" || src === null) {
- return src;
- }
- var res, idx;
- if (Array.isArray(src)) {
- res = [];
- idx = src.length;
- while (idx--) {
- res[idx] = src[idx];
- }
- } else {
- res = {};
- var keys = Object.keys(src);
- idx = keys.length;
- while (idx--) {
- var key = keys[idx];
- res[key] = src[key];
- }
- }
- return res;
- };
- exports2.cloneDeep = function(src) {
- var vidx = 0, visited = /* @__PURE__ */ new Map(), cloned = [];
- function cloneDeep(src2) {
- if (typeof src2 !== "object" || src2 === null) {
- return src2;
- }
- var res, idx, cidx;
- cidx = visited.get(src2);
- if (cidx !== void 0) {
- return cloned[cidx];
- }
- visited.set(src2, vidx++);
- if (Array.isArray(src2)) {
- res = [];
- cloned.push(res);
- idx = src2.length;
- while (idx--) {
- res[idx] = cloneDeep(src2[idx]);
- }
- } else {
- res = {};
- cloned.push(res);
- var keys = Object.keys(src2);
- idx = keys.length;
- while (idx--) {
- var key = keys[idx];
- res[key] = cloneDeep(src2[key]);
- }
- }
- return res;
- }
- return cloneDeep(src);
- };
- exports2.ucs2decode = function(string) {
- var output = [], counter = 0, length = string.length, value, extra;
- while (counter < length) {
- value = string.charCodeAt(counter++);
- if (value >= 55296 && value <= 56319 && counter < length) {
- extra = string.charCodeAt(counter++);
- if ((extra & 64512) == 56320) {
- output.push(((value & 1023) << 10) + (extra & 1023) + 65536);
- } else {
- output.push(value);
- counter--;
- }
- } else {
- output.push(value);
- }
- }
- return output;
- };
- }
- });
- // node_modules/z-schema/src/Report.js
- var require_Report = __commonJS({
- "node_modules/z-schema/src/Report.js"(exports2, module2) {
- "use strict";
- var get = require_lodash();
- var Errors = require_Errors();
- var Utils = require_Utils();
- function Report(parentOrOptions, reportOptions) {
- this.parentReport = parentOrOptions instanceof Report ? parentOrOptions : void 0;
- this.options = parentOrOptions instanceof Report ? parentOrOptions.options : parentOrOptions || {};
- this.reportOptions = reportOptions || {};
- this.errors = [];
- this.path = [];
- this.asyncTasks = [];
- this.rootSchema = void 0;
- this.commonErrorMessage = void 0;
- this.json = void 0;
- }
- Report.prototype.isValid = function() {
- if (this.asyncTasks.length > 0) {
- throw new Error("Async tasks pending, can't answer isValid");
- }
- return this.errors.length === 0;
- };
- Report.prototype.addAsyncTask = function(fn, args, asyncTaskResultProcessFn) {
- this.asyncTasks.push([fn, args, asyncTaskResultProcessFn]);
- };
- Report.prototype.getAncestor = function(id) {
- if (!this.parentReport) {
- return void 0;
- }
- if (this.parentReport.getSchemaId() === id) {
- return this.parentReport;
- }
- return this.parentReport.getAncestor(id);
- };
- Report.prototype.processAsyncTasks = function(timeout, callback) {
- var validationTimeout = timeout || 2e3, tasksCount = this.asyncTasks.length, idx = tasksCount, timedOut = false, self2 = this;
- function finish() {
- process.nextTick(function() {
- var valid = self2.errors.length === 0, err = valid ? null : self2.errors;
- callback(err, valid);
- });
- }
- function respond(asyncTaskResultProcessFn) {
- return function(asyncTaskResult) {
- if (timedOut) {
- return;
- }
- asyncTaskResultProcessFn(asyncTaskResult);
- if (--tasksCount === 0) {
- finish();
- }
- };
- }
- if (tasksCount === 0 || this.errors.length > 0 && this.options.breakOnFirstError) {
- finish();
- return;
- }
- while (idx--) {
- var task = this.asyncTasks[idx];
- task[0].apply(null, task[1].concat(respond(task[2])));
- }
- setTimeout(function() {
- if (tasksCount > 0) {
- timedOut = true;
- self2.addError("ASYNC_TIMEOUT", [tasksCount, validationTimeout]);
- callback(self2.errors, false);
- }
- }, validationTimeout);
- };
- Report.prototype.getPath = function(returnPathAsString) {
- var path2 = [];
- if (this.parentReport) {
- path2 = path2.concat(this.parentReport.path);
- }
- path2 = path2.concat(this.path);
- if (returnPathAsString !== true) {
- path2 = "#/" + path2.map(function(segment) {
- segment = segment.toString();
- if (Utils.isAbsoluteUri(segment)) {
- return "uri(" + segment + ")";
- }
- return segment.replace(/\~/g, "~0").replace(/\//g, "~1");
- }).join("/");
- }
- return path2;
- };
- Report.prototype.getSchemaId = function() {
- if (!this.rootSchema) {
- return null;
- }
- var path2 = [];
- if (this.parentReport) {
- path2 = path2.concat(this.parentReport.path);
- }
- path2 = path2.concat(this.path);
- while (path2.length > 0) {
- var obj = get(this.rootSchema, path2);
- if (obj && obj.id) {
- return obj.id;
- }
- path2.pop();
- }
- return this.rootSchema.id;
- };
- Report.prototype.hasError = function(errorCode, params) {
- var idx = this.errors.length;
- while (idx--) {
- if (this.errors[idx].code === errorCode) {
- var match = true;
- var idx2 = this.errors[idx].params.length;
- while (idx2--) {
- if (this.errors[idx].params[idx2] !== params[idx2]) {
- match = false;
- }
- }
- if (match) {
- return match;
- }
- }
- }
- return false;
- };
- Report.prototype.addError = function(errorCode, params, subReports, schema) {
- if (!errorCode) {
- throw new Error("No errorCode passed into addError()");
- }
- this.addCustomError(errorCode, Errors[errorCode], params, subReports, schema);
- };
- Report.prototype.getJson = function() {
- var self2 = this;
- while (self2.json === void 0) {
- self2 = self2.parentReport;
- if (self2 === void 0) {
- return void 0;
- }
- }
- return self2.json;
- };
- Report.prototype.addCustomError = function(errorCode, errorMessage, params, subReports, schema) {
- if (this.errors.length >= this.reportOptions.maxErrors) {
- return;
- }
- if (!errorMessage) {
- throw new Error("No errorMessage known for code " + errorCode);
- }
- params = params || [];
- var idx = params.length;
- while (idx--) {
- var whatIs = Utils.whatIs(params[idx]);
- var param = whatIs === "object" || whatIs === "null" ? JSON.stringify(params[idx]) : params[idx];
- errorMessage = errorMessage.replace("{" + idx + "}", param);
- }
- var err = {
- code: errorCode,
- params,
- message: errorMessage,
- path: this.getPath(this.options.reportPathAsArray),
- schemaId: this.getSchemaId()
- };
- err[Utils.schemaSymbol] = schema;
- err[Utils.jsonSymbol] = this.getJson();
- if (schema && typeof schema === "string") {
- err.description = schema;
- } else if (schema && typeof schema === "object") {
- if (schema.title) {
- err.title = schema.title;
- }
- if (schema.description) {
- err.description = schema.description;
- }
- }
- if (subReports != null) {
- if (!Array.isArray(subReports)) {
- subReports = [subReports];
- }
- err.inner = [];
- idx = subReports.length;
- while (idx--) {
- var subReport = subReports[idx], idx2 = subReport.errors.length;
- while (idx2--) {
- err.inner.push(subReport.errors[idx2]);
- }
- }
- if (err.inner.length === 0) {
- err.inner = void 0;
- }
- }
- this.errors.push(err);
- };
- module2.exports = Report;
- }
- });
- // node_modules/validator/lib/util/assertString.js
- var require_assertString = __commonJS({
- "node_modules/validator/lib/util/assertString.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = assertString;
- function assertString(input) {
- if (input === void 0 || input === null) throw new TypeError("Expected a string but received a ".concat(input));
- if (input.constructor.name !== "String") throw new TypeError("Expected a string but received a ".concat(input.constructor.name));
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/toDate.js
- var require_toDate = __commonJS({
- "node_modules/validator/lib/toDate.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = toDate;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function toDate(date) {
- (0, _assertString.default)(date);
- date = Date.parse(date);
- return !isNaN(date) ? new Date(date) : null;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/util/nullUndefinedCheck.js
- var require_nullUndefinedCheck = __commonJS({
- "node_modules/validator/lib/util/nullUndefinedCheck.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isNullOrUndefined;
- function isNullOrUndefined(value) {
- return value === null || value === void 0;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/alpha.js
- var require_alpha = __commonJS({
- "node_modules/validator/lib/alpha.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.farsiLocales = exports2.englishLocales = exports2.dotDecimal = exports2.decimal = exports2.commaDecimal = exports2.bengaliLocales = exports2.arabicLocales = exports2.alphanumeric = exports2.alpha = void 0;
- var alpha = exports2.alpha = {
- "en-US": /^[A-Z]+$/i,
- "az-AZ": /^[A-VXYZÇƏĞİıÖŞÜ]+$/i,
- "bg-BG": /^[А-Я]+$/i,
- "cs-CZ": /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,
- "da-DK": /^[A-ZÆØÅ]+$/i,
- "de-DE": /^[A-ZÄÖÜß]+$/i,
- "el-GR": /^[Α-ώ]+$/i,
- "es-ES": /^[A-ZÁÉÍÑÓÚÜ]+$/i,
- "fa-IR": /^[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$/i,
- "fi-FI": /^[A-ZÅÄÖ]+$/i,
- "fr-FR": /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,
- "it-IT": /^[A-ZÀÉÈÌÎÓÒÙ]+$/i,
- "ja-JP": /^[ぁ-んァ-ヶヲ-゚一-龠ー・。、]+$/i,
- "nb-NO": /^[A-ZÆØÅ]+$/i,
- "nl-NL": /^[A-ZÁÉËÏÓÖÜÚ]+$/i,
- "nn-NO": /^[A-ZÆØÅ]+$/i,
- "hu-HU": /^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,
- "pl-PL": /^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,
- "pt-PT": /^[A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,
- "ru-RU": /^[А-ЯЁ]+$/i,
- "kk-KZ": /^[А-ЯЁ\u04D8\u04B0\u0406\u04A2\u0492\u04AE\u049A\u04E8\u04BA]+$/i,
- "sl-SI": /^[A-ZČĆĐŠŽ]+$/i,
- "sk-SK": /^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,
- "sr-RS@latin": /^[A-ZČĆŽŠĐ]+$/i,
- "sr-RS": /^[А-ЯЂЈЉЊЋЏ]+$/i,
- "sv-SE": /^[A-ZÅÄÖ]+$/i,
- "th-TH": /^[ก-๐\s]+$/i,
- "tr-TR": /^[A-ZÇĞİıÖŞÜ]+$/i,
- "uk-UA": /^[А-ЩЬЮЯЄIЇҐі]+$/i,
- "vi-VN": /^[A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,
- "ko-KR": /^[ㄱ-ㅎㅏ-ㅣ가-힣]*$/,
- "ku-IQ": /^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,
- ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,
- he: /^[א-ת]+$/,
- fa: /^['آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی']+$/i,
- bn: /^['ঀঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣৰৱ৲৳৴৵৶৷৸৹৺৻']+$/,
- eo: /^[ABCĈD-GĜHĤIJĴK-PRSŜTUŬVZ]+$/i,
- "hi-IN": /^[\u0900-\u0961]+[\u0972-\u097F]*$/i,
- "si-LK": /^[\u0D80-\u0DFF]+$/,
- "ta-IN": /^[\u0B80-\u0BFF]+$/i,
- "te-IN": /^[\u0C00-\u0C7F]+$/i,
- "kn-IN": /^[\u0C80-\u0CFF]+$/i,
- "ml-IN": /^[\u0D00-\u0D7F]+$/i,
- "gu-IN": /^[\u0A80-\u0AFF]+$/i,
- "pa-IN": /^[\u0A00-\u0A7F]+$/i,
- "or-IN": /^[\u0B00-\u0B7F]+$/i
- };
- var alphanumeric = exports2.alphanumeric = {
- "en-US": /^[0-9A-Z]+$/i,
- "az-AZ": /^[0-9A-VXYZÇƏĞİıÖŞÜ]+$/i,
- "bg-BG": /^[0-9А-Я]+$/i,
- "cs-CZ": /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,
- "da-DK": /^[0-9A-ZÆØÅ]+$/i,
- "de-DE": /^[0-9A-ZÄÖÜß]+$/i,
- "el-GR": /^[0-9Α-ω]+$/i,
- "es-ES": /^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,
- "fi-FI": /^[0-9A-ZÅÄÖ]+$/i,
- "fr-FR": /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,
- "it-IT": /^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,
- "ja-JP": /^[0-90-9ぁ-んァ-ヶヲ-゚一-龠ー・。、]+$/i,
- "hu-HU": /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,
- "nb-NO": /^[0-9A-ZÆØÅ]+$/i,
- "nl-NL": /^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,
- "nn-NO": /^[0-9A-ZÆØÅ]+$/i,
- "pl-PL": /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,
- "pt-PT": /^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,
- "ru-RU": /^[0-9А-ЯЁ]+$/i,
- "kk-KZ": /^[0-9А-ЯЁ\u04D8\u04B0\u0406\u04A2\u0492\u04AE\u049A\u04E8\u04BA]+$/i,
- "sl-SI": /^[0-9A-ZČĆĐŠŽ]+$/i,
- "sk-SK": /^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,
- "sr-RS@latin": /^[0-9A-ZČĆŽŠĐ]+$/i,
- "sr-RS": /^[0-9А-ЯЂЈЉЊЋЏ]+$/i,
- "sv-SE": /^[0-9A-ZÅÄÖ]+$/i,
- "th-TH": /^[ก-๙\s]+$/i,
- "tr-TR": /^[0-9A-ZÇĞİıÖŞÜ]+$/i,
- "uk-UA": /^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,
- "ko-KR": /^[0-9ㄱ-ㅎㅏ-ㅣ가-힣]*$/,
- "ku-IQ": /^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,
- "vi-VN": /^[0-9A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,
- ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,
- he: /^[0-9א-ת]+$/,
- fa: /^['0-9آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی۱۲۳۴۵۶۷۸۹۰']+$/i,
- bn: /^['ঀঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣ০১২৩৪৫৬৭৮৯ৰৱ৲৳৴৵৶৷৸৹৺৻']+$/,
- eo: /^[0-9ABCĈD-GĜHĤIJĴK-PRSŜTUŬVZ]+$/i,
- "hi-IN": /^[\u0900-\u0963]+[\u0966-\u097F]*$/i,
- "si-LK": /^[0-9\u0D80-\u0DFF]+$/,
- "ta-IN": /^[0-9\u0B80-\u0BFF.]+$/i,
- "te-IN": /^[0-9\u0C00-\u0C7F.]+$/i,
- "kn-IN": /^[0-9\u0C80-\u0CFF.]+$/i,
- "ml-IN": /^[0-9\u0D00-\u0D7F.]+$/i,
- "gu-IN": /^[0-9\u0A80-\u0AFF.]+$/i,
- "pa-IN": /^[0-9\u0A00-\u0A7F.]+$/i,
- "or-IN": /^[0-9\u0B00-\u0B7F.]+$/i
- };
- var decimal = exports2.decimal = {
- "en-US": ".",
- ar: "\u066B"
- };
- var englishLocales = exports2.englishLocales = ["AU", "GB", "HK", "IN", "NZ", "ZA", "ZM"];
- for (i = 0; i < englishLocales.length; i++) {
- locale = "en-".concat(englishLocales[i]);
- alpha[locale] = alpha["en-US"];
- alphanumeric[locale] = alphanumeric["en-US"];
- decimal[locale] = decimal["en-US"];
- }
- var locale;
- var i;
- var arabicLocales = exports2.arabicLocales = ["AE", "BH", "DZ", "EG", "IQ", "JO", "KW", "LB", "LY", "MA", "QM", "QA", "SA", "SD", "SY", "TN", "YE"];
- for (_i = 0; _i < arabicLocales.length; _i++) {
- _locale = "ar-".concat(arabicLocales[_i]);
- alpha[_locale] = alpha.ar;
- alphanumeric[_locale] = alphanumeric.ar;
- decimal[_locale] = decimal.ar;
- }
- var _locale;
- var _i;
- var farsiLocales = exports2.farsiLocales = ["IR", "AF"];
- for (_i2 = 0; _i2 < farsiLocales.length; _i2++) {
- _locale2 = "fa-".concat(farsiLocales[_i2]);
- alphanumeric[_locale2] = alphanumeric.fa;
- decimal[_locale2] = decimal.ar;
- }
- var _locale2;
- var _i2;
- var bengaliLocales = exports2.bengaliLocales = ["BD", "IN"];
- for (_i3 = 0; _i3 < bengaliLocales.length; _i3++) {
- _locale3 = "bn-".concat(bengaliLocales[_i3]);
- alpha[_locale3] = alpha.bn;
- alphanumeric[_locale3] = alphanumeric.bn;
- decimal[_locale3] = decimal["en-US"];
- }
- var _locale3;
- var _i3;
- var dotDecimal = exports2.dotDecimal = ["ar-EG", "ar-LB", "ar-LY"];
- var commaDecimal = exports2.commaDecimal = ["bg-BG", "cs-CZ", "da-DK", "de-DE", "el-GR", "en-ZM", "eo", "es-ES", "fr-CA", "fr-FR", "gu-IN", "hi-IN", "hu-HU", "id-ID", "it-IT", "kk-KZ", "kn-IN", "ku-IQ", "ml-IN", "nb-NO", "nl-NL", "nn-NO", "or-IN", "pa-IN", "pl-PL", "pt-PT", "ru-RU", "si-LK", "sl-SI", "sr-RS", "sr-RS@latin", "sv-SE", "ta-IN", "te-IN", "tr-TR", "uk-UA", "vi-VN"];
- for (_i4 = 0; _i4 < dotDecimal.length; _i4++) {
- decimal[dotDecimal[_i4]] = decimal["en-US"];
- }
- var _i4;
- for (_i5 = 0; _i5 < commaDecimal.length; _i5++) {
- decimal[commaDecimal[_i5]] = ",";
- }
- var _i5;
- alpha["fr-CA"] = alpha["fr-FR"];
- alphanumeric["fr-CA"] = alphanumeric["fr-FR"];
- alpha["pt-BR"] = alpha["pt-PT"];
- alphanumeric["pt-BR"] = alphanumeric["pt-PT"];
- decimal["pt-BR"] = decimal["pt-PT"];
- alpha["pl-Pl"] = alpha["pl-PL"];
- alphanumeric["pl-Pl"] = alphanumeric["pl-PL"];
- decimal["pl-Pl"] = decimal["pl-PL"];
- alpha["fa-AF"] = alpha.fa;
- }
- });
- // node_modules/validator/lib/isFloat.js
- var require_isFloat = __commonJS({
- "node_modules/validator/lib/isFloat.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isFloat;
- exports2.locales = void 0;
- var _assertString = _interopRequireDefault(require_assertString());
- var _nullUndefinedCheck = _interopRequireDefault(require_nullUndefinedCheck());
- var _alpha = require_alpha();
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function isFloat(str, options) {
- (0, _assertString.default)(str);
- options = options || {};
- var float = new RegExp("^(?:[-+])?(?:[0-9]+)?(?:\\".concat(options.locale ? _alpha.decimal[options.locale] : ".", "[0-9]*)?(?:[eE][\\+\\-]?(?:[0-9]+))?$"));
- if (str === "" || str === "." || str === "," || str === "-" || str === "+") {
- return false;
- }
- var value = parseFloat(str.replace(",", "."));
- return float.test(str) && (!options.hasOwnProperty("min") || (0, _nullUndefinedCheck.default)(options.min) || value >= options.min) && (!options.hasOwnProperty("max") || (0, _nullUndefinedCheck.default)(options.max) || value <= options.max) && (!options.hasOwnProperty("lt") || (0, _nullUndefinedCheck.default)(options.lt) || value < options.lt) && (!options.hasOwnProperty("gt") || (0, _nullUndefinedCheck.default)(options.gt) || value > options.gt);
- }
- var locales = exports2.locales = Object.keys(_alpha.decimal);
- }
- });
- // node_modules/validator/lib/toFloat.js
- var require_toFloat = __commonJS({
- "node_modules/validator/lib/toFloat.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = toFloat;
- var _isFloat = _interopRequireDefault(require_isFloat());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function toFloat(str) {
- if (!(0, _isFloat.default)(str)) return NaN;
- return parseFloat(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/toInt.js
- var require_toInt = __commonJS({
- "node_modules/validator/lib/toInt.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = toInt;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function toInt(str, radix) {
- (0, _assertString.default)(str);
- return parseInt(str, radix || 10);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/toBoolean.js
- var require_toBoolean = __commonJS({
- "node_modules/validator/lib/toBoolean.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = toBoolean;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function toBoolean(str, strict) {
- (0, _assertString.default)(str);
- if (strict) {
- return str === "1" || /^true$/i.test(str);
- }
- return str !== "0" && !/^false$/i.test(str) && str !== "";
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/equals.js
- var require_equals = __commonJS({
- "node_modules/validator/lib/equals.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = equals;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function equals(str, comparison) {
- (0, _assertString.default)(str);
- return str === comparison;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/util/toString.js
- var require_toString = __commonJS({
- "node_modules/validator/lib/util/toString.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = toString2;
- function _typeof(o) {
- "@babel/helpers - typeof";
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
- return typeof o2;
- } : function(o2) {
- return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
- }, _typeof(o);
- }
- function toString2(input) {
- if (_typeof(input) === "object" && input !== null) {
- if (typeof input.toString === "function") {
- input = input.toString();
- } else {
- input = "[object Object]";
- }
- } else if (input === null || typeof input === "undefined" || isNaN(input) && !input.length) {
- input = "";
- }
- return String(input);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/util/merge.js
- var require_merge = __commonJS({
- "node_modules/validator/lib/util/merge.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = merge;
- function _typeof(o) {
- "@babel/helpers - typeof";
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
- return typeof o2;
- } : function(o2) {
- return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
- }, _typeof(o);
- }
- function merge() {
- var obj = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
- var defaults = arguments.length > 1 ? arguments[1] : void 0;
- if (_typeof(obj) !== "object" || obj === null) {
- obj = {};
- }
- for (var key in defaults) {
- if (typeof obj[key] === "undefined") {
- obj[key] = defaults[key];
- }
- }
- return obj;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/contains.js
- var require_contains = __commonJS({
- "node_modules/validator/lib/contains.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = contains;
- var _assertString = _interopRequireDefault(require_assertString());
- var _toString = _interopRequireDefault(require_toString());
- var _merge = _interopRequireDefault(require_merge());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var defaultContainsOptions = {
- ignoreCase: false,
- minOccurrences: 1
- };
- function contains(str, elem, options) {
- (0, _assertString.default)(str);
- options = (0, _merge.default)(options, defaultContainsOptions);
- if (options.ignoreCase) {
- return str.toLowerCase().split((0, _toString.default)(elem).toLowerCase()).length > options.minOccurrences;
- }
- return str.split((0, _toString.default)(elem)).length > options.minOccurrences;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/matches.js
- var require_matches = __commonJS({
- "node_modules/validator/lib/matches.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = matches;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function matches(str, pattern, modifiers) {
- (0, _assertString.default)(str);
- if (Object.prototype.toString.call(pattern) !== "[object RegExp]") {
- pattern = new RegExp(pattern, modifiers);
- }
- return !!str.match(pattern);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/util/checkHost.js
- var require_checkHost = __commonJS({
- "node_modules/validator/lib/util/checkHost.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = checkHost;
- function isRegExp(obj) {
- return Object.prototype.toString.call(obj) === "[object RegExp]";
- }
- function checkHost(host, matches) {
- for (var i = 0; i < matches.length; i++) {
- var match = matches[i];
- if (host === match || isRegExp(match) && match.test(host)) {
- return true;
- }
- }
- return false;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isByteLength.js
- var require_isByteLength = __commonJS({
- "node_modules/validator/lib/isByteLength.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isByteLength;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function _typeof(o) {
- "@babel/helpers - typeof";
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
- return typeof o2;
- } : function(o2) {
- return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
- }, _typeof(o);
- }
- function isByteLength(str, options) {
- (0, _assertString.default)(str);
- var min;
- var max;
- if (_typeof(options) === "object") {
- min = options.min || 0;
- max = options.max;
- } else {
- min = arguments[1];
- max = arguments[2];
- }
- var len = encodeURI(str).split(/%..|./).length - 1;
- return len >= min && (typeof max === "undefined" || len <= max);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isFQDN.js
- var require_isFQDN = __commonJS({
- "node_modules/validator/lib/isFQDN.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isFQDN;
- var _assertString = _interopRequireDefault(require_assertString());
- var _merge = _interopRequireDefault(require_merge());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var default_fqdn_options = {
- require_tld: true,
- allow_underscores: false,
- allow_trailing_dot: false,
- allow_numeric_tld: false,
- allow_wildcard: false,
- ignore_max_length: false
- };
- function isFQDN(str, options) {
- (0, _assertString.default)(str);
- options = (0, _merge.default)(options, default_fqdn_options);
- if (options.allow_trailing_dot && str[str.length - 1] === ".") {
- str = str.substring(0, str.length - 1);
- }
- if (options.allow_wildcard === true && str.indexOf("*.") === 0) {
- str = str.substring(2);
- }
- var parts = str.split(".");
- var tld = parts[parts.length - 1];
- if (options.require_tld) {
- if (parts.length < 2) {
- return false;
- }
- if (!options.allow_numeric_tld && !/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {
- return false;
- }
- if (/\s/.test(tld)) {
- return false;
- }
- }
- if (!options.allow_numeric_tld && /^\d+$/.test(tld)) {
- return false;
- }
- return parts.every(function(part) {
- if (part.length > 63 && !options.ignore_max_length) {
- return false;
- }
- if (!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(part)) {
- return false;
- }
- if (/[\uff01-\uff5e]/.test(part)) {
- return false;
- }
- if (/^-|-$/.test(part)) {
- return false;
- }
- if (!options.allow_underscores && /_/.test(part)) {
- return false;
- }
- return true;
- });
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isIP.js
- var require_isIP = __commonJS({
- "node_modules/validator/lib/isIP.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isIP;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function _typeof(o) {
- "@babel/helpers - typeof";
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
- return typeof o2;
- } : function(o2) {
- return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
- }, _typeof(o);
- }
- var IPv4SegmentFormat = "(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])";
- var IPv4AddressFormat = "(".concat(IPv4SegmentFormat, "[.]){3}").concat(IPv4SegmentFormat);
- var IPv4AddressRegExp = new RegExp("^".concat(IPv4AddressFormat, "$"));
- var IPv6SegmentFormat = "(?:[0-9a-fA-F]{1,4})";
- var IPv6AddressRegExp = new RegExp("^(" + "(?:".concat(IPv6SegmentFormat, ":){7}(?:").concat(IPv6SegmentFormat, "|:)|") + "(?:".concat(IPv6SegmentFormat, ":){6}(?:").concat(IPv4AddressFormat, "|:").concat(IPv6SegmentFormat, "|:)|") + "(?:".concat(IPv6SegmentFormat, ":){5}(?::").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,2}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){4}(?:(:").concat(IPv6SegmentFormat, "){0,1}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,3}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){3}(?:(:").concat(IPv6SegmentFormat, "){0,2}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,4}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){2}(?:(:").concat(IPv6SegmentFormat, "){0,3}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,5}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){1}(?:(:").concat(IPv6SegmentFormat, "){0,4}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,6}|:)|") + "(?::((?::".concat(IPv6SegmentFormat, "){0,5}:").concat(IPv4AddressFormat, "|(?::").concat(IPv6SegmentFormat, "){1,7}|:))") + ")(%[0-9a-zA-Z.]{1,})?$");
- function isIP(ipAddress) {
- var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
- (0, _assertString.default)(ipAddress);
- var version = (_typeof(options) === "object" ? options.version : arguments[1]) || "";
- if (!version) {
- return isIP(ipAddress, {
- version: 4
- }) || isIP(ipAddress, {
- version: 6
- });
- }
- if (version.toString() === "4") {
- return IPv4AddressRegExp.test(ipAddress);
- }
- if (version.toString() === "6") {
- return IPv6AddressRegExp.test(ipAddress);
- }
- return false;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isEmail.js
- var require_isEmail = __commonJS({
- "node_modules/validator/lib/isEmail.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isEmail;
- var _assertString = _interopRequireDefault(require_assertString());
- var _checkHost = _interopRequireDefault(require_checkHost());
- var _isByteLength = _interopRequireDefault(require_isByteLength());
- var _isFQDN = _interopRequireDefault(require_isFQDN());
- var _isIP = _interopRequireDefault(require_isIP());
- var _merge = _interopRequireDefault(require_merge());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var default_email_options = {
- allow_display_name: false,
- allow_underscores: false,
- require_display_name: false,
- allow_utf8_local_part: true,
- require_tld: true,
- blacklisted_chars: "",
- ignore_max_length: false,
- host_blacklist: [],
- host_whitelist: []
- };
- var splitNameAddress = /^([^\x00-\x1F\x7F-\x9F\cX]+)</i;
- var emailUserPart = /^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i;
- var gmailUserPart = /^[a-z\d]+$/;
- var quotedEmailUser = /^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i;
- var emailUserUtf8Part = /^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A1-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i;
- var quotedEmailUserUtf8 = /^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i;
- var defaultMaxEmailLength = 254;
- function validateDisplayName(display_name) {
- var display_name_without_quotes = display_name.replace(/^"(.+)"$/, "$1");
- if (!display_name_without_quotes.trim()) {
- return false;
- }
- var contains_illegal = /[\.";<>]/.test(display_name_without_quotes);
- if (contains_illegal) {
- if (display_name_without_quotes === display_name) {
- return false;
- }
- var all_start_with_back_slash = display_name_without_quotes.split('"').length === display_name_without_quotes.split('\\"').length;
- if (!all_start_with_back_slash) {
- return false;
- }
- }
- return true;
- }
- function isEmail(str, options) {
- (0, _assertString.default)(str);
- options = (0, _merge.default)(options, default_email_options);
- if (options.require_display_name || options.allow_display_name) {
- var display_email = str.match(splitNameAddress);
- if (display_email) {
- var display_name = display_email[1];
- str = str.replace(display_name, "").replace(/(^<|>$)/g, "");
- if (display_name.endsWith(" ")) {
- display_name = display_name.slice(0, -1);
- }
- if (!validateDisplayName(display_name)) {
- return false;
- }
- } else if (options.require_display_name) {
- return false;
- }
- }
- if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {
- return false;
- }
- var parts = str.split("@");
- var domain = parts.pop();
- var lower_domain = domain.toLowerCase();
- if (options.host_blacklist.length > 0 && (0, _checkHost.default)(lower_domain, options.host_blacklist)) {
- return false;
- }
- if (options.host_whitelist.length > 0 && !(0, _checkHost.default)(lower_domain, options.host_whitelist)) {
- return false;
- }
- var user = parts.join("@");
- if (options.domain_specific_validation && (lower_domain === "gmail.com" || lower_domain === "googlemail.com")) {
- user = user.toLowerCase();
- var username = user.split("+")[0];
- if (!(0, _isByteLength.default)(username.replace(/\./g, ""), {
- min: 6,
- max: 30
- })) {
- return false;
- }
- var _user_parts = username.split(".");
- for (var i = 0; i < _user_parts.length; i++) {
- if (!gmailUserPart.test(_user_parts[i])) {
- return false;
- }
- }
- }
- if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {
- max: 64
- }) || !(0, _isByteLength.default)(domain, {
- max: 254
- }))) {
- return false;
- }
- if (!(0, _isFQDN.default)(domain, {
- require_tld: options.require_tld,
- ignore_max_length: options.ignore_max_length,
- allow_underscores: options.allow_underscores
- })) {
- if (!options.allow_ip_domain) {
- return false;
- }
- if (!(0, _isIP.default)(domain)) {
- if (!domain.startsWith("[") || !domain.endsWith("]")) {
- return false;
- }
- var noBracketdomain = domain.slice(1, -1);
- if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {
- return false;
- }
- }
- }
- if (options.blacklisted_chars) {
- if (user.search(new RegExp("[".concat(options.blacklisted_chars, "]+"), "g")) !== -1) return false;
- }
- if (user[0] === '"' && user[user.length - 1] === '"') {
- user = user.slice(1, user.length - 1);
- return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);
- }
- var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;
- var user_parts = user.split(".");
- for (var _i = 0; _i < user_parts.length; _i++) {
- if (!pattern.test(user_parts[_i])) {
- return false;
- }
- }
- return true;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/util/includesString.js
- var require_includesString = __commonJS({
- "node_modules/validator/lib/util/includesString.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = void 0;
- var includes = function includes2(str, val) {
- return str.indexOf(val) !== -1;
- };
- var _default = exports2.default = includes;
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isURL.js
- var require_isURL = __commonJS({
- "node_modules/validator/lib/isURL.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isURL;
- var _assertString = _interopRequireDefault(require_assertString());
- var _checkHost = _interopRequireDefault(require_checkHost());
- var _includesString = _interopRequireDefault(require_includesString());
- var _isFQDN = _interopRequireDefault(require_isFQDN());
- var _isIP = _interopRequireDefault(require_isIP());
- var _merge = _interopRequireDefault(require_merge());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function _slicedToArray(r, e) {
- return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
- }
- function _nonIterableRest() {
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
- }
- function _unsupportedIterableToArray(r, a) {
- if (r) {
- if ("string" == typeof r) return _arrayLikeToArray(r, a);
- var t = {}.toString.call(r).slice(8, -1);
- return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
- }
- }
- function _arrayLikeToArray(r, a) {
- (null == a || a > r.length) && (a = r.length);
- for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
- return n;
- }
- function _iterableToArrayLimit(r, l) {
- var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
- if (null != t) {
- var e, n, i, u, a = [], f = true, o = false;
- try {
- if (i = (t = t.call(r)).next, 0 === l) {
- if (Object(t) !== t) return;
- f = false;
- } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = true) ;
- } catch (r2) {
- o = true, n = r2;
- } finally {
- try {
- if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
- } finally {
- if (o) throw n;
- }
- }
- return a;
- }
- }
- function _arrayWithHoles(r) {
- if (Array.isArray(r)) return r;
- }
- var default_url_options = {
- protocols: ["http", "https", "ftp"],
- require_tld: true,
- require_protocol: false,
- require_host: true,
- require_port: false,
- require_valid_protocol: true,
- allow_underscores: false,
- allow_trailing_dot: false,
- allow_protocol_relative_urls: false,
- allow_fragments: true,
- allow_query_components: true,
- validate_length: true,
- max_allowed_length: 2084
- };
- var wrapped_ipv6 = /^\[([^\]]+)\](?::([0-9]+))?$/;
- function isURL(url, options) {
- (0, _assertString.default)(url);
- if (!url || /[\s<>]/.test(url)) {
- return false;
- }
- if (url.indexOf("mailto:") === 0) {
- return false;
- }
- options = (0, _merge.default)(options, default_url_options);
- if (options.validate_length && url.length > options.max_allowed_length) {
- return false;
- }
- if (!options.allow_fragments && (0, _includesString.default)(url, "#")) {
- return false;
- }
- if (!options.allow_query_components && ((0, _includesString.default)(url, "?") || (0, _includesString.default)(url, "&"))) {
- return false;
- }
- var protocol, auth, host, hostname, port, port_str, split, ipv6;
- split = url.split("#");
- url = split.shift();
- split = url.split("?");
- url = split.shift();
- var protocol_match = url.match(/^([a-z][a-z0-9+\-.]*):/i);
- var had_explicit_protocol = false;
- var cleanUpProtocol = function cleanUpProtocol2(potential_protocol2) {
- had_explicit_protocol = true;
- protocol = potential_protocol2.toLowerCase();
- if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {
- return false;
- }
- return url.substring(protocol_match[0].length);
- };
- if (protocol_match) {
- var potential_protocol = protocol_match[1];
- var after_colon = url.substring(protocol_match[0].length);
- var starts_with_slashes = after_colon.slice(0, 2) === "//";
- if (!starts_with_slashes) {
- var first_slash_position = after_colon.indexOf("/");
- var before_slash = first_slash_position === -1 ? after_colon : after_colon.substring(0, first_slash_position);
- var at_position = before_slash.indexOf("@");
- if (at_position !== -1) {
- var before_at = before_slash.substring(0, at_position);
- var valid_auth_regex = /^[a-zA-Z0-9\-_.%:]*$/;
- var is_valid_auth = valid_auth_regex.test(before_at);
- var has_encoded_content = /%[0-9a-fA-F]{2}/.test(before_at);
- if (is_valid_auth && !has_encoded_content) {
- if (options.require_protocol) {
- return false;
- }
- } else {
- url = cleanUpProtocol(potential_protocol);
- if (url === false) {
- return false;
- }
- }
- } else {
- var looks_like_port = /^[0-9]/.test(after_colon);
- if (looks_like_port) {
- if (options.require_protocol) {
- return false;
- }
- } else {
- url = cleanUpProtocol(potential_protocol);
- if (url === false) {
- return false;
- }
- }
- }
- } else {
- url = cleanUpProtocol(potential_protocol);
- if (url === false) {
- return false;
- }
- }
- } else if (options.require_protocol) {
- return false;
- }
- if (url.slice(0, 2) === "//") {
- if (!had_explicit_protocol && !options.allow_protocol_relative_urls) {
- return false;
- }
- url = url.slice(2);
- }
- if (url === "") {
- return false;
- }
- split = url.split("/");
- url = split.shift();
- if (url === "" && !options.require_host) {
- return true;
- }
- split = url.split("@");
- if (split.length > 1) {
- if (options.disallow_auth) {
- return false;
- }
- if (split[0] === "") {
- return false;
- }
- auth = split.shift();
- if (auth.indexOf(":") >= 0 && auth.split(":").length > 2) {
- return false;
- }
- var _auth$split = auth.split(":"), _auth$split2 = _slicedToArray(_auth$split, 2), user = _auth$split2[0], password = _auth$split2[1];
- if (user === "" && password === "") {
- return false;
- }
- }
- hostname = split.join("@");
- port_str = null;
- ipv6 = null;
- var ipv6_match = hostname.match(wrapped_ipv6);
- if (ipv6_match) {
- host = "";
- ipv6 = ipv6_match[1];
- port_str = ipv6_match[2] || null;
- } else {
- split = hostname.split(":");
- host = split.shift();
- if (split.length) {
- port_str = split.join(":");
- }
- }
- if (port_str !== null && port_str.length > 0) {
- port = parseInt(port_str, 10);
- if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {
- return false;
- }
- } else if (options.require_port) {
- return false;
- }
- if (options.host_whitelist) {
- return (0, _checkHost.default)(host, options.host_whitelist);
- }
- if (host === "" && !options.require_host) {
- return true;
- }
- if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {
- return false;
- }
- host = host || ipv6;
- if (options.host_blacklist && (0, _checkHost.default)(host, options.host_blacklist)) {
- return false;
- }
- return true;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isMACAddress.js
- var require_isMACAddress = __commonJS({
- "node_modules/validator/lib/isMACAddress.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isMACAddress;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var macAddress48 = /^(?:[0-9a-fA-F]{2}([-:\s]))([0-9a-fA-F]{2}\1){4}([0-9a-fA-F]{2})$/;
- var macAddress48NoSeparators = /^([0-9a-fA-F]){12}$/;
- var macAddress48WithDots = /^([0-9a-fA-F]{4}\.){2}([0-9a-fA-F]{4})$/;
- var macAddress64 = /^(?:[0-9a-fA-F]{2}([-:\s]))([0-9a-fA-F]{2}\1){6}([0-9a-fA-F]{2})$/;
- var macAddress64NoSeparators = /^([0-9a-fA-F]){16}$/;
- var macAddress64WithDots = /^([0-9a-fA-F]{4}\.){3}([0-9a-fA-F]{4})$/;
- function isMACAddress(str, options) {
- (0, _assertString.default)(str);
- if (options !== null && options !== void 0 && options.eui) {
- options.eui = String(options.eui);
- }
- if (options !== null && options !== void 0 && options.no_colons || options !== null && options !== void 0 && options.no_separators) {
- if (options.eui === "48") {
- return macAddress48NoSeparators.test(str);
- }
- if (options.eui === "64") {
- return macAddress64NoSeparators.test(str);
- }
- return macAddress48NoSeparators.test(str) || macAddress64NoSeparators.test(str);
- }
- if ((options === null || options === void 0 ? void 0 : options.eui) === "48") {
- return macAddress48.test(str) || macAddress48WithDots.test(str);
- }
- if ((options === null || options === void 0 ? void 0 : options.eui) === "64") {
- return macAddress64.test(str) || macAddress64WithDots.test(str);
- }
- return isMACAddress(str, {
- eui: "48"
- }) || isMACAddress(str, {
- eui: "64"
- });
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isIPRange.js
- var require_isIPRange = __commonJS({
- "node_modules/validator/lib/isIPRange.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isIPRange;
- var _assertString = _interopRequireDefault(require_assertString());
- var _isIP = _interopRequireDefault(require_isIP());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var subnetMaybe = /^\d{1,3}$/;
- var v4Subnet = 32;
- var v6Subnet = 128;
- function isIPRange(str) {
- var version = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "";
- (0, _assertString.default)(str);
- var parts = str.split("/");
- if (parts.length !== 2) {
- return false;
- }
- if (!subnetMaybe.test(parts[1])) {
- return false;
- }
- if (parts[1].length > 1 && parts[1].startsWith("0")) {
- return false;
- }
- var isValidIP = (0, _isIP.default)(parts[0], version);
- if (!isValidIP) {
- return false;
- }
- var expectedSubnet = null;
- switch (String(version)) {
- case "4":
- expectedSubnet = v4Subnet;
- break;
- case "6":
- expectedSubnet = v6Subnet;
- break;
- default:
- expectedSubnet = (0, _isIP.default)(parts[0], "6") ? v6Subnet : v4Subnet;
- }
- return parts[1] <= expectedSubnet && parts[1] >= 0;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isDate.js
- var require_isDate = __commonJS({
- "node_modules/validator/lib/isDate.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isDate;
- var _merge = _interopRequireDefault(require_merge());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function _slicedToArray(r, e) {
- return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
- }
- function _nonIterableRest() {
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
- }
- function _iterableToArrayLimit(r, l) {
- var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
- if (null != t) {
- var e, n, i, u, a = [], f = true, o = false;
- try {
- if (i = (t = t.call(r)).next, 0 === l) {
- if (Object(t) !== t) return;
- f = false;
- } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = true) ;
- } catch (r2) {
- o = true, n = r2;
- } finally {
- try {
- if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
- } finally {
- if (o) throw n;
- }
- }
- return a;
- }
- }
- function _arrayWithHoles(r) {
- if (Array.isArray(r)) return r;
- }
- function _createForOfIteratorHelper(r, e) {
- var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
- if (!t) {
- if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) {
- t && (r = t);
- var _n = 0, F = function F2() {
- };
- return { s: F, n: function n() {
- return _n >= r.length ? { done: true } : { done: false, value: r[_n++] };
- }, e: function e2(r2) {
- throw r2;
- }, f: F };
- }
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
- }
- var o, a = true, u = false;
- return { s: function s() {
- t = t.call(r);
- }, n: function n() {
- var r2 = t.next();
- return a = r2.done, r2;
- }, e: function e2(r2) {
- u = true, o = r2;
- }, f: function f() {
- try {
- a || null == t.return || t.return();
- } finally {
- if (u) throw o;
- }
- } };
- }
- function _unsupportedIterableToArray(r, a) {
- if (r) {
- if ("string" == typeof r) return _arrayLikeToArray(r, a);
- var t = {}.toString.call(r).slice(8, -1);
- return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
- }
- }
- function _arrayLikeToArray(r, a) {
- (null == a || a > r.length) && (a = r.length);
- for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
- return n;
- }
- var default_date_options = {
- format: "YYYY/MM/DD",
- delimiters: ["/", "-"],
- strictMode: false
- };
- function isValidFormat(format) {
- return /(^(y{4}|y{2})[.\/-](m{1,2})[.\/-](d{1,2})$)|(^(m{1,2})[.\/-](d{1,2})[.\/-]((y{4}|y{2})$))|(^(d{1,2})[.\/-](m{1,2})[.\/-]((y{4}|y{2})$))/gi.test(format);
- }
- function zip(date, format) {
- var zippedArr = [], len = Math.max(date.length, format.length);
- for (var i = 0; i < len; i++) {
- zippedArr.push([date[i], format[i]]);
- }
- return zippedArr;
- }
- function isDate(input, options) {
- if (typeof options === "string") {
- options = (0, _merge.default)({
- format: options
- }, default_date_options);
- } else {
- options = (0, _merge.default)(options, default_date_options);
- }
- if (typeof input === "string" && isValidFormat(options.format)) {
- if (options.strictMode && input.length !== options.format.length) return false;
- var formatDelimiter = options.delimiters.find(function(delimiter) {
- return options.format.indexOf(delimiter) !== -1;
- });
- var dateDelimiter = options.strictMode ? formatDelimiter : options.delimiters.find(function(delimiter) {
- return input.indexOf(delimiter) !== -1;
- });
- var dateAndFormat = zip(input.split(dateDelimiter), options.format.toLowerCase().split(formatDelimiter));
- var dateObj = {};
- var _iterator = _createForOfIteratorHelper(dateAndFormat), _step;
- try {
- for (_iterator.s(); !(_step = _iterator.n()).done; ) {
- var _step$value = _slicedToArray(_step.value, 2), dateWord = _step$value[0], formatWord = _step$value[1];
- if (!dateWord || !formatWord || dateWord.length !== formatWord.length) {
- return false;
- }
- dateObj[formatWord.charAt(0)] = dateWord;
- }
- } catch (err) {
- _iterator.e(err);
- } finally {
- _iterator.f();
- }
- var fullYear = dateObj.y;
- if (fullYear.startsWith("-")) {
- return false;
- }
- if (dateObj.y.length === 2) {
- var parsedYear = parseInt(dateObj.y, 10);
- if (isNaN(parsedYear)) {
- return false;
- }
- var currentYearLastTwoDigits = (/* @__PURE__ */ new Date()).getFullYear() % 100;
- if (parsedYear < currentYearLastTwoDigits) {
- fullYear = "20".concat(dateObj.y);
- } else {
- fullYear = "19".concat(dateObj.y);
- }
- }
- var month = dateObj.m;
- if (dateObj.m.length === 1) {
- month = "0".concat(dateObj.m);
- }
- var day = dateObj.d;
- if (dateObj.d.length === 1) {
- day = "0".concat(dateObj.d);
- }
- return new Date("".concat(fullYear, "-").concat(month, "-").concat(day, "T00:00:00.000Z")).getUTCDate() === +dateObj.d;
- }
- if (!options.strictMode) {
- return Object.prototype.toString.call(input) === "[object Date]" && isFinite(input);
- }
- return false;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isTime.js
- var require_isTime = __commonJS({
- "node_modules/validator/lib/isTime.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isTime;
- var _merge = _interopRequireDefault(require_merge());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var default_time_options = {
- hourFormat: "hour24",
- mode: "default"
- };
- var formats = {
- hour24: {
- default: /^([01]?[0-9]|2[0-3]):([0-5][0-9])$/,
- withSeconds: /^([01]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/,
- withOptionalSeconds: /^([01]?[0-9]|2[0-3]):([0-5][0-9])(?::([0-5][0-9]))?$/
- },
- hour12: {
- default: /^(0?[1-9]|1[0-2]):([0-5][0-9]) (A|P)M$/,
- withSeconds: /^(0?[1-9]|1[0-2]):([0-5][0-9]):([0-5][0-9]) (A|P)M$/,
- withOptionalSeconds: /^(0?[1-9]|1[0-2]):([0-5][0-9])(?::([0-5][0-9]))? (A|P)M$/
- }
- };
- function isTime(input, options) {
- options = (0, _merge.default)(options, default_time_options);
- if (typeof input !== "string") return false;
- return formats[options.hourFormat][options.mode].test(input);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/util/includesArray.js
- var require_includesArray = __commonJS({
- "node_modules/validator/lib/util/includesArray.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = void 0;
- var includes = function includes2(arr, val) {
- return arr.some(function(arrVal) {
- return val === arrVal;
- });
- };
- var _default = exports2.default = includes;
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isBoolean.js
- var require_isBoolean = __commonJS({
- "node_modules/validator/lib/isBoolean.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isBoolean;
- var _assertString = _interopRequireDefault(require_assertString());
- var _includesArray = _interopRequireDefault(require_includesArray());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var defaultOptions = {
- loose: false
- };
- var strictBooleans = ["true", "false", "1", "0"];
- var looseBooleans = [].concat(strictBooleans, ["yes", "no"]);
- function isBoolean(str) {
- var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : defaultOptions;
- (0, _assertString.default)(str);
- if (options.loose) {
- return (0, _includesArray.default)(looseBooleans, str.toLowerCase());
- }
- return (0, _includesArray.default)(strictBooleans, str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isLocale.js
- var require_isLocale = __commonJS({
- "node_modules/validator/lib/isLocale.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isLocale;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var extlang = "([A-Za-z]{3}(-[A-Za-z]{3}){0,2})";
- var language = "(([a-zA-Z]{2,3}(-".concat(extlang, ")?)|([a-zA-Z]{5,8}))");
- var script = "([A-Za-z]{4})";
- var region = "([A-Za-z]{2}|\\d{3})";
- var variant = "([A-Za-z0-9]{5,8}|(\\d[A-Z-a-z0-9]{3}))";
- var singleton = "(\\d|[A-W]|[Y-Z]|[a-w]|[y-z])";
- var extension2 = "(".concat(singleton, "(-[A-Za-z0-9]{2,8})+)");
- var privateuse = "(x(-[A-Za-z0-9]{1,8})+)";
- var irregular = "((en-GB-oed)|(i-ami)|(i-bnn)|(i-default)|(i-enochian)|(i-hak)|(i-klingon)|(i-lux)|(i-mingo)|(i-navajo)|(i-pwn)|(i-tao)|(i-tay)|(i-tsu)|(sgn-BE-FR)|(sgn-BE-NL)|(sgn-CH-DE))";
- var regular = "((art-lojban)|(cel-gaulish)|(no-bok)|(no-nyn)|(zh-guoyu)|(zh-hakka)|(zh-min)|(zh-min-nan)|(zh-xiang))";
- var grandfathered = "(".concat(irregular, "|").concat(regular, ")");
- var delimiter = "(-|_)";
- var langtag = "".concat(language, "(").concat(delimiter).concat(script, ")?(").concat(delimiter).concat(region, ")?(").concat(delimiter).concat(variant, ")*(").concat(delimiter).concat(extension2, ")*(").concat(delimiter).concat(privateuse, ")?");
- var languageTagRegex = new RegExp("(^".concat(privateuse, "$)|(^").concat(grandfathered, "$)|(^").concat(langtag, "$)"));
- function isLocale(str) {
- (0, _assertString.default)(str);
- return languageTagRegex.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isAbaRouting.js
- var require_isAbaRouting = __commonJS({
- "node_modules/validator/lib/isAbaRouting.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isAbaRouting;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var isRoutingReg = /^(?!(1[3-9])|(20)|(3[3-9])|(4[0-9])|(5[0-9])|(60)|(7[3-9])|(8[1-9])|(9[0-2])|(9[3-9]))[0-9]{9}$/;
- function isAbaRouting(str) {
- (0, _assertString.default)(str);
- if (!isRoutingReg.test(str)) return false;
- var checkSumVal = 0;
- for (var i = 0; i < str.length; i++) {
- if (i % 3 === 0) checkSumVal += str[i] * 3;
- else if (i % 3 === 1) checkSumVal += str[i] * 7;
- else checkSumVal += str[i] * 1;
- }
- return checkSumVal % 10 === 0;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isAlpha.js
- var require_isAlpha = __commonJS({
- "node_modules/validator/lib/isAlpha.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isAlpha;
- exports2.locales = void 0;
- var _assertString = _interopRequireDefault(require_assertString());
- var _alpha = require_alpha();
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function isAlpha(_str) {
- var locale = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "en-US";
- var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
- (0, _assertString.default)(_str);
- var str = _str;
- var ignore = options.ignore;
- if (ignore) {
- if (ignore instanceof RegExp) {
- str = str.replace(ignore, "");
- } else if (typeof ignore === "string") {
- str = str.replace(new RegExp("[".concat(ignore.replace(/[-[\]{}()*+?.,\\^$|#\\s]/g, "\\$&"), "]"), "g"), "");
- } else {
- throw new Error("ignore should be instance of a String or RegExp");
- }
- }
- if (locale in _alpha.alpha) {
- return _alpha.alpha[locale].test(str);
- }
- throw new Error("Invalid locale '".concat(locale, "'"));
- }
- var locales = exports2.locales = Object.keys(_alpha.alpha);
- }
- });
- // node_modules/validator/lib/isAlphanumeric.js
- var require_isAlphanumeric = __commonJS({
- "node_modules/validator/lib/isAlphanumeric.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isAlphanumeric;
- exports2.locales = void 0;
- var _assertString = _interopRequireDefault(require_assertString());
- var _alpha = require_alpha();
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function isAlphanumeric(_str) {
- var locale = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "en-US";
- var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
- (0, _assertString.default)(_str);
- var str = _str;
- var ignore = options.ignore;
- if (ignore) {
- if (ignore instanceof RegExp) {
- str = str.replace(ignore, "");
- } else if (typeof ignore === "string") {
- str = str.replace(new RegExp("[".concat(ignore.replace(/[-[\]{}()*+?.,\\^$|#\\s]/g, "\\$&"), "]"), "g"), "");
- } else {
- throw new Error("ignore should be instance of a String or RegExp");
- }
- }
- if (locale in _alpha.alphanumeric) {
- return _alpha.alphanumeric[locale].test(str);
- }
- throw new Error("Invalid locale '".concat(locale, "'"));
- }
- var locales = exports2.locales = Object.keys(_alpha.alphanumeric);
- }
- });
- // node_modules/validator/lib/isNumeric.js
- var require_isNumeric = __commonJS({
- "node_modules/validator/lib/isNumeric.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isNumeric;
- var _assertString = _interopRequireDefault(require_assertString());
- var _alpha = require_alpha();
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var numericNoSymbols = /^[0-9]+$/;
- function isNumeric(str, options) {
- (0, _assertString.default)(str);
- if (options && options.no_symbols) {
- return numericNoSymbols.test(str);
- }
- return new RegExp("^[+-]?([0-9]*[".concat((options || {}).locale ? _alpha.decimal[options.locale] : ".", "])?[0-9]+$")).test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isPassportNumber.js
- var require_isPassportNumber = __commonJS({
- "node_modules/validator/lib/isPassportNumber.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isPassportNumber;
- exports2.locales = void 0;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var passportRegexByCountryCode = {
- AM: /^[A-Z]{2}\d{7}$/,
- // ARMENIA
- AR: /^[A-Z]{3}\d{6}$/,
- // ARGENTINA
- AT: /^[A-Z]\d{7}$/,
- // AUSTRIA
- AU: /^[A-Z]\d{7}$/,
- // AUSTRALIA
- AZ: /^[A-Z]{1}\d{8}$/,
- // AZERBAIJAN
- BE: /^[A-Z]{2}\d{6}$/,
- // BELGIUM
- BG: /^\d{9}$/,
- // BULGARIA
- BR: /^[A-Z]{2}\d{6}$/,
- // BRAZIL
- BY: /^[A-Z]{2}\d{7}$/,
- // BELARUS
- CA: /^[A-Z]{2}\d{6}$|^[A-Z]\d{6}[A-Z]{2}$/,
- // CANADA
- CH: /^[A-Z]\d{7}$/,
- // SWITZERLAND
- CN: /^G\d{8}$|^E(?![IO])[A-Z0-9]\d{7}$/,
- // CHINA [G=Ordinary, E=Electronic] followed by 8-digits, or E followed by any UPPERCASE letter (except I and O) followed by 7 digits
- CY: /^[A-Z](\d{6}|\d{8})$/,
- // CYPRUS
- CZ: /^\d{8}$/,
- // CZECH REPUBLIC
- DE: /^[CFGHJKLMNPRTVWXYZ0-9]{9}$/,
- // GERMANY
- DK: /^\d{9}$/,
- // DENMARK
- DZ: /^\d{9}$/,
- // ALGERIA
- EE: /^([A-Z]\d{7}|[A-Z]{2}\d{7})$/,
- // ESTONIA (K followed by 7-digits), e-passports have 2 UPPERCASE followed by 7 digits
- ES: /^[A-Z0-9]{2}([A-Z0-9]?)\d{6}$/,
- // SPAIN
- FI: /^[A-Z]{2}\d{7}$/,
- // FINLAND
- FR: /^\d{2}[A-Z]{2}\d{5}$/,
- // FRANCE
- GB: /^\d{9}$/,
- // UNITED KINGDOM
- GR: /^[A-Z]{2}\d{7}$/,
- // GREECE
- HR: /^\d{9}$/,
- // CROATIA
- HU: /^[A-Z]{2}(\d{6}|\d{7})$/,
- // HUNGARY
- IE: /^[A-Z0-9]{2}\d{7}$/,
- // IRELAND
- IN: /^[A-Z]{1}-?\d{7}$/,
- // INDIA
- ID: /^[A-C]\d{7}$/,
- // INDONESIA
- IR: /^[A-Z]\d{8}$/,
- // IRAN
- IS: /^(A)\d{7}$/,
- // ICELAND
- IT: /^[A-Z0-9]{2}\d{7}$/,
- // ITALY
- JM: /^[Aa]\d{7}$/,
- // JAMAICA
- JP: /^[A-Z]{2}\d{7}$/,
- // JAPAN
- KR: /^[MS]\d{8}$/,
- // SOUTH KOREA, REPUBLIC OF KOREA, [S=PS Passports, M=PM Passports]
- KZ: /^[a-zA-Z]\d{7}$/,
- // KAZAKHSTAN
- LI: /^[a-zA-Z]\d{5}$/,
- // LIECHTENSTEIN
- LT: /^[A-Z0-9]{8}$/,
- // LITHUANIA
- LU: /^[A-Z0-9]{8}$/,
- // LUXEMBURG
- LV: /^[A-Z0-9]{2}\d{7}$/,
- // LATVIA
- LY: /^[A-Z0-9]{8}$/,
- // LIBYA
- MT: /^\d{7}$/,
- // MALTA
- MZ: /^([A-Z]{2}\d{7})|(\d{2}[A-Z]{2}\d{5})$/,
- // MOZAMBIQUE
- MY: /^[AHK]\d{8}$/,
- // MALAYSIA
- MX: /^[A-Z]\d{8}$/,
- // MEXICO
- NL: /^[A-Z]{2}[A-Z0-9]{6}\d$/,
- // NETHERLANDS
- NZ: /^([Ll]([Aa]|[Dd]|[Ff]|[Hh])|[Ee]([Aa]|[Pp])|[Nn])\d{6}$/,
- // NEW ZEALAND
- PH: /^([A-Z](\d{6}|\d{7}[A-Z]))|([A-Z]{2}(\d{6}|\d{7}))$/,
- // PHILIPPINES
- PK: /^[A-Z]{2}\d{7}$/,
- // PAKISTAN
- PL: /^[A-Z]{2}\d{7}$/,
- // POLAND
- PT: /^[A-Z]\d{6}$/,
- // PORTUGAL
- RO: /^\d{8,9}$/,
- // ROMANIA
- RU: /^\d{9}$/,
- // RUSSIAN FEDERATION
- SE: /^\d{8}$/,
- // SWEDEN
- SL: /^(P)[A-Z]\d{7}$/,
- // SLOVENIA
- SK: /^[0-9A-Z]\d{7}$/,
- // SLOVAKIA
- TH: /^[A-Z]{1,2}\d{6,7}$/,
- // THAILAND
- TR: /^[A-Z]\d{8}$/,
- // TURKEY
- UA: /^[A-Z]{2}\d{6}$/,
- // UKRAINE
- US: /^\d{9}$|^[A-Z]\d{8}$/,
- // UNITED STATES
- ZA: /^[TAMD]\d{8}$/
- // SOUTH AFRICA
- };
- var locales = exports2.locales = Object.keys(passportRegexByCountryCode);
- function isPassportNumber(str, countryCode) {
- (0, _assertString.default)(str);
- var normalizedStr = str.replace(/\s/g, "").toUpperCase();
- return countryCode.toUpperCase() in passportRegexByCountryCode && passportRegexByCountryCode[countryCode].test(normalizedStr);
- }
- }
- });
- // node_modules/validator/lib/isInt.js
- var require_isInt = __commonJS({
- "node_modules/validator/lib/isInt.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isInt;
- var _assertString = _interopRequireDefault(require_assertString());
- var _nullUndefinedCheck = _interopRequireDefault(require_nullUndefinedCheck());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var int = /^(?:[-+]?(?:0|[1-9][0-9]*))$/;
- var intLeadingZeroes = /^[-+]?[0-9]+$/;
- function isInt(str, options) {
- (0, _assertString.default)(str);
- options = options || {};
- var regex = options.allow_leading_zeroes === false ? int : intLeadingZeroes;
- var minCheckPassed = !options.hasOwnProperty("min") || (0, _nullUndefinedCheck.default)(options.min) || str >= options.min;
- var maxCheckPassed = !options.hasOwnProperty("max") || (0, _nullUndefinedCheck.default)(options.max) || str <= options.max;
- var ltCheckPassed = !options.hasOwnProperty("lt") || (0, _nullUndefinedCheck.default)(options.lt) || str < options.lt;
- var gtCheckPassed = !options.hasOwnProperty("gt") || (0, _nullUndefinedCheck.default)(options.gt) || str > options.gt;
- return regex.test(str) && minCheckPassed && maxCheckPassed && ltCheckPassed && gtCheckPassed;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isPort.js
- var require_isPort = __commonJS({
- "node_modules/validator/lib/isPort.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isPort;
- var _isInt = _interopRequireDefault(require_isInt());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function isPort(str) {
- return (0, _isInt.default)(str, {
- allow_leading_zeroes: false,
- min: 0,
- max: 65535
- });
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isLowercase.js
- var require_isLowercase = __commonJS({
- "node_modules/validator/lib/isLowercase.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isLowercase;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function isLowercase(str) {
- (0, _assertString.default)(str);
- return str === str.toLowerCase();
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isUppercase.js
- var require_isUppercase = __commonJS({
- "node_modules/validator/lib/isUppercase.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isUppercase;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function isUppercase(str) {
- (0, _assertString.default)(str);
- return str === str.toUpperCase();
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isIMEI.js
- var require_isIMEI = __commonJS({
- "node_modules/validator/lib/isIMEI.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isIMEI;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var imeiRegexWithoutHyphens = /^[0-9]{15}$/;
- var imeiRegexWithHyphens = /^\d{2}-\d{6}-\d{6}-\d{1}$/;
- function isIMEI(str, options) {
- (0, _assertString.default)(str);
- options = options || {};
- var imeiRegex = imeiRegexWithoutHyphens;
- if (options.allow_hyphens) {
- imeiRegex = imeiRegexWithHyphens;
- }
- if (!imeiRegex.test(str)) {
- return false;
- }
- str = str.replace(/-/g, "");
- var sum = 0, mul = 2, l = 14;
- for (var i = 0; i < l; i++) {
- var digit = str.substring(l - i - 1, l - i);
- var tp = parseInt(digit, 10) * mul;
- if (tp >= 10) {
- sum += tp % 10 + 1;
- } else {
- sum += tp;
- }
- if (mul === 1) {
- mul += 1;
- } else {
- mul -= 1;
- }
- }
- var chk = (10 - sum % 10) % 10;
- if (chk !== parseInt(str.substring(14, 15), 10)) {
- return false;
- }
- return true;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isAscii.js
- var require_isAscii = __commonJS({
- "node_modules/validator/lib/isAscii.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isAscii;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var ascii = /^[\x00-\x7F]+$/;
- function isAscii(str) {
- (0, _assertString.default)(str);
- return ascii.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isFullWidth.js
- var require_isFullWidth = __commonJS({
- "node_modules/validator/lib/isFullWidth.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isFullWidth;
- exports2.fullWidth = void 0;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var fullWidth = exports2.fullWidth = /[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/;
- function isFullWidth(str) {
- (0, _assertString.default)(str);
- return fullWidth.test(str);
- }
- }
- });
- // node_modules/validator/lib/isHalfWidth.js
- var require_isHalfWidth = __commonJS({
- "node_modules/validator/lib/isHalfWidth.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isHalfWidth;
- exports2.halfWidth = void 0;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var halfWidth = exports2.halfWidth = /[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/;
- function isHalfWidth(str) {
- (0, _assertString.default)(str);
- return halfWidth.test(str);
- }
- }
- });
- // node_modules/validator/lib/isVariableWidth.js
- var require_isVariableWidth = __commonJS({
- "node_modules/validator/lib/isVariableWidth.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isVariableWidth;
- var _assertString = _interopRequireDefault(require_assertString());
- var _isFullWidth = require_isFullWidth();
- var _isHalfWidth = require_isHalfWidth();
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function isVariableWidth(str) {
- (0, _assertString.default)(str);
- return _isFullWidth.fullWidth.test(str) && _isHalfWidth.halfWidth.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isMultibyte.js
- var require_isMultibyte = __commonJS({
- "node_modules/validator/lib/isMultibyte.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isMultibyte;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var multibyte = /[^\x00-\x7F]/;
- function isMultibyte(str) {
- (0, _assertString.default)(str);
- return multibyte.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/util/multilineRegex.js
- var require_multilineRegex = __commonJS({
- "node_modules/validator/lib/util/multilineRegex.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = multilineRegexp;
- function multilineRegexp(parts, flags) {
- var regexpAsStringLiteral = parts.join("");
- return new RegExp(regexpAsStringLiteral, flags);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isSemVer.js
- var require_isSemVer = __commonJS({
- "node_modules/validator/lib/isSemVer.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isSemVer;
- var _assertString = _interopRequireDefault(require_assertString());
- var _multilineRegex = _interopRequireDefault(require_multilineRegex());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var semanticVersioningRegex = (0, _multilineRegex.default)(["^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)", "(?:-((?:0|[1-9]\\d*|\\d*[a-z-][0-9a-z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-z-][0-9a-z-]*))*))", "?(?:\\+([0-9a-z-]+(?:\\.[0-9a-z-]+)*))?$"], "i");
- function isSemVer(str) {
- (0, _assertString.default)(str);
- return semanticVersioningRegex.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isSurrogatePair.js
- var require_isSurrogatePair = __commonJS({
- "node_modules/validator/lib/isSurrogatePair.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isSurrogatePair;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var surrogatePair = /[\uD800-\uDBFF][\uDC00-\uDFFF]/;
- function isSurrogatePair(str) {
- (0, _assertString.default)(str);
- return surrogatePair.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isDecimal.js
- var require_isDecimal = __commonJS({
- "node_modules/validator/lib/isDecimal.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isDecimal;
- var _merge = _interopRequireDefault(require_merge());
- var _assertString = _interopRequireDefault(require_assertString());
- var _includesArray = _interopRequireDefault(require_includesArray());
- var _alpha = require_alpha();
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function decimalRegExp(options) {
- var regExp = new RegExp("^[-+]?([0-9]+)?(\\".concat(_alpha.decimal[options.locale], "[0-9]{").concat(options.decimal_digits, "})").concat(options.force_decimal ? "" : "?", "$"));
- return regExp;
- }
- var default_decimal_options = {
- force_decimal: false,
- decimal_digits: "1,",
- locale: "en-US"
- };
- var blacklist = ["", "-", "+"];
- function isDecimal(str, options) {
- (0, _assertString.default)(str);
- options = (0, _merge.default)(options, default_decimal_options);
- if (options.locale in _alpha.decimal) {
- return !(0, _includesArray.default)(blacklist, str.replace(/ /g, "")) && decimalRegExp(options).test(str);
- }
- throw new Error("Invalid locale '".concat(options.locale, "'"));
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isHexadecimal.js
- var require_isHexadecimal = __commonJS({
- "node_modules/validator/lib/isHexadecimal.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isHexadecimal;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var hexadecimal = /^(0x|0h)?[0-9A-F]+$/i;
- function isHexadecimal(str) {
- (0, _assertString.default)(str);
- return hexadecimal.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isOctal.js
- var require_isOctal = __commonJS({
- "node_modules/validator/lib/isOctal.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isOctal;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var octal = /^(0o)?[0-7]+$/i;
- function isOctal(str) {
- (0, _assertString.default)(str);
- return octal.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isDivisibleBy.js
- var require_isDivisibleBy = __commonJS({
- "node_modules/validator/lib/isDivisibleBy.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isDivisibleBy;
- var _assertString = _interopRequireDefault(require_assertString());
- var _toFloat = _interopRequireDefault(require_toFloat());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function isDivisibleBy(str, num) {
- (0, _assertString.default)(str);
- return (0, _toFloat.default)(str) % parseInt(num, 10) === 0;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isHexColor.js
- var require_isHexColor = __commonJS({
- "node_modules/validator/lib/isHexColor.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isHexColor;
- var _assertString = _interopRequireDefault(require_assertString());
- var _merge = _interopRequireDefault(require_merge());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var hexcolor = /^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;
- var hexcolor_with_prefix = /^#([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;
- var default_is_hexcolor_options = {
- require_hashtag: false
- };
- function isHexColor(str, options) {
- (0, _assertString.default)(str);
- options = (0, _merge.default)(options, default_is_hexcolor_options);
- var hexcolor_regex = options.require_hashtag ? hexcolor_with_prefix : hexcolor;
- return hexcolor_regex.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isRgbColor.js
- var require_isRgbColor = __commonJS({
- "node_modules/validator/lib/isRgbColor.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isRgbColor;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function _typeof(o) {
- "@babel/helpers - typeof";
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
- return typeof o2;
- } : function(o2) {
- return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
- }, _typeof(o);
- }
- var rgbColor = /^rgb\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\)$/;
- var rgbaColor = /^rgba\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){3}(0?\.\d\d?|1(\.0)?|0(\.0)?)\)$/;
- var rgbColorPercent = /^rgb\((([0-9]%|[1-9][0-9]%|100%),){2}([0-9]%|[1-9][0-9]%|100%)\)$/;
- var rgbaColorPercent = /^rgba\((([0-9]%|[1-9][0-9]%|100%),){3}(0?\.\d\d?|1(\.0)?|0(\.0)?)\)$/;
- var startsWithRgb = /^rgba?/;
- function isRgbColor(str, options) {
- (0, _assertString.default)(str);
- var allowSpaces = false;
- var includePercentValues = true;
- if (_typeof(options) !== "object") {
- if (arguments.length >= 2) {
- includePercentValues = arguments[1];
- }
- } else {
- allowSpaces = options.allowSpaces !== void 0 ? options.allowSpaces : allowSpaces;
- includePercentValues = options.includePercentValues !== void 0 ? options.includePercentValues : includePercentValues;
- }
- if (allowSpaces) {
- if (!startsWithRgb.test(str)) {
- return false;
- }
- str = str.replace(/\s/g, "");
- }
- if (!includePercentValues) {
- return rgbColor.test(str) || rgbaColor.test(str);
- }
- return rgbColor.test(str) || rgbaColor.test(str) || rgbColorPercent.test(str) || rgbaColorPercent.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isHSL.js
- var require_isHSL = __commonJS({
- "node_modules/validator/lib/isHSL.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isHSL;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var hslComma = /^hsla?\(((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?))(deg|grad|rad|turn)?(,(\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%){2}(,((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%?))?\)$/i;
- var hslSpace = /^hsla?\(((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?))(deg|grad|rad|turn)?(\s(\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%){2}\s?(\/\s((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%?)\s?)?\)$/i;
- function isHSL(str) {
- (0, _assertString.default)(str);
- var strippedStr = str.replace(/\s+/g, " ").replace(/\s?(hsla?\(|\)|,)\s?/ig, "$1");
- if (strippedStr.indexOf(",") !== -1) {
- return hslComma.test(strippedStr);
- }
- return hslSpace.test(strippedStr);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isISRC.js
- var require_isISRC = __commonJS({
- "node_modules/validator/lib/isISRC.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isISRC;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var isrc = /^[A-Z]{2}[0-9A-Z]{3}\d{2}\d{5}$/;
- function isISRC(str) {
- (0, _assertString.default)(str);
- return isrc.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isIBAN.js
- var require_isIBAN = __commonJS({
- "node_modules/validator/lib/isIBAN.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isIBAN;
- exports2.locales = void 0;
- var _assertString = _interopRequireDefault(require_assertString());
- var _includesArray = _interopRequireDefault(require_includesArray());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var ibanRegexThroughCountryCode = {
- AD: /^(AD[0-9]{2})\d{8}[A-Z0-9]{12}$/,
- AE: /^(AE[0-9]{2})\d{3}\d{16}$/,
- AL: /^(AL[0-9]{2})\d{8}[A-Z0-9]{16}$/,
- AT: /^(AT[0-9]{2})\d{16}$/,
- AZ: /^(AZ[0-9]{2})[A-Z0-9]{4}\d{20}$/,
- BA: /^(BA[0-9]{2})\d{16}$/,
- BE: /^(BE[0-9]{2})\d{12}$/,
- BG: /^(BG[0-9]{2})[A-Z]{4}\d{6}[A-Z0-9]{8}$/,
- BH: /^(BH[0-9]{2})[A-Z]{4}[A-Z0-9]{14}$/,
- BR: /^(BR[0-9]{2})\d{23}[A-Z]{1}[A-Z0-9]{1}$/,
- BY: /^(BY[0-9]{2})[A-Z0-9]{4}\d{20}$/,
- CH: /^(CH[0-9]{2})\d{5}[A-Z0-9]{12}$/,
- CR: /^(CR[0-9]{2})\d{18}$/,
- CY: /^(CY[0-9]{2})\d{8}[A-Z0-9]{16}$/,
- CZ: /^(CZ[0-9]{2})\d{20}$/,
- DE: /^(DE[0-9]{2})\d{18}$/,
- DK: /^(DK[0-9]{2})\d{14}$/,
- DO: /^(DO[0-9]{2})[A-Z]{4}\d{20}$/,
- DZ: /^(DZ\d{24})$/,
- EE: /^(EE[0-9]{2})\d{16}$/,
- EG: /^(EG[0-9]{2})\d{25}$/,
- ES: /^(ES[0-9]{2})\d{20}$/,
- FI: /^(FI[0-9]{2})\d{14}$/,
- FO: /^(FO[0-9]{2})\d{14}$/,
- FR: /^(FR[0-9]{2})\d{10}[A-Z0-9]{11}\d{2}$/,
- GB: /^(GB[0-9]{2})[A-Z]{4}\d{14}$/,
- GE: /^(GE[0-9]{2})[A-Z0-9]{2}\d{16}$/,
- GI: /^(GI[0-9]{2})[A-Z]{4}[A-Z0-9]{15}$/,
- GL: /^(GL[0-9]{2})\d{14}$/,
- GR: /^(GR[0-9]{2})\d{7}[A-Z0-9]{16}$/,
- GT: /^(GT[0-9]{2})[A-Z0-9]{4}[A-Z0-9]{20}$/,
- HR: /^(HR[0-9]{2})\d{17}$/,
- HU: /^(HU[0-9]{2})\d{24}$/,
- IE: /^(IE[0-9]{2})[A-Z]{4}\d{14}$/,
- IL: /^(IL[0-9]{2})\d{19}$/,
- IQ: /^(IQ[0-9]{2})[A-Z]{4}\d{15}$/,
- IR: /^(IR[0-9]{2})\d{22}$/,
- IS: /^(IS[0-9]{2})\d{22}$/,
- IT: /^(IT[0-9]{2})[A-Z]{1}\d{10}[A-Z0-9]{12}$/,
- JO: /^(JO[0-9]{2})[A-Z]{4}\d{22}$/,
- KW: /^(KW[0-9]{2})[A-Z]{4}[A-Z0-9]{22}$/,
- KZ: /^(KZ[0-9]{2})\d{3}[A-Z0-9]{13}$/,
- LB: /^(LB[0-9]{2})\d{4}[A-Z0-9]{20}$/,
- LC: /^(LC[0-9]{2})[A-Z]{4}[A-Z0-9]{24}$/,
- LI: /^(LI[0-9]{2})\d{5}[A-Z0-9]{12}$/,
- LT: /^(LT[0-9]{2})\d{16}$/,
- LU: /^(LU[0-9]{2})\d{3}[A-Z0-9]{13}$/,
- LV: /^(LV[0-9]{2})[A-Z]{4}[A-Z0-9]{13}$/,
- MA: /^(MA[0-9]{26})$/,
- MC: /^(MC[0-9]{2})\d{10}[A-Z0-9]{11}\d{2}$/,
- MD: /^(MD[0-9]{2})[A-Z0-9]{20}$/,
- ME: /^(ME[0-9]{2})\d{18}$/,
- MK: /^(MK[0-9]{2})\d{3}[A-Z0-9]{10}\d{2}$/,
- MR: /^(MR[0-9]{2})\d{23}$/,
- MT: /^(MT[0-9]{2})[A-Z]{4}\d{5}[A-Z0-9]{18}$/,
- MU: /^(MU[0-9]{2})[A-Z]{4}\d{19}[A-Z]{3}$/,
- MZ: /^(MZ[0-9]{2})\d{21}$/,
- NL: /^(NL[0-9]{2})[A-Z]{4}\d{10}$/,
- NO: /^(NO[0-9]{2})\d{11}$/,
- PK: /^(PK[0-9]{2})[A-Z0-9]{4}\d{16}$/,
- PL: /^(PL[0-9]{2})\d{24}$/,
- PS: /^(PS[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/,
- PT: /^(PT[0-9]{2})\d{21}$/,
- QA: /^(QA[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/,
- RO: /^(RO[0-9]{2})[A-Z]{4}[A-Z0-9]{16}$/,
- RS: /^(RS[0-9]{2})\d{18}$/,
- SA: /^(SA[0-9]{2})\d{2}[A-Z0-9]{18}$/,
- SC: /^(SC[0-9]{2})[A-Z]{4}\d{20}[A-Z]{3}$/,
- SE: /^(SE[0-9]{2})\d{20}$/,
- SI: /^(SI[0-9]{2})\d{15}$/,
- SK: /^(SK[0-9]{2})\d{20}$/,
- SM: /^(SM[0-9]{2})[A-Z]{1}\d{10}[A-Z0-9]{12}$/,
- SV: /^(SV[0-9]{2})[A-Z0-9]{4}\d{20}$/,
- TL: /^(TL[0-9]{2})\d{19}$/,
- TN: /^(TN[0-9]{2})\d{20}$/,
- TR: /^(TR[0-9]{2})\d{5}[A-Z0-9]{17}$/,
- UA: /^(UA[0-9]{2})\d{6}[A-Z0-9]{19}$/,
- VA: /^(VA[0-9]{2})\d{18}$/,
- VG: /^(VG[0-9]{2})[A-Z]{4}\d{16}$/,
- XK: /^(XK[0-9]{2})\d{16}$/
- };
- function hasOnlyValidCountryCodes(countryCodeArray) {
- var countryCodeArrayFilteredWithObjectIbanCode = countryCodeArray.filter(function(countryCode) {
- return !(countryCode in ibanRegexThroughCountryCode);
- });
- return countryCodeArrayFilteredWithObjectIbanCode.length === 0;
- }
- function hasValidIbanFormat(str, options) {
- var strippedStr = str.replace(/[\s\-]+/gi, "").toUpperCase();
- var isoCountryCode = strippedStr.slice(0, 2).toUpperCase();
- var isoCountryCodeInIbanRegexCodeObject = isoCountryCode in ibanRegexThroughCountryCode;
- if (options.whitelist) {
- if (!hasOnlyValidCountryCodes(options.whitelist)) {
- return false;
- }
- var isoCountryCodeInWhiteList = (0, _includesArray.default)(options.whitelist, isoCountryCode);
- if (!isoCountryCodeInWhiteList) {
- return false;
- }
- }
- if (options.blacklist) {
- var isoCountryCodeInBlackList = (0, _includesArray.default)(options.blacklist, isoCountryCode);
- if (isoCountryCodeInBlackList) {
- return false;
- }
- }
- return isoCountryCodeInIbanRegexCodeObject && ibanRegexThroughCountryCode[isoCountryCode].test(strippedStr);
- }
- function hasValidIbanChecksum(str) {
- var strippedStr = str.replace(/[^A-Z0-9]+/gi, "").toUpperCase();
- var rearranged = strippedStr.slice(4) + strippedStr.slice(0, 4);
- var alphaCapsReplacedWithDigits = rearranged.replace(/[A-Z]/g, function(char) {
- return char.charCodeAt(0) - 55;
- });
- var remainder = alphaCapsReplacedWithDigits.match(/\d{1,7}/g).reduce(function(acc, value) {
- return Number(acc + value) % 97;
- }, "");
- return remainder === 1;
- }
- function isIBAN(str) {
- var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
- (0, _assertString.default)(str);
- return hasValidIbanFormat(str, options) && hasValidIbanChecksum(str);
- }
- var locales = exports2.locales = Object.keys(ibanRegexThroughCountryCode);
- }
- });
- // node_modules/validator/lib/isISO31661Alpha2.js
- var require_isISO31661Alpha2 = __commonJS({
- "node_modules/validator/lib/isISO31661Alpha2.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.CountryCodes = void 0;
- exports2.default = isISO31661Alpha2;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var validISO31661Alpha2CountriesCodes = /* @__PURE__ */ new Set(["AD", "AE", "AF", "AG", "AI", "AL", "AM", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CW", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SV", "SX", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "YE", "YT", "ZA", "ZM", "ZW"]);
- var alpha2CountryCode = /^[a-zA-Z]{2}$/;
- function isISO31661Alpha2(str) {
- var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
- (0, _assertString.default)(str);
- var userAssignedCodes = options.userAssignedCodes;
- var validUserAssignedCodes = (userAssignedCodes || []).reduce(function(accumulator, userAssignedCode) {
- if (alpha2CountryCode.test(userAssignedCode)) {
- accumulator.push(userAssignedCode.toUpperCase());
- }
- return accumulator;
- }, []);
- if (validUserAssignedCodes.includes(str.toUpperCase())) {
- return true;
- }
- return validISO31661Alpha2CountriesCodes.has(str.toUpperCase());
- }
- var CountryCodes = exports2.CountryCodes = validISO31661Alpha2CountriesCodes;
- }
- });
- // node_modules/validator/lib/isBIC.js
- var require_isBIC = __commonJS({
- "node_modules/validator/lib/isBIC.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isBIC;
- var _assertString = _interopRequireDefault(require_assertString());
- var _isISO31661Alpha = require_isISO31661Alpha2();
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var isBICReg = /^[A-Za-z]{6}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$/;
- function isBIC(str) {
- (0, _assertString.default)(str);
- var countryCode = str.slice(4, 6).toUpperCase();
- if (!_isISO31661Alpha.CountryCodes.has(countryCode) && countryCode !== "XK") {
- return false;
- }
- return isBICReg.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isMD5.js
- var require_isMD5 = __commonJS({
- "node_modules/validator/lib/isMD5.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isMD5;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var md5 = /^[a-f0-9]{32}$/;
- function isMD5(str) {
- (0, _assertString.default)(str);
- return md5.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isHash.js
- var require_isHash = __commonJS({
- "node_modules/validator/lib/isHash.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isHash;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var lengths = {
- md5: 32,
- md4: 32,
- sha1: 40,
- sha256: 64,
- sha384: 96,
- sha512: 128,
- ripemd128: 32,
- ripemd160: 40,
- tiger128: 32,
- tiger160: 40,
- tiger192: 48,
- crc32: 8,
- crc32b: 8
- };
- function isHash(str, algorithm) {
- (0, _assertString.default)(str);
- var hash = new RegExp("^[a-fA-F0-9]{".concat(lengths[algorithm], "}$"));
- return hash.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isBase64.js
- var require_isBase64 = __commonJS({
- "node_modules/validator/lib/isBase64.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isBase64;
- var _assertString = _interopRequireDefault(require_assertString());
- var _merge = _interopRequireDefault(require_merge());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var base64WithPadding = /^[A-Za-z0-9+/]+={0,2}$/;
- var base64WithoutPadding = /^[A-Za-z0-9+/]+$/;
- var base64UrlWithPadding = /^[A-Za-z0-9_-]+={0,2}$/;
- var base64UrlWithoutPadding = /^[A-Za-z0-9_-]+$/;
- function isBase64(str, options) {
- var _options;
- (0, _assertString.default)(str);
- options = (0, _merge.default)(options, {
- urlSafe: false,
- padding: !((_options = options) !== null && _options !== void 0 && _options.urlSafe)
- });
- if (str === "") return true;
- if (options.padding && str.length % 4 !== 0) return false;
- var regex;
- if (options.urlSafe) {
- regex = options.padding ? base64UrlWithPadding : base64UrlWithoutPadding;
- } else {
- regex = options.padding ? base64WithPadding : base64WithoutPadding;
- }
- return (!options.padding || str.length % 4 === 0) && regex.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isJWT.js
- var require_isJWT = __commonJS({
- "node_modules/validator/lib/isJWT.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isJWT;
- var _assertString = _interopRequireDefault(require_assertString());
- var _isBase = _interopRequireDefault(require_isBase64());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function isJWT(str) {
- (0, _assertString.default)(str);
- var dotSplit = str.split(".");
- var len = dotSplit.length;
- if (len !== 3) {
- return false;
- }
- return dotSplit.reduce(function(acc, currElem) {
- return acc && (0, _isBase.default)(currElem, {
- urlSafe: true
- });
- }, true);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isJSON.js
- var require_isJSON = __commonJS({
- "node_modules/validator/lib/isJSON.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isJSON;
- var _assertString = _interopRequireDefault(require_assertString());
- var _includesArray = _interopRequireDefault(require_includesArray());
- var _merge = _interopRequireDefault(require_merge());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function _typeof(o) {
- "@babel/helpers - typeof";
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
- return typeof o2;
- } : function(o2) {
- return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
- }, _typeof(o);
- }
- var default_json_options = {
- allow_primitives: false,
- allow_any_value: false
- };
- function isJSON(str, options) {
- (0, _assertString.default)(str);
- try {
- options = (0, _merge.default)(options, default_json_options);
- var obj = JSON.parse(str);
- if (options.allow_any_value) {
- return true;
- }
- var primitives = [];
- if (options.allow_primitives) {
- primitives = [null, false, true];
- }
- return (0, _includesArray.default)(primitives, obj) || !!obj && _typeof(obj) === "object";
- } catch (e) {
- }
- return false;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isEmpty.js
- var require_isEmpty = __commonJS({
- "node_modules/validator/lib/isEmpty.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isEmpty;
- var _assertString = _interopRequireDefault(require_assertString());
- var _merge = _interopRequireDefault(require_merge());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var default_is_empty_options = {
- ignore_whitespace: false
- };
- function isEmpty(str, options) {
- (0, _assertString.default)(str);
- options = (0, _merge.default)(options, default_is_empty_options);
- return (options.ignore_whitespace ? str.trim().length : str.length) === 0;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isLength.js
- var require_isLength = __commonJS({
- "node_modules/validator/lib/isLength.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isLength;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function _typeof(o) {
- "@babel/helpers - typeof";
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
- return typeof o2;
- } : function(o2) {
- return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
- }, _typeof(o);
- }
- function isLength(str, options) {
- (0, _assertString.default)(str);
- var min;
- var max;
- if (_typeof(options) === "object") {
- min = options.min || 0;
- max = options.max;
- } else {
- min = arguments[1] || 0;
- max = arguments[2];
- }
- var presentationSequences = str.match(/[^\uFE0F\uFE0E][\uFE0F\uFE0E]/g) || [];
- var surrogatePairs = str.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g) || [];
- var len = str.length - presentationSequences.length - surrogatePairs.length;
- var isInsideRange = len >= min && (typeof max === "undefined" || len <= max);
- if (isInsideRange && Array.isArray(options === null || options === void 0 ? void 0 : options.discreteLengths)) {
- return options.discreteLengths.some(function(discreteLen) {
- return discreteLen === len;
- });
- }
- return isInsideRange;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isULID.js
- var require_isULID = __commonJS({
- "node_modules/validator/lib/isULID.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isULID;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function isULID(str) {
- (0, _assertString.default)(str);
- return /^[0-7][0-9A-HJKMNP-TV-Z]{25}$/i.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isUUID.js
- var require_isUUID = __commonJS({
- "node_modules/validator/lib/isUUID.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isUUID;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var uuid = {
- 1: /^[0-9A-F]{8}-[0-9A-F]{4}-1[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,
- 2: /^[0-9A-F]{8}-[0-9A-F]{4}-2[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,
- 3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,
- 4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,
- 5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,
- 6: /^[0-9A-F]{8}-[0-9A-F]{4}-6[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,
- 7: /^[0-9A-F]{8}-[0-9A-F]{4}-7[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,
- 8: /^[0-9A-F]{8}-[0-9A-F]{4}-8[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,
- nil: /^00000000-0000-0000-0000-000000000000$/i,
- max: /^ffffffff-ffff-ffff-ffff-ffffffffffff$/i,
- loose: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i,
- // From https://github.com/uuidjs/uuid/blob/main/src/regex.js
- all: /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i
- };
- function isUUID(str, version) {
- (0, _assertString.default)(str);
- if (version === void 0 || version === null) {
- version = "all";
- }
- return version in uuid ? uuid[version].test(str) : false;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isMongoId.js
- var require_isMongoId = __commonJS({
- "node_modules/validator/lib/isMongoId.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isMongoId;
- var _assertString = _interopRequireDefault(require_assertString());
- var _isHexadecimal = _interopRequireDefault(require_isHexadecimal());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function isMongoId(str) {
- (0, _assertString.default)(str);
- return (0, _isHexadecimal.default)(str) && str.length === 24;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isAfter.js
- var require_isAfter = __commonJS({
- "node_modules/validator/lib/isAfter.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isAfter;
- var _toDate = _interopRequireDefault(require_toDate());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function _typeof(o) {
- "@babel/helpers - typeof";
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
- return typeof o2;
- } : function(o2) {
- return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
- }, _typeof(o);
- }
- function isAfter(date, options) {
- var comparisonDate = (_typeof(options) === "object" ? options.comparisonDate : options) || Date().toString();
- var comparison = (0, _toDate.default)(comparisonDate);
- var original = (0, _toDate.default)(date);
- return !!(original && comparison && original > comparison);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isBefore.js
- var require_isBefore = __commonJS({
- "node_modules/validator/lib/isBefore.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isBefore;
- var _toDate = _interopRequireDefault(require_toDate());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function _typeof(o) {
- "@babel/helpers - typeof";
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
- return typeof o2;
- } : function(o2) {
- return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
- }, _typeof(o);
- }
- function isBefore(date, options) {
- var comparisonDate = (_typeof(options) === "object" ? options.comparisonDate : options) || Date().toString();
- var comparison = (0, _toDate.default)(comparisonDate);
- var original = (0, _toDate.default)(date);
- return !!(original && comparison && original < comparison);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isIn.js
- var require_isIn = __commonJS({
- "node_modules/validator/lib/isIn.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isIn;
- var _assertString = _interopRequireDefault(require_assertString());
- var _toString = _interopRequireDefault(require_toString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function _typeof(o) {
- "@babel/helpers - typeof";
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
- return typeof o2;
- } : function(o2) {
- return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
- }, _typeof(o);
- }
- function isIn(str, options) {
- (0, _assertString.default)(str);
- var i;
- if (Object.prototype.toString.call(options) === "[object Array]") {
- var array = [];
- for (i in options) {
- if ({}.hasOwnProperty.call(options, i)) {
- array[i] = (0, _toString.default)(options[i]);
- }
- }
- return array.indexOf(str) >= 0;
- } else if (_typeof(options) === "object") {
- return options.hasOwnProperty(str);
- } else if (options && typeof options.indexOf === "function") {
- return options.indexOf(str) >= 0;
- }
- return false;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isLuhnNumber.js
- var require_isLuhnNumber = __commonJS({
- "node_modules/validator/lib/isLuhnNumber.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isLuhnNumber;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function isLuhnNumber(str) {
- (0, _assertString.default)(str);
- var sanitized = str.replace(/[- ]+/g, "");
- var sum = 0;
- var digit;
- var tmpNum;
- var shouldDouble;
- for (var i = sanitized.length - 1; i >= 0; i--) {
- digit = sanitized.substring(i, i + 1);
- tmpNum = parseInt(digit, 10);
- if (shouldDouble) {
- tmpNum *= 2;
- if (tmpNum >= 10) {
- sum += tmpNum % 10 + 1;
- } else {
- sum += tmpNum;
- }
- } else {
- sum += tmpNum;
- }
- shouldDouble = !shouldDouble;
- }
- return !!(sum % 10 === 0 ? sanitized : false);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isCreditCard.js
- var require_isCreditCard = __commonJS({
- "node_modules/validator/lib/isCreditCard.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isCreditCard;
- var _assertString = _interopRequireDefault(require_assertString());
- var _isLuhnNumber = _interopRequireDefault(require_isLuhnNumber());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var cards = {
- amex: /^3[47][0-9]{13}$/,
- dinersclub: /^3(?:0[0-5]|[68][0-9])[0-9]{11}$/,
- discover: /^6(?:011|5[0-9][0-9])[0-9]{12,15}$/,
- jcb: /^(?:2131|1800|35\d{3})\d{11}$/,
- mastercard: /^5[1-5][0-9]{2}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}$/,
- // /^[25][1-7][0-9]{14}$/;
- unionpay: /^(6[27][0-9]{14}|^(81[0-9]{14,17}))$/,
- visa: /^(?:4[0-9]{12})(?:[0-9]{3,6})?$/
- };
- var allCards = (function() {
- var tmpCardsArray = [];
- for (var cardProvider in cards) {
- if (cards.hasOwnProperty(cardProvider)) {
- tmpCardsArray.push(cards[cardProvider]);
- }
- }
- return tmpCardsArray;
- })();
- function isCreditCard(card) {
- var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
- (0, _assertString.default)(card);
- var provider = options.provider;
- var sanitized = card.replace(/[- ]+/g, "");
- if (provider && provider.toLowerCase() in cards) {
- if (!cards[provider.toLowerCase()].test(sanitized)) {
- return false;
- }
- } else if (provider && !(provider.toLowerCase() in cards)) {
- throw new Error("".concat(provider, " is not a valid credit card provider."));
- } else if (!allCards.some(function(cardProvider) {
- return cardProvider.test(sanitized);
- })) {
- return false;
- }
- return (0, _isLuhnNumber.default)(card);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isIdentityCard.js
- var require_isIdentityCard = __commonJS({
- "node_modules/validator/lib/isIdentityCard.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isIdentityCard;
- var _assertString = _interopRequireDefault(require_assertString());
- var _includesArray = _interopRequireDefault(require_includesArray());
- var _isInt = _interopRequireDefault(require_isInt());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var validators = {
- PL: function PL(str) {
- (0, _assertString.default)(str);
- var weightOfDigits = {
- 1: 1,
- 2: 3,
- 3: 7,
- 4: 9,
- 5: 1,
- 6: 3,
- 7: 7,
- 8: 9,
- 9: 1,
- 10: 3,
- 11: 0
- };
- if (str != null && str.length === 11 && (0, _isInt.default)(str, {
- allow_leading_zeroes: true
- })) {
- var digits = str.split("").slice(0, -1);
- var sum = digits.reduce(function(acc, digit, index) {
- return acc + Number(digit) * weightOfDigits[index + 1];
- }, 0);
- var modulo = sum % 10;
- var lastDigit = Number(str.charAt(str.length - 1));
- if (modulo === 0 && lastDigit === 0 || lastDigit === 10 - modulo) {
- return true;
- }
- }
- return false;
- },
- ES: function ES(str) {
- (0, _assertString.default)(str);
- var DNI = /^[0-9X-Z][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$/;
- var charsValue = {
- X: 0,
- Y: 1,
- Z: 2
- };
- var controlDigits = ["T", "R", "W", "A", "G", "M", "Y", "F", "P", "D", "X", "B", "N", "J", "Z", "S", "Q", "V", "H", "L", "C", "K", "E"];
- var sanitized = str.trim().toUpperCase();
- if (!DNI.test(sanitized)) {
- return false;
- }
- var number = sanitized.slice(0, -1).replace(/[X,Y,Z]/g, function(char) {
- return charsValue[char];
- });
- return sanitized.endsWith(controlDigits[number % 23]);
- },
- FI: function FI(str) {
- (0, _assertString.default)(str);
- if (str.length !== 11) {
- return false;
- }
- if (!str.match(/^\d{6}[\-A\+]\d{3}[0-9ABCDEFHJKLMNPRSTUVWXY]{1}$/)) {
- return false;
- }
- var checkDigits = "0123456789ABCDEFHJKLMNPRSTUVWXY";
- var idAsNumber = parseInt(str.slice(0, 6), 10) * 1e3 + parseInt(str.slice(7, 10), 10);
- var remainder = idAsNumber % 31;
- var checkDigit = checkDigits[remainder];
- return checkDigit === str.slice(10, 11);
- },
- IN: function IN(str) {
- var DNI = /^[1-9]\d{3}\s?\d{4}\s?\d{4}$/;
- var d = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]];
- var p = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]];
- var sanitized = str.trim();
- if (!DNI.test(sanitized)) {
- return false;
- }
- var c = 0;
- var invertedArray = sanitized.replace(/\s/g, "").split("").map(Number).reverse();
- invertedArray.forEach(function(val, i) {
- c = d[c][p[i % 8][val]];
- });
- return c === 0;
- },
- IR: function IR(str) {
- if (!str.match(/^\d{10}$/)) return false;
- str = "0000".concat(str).slice(str.length - 6);
- if (parseInt(str.slice(3, 9), 10) === 0) return false;
- var lastNumber = parseInt(str.slice(9, 10), 10);
- var sum = 0;
- for (var i = 0; i < 9; i++) {
- sum += parseInt(str.slice(i, i + 1), 10) * (10 - i);
- }
- sum %= 11;
- return sum < 2 && lastNumber === sum || sum >= 2 && lastNumber === 11 - sum;
- },
- IT: function IT(str) {
- if (str.length !== 9) return false;
- if (str === "CA00000AA") return false;
- return str.search(/C[A-Z]\d{5}[A-Z]{2}/i) > -1;
- },
- NO: function NO(str) {
- var sanitized = str.trim();
- if (isNaN(Number(sanitized))) return false;
- if (sanitized.length !== 11) return false;
- if (sanitized === "00000000000") return false;
- var f = sanitized.split("").map(Number);
- var k1 = (11 - (3 * f[0] + 7 * f[1] + 6 * f[2] + 1 * f[3] + 8 * f[4] + 9 * f[5] + 4 * f[6] + 5 * f[7] + 2 * f[8]) % 11) % 11;
- var k2 = (11 - (5 * f[0] + 4 * f[1] + 3 * f[2] + 2 * f[3] + 7 * f[4] + 6 * f[5] + 5 * f[6] + 4 * f[7] + 3 * f[8] + 2 * k1) % 11) % 11;
- if (k1 !== f[9] || k2 !== f[10]) return false;
- return true;
- },
- TH: function TH(str) {
- if (!str.match(/^[1-8]\d{12}$/)) return false;
- var sum = 0;
- for (var i = 0; i < 12; i++) {
- sum += parseInt(str[i], 10) * (13 - i);
- }
- return str[12] === ((11 - sum % 11) % 10).toString();
- },
- LK: function LK(str) {
- var old_nic = /^[1-9]\d{8}[vx]$/i;
- var new_nic = /^[1-9]\d{11}$/i;
- if (str.length === 10 && old_nic.test(str)) return true;
- else if (str.length === 12 && new_nic.test(str)) return true;
- return false;
- },
- "he-IL": function heIL(str) {
- var DNI = /^\d{9}$/;
- var sanitized = str.trim();
- if (!DNI.test(sanitized)) {
- return false;
- }
- var id = sanitized;
- var sum = 0, incNum;
- for (var i = 0; i < id.length; i++) {
- incNum = Number(id[i]) * (i % 2 + 1);
- sum += incNum > 9 ? incNum - 9 : incNum;
- }
- return sum % 10 === 0;
- },
- "ar-LY": function arLY(str) {
- var NIN = /^(1|2)\d{11}$/;
- var sanitized = str.trim();
- return NIN.test(sanitized);
- },
- "ar-TN": function arTN(str) {
- var DNI = /^\d{8}$/;
- var sanitized = str.trim();
- return DNI.test(sanitized);
- },
- "zh-CN": function zhCN(str) {
- var provincesAndCities = [
- "11",
- // 北京
- "12",
- // 天津
- "13",
- // 河北
- "14",
- // 山西
- "15",
- // 内蒙古
- "21",
- // 辽宁
- "22",
- // 吉林
- "23",
- // 黑龙江
- "31",
- // 上海
- "32",
- // 江苏
- "33",
- // 浙江
- "34",
- // 安徽
- "35",
- // 福建
- "36",
- // 江西
- "37",
- // 山东
- "41",
- // 河南
- "42",
- // 湖北
- "43",
- // 湖南
- "44",
- // 广东
- "45",
- // 广西
- "46",
- // 海南
- "50",
- // 重庆
- "51",
- // 四川
- "52",
- // 贵州
- "53",
- // 云南
- "54",
- // 西藏
- "61",
- // 陕西
- "62",
- // 甘肃
- "63",
- // 青海
- "64",
- // 宁夏
- "65",
- // 新疆
- "71",
- // 台湾
- "81",
- // 香港
- "82",
- // 澳门
- "91"
- // 国外
- ];
- var powers = ["7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7", "9", "10", "5", "8", "4", "2"];
- var parityBit = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];
- var checkAddressCode = function checkAddressCode2(addressCode) {
- return (0, _includesArray.default)(provincesAndCities, addressCode);
- };
- var checkBirthDayCode = function checkBirthDayCode2(birDayCode) {
- var yyyy = parseInt(birDayCode.substring(0, 4), 10);
- var mm = parseInt(birDayCode.substring(4, 6), 10);
- var dd = parseInt(birDayCode.substring(6), 10);
- var xdata = new Date(yyyy, mm - 1, dd);
- if (xdata > /* @__PURE__ */ new Date()) {
- return false;
- } else if (xdata.getFullYear() === yyyy && xdata.getMonth() === mm - 1 && xdata.getDate() === dd) {
- return true;
- }
- return false;
- };
- var getParityBit = function getParityBit2(idCardNo) {
- var id17 = idCardNo.substring(0, 17);
- var power = 0;
- for (var i = 0; i < 17; i++) {
- power += parseInt(id17.charAt(i), 10) * parseInt(powers[i], 10);
- }
- var mod = power % 11;
- return parityBit[mod];
- };
- var checkParityBit = function checkParityBit2(idCardNo) {
- return getParityBit(idCardNo) === idCardNo.charAt(17).toUpperCase();
- };
- var check15IdCardNo = function check15IdCardNo2(idCardNo) {
- var check = /^[1-9]\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}$/.test(idCardNo);
- if (!check) return false;
- var addressCode = idCardNo.substring(0, 2);
- check = checkAddressCode(addressCode);
- if (!check) return false;
- var birDayCode = "19".concat(idCardNo.substring(6, 12));
- check = checkBirthDayCode(birDayCode);
- if (!check) return false;
- return true;
- };
- var check18IdCardNo = function check18IdCardNo2(idCardNo) {
- var check = /^[1-9]\d{5}[1-9]\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}(\d|x|X)$/.test(idCardNo);
- if (!check) return false;
- var addressCode = idCardNo.substring(0, 2);
- check = checkAddressCode(addressCode);
- if (!check) return false;
- var birDayCode = idCardNo.substring(6, 14);
- check = checkBirthDayCode(birDayCode);
- if (!check) return false;
- return checkParityBit(idCardNo);
- };
- var checkIdCardNo = function checkIdCardNo2(idCardNo) {
- var check = /^\d{15}|(\d{17}(\d|x|X))$/.test(idCardNo);
- if (!check) return false;
- if (idCardNo.length === 15) {
- return check15IdCardNo(idCardNo);
- }
- return check18IdCardNo(idCardNo);
- };
- return checkIdCardNo(str);
- },
- "zh-HK": function zhHK(str) {
- str = str.trim();
- var regexHKID = /^[A-Z]{1,2}[0-9]{6}((\([0-9A]\))|(\[[0-9A]\])|([0-9A]))$/;
- var regexIsDigit = /^[0-9]$/;
- str = str.toUpperCase();
- if (!regexHKID.test(str)) return false;
- str = str.replace(/\[|\]|\(|\)/g, "");
- if (str.length === 8) str = "3".concat(str);
- var checkSumVal = 0;
- for (var i = 0; i <= 7; i++) {
- var convertedChar = void 0;
- if (!regexIsDigit.test(str[i])) convertedChar = (str[i].charCodeAt(0) - 55) % 11;
- else convertedChar = str[i];
- checkSumVal += convertedChar * (9 - i);
- }
- checkSumVal %= 11;
- var checkSumConverted;
- if (checkSumVal === 0) checkSumConverted = "0";
- else if (checkSumVal === 1) checkSumConverted = "A";
- else checkSumConverted = String(11 - checkSumVal);
- if (checkSumConverted === str[str.length - 1]) return true;
- return false;
- },
- "zh-TW": function zhTW(str) {
- var ALPHABET_CODES = {
- A: 10,
- B: 11,
- C: 12,
- D: 13,
- E: 14,
- F: 15,
- G: 16,
- H: 17,
- I: 34,
- J: 18,
- K: 19,
- L: 20,
- M: 21,
- N: 22,
- O: 35,
- P: 23,
- Q: 24,
- R: 25,
- S: 26,
- T: 27,
- U: 28,
- V: 29,
- W: 32,
- X: 30,
- Y: 31,
- Z: 33
- };
- var sanitized = str.trim().toUpperCase();
- if (!/^[A-Z][0-9]{9}$/.test(sanitized)) return false;
- return Array.from(sanitized).reduce(function(sum, number, index) {
- if (index === 0) {
- var code = ALPHABET_CODES[number];
- return code % 10 * 9 + Math.floor(code / 10);
- }
- if (index === 9) {
- return (10 - sum % 10 - Number(number)) % 10 === 0;
- }
- return sum + Number(number) * (9 - index);
- }, 0);
- },
- PK: function PK(str) {
- var CNIC = /^[1-7][0-9]{4}-[0-9]{7}-[1-9]$/;
- var sanitized = str.trim();
- return CNIC.test(sanitized);
- }
- };
- function isIdentityCard(str, locale) {
- (0, _assertString.default)(str);
- if (locale in validators) {
- return validators[locale](str);
- } else if (locale === "any") {
- for (var key in validators) {
- if (validators.hasOwnProperty(key)) {
- var validator = validators[key];
- if (validator(str)) {
- return true;
- }
- }
- }
- return false;
- }
- throw new Error("Invalid locale '".concat(locale, "'"));
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isEAN.js
- var require_isEAN = __commonJS({
- "node_modules/validator/lib/isEAN.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isEAN;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var LENGTH_EAN_8 = 8;
- var LENGTH_EAN_14 = 14;
- var validEanRegex = /^(\d{8}|\d{13}|\d{14})$/;
- function getPositionWeightThroughLengthAndIndex(length, index) {
- if (length === LENGTH_EAN_8 || length === LENGTH_EAN_14) {
- return index % 2 === 0 ? 3 : 1;
- }
- return index % 2 === 0 ? 1 : 3;
- }
- function calculateCheckDigit(ean) {
- var checksum = ean.slice(0, -1).split("").map(function(char, index) {
- return Number(char) * getPositionWeightThroughLengthAndIndex(ean.length, index);
- }).reduce(function(acc, partialSum) {
- return acc + partialSum;
- }, 0);
- var remainder = 10 - checksum % 10;
- return remainder < 10 ? remainder : 0;
- }
- function isEAN(str) {
- (0, _assertString.default)(str);
- var actualCheckDigit = Number(str.slice(-1));
- return validEanRegex.test(str) && actualCheckDigit === calculateCheckDigit(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isISIN.js
- var require_isISIN = __commonJS({
- "node_modules/validator/lib/isISIN.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isISIN;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var isin = /^[A-Z]{2}[0-9A-Z]{9}[0-9]$/;
- function isISIN(str) {
- (0, _assertString.default)(str);
- if (!isin.test(str)) {
- return false;
- }
- var double = true;
- var sum = 0;
- for (var i = str.length - 2; i >= 0; i--) {
- if (str[i] >= "A" && str[i] <= "Z") {
- var value = str[i].charCodeAt(0) - 55;
- var lo = value % 10;
- var hi = Math.trunc(value / 10);
- for (var _i = 0, _arr = [lo, hi]; _i < _arr.length; _i++) {
- var digit = _arr[_i];
- if (double) {
- if (digit >= 5) {
- sum += 1 + (digit - 5) * 2;
- } else {
- sum += digit * 2;
- }
- } else {
- sum += digit;
- }
- double = !double;
- }
- } else {
- var _digit = str[i].charCodeAt(0) - "0".charCodeAt(0);
- if (double) {
- if (_digit >= 5) {
- sum += 1 + (_digit - 5) * 2;
- } else {
- sum += _digit * 2;
- }
- } else {
- sum += _digit;
- }
- double = !double;
- }
- }
- var check = Math.trunc((sum + 9) / 10) * 10 - sum;
- return +str[str.length - 1] === check;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isISBN.js
- var require_isISBN = __commonJS({
- "node_modules/validator/lib/isISBN.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isISBN;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var possibleIsbn10 = /^(?:[0-9]{9}X|[0-9]{10})$/;
- var possibleIsbn13 = /^(?:[0-9]{13})$/;
- var factor = [1, 3];
- function isISBN(isbn, options) {
- (0, _assertString.default)(isbn);
- var version = String((options === null || options === void 0 ? void 0 : options.version) || options);
- if (!(options !== null && options !== void 0 && options.version || options)) {
- return isISBN(isbn, {
- version: 10
- }) || isISBN(isbn, {
- version: 13
- });
- }
- var sanitizedIsbn = isbn.replace(/[\s-]+/g, "");
- var checksum = 0;
- if (version === "10") {
- if (!possibleIsbn10.test(sanitizedIsbn)) {
- return false;
- }
- for (var i = 0; i < version - 1; i++) {
- checksum += (i + 1) * sanitizedIsbn.charAt(i);
- }
- if (sanitizedIsbn.charAt(9) === "X") {
- checksum += 10 * 10;
- } else {
- checksum += 10 * sanitizedIsbn.charAt(9);
- }
- if (checksum % 11 === 0) {
- return true;
- }
- } else if (version === "13") {
- if (!possibleIsbn13.test(sanitizedIsbn)) {
- return false;
- }
- for (var _i = 0; _i < 12; _i++) {
- checksum += factor[_i % 2] * sanitizedIsbn.charAt(_i);
- }
- if (sanitizedIsbn.charAt(12) - (10 - checksum % 10) % 10 === 0) {
- return true;
- }
- }
- return false;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isISSN.js
- var require_isISSN = __commonJS({
- "node_modules/validator/lib/isISSN.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isISSN;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var issn = "^\\d{4}-?\\d{3}[\\dX]$";
- function isISSN(str) {
- var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
- (0, _assertString.default)(str);
- var testIssn = issn;
- testIssn = options.require_hyphen ? testIssn.replace("?", "") : testIssn;
- testIssn = options.case_sensitive ? new RegExp(testIssn) : new RegExp(testIssn, "i");
- if (!testIssn.test(str)) {
- return false;
- }
- var digits = str.replace("-", "").toUpperCase();
- var checksum = 0;
- for (var i = 0; i < digits.length; i++) {
- var digit = digits[i];
- checksum += (digit === "X" ? 10 : +digit) * (8 - i);
- }
- return checksum % 11 === 0;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/util/algorithms.js
- var require_algorithms = __commonJS({
- "node_modules/validator/lib/util/algorithms.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.iso7064Check = iso7064Check;
- exports2.luhnCheck = luhnCheck;
- exports2.reverseMultiplyAndSum = reverseMultiplyAndSum;
- exports2.verhoeffCheck = verhoeffCheck;
- function iso7064Check(str) {
- var checkvalue = 10;
- for (var i = 0; i < str.length - 1; i++) {
- checkvalue = (parseInt(str[i], 10) + checkvalue) % 10 === 0 ? 10 * 2 % 11 : (parseInt(str[i], 10) + checkvalue) % 10 * 2 % 11;
- }
- checkvalue = checkvalue === 1 ? 0 : 11 - checkvalue;
- return checkvalue === parseInt(str[10], 10);
- }
- function luhnCheck(str) {
- var checksum = 0;
- var second = false;
- for (var i = str.length - 1; i >= 0; i--) {
- if (second) {
- var product = parseInt(str[i], 10) * 2;
- if (product > 9) {
- checksum += product.toString().split("").map(function(a) {
- return parseInt(a, 10);
- }).reduce(function(a, b) {
- return a + b;
- }, 0);
- } else {
- checksum += product;
- }
- } else {
- checksum += parseInt(str[i], 10);
- }
- second = !second;
- }
- return checksum % 10 === 0;
- }
- function reverseMultiplyAndSum(digits, base) {
- var total = 0;
- for (var i = 0; i < digits.length; i++) {
- total += digits[i] * (base - i);
- }
- return total;
- }
- function verhoeffCheck(str) {
- var d_table = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]];
- var p_table = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]];
- var str_copy = str.split("").reverse().join("");
- var checksum = 0;
- for (var i = 0; i < str_copy.length; i++) {
- checksum = d_table[checksum][p_table[i % 8][parseInt(str_copy[i], 10)]];
- }
- return checksum === 0;
- }
- }
- });
- // node_modules/validator/lib/isTaxID.js
- var require_isTaxID = __commonJS({
- "node_modules/validator/lib/isTaxID.js"(exports2, module2) {
- "use strict";
- function _typeof(o) {
- "@babel/helpers - typeof";
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
- return typeof o2;
- } : function(o2) {
- return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
- }, _typeof(o);
- }
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isTaxID;
- var _assertString = _interopRequireDefault(require_assertString());
- var algorithms = _interopRequireWildcard(require_algorithms());
- var _isDate = _interopRequireDefault(require_isDate());
- function _interopRequireWildcard(e, t) {
- if ("function" == typeof WeakMap) var r = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap();
- return (_interopRequireWildcard = function _interopRequireWildcard2(e2, t2) {
- if (!t2 && e2 && e2.__esModule) return e2;
- var o, i, f = { __proto__: null, default: e2 };
- if (null === e2 || "object" != _typeof(e2) && "function" != typeof e2) return f;
- if (o = t2 ? n : r) {
- if (o.has(e2)) return o.get(e2);
- o.set(e2, f);
- }
- for (var _t in e2) "default" !== _t && {}.hasOwnProperty.call(e2, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e2, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e2[_t]);
- return f;
- })(e, t);
- }
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function _toConsumableArray(r) {
- return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
- }
- function _nonIterableSpread() {
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
- }
- function _unsupportedIterableToArray(r, a) {
- if (r) {
- if ("string" == typeof r) return _arrayLikeToArray(r, a);
- var t = {}.toString.call(r).slice(8, -1);
- return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
- }
- }
- function _iterableToArray(r) {
- if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
- }
- function _arrayWithoutHoles(r) {
- if (Array.isArray(r)) return _arrayLikeToArray(r);
- }
- function _arrayLikeToArray(r, a) {
- (null == a || a > r.length) && (a = r.length);
- for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
- return n;
- }
- function bgBgCheck(tin) {
- var century_year = tin.slice(0, 2);
- var month = parseInt(tin.slice(2, 4), 10);
- if (month > 40) {
- month -= 40;
- century_year = "20".concat(century_year);
- } else if (month > 20) {
- month -= 20;
- century_year = "18".concat(century_year);
- } else {
- century_year = "19".concat(century_year);
- }
- if (month < 10) {
- month = "0".concat(month);
- }
- var date = "".concat(century_year, "/").concat(month, "/").concat(tin.slice(4, 6));
- if (!(0, _isDate.default)(date, "YYYY/MM/DD")) {
- return false;
- }
- var digits = tin.split("").map(function(a) {
- return parseInt(a, 10);
- });
- var multip_lookup = [2, 4, 8, 5, 10, 9, 7, 3, 6];
- var checksum = 0;
- for (var i = 0; i < multip_lookup.length; i++) {
- checksum += digits[i] * multip_lookup[i];
- }
- checksum = checksum % 11 === 10 ? 0 : checksum % 11;
- return checksum === digits[9];
- }
- function isCanadianSIN(input) {
- var digitsArray = input.split("");
- var even = digitsArray.filter(function(_, idx) {
- return idx % 2;
- }).map(function(i) {
- return Number(i) * 2;
- }).join("").split("");
- var total = digitsArray.filter(function(_, idx) {
- return !(idx % 2);
- }).concat(even).map(function(i) {
- return Number(i);
- }).reduce(function(acc, cur) {
- return acc + cur;
- });
- return total % 10 === 0;
- }
- function csCzCheck(tin) {
- tin = tin.replace(/\W/, "");
- var full_year = parseInt(tin.slice(0, 2), 10);
- if (tin.length === 10) {
- if (full_year < 54) {
- full_year = "20".concat(full_year);
- } else {
- full_year = "19".concat(full_year);
- }
- } else {
- if (tin.slice(6) === "000") {
- return false;
- }
- if (full_year < 54) {
- full_year = "19".concat(full_year);
- } else {
- return false;
- }
- }
- if (full_year.length === 3) {
- full_year = [full_year.slice(0, 2), "0", full_year.slice(2)].join("");
- }
- var month = parseInt(tin.slice(2, 4), 10);
- if (month > 50) {
- month -= 50;
- }
- if (month > 20) {
- if (parseInt(full_year, 10) < 2004) {
- return false;
- }
- month -= 20;
- }
- if (month < 10) {
- month = "0".concat(month);
- }
- var date = "".concat(full_year, "/").concat(month, "/").concat(tin.slice(4, 6));
- if (!(0, _isDate.default)(date, "YYYY/MM/DD")) {
- return false;
- }
- if (tin.length === 10) {
- if (parseInt(tin, 10) % 11 !== 0) {
- var checkdigit = parseInt(tin.slice(0, 9), 10) % 11;
- if (parseInt(full_year, 10) < 1986 && checkdigit === 10) {
- if (parseInt(tin.slice(9), 10) !== 0) {
- return false;
- }
- } else {
- return false;
- }
- }
- }
- return true;
- }
- function deAtCheck(tin) {
- return algorithms.luhnCheck(tin);
- }
- function deDeCheck(tin) {
- var digits = tin.split("").map(function(a) {
- return parseInt(a, 10);
- });
- var occurrences = [];
- for (var i = 0; i < digits.length - 1; i++) {
- occurrences.push("");
- for (var j = 0; j < digits.length - 1; j++) {
- if (digits[i] === digits[j]) {
- occurrences[i] += j;
- }
- }
- }
- occurrences = occurrences.filter(function(a) {
- return a.length > 1;
- });
- if (occurrences.length !== 2 && occurrences.length !== 3) {
- return false;
- }
- if (occurrences[0].length === 3) {
- var trip_locations = occurrences[0].split("").map(function(a) {
- return parseInt(a, 10);
- });
- var recurrent = 0;
- for (var _i = 0; _i < trip_locations.length - 1; _i++) {
- if (trip_locations[_i] + 1 === trip_locations[_i + 1]) {
- recurrent += 1;
- }
- }
- if (recurrent === 2) {
- return false;
- }
- }
- return algorithms.iso7064Check(tin);
- }
- function dkDkCheck(tin) {
- tin = tin.replace(/\W/, "");
- var year = parseInt(tin.slice(4, 6), 10);
- var century_digit = tin.slice(6, 7);
- switch (century_digit) {
- case "0":
- case "1":
- case "2":
- case "3":
- year = "19".concat(year);
- break;
- case "4":
- case "9":
- if (year < 37) {
- year = "20".concat(year);
- } else {
- year = "19".concat(year);
- }
- break;
- default:
- if (year < 37) {
- year = "20".concat(year);
- } else if (year > 58) {
- year = "18".concat(year);
- } else {
- return false;
- }
- break;
- }
- if (year.length === 3) {
- year = [year.slice(0, 2), "0", year.slice(2)].join("");
- }
- var date = "".concat(year, "/").concat(tin.slice(2, 4), "/").concat(tin.slice(0, 2));
- if (!(0, _isDate.default)(date, "YYYY/MM/DD")) {
- return false;
- }
- var digits = tin.split("").map(function(a) {
- return parseInt(a, 10);
- });
- var checksum = 0;
- var weight = 4;
- for (var i = 0; i < 9; i++) {
- checksum += digits[i] * weight;
- weight -= 1;
- if (weight === 1) {
- weight = 7;
- }
- }
- checksum %= 11;
- if (checksum === 1) {
- return false;
- }
- return checksum === 0 ? digits[9] === 0 : digits[9] === 11 - checksum;
- }
- function elCyCheck(tin) {
- var digits = tin.slice(0, 8).split("").map(function(a) {
- return parseInt(a, 10);
- });
- var checksum = 0;
- for (var i = 1; i < digits.length; i += 2) {
- checksum += digits[i];
- }
- for (var _i2 = 0; _i2 < digits.length; _i2 += 2) {
- if (digits[_i2] < 2) {
- checksum += 1 - digits[_i2];
- } else {
- checksum += 2 * (digits[_i2] - 2) + 5;
- if (digits[_i2] > 4) {
- checksum += 2;
- }
- }
- }
- return String.fromCharCode(checksum % 26 + 65) === tin.charAt(8);
- }
- function elGrCheck(tin) {
- var digits = tin.split("").map(function(a) {
- return parseInt(a, 10);
- });
- var checksum = 0;
- for (var i = 0; i < 8; i++) {
- checksum += digits[i] * Math.pow(2, 8 - i);
- }
- return checksum % 11 % 10 === digits[8];
- }
- function enIeCheck(tin) {
- var checksum = algorithms.reverseMultiplyAndSum(tin.split("").slice(0, 7).map(function(a) {
- return parseInt(a, 10);
- }), 8);
- if (tin.length === 9 && tin[8] !== "W") {
- checksum += (tin[8].charCodeAt(0) - 64) * 9;
- }
- checksum %= 23;
- if (checksum === 0) {
- return tin[7].toUpperCase() === "W";
- }
- return tin[7].toUpperCase() === String.fromCharCode(64 + checksum);
- }
- var enUsCampusPrefix = {
- andover: ["10", "12"],
- atlanta: ["60", "67"],
- austin: ["50", "53"],
- brookhaven: ["01", "02", "03", "04", "05", "06", "11", "13", "14", "16", "21", "22", "23", "25", "34", "51", "52", "54", "55", "56", "57", "58", "59", "65"],
- cincinnati: ["30", "32", "35", "36", "37", "38", "61"],
- fresno: ["15", "24"],
- internet: ["20", "26", "27", "45", "46", "47"],
- kansas: ["40", "44"],
- memphis: ["94", "95"],
- ogden: ["80", "90"],
- philadelphia: ["33", "39", "41", "42", "43", "46", "48", "62", "63", "64", "66", "68", "71", "72", "73", "74", "75", "76", "77", "81", "82", "83", "84", "85", "86", "87", "88", "91", "92", "93", "98", "99"],
- sba: ["31"]
- };
- function enUsGetPrefixes() {
- var prefixes = [];
- for (var location2 in enUsCampusPrefix) {
- if (enUsCampusPrefix.hasOwnProperty(location2)) {
- prefixes.push.apply(prefixes, _toConsumableArray(enUsCampusPrefix[location2]));
- }
- }
- return prefixes;
- }
- function enUsCheck(tin) {
- return enUsGetPrefixes().indexOf(tin.slice(0, 2)) !== -1;
- }
- function esArCheck(tin) {
- var accum = 0;
- var digits = tin.split("");
- var digit = parseInt(digits.pop(), 10);
- for (var i = 0; i < digits.length; i++) {
- accum += digits[9 - i] * (2 + i % 6);
- }
- var verif = 11 - accum % 11;
- if (verif === 11) {
- verif = 0;
- } else if (verif === 10) {
- verif = 9;
- }
- return digit === verif;
- }
- function esEsCheck(tin) {
- var chars = tin.toUpperCase().split("");
- if (isNaN(parseInt(chars[0], 10)) && chars.length > 1) {
- var lead_replace = 0;
- switch (chars[0]) {
- case "Y":
- lead_replace = 1;
- break;
- case "Z":
- lead_replace = 2;
- break;
- default:
- }
- chars.splice(0, 1, lead_replace);
- } else {
- while (chars.length < 9) {
- chars.unshift(0);
- }
- }
- var lookup = ["T", "R", "W", "A", "G", "M", "Y", "F", "P", "D", "X", "B", "N", "J", "Z", "S", "Q", "V", "H", "L", "C", "K", "E"];
- chars = chars.join("");
- var checksum = parseInt(chars.slice(0, 8), 10) % 23;
- return chars[8] === lookup[checksum];
- }
- function etEeCheck(tin) {
- var full_year = tin.slice(1, 3);
- var century_digit = tin.slice(0, 1);
- switch (century_digit) {
- case "1":
- case "2":
- full_year = "18".concat(full_year);
- break;
- case "3":
- case "4":
- full_year = "19".concat(full_year);
- break;
- default:
- full_year = "20".concat(full_year);
- break;
- }
- var date = "".concat(full_year, "/").concat(tin.slice(3, 5), "/").concat(tin.slice(5, 7));
- if (!(0, _isDate.default)(date, "YYYY/MM/DD")) {
- return false;
- }
- var digits = tin.split("").map(function(a) {
- return parseInt(a, 10);
- });
- var checksum = 0;
- var weight = 1;
- for (var i = 0; i < 10; i++) {
- checksum += digits[i] * weight;
- weight += 1;
- if (weight === 10) {
- weight = 1;
- }
- }
- if (checksum % 11 === 10) {
- checksum = 0;
- weight = 3;
- for (var _i3 = 0; _i3 < 10; _i3++) {
- checksum += digits[_i3] * weight;
- weight += 1;
- if (weight === 10) {
- weight = 1;
- }
- }
- if (checksum % 11 === 10) {
- return digits[10] === 0;
- }
- }
- return checksum % 11 === digits[10];
- }
- function fiFiCheck(tin) {
- var full_year = tin.slice(4, 6);
- var century_symbol = tin.slice(6, 7);
- switch (century_symbol) {
- case "+":
- full_year = "18".concat(full_year);
- break;
- case "-":
- full_year = "19".concat(full_year);
- break;
- default:
- full_year = "20".concat(full_year);
- break;
- }
- var date = "".concat(full_year, "/").concat(tin.slice(2, 4), "/").concat(tin.slice(0, 2));
- if (!(0, _isDate.default)(date, "YYYY/MM/DD")) {
- return false;
- }
- var checksum = parseInt(tin.slice(0, 6) + tin.slice(7, 10), 10) % 31;
- if (checksum < 10) {
- return checksum === parseInt(tin.slice(10), 10);
- }
- checksum -= 10;
- var letters_lookup = ["A", "B", "C", "D", "E", "F", "H", "J", "K", "L", "M", "N", "P", "R", "S", "T", "U", "V", "W", "X", "Y"];
- return letters_lookup[checksum] === tin.slice(10);
- }
- function frBeCheck(tin) {
- if (tin.slice(2, 4) !== "00" || tin.slice(4, 6) !== "00") {
- var date = "".concat(tin.slice(0, 2), "/").concat(tin.slice(2, 4), "/").concat(tin.slice(4, 6));
- if (!(0, _isDate.default)(date, "YY/MM/DD")) {
- return false;
- }
- }
- var checksum = 97 - parseInt(tin.slice(0, 9), 10) % 97;
- var checkdigits = parseInt(tin.slice(9, 11), 10);
- if (checksum !== checkdigits) {
- checksum = 97 - parseInt("2".concat(tin.slice(0, 9)), 10) % 97;
- if (checksum !== checkdigits) {
- return false;
- }
- }
- return true;
- }
- function frFrCheck(tin) {
- tin = tin.replace(/\s/g, "");
- var checksum = parseInt(tin.slice(0, 10), 10) % 511;
- var checkdigits = parseInt(tin.slice(10, 13), 10);
- return checksum === checkdigits;
- }
- function frLuCheck(tin) {
- var date = "".concat(tin.slice(0, 4), "/").concat(tin.slice(4, 6), "/").concat(tin.slice(6, 8));
- if (!(0, _isDate.default)(date, "YYYY/MM/DD")) {
- return false;
- }
- if (!algorithms.luhnCheck(tin.slice(0, 12))) {
- return false;
- }
- return algorithms.verhoeffCheck("".concat(tin.slice(0, 11)).concat(tin[12]));
- }
- function hrHrCheck(tin) {
- return algorithms.iso7064Check(tin);
- }
- function huHuCheck(tin) {
- var digits = tin.split("").map(function(a) {
- return parseInt(a, 10);
- });
- var checksum = 8;
- for (var i = 1; i < 9; i++) {
- checksum += digits[i] * (i + 1);
- }
- return checksum % 11 === digits[9];
- }
- function itItNameCheck(name) {
- var vowelflag = false;
- var xflag = false;
- for (var i = 0; i < 3; i++) {
- if (!vowelflag && /[AEIOU]/.test(name[i])) {
- vowelflag = true;
- } else if (!xflag && vowelflag && name[i] === "X") {
- xflag = true;
- } else if (i > 0) {
- if (vowelflag && !xflag) {
- if (!/[AEIOU]/.test(name[i])) {
- return false;
- }
- }
- if (xflag) {
- if (!/X/.test(name[i])) {
- return false;
- }
- }
- }
- }
- return true;
- }
- function itItCheck(tin) {
- var chars = tin.toUpperCase().split("");
- if (!itItNameCheck(chars.slice(0, 3))) {
- return false;
- }
- if (!itItNameCheck(chars.slice(3, 6))) {
- return false;
- }
- var number_locations = [6, 7, 9, 10, 12, 13, 14];
- var number_replace = {
- L: "0",
- M: "1",
- N: "2",
- P: "3",
- Q: "4",
- R: "5",
- S: "6",
- T: "7",
- U: "8",
- V: "9"
- };
- for (var _i4 = 0, _number_locations = number_locations; _i4 < _number_locations.length; _i4++) {
- var i = _number_locations[_i4];
- if (chars[i] in number_replace) {
- chars.splice(i, 1, number_replace[chars[i]]);
- }
- }
- var month_replace = {
- A: "01",
- B: "02",
- C: "03",
- D: "04",
- E: "05",
- H: "06",
- L: "07",
- M: "08",
- P: "09",
- R: "10",
- S: "11",
- T: "12"
- };
- var month = month_replace[chars[8]];
- var day = parseInt(chars[9] + chars[10], 10);
- if (day > 40) {
- day -= 40;
- }
- if (day < 10) {
- day = "0".concat(day);
- }
- var date = "".concat(chars[6]).concat(chars[7], "/").concat(month, "/").concat(day);
- if (!(0, _isDate.default)(date, "YY/MM/DD")) {
- return false;
- }
- var checksum = 0;
- for (var _i5 = 1; _i5 < chars.length - 1; _i5 += 2) {
- var char_to_int = parseInt(chars[_i5], 10);
- if (isNaN(char_to_int)) {
- char_to_int = chars[_i5].charCodeAt(0) - 65;
- }
- checksum += char_to_int;
- }
- var odd_convert = {
- // Maps of characters at odd places
- A: 1,
- B: 0,
- C: 5,
- D: 7,
- E: 9,
- F: 13,
- G: 15,
- H: 17,
- I: 19,
- J: 21,
- K: 2,
- L: 4,
- M: 18,
- N: 20,
- O: 11,
- P: 3,
- Q: 6,
- R: 8,
- S: 12,
- T: 14,
- U: 16,
- V: 10,
- W: 22,
- X: 25,
- Y: 24,
- Z: 23,
- 0: 1,
- 1: 0
- };
- for (var _i6 = 0; _i6 < chars.length - 1; _i6 += 2) {
- var _char_to_int = 0;
- if (chars[_i6] in odd_convert) {
- _char_to_int = odd_convert[chars[_i6]];
- } else {
- var multiplier = parseInt(chars[_i6], 10);
- _char_to_int = 2 * multiplier + 1;
- if (multiplier > 4) {
- _char_to_int += 2;
- }
- }
- checksum += _char_to_int;
- }
- if (String.fromCharCode(65 + checksum % 26) !== chars[15]) {
- return false;
- }
- return true;
- }
- function lvLvCheck(tin) {
- tin = tin.replace(/\W/, "");
- var day = tin.slice(0, 2);
- if (day !== "32") {
- var month = tin.slice(2, 4);
- if (month !== "00") {
- var full_year = tin.slice(4, 6);
- switch (tin[6]) {
- case "0":
- full_year = "18".concat(full_year);
- break;
- case "1":
- full_year = "19".concat(full_year);
- break;
- default:
- full_year = "20".concat(full_year);
- break;
- }
- var date = "".concat(full_year, "/").concat(tin.slice(2, 4), "/").concat(day);
- if (!(0, _isDate.default)(date, "YYYY/MM/DD")) {
- return false;
- }
- }
- var checksum = 1101;
- var multip_lookup = [1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
- for (var i = 0; i < tin.length - 1; i++) {
- checksum -= parseInt(tin[i], 10) * multip_lookup[i];
- }
- return parseInt(tin[10], 10) === checksum % 11;
- }
- return true;
- }
- function mtMtCheck(tin) {
- if (tin.length !== 9) {
- var chars = tin.toUpperCase().split("");
- while (chars.length < 8) {
- chars.unshift(0);
- }
- switch (tin[7]) {
- case "A":
- case "P":
- if (parseInt(chars[6], 10) === 0) {
- return false;
- }
- break;
- default: {
- var first_part = parseInt(chars.join("").slice(0, 5), 10);
- if (first_part > 32e3) {
- return false;
- }
- var second_part = parseInt(chars.join("").slice(5, 7), 10);
- if (first_part === second_part) {
- return false;
- }
- }
- }
- }
- return true;
- }
- function nlNlCheck(tin) {
- return algorithms.reverseMultiplyAndSum(tin.split("").slice(0, 8).map(function(a) {
- return parseInt(a, 10);
- }), 9) % 11 === parseInt(tin[8], 10);
- }
- function plPlCheck(tin) {
- if (tin.length === 10) {
- var lookup = [6, 5, 7, 2, 3, 4, 5, 6, 7];
- var _checksum = 0;
- for (var i = 0; i < lookup.length; i++) {
- _checksum += parseInt(tin[i], 10) * lookup[i];
- }
- _checksum %= 11;
- if (_checksum === 10) {
- return false;
- }
- return _checksum === parseInt(tin[9], 10);
- }
- var full_year = tin.slice(0, 2);
- var month = parseInt(tin.slice(2, 4), 10);
- if (month > 80) {
- full_year = "18".concat(full_year);
- month -= 80;
- } else if (month > 60) {
- full_year = "22".concat(full_year);
- month -= 60;
- } else if (month > 40) {
- full_year = "21".concat(full_year);
- month -= 40;
- } else if (month > 20) {
- full_year = "20".concat(full_year);
- month -= 20;
- } else {
- full_year = "19".concat(full_year);
- }
- if (month < 10) {
- month = "0".concat(month);
- }
- var date = "".concat(full_year, "/").concat(month, "/").concat(tin.slice(4, 6));
- if (!(0, _isDate.default)(date, "YYYY/MM/DD")) {
- return false;
- }
- var checksum = 0;
- var multiplier = 1;
- for (var _i7 = 0; _i7 < tin.length - 1; _i7++) {
- checksum += parseInt(tin[_i7], 10) * multiplier % 10;
- multiplier += 2;
- if (multiplier > 10) {
- multiplier = 1;
- } else if (multiplier === 5) {
- multiplier += 2;
- }
- }
- checksum = 10 - checksum % 10;
- return checksum === parseInt(tin[10], 10);
- }
- function cnpjCharToValue(char) {
- return char.charCodeAt(0) - 48;
- }
- function validateCnpj(cnpj) {
- var identifiers = cnpj.substring(0, 12).toUpperCase();
- var checkDigits = cnpj.substring(12);
- if (/^(.)\1+$/.test(cnpj.toUpperCase())) {
- return false;
- }
- var sum = 0;
- var weight = 5;
- for (var i = 0; i < 12; i++) {
- sum += cnpjCharToValue(identifiers.charAt(i)) * weight;
- weight = weight === 2 ? 9 : weight - 1;
- }
- var remainder = sum % 11;
- var firstDV = remainder < 2 ? 0 : 11 - remainder;
- if (firstDV !== parseInt(checkDigits.charAt(0), 10)) {
- return false;
- }
- sum = 0;
- weight = 6;
- for (var _i8 = 0; _i8 < 12; _i8++) {
- sum += cnpjCharToValue(identifiers.charAt(_i8)) * weight;
- weight = weight === 2 ? 9 : weight - 1;
- }
- sum += firstDV * 2;
- remainder = sum % 11;
- var secondDV = remainder < 2 ? 0 : 11 - remainder;
- return secondDV === parseInt(checkDigits.charAt(1), 10);
- }
- function ptBrCheck(tin) {
- tin = tin.replace(/[.\-/]/g, "");
- if (tin.length === 11) {
- var sum;
- var remainder;
- sum = 0;
- if (
- // Reject known invalid CPFs
- tin === "11111111111" || tin === "22222222222" || tin === "33333333333" || tin === "44444444444" || tin === "55555555555" || tin === "66666666666" || tin === "77777777777" || tin === "88888888888" || tin === "99999999999" || tin === "00000000000"
- ) return false;
- for (var i = 1; i <= 9; i++) sum += parseInt(tin.substring(i - 1, i), 10) * (11 - i);
- remainder = sum * 10 % 11;
- if (remainder === 10) remainder = 0;
- if (remainder !== parseInt(tin.substring(9, 10), 10)) return false;
- sum = 0;
- for (var _i9 = 1; _i9 <= 10; _i9++) sum += parseInt(tin.substring(_i9 - 1, _i9), 10) * (12 - _i9);
- remainder = sum * 10 % 11;
- if (remainder === 10) remainder = 0;
- if (remainder !== parseInt(tin.substring(10, 11), 10)) return false;
- return true;
- }
- return validateCnpj(tin);
- }
- function ptPtCheck(tin) {
- var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split("").slice(0, 8).map(function(a) {
- return parseInt(a, 10);
- }), 9) % 11;
- if (checksum > 9) {
- return parseInt(tin[8], 10) === 0;
- }
- return checksum === parseInt(tin[8], 10);
- }
- function roRoCheck(tin) {
- if (tin.slice(0, 4) !== "9000") {
- var full_year = tin.slice(1, 3);
- switch (tin[0]) {
- case "1":
- case "2":
- full_year = "19".concat(full_year);
- break;
- case "3":
- case "4":
- full_year = "18".concat(full_year);
- break;
- case "5":
- case "6":
- full_year = "20".concat(full_year);
- break;
- default:
- }
- var date = "".concat(full_year, "/").concat(tin.slice(3, 5), "/").concat(tin.slice(5, 7));
- if (date.length === 8) {
- if (!(0, _isDate.default)(date, "YY/MM/DD")) {
- return false;
- }
- } else if (!(0, _isDate.default)(date, "YYYY/MM/DD")) {
- return false;
- }
- var digits = tin.split("").map(function(a) {
- return parseInt(a, 10);
- });
- var multipliers = [2, 7, 9, 1, 4, 6, 3, 5, 8, 2, 7, 9];
- var checksum = 0;
- for (var i = 0; i < multipliers.length; i++) {
- checksum += digits[i] * multipliers[i];
- }
- if (checksum % 11 === 10) {
- return digits[12] === 1;
- }
- return digits[12] === checksum % 11;
- }
- return true;
- }
- function skSkCheck(tin) {
- if (tin.length === 9) {
- tin = tin.replace(/\W/, "");
- if (tin.slice(6) === "000") {
- return false;
- }
- var full_year = parseInt(tin.slice(0, 2), 10);
- if (full_year > 53) {
- return false;
- }
- if (full_year < 10) {
- full_year = "190".concat(full_year);
- } else {
- full_year = "19".concat(full_year);
- }
- var month = parseInt(tin.slice(2, 4), 10);
- if (month > 50) {
- month -= 50;
- }
- if (month < 10) {
- month = "0".concat(month);
- }
- var date = "".concat(full_year, "/").concat(month, "/").concat(tin.slice(4, 6));
- if (!(0, _isDate.default)(date, "YYYY/MM/DD")) {
- return false;
- }
- }
- return true;
- }
- function slSiCheck(tin) {
- var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split("").slice(0, 7).map(function(a) {
- return parseInt(a, 10);
- }), 8) % 11;
- if (checksum === 10) {
- return parseInt(tin[7], 10) === 0;
- }
- return checksum === parseInt(tin[7], 10);
- }
- function svSeCheck(tin) {
- var tin_copy = tin.slice(0);
- if (tin.length > 11) {
- tin_copy = tin_copy.slice(2);
- }
- var full_year = "";
- var month = tin_copy.slice(2, 4);
- var day = parseInt(tin_copy.slice(4, 6), 10);
- if (tin.length > 11) {
- full_year = tin.slice(0, 4);
- } else {
- full_year = tin.slice(0, 2);
- if (tin.length === 11 && day < 60) {
- var current_year = (/* @__PURE__ */ new Date()).getFullYear().toString();
- var current_century = parseInt(current_year.slice(0, 2), 10);
- current_year = parseInt(current_year, 10);
- if (tin[6] === "-") {
- if (parseInt("".concat(current_century).concat(full_year), 10) > current_year) {
- full_year = "".concat(current_century - 1).concat(full_year);
- } else {
- full_year = "".concat(current_century).concat(full_year);
- }
- } else {
- full_year = "".concat(current_century - 1).concat(full_year);
- if (current_year - parseInt(full_year, 10) < 100) {
- return false;
- }
- }
- }
- }
- if (day > 60) {
- day -= 60;
- }
- if (day < 10) {
- day = "0".concat(day);
- }
- var date = "".concat(full_year, "/").concat(month, "/").concat(day);
- if (date.length === 8) {
- if (!(0, _isDate.default)(date, "YY/MM/DD")) {
- return false;
- }
- } else if (!(0, _isDate.default)(date, "YYYY/MM/DD")) {
- return false;
- }
- return algorithms.luhnCheck(tin.replace(/\W/, ""));
- }
- function ukUaCheck(tin) {
- var digits = tin.split("").map(function(a) {
- return parseInt(a, 10);
- });
- var multipliers = [-1, 5, 7, 9, 4, 6, 10, 5, 7];
- var checksum = 0;
- for (var i = 0; i < multipliers.length; i++) {
- checksum += digits[i] * multipliers[i];
- }
- return checksum % 11 === 10 ? digits[9] === 0 : digits[9] === checksum % 11;
- }
- var taxIdFormat = {
- "bg-BG": /^\d{10}$/,
- "cs-CZ": /^\d{6}\/{0,1}\d{3,4}$/,
- "de-AT": /^\d{9}$/,
- "de-DE": /^[1-9]\d{10}$/,
- "dk-DK": /^\d{6}-{0,1}\d{4}$/,
- "el-CY": /^[09]\d{7}[A-Z]$/,
- "el-GR": /^([0-4]|[7-9])\d{8}$/,
- "en-CA": /^\d{9}$/,
- "en-GB": /^\d{10}$|^(?!GB|NK|TN|ZZ)(?![DFIQUV])[A-Z](?![DFIQUVO])[A-Z]\d{6}[ABCD ]$/i,
- "en-IE": /^\d{7}[A-W][A-IW]{0,1}$/i,
- "en-US": /^\d{2}[- ]{0,1}\d{7}$/,
- "es-AR": /(20|23|24|27|30|33|34)[0-9]{8}[0-9]/,
- "es-ES": /^(\d{0,8}|[XYZKLM]\d{7})[A-HJ-NP-TV-Z]$/i,
- "et-EE": /^[1-6]\d{6}(00[1-9]|0[1-9][0-9]|[1-6][0-9]{2}|70[0-9]|710)\d$/,
- "fi-FI": /^\d{6}[-+A]\d{3}[0-9A-FHJ-NPR-Y]$/i,
- "fr-BE": /^\d{11}$/,
- "fr-FR": /^[0-3]\d{12}$|^[0-3]\d\s\d{2}(\s\d{3}){3}$/,
- // Conforms both to official spec and provided example
- "fr-LU": /^\d{13}$/,
- "hr-HR": /^\d{11}$/,
- "hu-HU": /^8\d{9}$/,
- "it-IT": /^[A-Z]{6}[L-NP-V0-9]{2}[A-EHLMPRST][L-NP-V0-9]{2}[A-ILMZ][L-NP-V0-9]{3}[A-Z]$/i,
- "lv-LV": /^\d{6}-{0,1}\d{5}$/,
- // Conforms both to DG TAXUD spec and original research
- "mt-MT": /^\d{3,7}[APMGLHBZ]$|^([1-8])\1\d{7}$/i,
- "nl-NL": /^\d{9}$/,
- "pl-PL": /^\d{10,11}$/,
- "pt-BR": /(?:^\d{3}\.\d{3}\.\d{3}-\d{2}$)|(?:^\d{11}$)|(?:^[A-Z0-9]{12}\d{2}$)/i,
- "pt-PT": /^\d{9}$/,
- "ro-RO": /^\d{13}$/,
- "sk-SK": /^\d{6}\/{0,1}\d{3,4}$/,
- "sl-SI": /^[1-9]\d{7}$/,
- "sv-SE": /^(\d{6}[-+]{0,1}\d{4}|(18|19|20)\d{6}[-+]{0,1}\d{4})$/,
- "uk-UA": /^\d{10}$/
- };
- taxIdFormat["lb-LU"] = taxIdFormat["fr-LU"];
- taxIdFormat["lt-LT"] = taxIdFormat["et-EE"];
- taxIdFormat["nl-BE"] = taxIdFormat["fr-BE"];
- taxIdFormat["fr-CA"] = taxIdFormat["en-CA"];
- var taxIdCheck = {
- "bg-BG": bgBgCheck,
- "cs-CZ": csCzCheck,
- "de-AT": deAtCheck,
- "de-DE": deDeCheck,
- "dk-DK": dkDkCheck,
- "el-CY": elCyCheck,
- "el-GR": elGrCheck,
- "en-CA": isCanadianSIN,
- "en-IE": enIeCheck,
- "en-US": enUsCheck,
- "es-AR": esArCheck,
- "es-ES": esEsCheck,
- "et-EE": etEeCheck,
- "fi-FI": fiFiCheck,
- "fr-BE": frBeCheck,
- "fr-FR": frFrCheck,
- "fr-LU": frLuCheck,
- "hr-HR": hrHrCheck,
- "hu-HU": huHuCheck,
- "it-IT": itItCheck,
- "lv-LV": lvLvCheck,
- "mt-MT": mtMtCheck,
- "nl-NL": nlNlCheck,
- "pl-PL": plPlCheck,
- "pt-BR": ptBrCheck,
- "pt-PT": ptPtCheck,
- "ro-RO": roRoCheck,
- "sk-SK": skSkCheck,
- "sl-SI": slSiCheck,
- "sv-SE": svSeCheck,
- "uk-UA": ukUaCheck
- };
- taxIdCheck["lb-LU"] = taxIdCheck["fr-LU"];
- taxIdCheck["lt-LT"] = taxIdCheck["et-EE"];
- taxIdCheck["nl-BE"] = taxIdCheck["fr-BE"];
- taxIdCheck["fr-CA"] = taxIdCheck["en-CA"];
- var allsymbols = /[-\\\/!@#$%\^&\*\(\)\+\=\[\]]+/g;
- var sanitizeRegexes = {
- "de-AT": allsymbols,
- "de-DE": /[\/\\]/g,
- "fr-BE": allsymbols
- };
- sanitizeRegexes["nl-BE"] = sanitizeRegexes["fr-BE"];
- function isTaxID(str) {
- var locale = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "en-US";
- (0, _assertString.default)(str);
- var strcopy = str.slice(0);
- if (locale in taxIdFormat) {
- if (locale in sanitizeRegexes) {
- strcopy = strcopy.replace(sanitizeRegexes[locale], "");
- }
- if (!taxIdFormat[locale].test(strcopy)) {
- return false;
- }
- if (locale in taxIdCheck) {
- return taxIdCheck[locale](strcopy);
- }
- return true;
- }
- throw new Error("Invalid locale '".concat(locale, "'"));
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isMobilePhone.js
- var require_isMobilePhone = __commonJS({
- "node_modules/validator/lib/isMobilePhone.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isMobilePhone;
- exports2.locales = void 0;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var phones = {
- "am-AM": /^(\+?374|0)(33|4[134]|55|77|88|9[13-689])\d{6}$/,
- "ar-AE": /^((\+?971)|0)?5[024568]\d{7}$/,
- "ar-BH": /^(\+?973)?(3|6)\d{7}$/,
- "ar-DZ": /^(\+?213|0)(5|6|7)\d{8}$/,
- "ar-LB": /^(\+?961)?((3|81)\d{6}|7\d{7})$/,
- "ar-EG": /^((\+?20)|0)?1[0125]\d{8}$/,
- "ar-IQ": /^(\+?964|0)?7[0-9]\d{8}$/,
- "ar-JO": /^(\+?962|0)?7[789]\d{7}$/,
- "ar-KW": /^(\+?965)([569]\d{7}|41\d{6})$/,
- "ar-LY": /^((\+?218)|0)?(9[1-6]\d{7}|[1-8]\d{7,9})$/,
- "ar-MA": /^(?:(?:\+|00)212|0)[5-7]\d{8}$/,
- "ar-OM": /^((\+|00)968)?([79][1-9])\d{6}$/,
- "ar-PS": /^(\+?970|0)5[6|9](\d{7})$/,
- "ar-SA": /^(!?(\+?966)|0)?5\d{8}$/,
- "ar-SD": /^((\+?249)|0)?(9[012369]|1[012])\d{7}$/,
- "ar-SY": /^(!?(\+?963)|0)?9\d{8}$/,
- "ar-TN": /^(\+?216)?[2459]\d{7}$/,
- "az-AZ": /^(\+994|0)(10|5[015]|7[07]|99)\d{7}$/,
- "ar-QA": /^(\+?974|0)?([3567]\d{7})$/,
- "bs-BA": /^((((\+|00)3876)|06))((([0-3]|[5-6])\d{6})|(4\d{7}))$/,
- "be-BY": /^(\+?375)?(24|25|29|33|44)\d{7}$/,
- "bg-BG": /^(\+?359|0)?8[789]\d{7}$/,
- "bn-BD": /^(\+?880|0)1[13456789][0-9]{8}$/,
- "ca-AD": /^(\+376)?[346]\d{5}$/,
- "cs-CZ": /^(\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,
- "da-DK": /^(\+?45)?\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2}$/,
- "de-DE": /^((\+49|0)1)(5[0-25-9]\d|6([23]|0\d?)|7([0-57-9]|6\d))\d{7,9}$/,
- "de-AT": /^(\+43|0)\d{1,4}\d{3,12}$/,
- "de-CH": /^(\+41|0)([1-9])\d{1,9}$/,
- "de-LU": /^(\+352)?((6\d1)\d{6})$/,
- "dv-MV": /^(\+?960)?(7[2-9]|9[1-9])\d{5}$/,
- "el-GR": /^(\+?30|0)?6(8[5-9]|9(?![26])[0-9])\d{7}$/,
- "el-CY": /^(\+?357?)?(9(9|7|6|5|4)\d{6})$/,
- "en-AI": /^(\+?1|0)264(?:2(35|92)|4(?:6[1-2]|76|97)|5(?:3[6-9]|8[1-4])|7(?:2(4|9)|72))\d{4}$/,
- "en-AU": /^(\+?61|0)4\d{8}$/,
- "en-AG": /^(?:\+1|1)268(?:464|7(?:1[3-9]|[28]\d|3[0246]|64|7[0-689]))\d{4}$/,
- "en-BM": /^(\+?1)?441(((3|7)\d{6}$)|(5[0-3][0-9]\d{4}$)|(59\d{5}$))/,
- "en-BS": /^(\+?1[-\s]?|0)?\(?242\)?[-\s]?\d{3}[-\s]?\d{4}$/,
- "en-GB": /^(\+?44|0)7[1-9]\d{8}$/,
- "en-GG": /^(\+?44|0)1481\d{6}$/,
- "en-GH": /^(\+233|0)(20|50|24|54|27|57|26|56|23|53|28|55|59)\d{7}$/,
- "en-GY": /^(\+592|0)6\d{6}$/,
- "en-HK": /^(\+?852[-\s]?)?[456789]\d{3}[-\s]?\d{4}$/,
- "en-MO": /^(\+?853[-\s]?)?[6]\d{3}[-\s]?\d{4}$/,
- "en-IE": /^(\+?353|0)8[356789]\d{7}$/,
- "en-IN": /^(\+?91|0)?[6789]\d{9}$/,
- "en-JM": /^(\+?876)?\d{7}$/,
- "en-KE": /^(\+?254|0)(7|1)\d{8}$/,
- "fr-CF": /^(\+?236| ?)(70|75|77|72|21|22)\d{6}$/,
- "en-SS": /^(\+?211|0)(9[1257])\d{7}$/,
- "en-KI": /^((\+686|686)?)?( )?((6|7)(2|3|8)[0-9]{6})$/,
- "en-KN": /^(?:\+1|1)869(?:46\d|48[89]|55[6-8]|66\d|76[02-7])\d{4}$/,
- "en-LS": /^(\+?266)(22|28|57|58|59|27|52)\d{6}$/,
- "en-MT": /^(\+?356|0)?(99|79|77|21|27|22|25)[0-9]{6}$/,
- "en-MU": /^(\+?230|0)?\d{8}$/,
- "en-MW": /^(\+?265|0)(((77|88|31|99|98|21)\d{7})|(((111)|1)\d{6})|(32000\d{4}))$/,
- "en-NA": /^(\+?264|0)(6|8)\d{7}$/,
- "en-NG": /^(\+?234|0)?[789]\d{9}$/,
- "en-NZ": /^(\+?64|0)[28]\d{7,9}$/,
- "en-PG": /^(\+?675|0)?(7\d|8[18])\d{6}$/,
- "en-PK": /^((00|\+)?92|0)3[0-6]\d{8}$/,
- "en-PH": /^(09|\+639)\d{9}$/,
- "en-RW": /^(\+?250|0)?[7]\d{8}$/,
- "en-SG": /^(\+65)?[3689]\d{7}$/,
- "en-SL": /^(\+?232|0)\d{8}$/,
- "en-TZ": /^(\+?255|0)?[67]\d{8}$/,
- "en-UG": /^(\+?256|0)?[7]\d{8}$/,
- "en-US": /^((\+1|1)?( |-)?)?(\([2-9][0-9]{2}\)|[2-9][0-9]{2})( |-)?([2-9][0-9]{2}( |-)?[0-9]{4})$/,
- "en-ZA": /^(\+?27|0)\d{9}$/,
- "en-ZM": /^(\+?26)?0[79][567]\d{7}$/,
- "en-ZW": /^(\+263)[0-9]{9}$/,
- "en-BW": /^(\+?267)?(7[1-8]{1})\d{6}$/,
- "es-AR": /^\+?549(11|[2368]\d)\d{8}$/,
- "es-BO": /^(\+?591)?(6|7)\d{7}$/,
- "es-CO": /^(\+?57)?3(0(0|1|2|4|5)|1\d|2[0-4]|5(0|1))\d{7}$/,
- "es-CL": /^(\+?56|0)[2-9]\d{1}\d{7}$/,
- "es-CR": /^(\+506)?[2-8]\d{7}$/,
- "es-CU": /^(\+53|0053)?5\d{7}$/,
- "es-DO": /^(\+?1)?8[024]9\d{7}$/,
- "es-HN": /^(\+?504)?[9|8|3|2]\d{7}$/,
- "es-EC": /^(\+?593|0)([2-7]|9[2-9])\d{7}$/,
- "es-ES": /^(\+?34)?[6|7]\d{8}$/,
- "es-GT": /^(\+?502)?[2|6|7]\d{7}$/,
- "es-PE": /^(\+?51)?9\d{8}$/,
- "es-MX": /^(\+?52)?(1|01)?\d{10,11}$/,
- "es-NI": /^(\+?505)\d{7,8}$/,
- "es-PA": /^(\+?507)\d{7,8}$/,
- "es-PY": /^(\+?595|0)9[9876]\d{7}$/,
- "es-SV": /^(\+?503)?[67]\d{7}$/,
- "es-UY": /^(\+598|0)9[1-9][\d]{6}$/,
- "es-VE": /^(\+?58)?(2|4)\d{9}$/,
- "et-EE": /^(\+?372)?\s?(5|8[1-4])\s?([0-9]\s?){6,7}$/,
- "fa-IR": /^(\+?98[\-\s]?|0)9[0-39]\d[\-\s]?\d{3}[\-\s]?\d{4}$/,
- "fi-FI": /^(\+?358|0)\s?(4[0-6]|50)\s?(\d\s?){4,8}$/,
- "fj-FJ": /^(\+?679)?\s?\d{3}\s?\d{4}$/,
- "fo-FO": /^(\+?298)?\s?\d{2}\s?\d{2}\s?\d{2}$/,
- "fr-BF": /^(\+226|0)[67]\d{7}$/,
- "fr-BJ": /^(\+229)\d{8}$/,
- "fr-CD": /^(\+?243|0)?(8|9)\d{8}$/,
- "fr-CM": /^(\+?237)6[0-9]{8}$/,
- "fr-DJ": /^(?:\+253)?77[6-8]\d{5}$/,
- "fr-FR": /^(\+?33|0)[67]\d{8}$/,
- "fr-GF": /^(\+?594|0|00594)[67]\d{8}$/,
- "fr-GP": /^(\+?590|0|00590)[67]\d{8}$/,
- "fr-MQ": /^(\+?596|0|00596)[67]\d{8}$/,
- "fr-PF": /^(\+?689)?8[789]\d{6}$/,
- "fr-RE": /^(\+?262|0|00262)[67]\d{8}$/,
- "fr-WF": /^(\+681)?\d{6}$/,
- "he-IL": /^(\+972|0)([23489]|5[012345689]|77)[1-9]\d{6}$/,
- "hu-HU": /^(\+?36|06)(20|30|31|50|70)\d{7}$/,
- "id-ID": /^(\+?62|0)8(1[123456789]|2[1238]|3[1238]|5[12356789]|7[78]|9[56789]|8[123456789])([\s?|\d]{5,11})$/,
- "ir-IR": /^(\+98|0)?9\d{9}$/,
- "it-IT": /^(\+?39)?\s?3\d{2} ?\d{6,7}$/,
- "it-SM": /^((\+378)|(0549)|(\+390549)|(\+3780549))?6\d{5,9}$/,
- "ja-JP": /^(\+81[ \-]?(\(0\))?|0)[6789]0[ \-]?\d{4}[ \-]?\d{4}$/,
- "ka-GE": /^(\+?995)?(79\d{7}|5\d{8})$/,
- "kk-KZ": /^(\+?7|8)?7\d{9}$/,
- "kl-GL": /^(\+?299)?\s?\d{2}\s?\d{2}\s?\d{2}$/,
- "ko-KR": /^((\+?82)[ \-]?)?0?1([0|1|6|7|8|9]{1})[ \-]?\d{3,4}[ \-]?\d{4}$/,
- "ky-KG": /^(\+996\s?)?(22[0-9]|50[0-9]|55[0-9]|70[0-9]|75[0-9]|77[0-9]|880|990|995|996|997|998)\s?\d{3}\s?\d{3}$/,
- "lt-LT": /^(\+370|8)\d{8}$/,
- "lv-LV": /^(\+?371)2\d{7}$/,
- "mg-MG": /^((\+?261|0)(2|3)\d)?\d{7}$/,
- "mn-MN": /^(\+|00|011)?976(77|81|88|91|94|95|96|99)\d{6}$/,
- "my-MM": /^(\+?959|09|9)(2[5-7]|3[1-2]|4[0-5]|6[6-9]|7[5-9]|9[6-9])[0-9]{7}$/,
- "ms-MY": /^(\+?60|0)1(([0145](-|\s)?\d{7,8})|([236-9](-|\s)?\d{7}))$/,
- "mz-MZ": /^(\+?258)?8[234567]\d{7}$/,
- "nb-NO": /^(\+?47)?[49]\d{7}$/,
- "ne-NP": /^(\+?977)?9[78]\d{8}$/,
- "nl-BE": /^(\+?32|0)4\d{8}$/,
- "nl-NL": /^(((\+|00)?31\(0\))|((\+|00)?31)|0)6{1}\d{8}$/,
- "nl-AW": /^(\+)?297(56|59|64|73|74|99)\d{5}$/,
- "nn-NO": /^(\+?47)?[49]\d{7}$/,
- "pl-PL": /^(\+?48)? ?([5-8]\d|45) ?\d{3} ?\d{2} ?\d{2}$/,
- "pt-BR": /^((\+?55\ ?[1-9]{2}\ ?)|(\+?55\ ?\([1-9]{2}\)\ ?)|(0[1-9]{2}\ ?)|(\([1-9]{2}\)\ ?)|([1-9]{2}\ ?))((\d{4}\-?\d{4})|(9[1-9]{1}\d{3}\-?\d{4}))$/,
- "pt-PT": /^(\+?351)?9[1236]\d{7}$/,
- "pt-AO": /^(\+?244)?9\d{8}$/,
- "ro-MD": /^(\+?373|0)((6(0|1|2|6|7|8|9))|(7(6|7|8|9)))\d{6}$/,
- "ro-RO": /^(\+?40|0)\s?7\d{2}(\/|\s|\.|-)?\d{3}(\s|\.|-)?\d{3}$/,
- "ru-RU": /^(\+?7|8)?9\d{9}$/,
- "si-LK": /^(?:0|94|\+94)?(7(0|1|2|4|5|6|7|8)( |-)?)\d{7}$/,
- "sl-SI": /^(\+386\s?|0)(\d{1}\s?\d{3}\s?\d{2}\s?\d{2}|\d{2}\s?\d{3}\s?\d{3})$/,
- "sk-SK": /^(\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,
- "so-SO": /^(\+?252|0)((6[0-9])\d{7}|(7[1-9])\d{7})$/,
- "sq-AL": /^(\+355|0)6[2-9]\d{7}$/,
- "sr-RS": /^(\+3816|06)[- \d]{5,9}$/,
- "sv-SE": /^(\+?46|0)[\s\-]?7[\s\-]?[02369]([\s\-]?\d){7}$/,
- "tg-TJ": /^(\+?992)?[5][5]\d{7}$/,
- "th-TH": /^(\+66|66|0)\d{9}$/,
- "tr-TR": /^(\+?90|0)?5\d{9}$/,
- "tk-TM": /^(\+993|993|8)\d{8}$/,
- "uk-UA": /^(\+?38)?0(50|6[36-8]|7[357]|9[1-9])\d{7}$/,
- "uz-UZ": /^(\+?998)?(6[125-79]|7[1-69]|88|9\d)\d{7}$/,
- "vi-VN": /^((\+?84)|0)((3([2-9]))|(5([25689]))|(7([0|6-9]))|(8([1-9]))|(9([0-9])))([0-9]{7})$/,
- "zh-CN": /^((\+|00)86)?(1[3-9]|9[28])\d{9}$/,
- "zh-TW": /^(\+?886\-?|0)?9\d{8}$/,
- "dz-BT": /^(\+?975|0)?(17|16|77|02)\d{6}$/,
- "ar-YE": /^(((\+|00)9677|0?7)[0137]\d{7}|((\+|00)967|0)[1-7]\d{6})$/,
- "ar-EH": /^(\+?212|0)[\s\-]?(5288|5289)[\s\-]?\d{5}$/,
- "fa-AF": /^(\+93|0)?(2{1}[0-8]{1}|[3-5]{1}[0-4]{1})(\d{7})$/,
- "mk-MK": /^(\+?389|0)?((?:2[2-9]\d{6}|(?:3[1-4]|4[2-8])\d{6}|500\d{5}|5[2-9]\d{6}|7[0-9][2-9]\d{5}|8[1-9]\d{6}|800\d{5}|8009\d{4}))$/
- };
- phones["en-CA"] = phones["en-US"];
- phones["fr-CA"] = phones["en-CA"];
- phones["fr-BE"] = phones["nl-BE"];
- phones["zh-HK"] = phones["en-HK"];
- phones["zh-MO"] = phones["en-MO"];
- phones["ga-IE"] = phones["en-IE"];
- phones["fr-CH"] = phones["de-CH"];
- phones["it-CH"] = phones["fr-CH"];
- function isMobilePhone(str, locale, options) {
- (0, _assertString.default)(str);
- if (options && options.strictMode && !str.startsWith("+")) {
- return false;
- }
- if (Array.isArray(locale)) {
- return locale.some(function(key2) {
- if (phones.hasOwnProperty(key2)) {
- var phone2 = phones[key2];
- if (phone2.test(str)) {
- return true;
- }
- }
- return false;
- });
- } else if (locale in phones) {
- return phones[locale].test(str);
- } else if (!locale || locale === "any") {
- for (var key in phones) {
- if (phones.hasOwnProperty(key)) {
- var phone = phones[key];
- if (phone.test(str)) {
- return true;
- }
- }
- }
- return false;
- }
- throw new Error("Invalid locale '".concat(locale, "'"));
- }
- var locales = exports2.locales = Object.keys(phones);
- }
- });
- // node_modules/validator/lib/isEthereumAddress.js
- var require_isEthereumAddress = __commonJS({
- "node_modules/validator/lib/isEthereumAddress.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isEthereumAddress;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var eth = /^(0x)[0-9a-f]{40}$/i;
- function isEthereumAddress(str) {
- (0, _assertString.default)(str);
- return eth.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isCurrency.js
- var require_isCurrency = __commonJS({
- "node_modules/validator/lib/isCurrency.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isCurrency;
- var _merge = _interopRequireDefault(require_merge());
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function currencyRegex(options) {
- var decimal_digits = "\\d{".concat(options.digits_after_decimal[0], "}");
- options.digits_after_decimal.forEach(function(digit, index) {
- if (index !== 0) decimal_digits = "".concat(decimal_digits, "|\\d{").concat(digit, "}");
- });
- var symbol = "(".concat(options.symbol.replace(/\W/, function(m) {
- return "\\".concat(m);
- }), ")").concat(options.require_symbol ? "" : "?"), negative = "-?", whole_dollar_amount_without_sep = "[1-9]\\d*", whole_dollar_amount_with_sep = "[1-9]\\d{0,2}(\\".concat(options.thousands_separator, "\\d{3})*"), valid_whole_dollar_amounts = ["0", whole_dollar_amount_without_sep, whole_dollar_amount_with_sep], whole_dollar_amount = "(".concat(valid_whole_dollar_amounts.join("|"), ")?"), decimal_amount = "(\\".concat(options.decimal_separator, "(").concat(decimal_digits, "))").concat(options.require_decimal ? "" : "?");
- var pattern = whole_dollar_amount + (options.allow_decimal || options.require_decimal ? decimal_amount : "");
- if (options.allow_negatives && !options.parens_for_negatives) {
- if (options.negative_sign_after_digits) {
- pattern += negative;
- } else if (options.negative_sign_before_digits) {
- pattern = negative + pattern;
- }
- }
- if (options.allow_negative_sign_placeholder) {
- pattern = "( (?!\\-))?".concat(pattern);
- } else if (options.allow_space_after_symbol) {
- pattern = " ?".concat(pattern);
- } else if (options.allow_space_after_digits) {
- pattern += "( (?!$))?";
- }
- if (options.symbol_after_digits) {
- pattern += symbol;
- } else {
- pattern = symbol + pattern;
- }
- if (options.allow_negatives) {
- if (options.parens_for_negatives) {
- pattern = "(\\(".concat(pattern, "\\)|").concat(pattern, ")");
- } else if (!(options.negative_sign_before_digits || options.negative_sign_after_digits)) {
- pattern = negative + pattern;
- }
- }
- return new RegExp("^(?!-? )(?=.*\\d)".concat(pattern, "$"));
- }
- var default_currency_options = {
- symbol: "$",
- require_symbol: false,
- allow_space_after_symbol: false,
- symbol_after_digits: false,
- allow_negatives: true,
- parens_for_negatives: false,
- negative_sign_before_digits: false,
- negative_sign_after_digits: false,
- allow_negative_sign_placeholder: false,
- thousands_separator: ",",
- decimal_separator: ".",
- allow_decimal: true,
- require_decimal: false,
- digits_after_decimal: [2],
- allow_space_after_digits: false
- };
- function isCurrency(str, options) {
- (0, _assertString.default)(str);
- options = (0, _merge.default)(options, default_currency_options);
- return currencyRegex(options).test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isBtcAddress.js
- var require_isBtcAddress = __commonJS({
- "node_modules/validator/lib/isBtcAddress.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isBtcAddress;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var bech32 = /^(bc1|tb1|bc1p|tb1p)[ac-hj-np-z02-9]{39,58}$/;
- var base58 = /^(1|2|3|m)[A-HJ-NP-Za-km-z1-9]{25,39}$/;
- function isBtcAddress(str) {
- (0, _assertString.default)(str);
- return bech32.test(str) || base58.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isISO6346.js
- var require_isISO6346 = __commonJS({
- "node_modules/validator/lib/isISO6346.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.isFreightContainerID = void 0;
- exports2.isISO6346 = isISO6346;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var isISO6346Str = /^[A-Z]{3}(U[0-9]{7})|([J,Z][0-9]{6,7})$/;
- var isDigit = /^[0-9]$/;
- function isISO6346(str) {
- (0, _assertString.default)(str);
- str = str.toUpperCase();
- if (!isISO6346Str.test(str)) return false;
- if (str.length === 11) {
- var sum = 0;
- for (var i = 0; i < str.length - 1; i++) {
- if (!isDigit.test(str[i])) {
- var convertedCode = void 0;
- var letterCode = str.charCodeAt(i) - 55;
- if (letterCode < 11) convertedCode = letterCode;
- else if (letterCode >= 11 && letterCode <= 20) convertedCode = 12 + letterCode % 11;
- else if (letterCode >= 21 && letterCode <= 30) convertedCode = 23 + letterCode % 21;
- else convertedCode = 34 + letterCode % 31;
- sum += convertedCode * Math.pow(2, i);
- } else sum += str[i] * Math.pow(2, i);
- }
- var checkSumDigit = sum % 11;
- if (checkSumDigit === 10) checkSumDigit = 0;
- return Number(str[str.length - 1]) === checkSumDigit;
- }
- return true;
- }
- var isFreightContainerID = exports2.isFreightContainerID = isISO6346;
- }
- });
- // node_modules/validator/lib/isISO6391.js
- var require_isISO6391 = __commonJS({
- "node_modules/validator/lib/isISO6391.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isISO6391;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var isISO6391Set = /* @__PURE__ */ new Set(["aa", "ab", "ae", "af", "ak", "am", "an", "ar", "as", "av", "ay", "az", "az", "ba", "be", "bg", "bh", "bi", "bm", "bn", "bo", "br", "bs", "ca", "ce", "ch", "co", "cr", "cs", "cu", "cv", "cy", "da", "de", "dv", "dz", "ee", "el", "en", "eo", "es", "et", "eu", "fa", "ff", "fi", "fj", "fo", "fr", "fy", "ga", "gd", "gl", "gn", "gu", "gv", "ha", "he", "hi", "ho", "hr", "ht", "hu", "hy", "hz", "ia", "id", "ie", "ig", "ii", "ik", "io", "is", "it", "iu", "ja", "jv", "ka", "kg", "ki", "kj", "kk", "kl", "km", "kn", "ko", "kr", "ks", "ku", "kv", "kw", "ky", "la", "lb", "lg", "li", "ln", "lo", "lt", "lu", "lv", "mg", "mh", "mi", "mk", "ml", "mn", "mr", "ms", "mt", "my", "na", "nb", "nd", "ne", "ng", "nl", "nn", "no", "nr", "nv", "ny", "oc", "oj", "om", "or", "os", "pa", "pi", "pl", "ps", "pt", "qu", "rm", "rn", "ro", "ru", "rw", "sa", "sc", "sd", "se", "sg", "si", "sk", "sl", "sm", "sn", "so", "sq", "sr", "ss", "st", "su", "sv", "sw", "ta", "te", "tg", "th", "ti", "tk", "tl", "tn", "to", "tr", "ts", "tt", "tw", "ty", "ug", "uk", "ur", "uz", "ve", "vi", "vo", "wa", "wo", "xh", "yi", "yo", "za", "zh", "zu"]);
- function isISO6391(str) {
- (0, _assertString.default)(str);
- return isISO6391Set.has(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isISO8601.js
- var require_isISO8601 = __commonJS({
- "node_modules/validator/lib/isISO8601.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isISO8601;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var iso8601 = /^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/;
- var iso8601StrictSeparator = /^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/;
- var isValidDate = function isValidDate2(str) {
- var ordinalMatch = str.match(/^(\d{4})-?(\d{3})([ T]{1}\.*|$)/);
- if (ordinalMatch) {
- var oYear = Number(ordinalMatch[1]);
- var oDay = Number(ordinalMatch[2]);
- if (oYear % 4 === 0 && oYear % 100 !== 0 || oYear % 400 === 0) return oDay <= 366;
- return oDay <= 365;
- }
- var match = str.match(/(\d{4})-?(\d{0,2})-?(\d*)/).map(Number);
- var year = match[1];
- var month = match[2];
- var day = match[3];
- var monthString = month ? "0".concat(month).slice(-2) : month;
- var dayString = day ? "0".concat(day).slice(-2) : day;
- var d = new Date("".concat(year, "-").concat(monthString || "01", "-").concat(dayString || "01"));
- if (month && day) {
- return d.getUTCFullYear() === year && d.getUTCMonth() + 1 === month && d.getUTCDate() === day;
- }
- return true;
- };
- function isISO8601(str) {
- var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
- (0, _assertString.default)(str);
- var check = options.strictSeparator ? iso8601StrictSeparator.test(str) : iso8601.test(str);
- if (check && options.strict) return isValidDate(str);
- return check;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isRFC3339.js
- var require_isRFC3339 = __commonJS({
- "node_modules/validator/lib/isRFC3339.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isRFC3339;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var dateFullYear = /[0-9]{4}/;
- var dateMonth = /(0[1-9]|1[0-2])/;
- var dateMDay = /([12]\d|0[1-9]|3[01])/;
- var timeHour = /([01][0-9]|2[0-3])/;
- var timeMinute = /[0-5][0-9]/;
- var timeSecond = /([0-5][0-9]|60)/;
- var timeSecFrac = /(\.[0-9]+)?/;
- var timeNumOffset = new RegExp("[-+]".concat(timeHour.source, ":").concat(timeMinute.source));
- var timeOffset = new RegExp("([zZ]|".concat(timeNumOffset.source, ")"));
- var partialTime = new RegExp("".concat(timeHour.source, ":").concat(timeMinute.source, ":").concat(timeSecond.source).concat(timeSecFrac.source));
- var fullDate = new RegExp("".concat(dateFullYear.source, "-").concat(dateMonth.source, "-").concat(dateMDay.source));
- var fullTime = new RegExp("".concat(partialTime.source).concat(timeOffset.source));
- var rfc3339 = new RegExp("^".concat(fullDate.source, "[ tT]").concat(fullTime.source, "$"));
- function isRFC3339(str) {
- (0, _assertString.default)(str);
- return rfc3339.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isISO15924.js
- var require_isISO15924 = __commonJS({
- "node_modules/validator/lib/isISO15924.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.ScriptCodes = void 0;
- exports2.default = isISO15924;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var validISO15924Codes = /* @__PURE__ */ new Set(["Adlm", "Afak", "Aghb", "Ahom", "Arab", "Aran", "Armi", "Armn", "Avst", "Bali", "Bamu", "Bass", "Batk", "Beng", "Bhks", "Blis", "Bopo", "Brah", "Brai", "Bugi", "Buhd", "Cakm", "Cans", "Cari", "Cham", "Cher", "Chis", "Chrs", "Cirt", "Copt", "Cpmn", "Cprt", "Cyrl", "Cyrs", "Deva", "Diak", "Dogr", "Dsrt", "Dupl", "Egyd", "Egyh", "Egyp", "Elba", "Elym", "Ethi", "Gara", "Geok", "Geor", "Glag", "Gong", "Gonm", "Goth", "Gran", "Grek", "Gujr", "Gukh", "Guru", "Hanb", "Hang", "Hani", "Hano", "Hans", "Hant", "Hatr", "Hebr", "Hira", "Hluw", "Hmng", "Hmnp", "Hrkt", "Hung", "Inds", "Ital", "Jamo", "Java", "Jpan", "Jurc", "Kali", "Kana", "Kawi", "Khar", "Khmr", "Khoj", "Kitl", "Kits", "Knda", "Kore", "Kpel", "Krai", "Kthi", "Lana", "Laoo", "Latf", "Latg", "Latn", "Leke", "Lepc", "Limb", "Lina", "Linb", "Lisu", "Loma", "Lyci", "Lydi", "Mahj", "Maka", "Mand", "Mani", "Marc", "Maya", "Medf", "Mend", "Merc", "Mero", "Mlym", "Modi", "Mong", "Moon", "Mroo", "Mtei", "Mult", "Mymr", "Nagm", "Nand", "Narb", "Nbat", "Newa", "Nkdb", "Nkgb", "Nkoo", "Nshu", "Ogam", "Olck", "Onao", "Orkh", "Orya", "Osge", "Osma", "Ougr", "Palm", "Pauc", "Pcun", "Pelm", "Perm", "Phag", "Phli", "Phlp", "Phlv", "Phnx", "Plrd", "Piqd", "Prti", "Psin", "Qaaa", "Qaab", "Qaac", "Qaad", "Qaae", "Qaaf", "Qaag", "Qaah", "Qaai", "Qaaj", "Qaak", "Qaal", "Qaam", "Qaan", "Qaao", "Qaap", "Qaaq", "Qaar", "Qaas", "Qaat", "Qaau", "Qaav", "Qaaw", "Qaax", "Qaay", "Qaaz", "Qaba", "Qabb", "Qabc", "Qabd", "Qabe", "Qabf", "Qabg", "Qabh", "Qabi", "Qabj", "Qabk", "Qabl", "Qabm", "Qabn", "Qabo", "Qabp", "Qabq", "Qabr", "Qabs", "Qabt", "Qabu", "Qabv", "Qabw", "Qabx", "Ranj", "Rjng", "Rohg", "Roro", "Runr", "Samr", "Sara", "Sarb", "Saur", "Sgnw", "Shaw", "Shrd", "Shui", "Sidd", "Sidt", "Sind", "Sinh", "Sogd", "Sogo", "Sora", "Soyo", "Sund", "Sunu", "Sylo", "Syrc", "Syre", "Syrj", "Syrn", "Tagb", "Takr", "Tale", "Talu", "Taml", "Tang", "Tavt", "Tayo", "Telu", "Teng", "Tfng", "Tglg", "Thaa", "Thai", "Tibt", "Tirh", "Tnsa", "Todr", "Tols", "Toto", "Tutg", "Ugar", "Vaii", "Visp", "Vith", "Wara", "Wcho", "Wole", "Xpeo", "Xsux", "Yezi", "Yiii", "Zanb", "Zinh", "Zmth", "Zsye", "Zsym", "Zxxx", "Zyyy", "Zzzz"]);
- function isISO15924(str) {
- (0, _assertString.default)(str);
- return validISO15924Codes.has(str);
- }
- var ScriptCodes = exports2.ScriptCodes = validISO15924Codes;
- }
- });
- // node_modules/validator/lib/isISO31661Alpha3.js
- var require_isISO31661Alpha3 = __commonJS({
- "node_modules/validator/lib/isISO31661Alpha3.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isISO31661Alpha3;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var validISO31661Alpha3CountriesCodes = /* @__PURE__ */ new Set(["AFG", "ALA", "ALB", "DZA", "ASM", "AND", "AGO", "AIA", "ATA", "ATG", "ARG", "ARM", "ABW", "AUS", "AUT", "AZE", "BHS", "BHR", "BGD", "BRB", "BLR", "BEL", "BLZ", "BEN", "BMU", "BTN", "BOL", "BES", "BIH", "BWA", "BVT", "BRA", "IOT", "BRN", "BGR", "BFA", "BDI", "KHM", "CMR", "CAN", "CPV", "CYM", "CAF", "TCD", "CHL", "CHN", "CXR", "CCK", "COL", "COM", "COG", "COD", "COK", "CRI", "CIV", "HRV", "CUB", "CUW", "CYP", "CZE", "DNK", "DJI", "DMA", "DOM", "ECU", "EGY", "SLV", "GNQ", "ERI", "EST", "ETH", "FLK", "FRO", "FJI", "FIN", "FRA", "GUF", "PYF", "ATF", "GAB", "GMB", "GEO", "DEU", "GHA", "GIB", "GRC", "GRL", "GRD", "GLP", "GUM", "GTM", "GGY", "GIN", "GNB", "GUY", "HTI", "HMD", "VAT", "HND", "HKG", "HUN", "ISL", "IND", "IDN", "IRN", "IRQ", "IRL", "IMN", "ISR", "ITA", "JAM", "JPN", "JEY", "JOR", "KAZ", "KEN", "KIR", "PRK", "KOR", "KWT", "KGZ", "LAO", "LVA", "LBN", "LSO", "LBR", "LBY", "LIE", "LTU", "LUX", "MAC", "MKD", "MDG", "MWI", "MYS", "MDV", "MLI", "MLT", "MHL", "MTQ", "MRT", "MUS", "MYT", "MEX", "FSM", "MDA", "MCO", "MNG", "MNE", "MSR", "MAR", "MOZ", "MMR", "NAM", "NRU", "NPL", "NLD", "NCL", "NZL", "NIC", "NER", "NGA", "NIU", "NFK", "MNP", "NOR", "OMN", "PAK", "PLW", "PSE", "PAN", "PNG", "PRY", "PER", "PHL", "PCN", "POL", "PRT", "PRI", "QAT", "REU", "ROU", "RUS", "RWA", "BLM", "SHN", "KNA", "LCA", "MAF", "SPM", "VCT", "WSM", "SMR", "STP", "SAU", "SEN", "SRB", "SYC", "SLE", "SGP", "SXM", "SVK", "SVN", "SLB", "SOM", "ZAF", "SGS", "SSD", "ESP", "LKA", "SDN", "SUR", "SJM", "SWZ", "SWE", "CHE", "SYR", "TWN", "TJK", "TZA", "THA", "TLS", "TGO", "TKL", "TON", "TTO", "TUN", "TUR", "TKM", "TCA", "TUV", "UGA", "UKR", "ARE", "GBR", "USA", "UMI", "URY", "UZB", "VUT", "VEN", "VNM", "VGB", "VIR", "WLF", "ESH", "YEM", "ZMB", "ZWE"]);
- var alpha3CountryCode = /^[a-zA-Z]{3}$/;
- function isISO31661Alpha3(str) {
- var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
- (0, _assertString.default)(str);
- var userAssignedCodes = options.userAssignedCodes;
- var validUserAssignedCodes = (userAssignedCodes || []).reduce(function(accumulator, userAssignedCode) {
- if (alpha3CountryCode.test(userAssignedCode)) {
- accumulator.push(userAssignedCode.toUpperCase());
- }
- return accumulator;
- }, []);
- if (validUserAssignedCodes.includes(str.toUpperCase())) {
- return true;
- }
- return validISO31661Alpha3CountriesCodes.has(str.toUpperCase());
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isISO31661Numeric.js
- var require_isISO31661Numeric = __commonJS({
- "node_modules/validator/lib/isISO31661Numeric.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isISO31661Numeric;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var validISO31661NumericCountriesCodes = /* @__PURE__ */ new Set(["004", "008", "010", "012", "016", "020", "024", "028", "031", "032", "036", "040", "044", "048", "050", "051", "052", "056", "060", "064", "068", "070", "072", "074", "076", "084", "086", "090", "092", "096", "100", "104", "108", "112", "116", "120", "124", "132", "136", "140", "144", "148", "152", "156", "158", "162", "166", "170", "174", "175", "178", "180", "184", "188", "191", "192", "196", "203", "204", "208", "212", "214", "218", "222", "226", "231", "232", "233", "234", "238", "239", "242", "246", "248", "250", "254", "258", "260", "262", "266", "268", "270", "275", "276", "288", "292", "296", "300", "304", "308", "312", "316", "320", "324", "328", "332", "334", "336", "340", "344", "348", "352", "356", "360", "364", "368", "372", "376", "380", "384", "388", "392", "398", "400", "404", "408", "410", "414", "417", "418", "422", "426", "428", "430", "434", "438", "440", "442", "446", "450", "454", "458", "462", "466", "470", "474", "478", "480", "484", "492", "496", "498", "499", "500", "504", "508", "512", "516", "520", "524", "528", "531", "533", "534", "535", "540", "548", "554", "558", "562", "566", "570", "574", "578", "580", "581", "583", "584", "585", "586", "591", "598", "600", "604", "608", "612", "616", "620", "624", "626", "630", "634", "638", "642", "643", "646", "652", "654", "659", "660", "662", "663", "666", "670", "674", "678", "682", "686", "688", "690", "694", "702", "703", "704", "705", "706", "710", "716", "724", "728", "729", "732", "740", "744", "748", "752", "756", "760", "762", "764", "768", "772", "776", "780", "784", "788", "792", "795", "796", "798", "800", "804", "807", "818", "826", "831", "832", "833", "834", "840", "850", "854", "858", "860", "862", "876", "882", "887", "894"]);
- function isISO31661Numeric(str) {
- (0, _assertString.default)(str);
- return validISO31661NumericCountriesCodes.has(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isISO4217.js
- var require_isISO4217 = __commonJS({
- "node_modules/validator/lib/isISO4217.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.CurrencyCodes = void 0;
- exports2.default = isISO4217;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var validISO4217CurrencyCodes = /* @__PURE__ */ new Set(["AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNY", "COP", "COU", "CRC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "EUR", "FJD", "FKP", "GBP", "GEL", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HTG", "HUF", "IDR", "ILS", "INR", "IQD", "IRR", "ISK", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRU", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLE", "SLL", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VED", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWL"]);
- function isISO4217(str) {
- (0, _assertString.default)(str);
- return validISO4217CurrencyCodes.has(str.toUpperCase());
- }
- var CurrencyCodes = exports2.CurrencyCodes = validISO4217CurrencyCodes;
- }
- });
- // node_modules/validator/lib/isBase32.js
- var require_isBase32 = __commonJS({
- "node_modules/validator/lib/isBase32.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isBase32;
- var _assertString = _interopRequireDefault(require_assertString());
- var _merge = _interopRequireDefault(require_merge());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var base32 = /^[A-Z2-7]+=*$/;
- var crockfordBase32 = /^[A-HJKMNP-TV-Z0-9]+$/;
- var defaultBase32Options = {
- crockford: false
- };
- function isBase32(str, options) {
- (0, _assertString.default)(str);
- options = (0, _merge.default)(options, defaultBase32Options);
- if (options.crockford) {
- return crockfordBase32.test(str);
- }
- return str.length % 8 === 0 && base32.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isBase58.js
- var require_isBase58 = __commonJS({
- "node_modules/validator/lib/isBase58.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isBase58;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var base58Reg = /^[A-HJ-NP-Za-km-z1-9]*$/;
- function isBase58(str) {
- (0, _assertString.default)(str);
- return base58Reg.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isDataURI.js
- var require_isDataURI = __commonJS({
- "node_modules/validator/lib/isDataURI.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isDataURI;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var validMediaType = /^[a-z]+\/[a-z0-9\-\+\._]+$/i;
- var validAttribute = /^[a-z\-]+=[a-z0-9\-]+$/i;
- var validData = /^[a-z0-9!\$&'\(\)\*\+,;=\-\._~:@\/\?%\s]*$/i;
- function isDataURI(str) {
- (0, _assertString.default)(str);
- var data = str.split(",");
- if (data.length < 2) {
- return false;
- }
- var attributes = data.shift().trim().split(";");
- var schemeAndMediaType = attributes.shift();
- if (schemeAndMediaType.slice(0, 5) !== "data:") {
- return false;
- }
- var mediaType = schemeAndMediaType.slice(5);
- if (mediaType !== "" && !validMediaType.test(mediaType)) {
- return false;
- }
- for (var i = 0; i < attributes.length; i++) {
- if (!(i === attributes.length - 1 && attributes[i].toLowerCase() === "base64") && !validAttribute.test(attributes[i])) {
- return false;
- }
- }
- for (var _i = 0; _i < data.length; _i++) {
- if (!validData.test(data[_i])) {
- return false;
- }
- }
- return true;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isMagnetURI.js
- var require_isMagnetURI = __commonJS({
- "node_modules/validator/lib/isMagnetURI.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isMagnetURI;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var magnetURIComponent = /(?:^magnet:\?|[^?&]&)xt(?:\.1)?=urn:(?:(?:aich|bitprint|btih|ed2k|ed2khash|kzhash|md5|sha1|tree:tiger):[a-z0-9]{32}(?:[a-z0-9]{8})?|btmh:1220[a-z0-9]{64})(?:$|&)/i;
- function isMagnetURI(url) {
- (0, _assertString.default)(url);
- if (url.indexOf("magnet:?") !== 0) {
- return false;
- }
- return magnetURIComponent.test(url);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/rtrim.js
- var require_rtrim = __commonJS({
- "node_modules/validator/lib/rtrim.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = rtrim;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function rtrim(str, chars) {
- (0, _assertString.default)(str);
- if (chars) {
- var pattern = new RegExp("[".concat(chars.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "]+$"), "g");
- return str.replace(pattern, "");
- }
- var strIndex = str.length - 1;
- while (/\s/.test(str.charAt(strIndex))) {
- strIndex -= 1;
- }
- return str.slice(0, strIndex + 1);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/ltrim.js
- var require_ltrim = __commonJS({
- "node_modules/validator/lib/ltrim.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = ltrim;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function ltrim(str, chars) {
- (0, _assertString.default)(str);
- var pattern = chars ? new RegExp("^[".concat(chars.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "]+"), "g") : /^\s+/g;
- return str.replace(pattern, "");
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/trim.js
- var require_trim = __commonJS({
- "node_modules/validator/lib/trim.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = trim;
- var _rtrim = _interopRequireDefault(require_rtrim());
- var _ltrim = _interopRequireDefault(require_ltrim());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function trim(str, chars) {
- return (0, _rtrim.default)((0, _ltrim.default)(str, chars), chars);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isMailtoURI.js
- var require_isMailtoURI = __commonJS({
- "node_modules/validator/lib/isMailtoURI.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isMailtoURI;
- var _trim = _interopRequireDefault(require_trim());
- var _isEmail = _interopRequireDefault(require_isEmail());
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function _slicedToArray(r, e) {
- return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
- }
- function _nonIterableRest() {
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
- }
- function _iterableToArrayLimit(r, l) {
- var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
- if (null != t) {
- var e, n, i, u, a = [], f = true, o = false;
- try {
- if (i = (t = t.call(r)).next, 0 === l) {
- if (Object(t) !== t) return;
- f = false;
- } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = true) ;
- } catch (r2) {
- o = true, n = r2;
- } finally {
- try {
- if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
- } finally {
- if (o) throw n;
- }
- }
- return a;
- }
- }
- function _arrayWithHoles(r) {
- if (Array.isArray(r)) return r;
- }
- function _createForOfIteratorHelper(r, e) {
- var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
- if (!t) {
- if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) {
- t && (r = t);
- var _n = 0, F = function F2() {
- };
- return { s: F, n: function n() {
- return _n >= r.length ? { done: true } : { done: false, value: r[_n++] };
- }, e: function e2(r2) {
- throw r2;
- }, f: F };
- }
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
- }
- var o, a = true, u = false;
- return { s: function s() {
- t = t.call(r);
- }, n: function n() {
- var r2 = t.next();
- return a = r2.done, r2;
- }, e: function e2(r2) {
- u = true, o = r2;
- }, f: function f() {
- try {
- a || null == t.return || t.return();
- } finally {
- if (u) throw o;
- }
- } };
- }
- function _unsupportedIterableToArray(r, a) {
- if (r) {
- if ("string" == typeof r) return _arrayLikeToArray(r, a);
- var t = {}.toString.call(r).slice(8, -1);
- return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
- }
- }
- function _arrayLikeToArray(r, a) {
- (null == a || a > r.length) && (a = r.length);
- for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
- return n;
- }
- function parseMailtoQueryString(queryString) {
- var allowedParams = /* @__PURE__ */ new Set(["subject", "body", "cc", "bcc"]), query = {
- cc: "",
- bcc: ""
- };
- var isParseFailed = false;
- var queryParams = queryString.split("&");
- if (queryParams.length > 4) {
- return false;
- }
- var _iterator = _createForOfIteratorHelper(queryParams), _step;
- try {
- for (_iterator.s(); !(_step = _iterator.n()).done; ) {
- var q = _step.value;
- var _q$split = q.split("="), _q$split2 = _slicedToArray(_q$split, 2), key = _q$split2[0], value = _q$split2[1];
- if (key && !allowedParams.has(key)) {
- isParseFailed = true;
- break;
- }
- if (value && (key === "cc" || key === "bcc")) {
- query[key] = value;
- }
- if (key) {
- allowedParams.delete(key);
- }
- }
- } catch (err) {
- _iterator.e(err);
- } finally {
- _iterator.f();
- }
- return isParseFailed ? false : query;
- }
- function isMailtoURI(url, options) {
- (0, _assertString.default)(url);
- if (url.indexOf("mailto:") !== 0) {
- return false;
- }
- var _url$replace$split = url.replace("mailto:", "").split("?"), _url$replace$split2 = _slicedToArray(_url$replace$split, 2), to = _url$replace$split2[0], _url$replace$split2$ = _url$replace$split2[1], queryString = _url$replace$split2$ === void 0 ? "" : _url$replace$split2$;
- if (!to && !queryString) {
- return true;
- }
- var query = parseMailtoQueryString(queryString);
- if (!query) {
- return false;
- }
- return "".concat(to, ",").concat(query.cc, ",").concat(query.bcc).split(",").every(function(email) {
- email = (0, _trim.default)(email, " ");
- if (email) {
- return (0, _isEmail.default)(email, options);
- }
- return true;
- });
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isMimeType.js
- var require_isMimeType = __commonJS({
- "node_modules/validator/lib/isMimeType.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isMimeType;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var mimeTypeSimple = /^(application|audio|font|image|message|model|multipart|text|video)\/[a-zA-Z0-9\.\-\+_]{1,100}$/i;
- var mimeTypeText = /^text\/[a-zA-Z0-9\.\-\+]{1,100};\s?charset=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?$/i;
- var mimeTypeMultipart = /^multipart\/[a-zA-Z0-9\.\-\+]{1,100}(;\s?(boundary|charset)=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?){0,2}$/i;
- function isMimeType(str) {
- (0, _assertString.default)(str);
- return mimeTypeSimple.test(str) || mimeTypeText.test(str) || mimeTypeMultipart.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isLatLong.js
- var require_isLatLong = __commonJS({
- "node_modules/validator/lib/isLatLong.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isLatLong;
- var _assertString = _interopRequireDefault(require_assertString());
- var _merge = _interopRequireDefault(require_merge());
- var _includesString = _interopRequireDefault(require_includesString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var lat = /^\(?[+-]?(90(\.0+)?|[1-8]?\d(\.\d+)?)$/;
- var long = /^\s?[+-]?(180(\.0+)?|1[0-7]\d(\.\d+)?|\d{1,2}(\.\d+)?)\)?$/;
- var latDMS = /^(([1-8]?\d)\D+([1-5]?\d|60)\D+([1-5]?\d|60)(\.\d+)?|90\D+0\D+0)\D+[NSns]?$/i;
- var longDMS = /^\s*([1-7]?\d{1,2}\D+([1-5]?\d|60)\D+([1-5]?\d|60)(\.\d+)?|180\D+0\D+0)\D+[EWew]?$/i;
- var defaultLatLongOptions = {
- checkDMS: false
- };
- function isLatLong(str, options) {
- (0, _assertString.default)(str);
- options = (0, _merge.default)(options, defaultLatLongOptions);
- if (!(0, _includesString.default)(str, ",")) return false;
- var pair = str.split(",");
- if (pair[0].startsWith("(") && !pair[1].endsWith(")") || pair[1].endsWith(")") && !pair[0].startsWith("(")) return false;
- if (options.checkDMS) {
- return latDMS.test(pair[0]) && longDMS.test(pair[1]);
- }
- return lat.test(pair[0]) && long.test(pair[1]);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isPostalCode.js
- var require_isPostalCode = __commonJS({
- "node_modules/validator/lib/isPostalCode.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isPostalCode;
- exports2.locales = void 0;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var threeDigit = /^\d{3}$/;
- var fourDigit = /^\d{4}$/;
- var fiveDigit = /^\d{5}$/;
- var sixDigit = /^\d{6}$/;
- var patterns = {
- AD: /^AD\d{3}$/,
- AT: fourDigit,
- AU: fourDigit,
- AZ: /^AZ\d{4}$/,
- BA: /^([7-8]\d{4}$)/,
- BD: /^([1-8][0-9]{3}|9[0-4][0-9]{2})$/,
- BE: fourDigit,
- BG: fourDigit,
- BR: /^\d{5}-?\d{3}$/,
- BY: /^2[1-4]\d{4}$/,
- CA: /^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJ-NPRSTV-Z][\s\-]?\d[ABCEGHJ-NPRSTV-Z]\d$/i,
- CH: fourDigit,
- CN: /^(0[1-7]|1[012356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[1-5]|8[1345]|9[09])\d{4}$/,
- CO: /^(05|08|11|13|15|17|18|19|20|23|25|27|41|44|47|50|52|54|63|66|68|70|73|76|81|85|86|88|91|94|95|97|99)(\d{4})$/,
- CZ: /^\d{3}\s?\d{2}$/,
- DE: fiveDigit,
- DK: fourDigit,
- DO: fiveDigit,
- DZ: fiveDigit,
- EE: fiveDigit,
- ES: /^(5[0-2]{1}|[0-4]{1}\d{1})\d{3}$/,
- FI: fiveDigit,
- FR: /^(?:(?:0[1-9]|[1-8]\d|9[0-5])\d{3}|97[1-46]\d{2})$/,
- GB: /^(gir\s?0aa|[a-z]{1,2}\d[\da-z]?\s?(\d[a-z]{2})?)$/i,
- GR: /^\d{3}\s?\d{2}$/,
- HR: /^([1-5]\d{4}$)/,
- HT: /^HT\d{4}$/,
- HU: fourDigit,
- ID: fiveDigit,
- IE: /^(?!.*(?:o))[A-Za-z]\d[\dw]\s\w{4}$/i,
- IL: /^(\d{5}|\d{7})$/,
- IN: /^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/,
- IR: /^(?!(\d)\1{3})[13-9]{4}[1346-9][013-9]{5}$/,
- IS: threeDigit,
- IT: fiveDigit,
- JP: /^\d{3}\-\d{4}$/,
- KE: fiveDigit,
- KR: /^(\d{5}|\d{6})$/,
- LI: /^(948[5-9]|949[0-7])$/,
- LT: /^LT\-\d{5}$/,
- LU: fourDigit,
- LV: /^LV\-\d{4}$/,
- LK: fiveDigit,
- MC: /^980\d{2}$/,
- MG: threeDigit,
- MX: fiveDigit,
- MT: /^[A-Za-z]{3}\s{0,1}\d{4}$/,
- MY: fiveDigit,
- NL: /^[1-9]\d{3}\s?(?!sa|sd|ss)[a-z]{2}$/i,
- NO: fourDigit,
- NP: /^(10|21|22|32|33|34|44|45|56|57)\d{3}$|^(977)$/i,
- NZ: fourDigit,
- // https://www.pakpost.gov.pk/postcodes.php
- PK: fiveDigit,
- PL: /^\d{2}\-\d{3}$/,
- PR: /^00[679]\d{2}([ -]\d{4})?$/,
- PT: /^\d{4}\-\d{3}?$/,
- RO: sixDigit,
- RU: sixDigit,
- SA: fiveDigit,
- SE: /^[1-9]\d{2}\s?\d{2}$/,
- SG: sixDigit,
- SI: fourDigit,
- SK: /^\d{3}\s?\d{2}$/,
- TH: fiveDigit,
- TN: fourDigit,
- TW: /^\d{3}(\d{2,3})?$/,
- UA: fiveDigit,
- US: /^\d{5}(-\d{4})?$/,
- ZA: fourDigit,
- ZM: fiveDigit
- };
- var locales = exports2.locales = Object.keys(patterns);
- function isPostalCode(str, locale) {
- (0, _assertString.default)(str);
- if (locale in patterns) {
- return patterns[locale].test(str);
- } else if (locale === "any") {
- for (var key in patterns) {
- if (patterns.hasOwnProperty(key)) {
- var pattern = patterns[key];
- if (pattern.test(str)) {
- return true;
- }
- }
- }
- return false;
- }
- throw new Error("Invalid locale '".concat(locale, "'"));
- }
- }
- });
- // node_modules/validator/lib/escape.js
- var require_escape = __commonJS({
- "node_modules/validator/lib/escape.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = escape2;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function escape2(str) {
- (0, _assertString.default)(str);
- return str.replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">").replace(/\//g, "/").replace(/\\/g, "\").replace(/`/g, "`");
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/unescape.js
- var require_unescape = __commonJS({
- "node_modules/validator/lib/unescape.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = unescape2;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function unescape2(str) {
- (0, _assertString.default)(str);
- return str.replace(/"/g, '"').replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">").replace(///g, "/").replace(/\/g, "\\").replace(/`/g, "`").replace(/&/g, "&");
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/blacklist.js
- var require_blacklist = __commonJS({
- "node_modules/validator/lib/blacklist.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = blacklist;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function blacklist(str, chars) {
- (0, _assertString.default)(str);
- return str.replace(new RegExp("[".concat(chars, "]+"), "g"), "");
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/stripLow.js
- var require_stripLow = __commonJS({
- "node_modules/validator/lib/stripLow.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = stripLow;
- var _assertString = _interopRequireDefault(require_assertString());
- var _blacklist = _interopRequireDefault(require_blacklist());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function stripLow(str, keep_new_lines) {
- (0, _assertString.default)(str);
- var chars = keep_new_lines ? "\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F" : "\\x00-\\x1F\\x7F";
- return (0, _blacklist.default)(str, chars);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/whitelist.js
- var require_whitelist = __commonJS({
- "node_modules/validator/lib/whitelist.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = whitelist;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function whitelist(str, chars) {
- (0, _assertString.default)(str);
- return str.replace(new RegExp("[^".concat(chars, "]+"), "g"), "");
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isWhitelisted.js
- var require_isWhitelisted = __commonJS({
- "node_modules/validator/lib/isWhitelisted.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isWhitelisted;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- function isWhitelisted(str, chars) {
- (0, _assertString.default)(str);
- for (var i = str.length - 1; i >= 0; i--) {
- if (chars.indexOf(str[i]) === -1) {
- return false;
- }
- }
- return true;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/normalizeEmail.js
- var require_normalizeEmail = __commonJS({
- "node_modules/validator/lib/normalizeEmail.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = normalizeEmail;
- var _merge = _interopRequireDefault(require_merge());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var default_normalize_email_options = {
- // The following options apply to all email addresses
- // Lowercases the local part of the email address.
- // Please note this may violate RFC 5321 as per http://stackoverflow.com/a/9808332/192024).
- // The domain is always lowercased, as per RFC 1035
- all_lowercase: true,
- // The following conversions are specific to GMail
- // Lowercases the local part of the GMail address (known to be case-insensitive)
- gmail_lowercase: true,
- // Removes dots from the local part of the email address, as that's ignored by GMail
- gmail_remove_dots: true,
- // Removes the subaddress (e.g. "+foo") from the email address
- gmail_remove_subaddress: true,
- // Conversts the googlemail.com domain to gmail.com
- gmail_convert_googlemaildotcom: true,
- // The following conversions are specific to Outlook.com / Windows Live / Hotmail
- // Lowercases the local part of the Outlook.com address (known to be case-insensitive)
- outlookdotcom_lowercase: true,
- // Removes the subaddress (e.g. "+foo") from the email address
- outlookdotcom_remove_subaddress: true,
- // The following conversions are specific to Yahoo
- // Lowercases the local part of the Yahoo address (known to be case-insensitive)
- yahoo_lowercase: true,
- // Removes the subaddress (e.g. "-foo") from the email address
- yahoo_remove_subaddress: true,
- // The following conversions are specific to Yandex
- // Lowercases the local part of the Yandex address (known to be case-insensitive)
- yandex_lowercase: true,
- // all yandex domains are equal, this explicitly sets the domain to 'yandex.ru'
- yandex_convert_yandexru: true,
- // The following conversions are specific to iCloud
- // Lowercases the local part of the iCloud address (known to be case-insensitive)
- icloud_lowercase: true,
- // Removes the subaddress (e.g. "+foo") from the email address
- icloud_remove_subaddress: true
- };
- var icloud_domains = ["icloud.com", "me.com"];
- var outlookdotcom_domains = ["hotmail.at", "hotmail.be", "hotmail.ca", "hotmail.cl", "hotmail.co.il", "hotmail.co.nz", "hotmail.co.th", "hotmail.co.uk", "hotmail.com", "hotmail.com.ar", "hotmail.com.au", "hotmail.com.br", "hotmail.com.gr", "hotmail.com.mx", "hotmail.com.pe", "hotmail.com.tr", "hotmail.com.vn", "hotmail.cz", "hotmail.de", "hotmail.dk", "hotmail.es", "hotmail.fr", "hotmail.hu", "hotmail.id", "hotmail.ie", "hotmail.in", "hotmail.it", "hotmail.jp", "hotmail.kr", "hotmail.lv", "hotmail.my", "hotmail.ph", "hotmail.pt", "hotmail.sa", "hotmail.sg", "hotmail.sk", "live.be", "live.co.uk", "live.com", "live.com.ar", "live.com.mx", "live.de", "live.es", "live.eu", "live.fr", "live.it", "live.nl", "msn.com", "outlook.at", "outlook.be", "outlook.cl", "outlook.co.il", "outlook.co.nz", "outlook.co.th", "outlook.com", "outlook.com.ar", "outlook.com.au", "outlook.com.br", "outlook.com.gr", "outlook.com.pe", "outlook.com.tr", "outlook.com.vn", "outlook.cz", "outlook.de", "outlook.dk", "outlook.es", "outlook.fr", "outlook.hu", "outlook.id", "outlook.ie", "outlook.in", "outlook.it", "outlook.jp", "outlook.kr", "outlook.lv", "outlook.my", "outlook.ph", "outlook.pt", "outlook.sa", "outlook.sg", "outlook.sk", "passport.com"];
- var yahoo_domains = ["rocketmail.com", "yahoo.ca", "yahoo.co.uk", "yahoo.com", "yahoo.de", "yahoo.fr", "yahoo.in", "yahoo.it", "ymail.com"];
- var yandex_domains = ["yandex.ru", "yandex.ua", "yandex.kz", "yandex.com", "yandex.by", "ya.ru"];
- function dotsReplacer(match) {
- if (match.length > 1) {
- return match;
- }
- return "";
- }
- function normalizeEmail(email, options) {
- options = (0, _merge.default)(options, default_normalize_email_options);
- var raw_parts = email.split("@");
- var domain = raw_parts.pop();
- var user = raw_parts.join("@");
- var parts = [user, domain];
- parts[1] = parts[1].toLowerCase();
- if (parts[1] === "gmail.com" || parts[1] === "googlemail.com") {
- if (options.gmail_remove_subaddress) {
- parts[0] = parts[0].split("+")[0];
- }
- if (options.gmail_remove_dots) {
- parts[0] = parts[0].replace(/\.+/g, dotsReplacer);
- }
- if (!parts[0].length) {
- return false;
- }
- if (options.all_lowercase || options.gmail_lowercase) {
- parts[0] = parts[0].toLowerCase();
- }
- parts[1] = options.gmail_convert_googlemaildotcom ? "gmail.com" : parts[1];
- } else if (icloud_domains.indexOf(parts[1]) >= 0) {
- if (options.icloud_remove_subaddress) {
- parts[0] = parts[0].split("+")[0];
- }
- if (!parts[0].length) {
- return false;
- }
- if (options.all_lowercase || options.icloud_lowercase) {
- parts[0] = parts[0].toLowerCase();
- }
- } else if (outlookdotcom_domains.indexOf(parts[1]) >= 0) {
- if (options.outlookdotcom_remove_subaddress) {
- parts[0] = parts[0].split("+")[0];
- }
- if (!parts[0].length) {
- return false;
- }
- if (options.all_lowercase || options.outlookdotcom_lowercase) {
- parts[0] = parts[0].toLowerCase();
- }
- } else if (yahoo_domains.indexOf(parts[1]) >= 0) {
- if (options.yahoo_remove_subaddress) {
- var components = parts[0].split("-");
- parts[0] = components.length > 1 ? components.slice(0, -1).join("-") : components[0];
- }
- if (!parts[0].length) {
- return false;
- }
- if (options.all_lowercase || options.yahoo_lowercase) {
- parts[0] = parts[0].toLowerCase();
- }
- } else if (yandex_domains.indexOf(parts[1]) >= 0) {
- if (options.all_lowercase || options.yandex_lowercase) {
- parts[0] = parts[0].toLowerCase();
- }
- parts[1] = options.yandex_convert_yandexru ? "yandex.ru" : parts[1];
- } else if (options.all_lowercase) {
- parts[0] = parts[0].toLowerCase();
- }
- return parts.join("@");
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isSlug.js
- var require_isSlug = __commonJS({
- "node_modules/validator/lib/isSlug.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isSlug;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var charsetRegex = /^[a-z0-9](?!.*[-_]{2,})(?:[a-z0-9_-]*[a-z0-9])?$/;
- function isSlug(str) {
- (0, _assertString.default)(str);
- return charsetRegex.test(str);
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isLicensePlate.js
- var require_isLicensePlate = __commonJS({
- "node_modules/validator/lib/isLicensePlate.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isLicensePlate;
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var validators = {
- "cs-CZ": function csCZ(str) {
- return /^(([ABCDEFHIJKLMNPRSTUVXYZ]|[0-9])-?){5,8}$/.test(str);
- },
- "de-DE": function deDE(str) {
- return /^((A|AA|AB|AC|AE|AH|AK|AM|AN|AÖ|AP|AS|AT|AU|AW|AZ|B|BA|BB|BC|BE|BF|BH|BI|BK|BL|BM|BN|BO|BÖ|BS|BT|BZ|C|CA|CB|CE|CO|CR|CW|D|DA|DD|DE|DH|DI|DL|DM|DN|DO|DU|DW|DZ|E|EA|EB|ED|EE|EF|EG|EH|EI|EL|EM|EN|ER|ES|EU|EW|F|FB|FD|FF|FG|FI|FL|FN|FO|FR|FS|FT|FÜ|FW|FZ|G|GA|GC|GD|GE|GF|GG|GI|GK|GL|GM|GN|GÖ|GP|GR|GS|GT|GÜ|GV|GW|GZ|H|HA|HB|HC|HD|HE|HF|HG|HH|HI|HK|HL|HM|HN|HO|HP|HR|HS|HU|HV|HX|HY|HZ|IK|IL|IN|IZ|J|JE|JL|K|KA|KB|KC|KE|KF|KG|KH|KI|KK|KL|KM|KN|KO|KR|KS|KT|KU|KW|KY|L|LA|LB|LC|LD|LF|LG|LH|LI|LL|LM|LN|LÖ|LP|LR|LU|M|MA|MB|MC|MD|ME|MG|MH|MI|MK|ML|MM|MN|MO|MQ|MR|MS|MÜ|MW|MY|MZ|N|NB|ND|NE|NF|NH|NI|NK|NM|NÖ|NP|NR|NT|NU|NW|NY|NZ|OA|OB|OC|OD|OE|OF|OG|OH|OK|OL|OP|OS|OZ|P|PA|PB|PE|PF|PI|PL|PM|PN|PR|PS|PW|PZ|R|RA|RC|RD|RE|RG|RH|RI|RL|RM|RN|RO|RP|RS|RT|RU|RV|RW|RZ|S|SB|SC|SE|SG|SI|SK|SL|SM|SN|SO|SP|SR|ST|SU|SW|SY|SZ|TE|TF|TG|TO|TP|TR|TS|TT|TÜ|ÜB|UE|UH|UL|UM|UN|V|VB|VG|VK|VR|VS|W|WA|WB|WE|WF|WI|WK|WL|WM|WN|WO|WR|WS|WT|WÜ|WW|WZ|Z|ZE|ZI|ZP|ZR|ZW|ZZ)[- ]?[A-Z]{1,2}[- ]?\d{1,4}|(ABG|ABI|AIB|AIC|ALF|ALZ|ANA|ANG|ANK|APD|ARN|ART|ASL|ASZ|AUR|AZE|BAD|BAR|BBG|BCH|BED|BER|BGD|BGL|BID|BIN|BIR|BIT|BIW|BKS|BLB|BLK|BNA|BOG|BOH|BOR|BOT|BRA|BRB|BRG|BRK|BRL|BRV|BSB|BSK|BTF|BÜD|BUL|BÜR|BÜS|BÜZ|CAS|CHA|CLP|CLZ|COC|COE|CUX|DAH|DAN|DAU|DBR|DEG|DEL|DGF|DIL|DIN|DIZ|DKB|DLG|DON|DUD|DÜW|EBE|EBN|EBS|ECK|EIC|EIL|EIN|EIS|EMD|EMS|ERB|ERH|ERK|ERZ|ESB|ESW|FDB|FDS|FEU|FFB|FKB|FLÖ|FOR|FRG|FRI|FRW|FTL|FÜS|GAN|GAP|GDB|GEL|GEO|GER|GHA|GHC|GLA|GMN|GNT|GOA|GOH|GRA|GRH|GRI|GRM|GRZ|GTH|GUB|GUN|GVM|HAB|HAL|HAM|HAS|HBN|HBS|HCH|HDH|HDL|HEB|HEF|HEI|HER|HET|HGN|HGW|HHM|HIG|HIP|HMÜ|HOG|HOH|HOL|HOM|HOR|HÖS|HOT|HRO|HSK|HST|HVL|HWI|IGB|ILL|JÜL|KEH|KEL|KEM|KIB|KLE|KLZ|KÖN|KÖT|KÖZ|KRU|KÜN|KUS|KYF|LAN|LAU|LBS|LBZ|LDK|LDS|LEO|LER|LEV|LIB|LIF|LIP|LÖB|LOS|LRO|LSZ|LÜN|LUP|LWL|MAB|MAI|MAK|MAL|MED|MEG|MEI|MEK|MEL|MER|MET|MGH|MGN|MHL|MIL|MKK|MOD|MOL|MON|MOS|MSE|MSH|MSP|MST|MTK|MTL|MÜB|MÜR|MYK|MZG|NAB|NAI|NAU|NDH|NEA|NEB|NEC|NEN|NES|NEW|NMB|NMS|NOH|NOL|NOM|NOR|NVP|NWM|OAL|OBB|OBG|OCH|OHA|ÖHR|OHV|OHZ|OPR|OSL|OVI|OVL|OVP|PAF|PAN|PAR|PCH|PEG|PIR|PLÖ|PRÜ|QFT|QLB|RDG|REG|REH|REI|RID|RIE|ROD|ROF|ROK|ROL|ROS|ROT|ROW|RSL|RÜD|RÜG|SAB|SAD|SAN|SAW|SBG|SBK|SCZ|SDH|SDL|SDT|SEB|SEE|SEF|SEL|SFB|SFT|SGH|SHA|SHG|SHK|SHL|SIG|SIM|SLE|SLF|SLK|SLN|SLS|SLÜ|SLZ|SMÜ|SOB|SOG|SOK|SÖM|SON|SPB|SPN|SRB|SRO|STA|STB|STD|STE|STL|SUL|SÜW|SWA|SZB|TBB|TDO|TET|TIR|TÖL|TUT|UEM|UER|UFF|USI|VAI|VEC|VER|VIB|VIE|VIT|VOH|WAF|WAK|WAN|WAR|WAT|WBS|WDA|WEL|WEN|WER|WES|WHV|WIL|WIS|WIT|WIZ|WLG|WMS|WND|WOB|WOH|WOL|WOR|WOS|WRN|WSF|WST|WSW|WTL|WTM|WUG|WÜM|WUN|WUR|WZL|ZEL|ZIG)[- ]?(([A-Z][- ]?\d{1,4})|([A-Z]{2}[- ]?\d{1,3})))[- ]?(E|H)?$/.test(str);
- },
- "de-LI": function deLI(str) {
- return /^FL[- ]?\d{1,5}[UZ]?$/.test(str);
- },
- "en-IN": function enIN(str) {
- return /^[A-Z]{2}[ -]?[0-9]{1,2}(?:[ -]?[A-Z])(?:[ -]?[A-Z]*)?[ -]?[0-9]{4}$/.test(str);
- },
- "en-SG": function enSG(str) {
- return /^[A-Z]{3}[ -]?[\d]{4}[ -]?[A-Z]{1}$/.test(str);
- },
- "es-AR": function esAR(str) {
- return /^(([A-Z]{2} ?[0-9]{3} ?[A-Z]{2})|([A-Z]{3} ?[0-9]{3}))$/.test(str);
- },
- "fi-FI": function fiFI(str) {
- return /^(?=.{4,7})(([A-Z]{1,3}|[0-9]{1,3})[\s-]?([A-Z]{1,3}|[0-9]{1,5}))$/.test(str);
- },
- "hu-HU": function huHU(str) {
- return /^((((?!AAA)(([A-NPRSTVZWXY]{1})([A-PR-Z]{1})([A-HJ-NPR-Z]))|(A[ABC]I)|A[ABC]O|A[A-W]Q|BPI|BPO|UCO|UDO|XAO)-(?!000)\d{3})|(M\d{6})|((CK|DT|CD|HC|H[ABEFIKLMNPRSTVX]|MA|OT|R[A-Z]) \d{2}-\d{2})|(CD \d{3}-\d{3})|(C-(C|X) \d{4})|(X-(A|B|C) \d{4})|(([EPVZ]-\d{5}))|(S A[A-Z]{2} \d{2})|(SP \d{2}-\d{2}))$/.test(str);
- },
- "pt-BR": function ptBR(str) {
- return /^[A-Z]{3}[ -]?[0-9][A-Z][0-9]{2}|[A-Z]{3}[ -]?[0-9]{4}$/.test(str);
- },
- "pt-PT": function ptPT(str) {
- return /^(([A-Z]{2}[ -·]?[0-9]{2}[ -·]?[0-9]{2})|([0-9]{2}[ -·]?[A-Z]{2}[ -·]?[0-9]{2})|([0-9]{2}[ -·]?[0-9]{2}[ -·]?[A-Z]{2})|([A-Z]{2}[ -·]?[0-9]{2}[ -·]?[A-Z]{2}))$/.test(str);
- },
- "sq-AL": function sqAL(str) {
- return /^[A-Z]{2}[- ]?((\d{3}[- ]?(([A-Z]{2})|T))|(R[- ]?\d{3}))$/.test(str);
- },
- "sv-SE": function svSE(str) {
- return /^[A-HJ-PR-UW-Z]{3} ?[\d]{2}[A-HJ-PR-UW-Z1-9]$|(^[A-ZÅÄÖ ]{2,7}$)/.test(str.trim());
- },
- "en-PK": function enPK(str) {
- return /(^[A-Z]{2}((\s|-){0,1})[0-9]{3,4}((\s|-)[0-9]{2}){0,1}$)|(^[A-Z]{3}((\s|-){0,1})[0-9]{3,4}((\s|-)[0-9]{2}){0,1}$)|(^[A-Z]{4}((\s|-){0,1})[0-9]{3,4}((\s|-)[0-9]{2}){0,1}$)|(^[A-Z]((\s|-){0,1})[0-9]{4}((\s|-)[0-9]{2}){0,1}$)/.test(str.trim());
- }
- };
- function isLicensePlate(str, locale) {
- (0, _assertString.default)(str);
- if (locale in validators) {
- return validators[locale](str);
- } else if (locale === "any") {
- for (var key in validators) {
- var validator = validators[key];
- if (validator(str)) {
- return true;
- }
- }
- return false;
- }
- throw new Error("Invalid locale '".concat(locale, "'"));
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isStrongPassword.js
- var require_isStrongPassword = __commonJS({
- "node_modules/validator/lib/isStrongPassword.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isStrongPassword;
- var _merge = _interopRequireDefault(require_merge());
- var _assertString = _interopRequireDefault(require_assertString());
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var upperCaseRegex = /^[A-Z]$/;
- var lowerCaseRegex = /^[a-z]$/;
- var numberRegex = /^[0-9]$/;
- var symbolRegex = /^[-#!$@£%^&*()_+|~=`{}\[\]:";'<>?,.\/\\ ]$/;
- var defaultOptions = {
- minLength: 8,
- minLowercase: 1,
- minUppercase: 1,
- minNumbers: 1,
- minSymbols: 1,
- returnScore: false,
- pointsPerUnique: 1,
- pointsPerRepeat: 0.5,
- pointsForContainingLower: 10,
- pointsForContainingUpper: 10,
- pointsForContainingNumber: 10,
- pointsForContainingSymbol: 10
- };
- function countChars(str) {
- var result = {};
- Array.from(str).forEach(function(char) {
- var curVal = result[char];
- if (curVal) {
- result[char] += 1;
- } else {
- result[char] = 1;
- }
- });
- return result;
- }
- function analyzePassword(password) {
- var charMap = countChars(password);
- var analysis = {
- length: password.length,
- uniqueChars: Object.keys(charMap).length,
- uppercaseCount: 0,
- lowercaseCount: 0,
- numberCount: 0,
- symbolCount: 0
- };
- Object.keys(charMap).forEach(function(char) {
- if (upperCaseRegex.test(char)) {
- analysis.uppercaseCount += charMap[char];
- } else if (lowerCaseRegex.test(char)) {
- analysis.lowercaseCount += charMap[char];
- } else if (numberRegex.test(char)) {
- analysis.numberCount += charMap[char];
- } else if (symbolRegex.test(char)) {
- analysis.symbolCount += charMap[char];
- }
- });
- return analysis;
- }
- function scorePassword(analysis, scoringOptions) {
- var points = 0;
- points += analysis.uniqueChars * scoringOptions.pointsPerUnique;
- points += (analysis.length - analysis.uniqueChars) * scoringOptions.pointsPerRepeat;
- if (analysis.lowercaseCount > 0) {
- points += scoringOptions.pointsForContainingLower;
- }
- if (analysis.uppercaseCount > 0) {
- points += scoringOptions.pointsForContainingUpper;
- }
- if (analysis.numberCount > 0) {
- points += scoringOptions.pointsForContainingNumber;
- }
- if (analysis.symbolCount > 0) {
- points += scoringOptions.pointsForContainingSymbol;
- }
- return points;
- }
- function isStrongPassword(str) {
- var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
- (0, _assertString.default)(str);
- var analysis = analyzePassword(str);
- options = (0, _merge.default)(options || {}, defaultOptions);
- if (options.returnScore) {
- return scorePassword(analysis, options);
- }
- return analysis.length >= options.minLength && analysis.lowercaseCount >= options.minLowercase && analysis.uppercaseCount >= options.minUppercase && analysis.numberCount >= options.minNumbers && analysis.symbolCount >= options.minSymbols;
- }
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/validator/lib/isVAT.js
- var require_isVAT = __commonJS({
- "node_modules/validator/lib/isVAT.js"(exports2) {
- "use strict";
- function _typeof(o) {
- "@babel/helpers - typeof";
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
- return typeof o2;
- } : function(o2) {
- return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
- }, _typeof(o);
- }
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = isVAT;
- exports2.vatMatchers = void 0;
- var _assertString = _interopRequireDefault(require_assertString());
- var algorithms = _interopRequireWildcard(require_algorithms());
- function _interopRequireWildcard(e, t) {
- if ("function" == typeof WeakMap) var r = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap();
- return (_interopRequireWildcard = function _interopRequireWildcard2(e2, t2) {
- if (!t2 && e2 && e2.__esModule) return e2;
- var o, i, f = { __proto__: null, default: e2 };
- if (null === e2 || "object" != _typeof(e2) && "function" != typeof e2) return f;
- if (o = t2 ? n : r) {
- if (o.has(e2)) return o.get(e2);
- o.set(e2, f);
- }
- for (var _t in e2) "default" !== _t && {}.hasOwnProperty.call(e2, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e2, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e2[_t]);
- return f;
- })(e, t);
- }
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var AU = function AU2(str) {
- var match = str.match(/^(AU)?(\d{11})$/);
- if (!match) {
- return false;
- }
- var weights = [10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19];
- str = str.replace(/^AU/, "");
- var ABN = (parseInt(str.slice(0, 1), 10) - 1).toString() + str.slice(1);
- var total = 0;
- for (var i = 0; i < 11; i++) {
- total += weights[i] * ABN.charAt(i);
- }
- return total !== 0 && total % 89 === 0;
- };
- var CH = function CH2(str) {
- var hasValidCheckNumber = function hasValidCheckNumber2(digits) {
- var lastDigit = digits.pop();
- var weights = [5, 4, 3, 2, 7, 6, 5, 4];
- var calculatedCheckNumber = (11 - digits.reduce(function(acc, el, idx) {
- return acc + el * weights[idx];
- }, 0) % 11) % 11;
- return lastDigit === calculatedCheckNumber;
- };
- return /^(CHE[- ]?)?(\d{9}|(\d{3}\.\d{3}\.\d{3})|(\d{3} \d{3} \d{3})) ?(TVA|MWST|IVA)?$/.test(str) && hasValidCheckNumber(str.match(/\d/g).map(function(el) {
- return +el;
- }));
- };
- var PT = function PT2(str) {
- var match = str.match(/^(PT)?(\d{9})$/);
- if (!match) {
- return false;
- }
- var tin = match[2];
- var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split("").slice(0, 8).map(function(a) {
- return parseInt(a, 10);
- }), 9) % 11;
- if (checksum > 9) {
- return parseInt(tin[8], 10) === 0;
- }
- return checksum === parseInt(tin[8], 10);
- };
- var vatMatchers = exports2.vatMatchers = {
- /**
- * European Union VAT identification numbers
- */
- AT: function AT(str) {
- return /^(AT)?U\d{8}$/.test(str);
- },
- BE: function BE(str) {
- return /^(BE)?\d{10}$/.test(str);
- },
- BG: function BG(str) {
- return /^(BG)?\d{9,10}$/.test(str);
- },
- HR: function HR(str) {
- return /^(HR)?\d{11}$/.test(str);
- },
- CY: function CY(str) {
- return /^(CY)?\w{9}$/.test(str);
- },
- CZ: function CZ(str) {
- return /^(CZ)?\d{8,10}$/.test(str);
- },
- DK: function DK(str) {
- return /^(DK)?\d{8}$/.test(str);
- },
- EE: function EE(str) {
- return /^(EE)?\d{9}$/.test(str);
- },
- FI: function FI(str) {
- return /^(FI)?\d{8}$/.test(str);
- },
- FR: function FR(str) {
- return /^(FR)([A-Z0-9]{2}\d{9})$/.test(str);
- },
- DE: function DE(str) {
- return /^(DE)?\d{9}$/.test(str);
- },
- EL: function EL(str) {
- return /^(EL)?\d{9}$/.test(str);
- },
- HU: function HU(str) {
- return /^(HU)?\d{8}$/.test(str);
- },
- IE: function IE(str) {
- return /^(IE)?\d{7}\w{1}(W)?$/.test(str);
- },
- IT: function IT(str) {
- return /^(IT)?\d{11}$/.test(str);
- },
- LV: function LV(str) {
- return /^(LV)?\d{11}$/.test(str);
- },
- LT: function LT(str) {
- return /^(LT)?\d{9,12}$/.test(str);
- },
- LU: function LU(str) {
- return /^(LU)?\d{8}$/.test(str);
- },
- MT: function MT(str) {
- return /^(MT)?\d{8}$/.test(str);
- },
- NL: function NL(str) {
- return /^(NL)?\d{9}B\d{2}$/.test(str);
- },
- PL: function PL(str) {
- return /^(PL)?(\d{10}|(\d{3}-\d{3}-\d{2}-\d{2})|(\d{3}-\d{2}-\d{2}-\d{3}))$/.test(str);
- },
- PT,
- RO: function RO(str) {
- return /^(RO)?\d{2,10}$/.test(str);
- },
- SK: function SK(str) {
- return /^(SK)?\d{10}$/.test(str);
- },
- SI: function SI(str) {
- return /^(SI)?\d{8}$/.test(str);
- },
- ES: function ES(str) {
- return /^(ES)?\w\d{7}[A-Z]$/.test(str);
- },
- SE: function SE(str) {
- return /^(SE)?\d{12}$/.test(str);
- },
- /**
- * VAT numbers of non-EU countries
- */
- AL: function AL(str) {
- return /^(AL)?\w{9}[A-Z]$/.test(str);
- },
- MK: function MK(str) {
- return /^(MK)?\d{13}$/.test(str);
- },
- AU,
- BY: function BY(str) {
- return /^(УНП )?\d{9}$/.test(str);
- },
- CA: function CA(str) {
- return /^(CA)?\d{9}$/.test(str);
- },
- IS: function IS(str) {
- return /^(IS)?\d{5,6}$/.test(str);
- },
- IN: function IN(str) {
- return /^(IN)?\d{15}$/.test(str);
- },
- ID: function ID(str) {
- return /^(ID)?(\d{15}|(\d{2}.\d{3}.\d{3}.\d{1}-\d{3}.\d{3}))$/.test(str);
- },
- IL: function IL(str) {
- return /^(IL)?\d{9}$/.test(str);
- },
- KZ: function KZ(str) {
- return /^(KZ)?\d{12}$/.test(str);
- },
- NZ: function NZ(str) {
- return /^(NZ)?\d{9}$/.test(str);
- },
- NG: function NG(str) {
- return /^(NG)?(\d{12}|(\d{8}-\d{4}))$/.test(str);
- },
- NO: function NO(str) {
- return /^(NO)?\d{9}MVA$/.test(str);
- },
- PH: function PH(str) {
- return /^(PH)?(\d{12}|\d{3} \d{3} \d{3} \d{3})$/.test(str);
- },
- RU: function RU(str) {
- return /^(RU)?(\d{10}|\d{12})$/.test(str);
- },
- SM: function SM(str) {
- return /^(SM)?\d{5}$/.test(str);
- },
- SA: function SA(str) {
- return /^(SA)?\d{15}$/.test(str);
- },
- RS: function RS(str) {
- return /^(RS)?\d{9}$/.test(str);
- },
- CH,
- TR: function TR(str) {
- return /^(TR)?\d{10}$/.test(str);
- },
- UA: function UA(str) {
- return /^(UA)?\d{12}$/.test(str);
- },
- GB: function GB(str) {
- return /^GB((\d{3} \d{4} ([0-8][0-9]|9[0-6]))|(\d{9} \d{3})|(((GD[0-4])|(HA[5-9]))[0-9]{2}))$/.test(str);
- },
- UZ: function UZ(str) {
- return /^(UZ)?\d{9}$/.test(str);
- },
- /**
- * VAT numbers of Latin American countries
- */
- AR: function AR(str) {
- return /^(AR)?\d{11}$/.test(str);
- },
- BO: function BO(str) {
- return /^(BO)?\d{7}$/.test(str);
- },
- BR: function BR(str) {
- return /^(BR)?((\d{2}.\d{3}.\d{3}\/\d{4}-\d{2})|(\d{3}.\d{3}.\d{3}-\d{2}))$/.test(str);
- },
- CL: function CL(str) {
- return /^(CL)?\d{8}-\d{1}$/.test(str);
- },
- CO: function CO(str) {
- return /^(CO)?\d{10}$/.test(str);
- },
- CR: function CR(str) {
- return /^(CR)?\d{9,12}$/.test(str);
- },
- EC: function EC(str) {
- return /^(EC)?\d{13}$/.test(str);
- },
- SV: function SV(str) {
- return /^(SV)?\d{4}-\d{6}-\d{3}-\d{1}$/.test(str);
- },
- GT: function GT(str) {
- return /^(GT)?\d{7}-\d{1}$/.test(str);
- },
- HN: function HN(str) {
- return /^(HN)?$/.test(str);
- },
- MX: function MX(str) {
- return /^(MX)?\w{3,4}\d{6}\w{3}$/.test(str);
- },
- NI: function NI(str) {
- return /^(NI)?\d{3}-\d{6}-\d{4}\w{1}$/.test(str);
- },
- PA: function PA(str) {
- return /^(PA)?$/.test(str);
- },
- PY: function PY(str) {
- return /^(PY)?\d{6,8}-\d{1}$/.test(str);
- },
- PE: function PE(str) {
- return /^(PE)?\d{11}$/.test(str);
- },
- DO: function DO(str) {
- return /^(DO)?(\d{11}|(\d{3}-\d{7}-\d{1})|[1,4,5]{1}\d{8}|([1,4,5]{1})-\d{2}-\d{5}-\d{1})$/.test(str);
- },
- UY: function UY(str) {
- return /^(UY)?\d{12}$/.test(str);
- },
- VE: function VE(str) {
- return /^(VE)?[J,G,V,E]{1}-(\d{9}|(\d{8}-\d{1}))$/.test(str);
- }
- };
- function isVAT(str, countryCode) {
- (0, _assertString.default)(str);
- (0, _assertString.default)(countryCode);
- if (countryCode in vatMatchers) {
- return vatMatchers[countryCode](str);
- }
- throw new Error("Invalid country code: '".concat(countryCode, "'"));
- }
- }
- });
- // node_modules/validator/index.js
- var require_validator = __commonJS({
- "node_modules/validator/index.js"(exports2, module2) {
- "use strict";
- function _typeof(o) {
- "@babel/helpers - typeof";
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
- return typeof o2;
- } : function(o2) {
- return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
- }, _typeof(o);
- }
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = void 0;
- var _toDate = _interopRequireDefault(require_toDate());
- var _toFloat = _interopRequireDefault(require_toFloat());
- var _toInt = _interopRequireDefault(require_toInt());
- var _toBoolean = _interopRequireDefault(require_toBoolean());
- var _equals = _interopRequireDefault(require_equals());
- var _contains = _interopRequireDefault(require_contains());
- var _matches = _interopRequireDefault(require_matches());
- var _isEmail = _interopRequireDefault(require_isEmail());
- var _isURL = _interopRequireDefault(require_isURL());
- var _isMACAddress = _interopRequireDefault(require_isMACAddress());
- var _isIP = _interopRequireDefault(require_isIP());
- var _isIPRange = _interopRequireDefault(require_isIPRange());
- var _isFQDN = _interopRequireDefault(require_isFQDN());
- var _isDate = _interopRequireDefault(require_isDate());
- var _isTime = _interopRequireDefault(require_isTime());
- var _isBoolean = _interopRequireDefault(require_isBoolean());
- var _isLocale = _interopRequireDefault(require_isLocale());
- var _isAbaRouting = _interopRequireDefault(require_isAbaRouting());
- var _isAlpha = _interopRequireWildcard(require_isAlpha());
- var _isAlphanumeric = _interopRequireWildcard(require_isAlphanumeric());
- var _isNumeric = _interopRequireDefault(require_isNumeric());
- var _isPassportNumber = _interopRequireWildcard(require_isPassportNumber());
- var _isPort = _interopRequireDefault(require_isPort());
- var _isLowercase = _interopRequireDefault(require_isLowercase());
- var _isUppercase = _interopRequireDefault(require_isUppercase());
- var _isIMEI = _interopRequireDefault(require_isIMEI());
- var _isAscii = _interopRequireDefault(require_isAscii());
- var _isFullWidth = _interopRequireDefault(require_isFullWidth());
- var _isHalfWidth = _interopRequireDefault(require_isHalfWidth());
- var _isVariableWidth = _interopRequireDefault(require_isVariableWidth());
- var _isMultibyte = _interopRequireDefault(require_isMultibyte());
- var _isSemVer = _interopRequireDefault(require_isSemVer());
- var _isSurrogatePair = _interopRequireDefault(require_isSurrogatePair());
- var _isInt = _interopRequireDefault(require_isInt());
- var _isFloat = _interopRequireWildcard(require_isFloat());
- var _isDecimal = _interopRequireDefault(require_isDecimal());
- var _isHexadecimal = _interopRequireDefault(require_isHexadecimal());
- var _isOctal = _interopRequireDefault(require_isOctal());
- var _isDivisibleBy = _interopRequireDefault(require_isDivisibleBy());
- var _isHexColor = _interopRequireDefault(require_isHexColor());
- var _isRgbColor = _interopRequireDefault(require_isRgbColor());
- var _isHSL = _interopRequireDefault(require_isHSL());
- var _isISRC = _interopRequireDefault(require_isISRC());
- var _isIBAN = _interopRequireWildcard(require_isIBAN());
- var _isBIC = _interopRequireDefault(require_isBIC());
- var _isMD = _interopRequireDefault(require_isMD5());
- var _isHash = _interopRequireDefault(require_isHash());
- var _isJWT = _interopRequireDefault(require_isJWT());
- var _isJSON = _interopRequireDefault(require_isJSON());
- var _isEmpty = _interopRequireDefault(require_isEmpty());
- var _isLength = _interopRequireDefault(require_isLength());
- var _isByteLength = _interopRequireDefault(require_isByteLength());
- var _isULID = _interopRequireDefault(require_isULID());
- var _isUUID = _interopRequireDefault(require_isUUID());
- var _isMongoId = _interopRequireDefault(require_isMongoId());
- var _isAfter = _interopRequireDefault(require_isAfter());
- var _isBefore = _interopRequireDefault(require_isBefore());
- var _isIn = _interopRequireDefault(require_isIn());
- var _isLuhnNumber = _interopRequireDefault(require_isLuhnNumber());
- var _isCreditCard = _interopRequireDefault(require_isCreditCard());
- var _isIdentityCard = _interopRequireDefault(require_isIdentityCard());
- var _isEAN = _interopRequireDefault(require_isEAN());
- var _isISIN = _interopRequireDefault(require_isISIN());
- var _isISBN = _interopRequireDefault(require_isISBN());
- var _isISSN = _interopRequireDefault(require_isISSN());
- var _isTaxID = _interopRequireDefault(require_isTaxID());
- var _isMobilePhone = _interopRequireWildcard(require_isMobilePhone());
- var _isEthereumAddress = _interopRequireDefault(require_isEthereumAddress());
- var _isCurrency = _interopRequireDefault(require_isCurrency());
- var _isBtcAddress = _interopRequireDefault(require_isBtcAddress());
- var _isISO = require_isISO6346();
- var _isISO2 = _interopRequireDefault(require_isISO6391());
- var _isISO3 = _interopRequireDefault(require_isISO8601());
- var _isRFC = _interopRequireDefault(require_isRFC3339());
- var _isISO4 = _interopRequireDefault(require_isISO15924());
- var _isISO31661Alpha = _interopRequireDefault(require_isISO31661Alpha2());
- var _isISO31661Alpha2 = _interopRequireDefault(require_isISO31661Alpha3());
- var _isISO31661Numeric = _interopRequireDefault(require_isISO31661Numeric());
- var _isISO5 = _interopRequireDefault(require_isISO4217());
- var _isBase = _interopRequireDefault(require_isBase32());
- var _isBase2 = _interopRequireDefault(require_isBase58());
- var _isBase3 = _interopRequireDefault(require_isBase64());
- var _isDataURI = _interopRequireDefault(require_isDataURI());
- var _isMagnetURI = _interopRequireDefault(require_isMagnetURI());
- var _isMailtoURI = _interopRequireDefault(require_isMailtoURI());
- var _isMimeType = _interopRequireDefault(require_isMimeType());
- var _isLatLong = _interopRequireDefault(require_isLatLong());
- var _isPostalCode = _interopRequireWildcard(require_isPostalCode());
- var _ltrim = _interopRequireDefault(require_ltrim());
- var _rtrim = _interopRequireDefault(require_rtrim());
- var _trim = _interopRequireDefault(require_trim());
- var _escape = _interopRequireDefault(require_escape());
- var _unescape = _interopRequireDefault(require_unescape());
- var _stripLow = _interopRequireDefault(require_stripLow());
- var _whitelist = _interopRequireDefault(require_whitelist());
- var _blacklist = _interopRequireDefault(require_blacklist());
- var _isWhitelisted = _interopRequireDefault(require_isWhitelisted());
- var _normalizeEmail = _interopRequireDefault(require_normalizeEmail());
- var _isSlug = _interopRequireDefault(require_isSlug());
- var _isLicensePlate = _interopRequireDefault(require_isLicensePlate());
- var _isStrongPassword = _interopRequireDefault(require_isStrongPassword());
- var _isVAT = _interopRequireDefault(require_isVAT());
- function _interopRequireWildcard(e, t) {
- if ("function" == typeof WeakMap) var r = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap();
- return (_interopRequireWildcard = function _interopRequireWildcard2(e2, t2) {
- if (!t2 && e2 && e2.__esModule) return e2;
- var o, i, f = { __proto__: null, default: e2 };
- if (null === e2 || "object" != _typeof(e2) && "function" != typeof e2) return f;
- if (o = t2 ? n : r) {
- if (o.has(e2)) return o.get(e2);
- o.set(e2, f);
- }
- for (var _t in e2) "default" !== _t && {}.hasOwnProperty.call(e2, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e2, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e2[_t]);
- return f;
- })(e, t);
- }
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : { default: e };
- }
- var version = "13.15.35";
- var validator = {
- version,
- toDate: _toDate.default,
- toFloat: _toFloat.default,
- toInt: _toInt.default,
- toBoolean: _toBoolean.default,
- equals: _equals.default,
- contains: _contains.default,
- matches: _matches.default,
- isEmail: _isEmail.default,
- isURL: _isURL.default,
- isMACAddress: _isMACAddress.default,
- isIP: _isIP.default,
- isIPRange: _isIPRange.default,
- isFQDN: _isFQDN.default,
- isBoolean: _isBoolean.default,
- isIBAN: _isIBAN.default,
- isBIC: _isBIC.default,
- isAbaRouting: _isAbaRouting.default,
- isAlpha: _isAlpha.default,
- isAlphaLocales: _isAlpha.locales,
- isAlphanumeric: _isAlphanumeric.default,
- isAlphanumericLocales: _isAlphanumeric.locales,
- isNumeric: _isNumeric.default,
- isPassportNumber: _isPassportNumber.default,
- passportNumberLocales: _isPassportNumber.locales,
- isPort: _isPort.default,
- isLowercase: _isLowercase.default,
- isUppercase: _isUppercase.default,
- isAscii: _isAscii.default,
- isFullWidth: _isFullWidth.default,
- isHalfWidth: _isHalfWidth.default,
- isVariableWidth: _isVariableWidth.default,
- isMultibyte: _isMultibyte.default,
- isSemVer: _isSemVer.default,
- isSurrogatePair: _isSurrogatePair.default,
- isInt: _isInt.default,
- isIMEI: _isIMEI.default,
- isFloat: _isFloat.default,
- isFloatLocales: _isFloat.locales,
- isDecimal: _isDecimal.default,
- isHexadecimal: _isHexadecimal.default,
- isOctal: _isOctal.default,
- isDivisibleBy: _isDivisibleBy.default,
- isHexColor: _isHexColor.default,
- isRgbColor: _isRgbColor.default,
- isHSL: _isHSL.default,
- isISRC: _isISRC.default,
- isMD5: _isMD.default,
- isHash: _isHash.default,
- isJWT: _isJWT.default,
- isJSON: _isJSON.default,
- isEmpty: _isEmpty.default,
- isLength: _isLength.default,
- isLocale: _isLocale.default,
- isByteLength: _isByteLength.default,
- isULID: _isULID.default,
- isUUID: _isUUID.default,
- isMongoId: _isMongoId.default,
- isAfter: _isAfter.default,
- isBefore: _isBefore.default,
- isIn: _isIn.default,
- isLuhnNumber: _isLuhnNumber.default,
- isCreditCard: _isCreditCard.default,
- isIdentityCard: _isIdentityCard.default,
- isEAN: _isEAN.default,
- isISIN: _isISIN.default,
- isISBN: _isISBN.default,
- isISSN: _isISSN.default,
- isMobilePhone: _isMobilePhone.default,
- isMobilePhoneLocales: _isMobilePhone.locales,
- isPostalCode: _isPostalCode.default,
- isPostalCodeLocales: _isPostalCode.locales,
- isEthereumAddress: _isEthereumAddress.default,
- isCurrency: _isCurrency.default,
- isBtcAddress: _isBtcAddress.default,
- isISO6346: _isISO.isISO6346,
- isFreightContainerID: _isISO.isFreightContainerID,
- isISO6391: _isISO2.default,
- isISO8601: _isISO3.default,
- isISO15924: _isISO4.default,
- isRFC3339: _isRFC.default,
- isISO31661Alpha2: _isISO31661Alpha.default,
- isISO31661Alpha3: _isISO31661Alpha2.default,
- isISO31661Numeric: _isISO31661Numeric.default,
- isISO4217: _isISO5.default,
- isBase32: _isBase.default,
- isBase58: _isBase2.default,
- isBase64: _isBase3.default,
- isDataURI: _isDataURI.default,
- isMagnetURI: _isMagnetURI.default,
- isMailtoURI: _isMailtoURI.default,
- isMimeType: _isMimeType.default,
- isLatLong: _isLatLong.default,
- ltrim: _ltrim.default,
- rtrim: _rtrim.default,
- trim: _trim.default,
- escape: _escape.default,
- unescape: _unescape.default,
- stripLow: _stripLow.default,
- whitelist: _whitelist.default,
- blacklist: _blacklist.default,
- isWhitelisted: _isWhitelisted.default,
- normalizeEmail: _normalizeEmail.default,
- toString,
- isSlug: _isSlug.default,
- isStrongPassword: _isStrongPassword.default,
- isTaxID: _isTaxID.default,
- isDate: _isDate.default,
- isTime: _isTime.default,
- isLicensePlate: _isLicensePlate.default,
- isVAT: _isVAT.default,
- ibanLocales: _isIBAN.locales
- };
- var _default = exports2.default = validator;
- module2.exports = exports2.default;
- module2.exports.default = exports2.default;
- }
- });
- // node_modules/z-schema/src/FormatValidators.js
- var require_FormatValidators = __commonJS({
- "node_modules/z-schema/src/FormatValidators.js"(exports2, module2) {
- var validator = require_validator();
- var FormatValidators = {
- "date": function(date) {
- if (typeof date !== "string") {
- return true;
- }
- var matches = /^([0-9]{4})-([0-9]{2})-([0-9]{2})$/.exec(date);
- if (matches === null) {
- return false;
- }
- if (matches[2] < "01" || matches[2] > "12" || matches[3] < "01" || matches[3] > "31") {
- return false;
- }
- return true;
- },
- "date-time": function(dateTime) {
- if (typeof dateTime !== "string") {
- return true;
- }
- var s = dateTime.toLowerCase().split("t");
- if (!FormatValidators.date(s[0])) {
- return false;
- }
- var matches = /^([0-9]{2}):([0-9]{2}):([0-9]{2})(.[0-9]+)?(z|([+-][0-9]{2}:[0-9]{2}))$/.exec(s[1]);
- if (matches === null) {
- return false;
- }
- if (matches[1] > "23" || matches[2] > "59" || matches[3] > "59") {
- return false;
- }
- return true;
- },
- "email": function(email) {
- if (typeof email !== "string") {
- return true;
- }
- return validator.isEmail(email, { "require_tld": true });
- },
- "hostname": function(hostname) {
- if (typeof hostname !== "string") {
- return true;
- }
- var valid = /^[a-zA-Z](([-0-9a-zA-Z]+)?[0-9a-zA-Z])?(\.[a-zA-Z](([-0-9a-zA-Z]+)?[0-9a-zA-Z])?)*$/.test(hostname);
- if (valid) {
- if (hostname.length > 255) {
- return false;
- }
- var labels = hostname.split(".");
- for (var i = 0; i < labels.length; i++) {
- if (labels[i].length > 63) {
- return false;
- }
- }
- }
- return valid;
- },
- "host-name": function(hostname) {
- return FormatValidators.hostname.call(this, hostname);
- },
- "ipv4": function(ipv4) {
- if (typeof ipv4 !== "string") {
- return true;
- }
- return validator.isIP(ipv4, 4);
- },
- "ipv6": function(ipv6) {
- if (typeof ipv6 !== "string") {
- return true;
- }
- return validator.isIP(ipv6, 6);
- },
- "regex": function(str) {
- try {
- RegExp(str);
- return true;
- } catch (e) {
- return false;
- }
- },
- "uri": function(uri) {
- if (this.options.strictUris) {
- return FormatValidators["strict-uri"].apply(this, arguments);
- }
- return typeof uri !== "string" || RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?").test(uri);
- },
- "strict-uri": function(uri) {
- return typeof uri !== "string" || validator.isURL(uri);
- }
- };
- module2.exports = FormatValidators;
- }
- });
- // node_modules/z-schema/src/JsonValidation.js
- var require_JsonValidation = __commonJS({
- "node_modules/z-schema/src/JsonValidation.js"(exports2) {
- "use strict";
- var FormatValidators = require_FormatValidators();
- var Report = require_Report();
- var Utils = require_Utils();
- var shouldSkipValidate = function(options, errors) {
- return options && Array.isArray(options.includeErrors) && options.includeErrors.length > 0 && !errors.some(function(err) {
- return options.includeErrors.includes(err);
- });
- };
- var JsonValidators = {
- multipleOf: function(report, schema, json) {
- if (shouldSkipValidate(this.validateOptions, ["MULTIPLE_OF"])) {
- return;
- }
- if (typeof json !== "number") {
- return;
- }
- var stringMultipleOf = String(schema.multipleOf);
- var scale = Math.pow(10, stringMultipleOf.length - stringMultipleOf.indexOf(".") - 1);
- if (Utils.whatIs(json * scale / (schema.multipleOf * scale)) !== "integer") {
- report.addError("MULTIPLE_OF", [json, schema.multipleOf], null, schema);
- }
- },
- maximum: function(report, schema, json) {
- if (shouldSkipValidate(this.validateOptions, ["MAXIMUM", "MAXIMUM_EXCLUSIVE"])) {
- return;
- }
- if (typeof json !== "number") {
- return;
- }
- if (schema.exclusiveMaximum !== true) {
- if (json > schema.maximum) {
- report.addError("MAXIMUM", [json, schema.maximum], null, schema);
- }
- } else {
- if (json >= schema.maximum) {
- report.addError("MAXIMUM_EXCLUSIVE", [json, schema.maximum], null, schema);
- }
- }
- },
- exclusiveMaximum: function() {
- },
- minimum: function(report, schema, json) {
- if (shouldSkipValidate(this.validateOptions, ["MINIMUM", "MINIMUM_EXCLUSIVE"])) {
- return;
- }
- if (typeof json !== "number") {
- return;
- }
- if (schema.exclusiveMinimum !== true) {
- if (json < schema.minimum) {
- report.addError("MINIMUM", [json, schema.minimum], null, schema);
- }
- } else {
- if (json <= schema.minimum) {
- report.addError("MINIMUM_EXCLUSIVE", [json, schema.minimum], null, schema);
- }
- }
- },
- exclusiveMinimum: function() {
- },
- maxLength: function(report, schema, json) {
- if (shouldSkipValidate(this.validateOptions, ["MAX_LENGTH"])) {
- return;
- }
- if (typeof json !== "string") {
- return;
- }
- if (Utils.ucs2decode(json).length > schema.maxLength) {
- report.addError("MAX_LENGTH", [json.length, schema.maxLength], null, schema);
- }
- },
- minLength: function(report, schema, json) {
- if (shouldSkipValidate(this.validateOptions, ["MIN_LENGTH"])) {
- return;
- }
- if (typeof json !== "string") {
- return;
- }
- if (Utils.ucs2decode(json).length < schema.minLength) {
- report.addError("MIN_LENGTH", [json.length, schema.minLength], null, schema);
- }
- },
- pattern: function(report, schema, json) {
- if (shouldSkipValidate(this.validateOptions, ["PATTERN"])) {
- return;
- }
- if (typeof json !== "string") {
- return;
- }
- if (RegExp(schema.pattern).test(json) === false) {
- report.addError("PATTERN", [schema.pattern, json], null, schema);
- }
- },
- additionalItems: function(report, schema, json) {
- if (shouldSkipValidate(this.validateOptions, ["ARRAY_ADDITIONAL_ITEMS"])) {
- return;
- }
- if (!Array.isArray(json)) {
- return;
- }
- if (schema.additionalItems === false && Array.isArray(schema.items)) {
- if (json.length > schema.items.length) {
- report.addError("ARRAY_ADDITIONAL_ITEMS", null, null, schema);
- }
- }
- },
- items: function() {
- },
- maxItems: function(report, schema, json) {
- if (shouldSkipValidate(this.validateOptions, ["ARRAY_LENGTH_LONG"])) {
- return;
- }
- if (!Array.isArray(json)) {
- return;
- }
- if (json.length > schema.maxItems) {
- report.addError("ARRAY_LENGTH_LONG", [json.length, schema.maxItems], null, schema);
- }
- },
- minItems: function(report, schema, json) {
- if (shouldSkipValidate(this.validateOptions, ["ARRAY_LENGTH_SHORT"])) {
- return;
- }
- if (!Array.isArray(json)) {
- return;
- }
- if (json.length < schema.minItems) {
- report.addError("ARRAY_LENGTH_SHORT", [json.length, schema.minItems], null, schema);
- }
- },
- uniqueItems: function(report, schema, json) {
- if (shouldSkipValidate(this.validateOptions, ["ARRAY_UNIQUE"])) {
- return;
- }
- if (!Array.isArray(json)) {
- return;
- }
- if (schema.uniqueItems === true) {
- var matches = [];
- if (Utils.isUniqueArray(json, matches) === false) {
- report.addError("ARRAY_UNIQUE", matches, null, schema);
- }
- }
- },
- maxProperties: function(report, schema, json) {
- if (shouldSkipValidate(this.validateOptions, ["OBJECT_PROPERTIES_MAXIMUM"])) {
- return;
- }
- if (Utils.whatIs(json) !== "object") {
- return;
- }
- var keysCount = Object.keys(json).length;
- if (keysCount > schema.maxProperties) {
- report.addError("OBJECT_PROPERTIES_MAXIMUM", [keysCount, schema.maxProperties], null, schema);
- }
- },
- minProperties: function(report, schema, json) {
- if (shouldSkipValidate(this.validateOptions, ["OBJECT_PROPERTIES_MINIMUM"])) {
- return;
- }
- if (Utils.whatIs(json) !== "object") {
- return;
- }
- var keysCount = Object.keys(json).length;
- if (keysCount < schema.minProperties) {
- report.addError("OBJECT_PROPERTIES_MINIMUM", [keysCount, schema.minProperties], null, schema);
- }
- },
- required: function(report, schema, json) {
- if (shouldSkipValidate(this.validateOptions, ["OBJECT_MISSING_REQUIRED_PROPERTY"])) {
- return;
- }
- if (Utils.whatIs(json) !== "object") {
- return;
- }
- var idx = schema.required.length;
- while (idx--) {
- var requiredPropertyName = schema.required[idx];
- if (json[requiredPropertyName] === void 0) {
- report.addError("OBJECT_MISSING_REQUIRED_PROPERTY", [requiredPropertyName], null, schema);
- }
- }
- },
- additionalProperties: function(report, schema, json) {
- if (schema.properties === void 0 && schema.patternProperties === void 0) {
- return JsonValidators.properties.call(this, report, schema, json);
- }
- },
- patternProperties: function(report, schema, json) {
- if (schema.properties === void 0) {
- return JsonValidators.properties.call(this, report, schema, json);
- }
- },
- properties: function(report, schema, json) {
- if (shouldSkipValidate(this.validateOptions, ["OBJECT_ADDITIONAL_PROPERTIES"])) {
- return;
- }
- if (Utils.whatIs(json) !== "object") {
- return;
- }
- var properties = schema.properties !== void 0 ? schema.properties : {};
- var patternProperties = schema.patternProperties !== void 0 ? schema.patternProperties : {};
- if (schema.additionalProperties === false) {
- var s = Object.keys(json);
- var p = Object.keys(properties);
- var pp = Object.keys(patternProperties);
- s = Utils.difference(s, p);
- var idx = pp.length;
- while (idx--) {
- var regExp = RegExp(pp[idx]), idx2 = s.length;
- while (idx2--) {
- if (regExp.test(s[idx2]) === true) {
- s.splice(idx2, 1);
- }
- }
- }
- if (s.length > 0) {
- var idx3 = this.options.assumeAdditional.length;
- if (idx3) {
- while (idx3--) {
- var io = s.indexOf(this.options.assumeAdditional[idx3]);
- if (io !== -1) {
- s.splice(io, 1);
- }
- }
- }
- var idx4 = s.length;
- if (idx4) {
- while (idx4--) {
- report.addError("OBJECT_ADDITIONAL_PROPERTIES", [s[idx4]], null, schema);
- }
- }
- }
- }
- },
- dependencies: function(report, schema, json) {
- if (shouldSkipValidate(this.validateOptions, ["OBJECT_DEPENDENCY_KEY"])) {
- return;
- }
- if (Utils.whatIs(json) !== "object") {
- return;
- }
- var keys = Object.keys(schema.dependencies), idx = keys.length;
- while (idx--) {
- var dependencyName = keys[idx];
- if (json[dependencyName]) {
- var dependencyDefinition = schema.dependencies[dependencyName];
- if (Utils.whatIs(dependencyDefinition) === "object") {
- exports2.validate.call(this, report, dependencyDefinition, json);
- } else {
- var idx2 = dependencyDefinition.length;
- while (idx2--) {
- var requiredPropertyName = dependencyDefinition[idx2];
- if (json[requiredPropertyName] === void 0) {
- report.addError("OBJECT_DEPENDENCY_KEY", [requiredPropertyName, dependencyName], null, schema);
- }
- }
- }
- }
- }
- },
- enum: function(report, schema, json) {
- if (shouldSkipValidate(this.validateOptions, ["ENUM_CASE_MISMATCH", "ENUM_MISMATCH"])) {
- return;
- }
- var match = false, caseInsensitiveMatch = false, idx = schema.enum.length;
- while (idx--) {
- if (Utils.areEqual(json, schema.enum[idx])) {
- match = true;
- break;
- } else if (Utils.areEqual(json, schema.enum[idx]), { caseInsensitiveComparison: true }) {
- caseInsensitiveMatch = true;
- }
- }
- if (match === false) {
- var error = caseInsensitiveMatch && this.options.enumCaseInsensitiveComparison ? "ENUM_CASE_MISMATCH" : "ENUM_MISMATCH";
- report.addError(error, [json], null, schema);
- }
- },
- type: function(report, schema, json) {
- if (shouldSkipValidate(this.validateOptions, ["INVALID_TYPE"])) {
- return;
- }
- var jsonType = Utils.whatIs(json);
- if (typeof schema.type === "string") {
- if (jsonType !== schema.type && (jsonType !== "integer" || schema.type !== "number")) {
- report.addError("INVALID_TYPE", [schema.type, jsonType], null, schema);
- }
- } else {
- if (schema.type.indexOf(jsonType) === -1 && (jsonType !== "integer" || schema.type.indexOf("number") === -1)) {
- report.addError("INVALID_TYPE", [schema.type, jsonType], null, schema);
- }
- }
- },
- allOf: function(report, schema, json) {
- var idx = schema.allOf.length;
- while (idx--) {
- var validateResult = exports2.validate.call(this, report, schema.allOf[idx], json);
- if (this.options.breakOnFirstError && validateResult === false) {
- break;
- }
- }
- },
- anyOf: function(report, schema, json) {
- var subReports = [], passed = false, idx = schema.anyOf.length;
- while (idx-- && passed === false) {
- var subReport = new Report(report);
- subReports.push(subReport);
- passed = exports2.validate.call(this, subReport, schema.anyOf[idx], json);
- }
- if (passed === false) {
- report.addError("ANY_OF_MISSING", void 0, subReports, schema);
- }
- },
- oneOf: function(report, schema, json) {
- var passes = 0, subReports = [], idx = schema.oneOf.length;
- while (idx--) {
- var subReport = new Report(report, { maxErrors: 1 });
- subReports.push(subReport);
- if (exports2.validate.call(this, subReport, schema.oneOf[idx], json) === true) {
- passes++;
- }
- }
- if (passes === 0) {
- report.addError("ONE_OF_MISSING", void 0, subReports, schema);
- } else if (passes > 1) {
- report.addError("ONE_OF_MULTIPLE", null, null, schema);
- }
- },
- not: function(report, schema, json) {
- var subReport = new Report(report);
- if (exports2.validate.call(this, subReport, schema.not, json) === true) {
- report.addError("NOT_PASSED", null, null, schema);
- }
- },
- definitions: function() {
- },
- format: function(report, schema, json) {
- var formatValidatorFn = FormatValidators[schema.format];
- if (typeof formatValidatorFn === "function") {
- if (shouldSkipValidate(this.validateOptions, ["INVALID_FORMAT"])) {
- return;
- }
- if (formatValidatorFn.length === 2) {
- var pathBeforeAsync = Utils.clone(report.path);
- report.addAsyncTask(formatValidatorFn, [json], function(result) {
- if (result !== true) {
- var backup = report.path;
- report.path = pathBeforeAsync;
- report.addError("INVALID_FORMAT", [schema.format, json], null, schema);
- report.path = backup;
- }
- });
- } else {
- if (formatValidatorFn.call(this, json) !== true) {
- report.addError("INVALID_FORMAT", [schema.format, json], null, schema);
- }
- }
- } else if (this.options.ignoreUnknownFormats !== true) {
- report.addError("UNKNOWN_FORMAT", [schema.format], null, schema);
- }
- }
- };
- var recurseArray = function(report, schema, json) {
- var idx = json.length;
- if (Array.isArray(schema.items)) {
- while (idx--) {
- if (idx < schema.items.length) {
- report.path.push(idx);
- exports2.validate.call(this, report, schema.items[idx], json[idx]);
- report.path.pop();
- } else {
- if (typeof schema.additionalItems === "object") {
- report.path.push(idx);
- exports2.validate.call(this, report, schema.additionalItems, json[idx]);
- report.path.pop();
- }
- }
- }
- } else if (typeof schema.items === "object") {
- while (idx--) {
- report.path.push(idx);
- exports2.validate.call(this, report, schema.items, json[idx]);
- report.path.pop();
- }
- }
- };
- var recurseObject = function(report, schema, json) {
- var additionalProperties = schema.additionalProperties;
- if (additionalProperties === true || additionalProperties === void 0) {
- additionalProperties = {};
- }
- var p = schema.properties ? Object.keys(schema.properties) : [];
- var pp = schema.patternProperties ? Object.keys(schema.patternProperties) : [];
- var keys = Object.keys(json), idx = keys.length;
- while (idx--) {
- var m = keys[idx], propertyValue = json[m];
- var s = [];
- if (p.indexOf(m) !== -1) {
- s.push(schema.properties[m]);
- }
- var idx2 = pp.length;
- while (idx2--) {
- var regexString = pp[idx2];
- if (RegExp(regexString).test(m) === true) {
- s.push(schema.patternProperties[regexString]);
- }
- }
- if (s.length === 0 && additionalProperties !== false) {
- s.push(additionalProperties);
- }
- idx2 = s.length;
- while (idx2--) {
- report.path.push(m);
- exports2.validate.call(this, report, s[idx2], propertyValue);
- report.path.pop();
- }
- }
- };
- exports2.JsonValidators = JsonValidators;
- exports2.validate = function(report, schema, json) {
- report.commonErrorMessage = "JSON_OBJECT_VALIDATION_FAILED";
- var to = Utils.whatIs(schema);
- if (to !== "object") {
- report.addError("SCHEMA_NOT_AN_OBJECT", [to], null, schema);
- return false;
- }
- var keys = Object.keys(schema);
- if (keys.length === 0) {
- return true;
- }
- var isRoot = false;
- if (!report.rootSchema) {
- report.rootSchema = schema;
- isRoot = true;
- }
- if (schema.$ref !== void 0) {
- var maxRefs = 99;
- while (schema.$ref && maxRefs > 0) {
- if (!schema.__$refResolved) {
- report.addError("REF_UNRESOLVED", [schema.$ref], null, schema);
- break;
- } else if (schema.__$refResolved === schema) {
- break;
- } else {
- schema = schema.__$refResolved;
- keys = Object.keys(schema);
- }
- maxRefs--;
- }
- if (maxRefs === 0) {
- throw new Error("Circular dependency by $ref references!");
- }
- }
- var jsonType = Utils.whatIs(json);
- if (schema.type) {
- keys.splice(keys.indexOf("type"), 1);
- JsonValidators.type.call(this, report, schema, json);
- if (report.errors.length && this.options.breakOnFirstError) {
- return false;
- }
- }
- var idx = keys.length;
- while (idx--) {
- if (JsonValidators[keys[idx]]) {
- JsonValidators[keys[idx]].call(this, report, schema, json);
- if (report.errors.length && this.options.breakOnFirstError) {
- break;
- }
- }
- }
- if (report.errors.length === 0 || this.options.breakOnFirstError === false) {
- if (jsonType === "array") {
- recurseArray.call(this, report, schema, json);
- } else if (jsonType === "object") {
- recurseObject.call(this, report, schema, json);
- }
- }
- if (typeof this.options.customValidator === "function") {
- this.options.customValidator.call(this, report, schema, json);
- }
- if (isRoot) {
- report.rootSchema = void 0;
- }
- return report.errors.length === 0;
- };
- }
- });
- // node_modules/lodash.isequal/index.js
- var require_lodash2 = __commonJS({
- "node_modules/lodash.isequal/index.js"(exports2, module2) {
- var LARGE_ARRAY_SIZE = 200;
- var HASH_UNDEFINED = "__lodash_hash_undefined__";
- var COMPARE_PARTIAL_FLAG = 1;
- var COMPARE_UNORDERED_FLAG = 2;
- var MAX_SAFE_INTEGER = 9007199254740991;
- var argsTag = "[object Arguments]";
- var arrayTag = "[object Array]";
- var asyncTag = "[object AsyncFunction]";
- var boolTag = "[object Boolean]";
- var dateTag = "[object Date]";
- var errorTag = "[object Error]";
- var funcTag = "[object Function]";
- var genTag = "[object GeneratorFunction]";
- var mapTag = "[object Map]";
- var numberTag = "[object Number]";
- var nullTag = "[object Null]";
- var objectTag = "[object Object]";
- var promiseTag = "[object Promise]";
- var proxyTag = "[object Proxy]";
- var regexpTag = "[object RegExp]";
- var setTag = "[object Set]";
- var stringTag = "[object String]";
- var symbolTag = "[object Symbol]";
- var undefinedTag = "[object Undefined]";
- var weakMapTag = "[object WeakMap]";
- var arrayBufferTag = "[object ArrayBuffer]";
- var dataViewTag = "[object DataView]";
- var float32Tag = "[object Float32Array]";
- var float64Tag = "[object Float64Array]";
- var int8Tag = "[object Int8Array]";
- var int16Tag = "[object Int16Array]";
- var int32Tag = "[object Int32Array]";
- var uint8Tag = "[object Uint8Array]";
- var uint8ClampedTag = "[object Uint8ClampedArray]";
- var uint16Tag = "[object Uint16Array]";
- var uint32Tag = "[object Uint32Array]";
- var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
- var reIsHostCtor = /^\[object .+?Constructor\]$/;
- var reIsUint = /^(?:0|[1-9]\d*)$/;
- var typedArrayTags = {};
- typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
- typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
- var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
- var freeSelf = typeof self == "object" && self && self.Object === Object && self;
- var root = freeGlobal || freeSelf || Function("return this")();
- var freeExports = typeof exports2 == "object" && exports2 && !exports2.nodeType && exports2;
- var freeModule = freeExports && typeof module2 == "object" && module2 && !module2.nodeType && module2;
- var moduleExports = freeModule && freeModule.exports === freeExports;
- var freeProcess = moduleExports && freeGlobal.process;
- var nodeUtil = (function() {
- try {
- return freeProcess && freeProcess.binding && freeProcess.binding("util");
- } catch (e) {
- }
- })();
- var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
- function arrayFilter(array, predicate) {
- var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = [];
- while (++index < length) {
- var value = array[index];
- if (predicate(value, index, array)) {
- result[resIndex++] = value;
- }
- }
- return result;
- }
- function arrayPush(array, values) {
- var index = -1, length = values.length, offset = array.length;
- while (++index < length) {
- array[offset + index] = values[index];
- }
- return array;
- }
- function arraySome(array, predicate) {
- var index = -1, length = array == null ? 0 : array.length;
- while (++index < length) {
- if (predicate(array[index], index, array)) {
- return true;
- }
- }
- return false;
- }
- function baseTimes(n, iteratee) {
- var index = -1, result = Array(n);
- while (++index < n) {
- result[index] = iteratee(index);
- }
- return result;
- }
- function baseUnary(func) {
- return function(value) {
- return func(value);
- };
- }
- function cacheHas(cache, key) {
- return cache.has(key);
- }
- function getValue(object, key) {
- return object == null ? void 0 : object[key];
- }
- function mapToArray(map) {
- var index = -1, result = Array(map.size);
- map.forEach(function(value, key) {
- result[++index] = [key, value];
- });
- return result;
- }
- function overArg(func, transform) {
- return function(arg) {
- return func(transform(arg));
- };
- }
- function setToArray(set) {
- var index = -1, result = Array(set.size);
- set.forEach(function(value) {
- result[++index] = value;
- });
- return result;
- }
- var arrayProto = Array.prototype;
- var funcProto = Function.prototype;
- var objectProto = Object.prototype;
- var coreJsData = root["__core-js_shared__"];
- var funcToString = funcProto.toString;
- var hasOwnProperty = objectProto.hasOwnProperty;
- var maskSrcKey = (function() {
- var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
- return uid ? "Symbol(src)_1." + uid : "";
- })();
- var nativeObjectToString = objectProto.toString;
- var reIsNative = RegExp(
- "^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
- );
- var Buffer2 = moduleExports ? root.Buffer : void 0;
- var Symbol2 = root.Symbol;
- var Uint8Array2 = root.Uint8Array;
- var propertyIsEnumerable = objectProto.propertyIsEnumerable;
- var splice = arrayProto.splice;
- var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;
- var nativeGetSymbols = Object.getOwnPropertySymbols;
- var nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : void 0;
- var nativeKeys = overArg(Object.keys, Object);
- var DataView2 = getNative(root, "DataView");
- var Map2 = getNative(root, "Map");
- var Promise2 = getNative(root, "Promise");
- var Set2 = getNative(root, "Set");
- var WeakMap2 = getNative(root, "WeakMap");
- var nativeCreate = getNative(Object, "create");
- var dataViewCtorString = toSource(DataView2);
- var mapCtorString = toSource(Map2);
- var promiseCtorString = toSource(Promise2);
- var setCtorString = toSource(Set2);
- var weakMapCtorString = toSource(WeakMap2);
- var symbolProto = Symbol2 ? Symbol2.prototype : void 0;
- var symbolValueOf = symbolProto ? symbolProto.valueOf : void 0;
- function Hash(entries) {
- var index = -1, length = entries == null ? 0 : entries.length;
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
- }
- function hashClear() {
- this.__data__ = nativeCreate ? nativeCreate(null) : {};
- this.size = 0;
- }
- function hashDelete(key) {
- var result = this.has(key) && delete this.__data__[key];
- this.size -= result ? 1 : 0;
- return result;
- }
- function hashGet(key) {
- var data = this.__data__;
- if (nativeCreate) {
- var result = data[key];
- return result === HASH_UNDEFINED ? void 0 : result;
- }
- return hasOwnProperty.call(data, key) ? data[key] : void 0;
- }
- function hashHas(key) {
- var data = this.__data__;
- return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key);
- }
- function hashSet(key, value) {
- var data = this.__data__;
- this.size += this.has(key) ? 0 : 1;
- data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED : value;
- return this;
- }
- Hash.prototype.clear = hashClear;
- Hash.prototype["delete"] = hashDelete;
- Hash.prototype.get = hashGet;
- Hash.prototype.has = hashHas;
- Hash.prototype.set = hashSet;
- function ListCache(entries) {
- var index = -1, length = entries == null ? 0 : entries.length;
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
- }
- function listCacheClear() {
- this.__data__ = [];
- this.size = 0;
- }
- function listCacheDelete(key) {
- var data = this.__data__, index = assocIndexOf(data, key);
- if (index < 0) {
- return false;
- }
- var lastIndex = data.length - 1;
- if (index == lastIndex) {
- data.pop();
- } else {
- splice.call(data, index, 1);
- }
- --this.size;
- return true;
- }
- function listCacheGet(key) {
- var data = this.__data__, index = assocIndexOf(data, key);
- return index < 0 ? void 0 : data[index][1];
- }
- function listCacheHas(key) {
- return assocIndexOf(this.__data__, key) > -1;
- }
- function listCacheSet(key, value) {
- var data = this.__data__, index = assocIndexOf(data, key);
- if (index < 0) {
- ++this.size;
- data.push([key, value]);
- } else {
- data[index][1] = value;
- }
- return this;
- }
- ListCache.prototype.clear = listCacheClear;
- ListCache.prototype["delete"] = listCacheDelete;
- ListCache.prototype.get = listCacheGet;
- ListCache.prototype.has = listCacheHas;
- ListCache.prototype.set = listCacheSet;
- function MapCache(entries) {
- var index = -1, length = entries == null ? 0 : entries.length;
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
- }
- function mapCacheClear() {
- this.size = 0;
- this.__data__ = {
- "hash": new Hash(),
- "map": new (Map2 || ListCache)(),
- "string": new Hash()
- };
- }
- function mapCacheDelete(key) {
- var result = getMapData(this, key)["delete"](key);
- this.size -= result ? 1 : 0;
- return result;
- }
- function mapCacheGet(key) {
- return getMapData(this, key).get(key);
- }
- function mapCacheHas(key) {
- return getMapData(this, key).has(key);
- }
- function mapCacheSet(key, value) {
- var data = getMapData(this, key), size = data.size;
- data.set(key, value);
- this.size += data.size == size ? 0 : 1;
- return this;
- }
- MapCache.prototype.clear = mapCacheClear;
- MapCache.prototype["delete"] = mapCacheDelete;
- MapCache.prototype.get = mapCacheGet;
- MapCache.prototype.has = mapCacheHas;
- MapCache.prototype.set = mapCacheSet;
- function SetCache(values) {
- var index = -1, length = values == null ? 0 : values.length;
- this.__data__ = new MapCache();
- while (++index < length) {
- this.add(values[index]);
- }
- }
- function setCacheAdd(value) {
- this.__data__.set(value, HASH_UNDEFINED);
- return this;
- }
- function setCacheHas(value) {
- return this.__data__.has(value);
- }
- SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
- SetCache.prototype.has = setCacheHas;
- function Stack(entries) {
- var data = this.__data__ = new ListCache(entries);
- this.size = data.size;
- }
- function stackClear() {
- this.__data__ = new ListCache();
- this.size = 0;
- }
- function stackDelete(key) {
- var data = this.__data__, result = data["delete"](key);
- this.size = data.size;
- return result;
- }
- function stackGet(key) {
- return this.__data__.get(key);
- }
- function stackHas(key) {
- return this.__data__.has(key);
- }
- function stackSet(key, value) {
- var data = this.__data__;
- if (data instanceof ListCache) {
- var pairs = data.__data__;
- if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) {
- pairs.push([key, value]);
- this.size = ++data.size;
- return this;
- }
- data = this.__data__ = new MapCache(pairs);
- }
- data.set(key, value);
- this.size = data.size;
- return this;
- }
- Stack.prototype.clear = stackClear;
- Stack.prototype["delete"] = stackDelete;
- Stack.prototype.get = stackGet;
- Stack.prototype.has = stackHas;
- Stack.prototype.set = stackSet;
- function arrayLikeKeys(value, inherited) {
- var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length;
- for (var key in value) {
- if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
- (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
- isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
- isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties.
- isIndex(key, length)))) {
- result.push(key);
- }
- }
- return result;
- }
- function assocIndexOf(array, key) {
- var length = array.length;
- while (length--) {
- if (eq(array[length][0], key)) {
- return length;
- }
- }
- return -1;
- }
- function baseGetAllKeys(object, keysFunc, symbolsFunc) {
- var result = keysFunc(object);
- return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
- }
- function baseGetTag(value) {
- if (value == null) {
- return value === void 0 ? undefinedTag : nullTag;
- }
- return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
- }
- function baseIsArguments(value) {
- return isObjectLike(value) && baseGetTag(value) == argsTag;
- }
- function baseIsEqual(value, other, bitmask, customizer, stack) {
- if (value === other) {
- return true;
- }
- if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {
- return value !== value && other !== other;
- }
- return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
- }
- function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
- var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other);
- objTag = objTag == argsTag ? objectTag : objTag;
- othTag = othTag == argsTag ? objectTag : othTag;
- var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag;
- if (isSameTag && isBuffer(object)) {
- if (!isBuffer(other)) {
- return false;
- }
- objIsArr = true;
- objIsObj = false;
- }
- if (isSameTag && !objIsObj) {
- stack || (stack = new Stack());
- return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
- }
- if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
- var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__");
- if (objIsWrapped || othIsWrapped) {
- var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other;
- stack || (stack = new Stack());
- return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
- }
- }
- if (!isSameTag) {
- return false;
- }
- stack || (stack = new Stack());
- return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
- }
- function baseIsNative(value) {
- if (!isObject(value) || isMasked(value)) {
- return false;
- }
- var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
- return pattern.test(toSource(value));
- }
- function baseIsTypedArray(value) {
- return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
- }
- function baseKeys(object) {
- if (!isPrototype(object)) {
- return nativeKeys(object);
- }
- var result = [];
- for (var key in Object(object)) {
- if (hasOwnProperty.call(object, key) && key != "constructor") {
- result.push(key);
- }
- }
- return result;
- }
- function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
- var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length;
- if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
- return false;
- }
- var stacked = stack.get(array);
- if (stacked && stack.get(other)) {
- return stacked == other;
- }
- var index = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : void 0;
- stack.set(array, other);
- stack.set(other, array);
- while (++index < arrLength) {
- var arrValue = array[index], othValue = other[index];
- if (customizer) {
- var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);
- }
- if (compared !== void 0) {
- if (compared) {
- continue;
- }
- result = false;
- break;
- }
- if (seen) {
- if (!arraySome(other, function(othValue2, othIndex) {
- if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {
- return seen.push(othIndex);
- }
- })) {
- result = false;
- break;
- }
- } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
- result = false;
- break;
- }
- }
- stack["delete"](array);
- stack["delete"](other);
- return result;
- }
- function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
- switch (tag) {
- case dataViewTag:
- if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {
- return false;
- }
- object = object.buffer;
- other = other.buffer;
- case arrayBufferTag:
- if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) {
- return false;
- }
- return true;
- case boolTag:
- case dateTag:
- case numberTag:
- return eq(+object, +other);
- case errorTag:
- return object.name == other.name && object.message == other.message;
- case regexpTag:
- case stringTag:
- return object == other + "";
- case mapTag:
- var convert = mapToArray;
- case setTag:
- var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
- convert || (convert = setToArray);
- if (object.size != other.size && !isPartial) {
- return false;
- }
- var stacked = stack.get(object);
- if (stacked) {
- return stacked == other;
- }
- bitmask |= COMPARE_UNORDERED_FLAG;
- stack.set(object, other);
- var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
- stack["delete"](object);
- return result;
- case symbolTag:
- if (symbolValueOf) {
- return symbolValueOf.call(object) == symbolValueOf.call(other);
- }
- }
- return false;
- }
- function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
- var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length;
- if (objLength != othLength && !isPartial) {
- return false;
- }
- var index = objLength;
- while (index--) {
- var key = objProps[index];
- if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
- return false;
- }
- }
- var stacked = stack.get(object);
- if (stacked && stack.get(other)) {
- return stacked == other;
- }
- var result = true;
- stack.set(object, other);
- stack.set(other, object);
- var skipCtor = isPartial;
- while (++index < objLength) {
- key = objProps[index];
- var objValue = object[key], othValue = other[key];
- if (customizer) {
- var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);
- }
- if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {
- result = false;
- break;
- }
- skipCtor || (skipCtor = key == "constructor");
- }
- if (result && !skipCtor) {
- var objCtor = object.constructor, othCtor = other.constructor;
- if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) {
- result = false;
- }
- }
- stack["delete"](object);
- stack["delete"](other);
- return result;
- }
- function getAllKeys(object) {
- return baseGetAllKeys(object, keys, getSymbols);
- }
- function getMapData(map, key) {
- var data = map.__data__;
- return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
- }
- function getNative(object, key) {
- var value = getValue(object, key);
- return baseIsNative(value) ? value : void 0;
- }
- function getRawTag(value) {
- var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];
- try {
- value[symToStringTag] = void 0;
- var unmasked = true;
- } catch (e) {
- }
- var result = nativeObjectToString.call(value);
- if (unmasked) {
- if (isOwn) {
- value[symToStringTag] = tag;
- } else {
- delete value[symToStringTag];
- }
- }
- return result;
- }
- var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
- if (object == null) {
- return [];
- }
- object = Object(object);
- return arrayFilter(nativeGetSymbols(object), function(symbol) {
- return propertyIsEnumerable.call(object, symbol);
- });
- };
- var getTag = baseGetTag;
- if (DataView2 && getTag(new DataView2(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap2 && getTag(new WeakMap2()) != weakMapTag) {
- getTag = function(value) {
- var result = baseGetTag(value), Ctor = result == objectTag ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : "";
- if (ctorString) {
- switch (ctorString) {
- case dataViewCtorString:
- return dataViewTag;
- case mapCtorString:
- return mapTag;
- case promiseCtorString:
- return promiseTag;
- case setCtorString:
- return setTag;
- case weakMapCtorString:
- return weakMapTag;
- }
- }
- return result;
- };
- }
- function isIndex(value, length) {
- length = length == null ? MAX_SAFE_INTEGER : length;
- return !!length && (typeof value == "number" || reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);
- }
- function isKeyable(value) {
- var type = typeof value;
- return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null;
- }
- function isMasked(func) {
- return !!maskSrcKey && maskSrcKey in func;
- }
- function isPrototype(value) {
- var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto;
- return value === proto;
- }
- function objectToString(value) {
- return nativeObjectToString.call(value);
- }
- function toSource(func) {
- if (func != null) {
- try {
- return funcToString.call(func);
- } catch (e) {
- }
- try {
- return func + "";
- } catch (e) {
- }
- }
- return "";
- }
- function eq(value, other) {
- return value === other || value !== value && other !== other;
- }
- var isArguments = baseIsArguments(/* @__PURE__ */ (function() {
- return arguments;
- })()) ? baseIsArguments : function(value) {
- return isObjectLike(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee");
- };
- var isArray = Array.isArray;
- function isArrayLike(value) {
- return value != null && isLength(value.length) && !isFunction(value);
- }
- var isBuffer = nativeIsBuffer || stubFalse;
- function isEqual(value, other) {
- return baseIsEqual(value, other);
- }
- function isFunction(value) {
- if (!isObject(value)) {
- return false;
- }
- var tag = baseGetTag(value);
- return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
- }
- function isLength(value) {
- return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
- }
- function isObject(value) {
- var type = typeof value;
- return value != null && (type == "object" || type == "function");
- }
- function isObjectLike(value) {
- return value != null && typeof value == "object";
- }
- var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
- function keys(object) {
- return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
- }
- function stubArray() {
- return [];
- }
- function stubFalse() {
- return false;
- }
- module2.exports = isEqual;
- }
- });
- // node_modules/z-schema/src/SchemaCompilation.js
- var require_SchemaCompilation = __commonJS({
- "node_modules/z-schema/src/SchemaCompilation.js"(exports2) {
- "use strict";
- var Report = require_Report();
- var SchemaCache = require_SchemaCache();
- var Utils = require_Utils();
- function mergeReference(scope, ref) {
- if (Utils.isAbsoluteUri(ref)) {
- return ref;
- }
- var joinedScope = scope.join(""), isScopeAbsolute = Utils.isAbsoluteUri(joinedScope), isScopeRelative = Utils.isRelativeUri(joinedScope), isRefRelative = Utils.isRelativeUri(ref), toRemove;
- if (isScopeAbsolute && isRefRelative) {
- toRemove = joinedScope.match(/\/[^\/]*$/);
- if (toRemove) {
- joinedScope = joinedScope.slice(0, toRemove.index + 1);
- }
- } else if (isScopeRelative && isRefRelative) {
- joinedScope = "";
- } else {
- toRemove = joinedScope.match(/[^#/]+$/);
- if (toRemove) {
- joinedScope = joinedScope.slice(0, toRemove.index);
- }
- }
- var res = joinedScope + ref;
- res = res.replace(/##/, "#");
- return res;
- }
- function collectReferences(obj, results, scope, path2) {
- results = results || [];
- scope = scope || [];
- path2 = path2 || [];
- if (typeof obj !== "object" || obj === null) {
- return results;
- }
- if (typeof obj.id === "string") {
- scope.push(obj.id);
- }
- if (typeof obj.$ref === "string" && typeof obj.__$refResolved === "undefined") {
- results.push({
- ref: mergeReference(scope, obj.$ref),
- key: "$ref",
- obj,
- path: path2.slice(0)
- });
- }
- if (typeof obj.$schema === "string" && typeof obj.__$schemaResolved === "undefined") {
- results.push({
- ref: mergeReference(scope, obj.$schema),
- key: "$schema",
- obj,
- path: path2.slice(0)
- });
- }
- var idx;
- if (Array.isArray(obj)) {
- idx = obj.length;
- while (idx--) {
- path2.push(idx.toString());
- collectReferences(obj[idx], results, scope, path2);
- path2.pop();
- }
- } else {
- var keys = Object.keys(obj);
- idx = keys.length;
- while (idx--) {
- if (keys[idx].indexOf("__$") === 0) {
- continue;
- }
- path2.push(keys[idx]);
- collectReferences(obj[keys[idx]], results, scope, path2);
- path2.pop();
- }
- }
- if (typeof obj.id === "string") {
- scope.pop();
- }
- return results;
- }
- var compileArrayOfSchemasLoop = function(mainReport, arr) {
- var idx = arr.length, compiledCount = 0;
- while (idx--) {
- var report = new Report(mainReport);
- var isValid = exports2.compileSchema.call(this, report, arr[idx]);
- if (isValid) {
- compiledCount++;
- }
- mainReport.errors = mainReport.errors.concat(report.errors);
- }
- return compiledCount;
- };
- function findId(arr, id) {
- var idx = arr.length;
- while (idx--) {
- if (arr[idx].id === id) {
- return arr[idx];
- }
- }
- return null;
- }
- var compileArrayOfSchemas = function(report, arr) {
- var compiled = 0, lastLoopCompiled;
- do {
- var idx = report.errors.length;
- while (idx--) {
- if (report.errors[idx].code === "UNRESOLVABLE_REFERENCE") {
- report.errors.splice(idx, 1);
- }
- }
- lastLoopCompiled = compiled;
- compiled = compileArrayOfSchemasLoop.call(this, report, arr);
- idx = arr.length;
- while (idx--) {
- var sch = arr[idx];
- if (sch.__$missingReferences) {
- var idx2 = sch.__$missingReferences.length;
- while (idx2--) {
- var refObj = sch.__$missingReferences[idx2];
- var response = findId(arr, refObj.ref);
- if (response) {
- refObj.obj["__" + refObj.key + "Resolved"] = response;
- sch.__$missingReferences.splice(idx2, 1);
- }
- }
- if (sch.__$missingReferences.length === 0) {
- delete sch.__$missingReferences;
- }
- }
- }
- } while (compiled !== arr.length && compiled !== lastLoopCompiled);
- return report.isValid();
- };
- exports2.compileSchema = function(report, schema) {
- report.commonErrorMessage = "SCHEMA_COMPILATION_FAILED";
- if (typeof schema === "string") {
- var loadedSchema = SchemaCache.getSchemaByUri.call(this, report, schema);
- if (!loadedSchema) {
- report.addError("SCHEMA_NOT_REACHABLE", [schema]);
- return false;
- }
- schema = loadedSchema;
- }
- if (Array.isArray(schema)) {
- return compileArrayOfSchemas.call(this, report, schema);
- }
- if (schema.__$compiled && schema.id && SchemaCache.checkCacheForUri.call(this, schema.id) === false) {
- schema.__$compiled = void 0;
- }
- if (schema.__$compiled) {
- return true;
- }
- if (schema.id && typeof schema.id === "string") {
- SchemaCache.cacheSchemaByUri.call(this, schema.id, schema);
- }
- var isRoot = false;
- if (!report.rootSchema) {
- report.rootSchema = schema;
- isRoot = true;
- }
- var isValidExceptReferences = report.isValid();
- delete schema.__$missingReferences;
- var refs = collectReferences.call(this, schema), idx = refs.length;
- while (idx--) {
- var refObj = refs[idx];
- var response = SchemaCache.getSchemaByUri.call(this, report, refObj.ref, schema);
- if (!response) {
- var schemaReader = this.getSchemaReader();
- if (schemaReader) {
- var s = schemaReader(refObj.ref);
- if (s) {
- s.id = refObj.ref;
- var subreport = new Report(report);
- if (!exports2.compileSchema.call(this, subreport, s)) {
- report.errors = report.errors.concat(subreport.errors);
- } else {
- response = SchemaCache.getSchemaByUri.call(this, report, refObj.ref, schema);
- }
- }
- }
- }
- if (!response) {
- var hasNotValid = report.hasError("REMOTE_NOT_VALID", [refObj.ref]);
- var isAbsolute = Utils.isAbsoluteUri(refObj.ref);
- var isDownloaded = false;
- var ignoreUnresolvableRemotes = this.options.ignoreUnresolvableReferences === true;
- if (isAbsolute) {
- isDownloaded = SchemaCache.checkCacheForUri.call(this, refObj.ref);
- }
- if (hasNotValid) {
- } else if (ignoreUnresolvableRemotes && isAbsolute) {
- } else if (isDownloaded) {
- } else {
- Array.prototype.push.apply(report.path, refObj.path);
- report.addError("UNRESOLVABLE_REFERENCE", [refObj.ref]);
- report.path = report.path.slice(0, -refObj.path.length);
- if (isValidExceptReferences) {
- schema.__$missingReferences = schema.__$missingReferences || [];
- schema.__$missingReferences.push(refObj);
- }
- }
- }
- refObj.obj["__" + refObj.key + "Resolved"] = response;
- }
- var isValid = report.isValid();
- if (isValid) {
- schema.__$compiled = true;
- } else {
- if (schema.id && typeof schema.id === "string") {
- SchemaCache.removeFromCacheByUri.call(this, schema.id);
- }
- }
- if (isRoot) {
- report.rootSchema = void 0;
- }
- return isValid;
- };
- }
- });
- // node_modules/z-schema/src/SchemaValidation.js
- var require_SchemaValidation = __commonJS({
- "node_modules/z-schema/src/SchemaValidation.js"(exports2) {
- "use strict";
- var FormatValidators = require_FormatValidators();
- var JsonValidation = require_JsonValidation();
- var Report = require_Report();
- var Utils = require_Utils();
- var SchemaValidators = {
- $ref: function(report, schema) {
- if (typeof schema.$ref !== "string") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["$ref", "string"]);
- }
- },
- $schema: function(report, schema) {
- if (typeof schema.$schema !== "string") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["$schema", "string"]);
- }
- },
- multipleOf: function(report, schema) {
- if (typeof schema.multipleOf !== "number") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["multipleOf", "number"]);
- } else if (schema.multipleOf <= 0) {
- report.addError("KEYWORD_MUST_BE", ["multipleOf", "strictly greater than 0"]);
- }
- },
- maximum: function(report, schema) {
- if (typeof schema.maximum !== "number") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["maximum", "number"]);
- }
- },
- exclusiveMaximum: function(report, schema) {
- if (typeof schema.exclusiveMaximum !== "boolean") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["exclusiveMaximum", "boolean"]);
- } else if (schema.maximum === void 0) {
- report.addError("KEYWORD_DEPENDENCY", ["exclusiveMaximum", "maximum"]);
- }
- },
- minimum: function(report, schema) {
- if (typeof schema.minimum !== "number") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["minimum", "number"]);
- }
- },
- exclusiveMinimum: function(report, schema) {
- if (typeof schema.exclusiveMinimum !== "boolean") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["exclusiveMinimum", "boolean"]);
- } else if (schema.minimum === void 0) {
- report.addError("KEYWORD_DEPENDENCY", ["exclusiveMinimum", "minimum"]);
- }
- },
- maxLength: function(report, schema) {
- if (Utils.whatIs(schema.maxLength) !== "integer") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["maxLength", "integer"]);
- } else if (schema.maxLength < 0) {
- report.addError("KEYWORD_MUST_BE", ["maxLength", "greater than, or equal to 0"]);
- }
- },
- minLength: function(report, schema) {
- if (Utils.whatIs(schema.minLength) !== "integer") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["minLength", "integer"]);
- } else if (schema.minLength < 0) {
- report.addError("KEYWORD_MUST_BE", ["minLength", "greater than, or equal to 0"]);
- }
- },
- pattern: function(report, schema) {
- if (typeof schema.pattern !== "string") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["pattern", "string"]);
- } else {
- try {
- RegExp(schema.pattern);
- } catch (e) {
- report.addError("KEYWORD_PATTERN", ["pattern", schema.pattern]);
- }
- }
- },
- additionalItems: function(report, schema) {
- var type = Utils.whatIs(schema.additionalItems);
- if (type !== "boolean" && type !== "object") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["additionalItems", ["boolean", "object"]]);
- } else if (type === "object") {
- report.path.push("additionalItems");
- exports2.validateSchema.call(this, report, schema.additionalItems);
- report.path.pop();
- }
- },
- items: function(report, schema) {
- var type = Utils.whatIs(schema.items);
- if (type === "object") {
- report.path.push("items");
- exports2.validateSchema.call(this, report, schema.items);
- report.path.pop();
- } else if (type === "array") {
- var idx = schema.items.length;
- while (idx--) {
- report.path.push("items");
- report.path.push(idx.toString());
- exports2.validateSchema.call(this, report, schema.items[idx]);
- report.path.pop();
- report.path.pop();
- }
- } else {
- report.addError("KEYWORD_TYPE_EXPECTED", ["items", ["array", "object"]]);
- }
- if (this.options.forceAdditional === true && schema.additionalItems === void 0 && Array.isArray(schema.items)) {
- report.addError("KEYWORD_UNDEFINED_STRICT", ["additionalItems"]);
- }
- if (this.options.assumeAdditional && schema.additionalItems === void 0 && Array.isArray(schema.items)) {
- schema.additionalItems = false;
- }
- },
- maxItems: function(report, schema) {
- if (typeof schema.maxItems !== "number") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["maxItems", "integer"]);
- } else if (schema.maxItems < 0) {
- report.addError("KEYWORD_MUST_BE", ["maxItems", "greater than, or equal to 0"]);
- }
- },
- minItems: function(report, schema) {
- if (Utils.whatIs(schema.minItems) !== "integer") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["minItems", "integer"]);
- } else if (schema.minItems < 0) {
- report.addError("KEYWORD_MUST_BE", ["minItems", "greater than, or equal to 0"]);
- }
- },
- uniqueItems: function(report, schema) {
- if (typeof schema.uniqueItems !== "boolean") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["uniqueItems", "boolean"]);
- }
- },
- maxProperties: function(report, schema) {
- if (Utils.whatIs(schema.maxProperties) !== "integer") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["maxProperties", "integer"]);
- } else if (schema.maxProperties < 0) {
- report.addError("KEYWORD_MUST_BE", ["maxProperties", "greater than, or equal to 0"]);
- }
- },
- minProperties: function(report, schema) {
- if (Utils.whatIs(schema.minProperties) !== "integer") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["minProperties", "integer"]);
- } else if (schema.minProperties < 0) {
- report.addError("KEYWORD_MUST_BE", ["minProperties", "greater than, or equal to 0"]);
- }
- },
- required: function(report, schema) {
- if (Utils.whatIs(schema.required) !== "array") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["required", "array"]);
- } else if (schema.required.length === 0) {
- report.addError("KEYWORD_MUST_BE", ["required", "an array with at least one element"]);
- } else {
- var idx = schema.required.length;
- while (idx--) {
- if (typeof schema.required[idx] !== "string") {
- report.addError("KEYWORD_VALUE_TYPE", ["required", "string"]);
- }
- }
- if (Utils.isUniqueArray(schema.required) === false) {
- report.addError("KEYWORD_MUST_BE", ["required", "an array with unique items"]);
- }
- }
- },
- additionalProperties: function(report, schema) {
- var type = Utils.whatIs(schema.additionalProperties);
- if (type !== "boolean" && type !== "object") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["additionalProperties", ["boolean", "object"]]);
- } else if (type === "object") {
- report.path.push("additionalProperties");
- exports2.validateSchema.call(this, report, schema.additionalProperties);
- report.path.pop();
- }
- },
- properties: function(report, schema) {
- if (Utils.whatIs(schema.properties) !== "object") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["properties", "object"]);
- return;
- }
- var keys = Object.keys(schema.properties), idx = keys.length;
- while (idx--) {
- var key = keys[idx], val = schema.properties[key];
- report.path.push("properties");
- report.path.push(key);
- exports2.validateSchema.call(this, report, val);
- report.path.pop();
- report.path.pop();
- }
- if (this.options.forceAdditional === true && schema.additionalProperties === void 0) {
- report.addError("KEYWORD_UNDEFINED_STRICT", ["additionalProperties"]);
- }
- if (this.options.assumeAdditional && schema.additionalProperties === void 0) {
- schema.additionalProperties = false;
- }
- if (this.options.forceProperties === true && keys.length === 0) {
- report.addError("CUSTOM_MODE_FORCE_PROPERTIES", ["properties"]);
- }
- },
- patternProperties: function(report, schema) {
- if (Utils.whatIs(schema.patternProperties) !== "object") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["patternProperties", "object"]);
- return;
- }
- var keys = Object.keys(schema.patternProperties), idx = keys.length;
- while (idx--) {
- var key = keys[idx], val = schema.patternProperties[key];
- try {
- RegExp(key);
- } catch (e) {
- report.addError("KEYWORD_PATTERN", ["patternProperties", key]);
- }
- report.path.push("patternProperties");
- report.path.push(key.toString());
- exports2.validateSchema.call(this, report, val);
- report.path.pop();
- report.path.pop();
- }
- if (this.options.forceProperties === true && keys.length === 0) {
- report.addError("CUSTOM_MODE_FORCE_PROPERTIES", ["patternProperties"]);
- }
- },
- dependencies: function(report, schema) {
- if (Utils.whatIs(schema.dependencies) !== "object") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["dependencies", "object"]);
- } else {
- var keys = Object.keys(schema.dependencies), idx = keys.length;
- while (idx--) {
- var schemaKey = keys[idx], schemaDependency = schema.dependencies[schemaKey], type = Utils.whatIs(schemaDependency);
- if (type === "object") {
- report.path.push("dependencies");
- report.path.push(schemaKey);
- exports2.validateSchema.call(this, report, schemaDependency);
- report.path.pop();
- report.path.pop();
- } else if (type === "array") {
- var idx2 = schemaDependency.length;
- if (idx2 === 0) {
- report.addError("KEYWORD_MUST_BE", ["dependencies", "not empty array"]);
- }
- while (idx2--) {
- if (typeof schemaDependency[idx2] !== "string") {
- report.addError("KEYWORD_VALUE_TYPE", ["dependensices", "string"]);
- }
- }
- if (Utils.isUniqueArray(schemaDependency) === false) {
- report.addError("KEYWORD_MUST_BE", ["dependencies", "an array with unique items"]);
- }
- } else {
- report.addError("KEYWORD_VALUE_TYPE", ["dependencies", "object or array"]);
- }
- }
- }
- },
- enum: function(report, schema) {
- if (Array.isArray(schema.enum) === false) {
- report.addError("KEYWORD_TYPE_EXPECTED", ["enum", "array"]);
- } else if (schema.enum.length === 0) {
- report.addError("KEYWORD_MUST_BE", ["enum", "an array with at least one element"]);
- } else if (Utils.isUniqueArray(schema.enum) === false) {
- report.addError("KEYWORD_MUST_BE", ["enum", "an array with unique elements"]);
- }
- },
- type: function(report, schema) {
- var primitiveTypes = ["array", "boolean", "integer", "number", "null", "object", "string"], primitiveTypeStr = primitiveTypes.join(","), isArray = Array.isArray(schema.type);
- if (isArray) {
- var idx = schema.type.length;
- while (idx--) {
- if (primitiveTypes.indexOf(schema.type[idx]) === -1) {
- report.addError("KEYWORD_TYPE_EXPECTED", ["type", primitiveTypeStr]);
- }
- }
- if (Utils.isUniqueArray(schema.type) === false) {
- report.addError("KEYWORD_MUST_BE", ["type", "an object with unique properties"]);
- }
- } else if (typeof schema.type === "string") {
- if (primitiveTypes.indexOf(schema.type) === -1) {
- report.addError("KEYWORD_TYPE_EXPECTED", ["type", primitiveTypeStr]);
- }
- } else {
- report.addError("KEYWORD_TYPE_EXPECTED", ["type", ["string", "array"]]);
- }
- if (this.options.noEmptyStrings === true) {
- if (schema.type === "string" || isArray && schema.type.indexOf("string") !== -1) {
- if (schema.minLength === void 0 && schema.enum === void 0 && schema.format === void 0) {
- schema.minLength = 1;
- }
- }
- }
- if (this.options.noEmptyArrays === true) {
- if (schema.type === "array" || isArray && schema.type.indexOf("array") !== -1) {
- if (schema.minItems === void 0) {
- schema.minItems = 1;
- }
- }
- }
- if (this.options.forceProperties === true) {
- if (schema.type === "object" || isArray && schema.type.indexOf("object") !== -1) {
- if (schema.properties === void 0 && schema.patternProperties === void 0) {
- report.addError("KEYWORD_UNDEFINED_STRICT", ["properties"]);
- }
- }
- }
- if (this.options.forceItems === true) {
- if (schema.type === "array" || isArray && schema.type.indexOf("array") !== -1) {
- if (schema.items === void 0) {
- report.addError("KEYWORD_UNDEFINED_STRICT", ["items"]);
- }
- }
- }
- if (this.options.forceMinItems === true) {
- if (schema.type === "array" || isArray && schema.type.indexOf("array") !== -1) {
- if (schema.minItems === void 0) {
- report.addError("KEYWORD_UNDEFINED_STRICT", ["minItems"]);
- }
- }
- }
- if (this.options.forceMaxItems === true) {
- if (schema.type === "array" || isArray && schema.type.indexOf("array") !== -1) {
- if (schema.maxItems === void 0) {
- report.addError("KEYWORD_UNDEFINED_STRICT", ["maxItems"]);
- }
- }
- }
- if (this.options.forceMinLength === true) {
- if (schema.type === "string" || isArray && schema.type.indexOf("string") !== -1) {
- if (schema.minLength === void 0 && schema.format === void 0 && schema.enum === void 0 && schema.pattern === void 0) {
- report.addError("KEYWORD_UNDEFINED_STRICT", ["minLength"]);
- }
- }
- }
- if (this.options.forceMaxLength === true) {
- if (schema.type === "string" || isArray && schema.type.indexOf("string") !== -1) {
- if (schema.maxLength === void 0 && schema.format === void 0 && schema.enum === void 0 && schema.pattern === void 0) {
- report.addError("KEYWORD_UNDEFINED_STRICT", ["maxLength"]);
- }
- }
- }
- },
- allOf: function(report, schema) {
- if (Array.isArray(schema.allOf) === false) {
- report.addError("KEYWORD_TYPE_EXPECTED", ["allOf", "array"]);
- } else if (schema.allOf.length === 0) {
- report.addError("KEYWORD_MUST_BE", ["allOf", "an array with at least one element"]);
- } else {
- var idx = schema.allOf.length;
- while (idx--) {
- report.path.push("allOf");
- report.path.push(idx.toString());
- exports2.validateSchema.call(this, report, schema.allOf[idx]);
- report.path.pop();
- report.path.pop();
- }
- }
- },
- anyOf: function(report, schema) {
- if (Array.isArray(schema.anyOf) === false) {
- report.addError("KEYWORD_TYPE_EXPECTED", ["anyOf", "array"]);
- } else if (schema.anyOf.length === 0) {
- report.addError("KEYWORD_MUST_BE", ["anyOf", "an array with at least one element"]);
- } else {
- var idx = schema.anyOf.length;
- while (idx--) {
- report.path.push("anyOf");
- report.path.push(idx.toString());
- exports2.validateSchema.call(this, report, schema.anyOf[idx]);
- report.path.pop();
- report.path.pop();
- }
- }
- },
- oneOf: function(report, schema) {
- if (Array.isArray(schema.oneOf) === false) {
- report.addError("KEYWORD_TYPE_EXPECTED", ["oneOf", "array"]);
- } else if (schema.oneOf.length === 0) {
- report.addError("KEYWORD_MUST_BE", ["oneOf", "an array with at least one element"]);
- } else {
- var idx = schema.oneOf.length;
- while (idx--) {
- report.path.push("oneOf");
- report.path.push(idx.toString());
- exports2.validateSchema.call(this, report, schema.oneOf[idx]);
- report.path.pop();
- report.path.pop();
- }
- }
- },
- not: function(report, schema) {
- if (Utils.whatIs(schema.not) !== "object") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["not", "object"]);
- } else {
- report.path.push("not");
- exports2.validateSchema.call(this, report, schema.not);
- report.path.pop();
- }
- },
- definitions: function(report, schema) {
- if (Utils.whatIs(schema.definitions) !== "object") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["definitions", "object"]);
- } else {
- var keys = Object.keys(schema.definitions), idx = keys.length;
- while (idx--) {
- var key = keys[idx], val = schema.definitions[key];
- report.path.push("definitions");
- report.path.push(key);
- exports2.validateSchema.call(this, report, val);
- report.path.pop();
- report.path.pop();
- }
- }
- },
- format: function(report, schema) {
- if (typeof schema.format !== "string") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["format", "string"]);
- } else {
- if (FormatValidators[schema.format] === void 0 && this.options.ignoreUnknownFormats !== true) {
- report.addError("UNKNOWN_FORMAT", [schema.format]);
- }
- }
- },
- id: function(report, schema) {
- if (typeof schema.id !== "string") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["id", "string"]);
- }
- },
- title: function(report, schema) {
- if (typeof schema.title !== "string") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["title", "string"]);
- }
- },
- description: function(report, schema) {
- if (typeof schema.description !== "string") {
- report.addError("KEYWORD_TYPE_EXPECTED", ["description", "string"]);
- }
- },
- "default": function() {
- }
- };
- var validateArrayOfSchemas = function(report, arr) {
- var idx = arr.length;
- while (idx--) {
- exports2.validateSchema.call(this, report, arr[idx]);
- }
- return report.isValid();
- };
- exports2.validateSchema = function(report, schema) {
- report.commonErrorMessage = "SCHEMA_VALIDATION_FAILED";
- if (Array.isArray(schema)) {
- return validateArrayOfSchemas.call(this, report, schema);
- }
- if (schema.__$validated) {
- return true;
- }
- var hasParentSchema = schema.$schema && schema.id !== schema.$schema;
- if (hasParentSchema) {
- if (schema.__$schemaResolved && schema.__$schemaResolved !== schema) {
- var subReport = new Report(report);
- var valid = JsonValidation.validate.call(this, subReport, schema.__$schemaResolved, schema);
- if (valid === false) {
- report.addError("PARENT_SCHEMA_VALIDATION_FAILED", null, subReport);
- }
- } else {
- if (this.options.ignoreUnresolvableReferences !== true) {
- report.addError("REF_UNRESOLVED", [schema.$schema]);
- }
- }
- }
- if (this.options.noTypeless === true) {
- if (schema.type !== void 0) {
- var schemas = [];
- if (Array.isArray(schema.anyOf)) {
- schemas = schemas.concat(schema.anyOf);
- }
- if (Array.isArray(schema.oneOf)) {
- schemas = schemas.concat(schema.oneOf);
- }
- if (Array.isArray(schema.allOf)) {
- schemas = schemas.concat(schema.allOf);
- }
- schemas.forEach(function(sch) {
- if (!sch.type) {
- sch.type = schema.type;
- }
- });
- }
- if (schema.enum === void 0 && schema.type === void 0 && schema.anyOf === void 0 && schema.oneOf === void 0 && schema.not === void 0 && schema.$ref === void 0) {
- report.addError("KEYWORD_UNDEFINED_STRICT", ["type"]);
- }
- }
- var keys = Object.keys(schema), idx = keys.length;
- while (idx--) {
- var key = keys[idx];
- if (key.indexOf("__") === 0) {
- continue;
- }
- if (SchemaValidators[key] !== void 0) {
- SchemaValidators[key].call(this, report, schema);
- } else if (!hasParentSchema) {
- if (this.options.noExtraKeywords === true) {
- report.addError("KEYWORD_UNEXPECTED", [key]);
- }
- }
- }
- if (this.options.pedanticCheck === true) {
- if (schema.enum) {
- var tmpSchema = Utils.clone(schema);
- delete tmpSchema.enum;
- delete tmpSchema.default;
- report.path.push("enum");
- idx = schema.enum.length;
- while (idx--) {
- report.path.push(idx.toString());
- JsonValidation.validate.call(this, report, tmpSchema, schema.enum[idx]);
- report.path.pop();
- }
- report.path.pop();
- }
- if (schema.default) {
- report.path.push("default");
- JsonValidation.validate.call(this, report, schema, schema.default);
- report.path.pop();
- }
- }
- var isValid = report.isValid();
- if (isValid) {
- schema.__$validated = true;
- }
- return isValid;
- };
- }
- });
- // node_modules/z-schema/src/SchemaCache.js
- var require_SchemaCache = __commonJS({
- "node_modules/z-schema/src/SchemaCache.js"(exports2) {
- "use strict";
- var isequal = require_lodash2();
- var Report = require_Report();
- var SchemaCompilation = require_SchemaCompilation();
- var SchemaValidation = require_SchemaValidation();
- var Utils = require_Utils();
- function decodeJSONPointer(str) {
- return decodeURIComponent(str).replace(/~[0-1]/g, function(x) {
- return x === "~1" ? "/" : "~";
- });
- }
- function getRemotePath(uri) {
- var io = uri.indexOf("#");
- return io === -1 ? uri : uri.slice(0, io);
- }
- function getQueryPath(uri) {
- var io = uri.indexOf("#");
- var res = io === -1 ? void 0 : uri.slice(io + 1);
- return res;
- }
- function findId(schema, id) {
- if (typeof schema !== "object" || schema === null) {
- return;
- }
- if (!id) {
- return schema;
- }
- if (schema.id) {
- if (schema.id === id || schema.id[0] === "#" && schema.id.substring(1) === id) {
- return schema;
- }
- }
- var idx, result;
- if (Array.isArray(schema)) {
- idx = schema.length;
- while (idx--) {
- result = findId(schema[idx], id);
- if (result) {
- return result;
- }
- }
- } else {
- var keys = Object.keys(schema);
- idx = keys.length;
- while (idx--) {
- var k = keys[idx];
- if (k.indexOf("__$") === 0) {
- continue;
- }
- result = findId(schema[k], id);
- if (result) {
- return result;
- }
- }
- }
- }
- exports2.cacheSchemaByUri = function(uri, schema) {
- var remotePath = getRemotePath(uri);
- if (remotePath) {
- this.cache[remotePath] = schema;
- }
- };
- exports2.removeFromCacheByUri = function(uri) {
- var remotePath = getRemotePath(uri);
- if (remotePath) {
- delete this.cache[remotePath];
- }
- };
- exports2.checkCacheForUri = function(uri) {
- var remotePath = getRemotePath(uri);
- return remotePath ? this.cache[remotePath] != null : false;
- };
- exports2.getSchema = function(report, schema) {
- if (typeof schema === "object") {
- schema = exports2.getSchemaByReference.call(this, report, schema);
- }
- if (typeof schema === "string") {
- schema = exports2.getSchemaByUri.call(this, report, schema);
- }
- return schema;
- };
- exports2.getSchemaByReference = function(report, key) {
- var i = this.referenceCache.length;
- while (i--) {
- if (isequal(this.referenceCache[i][0], key)) {
- return this.referenceCache[i][1];
- }
- }
- var schema = Utils.cloneDeep(key);
- this.referenceCache.push([key, schema]);
- return schema;
- };
- exports2.getSchemaByUri = function(report, uri, root) {
- var remotePath = getRemotePath(uri), queryPath = getQueryPath(uri), result = remotePath ? this.cache[remotePath] : root;
- if (result && remotePath) {
- var compileRemote = result !== root;
- if (compileRemote) {
- report.path.push(remotePath);
- var remoteReport;
- var anscestorReport = report.getAncestor(result.id);
- if (anscestorReport) {
- remoteReport = anscestorReport;
- } else {
- remoteReport = new Report(report);
- if (SchemaCompilation.compileSchema.call(this, remoteReport, result)) {
- var savedOptions = this.options;
- try {
- this.options = result.__$validationOptions || this.options;
- SchemaValidation.validateSchema.call(this, remoteReport, result);
- } finally {
- this.options = savedOptions;
- }
- }
- }
- var remoteReportIsValid = remoteReport.isValid();
- if (!remoteReportIsValid) {
- report.addError("REMOTE_NOT_VALID", [uri], remoteReport);
- }
- report.path.pop();
- if (!remoteReportIsValid) {
- return void 0;
- }
- }
- }
- if (result && queryPath) {
- var parts = queryPath.split("/");
- for (var idx = 0, lim = parts.length; result && idx < lim; idx++) {
- var key = decodeJSONPointer(parts[idx]);
- if (idx === 0) {
- result = findId(result, key);
- } else {
- result = result[key];
- }
- }
- }
- return result;
- };
- exports2.getRemotePath = getRemotePath;
- }
- });
- // node_modules/z-schema/src/schemas/schema.json
- var require_schema = __commonJS({
- "node_modules/z-schema/src/schemas/schema.json"(exports2, module2) {
- module2.exports = {
- id: "http://json-schema.org/draft-04/schema#",
- $schema: "http://json-schema.org/draft-04/schema#",
- description: "Core schema meta-schema",
- definitions: {
- schemaArray: {
- type: "array",
- minItems: 1,
- items: { $ref: "#" }
- },
- positiveInteger: {
- type: "integer",
- minimum: 0
- },
- positiveIntegerDefault0: {
- allOf: [{ $ref: "#/definitions/positiveInteger" }, { default: 0 }]
- },
- simpleTypes: {
- enum: ["array", "boolean", "integer", "null", "number", "object", "string"]
- },
- stringArray: {
- type: "array",
- items: { type: "string" },
- minItems: 1,
- uniqueItems: true
- }
- },
- type: "object",
- properties: {
- id: {
- type: "string",
- format: "uri"
- },
- $schema: {
- type: "string",
- format: "uri"
- },
- title: {
- type: "string"
- },
- description: {
- type: "string"
- },
- default: {},
- multipleOf: {
- type: "number",
- minimum: 0,
- exclusiveMinimum: true
- },
- maximum: {
- type: "number"
- },
- exclusiveMaximum: {
- type: "boolean",
- default: false
- },
- minimum: {
- type: "number"
- },
- exclusiveMinimum: {
- type: "boolean",
- default: false
- },
- maxLength: { $ref: "#/definitions/positiveInteger" },
- minLength: { $ref: "#/definitions/positiveIntegerDefault0" },
- pattern: {
- type: "string",
- format: "regex"
- },
- additionalItems: {
- anyOf: [
- { type: "boolean" },
- { $ref: "#" }
- ],
- default: {}
- },
- items: {
- anyOf: [
- { $ref: "#" },
- { $ref: "#/definitions/schemaArray" }
- ],
- default: {}
- },
- maxItems: { $ref: "#/definitions/positiveInteger" },
- minItems: { $ref: "#/definitions/positiveIntegerDefault0" },
- uniqueItems: {
- type: "boolean",
- default: false
- },
- maxProperties: { $ref: "#/definitions/positiveInteger" },
- minProperties: { $ref: "#/definitions/positiveIntegerDefault0" },
- required: { $ref: "#/definitions/stringArray" },
- additionalProperties: {
- anyOf: [
- { type: "boolean" },
- { $ref: "#" }
- ],
- default: {}
- },
- definitions: {
- type: "object",
- additionalProperties: { $ref: "#" },
- default: {}
- },
- properties: {
- type: "object",
- additionalProperties: { $ref: "#" },
- default: {}
- },
- patternProperties: {
- type: "object",
- additionalProperties: { $ref: "#" },
- default: {}
- },
- dependencies: {
- type: "object",
- additionalProperties: {
- anyOf: [
- { $ref: "#" },
- { $ref: "#/definitions/stringArray" }
- ]
- }
- },
- enum: {
- type: "array",
- minItems: 1,
- uniqueItems: true
- },
- type: {
- anyOf: [
- { $ref: "#/definitions/simpleTypes" },
- {
- type: "array",
- items: { $ref: "#/definitions/simpleTypes" },
- minItems: 1,
- uniqueItems: true
- }
- ]
- },
- format: { type: "string" },
- allOf: { $ref: "#/definitions/schemaArray" },
- anyOf: { $ref: "#/definitions/schemaArray" },
- oneOf: { $ref: "#/definitions/schemaArray" },
- not: { $ref: "#" }
- },
- dependencies: {
- exclusiveMaximum: ["maximum"],
- exclusiveMinimum: ["minimum"]
- },
- default: {}
- };
- }
- });
- // node_modules/z-schema/src/schemas/hyper-schema.json
- var require_hyper_schema = __commonJS({
- "node_modules/z-schema/src/schemas/hyper-schema.json"(exports2, module2) {
- module2.exports = {
- $schema: "http://json-schema.org/draft-04/hyper-schema#",
- id: "http://json-schema.org/draft-04/hyper-schema#",
- title: "JSON Hyper-Schema",
- allOf: [
- {
- $ref: "http://json-schema.org/draft-04/schema#"
- }
- ],
- properties: {
- additionalItems: {
- anyOf: [
- {
- type: "boolean"
- },
- {
- $ref: "#"
- }
- ]
- },
- additionalProperties: {
- anyOf: [
- {
- type: "boolean"
- },
- {
- $ref: "#"
- }
- ]
- },
- dependencies: {
- additionalProperties: {
- anyOf: [
- {
- $ref: "#"
- },
- {
- type: "array"
- }
- ]
- }
- },
- items: {
- anyOf: [
- {
- $ref: "#"
- },
- {
- $ref: "#/definitions/schemaArray"
- }
- ]
- },
- definitions: {
- additionalProperties: {
- $ref: "#"
- }
- },
- patternProperties: {
- additionalProperties: {
- $ref: "#"
- }
- },
- properties: {
- additionalProperties: {
- $ref: "#"
- }
- },
- allOf: {
- $ref: "#/definitions/schemaArray"
- },
- anyOf: {
- $ref: "#/definitions/schemaArray"
- },
- oneOf: {
- $ref: "#/definitions/schemaArray"
- },
- not: {
- $ref: "#"
- },
- links: {
- type: "array",
- items: {
- $ref: "#/definitions/linkDescription"
- }
- },
- fragmentResolution: {
- type: "string"
- },
- media: {
- type: "object",
- properties: {
- type: {
- description: "A media type, as described in RFC 2046",
- type: "string"
- },
- binaryEncoding: {
- description: "A content encoding scheme, as described in RFC 2045",
- type: "string"
- }
- }
- },
- pathStart: {
- description: "Instances' URIs must start with this value for this schema to apply to them",
- type: "string",
- format: "uri"
- }
- },
- definitions: {
- schemaArray: {
- type: "array",
- items: {
- $ref: "#"
- }
- },
- linkDescription: {
- title: "Link Description Object",
- type: "object",
- required: ["href", "rel"],
- properties: {
- href: {
- description: "a URI template, as defined by RFC 6570, with the addition of the $, ( and ) characters for pre-processing",
- type: "string"
- },
- rel: {
- description: "relation to the target resource of the link",
- type: "string"
- },
- title: {
- description: "a title for the link",
- type: "string"
- },
- targetSchema: {
- description: "JSON Schema describing the link target",
- $ref: "#"
- },
- mediaType: {
- description: "media type (as defined by RFC 2046) describing the link target",
- type: "string"
- },
- method: {
- description: 'method for requesting the target of the link (e.g. for HTTP this might be "GET" or "DELETE")',
- type: "string"
- },
- encType: {
- description: "The media type in which to submit data along with the request",
- type: "string",
- default: "application/json"
- },
- schema: {
- description: "Schema describing the data to submit along with the request",
- $ref: "#"
- }
- }
- }
- }
- };
- }
- });
- // node_modules/z-schema/src/ZSchema.js
- var require_ZSchema = __commonJS({
- "node_modules/z-schema/src/ZSchema.js"(exports2, module2) {
- "use strict";
- require_Polyfills();
- var get = require_lodash();
- var Report = require_Report();
- var FormatValidators = require_FormatValidators();
- var JsonValidation = require_JsonValidation();
- var SchemaCache = require_SchemaCache();
- var SchemaCompilation = require_SchemaCompilation();
- var SchemaValidation = require_SchemaValidation();
- var Utils = require_Utils();
- var Draft4Schema = require_schema();
- var Draft4HyperSchema = require_hyper_schema();
- var defaultOptions = {
- // default timeout for all async tasks
- asyncTimeout: 2e3,
- // force additionalProperties and additionalItems to be defined on "object" and "array" types
- forceAdditional: false,
- // assume additionalProperties and additionalItems are defined as "false" where appropriate
- assumeAdditional: false,
- // do case insensitive comparison for enums
- enumCaseInsensitiveComparison: false,
- // force items to be defined on "array" types
- forceItems: false,
- // force minItems to be defined on "array" types
- forceMinItems: false,
- // force maxItems to be defined on "array" types
- forceMaxItems: false,
- // force minLength to be defined on "string" types
- forceMinLength: false,
- // force maxLength to be defined on "string" types
- forceMaxLength: false,
- // force properties or patternProperties to be defined on "object" types
- forceProperties: false,
- // ignore references that cannot be resolved (remote schemas) // TODO: make sure this is only for remote schemas, not local ones
- ignoreUnresolvableReferences: false,
- // disallow usage of keywords that this validator can't handle
- noExtraKeywords: false,
- // disallow usage of schema's without "type" defined
- noTypeless: false,
- // disallow zero length strings in validated objects
- noEmptyStrings: false,
- // disallow zero length arrays in validated objects
- noEmptyArrays: false,
- // forces "uri" format to be in fully rfc3986 compliant
- strictUris: false,
- // turn on some of the above
- strictMode: false,
- // report error paths as an array of path segments to get to the offending node
- reportPathAsArray: false,
- // stop validation as soon as an error is found
- breakOnFirstError: false,
- // check if schema follows best practices and common sense
- pedanticCheck: false,
- // ignore unknown formats (do not report them as an error)
- ignoreUnknownFormats: false,
- // function to be called on every schema
- customValidator: null
- };
- function normalizeOptions(options) {
- var normalized;
- if (typeof options === "object") {
- var keys = Object.keys(options), idx = keys.length, key;
- while (idx--) {
- key = keys[idx];
- if (defaultOptions[key] === void 0) {
- throw new Error("Unexpected option passed to constructor: " + key);
- }
- }
- keys = Object.keys(defaultOptions);
- idx = keys.length;
- while (idx--) {
- key = keys[idx];
- if (options[key] === void 0) {
- options[key] = Utils.clone(defaultOptions[key]);
- }
- }
- normalized = options;
- } else {
- normalized = Utils.clone(defaultOptions);
- }
- if (normalized.strictMode === true) {
- normalized.forceAdditional = true;
- normalized.forceItems = true;
- normalized.forceMaxLength = true;
- normalized.forceProperties = true;
- normalized.noExtraKeywords = true;
- normalized.noTypeless = true;
- normalized.noEmptyStrings = true;
- normalized.noEmptyArrays = true;
- }
- return normalized;
- }
- function ZSchema(options) {
- this.cache = {};
- this.referenceCache = [];
- this.validateOptions = {};
- this.options = normalizeOptions(options);
- var metaschemaOptions = normalizeOptions({});
- this.setRemoteReference("http://json-schema.org/draft-04/schema", Draft4Schema, metaschemaOptions);
- this.setRemoteReference("http://json-schema.org/draft-04/hyper-schema", Draft4HyperSchema, metaschemaOptions);
- }
- ZSchema.prototype.compileSchema = function(schema) {
- var report = new Report(this.options);
- schema = SchemaCache.getSchema.call(this, report, schema);
- SchemaCompilation.compileSchema.call(this, report, schema);
- this.lastReport = report;
- return report.isValid();
- };
- ZSchema.prototype.validateSchema = function(schema) {
- if (Array.isArray(schema) && schema.length === 0) {
- throw new Error(".validateSchema was called with an empty array");
- }
- var report = new Report(this.options);
- schema = SchemaCache.getSchema.call(this, report, schema);
- var compiled = SchemaCompilation.compileSchema.call(this, report, schema);
- if (compiled) {
- SchemaValidation.validateSchema.call(this, report, schema);
- }
- this.lastReport = report;
- return report.isValid();
- };
- ZSchema.prototype.validate = function(json, schema, options, callback) {
- if (Utils.whatIs(options) === "function") {
- callback = options;
- options = {};
- }
- if (!options) {
- options = {};
- }
- this.validateOptions = options;
- var whatIs = Utils.whatIs(schema);
- if (whatIs !== "string" && whatIs !== "object") {
- var e = new Error("Invalid .validate call - schema must be a string or object but " + whatIs + " was passed!");
- if (callback) {
- process.nextTick(function() {
- callback(e, false);
- });
- return;
- }
- throw e;
- }
- var foundError = false;
- var report = new Report(this.options);
- report.json = json;
- if (typeof schema === "string") {
- var schemaName = schema;
- schema = SchemaCache.getSchema.call(this, report, schemaName);
- if (!schema) {
- throw new Error("Schema with id '" + schemaName + "' wasn't found in the validator cache!");
- }
- } else {
- schema = SchemaCache.getSchema.call(this, report, schema);
- }
- var compiled = false;
- if (!foundError) {
- compiled = SchemaCompilation.compileSchema.call(this, report, schema);
- }
- if (!compiled) {
- this.lastReport = report;
- foundError = true;
- }
- var validated = false;
- if (!foundError) {
- validated = SchemaValidation.validateSchema.call(this, report, schema);
- }
- if (!validated) {
- this.lastReport = report;
- foundError = true;
- }
- if (options.schemaPath) {
- report.rootSchema = schema;
- schema = get(schema, options.schemaPath);
- if (!schema) {
- throw new Error("Schema path '" + options.schemaPath + "' wasn't found in the schema!");
- }
- }
- if (!foundError) {
- JsonValidation.validate.call(this, report, schema, json);
- }
- if (callback) {
- report.processAsyncTasks(this.options.asyncTimeout, callback);
- return;
- } else if (report.asyncTasks.length > 0) {
- throw new Error("This validation has async tasks and cannot be done in sync mode, please provide callback argument.");
- }
- this.lastReport = report;
- return report.isValid();
- };
- ZSchema.prototype.getLastError = function() {
- if (this.lastReport.errors.length === 0) {
- return null;
- }
- var e = new Error();
- e.name = "z-schema validation error";
- e.message = this.lastReport.commonErrorMessage;
- e.details = this.lastReport.errors;
- return e;
- };
- ZSchema.prototype.getLastErrors = function() {
- return this.lastReport && this.lastReport.errors.length > 0 ? this.lastReport.errors : null;
- };
- ZSchema.prototype.getMissingReferences = function(arr) {
- arr = arr || this.lastReport.errors;
- var res = [], idx = arr.length;
- while (idx--) {
- var error = arr[idx];
- if (error.code === "UNRESOLVABLE_REFERENCE") {
- var reference = error.params[0];
- if (res.indexOf(reference) === -1) {
- res.push(reference);
- }
- }
- if (error.inner) {
- res = res.concat(this.getMissingReferences(error.inner));
- }
- }
- return res;
- };
- ZSchema.prototype.getMissingRemoteReferences = function() {
- var missingReferences = this.getMissingReferences(), missingRemoteReferences = [], idx = missingReferences.length;
- while (idx--) {
- var remoteReference = SchemaCache.getRemotePath(missingReferences[idx]);
- if (remoteReference && missingRemoteReferences.indexOf(remoteReference) === -1) {
- missingRemoteReferences.push(remoteReference);
- }
- }
- return missingRemoteReferences;
- };
- ZSchema.prototype.setRemoteReference = function(uri, schema, validationOptions) {
- if (typeof schema === "string") {
- schema = JSON.parse(schema);
- } else {
- schema = Utils.cloneDeep(schema);
- }
- if (validationOptions) {
- schema.__$validationOptions = normalizeOptions(validationOptions);
- }
- SchemaCache.cacheSchemaByUri.call(this, uri, schema);
- };
- ZSchema.prototype.getResolvedSchema = function(schema) {
- var report = new Report(this.options);
- schema = SchemaCache.getSchema.call(this, report, schema);
- schema = Utils.cloneDeep(schema);
- var visited = [];
- var cleanup = function(schema2) {
- var key, typeOf = Utils.whatIs(schema2);
- if (typeOf !== "object" && typeOf !== "array") {
- return;
- }
- if (schema2.___$visited) {
- return;
- }
- schema2.___$visited = true;
- visited.push(schema2);
- if (schema2.$ref && schema2.__$refResolved) {
- var from = schema2.__$refResolved;
- var to = schema2;
- delete schema2.$ref;
- delete schema2.__$refResolved;
- for (key in from) {
- if (from.hasOwnProperty(key)) {
- to[key] = from[key];
- }
- }
- }
- for (key in schema2) {
- if (schema2.hasOwnProperty(key)) {
- if (key.indexOf("__$") === 0) {
- delete schema2[key];
- } else {
- cleanup(schema2[key]);
- }
- }
- }
- };
- cleanup(schema);
- visited.forEach(function(s) {
- delete s.___$visited;
- });
- this.lastReport = report;
- if (report.isValid()) {
- return schema;
- } else {
- throw this.getLastError();
- }
- };
- ZSchema.prototype.setSchemaReader = function(schemaReader) {
- return ZSchema.setSchemaReader(schemaReader);
- };
- ZSchema.prototype.getSchemaReader = function() {
- return ZSchema.schemaReader;
- };
- ZSchema.schemaReader = void 0;
- ZSchema.setSchemaReader = function(schemaReader) {
- ZSchema.schemaReader = schemaReader;
- };
- ZSchema.registerFormat = function(formatName, validatorFunction) {
- FormatValidators[formatName] = validatorFunction;
- };
- ZSchema.unregisterFormat = function(formatName) {
- delete FormatValidators[formatName];
- };
- ZSchema.getRegisteredFormats = function() {
- return Object.keys(FormatValidators);
- };
- ZSchema.getDefaultOptions = function() {
- return Utils.cloneDeep(defaultOptions);
- };
- ZSchema.schemaSymbol = Utils.schemaSymbol;
- ZSchema.jsonSymbol = Utils.jsonSymbol;
- module2.exports = ZSchema;
- }
- });
- // node_modules/@apidevtools/openapi-schemas/schemas/v1.2/apiDeclaration.json
- var require_apiDeclaration = __commonJS({
- "node_modules/@apidevtools/openapi-schemas/schemas/v1.2/apiDeclaration.json"(exports2, module2) {
- module2.exports = {
- id: "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/schemas/v1.2/apiDeclaration.json#",
- $schema: "http://json-schema.org/draft-04/schema#",
- type: "object",
- required: ["swaggerVersion", "basePath", "apis"],
- properties: {
- swaggerVersion: { enum: ["1.2"] },
- apiVersion: { type: "string" },
- basePath: {
- type: "string",
- format: "uri",
- pattern: "^https?://"
- },
- resourcePath: {
- type: "string",
- format: "uri",
- pattern: "^/"
- },
- apis: {
- type: "array",
- items: { $ref: "#/definitions/apiObject" }
- },
- models: {
- type: "object",
- additionalProperties: {
- $ref: "modelsObject.json#"
- }
- },
- produces: { $ref: "#/definitions/mimeTypeArray" },
- consumes: { $ref: "#/definitions/mimeTypeArray" },
- authorizations: { $ref: "authorizationObject.json#" }
- },
- additionalProperties: false,
- definitions: {
- apiObject: {
- type: "object",
- required: ["path", "operations"],
- properties: {
- path: {
- type: "string",
- format: "uri-template",
- pattern: "^/"
- },
- description: { type: "string" },
- operations: {
- type: "array",
- items: { $ref: "operationObject.json#" }
- }
- },
- additionalProperties: false
- },
- mimeTypeArray: {
- type: "array",
- items: {
- type: "string",
- format: "mime-type"
- },
- uniqueItems: true
- }
- }
- };
- }
- });
- // node_modules/@apidevtools/openapi-schemas/schemas/v2.0/schema.json
- var require_schema2 = __commonJS({
- "node_modules/@apidevtools/openapi-schemas/schemas/v2.0/schema.json"(exports2, module2) {
- module2.exports = {
- title: "A JSON Schema for Swagger 2.0 API.",
- id: "http://swagger.io/v2/schema.json#",
- $schema: "http://json-schema.org/draft-04/schema#",
- type: "object",
- required: [
- "swagger",
- "info",
- "paths"
- ],
- additionalProperties: false,
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- },
- properties: {
- swagger: {
- type: "string",
- enum: [
- "2.0"
- ],
- description: "The Swagger version of this document."
- },
- info: {
- $ref: "#/definitions/info"
- },
- host: {
- type: "string",
- pattern: "^[^{}/ :\\\\]+(?::\\d+)?$",
- description: "The host (name or ip) of the API. Example: 'swagger.io'"
- },
- basePath: {
- type: "string",
- pattern: "^/",
- description: "The base path to the API. Example: '/api'."
- },
- schemes: {
- $ref: "#/definitions/schemesList"
- },
- consumes: {
- description: "A list of MIME types accepted by the API.",
- allOf: [
- {
- $ref: "#/definitions/mediaTypeList"
- }
- ]
- },
- produces: {
- description: "A list of MIME types the API can produce.",
- allOf: [
- {
- $ref: "#/definitions/mediaTypeList"
- }
- ]
- },
- paths: {
- $ref: "#/definitions/paths"
- },
- definitions: {
- $ref: "#/definitions/definitions"
- },
- parameters: {
- $ref: "#/definitions/parameterDefinitions"
- },
- responses: {
- $ref: "#/definitions/responseDefinitions"
- },
- security: {
- $ref: "#/definitions/security"
- },
- securityDefinitions: {
- $ref: "#/definitions/securityDefinitions"
- },
- tags: {
- type: "array",
- items: {
- $ref: "#/definitions/tag"
- },
- uniqueItems: true
- },
- externalDocs: {
- $ref: "#/definitions/externalDocs"
- }
- },
- definitions: {
- info: {
- type: "object",
- description: "General information about the API.",
- required: [
- "version",
- "title"
- ],
- additionalProperties: false,
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- },
- properties: {
- title: {
- type: "string",
- description: "A unique and precise title of the API."
- },
- version: {
- type: "string",
- description: "A semantic version number of the API."
- },
- description: {
- type: "string",
- description: "A longer description of the API. Should be different from the title. GitHub Flavored Markdown is allowed."
- },
- termsOfService: {
- type: "string",
- description: "The terms of service for the API."
- },
- contact: {
- $ref: "#/definitions/contact"
- },
- license: {
- $ref: "#/definitions/license"
- }
- }
- },
- contact: {
- type: "object",
- description: "Contact information for the owners of the API.",
- additionalProperties: false,
- properties: {
- name: {
- type: "string",
- description: "The identifying name of the contact person/organization."
- },
- url: {
- type: "string",
- description: "The URL pointing to the contact information.",
- format: "uri"
- },
- email: {
- type: "string",
- description: "The email address of the contact person/organization.",
- format: "email"
- }
- },
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- }
- },
- license: {
- type: "object",
- required: [
- "name"
- ],
- additionalProperties: false,
- properties: {
- name: {
- type: "string",
- description: "The name of the license type. It's encouraged to use an OSI compatible license."
- },
- url: {
- type: "string",
- description: "The URL pointing to the license.",
- format: "uri"
- }
- },
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- }
- },
- paths: {
- type: "object",
- description: "Relative paths to the individual endpoints. They must be relative to the 'basePath'.",
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- },
- "^/": {
- $ref: "#/definitions/pathItem"
- }
- },
- additionalProperties: false
- },
- definitions: {
- type: "object",
- additionalProperties: {
- $ref: "#/definitions/schema"
- },
- description: "One or more JSON objects describing the schemas being consumed and produced by the API."
- },
- parameterDefinitions: {
- type: "object",
- additionalProperties: {
- $ref: "#/definitions/parameter"
- },
- description: "One or more JSON representations for parameters"
- },
- responseDefinitions: {
- type: "object",
- additionalProperties: {
- $ref: "#/definitions/response"
- },
- description: "One or more JSON representations for responses"
- },
- externalDocs: {
- type: "object",
- additionalProperties: false,
- description: "information about external documentation",
- required: [
- "url"
- ],
- properties: {
- description: {
- type: "string"
- },
- url: {
- type: "string",
- format: "uri"
- }
- },
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- }
- },
- examples: {
- type: "object",
- additionalProperties: true
- },
- mimeType: {
- type: "string",
- description: "The MIME type of the HTTP message."
- },
- operation: {
- type: "object",
- required: [
- "responses"
- ],
- additionalProperties: false,
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- },
- properties: {
- tags: {
- type: "array",
- items: {
- type: "string"
- },
- uniqueItems: true
- },
- summary: {
- type: "string",
- description: "A brief summary of the operation."
- },
- description: {
- type: "string",
- description: "A longer description of the operation, GitHub Flavored Markdown is allowed."
- },
- externalDocs: {
- $ref: "#/definitions/externalDocs"
- },
- operationId: {
- type: "string",
- description: "A unique identifier of the operation."
- },
- produces: {
- description: "A list of MIME types the API can produce.",
- allOf: [
- {
- $ref: "#/definitions/mediaTypeList"
- }
- ]
- },
- consumes: {
- description: "A list of MIME types the API can consume.",
- allOf: [
- {
- $ref: "#/definitions/mediaTypeList"
- }
- ]
- },
- parameters: {
- $ref: "#/definitions/parametersList"
- },
- responses: {
- $ref: "#/definitions/responses"
- },
- schemes: {
- $ref: "#/definitions/schemesList"
- },
- deprecated: {
- type: "boolean",
- default: false
- },
- security: {
- $ref: "#/definitions/security"
- }
- }
- },
- pathItem: {
- type: "object",
- additionalProperties: false,
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- },
- properties: {
- $ref: {
- type: "string"
- },
- get: {
- $ref: "#/definitions/operation"
- },
- put: {
- $ref: "#/definitions/operation"
- },
- post: {
- $ref: "#/definitions/operation"
- },
- delete: {
- $ref: "#/definitions/operation"
- },
- options: {
- $ref: "#/definitions/operation"
- },
- head: {
- $ref: "#/definitions/operation"
- },
- patch: {
- $ref: "#/definitions/operation"
- },
- parameters: {
- $ref: "#/definitions/parametersList"
- }
- }
- },
- responses: {
- type: "object",
- description: "Response objects names can either be any valid HTTP status code or 'default'.",
- minProperties: 1,
- additionalProperties: false,
- patternProperties: {
- "^([0-9]{3})$|^(default)$": {
- $ref: "#/definitions/responseValue"
- },
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- },
- not: {
- type: "object",
- additionalProperties: false,
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- }
- }
- },
- responseValue: {
- oneOf: [
- {
- $ref: "#/definitions/response"
- },
- {
- $ref: "#/definitions/jsonReference"
- }
- ]
- },
- response: {
- type: "object",
- required: [
- "description"
- ],
- properties: {
- description: {
- type: "string"
- },
- schema: {
- oneOf: [
- {
- $ref: "#/definitions/schema"
- },
- {
- $ref: "#/definitions/fileSchema"
- }
- ]
- },
- headers: {
- $ref: "#/definitions/headers"
- },
- examples: {
- $ref: "#/definitions/examples"
- }
- },
- additionalProperties: false,
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- }
- },
- headers: {
- type: "object",
- additionalProperties: {
- $ref: "#/definitions/header"
- }
- },
- header: {
- type: "object",
- additionalProperties: false,
- required: [
- "type"
- ],
- properties: {
- type: {
- type: "string",
- enum: [
- "string",
- "number",
- "integer",
- "boolean",
- "array"
- ]
- },
- format: {
- type: "string"
- },
- items: {
- $ref: "#/definitions/primitivesItems"
- },
- collectionFormat: {
- $ref: "#/definitions/collectionFormat"
- },
- default: {
- $ref: "#/definitions/default"
- },
- maximum: {
- $ref: "#/definitions/maximum"
- },
- exclusiveMaximum: {
- $ref: "#/definitions/exclusiveMaximum"
- },
- minimum: {
- $ref: "#/definitions/minimum"
- },
- exclusiveMinimum: {
- $ref: "#/definitions/exclusiveMinimum"
- },
- maxLength: {
- $ref: "#/definitions/maxLength"
- },
- minLength: {
- $ref: "#/definitions/minLength"
- },
- pattern: {
- $ref: "#/definitions/pattern"
- },
- maxItems: {
- $ref: "#/definitions/maxItems"
- },
- minItems: {
- $ref: "#/definitions/minItems"
- },
- uniqueItems: {
- $ref: "#/definitions/uniqueItems"
- },
- enum: {
- $ref: "#/definitions/enum"
- },
- multipleOf: {
- $ref: "#/definitions/multipleOf"
- },
- description: {
- type: "string"
- }
- },
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- }
- },
- vendorExtension: {
- description: "Any property starting with x- is valid.",
- additionalProperties: true,
- additionalItems: true
- },
- bodyParameter: {
- type: "object",
- required: [
- "name",
- "in",
- "schema"
- ],
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- },
- properties: {
- description: {
- type: "string",
- description: "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
- },
- name: {
- type: "string",
- description: "The name of the parameter."
- },
- in: {
- type: "string",
- description: "Determines the location of the parameter.",
- enum: [
- "body"
- ]
- },
- required: {
- type: "boolean",
- description: "Determines whether or not this parameter is required or optional.",
- default: false
- },
- schema: {
- $ref: "#/definitions/schema"
- }
- },
- additionalProperties: false
- },
- headerParameterSubSchema: {
- additionalProperties: false,
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- },
- properties: {
- required: {
- type: "boolean",
- description: "Determines whether or not this parameter is required or optional.",
- default: false
- },
- in: {
- type: "string",
- description: "Determines the location of the parameter.",
- enum: [
- "header"
- ]
- },
- description: {
- type: "string",
- description: "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
- },
- name: {
- type: "string",
- description: "The name of the parameter."
- },
- type: {
- type: "string",
- enum: [
- "string",
- "number",
- "boolean",
- "integer",
- "array"
- ]
- },
- format: {
- type: "string"
- },
- items: {
- $ref: "#/definitions/primitivesItems"
- },
- collectionFormat: {
- $ref: "#/definitions/collectionFormat"
- },
- default: {
- $ref: "#/definitions/default"
- },
- maximum: {
- $ref: "#/definitions/maximum"
- },
- exclusiveMaximum: {
- $ref: "#/definitions/exclusiveMaximum"
- },
- minimum: {
- $ref: "#/definitions/minimum"
- },
- exclusiveMinimum: {
- $ref: "#/definitions/exclusiveMinimum"
- },
- maxLength: {
- $ref: "#/definitions/maxLength"
- },
- minLength: {
- $ref: "#/definitions/minLength"
- },
- pattern: {
- $ref: "#/definitions/pattern"
- },
- maxItems: {
- $ref: "#/definitions/maxItems"
- },
- minItems: {
- $ref: "#/definitions/minItems"
- },
- uniqueItems: {
- $ref: "#/definitions/uniqueItems"
- },
- enum: {
- $ref: "#/definitions/enum"
- },
- multipleOf: {
- $ref: "#/definitions/multipleOf"
- }
- }
- },
- queryParameterSubSchema: {
- additionalProperties: false,
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- },
- properties: {
- required: {
- type: "boolean",
- description: "Determines whether or not this parameter is required or optional.",
- default: false
- },
- in: {
- type: "string",
- description: "Determines the location of the parameter.",
- enum: [
- "query"
- ]
- },
- description: {
- type: "string",
- description: "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
- },
- name: {
- type: "string",
- description: "The name of the parameter."
- },
- allowEmptyValue: {
- type: "boolean",
- default: false,
- description: "allows sending a parameter by name only or with an empty value."
- },
- type: {
- type: "string",
- enum: [
- "string",
- "number",
- "boolean",
- "integer",
- "array"
- ]
- },
- format: {
- type: "string"
- },
- items: {
- $ref: "#/definitions/primitivesItems"
- },
- collectionFormat: {
- $ref: "#/definitions/collectionFormatWithMulti"
- },
- default: {
- $ref: "#/definitions/default"
- },
- maximum: {
- $ref: "#/definitions/maximum"
- },
- exclusiveMaximum: {
- $ref: "#/definitions/exclusiveMaximum"
- },
- minimum: {
- $ref: "#/definitions/minimum"
- },
- exclusiveMinimum: {
- $ref: "#/definitions/exclusiveMinimum"
- },
- maxLength: {
- $ref: "#/definitions/maxLength"
- },
- minLength: {
- $ref: "#/definitions/minLength"
- },
- pattern: {
- $ref: "#/definitions/pattern"
- },
- maxItems: {
- $ref: "#/definitions/maxItems"
- },
- minItems: {
- $ref: "#/definitions/minItems"
- },
- uniqueItems: {
- $ref: "#/definitions/uniqueItems"
- },
- enum: {
- $ref: "#/definitions/enum"
- },
- multipleOf: {
- $ref: "#/definitions/multipleOf"
- }
- }
- },
- formDataParameterSubSchema: {
- additionalProperties: false,
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- },
- properties: {
- required: {
- type: "boolean",
- description: "Determines whether or not this parameter is required or optional.",
- default: false
- },
- in: {
- type: "string",
- description: "Determines the location of the parameter.",
- enum: [
- "formData"
- ]
- },
- description: {
- type: "string",
- description: "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
- },
- name: {
- type: "string",
- description: "The name of the parameter."
- },
- allowEmptyValue: {
- type: "boolean",
- default: false,
- description: "allows sending a parameter by name only or with an empty value."
- },
- type: {
- type: "string",
- enum: [
- "string",
- "number",
- "boolean",
- "integer",
- "array",
- "file"
- ]
- },
- format: {
- type: "string"
- },
- items: {
- $ref: "#/definitions/primitivesItems"
- },
- collectionFormat: {
- $ref: "#/definitions/collectionFormatWithMulti"
- },
- default: {
- $ref: "#/definitions/default"
- },
- maximum: {
- $ref: "#/definitions/maximum"
- },
- exclusiveMaximum: {
- $ref: "#/definitions/exclusiveMaximum"
- },
- minimum: {
- $ref: "#/definitions/minimum"
- },
- exclusiveMinimum: {
- $ref: "#/definitions/exclusiveMinimum"
- },
- maxLength: {
- $ref: "#/definitions/maxLength"
- },
- minLength: {
- $ref: "#/definitions/minLength"
- },
- pattern: {
- $ref: "#/definitions/pattern"
- },
- maxItems: {
- $ref: "#/definitions/maxItems"
- },
- minItems: {
- $ref: "#/definitions/minItems"
- },
- uniqueItems: {
- $ref: "#/definitions/uniqueItems"
- },
- enum: {
- $ref: "#/definitions/enum"
- },
- multipleOf: {
- $ref: "#/definitions/multipleOf"
- }
- }
- },
- pathParameterSubSchema: {
- additionalProperties: false,
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- },
- required: [
- "required"
- ],
- properties: {
- required: {
- type: "boolean",
- enum: [
- true
- ],
- description: "Determines whether or not this parameter is required or optional."
- },
- in: {
- type: "string",
- description: "Determines the location of the parameter.",
- enum: [
- "path"
- ]
- },
- description: {
- type: "string",
- description: "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
- },
- name: {
- type: "string",
- description: "The name of the parameter."
- },
- type: {
- type: "string",
- enum: [
- "string",
- "number",
- "boolean",
- "integer",
- "array"
- ]
- },
- format: {
- type: "string"
- },
- items: {
- $ref: "#/definitions/primitivesItems"
- },
- collectionFormat: {
- $ref: "#/definitions/collectionFormat"
- },
- default: {
- $ref: "#/definitions/default"
- },
- maximum: {
- $ref: "#/definitions/maximum"
- },
- exclusiveMaximum: {
- $ref: "#/definitions/exclusiveMaximum"
- },
- minimum: {
- $ref: "#/definitions/minimum"
- },
- exclusiveMinimum: {
- $ref: "#/definitions/exclusiveMinimum"
- },
- maxLength: {
- $ref: "#/definitions/maxLength"
- },
- minLength: {
- $ref: "#/definitions/minLength"
- },
- pattern: {
- $ref: "#/definitions/pattern"
- },
- maxItems: {
- $ref: "#/definitions/maxItems"
- },
- minItems: {
- $ref: "#/definitions/minItems"
- },
- uniqueItems: {
- $ref: "#/definitions/uniqueItems"
- },
- enum: {
- $ref: "#/definitions/enum"
- },
- multipleOf: {
- $ref: "#/definitions/multipleOf"
- }
- }
- },
- nonBodyParameter: {
- type: "object",
- required: [
- "name",
- "in",
- "type"
- ],
- oneOf: [
- {
- $ref: "#/definitions/headerParameterSubSchema"
- },
- {
- $ref: "#/definitions/formDataParameterSubSchema"
- },
- {
- $ref: "#/definitions/queryParameterSubSchema"
- },
- {
- $ref: "#/definitions/pathParameterSubSchema"
- }
- ]
- },
- parameter: {
- oneOf: [
- {
- $ref: "#/definitions/bodyParameter"
- },
- {
- $ref: "#/definitions/nonBodyParameter"
- }
- ]
- },
- schema: {
- type: "object",
- description: "A deterministic version of a JSON Schema object.",
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- },
- properties: {
- $ref: {
- type: "string"
- },
- format: {
- type: "string"
- },
- title: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/title"
- },
- description: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/description"
- },
- default: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/default"
- },
- multipleOf: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/multipleOf"
- },
- maximum: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/maximum"
- },
- exclusiveMaximum: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"
- },
- minimum: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/minimum"
- },
- exclusiveMinimum: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"
- },
- maxLength: {
- $ref: "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
- },
- minLength: {
- $ref: "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
- },
- pattern: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/pattern"
- },
- maxItems: {
- $ref: "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
- },
- minItems: {
- $ref: "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
- },
- uniqueItems: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/uniqueItems"
- },
- maxProperties: {
- $ref: "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
- },
- minProperties: {
- $ref: "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
- },
- required: {
- $ref: "http://json-schema.org/draft-04/schema#/definitions/stringArray"
- },
- enum: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/enum"
- },
- additionalProperties: {
- anyOf: [
- {
- $ref: "#/definitions/schema"
- },
- {
- type: "boolean"
- }
- ],
- default: {}
- },
- type: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/type"
- },
- items: {
- anyOf: [
- {
- $ref: "#/definitions/schema"
- },
- {
- type: "array",
- minItems: 1,
- items: {
- $ref: "#/definitions/schema"
- }
- }
- ],
- default: {}
- },
- allOf: {
- type: "array",
- minItems: 1,
- items: {
- $ref: "#/definitions/schema"
- }
- },
- properties: {
- type: "object",
- additionalProperties: {
- $ref: "#/definitions/schema"
- },
- default: {}
- },
- discriminator: {
- type: "string"
- },
- readOnly: {
- type: "boolean",
- default: false
- },
- xml: {
- $ref: "#/definitions/xml"
- },
- externalDocs: {
- $ref: "#/definitions/externalDocs"
- },
- example: {}
- },
- additionalProperties: false
- },
- fileSchema: {
- type: "object",
- description: "A deterministic version of a JSON Schema object.",
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- },
- required: [
- "type"
- ],
- properties: {
- format: {
- type: "string"
- },
- title: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/title"
- },
- description: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/description"
- },
- default: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/default"
- },
- required: {
- $ref: "http://json-schema.org/draft-04/schema#/definitions/stringArray"
- },
- type: {
- type: "string",
- enum: [
- "file"
- ]
- },
- readOnly: {
- type: "boolean",
- default: false
- },
- externalDocs: {
- $ref: "#/definitions/externalDocs"
- },
- example: {}
- },
- additionalProperties: false
- },
- primitivesItems: {
- type: "object",
- additionalProperties: false,
- properties: {
- type: {
- type: "string",
- enum: [
- "string",
- "number",
- "integer",
- "boolean",
- "array"
- ]
- },
- format: {
- type: "string"
- },
- items: {
- $ref: "#/definitions/primitivesItems"
- },
- collectionFormat: {
- $ref: "#/definitions/collectionFormat"
- },
- default: {
- $ref: "#/definitions/default"
- },
- maximum: {
- $ref: "#/definitions/maximum"
- },
- exclusiveMaximum: {
- $ref: "#/definitions/exclusiveMaximum"
- },
- minimum: {
- $ref: "#/definitions/minimum"
- },
- exclusiveMinimum: {
- $ref: "#/definitions/exclusiveMinimum"
- },
- maxLength: {
- $ref: "#/definitions/maxLength"
- },
- minLength: {
- $ref: "#/definitions/minLength"
- },
- pattern: {
- $ref: "#/definitions/pattern"
- },
- maxItems: {
- $ref: "#/definitions/maxItems"
- },
- minItems: {
- $ref: "#/definitions/minItems"
- },
- uniqueItems: {
- $ref: "#/definitions/uniqueItems"
- },
- enum: {
- $ref: "#/definitions/enum"
- },
- multipleOf: {
- $ref: "#/definitions/multipleOf"
- }
- },
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- }
- },
- security: {
- type: "array",
- items: {
- $ref: "#/definitions/securityRequirement"
- },
- uniqueItems: true
- },
- securityRequirement: {
- type: "object",
- additionalProperties: {
- type: "array",
- items: {
- type: "string"
- },
- uniqueItems: true
- }
- },
- xml: {
- type: "object",
- additionalProperties: false,
- properties: {
- name: {
- type: "string"
- },
- namespace: {
- type: "string"
- },
- prefix: {
- type: "string"
- },
- attribute: {
- type: "boolean",
- default: false
- },
- wrapped: {
- type: "boolean",
- default: false
- }
- },
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- }
- },
- tag: {
- type: "object",
- additionalProperties: false,
- required: [
- "name"
- ],
- properties: {
- name: {
- type: "string"
- },
- description: {
- type: "string"
- },
- externalDocs: {
- $ref: "#/definitions/externalDocs"
- }
- },
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- }
- },
- securityDefinitions: {
- type: "object",
- additionalProperties: {
- oneOf: [
- {
- $ref: "#/definitions/basicAuthenticationSecurity"
- },
- {
- $ref: "#/definitions/apiKeySecurity"
- },
- {
- $ref: "#/definitions/oauth2ImplicitSecurity"
- },
- {
- $ref: "#/definitions/oauth2PasswordSecurity"
- },
- {
- $ref: "#/definitions/oauth2ApplicationSecurity"
- },
- {
- $ref: "#/definitions/oauth2AccessCodeSecurity"
- }
- ]
- }
- },
- basicAuthenticationSecurity: {
- type: "object",
- additionalProperties: false,
- required: [
- "type"
- ],
- properties: {
- type: {
- type: "string",
- enum: [
- "basic"
- ]
- },
- description: {
- type: "string"
- }
- },
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- }
- },
- apiKeySecurity: {
- type: "object",
- additionalProperties: false,
- required: [
- "type",
- "name",
- "in"
- ],
- properties: {
- type: {
- type: "string",
- enum: [
- "apiKey"
- ]
- },
- name: {
- type: "string"
- },
- in: {
- type: "string",
- enum: [
- "header",
- "query"
- ]
- },
- description: {
- type: "string"
- }
- },
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- }
- },
- oauth2ImplicitSecurity: {
- type: "object",
- additionalProperties: false,
- required: [
- "type",
- "flow",
- "authorizationUrl"
- ],
- properties: {
- type: {
- type: "string",
- enum: [
- "oauth2"
- ]
- },
- flow: {
- type: "string",
- enum: [
- "implicit"
- ]
- },
- scopes: {
- $ref: "#/definitions/oauth2Scopes"
- },
- authorizationUrl: {
- type: "string",
- format: "uri"
- },
- description: {
- type: "string"
- }
- },
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- }
- },
- oauth2PasswordSecurity: {
- type: "object",
- additionalProperties: false,
- required: [
- "type",
- "flow",
- "tokenUrl"
- ],
- properties: {
- type: {
- type: "string",
- enum: [
- "oauth2"
- ]
- },
- flow: {
- type: "string",
- enum: [
- "password"
- ]
- },
- scopes: {
- $ref: "#/definitions/oauth2Scopes"
- },
- tokenUrl: {
- type: "string",
- format: "uri"
- },
- description: {
- type: "string"
- }
- },
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- }
- },
- oauth2ApplicationSecurity: {
- type: "object",
- additionalProperties: false,
- required: [
- "type",
- "flow",
- "tokenUrl"
- ],
- properties: {
- type: {
- type: "string",
- enum: [
- "oauth2"
- ]
- },
- flow: {
- type: "string",
- enum: [
- "application"
- ]
- },
- scopes: {
- $ref: "#/definitions/oauth2Scopes"
- },
- tokenUrl: {
- type: "string",
- format: "uri"
- },
- description: {
- type: "string"
- }
- },
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- }
- },
- oauth2AccessCodeSecurity: {
- type: "object",
- additionalProperties: false,
- required: [
- "type",
- "flow",
- "authorizationUrl",
- "tokenUrl"
- ],
- properties: {
- type: {
- type: "string",
- enum: [
- "oauth2"
- ]
- },
- flow: {
- type: "string",
- enum: [
- "accessCode"
- ]
- },
- scopes: {
- $ref: "#/definitions/oauth2Scopes"
- },
- authorizationUrl: {
- type: "string",
- format: "uri"
- },
- tokenUrl: {
- type: "string",
- format: "uri"
- },
- description: {
- type: "string"
- }
- },
- patternProperties: {
- "^x-": {
- $ref: "#/definitions/vendorExtension"
- }
- }
- },
- oauth2Scopes: {
- type: "object",
- additionalProperties: {
- type: "string"
- }
- },
- mediaTypeList: {
- type: "array",
- items: {
- $ref: "#/definitions/mimeType"
- },
- uniqueItems: true
- },
- parametersList: {
- type: "array",
- description: "The parameters needed to send a valid API call.",
- additionalItems: false,
- items: {
- oneOf: [
- {
- $ref: "#/definitions/parameter"
- },
- {
- $ref: "#/definitions/jsonReference"
- }
- ]
- },
- uniqueItems: true
- },
- schemesList: {
- type: "array",
- description: "The transfer protocol of the API.",
- items: {
- type: "string",
- enum: [
- "http",
- "https",
- "ws",
- "wss"
- ]
- },
- uniqueItems: true
- },
- collectionFormat: {
- type: "string",
- enum: [
- "csv",
- "ssv",
- "tsv",
- "pipes"
- ],
- default: "csv"
- },
- collectionFormatWithMulti: {
- type: "string",
- enum: [
- "csv",
- "ssv",
- "tsv",
- "pipes",
- "multi"
- ],
- default: "csv"
- },
- title: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/title"
- },
- description: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/description"
- },
- default: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/default"
- },
- multipleOf: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/multipleOf"
- },
- maximum: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/maximum"
- },
- exclusiveMaximum: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"
- },
- minimum: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/minimum"
- },
- exclusiveMinimum: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"
- },
- maxLength: {
- $ref: "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
- },
- minLength: {
- $ref: "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
- },
- pattern: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/pattern"
- },
- maxItems: {
- $ref: "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
- },
- minItems: {
- $ref: "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
- },
- uniqueItems: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/uniqueItems"
- },
- enum: {
- $ref: "http://json-schema.org/draft-04/schema#/properties/enum"
- },
- jsonReference: {
- type: "object",
- required: [
- "$ref"
- ],
- additionalProperties: false,
- properties: {
- $ref: {
- type: "string"
- }
- }
- }
- }
- };
- }
- });
- // node_modules/@apidevtools/openapi-schemas/schemas/v3.0/schema.json
- var require_schema3 = __commonJS({
- "node_modules/@apidevtools/openapi-schemas/schemas/v3.0/schema.json"(exports2, module2) {
- module2.exports = {
- id: "https://spec.openapis.org/oas/3.0/schema/2019-04-02",
- $schema: "http://json-schema.org/draft-04/schema#",
- description: "Validation schema for OpenAPI Specification 3.0.X.",
- type: "object",
- required: [
- "openapi",
- "info",
- "paths"
- ],
- properties: {
- openapi: {
- type: "string",
- pattern: "^3\\.0\\.\\d(-.+)?$"
- },
- info: {
- $ref: "#/definitions/Info"
- },
- externalDocs: {
- $ref: "#/definitions/ExternalDocumentation"
- },
- servers: {
- type: "array",
- items: {
- $ref: "#/definitions/Server"
- }
- },
- security: {
- type: "array",
- items: {
- $ref: "#/definitions/SecurityRequirement"
- }
- },
- tags: {
- type: "array",
- items: {
- $ref: "#/definitions/Tag"
- },
- uniqueItems: true
- },
- paths: {
- $ref: "#/definitions/Paths"
- },
- components: {
- $ref: "#/definitions/Components"
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false,
- definitions: {
- Reference: {
- type: "object",
- required: [
- "$ref"
- ],
- patternProperties: {
- "^\\$ref$": {
- type: "string",
- format: "uri-reference"
- }
- }
- },
- Info: {
- type: "object",
- required: [
- "title",
- "version"
- ],
- properties: {
- title: {
- type: "string"
- },
- description: {
- type: "string"
- },
- termsOfService: {
- type: "string",
- format: "uri-reference"
- },
- contact: {
- $ref: "#/definitions/Contact"
- },
- license: {
- $ref: "#/definitions/License"
- },
- version: {
- type: "string"
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- Contact: {
- type: "object",
- properties: {
- name: {
- type: "string"
- },
- url: {
- type: "string",
- format: "uri-reference"
- },
- email: {
- type: "string",
- format: "email"
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- License: {
- type: "object",
- required: [
- "name"
- ],
- properties: {
- name: {
- type: "string"
- },
- url: {
- type: "string",
- format: "uri-reference"
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- Server: {
- type: "object",
- required: [
- "url"
- ],
- properties: {
- url: {
- type: "string"
- },
- description: {
- type: "string"
- },
- variables: {
- type: "object",
- additionalProperties: {
- $ref: "#/definitions/ServerVariable"
- }
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- ServerVariable: {
- type: "object",
- required: [
- "default"
- ],
- properties: {
- enum: {
- type: "array",
- items: {
- type: "string"
- }
- },
- default: {
- type: "string"
- },
- description: {
- type: "string"
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- Components: {
- type: "object",
- properties: {
- schemas: {
- type: "object",
- patternProperties: {
- "^[a-zA-Z0-9\\.\\-_]+$": {
- oneOf: [
- {
- $ref: "#/definitions/Schema"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- }
- }
- },
- responses: {
- type: "object",
- patternProperties: {
- "^[a-zA-Z0-9\\.\\-_]+$": {
- oneOf: [
- {
- $ref: "#/definitions/Reference"
- },
- {
- $ref: "#/definitions/Response"
- }
- ]
- }
- }
- },
- parameters: {
- type: "object",
- patternProperties: {
- "^[a-zA-Z0-9\\.\\-_]+$": {
- oneOf: [
- {
- $ref: "#/definitions/Reference"
- },
- {
- $ref: "#/definitions/Parameter"
- }
- ]
- }
- }
- },
- examples: {
- type: "object",
- patternProperties: {
- "^[a-zA-Z0-9\\.\\-_]+$": {
- oneOf: [
- {
- $ref: "#/definitions/Reference"
- },
- {
- $ref: "#/definitions/Example"
- }
- ]
- }
- }
- },
- requestBodies: {
- type: "object",
- patternProperties: {
- "^[a-zA-Z0-9\\.\\-_]+$": {
- oneOf: [
- {
- $ref: "#/definitions/Reference"
- },
- {
- $ref: "#/definitions/RequestBody"
- }
- ]
- }
- }
- },
- headers: {
- type: "object",
- patternProperties: {
- "^[a-zA-Z0-9\\.\\-_]+$": {
- oneOf: [
- {
- $ref: "#/definitions/Reference"
- },
- {
- $ref: "#/definitions/Header"
- }
- ]
- }
- }
- },
- securitySchemes: {
- type: "object",
- patternProperties: {
- "^[a-zA-Z0-9\\.\\-_]+$": {
- oneOf: [
- {
- $ref: "#/definitions/Reference"
- },
- {
- $ref: "#/definitions/SecurityScheme"
- }
- ]
- }
- }
- },
- links: {
- type: "object",
- patternProperties: {
- "^[a-zA-Z0-9\\.\\-_]+$": {
- oneOf: [
- {
- $ref: "#/definitions/Reference"
- },
- {
- $ref: "#/definitions/Link"
- }
- ]
- }
- }
- },
- callbacks: {
- type: "object",
- patternProperties: {
- "^[a-zA-Z0-9\\.\\-_]+$": {
- oneOf: [
- {
- $ref: "#/definitions/Reference"
- },
- {
- $ref: "#/definitions/Callback"
- }
- ]
- }
- }
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- Schema: {
- type: "object",
- properties: {
- title: {
- type: "string"
- },
- multipleOf: {
- type: "number",
- minimum: 0,
- exclusiveMinimum: true
- },
- maximum: {
- type: "number"
- },
- exclusiveMaximum: {
- type: "boolean",
- default: false
- },
- minimum: {
- type: "number"
- },
- exclusiveMinimum: {
- type: "boolean",
- default: false
- },
- maxLength: {
- type: "integer",
- minimum: 0
- },
- minLength: {
- type: "integer",
- minimum: 0,
- default: 0
- },
- pattern: {
- type: "string",
- format: "regex"
- },
- maxItems: {
- type: "integer",
- minimum: 0
- },
- minItems: {
- type: "integer",
- minimum: 0,
- default: 0
- },
- uniqueItems: {
- type: "boolean",
- default: false
- },
- maxProperties: {
- type: "integer",
- minimum: 0
- },
- minProperties: {
- type: "integer",
- minimum: 0,
- default: 0
- },
- required: {
- type: "array",
- items: {
- type: "string"
- },
- minItems: 1,
- uniqueItems: true
- },
- enum: {
- type: "array",
- items: {},
- minItems: 1,
- uniqueItems: false
- },
- type: {
- type: "string",
- enum: [
- "array",
- "boolean",
- "integer",
- "number",
- "object",
- "string"
- ]
- },
- not: {
- oneOf: [
- {
- $ref: "#/definitions/Schema"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- },
- allOf: {
- type: "array",
- items: {
- oneOf: [
- {
- $ref: "#/definitions/Schema"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- }
- },
- oneOf: {
- type: "array",
- items: {
- oneOf: [
- {
- $ref: "#/definitions/Schema"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- }
- },
- anyOf: {
- type: "array",
- items: {
- oneOf: [
- {
- $ref: "#/definitions/Schema"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- }
- },
- items: {
- oneOf: [
- {
- $ref: "#/definitions/Schema"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- },
- properties: {
- type: "object",
- additionalProperties: {
- oneOf: [
- {
- $ref: "#/definitions/Schema"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- }
- },
- additionalProperties: {
- oneOf: [
- {
- $ref: "#/definitions/Schema"
- },
- {
- $ref: "#/definitions/Reference"
- },
- {
- type: "boolean"
- }
- ],
- default: true
- },
- description: {
- type: "string"
- },
- format: {
- type: "string"
- },
- default: {},
- nullable: {
- type: "boolean",
- default: false
- },
- discriminator: {
- $ref: "#/definitions/Discriminator"
- },
- readOnly: {
- type: "boolean",
- default: false
- },
- writeOnly: {
- type: "boolean",
- default: false
- },
- example: {},
- externalDocs: {
- $ref: "#/definitions/ExternalDocumentation"
- },
- deprecated: {
- type: "boolean",
- default: false
- },
- xml: {
- $ref: "#/definitions/XML"
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- Discriminator: {
- type: "object",
- required: [
- "propertyName"
- ],
- properties: {
- propertyName: {
- type: "string"
- },
- mapping: {
- type: "object",
- additionalProperties: {
- type: "string"
- }
- }
- }
- },
- XML: {
- type: "object",
- properties: {
- name: {
- type: "string"
- },
- namespace: {
- type: "string",
- format: "uri"
- },
- prefix: {
- type: "string"
- },
- attribute: {
- type: "boolean",
- default: false
- },
- wrapped: {
- type: "boolean",
- default: false
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- Response: {
- type: "object",
- required: [
- "description"
- ],
- properties: {
- description: {
- type: "string"
- },
- headers: {
- type: "object",
- additionalProperties: {
- oneOf: [
- {
- $ref: "#/definitions/Header"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- }
- },
- content: {
- type: "object",
- additionalProperties: {
- $ref: "#/definitions/MediaType"
- }
- },
- links: {
- type: "object",
- additionalProperties: {
- oneOf: [
- {
- $ref: "#/definitions/Link"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- }
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- MediaType: {
- type: "object",
- properties: {
- schema: {
- oneOf: [
- {
- $ref: "#/definitions/Schema"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- },
- example: {},
- examples: {
- type: "object",
- additionalProperties: {
- oneOf: [
- {
- $ref: "#/definitions/Example"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- }
- },
- encoding: {
- type: "object",
- additionalProperties: {
- $ref: "#/definitions/Encoding"
- }
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false,
- allOf: [
- {
- $ref: "#/definitions/ExampleXORExamples"
- }
- ]
- },
- Example: {
- type: "object",
- properties: {
- summary: {
- type: "string"
- },
- description: {
- type: "string"
- },
- value: {},
- externalValue: {
- type: "string",
- format: "uri-reference"
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- Header: {
- type: "object",
- properties: {
- description: {
- type: "string"
- },
- required: {
- type: "boolean",
- default: false
- },
- deprecated: {
- type: "boolean",
- default: false
- },
- allowEmptyValue: {
- type: "boolean",
- default: false
- },
- style: {
- type: "string",
- enum: [
- "simple"
- ],
- default: "simple"
- },
- explode: {
- type: "boolean"
- },
- allowReserved: {
- type: "boolean",
- default: false
- },
- schema: {
- oneOf: [
- {
- $ref: "#/definitions/Schema"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- },
- content: {
- type: "object",
- additionalProperties: {
- $ref: "#/definitions/MediaType"
- },
- minProperties: 1,
- maxProperties: 1
- },
- example: {},
- examples: {
- type: "object",
- additionalProperties: {
- oneOf: [
- {
- $ref: "#/definitions/Example"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- }
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false,
- allOf: [
- {
- $ref: "#/definitions/ExampleXORExamples"
- },
- {
- $ref: "#/definitions/SchemaXORContent"
- }
- ]
- },
- Paths: {
- type: "object",
- patternProperties: {
- "^\\/": {
- $ref: "#/definitions/PathItem"
- },
- "^x-": {}
- },
- additionalProperties: false
- },
- PathItem: {
- type: "object",
- properties: {
- $ref: {
- type: "string"
- },
- summary: {
- type: "string"
- },
- description: {
- type: "string"
- },
- servers: {
- type: "array",
- items: {
- $ref: "#/definitions/Server"
- }
- },
- parameters: {
- type: "array",
- items: {
- oneOf: [
- {
- $ref: "#/definitions/Parameter"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- },
- uniqueItems: true
- }
- },
- patternProperties: {
- "^(get|put|post|delete|options|head|patch|trace)$": {
- $ref: "#/definitions/Operation"
- },
- "^x-": {}
- },
- additionalProperties: false
- },
- Operation: {
- type: "object",
- required: [
- "responses"
- ],
- properties: {
- tags: {
- type: "array",
- items: {
- type: "string"
- }
- },
- summary: {
- type: "string"
- },
- description: {
- type: "string"
- },
- externalDocs: {
- $ref: "#/definitions/ExternalDocumentation"
- },
- operationId: {
- type: "string"
- },
- parameters: {
- type: "array",
- items: {
- oneOf: [
- {
- $ref: "#/definitions/Parameter"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- },
- uniqueItems: true
- },
- requestBody: {
- oneOf: [
- {
- $ref: "#/definitions/RequestBody"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- },
- responses: {
- $ref: "#/definitions/Responses"
- },
- callbacks: {
- type: "object",
- additionalProperties: {
- oneOf: [
- {
- $ref: "#/definitions/Callback"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- }
- },
- deprecated: {
- type: "boolean",
- default: false
- },
- security: {
- type: "array",
- items: {
- $ref: "#/definitions/SecurityRequirement"
- }
- },
- servers: {
- type: "array",
- items: {
- $ref: "#/definitions/Server"
- }
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- Responses: {
- type: "object",
- properties: {
- default: {
- oneOf: [
- {
- $ref: "#/definitions/Response"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- }
- },
- patternProperties: {
- "^[1-5](?:\\d{2}|XX)$": {
- oneOf: [
- {
- $ref: "#/definitions/Response"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- },
- "^x-": {}
- },
- minProperties: 1,
- additionalProperties: false
- },
- SecurityRequirement: {
- type: "object",
- additionalProperties: {
- type: "array",
- items: {
- type: "string"
- }
- }
- },
- Tag: {
- type: "object",
- required: [
- "name"
- ],
- properties: {
- name: {
- type: "string"
- },
- description: {
- type: "string"
- },
- externalDocs: {
- $ref: "#/definitions/ExternalDocumentation"
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- ExternalDocumentation: {
- type: "object",
- required: [
- "url"
- ],
- properties: {
- description: {
- type: "string"
- },
- url: {
- type: "string",
- format: "uri-reference"
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- ExampleXORExamples: {
- description: "Example and examples are mutually exclusive",
- not: {
- required: [
- "example",
- "examples"
- ]
- }
- },
- SchemaXORContent: {
- description: "Schema and content are mutually exclusive, at least one is required",
- not: {
- required: [
- "schema",
- "content"
- ]
- },
- oneOf: [
- {
- required: [
- "schema"
- ]
- },
- {
- required: [
- "content"
- ],
- description: "Some properties are not allowed if content is present",
- allOf: [
- {
- not: {
- required: [
- "style"
- ]
- }
- },
- {
- not: {
- required: [
- "explode"
- ]
- }
- },
- {
- not: {
- required: [
- "allowReserved"
- ]
- }
- },
- {
- not: {
- required: [
- "example"
- ]
- }
- },
- {
- not: {
- required: [
- "examples"
- ]
- }
- }
- ]
- }
- ]
- },
- Parameter: {
- type: "object",
- properties: {
- name: {
- type: "string"
- },
- in: {
- type: "string"
- },
- description: {
- type: "string"
- },
- required: {
- type: "boolean",
- default: false
- },
- deprecated: {
- type: "boolean",
- default: false
- },
- allowEmptyValue: {
- type: "boolean",
- default: false
- },
- style: {
- type: "string"
- },
- explode: {
- type: "boolean"
- },
- allowReserved: {
- type: "boolean",
- default: false
- },
- schema: {
- oneOf: [
- {
- $ref: "#/definitions/Schema"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- },
- content: {
- type: "object",
- additionalProperties: {
- $ref: "#/definitions/MediaType"
- },
- minProperties: 1,
- maxProperties: 1
- },
- example: {},
- examples: {
- type: "object",
- additionalProperties: {
- oneOf: [
- {
- $ref: "#/definitions/Example"
- },
- {
- $ref: "#/definitions/Reference"
- }
- ]
- }
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false,
- required: [
- "name",
- "in"
- ],
- allOf: [
- {
- $ref: "#/definitions/ExampleXORExamples"
- },
- {
- $ref: "#/definitions/SchemaXORContent"
- },
- {
- $ref: "#/definitions/ParameterLocation"
- }
- ]
- },
- ParameterLocation: {
- description: "Parameter location",
- oneOf: [
- {
- description: "Parameter in path",
- required: [
- "required"
- ],
- properties: {
- in: {
- enum: [
- "path"
- ]
- },
- style: {
- enum: [
- "matrix",
- "label",
- "simple"
- ],
- default: "simple"
- },
- required: {
- enum: [
- true
- ]
- }
- }
- },
- {
- description: "Parameter in query",
- properties: {
- in: {
- enum: [
- "query"
- ]
- },
- style: {
- enum: [
- "form",
- "spaceDelimited",
- "pipeDelimited",
- "deepObject"
- ],
- default: "form"
- }
- }
- },
- {
- description: "Parameter in header",
- properties: {
- in: {
- enum: [
- "header"
- ]
- },
- style: {
- enum: [
- "simple"
- ],
- default: "simple"
- }
- }
- },
- {
- description: "Parameter in cookie",
- properties: {
- in: {
- enum: [
- "cookie"
- ]
- },
- style: {
- enum: [
- "form"
- ],
- default: "form"
- }
- }
- }
- ]
- },
- RequestBody: {
- type: "object",
- required: [
- "content"
- ],
- properties: {
- description: {
- type: "string"
- },
- content: {
- type: "object",
- additionalProperties: {
- $ref: "#/definitions/MediaType"
- }
- },
- required: {
- type: "boolean",
- default: false
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- SecurityScheme: {
- oneOf: [
- {
- $ref: "#/definitions/APIKeySecurityScheme"
- },
- {
- $ref: "#/definitions/HTTPSecurityScheme"
- },
- {
- $ref: "#/definitions/OAuth2SecurityScheme"
- },
- {
- $ref: "#/definitions/OpenIdConnectSecurityScheme"
- }
- ]
- },
- APIKeySecurityScheme: {
- type: "object",
- required: [
- "type",
- "name",
- "in"
- ],
- properties: {
- type: {
- type: "string",
- enum: [
- "apiKey"
- ]
- },
- name: {
- type: "string"
- },
- in: {
- type: "string",
- enum: [
- "header",
- "query",
- "cookie"
- ]
- },
- description: {
- type: "string"
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- HTTPSecurityScheme: {
- type: "object",
- required: [
- "scheme",
- "type"
- ],
- properties: {
- scheme: {
- type: "string"
- },
- bearerFormat: {
- type: "string"
- },
- description: {
- type: "string"
- },
- type: {
- type: "string",
- enum: [
- "http"
- ]
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false,
- oneOf: [
- {
- description: "Bearer",
- properties: {
- scheme: {
- enum: [
- "bearer"
- ]
- }
- }
- },
- {
- description: "Non Bearer",
- not: {
- required: [
- "bearerFormat"
- ]
- },
- properties: {
- scheme: {
- not: {
- enum: [
- "bearer"
- ]
- }
- }
- }
- }
- ]
- },
- OAuth2SecurityScheme: {
- type: "object",
- required: [
- "type",
- "flows"
- ],
- properties: {
- type: {
- type: "string",
- enum: [
- "oauth2"
- ]
- },
- flows: {
- $ref: "#/definitions/OAuthFlows"
- },
- description: {
- type: "string"
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- OpenIdConnectSecurityScheme: {
- type: "object",
- required: [
- "type",
- "openIdConnectUrl"
- ],
- properties: {
- type: {
- type: "string",
- enum: [
- "openIdConnect"
- ]
- },
- openIdConnectUrl: {
- type: "string",
- format: "uri-reference"
- },
- description: {
- type: "string"
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- OAuthFlows: {
- type: "object",
- properties: {
- implicit: {
- $ref: "#/definitions/ImplicitOAuthFlow"
- },
- password: {
- $ref: "#/definitions/PasswordOAuthFlow"
- },
- clientCredentials: {
- $ref: "#/definitions/ClientCredentialsFlow"
- },
- authorizationCode: {
- $ref: "#/definitions/AuthorizationCodeOAuthFlow"
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- ImplicitOAuthFlow: {
- type: "object",
- required: [
- "authorizationUrl",
- "scopes"
- ],
- properties: {
- authorizationUrl: {
- type: "string",
- format: "uri-reference"
- },
- refreshUrl: {
- type: "string",
- format: "uri-reference"
- },
- scopes: {
- type: "object",
- additionalProperties: {
- type: "string"
- }
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- PasswordOAuthFlow: {
- type: "object",
- required: [
- "tokenUrl"
- ],
- properties: {
- tokenUrl: {
- type: "string",
- format: "uri-reference"
- },
- refreshUrl: {
- type: "string",
- format: "uri-reference"
- },
- scopes: {
- type: "object",
- additionalProperties: {
- type: "string"
- }
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- ClientCredentialsFlow: {
- type: "object",
- required: [
- "tokenUrl"
- ],
- properties: {
- tokenUrl: {
- type: "string",
- format: "uri-reference"
- },
- refreshUrl: {
- type: "string",
- format: "uri-reference"
- },
- scopes: {
- type: "object",
- additionalProperties: {
- type: "string"
- }
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- AuthorizationCodeOAuthFlow: {
- type: "object",
- required: [
- "authorizationUrl",
- "tokenUrl"
- ],
- properties: {
- authorizationUrl: {
- type: "string",
- format: "uri-reference"
- },
- tokenUrl: {
- type: "string",
- format: "uri-reference"
- },
- refreshUrl: {
- type: "string",
- format: "uri-reference"
- },
- scopes: {
- type: "object",
- additionalProperties: {
- type: "string"
- }
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false
- },
- Link: {
- type: "object",
- properties: {
- operationId: {
- type: "string"
- },
- operationRef: {
- type: "string",
- format: "uri-reference"
- },
- parameters: {
- type: "object",
- additionalProperties: {}
- },
- requestBody: {},
- description: {
- type: "string"
- },
- server: {
- $ref: "#/definitions/Server"
- }
- },
- patternProperties: {
- "^x-": {}
- },
- additionalProperties: false,
- not: {
- description: "Operation Id and Operation Ref are mutually exclusive",
- required: [
- "operationId",
- "operationRef"
- ]
- }
- },
- Callback: {
- type: "object",
- additionalProperties: {
- $ref: "#/definitions/PathItem"
- },
- patternProperties: {
- "^x-": {}
- }
- },
- Encoding: {
- type: "object",
- properties: {
- contentType: {
- type: "string"
- },
- headers: {
- type: "object",
- additionalProperties: {
- $ref: "#/definitions/Header"
- }
- },
- style: {
- type: "string",
- enum: [
- "form",
- "spaceDelimited",
- "pipeDelimited",
- "deepObject"
- ]
- },
- explode: {
- type: "boolean"
- },
- allowReserved: {
- type: "boolean",
- default: false
- }
- },
- additionalProperties: false
- }
- }
- };
- }
- });
- // node_modules/@apidevtools/openapi-schemas/schemas/v3.1/schema.json
- var require_schema4 = __commonJS({
- "node_modules/@apidevtools/openapi-schemas/schemas/v3.1/schema.json"(exports2, module2) {
- module2.exports = {
- $id: "https://spec.openapis.org/oas/3.1/schema/2021-04-15",
- $schema: "https://json-schema.org/draft/2020-12/schema",
- type: "object",
- properties: {
- openapi: {
- type: "string",
- pattern: "^3\\.1\\.\\d+(-.+)?$"
- },
- info: {
- $ref: "#/$defs/info"
- },
- jsonSchemaDialect: {
- $ref: "#/$defs/uri",
- default: "https://spec.openapis.org/oas/3.1/dialect/base"
- },
- servers: {
- type: "array",
- items: {
- $ref: "#/$defs/server"
- }
- },
- paths: {
- $ref: "#/$defs/paths"
- },
- webhooks: {
- type: "object",
- additionalProperties: {
- $ref: "#/$defs/path-item-or-reference"
- }
- },
- components: {
- $ref: "#/$defs/components"
- },
- security: {
- type: "array",
- items: {
- $ref: "#/$defs/security-requirement"
- }
- },
- tags: {
- type: "array",
- items: {
- $ref: "#/$defs/tag"
- }
- },
- externalDocs: {
- $ref: "#/$defs/external-documentation"
- }
- },
- required: [
- "openapi",
- "info"
- ],
- anyOf: [
- {
- required: [
- "paths"
- ]
- },
- {
- required: [
- "components"
- ]
- },
- {
- required: [
- "webhooks"
- ]
- }
- ],
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false,
- $defs: {
- info: {
- type: "object",
- properties: {
- title: {
- type: "string"
- },
- summary: {
- type: "string"
- },
- description: {
- type: "string"
- },
- termsOfService: {
- type: "string"
- },
- contact: {
- $ref: "#/$defs/contact"
- },
- license: {
- $ref: "#/$defs/license"
- },
- version: {
- type: "string"
- }
- },
- required: [
- "title",
- "version"
- ],
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- contact: {
- type: "object",
- properties: {
- name: {
- type: "string"
- },
- url: {
- type: "string"
- },
- email: {
- type: "string"
- }
- },
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- license: {
- type: "object",
- properties: {
- name: {
- type: "string"
- },
- identifier: {
- type: "string"
- },
- url: {
- $ref: "#/$defs/uri"
- }
- },
- required: [
- "name"
- ],
- oneOf: [
- {
- required: [
- "identifier"
- ]
- },
- {
- required: [
- "url"
- ]
- }
- ],
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- server: {
- type: "object",
- properties: {
- url: {
- $ref: "#/$defs/uri"
- },
- description: {
- type: "string"
- },
- variables: {
- type: "object",
- additionalProperties: {
- $ref: "#/$defs/server-variable"
- }
- }
- },
- required: [
- "url"
- ],
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- "server-variable": {
- type: "object",
- properties: {
- enum: {
- type: "array",
- items: {
- type: "string"
- },
- minItems: 1
- },
- default: {
- type: "string"
- },
- descriptions: {
- type: "string"
- }
- },
- required: [
- "default"
- ],
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- components: {
- type: "object",
- properties: {
- schemas: {
- type: "object",
- additionalProperties: {
- $dynamicRef: "#meta"
- }
- },
- responses: {
- type: "object",
- additionalProperties: {
- $ref: "#/$defs/response-or-reference"
- }
- },
- parameters: {
- type: "object",
- additionalProperties: {
- $ref: "#/$defs/parameter-or-reference"
- }
- },
- examples: {
- type: "object",
- additionalProperties: {
- $ref: "#/$defs/example-or-reference"
- }
- },
- requestBodies: {
- type: "object",
- additionalProperties: {
- $ref: "#/$defs/request-body-or-reference"
- }
- },
- headers: {
- type: "object",
- additionalProperties: {
- $ref: "#/$defs/header-or-reference"
- }
- },
- securitySchemes: {
- type: "object",
- additionalProperties: {
- $ref: "#/$defs/security-scheme-or-reference"
- }
- },
- links: {
- type: "object",
- additionalProperties: {
- $ref: "#/$defs/link-or-reference"
- }
- },
- callbacks: {
- type: "object",
- additionalProperties: {
- $ref: "#/$defs/callbacks-or-reference"
- }
- },
- pathItems: {
- type: "object",
- additionalProperties: {
- $ref: "#/$defs/path-item-or-reference"
- }
- }
- },
- patternProperties: {
- "^(schemas|responses|parameters|examples|requestBodies|headers|securitySchemes|links|callbacks|pathItems)$": {
- $comment: "Enumerating all of the property names in the regex above is necessary for unevaluatedProperties to work as expected",
- propertyNames: {
- pattern: "^[a-zA-Z0-9._-]+$"
- }
- }
- },
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- paths: {
- type: "object",
- patternProperties: {
- "^/": {
- $ref: "#/$defs/path-item"
- }
- },
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- "path-item": {
- type: "object",
- properties: {
- summary: {
- type: "string"
- },
- description: {
- type: "string"
- },
- servers: {
- type: "array",
- items: {
- $ref: "#/$defs/server"
- }
- },
- parameters: {
- type: "array",
- items: {
- $ref: "#/$defs/parameter-or-reference"
- }
- }
- },
- patternProperties: {
- "^(get|put|post|delete|options|head|patch|trace)$": {
- $ref: "#/$defs/operation"
- }
- },
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- "path-item-or-reference": {
- if: {
- required: [
- "$ref"
- ]
- },
- then: {
- $ref: "#/$defs/reference"
- },
- else: {
- $ref: "#/$defs/path-item"
- }
- },
- operation: {
- type: "object",
- properties: {
- tags: {
- type: "array",
- items: {
- type: "string"
- }
- },
- summary: {
- type: "string"
- },
- description: {
- type: "string"
- },
- externalDocs: {
- $ref: "#/$defs/external-documentation"
- },
- operationId: {
- type: "string"
- },
- parameters: {
- type: "array",
- items: {
- $ref: "#/$defs/parameter-or-reference"
- }
- },
- requestBody: {
- $ref: "#/$defs/request-body-or-reference"
- },
- responses: {
- $ref: "#/$defs/responses"
- },
- callbacks: {
- type: "object",
- additionalProperties: {
- $ref: "#/$defs/callbacks-or-reference"
- }
- },
- deprecated: {
- default: false,
- type: "boolean"
- },
- security: {
- type: "array",
- items: {
- $ref: "#/$defs/security-requirement"
- }
- },
- servers: {
- type: "array",
- items: {
- $ref: "#/$defs/server"
- }
- }
- },
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- "external-documentation": {
- type: "object",
- properties: {
- description: {
- type: "string"
- },
- url: {
- $ref: "#/$defs/uri"
- }
- },
- required: [
- "url"
- ],
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- parameter: {
- type: "object",
- properties: {
- name: {
- type: "string"
- },
- in: {
- enum: [
- "query",
- "header",
- "path",
- "cookie"
- ]
- },
- description: {
- type: "string"
- },
- required: {
- default: false,
- type: "boolean"
- },
- deprecated: {
- default: false,
- type: "boolean"
- },
- allowEmptyValue: {
- default: false,
- type: "boolean"
- },
- schema: {
- $dynamicRef: "#meta"
- },
- content: {
- $ref: "#/$defs/content"
- }
- },
- required: [
- "in"
- ],
- oneOf: [
- {
- required: [
- "schema"
- ]
- },
- {
- required: [
- "content"
- ]
- }
- ],
- dependentSchemas: {
- schema: {
- properties: {
- style: {
- type: "string"
- },
- explode: {
- type: "boolean"
- },
- allowReserved: {
- default: false,
- type: "boolean"
- }
- },
- allOf: [
- {
- $ref: "#/$defs/examples"
- },
- {
- $ref: "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-path"
- },
- {
- $ref: "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-header"
- },
- {
- $ref: "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-query"
- },
- {
- $ref: "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-cookie"
- },
- {
- $ref: "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-form"
- }
- ],
- $defs: {
- "styles-for-path": {
- if: {
- properties: {
- in: {
- const: "path"
- }
- },
- required: [
- "in"
- ]
- },
- then: {
- properties: {
- style: {
- default: "simple",
- enum: [
- "matrix",
- "label",
- "simple"
- ]
- },
- required: {
- const: true
- }
- },
- required: [
- "required"
- ]
- }
- },
- "styles-for-header": {
- if: {
- properties: {
- in: {
- const: "header"
- }
- },
- required: [
- "in"
- ]
- },
- then: {
- properties: {
- style: {
- default: "simple",
- enum: [
- "simple"
- ]
- }
- }
- }
- },
- "styles-for-query": {
- if: {
- properties: {
- in: {
- const: "query"
- }
- },
- required: [
- "in"
- ]
- },
- then: {
- properties: {
- style: {
- default: "form",
- enum: [
- "form",
- "spaceDelimited",
- "pipeDelimited",
- "deepObject"
- ]
- }
- }
- }
- },
- "styles-for-cookie": {
- if: {
- properties: {
- in: {
- const: "cookie"
- }
- },
- required: [
- "in"
- ]
- },
- then: {
- properties: {
- style: {
- default: "form",
- enum: [
- "form"
- ]
- }
- }
- }
- },
- "styles-for-form": {
- if: {
- properties: {
- style: {
- const: "form"
- }
- },
- required: [
- "style"
- ]
- },
- then: {
- properties: {
- explode: {
- default: true
- }
- }
- },
- else: {
- properties: {
- explode: {
- default: false
- }
- }
- }
- }
- }
- }
- },
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- "parameter-or-reference": {
- if: {
- required: [
- "$ref"
- ]
- },
- then: {
- $ref: "#/$defs/reference"
- },
- else: {
- $ref: "#/$defs/parameter"
- }
- },
- "request-body": {
- type: "object",
- properties: {
- description: {
- type: "string"
- },
- content: {
- $ref: "#/$defs/content"
- },
- required: {
- default: false,
- type: "boolean"
- }
- },
- required: [
- "content"
- ],
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- "request-body-or-reference": {
- if: {
- required: [
- "$ref"
- ]
- },
- then: {
- $ref: "#/$defs/reference"
- },
- else: {
- $ref: "#/$defs/request-body"
- }
- },
- content: {
- type: "object",
- additionalProperties: {
- $ref: "#/$defs/media-type"
- },
- propertyNames: {
- format: "media-range"
- }
- },
- "media-type": {
- type: "object",
- properties: {
- schema: {
- $dynamicRef: "#meta"
- },
- encoding: {
- type: "object",
- additionalProperties: {
- $ref: "#/$defs/encoding"
- }
- }
- },
- allOf: [
- {
- $ref: "#/$defs/specification-extensions"
- },
- {
- $ref: "#/$defs/examples"
- }
- ],
- unevaluatedProperties: false
- },
- encoding: {
- type: "object",
- properties: {
- contentType: {
- type: "string",
- format: "media-range"
- },
- headers: {
- type: "object",
- additionalProperties: {
- $ref: "#/$defs/header-or-reference"
- }
- },
- style: {
- default: "form",
- enum: [
- "form",
- "spaceDelimited",
- "pipeDelimited",
- "deepObject"
- ]
- },
- explode: {
- type: "boolean"
- },
- allowReserved: {
- default: false,
- type: "boolean"
- }
- },
- allOf: [
- {
- $ref: "#/$defs/specification-extensions"
- },
- {
- $ref: "#/$defs/encoding/$defs/explode-default"
- }
- ],
- unevaluatedProperties: false,
- $defs: {
- "explode-default": {
- if: {
- properties: {
- style: {
- const: "form"
- }
- },
- required: [
- "style"
- ]
- },
- then: {
- properties: {
- explode: {
- default: true
- }
- }
- },
- else: {
- properties: {
- explode: {
- default: false
- }
- }
- }
- }
- }
- },
- responses: {
- type: "object",
- properties: {
- default: {
- $ref: "#/$defs/response-or-reference"
- }
- },
- patternProperties: {
- "^[1-5][0-9X]{2}$": {
- $ref: "#/$defs/response-or-reference"
- }
- },
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- response: {
- type: "object",
- properties: {
- description: {
- type: "string"
- },
- headers: {
- type: "object",
- additionalProperties: {
- $ref: "#/$defs/header-or-reference"
- }
- },
- content: {
- $ref: "#/$defs/content"
- },
- links: {
- type: "object",
- additionalProperties: {
- $ref: "#/$defs/link-or-reference"
- }
- }
- },
- required: [
- "description"
- ],
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- "response-or-reference": {
- if: {
- required: [
- "$ref"
- ]
- },
- then: {
- $ref: "#/$defs/reference"
- },
- else: {
- $ref: "#/$defs/response"
- }
- },
- callbacks: {
- type: "object",
- $ref: "#/$defs/specification-extensions",
- additionalProperties: {
- $ref: "#/$defs/path-item-or-reference"
- }
- },
- "callbacks-or-reference": {
- if: {
- required: [
- "$ref"
- ]
- },
- then: {
- $ref: "#/$defs/reference"
- },
- else: {
- $ref: "#/$defs/callbacks"
- }
- },
- example: {
- type: "object",
- properties: {
- summary: {
- type: "string"
- },
- description: {
- type: "string"
- },
- value: true,
- externalValue: {
- $ref: "#/$defs/uri"
- }
- },
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- "example-or-reference": {
- if: {
- required: [
- "$ref"
- ]
- },
- then: {
- $ref: "#/$defs/reference"
- },
- else: {
- $ref: "#/$defs/example"
- }
- },
- link: {
- type: "object",
- properties: {
- operationRef: {
- $ref: "#/$defs/uri"
- },
- operationId: true,
- parameters: {
- $ref: "#/$defs/map-of-strings"
- },
- requestBody: true,
- description: {
- type: "string"
- },
- body: {
- $ref: "#/$defs/server"
- }
- },
- oneOf: [
- {
- required: [
- "operationRef"
- ]
- },
- {
- required: [
- "operationId"
- ]
- }
- ],
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- "link-or-reference": {
- if: {
- required: [
- "$ref"
- ]
- },
- then: {
- $ref: "#/$defs/reference"
- },
- else: {
- $ref: "#/$defs/link"
- }
- },
- header: {
- type: "object",
- properties: {
- description: {
- type: "string"
- },
- required: {
- default: false,
- type: "boolean"
- },
- deprecated: {
- default: false,
- type: "boolean"
- },
- allowEmptyValue: {
- default: false,
- type: "boolean"
- }
- },
- dependentSchemas: {
- schema: {
- properties: {
- style: {
- default: "simple",
- enum: [
- "simple"
- ]
- },
- explode: {
- default: false,
- type: "boolean"
- },
- allowReserved: {
- default: false,
- type: "boolean"
- },
- schema: {
- $dynamicRef: "#meta"
- }
- },
- $ref: "#/$defs/examples"
- },
- content: {
- properties: {
- content: {
- $ref: "#/$defs/content"
- }
- }
- }
- },
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- "header-or-reference": {
- if: {
- required: [
- "$ref"
- ]
- },
- then: {
- $ref: "#/$defs/reference"
- },
- else: {
- $ref: "#/$defs/header"
- }
- },
- tag: {
- type: "object",
- properties: {
- name: {
- type: "string"
- },
- description: {
- type: "string"
- },
- externalDocs: {
- $ref: "#/$defs/external-documentation"
- }
- },
- required: [
- "name"
- ],
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- reference: {
- type: "object",
- properties: {
- $ref: {
- $ref: "#/$defs/uri"
- },
- summary: {
- type: "string"
- },
- description: {
- type: "string"
- }
- },
- unevaluatedProperties: false
- },
- schema: {
- $dynamicAnchor: "meta",
- type: [
- "object",
- "boolean"
- ]
- },
- "security-scheme": {
- type: "object",
- properties: {
- type: {
- enum: [
- "apiKey",
- "http",
- "mutualTLS",
- "oauth2",
- "openIdConnect"
- ]
- },
- description: {
- type: "string"
- }
- },
- required: [
- "type"
- ],
- allOf: [
- {
- $ref: "#/$defs/specification-extensions"
- },
- {
- $ref: "#/$defs/security-scheme/$defs/type-apikey"
- },
- {
- $ref: "#/$defs/security-scheme/$defs/type-http"
- },
- {
- $ref: "#/$defs/security-scheme/$defs/type-http-bearer"
- },
- {
- $ref: "#/$defs/security-scheme/$defs/type-oauth2"
- },
- {
- $ref: "#/$defs/security-scheme/$defs/type-oidc"
- }
- ],
- unevaluatedProperties: false,
- $defs: {
- "type-apikey": {
- if: {
- properties: {
- type: {
- const: "apiKey"
- }
- },
- required: [
- "type"
- ]
- },
- then: {
- properties: {
- name: {
- type: "string"
- },
- in: {
- enum: [
- "query",
- "header",
- "cookie"
- ]
- }
- },
- required: [
- "name",
- "in"
- ]
- }
- },
- "type-http": {
- if: {
- properties: {
- type: {
- const: "http"
- }
- },
- required: [
- "type"
- ]
- },
- then: {
- properties: {
- scheme: {
- type: "string"
- }
- },
- required: [
- "scheme"
- ]
- }
- },
- "type-http-bearer": {
- if: {
- properties: {
- type: {
- const: "http"
- },
- scheme: {
- const: "bearer"
- }
- },
- required: [
- "type",
- "scheme"
- ]
- },
- then: {
- properties: {
- bearerFormat: {
- type: "string"
- }
- },
- required: [
- "scheme"
- ]
- }
- },
- "type-oauth2": {
- if: {
- properties: {
- type: {
- const: "oauth2"
- }
- },
- required: [
- "type"
- ]
- },
- then: {
- properties: {
- flows: {
- $ref: "#/$defs/oauth-flows"
- }
- },
- required: [
- "flows"
- ]
- }
- },
- "type-oidc": {
- if: {
- properties: {
- type: {
- const: "openIdConnect"
- }
- },
- required: [
- "type"
- ]
- },
- then: {
- properties: {
- openIdConnectUrl: {
- $ref: "#/$defs/uri"
- }
- },
- required: [
- "openIdConnectUrl"
- ]
- }
- }
- }
- },
- "security-scheme-or-reference": {
- if: {
- required: [
- "$ref"
- ]
- },
- then: {
- $ref: "#/$defs/reference"
- },
- else: {
- $ref: "#/$defs/security-scheme"
- }
- },
- "oauth-flows": {
- type: "object",
- properties: {
- implicit: {
- $ref: "#/$defs/oauth-flows/$defs/implicit"
- },
- password: {
- $ref: "#/$defs/oauth-flows/$defs/password"
- },
- clientCredentials: {
- $ref: "#/$defs/oauth-flows/$defs/client-credentials"
- },
- authorizationCode: {
- $ref: "#/$defs/oauth-flows/$defs/authorization-code"
- }
- },
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false,
- $defs: {
- implicit: {
- type: "object",
- properties: {
- authorizationUrl: {
- type: "string"
- },
- refreshUrl: {
- type: "string"
- },
- scopes: {
- $ref: "#/$defs/map-of-strings"
- }
- },
- required: [
- "authorizationUrl",
- "scopes"
- ],
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- password: {
- type: "object",
- properties: {
- tokenUrl: {
- type: "string"
- },
- refreshUrl: {
- type: "string"
- },
- scopes: {
- $ref: "#/$defs/map-of-strings"
- }
- },
- required: [
- "tokenUrl",
- "scopes"
- ],
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- "client-credentials": {
- type: "object",
- properties: {
- tokenUrl: {
- type: "string"
- },
- refreshUrl: {
- type: "string"
- },
- scopes: {
- $ref: "#/$defs/map-of-strings"
- }
- },
- required: [
- "tokenUrl",
- "scopes"
- ],
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- },
- "authorization-code": {
- type: "object",
- properties: {
- authorizationUrl: {
- type: "string"
- },
- tokenUrl: {
- type: "string"
- },
- refreshUrl: {
- type: "string"
- },
- scopes: {
- $ref: "#/$defs/map-of-strings"
- }
- },
- required: [
- "authorizationUrl",
- "tokenUrl",
- "scopes"
- ],
- $ref: "#/$defs/specification-extensions",
- unevaluatedProperties: false
- }
- }
- },
- "security-requirement": {
- type: "object",
- additionalProperties: {
- type: "array",
- items: {
- type: "string"
- }
- }
- },
- "specification-extensions": {
- patternProperties: {
- "^x-": true
- }
- },
- examples: {
- properties: {
- example: true,
- examples: {
- type: "object",
- additionalProperties: {
- $ref: "#/$defs/example-or-reference"
- }
- }
- }
- },
- uri: {
- type: "string",
- format: "uri"
- },
- "map-of-strings": {
- type: "object",
- additionalProperties: {
- type: "string"
- }
- }
- }
- };
- }
- });
- // node_modules/@apidevtools/openapi-schemas/lib/index.js
- var require_lib3 = __commonJS({
- "node_modules/@apidevtools/openapi-schemas/lib/index.js"(exports2, module2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", { value: true });
- exports2.openapi = exports2.openapiV31 = exports2.openapiV3 = exports2.openapiV2 = exports2.openapiV1 = void 0;
- exports2.openapiV1 = require_apiDeclaration();
- exports2.openapiV2 = require_schema2();
- exports2.openapiV3 = require_schema3();
- exports2.openapiV31 = require_schema4();
- exports2.openapi = {
- v1: exports2.openapiV1,
- v2: exports2.openapiV2,
- v3: exports2.openapiV3,
- v31: exports2.openapiV31
- };
- exports2.default = exports2.openapi;
- if (typeof module2 === "object" && typeof module2.exports === "object") {
- module2.exports = Object.assign(module2.exports.default, module2.exports);
- }
- }
- });
- // node_modules/@apidevtools/swagger-parser/lib/validators/schema.js
- var require_schema5 = __commonJS({
- "node_modules/@apidevtools/swagger-parser/lib/validators/schema.js"(exports2, module2) {
- "use strict";
- var util = require_util();
- var { ono } = require_cjs();
- var ZSchema = require_ZSchema();
- var { openapi } = require_lib3();
- module2.exports = validateSchema;
- var zSchema = initializeZSchema();
- function validateSchema(api) {
- let schema = api.swagger ? openapi.v2 : openapi.v3;
- let isValid = zSchema.validate(api, schema);
- if (!isValid) {
- let err = zSchema.getLastError();
- let message = "Swagger schema validation failed. \n" + formatZSchemaError(err.details);
- throw ono.syntax(err, { details: err.details }, message);
- }
- }
- function initializeZSchema() {
- delete openapi.v2.id;
- delete openapi.v3.id;
- ZSchema.registerFormat("uri-reference", (value) => value.trim().length > 0);
- return new ZSchema({
- breakOnFirstError: true,
- noExtraKeywords: true,
- ignoreUnknownFormats: false,
- reportPathAsArray: true
- });
- }
- function formatZSchemaError(errors, indent) {
- indent = indent || " ";
- let message = "";
- for (let error of errors) {
- message += util.format(`${indent}${error.message} at #/${error.path.join("/")}
- `);
- if (error.inner) {
- message += formatZSchemaError(error.inner, indent + " ");
- }
- }
- return message;
- }
- }
- });
- // node_modules/@apidevtools/swagger-methods/lib/index.js
- var require_lib4 = __commonJS({
- "node_modules/@apidevtools/swagger-methods/lib/index.js"(exports2, module2) {
- "use strict";
- module2.exports = [
- "get",
- "put",
- "post",
- "delete",
- "options",
- "head",
- "patch"
- ];
- }
- });
- // node_modules/@apidevtools/swagger-parser/lib/validators/spec.js
- var require_spec = __commonJS({
- "node_modules/@apidevtools/swagger-parser/lib/validators/spec.js"(exports2, module2) {
- "use strict";
- var util = require_util();
- var { ono } = require_cjs();
- var swaggerMethods = require_lib4();
- var primitiveTypes = ["array", "boolean", "integer", "number", "string"];
- var schemaTypes = ["array", "boolean", "integer", "number", "string", "object", "null", void 0];
- module2.exports = validateSpec;
- function validateSpec(api) {
- if (api.openapi) {
- return;
- }
- let paths = Object.keys(api.paths || {});
- let operationIds = [];
- for (let pathName of paths) {
- let path2 = api.paths[pathName];
- let pathId = "/paths" + pathName;
- if (path2 && pathName.indexOf("/") === 0) {
- validatePath(api, path2, pathId, operationIds);
- }
- }
- let definitions = Object.keys(api.definitions || {});
- for (let definitionName of definitions) {
- let definition = api.definitions[definitionName];
- let definitionId = "/definitions/" + definitionName;
- validateRequiredPropertiesExist(definition, definitionId);
- }
- }
- function validatePath(api, path2, pathId, operationIds) {
- for (let operationName of swaggerMethods) {
- let operation = path2[operationName];
- let operationId = pathId + "/" + operationName;
- if (operation) {
- let declaredOperationId = operation.operationId;
- if (declaredOperationId) {
- if (operationIds.indexOf(declaredOperationId) === -1) {
- operationIds.push(declaredOperationId);
- } else {
- throw ono.syntax(`Validation failed. Duplicate operation id '${declaredOperationId}'`);
- }
- }
- validateParameters(api, path2, pathId, operation, operationId);
- let responses = Object.keys(operation.responses || {});
- for (let responseName of responses) {
- let response = operation.responses[responseName];
- let responseId = operationId + "/responses/" + responseName;
- validateResponse(responseName, response || {}, responseId);
- }
- }
- }
- }
- function validateParameters(api, path2, pathId, operation, operationId) {
- let pathParams = path2.parameters || [];
- let operationParams = operation.parameters || [];
- try {
- checkForDuplicates(pathParams);
- } catch (e) {
- throw ono.syntax(e, `Validation failed. ${pathId} has duplicate parameters`);
- }
- try {
- checkForDuplicates(operationParams);
- } catch (e) {
- throw ono.syntax(e, `Validation failed. ${operationId} has duplicate parameters`);
- }
- let params = pathParams.reduce((combinedParams, value) => {
- let duplicate = combinedParams.some((param) => {
- return param.in === value.in && param.name === value.name;
- });
- if (!duplicate) {
- combinedParams.push(value);
- }
- return combinedParams;
- }, operationParams.slice());
- validateBodyParameters(params, operationId);
- validatePathParameters(params, pathId, operationId);
- validateParameterTypes(params, api, operation, operationId);
- }
- function validateBodyParameters(params, operationId) {
- let bodyParams = params.filter((param) => {
- return param.in === "body";
- });
- let formParams = params.filter((param) => {
- return param.in === "formData";
- });
- if (bodyParams.length > 1) {
- throw ono.syntax(
- `Validation failed. ${operationId} has ${bodyParams.length} body parameters. Only one is allowed.`
- );
- } else if (bodyParams.length > 0 && formParams.length > 0) {
- throw ono.syntax(
- `Validation failed. ${operationId} has body parameters and formData parameters. Only one or the other is allowed.`
- );
- }
- }
- function validatePathParameters(params, pathId, operationId) {
- let placeholders = pathId.match(util.swaggerParamRegExp) || [];
- for (let i = 0; i < placeholders.length; i++) {
- for (let j = i + 1; j < placeholders.length; j++) {
- if (placeholders[i] === placeholders[j]) {
- throw ono.syntax(
- `Validation failed. ${operationId} has multiple path placeholders named ${placeholders[i]}`
- );
- }
- }
- }
- params = params.filter((param) => {
- return param.in === "path";
- });
- for (let param of params) {
- if (param.required !== true) {
- throw ono.syntax(
- `Validation failed. Path parameters cannot be optional. Set required=true for the "${param.name}" parameter at ${operationId}`
- );
- }
- let match = placeholders.indexOf("{" + param.name + "}");
- if (match === -1) {
- throw ono.syntax(
- `Validation failed. ${operationId} has a path parameter named "${param.name}", but there is no corresponding {${param.name}} in the path string`
- );
- }
- placeholders.splice(match, 1);
- }
- if (placeholders.length > 0) {
- throw ono.syntax(`Validation failed. ${operationId} is missing path parameter(s) for ${placeholders}`);
- }
- }
- function validateParameterTypes(params, api, operation, operationId) {
- for (let param of params) {
- let parameterId = operationId + "/parameters/" + param.name;
- let schema, validTypes;
- switch (param.in) {
- case "body":
- schema = param.schema;
- validTypes = schemaTypes;
- break;
- case "formData":
- schema = param;
- validTypes = primitiveTypes.concat("file");
- break;
- default:
- schema = param;
- validTypes = primitiveTypes;
- }
- validateSchema(schema, parameterId, validTypes);
- validateRequiredPropertiesExist(schema, parameterId);
- if (schema.type === "file") {
- let formData = /multipart\/(.*\+)?form-data/;
- let urlEncoded = /application\/(.*\+)?x-www-form-urlencoded/;
- let consumes = operation.consumes || api.consumes || [];
- let hasValidMimeType = consumes.some((consume) => {
- return formData.test(consume) || urlEncoded.test(consume);
- });
- if (!hasValidMimeType) {
- throw ono.syntax(
- `Validation failed. ${operationId} has a file parameter, so it must consume multipart/form-data or application/x-www-form-urlencoded`
- );
- }
- }
- }
- }
- function checkForDuplicates(params) {
- for (let i = 0; i < params.length - 1; i++) {
- let outer = params[i];
- for (let j = i + 1; j < params.length; j++) {
- let inner = params[j];
- if (outer.name === inner.name && outer.in === inner.in) {
- throw ono.syntax(`Validation failed. Found multiple ${outer.in} parameters named "${outer.name}"`);
- }
- }
- }
- }
- function validateResponse(code, response, responseId) {
- if (code !== "default" && (code < 100 || code > 599)) {
- throw ono.syntax(`Validation failed. ${responseId} has an invalid response code (${code})`);
- }
- let headers = Object.keys(response.headers || {});
- for (let headerName of headers) {
- let header = response.headers[headerName];
- let headerId = responseId + "/headers/" + headerName;
- validateSchema(header, headerId, primitiveTypes);
- }
- if (response.schema) {
- let validTypes = schemaTypes.concat("file");
- if (validTypes.indexOf(response.schema.type) === -1) {
- throw ono.syntax(
- `Validation failed. ${responseId} has an invalid response schema type (${response.schema.type})`
- );
- } else {
- validateSchema(response.schema, responseId + "/schema", validTypes);
- }
- }
- }
- function validateSchema(schema, schemaId, validTypes) {
- if (validTypes.indexOf(schema.type) === -1) {
- throw ono.syntax(
- `Validation failed. ${schemaId} has an invalid type (${schema.type})`
- );
- }
- if (schema.type === "array" && !schema.items) {
- throw ono.syntax(`Validation failed. ${schemaId} is an array, so it must include an "items" schema`);
- }
- }
- function validateRequiredPropertiesExist(schema, schemaId) {
- function collectProperties(schemaObj, props) {
- if (schemaObj.properties) {
- for (let property in schemaObj.properties) {
- if (schemaObj.properties.hasOwnProperty(property)) {
- props[property] = schemaObj.properties[property];
- }
- }
- }
- if (schemaObj.allOf) {
- for (let parent of schemaObj.allOf) {
- collectProperties(parent, props);
- }
- }
- }
- if (schema.required && Array.isArray(schema.required)) {
- let props = {};
- collectProperties(schema, props);
- for (let requiredProperty of schema.required) {
- if (!props[requiredProperty]) {
- throw ono.syntax(
- `Validation failed. Property '${requiredProperty}' listed as required but does not exist in '${schemaId}'`
- );
- }
- }
- }
- }
- }
- });
- // node_modules/@apidevtools/json-schema-ref-parser/lib/util/url.js
- var require_url = __commonJS({
- "node_modules/@apidevtools/json-schema-ref-parser/lib/util/url.js"(exports2, module2) {
- "use strict";
- var isWindows = /^win/.test(process.platform);
- var forwardSlashPattern = /\//g;
- var protocolPattern = /^(\w{2,}):\/\//i;
- var url = module2.exports;
- var jsonPointerSlash = /~1/g;
- var jsonPointerTilde = /~0/g;
- var urlEncodePatterns = [
- /\?/g,
- "%3F",
- /\#/g,
- "%23"
- ];
- var urlDecodePatterns = [
- /\%23/g,
- "#",
- /\%24/g,
- "$",
- /\%26/g,
- "&",
- /\%2C/g,
- ",",
- /\%40/g,
- "@"
- ];
- exports2.parse = require("url").parse;
- exports2.resolve = require("url").resolve;
- exports2.cwd = function cwd() {
- if (process.browser) {
- return location.href;
- }
- let path2 = process.cwd();
- let lastChar = path2.slice(-1);
- if (lastChar === "/" || lastChar === "\\") {
- return path2;
- } else {
- return path2 + "/";
- }
- };
- exports2.getProtocol = function getProtocol(path2) {
- let match = protocolPattern.exec(path2);
- if (match) {
- return match[1].toLowerCase();
- }
- };
- exports2.getExtension = function getExtension(path2) {
- let lastDot = path2.lastIndexOf(".");
- if (lastDot >= 0) {
- return url.stripQuery(path2.substr(lastDot).toLowerCase());
- }
- return "";
- };
- exports2.stripQuery = function stripQuery(path2) {
- let queryIndex = path2.indexOf("?");
- if (queryIndex >= 0) {
- path2 = path2.substr(0, queryIndex);
- }
- return path2;
- };
- exports2.getHash = function getHash(path2) {
- let hashIndex = path2.indexOf("#");
- if (hashIndex >= 0) {
- return path2.substr(hashIndex);
- }
- return "#";
- };
- exports2.stripHash = function stripHash(path2) {
- let hashIndex = path2.indexOf("#");
- if (hashIndex >= 0) {
- path2 = path2.substr(0, hashIndex);
- }
- return path2;
- };
- exports2.isHttp = function isHttp(path2) {
- let protocol = url.getProtocol(path2);
- if (protocol === "http" || protocol === "https") {
- return true;
- } else if (protocol === void 0) {
- return process.browser;
- } else {
- return false;
- }
- };
- exports2.isFileSystemPath = function isFileSystemPath(path2) {
- if (process.browser) {
- return false;
- }
- let protocol = url.getProtocol(path2);
- return protocol === void 0 || protocol === "file";
- };
- exports2.fromFileSystemPath = function fromFileSystemPath(path2) {
- if (isWindows) {
- path2 = path2.replace(/\\/g, "/");
- }
- path2 = encodeURI(path2);
- for (let i = 0; i < urlEncodePatterns.length; i += 2) {
- path2 = path2.replace(urlEncodePatterns[i], urlEncodePatterns[i + 1]);
- }
- return path2;
- };
- exports2.toFileSystemPath = function toFileSystemPath(path2, keepFileProtocol) {
- path2 = decodeURI(path2);
- for (let i = 0; i < urlDecodePatterns.length; i += 2) {
- path2 = path2.replace(urlDecodePatterns[i], urlDecodePatterns[i + 1]);
- }
- let isFileUrl = path2.substr(0, 7).toLowerCase() === "file://";
- if (isFileUrl) {
- path2 = path2[7] === "/" ? path2.substr(8) : path2.substr(7);
- if (isWindows && path2[1] === "/") {
- path2 = path2[0] + ":" + path2.substr(1);
- }
- if (keepFileProtocol) {
- path2 = "file:///" + path2;
- } else {
- isFileUrl = false;
- path2 = isWindows ? path2 : "/" + path2;
- }
- }
- if (isWindows && !isFileUrl) {
- path2 = path2.replace(forwardSlashPattern, "\\");
- if (path2.substr(1, 2) === ":\\") {
- path2 = path2[0].toUpperCase() + path2.substr(1);
- }
- }
- return path2;
- };
- exports2.safePointerToPath = function safePointerToPath(pointer) {
- if (pointer.length <= 1 || pointer[0] !== "#" || pointer[1] !== "/") {
- return [];
- }
- return pointer.slice(2).split("/").map((value) => {
- return decodeURIComponent(value).replace(jsonPointerSlash, "/").replace(jsonPointerTilde, "~");
- });
- };
- }
- });
- // node_modules/@apidevtools/json-schema-ref-parser/lib/util/errors.js
- var require_errors = __commonJS({
- "node_modules/@apidevtools/json-schema-ref-parser/lib/util/errors.js"(exports2) {
- "use strict";
- var { Ono } = require_cjs();
- var { stripHash, toFileSystemPath } = require_url();
- var JSONParserError = exports2.JSONParserError = class JSONParserError extends Error {
- constructor(message, source) {
- super();
- this.code = "EUNKNOWN";
- this.message = message;
- this.source = source;
- this.path = null;
- Ono.extend(this);
- }
- get footprint() {
- return `${this.path}+${this.source}+${this.code}+${this.message}`;
- }
- };
- setErrorName(JSONParserError);
- var JSONParserErrorGroup = exports2.JSONParserErrorGroup = class JSONParserErrorGroup2 extends Error {
- constructor(parser) {
- super();
- this.files = parser;
- this.message = `${this.errors.length} error${this.errors.length > 1 ? "s" : ""} occurred while reading '${toFileSystemPath(parser.$refs._root$Ref.path)}'`;
- Ono.extend(this);
- }
- static getParserErrors(parser) {
- const errors = [];
- for (const $ref of Object.values(parser.$refs._$refs)) {
- if ($ref.errors) {
- errors.push(...$ref.errors);
- }
- }
- return errors;
- }
- get errors() {
- return JSONParserErrorGroup2.getParserErrors(this.files);
- }
- };
- setErrorName(JSONParserErrorGroup);
- var ParserError = exports2.ParserError = class ParserError extends JSONParserError {
- constructor(message, source) {
- super(`Error parsing ${source}: ${message}`, source);
- this.code = "EPARSER";
- }
- };
- setErrorName(ParserError);
- var UnmatchedParserError = exports2.UnmatchedParserError = class UnmatchedParserError extends JSONParserError {
- constructor(source) {
- super(`Could not find parser for "${source}"`, source);
- this.code = "EUNMATCHEDPARSER";
- }
- };
- setErrorName(UnmatchedParserError);
- var ResolverError = exports2.ResolverError = class ResolverError extends JSONParserError {
- constructor(ex, source) {
- super(ex.message || `Error reading file "${source}"`, source);
- this.code = "ERESOLVER";
- if ("code" in ex) {
- this.ioErrorCode = String(ex.code);
- }
- }
- };
- setErrorName(ResolverError);
- var UnmatchedResolverError = exports2.UnmatchedResolverError = class UnmatchedResolverError extends JSONParserError {
- constructor(source) {
- super(`Could not find resolver for "${source}"`, source);
- this.code = "EUNMATCHEDRESOLVER";
- }
- };
- setErrorName(UnmatchedResolverError);
- var MissingPointerError = exports2.MissingPointerError = class MissingPointerError extends JSONParserError {
- constructor(token, path2) {
- super(`Token "${token}" does not exist.`, stripHash(path2));
- this.code = "EMISSINGPOINTER";
- }
- };
- setErrorName(MissingPointerError);
- var InvalidPointerError = exports2.InvalidPointerError = class InvalidPointerError extends JSONParserError {
- constructor(pointer, path2) {
- super(`Invalid $ref pointer "${pointer}". Pointers must begin with "#/"`, stripHash(path2));
- this.code = "EINVALIDPOINTER";
- }
- };
- setErrorName(InvalidPointerError);
- function setErrorName(err) {
- Object.defineProperty(err.prototype, "name", {
- value: err.name,
- enumerable: true
- });
- }
- exports2.isHandledError = function(err) {
- return err instanceof JSONParserError || err instanceof JSONParserErrorGroup;
- };
- exports2.normalizeError = function(err) {
- if (err.path === null) {
- err.path = [];
- }
- return err;
- };
- }
- });
- // node_modules/@apidevtools/json-schema-ref-parser/lib/parsers/json.js
- var require_json2 = __commonJS({
- "node_modules/@apidevtools/json-schema-ref-parser/lib/parsers/json.js"(exports2, module2) {
- "use strict";
- var { ParserError } = require_errors();
- module2.exports = {
- /**
- * The order that this parser will run, in relation to other parsers.
- *
- * @type {number}
- */
- order: 100,
- /**
- * Whether to allow "empty" files. This includes zero-byte files, as well as empty JSON objects.
- *
- * @type {boolean}
- */
- allowEmpty: true,
- /**
- * Determines whether this parser can parse a given file reference.
- * Parsers that match will be tried, in order, until one successfully parses the file.
- * Parsers that don't match will be skipped, UNLESS none of the parsers match, in which case
- * every parser will be tried.
- *
- * @type {RegExp|string|string[]|function}
- */
- canParse: ".json",
- /**
- * Parses the given file as JSON
- *
- * @param {object} file - An object containing information about the referenced file
- * @param {string} file.url - The full URL of the referenced file
- * @param {string} file.extension - The lowercased file extension (e.g. ".txt", ".html", etc.)
- * @param {*} file.data - The file contents. This will be whatever data type was returned by the resolver
- * @returns {Promise}
- */
- async parse(file) {
- let data = file.data;
- if (Buffer.isBuffer(data)) {
- data = data.toString();
- }
- if (typeof data === "string") {
- if (data.trim().length === 0) {
- return;
- } else {
- try {
- return JSON.parse(data);
- } catch (e) {
- throw new ParserError(e.message, file.url);
- }
- }
- } else {
- return data;
- }
- }
- };
- }
- });
- // node_modules/js-yaml/lib/common.js
- var require_common2 = __commonJS({
- "node_modules/js-yaml/lib/common.js"(exports2, module2) {
- "use strict";
- function isNothing(subject) {
- return typeof subject === "undefined" || subject === null;
- }
- function isObject(subject) {
- return typeof subject === "object" && subject !== null;
- }
- function toArray(sequence) {
- if (Array.isArray(sequence)) return sequence;
- else if (isNothing(sequence)) return [];
- return [sequence];
- }
- function extend(target, source) {
- var index, length, key, sourceKeys;
- if (source) {
- sourceKeys = Object.keys(source);
- for (index = 0, length = sourceKeys.length; index < length; index += 1) {
- key = sourceKeys[index];
- target[key] = source[key];
- }
- }
- return target;
- }
- function repeat(string, count) {
- var result = "", cycle;
- for (cycle = 0; cycle < count; cycle += 1) {
- result += string;
- }
- return result;
- }
- function isNegativeZero(number) {
- return number === 0 && Number.NEGATIVE_INFINITY === 1 / number;
- }
- module2.exports.isNothing = isNothing;
- module2.exports.isObject = isObject;
- module2.exports.toArray = toArray;
- module2.exports.repeat = repeat;
- module2.exports.isNegativeZero = isNegativeZero;
- module2.exports.extend = extend;
- }
- });
- // node_modules/js-yaml/lib/exception.js
- var require_exception = __commonJS({
- "node_modules/js-yaml/lib/exception.js"(exports2, module2) {
- "use strict";
- function formatError(exception, compact) {
- var where = "", message = exception.reason || "(unknown reason)";
- if (!exception.mark) return message;
- if (exception.mark.name) {
- where += 'in "' + exception.mark.name + '" ';
- }
- where += "(" + (exception.mark.line + 1) + ":" + (exception.mark.column + 1) + ")";
- if (!compact && exception.mark.snippet) {
- where += "\n\n" + exception.mark.snippet;
- }
- return message + " " + where;
- }
- function YAMLException(reason, mark) {
- Error.call(this);
- this.name = "YAMLException";
- this.reason = reason;
- this.mark = mark;
- this.message = formatError(this, false);
- if (Error.captureStackTrace) {
- Error.captureStackTrace(this, this.constructor);
- } else {
- this.stack = new Error().stack || "";
- }
- }
- YAMLException.prototype = Object.create(Error.prototype);
- YAMLException.prototype.constructor = YAMLException;
- YAMLException.prototype.toString = function toString2(compact) {
- return this.name + ": " + formatError(this, compact);
- };
- module2.exports = YAMLException;
- }
- });
- // node_modules/js-yaml/lib/snippet.js
- var require_snippet = __commonJS({
- "node_modules/js-yaml/lib/snippet.js"(exports2, module2) {
- "use strict";
- var common = require_common2();
- function getLine(buffer, lineStart, lineEnd, position, maxLineLength) {
- var head = "";
- var tail = "";
- var maxHalfLength = Math.floor(maxLineLength / 2) - 1;
- if (position - lineStart > maxHalfLength) {
- head = " ... ";
- lineStart = position - maxHalfLength + head.length;
- }
- if (lineEnd - position > maxHalfLength) {
- tail = " ...";
- lineEnd = position + maxHalfLength - tail.length;
- }
- return {
- str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, "\u2192") + tail,
- pos: position - lineStart + head.length
- // relative position
- };
- }
- function padStart(string, max) {
- return common.repeat(" ", max - string.length) + string;
- }
- function makeSnippet(mark, options) {
- options = Object.create(options || null);
- if (!mark.buffer) return null;
- if (!options.maxLength) options.maxLength = 79;
- if (typeof options.indent !== "number") options.indent = 1;
- if (typeof options.linesBefore !== "number") options.linesBefore = 3;
- if (typeof options.linesAfter !== "number") options.linesAfter = 2;
- var re = /\r?\n|\r|\0/g;
- var lineStarts = [0];
- var lineEnds = [];
- var match;
- var foundLineNo = -1;
- while (match = re.exec(mark.buffer)) {
- lineEnds.push(match.index);
- lineStarts.push(match.index + match[0].length);
- if (mark.position <= match.index && foundLineNo < 0) {
- foundLineNo = lineStarts.length - 2;
- }
- }
- if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;
- var result = "", i, line;
- var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;
- var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);
- for (i = 1; i <= options.linesBefore; i++) {
- if (foundLineNo - i < 0) break;
- line = getLine(
- mark.buffer,
- lineStarts[foundLineNo - i],
- lineEnds[foundLineNo - i],
- mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),
- maxLineLength
- );
- result = common.repeat(" ", options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + " | " + line.str + "\n" + result;
- }
- line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);
- result += common.repeat(" ", options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + " | " + line.str + "\n";
- result += common.repeat("-", options.indent + lineNoLength + 3 + line.pos) + "^\n";
- for (i = 1; i <= options.linesAfter; i++) {
- if (foundLineNo + i >= lineEnds.length) break;
- line = getLine(
- mark.buffer,
- lineStarts[foundLineNo + i],
- lineEnds[foundLineNo + i],
- mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),
- maxLineLength
- );
- result += common.repeat(" ", options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + " | " + line.str + "\n";
- }
- return result.replace(/\n$/, "");
- }
- module2.exports = makeSnippet;
- }
- });
- // node_modules/js-yaml/lib/type.js
- var require_type2 = __commonJS({
- "node_modules/js-yaml/lib/type.js"(exports2, module2) {
- "use strict";
- var YAMLException = require_exception();
- var TYPE_CONSTRUCTOR_OPTIONS = [
- "kind",
- "multi",
- "resolve",
- "construct",
- "instanceOf",
- "predicate",
- "represent",
- "representName",
- "defaultStyle",
- "styleAliases"
- ];
- var YAML_NODE_KINDS = [
- "scalar",
- "sequence",
- "mapping"
- ];
- function compileStyleAliases(map) {
- var result = {};
- if (map !== null) {
- Object.keys(map).forEach(function(style) {
- map[style].forEach(function(alias) {
- result[String(alias)] = style;
- });
- });
- }
- return result;
- }
- function Type(tag, options) {
- options = options || {};
- Object.keys(options).forEach(function(name) {
- if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {
- throw new YAMLException('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.');
- }
- });
- this.options = options;
- this.tag = tag;
- this.kind = options["kind"] || null;
- this.resolve = options["resolve"] || function() {
- return true;
- };
- this.construct = options["construct"] || function(data) {
- return data;
- };
- this.instanceOf = options["instanceOf"] || null;
- this.predicate = options["predicate"] || null;
- this.represent = options["represent"] || null;
- this.representName = options["representName"] || null;
- this.defaultStyle = options["defaultStyle"] || null;
- this.multi = options["multi"] || false;
- this.styleAliases = compileStyleAliases(options["styleAliases"] || null);
- if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {
- throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.');
- }
- }
- module2.exports = Type;
- }
- });
- // node_modules/js-yaml/lib/schema.js
- var require_schema6 = __commonJS({
- "node_modules/js-yaml/lib/schema.js"(exports2, module2) {
- "use strict";
- var YAMLException = require_exception();
- var Type = require_type2();
- function compileList(schema, name) {
- var result = [];
- schema[name].forEach(function(currentType) {
- var newIndex = result.length;
- result.forEach(function(previousType, previousIndex) {
- if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) {
- newIndex = previousIndex;
- }
- });
- result[newIndex] = currentType;
- });
- return result;
- }
- function compileMap() {
- var result = {
- scalar: {},
- sequence: {},
- mapping: {},
- fallback: {},
- multi: {
- scalar: [],
- sequence: [],
- mapping: [],
- fallback: []
- }
- }, index, length;
- function collectType(type) {
- if (type.multi) {
- result.multi[type.kind].push(type);
- result.multi["fallback"].push(type);
- } else {
- result[type.kind][type.tag] = result["fallback"][type.tag] = type;
- }
- }
- for (index = 0, length = arguments.length; index < length; index += 1) {
- arguments[index].forEach(collectType);
- }
- return result;
- }
- function Schema(definition) {
- return this.extend(definition);
- }
- Schema.prototype.extend = function extend(definition) {
- var implicit = [];
- var explicit = [];
- if (definition instanceof Type) {
- explicit.push(definition);
- } else if (Array.isArray(definition)) {
- explicit = explicit.concat(definition);
- } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {
- if (definition.implicit) implicit = implicit.concat(definition.implicit);
- if (definition.explicit) explicit = explicit.concat(definition.explicit);
- } else {
- throw new YAMLException("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");
- }
- implicit.forEach(function(type) {
- if (!(type instanceof Type)) {
- throw new YAMLException("Specified list of YAML types (or a single Type object) contains a non-Type object.");
- }
- if (type.loadKind && type.loadKind !== "scalar") {
- throw new YAMLException("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");
- }
- if (type.multi) {
- throw new YAMLException("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.");
- }
- });
- explicit.forEach(function(type) {
- if (!(type instanceof Type)) {
- throw new YAMLException("Specified list of YAML types (or a single Type object) contains a non-Type object.");
- }
- });
- var result = Object.create(Schema.prototype);
- result.implicit = (this.implicit || []).concat(implicit);
- result.explicit = (this.explicit || []).concat(explicit);
- result.compiledImplicit = compileList(result, "implicit");
- result.compiledExplicit = compileList(result, "explicit");
- result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);
- return result;
- };
- module2.exports = Schema;
- }
- });
- // node_modules/js-yaml/lib/type/str.js
- var require_str = __commonJS({
- "node_modules/js-yaml/lib/type/str.js"(exports2, module2) {
- "use strict";
- var Type = require_type2();
- module2.exports = new Type("tag:yaml.org,2002:str", {
- kind: "scalar",
- construct: function(data) {
- return data !== null ? data : "";
- }
- });
- }
- });
- // node_modules/js-yaml/lib/type/seq.js
- var require_seq = __commonJS({
- "node_modules/js-yaml/lib/type/seq.js"(exports2, module2) {
- "use strict";
- var Type = require_type2();
- module2.exports = new Type("tag:yaml.org,2002:seq", {
- kind: "sequence",
- construct: function(data) {
- return data !== null ? data : [];
- }
- });
- }
- });
- // node_modules/js-yaml/lib/type/map.js
- var require_map = __commonJS({
- "node_modules/js-yaml/lib/type/map.js"(exports2, module2) {
- "use strict";
- var Type = require_type2();
- module2.exports = new Type("tag:yaml.org,2002:map", {
- kind: "mapping",
- construct: function(data) {
- return data !== null ? data : {};
- }
- });
- }
- });
- // node_modules/js-yaml/lib/schema/failsafe.js
- var require_failsafe = __commonJS({
- "node_modules/js-yaml/lib/schema/failsafe.js"(exports2, module2) {
- "use strict";
- var Schema = require_schema6();
- module2.exports = new Schema({
- explicit: [
- require_str(),
- require_seq(),
- require_map()
- ]
- });
- }
- });
- // node_modules/js-yaml/lib/type/null.js
- var require_null = __commonJS({
- "node_modules/js-yaml/lib/type/null.js"(exports2, module2) {
- "use strict";
- var Type = require_type2();
- function resolveYamlNull(data) {
- if (data === null) return true;
- var max = data.length;
- return max === 1 && data === "~" || max === 4 && (data === "null" || data === "Null" || data === "NULL");
- }
- function constructYamlNull() {
- return null;
- }
- function isNull(object) {
- return object === null;
- }
- module2.exports = new Type("tag:yaml.org,2002:null", {
- kind: "scalar",
- resolve: resolveYamlNull,
- construct: constructYamlNull,
- predicate: isNull,
- represent: {
- canonical: function() {
- return "~";
- },
- lowercase: function() {
- return "null";
- },
- uppercase: function() {
- return "NULL";
- },
- camelcase: function() {
- return "Null";
- },
- empty: function() {
- return "";
- }
- },
- defaultStyle: "lowercase"
- });
- }
- });
- // node_modules/js-yaml/lib/type/bool.js
- var require_bool = __commonJS({
- "node_modules/js-yaml/lib/type/bool.js"(exports2, module2) {
- "use strict";
- var Type = require_type2();
- function resolveYamlBoolean(data) {
- if (data === null) return false;
- var max = data.length;
- return max === 4 && (data === "true" || data === "True" || data === "TRUE") || max === 5 && (data === "false" || data === "False" || data === "FALSE");
- }
- function constructYamlBoolean(data) {
- return data === "true" || data === "True" || data === "TRUE";
- }
- function isBoolean(object) {
- return Object.prototype.toString.call(object) === "[object Boolean]";
- }
- module2.exports = new Type("tag:yaml.org,2002:bool", {
- kind: "scalar",
- resolve: resolveYamlBoolean,
- construct: constructYamlBoolean,
- predicate: isBoolean,
- represent: {
- lowercase: function(object) {
- return object ? "true" : "false";
- },
- uppercase: function(object) {
- return object ? "TRUE" : "FALSE";
- },
- camelcase: function(object) {
- return object ? "True" : "False";
- }
- },
- defaultStyle: "lowercase"
- });
- }
- });
- // node_modules/js-yaml/lib/type/int.js
- var require_int = __commonJS({
- "node_modules/js-yaml/lib/type/int.js"(exports2, module2) {
- "use strict";
- var common = require_common2();
- var Type = require_type2();
- function isHexCode(c) {
- return 48 <= c && c <= 57 || 65 <= c && c <= 70 || 97 <= c && c <= 102;
- }
- function isOctCode(c) {
- return 48 <= c && c <= 55;
- }
- function isDecCode(c) {
- return 48 <= c && c <= 57;
- }
- function resolveYamlInteger(data) {
- if (data === null) return false;
- var max = data.length, index = 0, hasDigits = false, ch;
- if (!max) return false;
- ch = data[index];
- if (ch === "-" || ch === "+") {
- ch = data[++index];
- }
- if (ch === "0") {
- if (index + 1 === max) return true;
- ch = data[++index];
- if (ch === "b") {
- index++;
- for (; index < max; index++) {
- ch = data[index];
- if (ch === "_") continue;
- if (ch !== "0" && ch !== "1") return false;
- hasDigits = true;
- }
- return hasDigits && ch !== "_";
- }
- if (ch === "x") {
- index++;
- for (; index < max; index++) {
- ch = data[index];
- if (ch === "_") continue;
- if (!isHexCode(data.charCodeAt(index))) return false;
- hasDigits = true;
- }
- return hasDigits && ch !== "_";
- }
- if (ch === "o") {
- index++;
- for (; index < max; index++) {
- ch = data[index];
- if (ch === "_") continue;
- if (!isOctCode(data.charCodeAt(index))) return false;
- hasDigits = true;
- }
- return hasDigits && ch !== "_";
- }
- }
- if (ch === "_") return false;
- for (; index < max; index++) {
- ch = data[index];
- if (ch === "_") continue;
- if (!isDecCode(data.charCodeAt(index))) {
- return false;
- }
- hasDigits = true;
- }
- if (!hasDigits || ch === "_") return false;
- return true;
- }
- function constructYamlInteger(data) {
- var value = data, sign = 1, ch;
- if (value.indexOf("_") !== -1) {
- value = value.replace(/_/g, "");
- }
- ch = value[0];
- if (ch === "-" || ch === "+") {
- if (ch === "-") sign = -1;
- value = value.slice(1);
- ch = value[0];
- }
- if (value === "0") return 0;
- if (ch === "0") {
- if (value[1] === "b") return sign * parseInt(value.slice(2), 2);
- if (value[1] === "x") return sign * parseInt(value.slice(2), 16);
- if (value[1] === "o") return sign * parseInt(value.slice(2), 8);
- }
- return sign * parseInt(value, 10);
- }
- function isInteger(object) {
- return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 === 0 && !common.isNegativeZero(object));
- }
- module2.exports = new Type("tag:yaml.org,2002:int", {
- kind: "scalar",
- resolve: resolveYamlInteger,
- construct: constructYamlInteger,
- predicate: isInteger,
- represent: {
- binary: function(obj) {
- return obj >= 0 ? "0b" + obj.toString(2) : "-0b" + obj.toString(2).slice(1);
- },
- octal: function(obj) {
- return obj >= 0 ? "0o" + obj.toString(8) : "-0o" + obj.toString(8).slice(1);
- },
- decimal: function(obj) {
- return obj.toString(10);
- },
- /* eslint-disable max-len */
- hexadecimal: function(obj) {
- return obj >= 0 ? "0x" + obj.toString(16).toUpperCase() : "-0x" + obj.toString(16).toUpperCase().slice(1);
- }
- },
- defaultStyle: "decimal",
- styleAliases: {
- binary: [2, "bin"],
- octal: [8, "oct"],
- decimal: [10, "dec"],
- hexadecimal: [16, "hex"]
- }
- });
- }
- });
- // node_modules/js-yaml/lib/type/float.js
- var require_float = __commonJS({
- "node_modules/js-yaml/lib/type/float.js"(exports2, module2) {
- "use strict";
- var common = require_common2();
- var Type = require_type2();
- var YAML_FLOAT_PATTERN = new RegExp(
- // 2.5e4, 2.5 and integers
- "^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"
- );
- function resolveYamlFloat(data) {
- if (data === null) return false;
- if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_`
- // Probably should update regexp & check speed
- data[data.length - 1] === "_") {
- return false;
- }
- return true;
- }
- function constructYamlFloat(data) {
- var value, sign;
- value = data.replace(/_/g, "").toLowerCase();
- sign = value[0] === "-" ? -1 : 1;
- if ("+-".indexOf(value[0]) >= 0) {
- value = value.slice(1);
- }
- if (value === ".inf") {
- return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;
- } else if (value === ".nan") {
- return NaN;
- }
- return sign * parseFloat(value, 10);
- }
- var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;
- function representYamlFloat(object, style) {
- var res;
- if (isNaN(object)) {
- switch (style) {
- case "lowercase":
- return ".nan";
- case "uppercase":
- return ".NAN";
- case "camelcase":
- return ".NaN";
- }
- } else if (Number.POSITIVE_INFINITY === object) {
- switch (style) {
- case "lowercase":
- return ".inf";
- case "uppercase":
- return ".INF";
- case "camelcase":
- return ".Inf";
- }
- } else if (Number.NEGATIVE_INFINITY === object) {
- switch (style) {
- case "lowercase":
- return "-.inf";
- case "uppercase":
- return "-.INF";
- case "camelcase":
- return "-.Inf";
- }
- } else if (common.isNegativeZero(object)) {
- return "-0.0";
- }
- res = object.toString(10);
- return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res;
- }
- function isFloat(object) {
- return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 !== 0 || common.isNegativeZero(object));
- }
- module2.exports = new Type("tag:yaml.org,2002:float", {
- kind: "scalar",
- resolve: resolveYamlFloat,
- construct: constructYamlFloat,
- predicate: isFloat,
- represent: representYamlFloat,
- defaultStyle: "lowercase"
- });
- }
- });
- // node_modules/js-yaml/lib/schema/json.js
- var require_json3 = __commonJS({
- "node_modules/js-yaml/lib/schema/json.js"(exports2, module2) {
- "use strict";
- module2.exports = require_failsafe().extend({
- implicit: [
- require_null(),
- require_bool(),
- require_int(),
- require_float()
- ]
- });
- }
- });
- // node_modules/js-yaml/lib/schema/core.js
- var require_core = __commonJS({
- "node_modules/js-yaml/lib/schema/core.js"(exports2, module2) {
- "use strict";
- module2.exports = require_json3();
- }
- });
- // node_modules/js-yaml/lib/type/timestamp.js
- var require_timestamp = __commonJS({
- "node_modules/js-yaml/lib/type/timestamp.js"(exports2, module2) {
- "use strict";
- var Type = require_type2();
- var YAML_DATE_REGEXP = new RegExp(
- "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"
- );
- var YAML_TIMESTAMP_REGEXP = new RegExp(
- "^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"
- );
- function resolveYamlTimestamp(data) {
- if (data === null) return false;
- if (YAML_DATE_REGEXP.exec(data) !== null) return true;
- if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;
- return false;
- }
- function constructYamlTimestamp(data) {
- var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date;
- match = YAML_DATE_REGEXP.exec(data);
- if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);
- if (match === null) throw new Error("Date resolve error");
- year = +match[1];
- month = +match[2] - 1;
- day = +match[3];
- if (!match[4]) {
- return new Date(Date.UTC(year, month, day));
- }
- hour = +match[4];
- minute = +match[5];
- second = +match[6];
- if (match[7]) {
- fraction = match[7].slice(0, 3);
- while (fraction.length < 3) {
- fraction += "0";
- }
- fraction = +fraction;
- }
- if (match[9]) {
- tz_hour = +match[10];
- tz_minute = +(match[11] || 0);
- delta = (tz_hour * 60 + tz_minute) * 6e4;
- if (match[9] === "-") delta = -delta;
- }
- date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));
- if (delta) date.setTime(date.getTime() - delta);
- return date;
- }
- function representYamlTimestamp(object) {
- return object.toISOString();
- }
- module2.exports = new Type("tag:yaml.org,2002:timestamp", {
- kind: "scalar",
- resolve: resolveYamlTimestamp,
- construct: constructYamlTimestamp,
- instanceOf: Date,
- represent: representYamlTimestamp
- });
- }
- });
- // node_modules/js-yaml/lib/type/merge.js
- var require_merge2 = __commonJS({
- "node_modules/js-yaml/lib/type/merge.js"(exports2, module2) {
- "use strict";
- var Type = require_type2();
- function resolveYamlMerge(data) {
- return data === "<<" || data === null;
- }
- module2.exports = new Type("tag:yaml.org,2002:merge", {
- kind: "scalar",
- resolve: resolveYamlMerge
- });
- }
- });
- // node_modules/js-yaml/lib/type/binary.js
- var require_binary = __commonJS({
- "node_modules/js-yaml/lib/type/binary.js"(exports2, module2) {
- "use strict";
- var Type = require_type2();
- var BASE64_MAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";
- function resolveYamlBinary(data) {
- if (data === null) return false;
- var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;
- for (idx = 0; idx < max; idx++) {
- code = map.indexOf(data.charAt(idx));
- if (code > 64) continue;
- if (code < 0) return false;
- bitlen += 6;
- }
- return bitlen % 8 === 0;
- }
- function constructYamlBinary(data) {
- var idx, tailbits, input = data.replace(/[\r\n=]/g, ""), max = input.length, map = BASE64_MAP, bits = 0, result = [];
- for (idx = 0; idx < max; idx++) {
- if (idx % 4 === 0 && idx) {
- result.push(bits >> 16 & 255);
- result.push(bits >> 8 & 255);
- result.push(bits & 255);
- }
- bits = bits << 6 | map.indexOf(input.charAt(idx));
- }
- tailbits = max % 4 * 6;
- if (tailbits === 0) {
- result.push(bits >> 16 & 255);
- result.push(bits >> 8 & 255);
- result.push(bits & 255);
- } else if (tailbits === 18) {
- result.push(bits >> 10 & 255);
- result.push(bits >> 2 & 255);
- } else if (tailbits === 12) {
- result.push(bits >> 4 & 255);
- }
- return new Uint8Array(result);
- }
- function representYamlBinary(object) {
- var result = "", bits = 0, idx, tail, max = object.length, map = BASE64_MAP;
- for (idx = 0; idx < max; idx++) {
- if (idx % 3 === 0 && idx) {
- result += map[bits >> 18 & 63];
- result += map[bits >> 12 & 63];
- result += map[bits >> 6 & 63];
- result += map[bits & 63];
- }
- bits = (bits << 8) + object[idx];
- }
- tail = max % 3;
- if (tail === 0) {
- result += map[bits >> 18 & 63];
- result += map[bits >> 12 & 63];
- result += map[bits >> 6 & 63];
- result += map[bits & 63];
- } else if (tail === 2) {
- result += map[bits >> 10 & 63];
- result += map[bits >> 4 & 63];
- result += map[bits << 2 & 63];
- result += map[64];
- } else if (tail === 1) {
- result += map[bits >> 2 & 63];
- result += map[bits << 4 & 63];
- result += map[64];
- result += map[64];
- }
- return result;
- }
- function isBinary(obj) {
- return Object.prototype.toString.call(obj) === "[object Uint8Array]";
- }
- module2.exports = new Type("tag:yaml.org,2002:binary", {
- kind: "scalar",
- resolve: resolveYamlBinary,
- construct: constructYamlBinary,
- predicate: isBinary,
- represent: representYamlBinary
- });
- }
- });
- // node_modules/js-yaml/lib/type/omap.js
- var require_omap = __commonJS({
- "node_modules/js-yaml/lib/type/omap.js"(exports2, module2) {
- "use strict";
- var Type = require_type2();
- var _hasOwnProperty = Object.prototype.hasOwnProperty;
- var _toString = Object.prototype.toString;
- function resolveYamlOmap(data) {
- if (data === null) return true;
- var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data;
- for (index = 0, length = object.length; index < length; index += 1) {
- pair = object[index];
- pairHasKey = false;
- if (_toString.call(pair) !== "[object Object]") return false;
- for (pairKey in pair) {
- if (_hasOwnProperty.call(pair, pairKey)) {
- if (!pairHasKey) pairHasKey = true;
- else return false;
- }
- }
- if (!pairHasKey) return false;
- if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);
- else return false;
- }
- return true;
- }
- function constructYamlOmap(data) {
- return data !== null ? data : [];
- }
- module2.exports = new Type("tag:yaml.org,2002:omap", {
- kind: "sequence",
- resolve: resolveYamlOmap,
- construct: constructYamlOmap
- });
- }
- });
- // node_modules/js-yaml/lib/type/pairs.js
- var require_pairs = __commonJS({
- "node_modules/js-yaml/lib/type/pairs.js"(exports2, module2) {
- "use strict";
- var Type = require_type2();
- var _toString = Object.prototype.toString;
- function resolveYamlPairs(data) {
- if (data === null) return true;
- var index, length, pair, keys, result, object = data;
- result = new Array(object.length);
- for (index = 0, length = object.length; index < length; index += 1) {
- pair = object[index];
- if (_toString.call(pair) !== "[object Object]") return false;
- keys = Object.keys(pair);
- if (keys.length !== 1) return false;
- result[index] = [keys[0], pair[keys[0]]];
- }
- return true;
- }
- function constructYamlPairs(data) {
- if (data === null) return [];
- var index, length, pair, keys, result, object = data;
- result = new Array(object.length);
- for (index = 0, length = object.length; index < length; index += 1) {
- pair = object[index];
- keys = Object.keys(pair);
- result[index] = [keys[0], pair[keys[0]]];
- }
- return result;
- }
- module2.exports = new Type("tag:yaml.org,2002:pairs", {
- kind: "sequence",
- resolve: resolveYamlPairs,
- construct: constructYamlPairs
- });
- }
- });
- // node_modules/js-yaml/lib/type/set.js
- var require_set = __commonJS({
- "node_modules/js-yaml/lib/type/set.js"(exports2, module2) {
- "use strict";
- var Type = require_type2();
- var _hasOwnProperty = Object.prototype.hasOwnProperty;
- function resolveYamlSet(data) {
- if (data === null) return true;
- var key, object = data;
- for (key in object) {
- if (_hasOwnProperty.call(object, key)) {
- if (object[key] !== null) return false;
- }
- }
- return true;
- }
- function constructYamlSet(data) {
- return data !== null ? data : {};
- }
- module2.exports = new Type("tag:yaml.org,2002:set", {
- kind: "mapping",
- resolve: resolveYamlSet,
- construct: constructYamlSet
- });
- }
- });
- // node_modules/js-yaml/lib/schema/default.js
- var require_default = __commonJS({
- "node_modules/js-yaml/lib/schema/default.js"(exports2, module2) {
- "use strict";
- module2.exports = require_core().extend({
- implicit: [
- require_timestamp(),
- require_merge2()
- ],
- explicit: [
- require_binary(),
- require_omap(),
- require_pairs(),
- require_set()
- ]
- });
- }
- });
- // node_modules/js-yaml/lib/loader.js
- var require_loader = __commonJS({
- "node_modules/js-yaml/lib/loader.js"(exports2, module2) {
- "use strict";
- var common = require_common2();
- var YAMLException = require_exception();
- var makeSnippet = require_snippet();
- var DEFAULT_SCHEMA = require_default();
- var _hasOwnProperty = Object.prototype.hasOwnProperty;
- var CONTEXT_FLOW_IN = 1;
- var CONTEXT_FLOW_OUT = 2;
- var CONTEXT_BLOCK_IN = 3;
- var CONTEXT_BLOCK_OUT = 4;
- var CHOMPING_CLIP = 1;
- var CHOMPING_STRIP = 2;
- var CHOMPING_KEEP = 3;
- var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
- var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/;
- var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/;
- var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i;
- var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;
- function _class(obj) {
- return Object.prototype.toString.call(obj);
- }
- function is_EOL(c) {
- return c === 10 || c === 13;
- }
- function is_WHITE_SPACE(c) {
- return c === 9 || c === 32;
- }
- function is_WS_OR_EOL(c) {
- return c === 9 || c === 32 || c === 10 || c === 13;
- }
- function is_FLOW_INDICATOR(c) {
- return c === 44 || c === 91 || c === 93 || c === 123 || c === 125;
- }
- function fromHexCode(c) {
- var lc;
- if (48 <= c && c <= 57) {
- return c - 48;
- }
- lc = c | 32;
- if (97 <= lc && lc <= 102) {
- return lc - 97 + 10;
- }
- return -1;
- }
- function escapedHexLen(c) {
- if (c === 120) {
- return 2;
- }
- if (c === 117) {
- return 4;
- }
- if (c === 85) {
- return 8;
- }
- return 0;
- }
- function fromDecimalCode(c) {
- if (48 <= c && c <= 57) {
- return c - 48;
- }
- return -1;
- }
- function simpleEscapeSequence(c) {
- return c === 48 ? "\0" : c === 97 ? "\x07" : c === 98 ? "\b" : c === 116 ? " " : c === 9 ? " " : c === 110 ? "\n" : c === 118 ? "\v" : c === 102 ? "\f" : c === 114 ? "\r" : c === 101 ? "\x1B" : c === 32 ? " " : c === 34 ? '"' : c === 47 ? "/" : c === 92 ? "\\" : c === 78 ? "\x85" : c === 95 ? "\xA0" : c === 76 ? "\u2028" : c === 80 ? "\u2029" : "";
- }
- function charFromCodepoint(c) {
- if (c <= 65535) {
- return String.fromCharCode(c);
- }
- return String.fromCharCode(
- (c - 65536 >> 10) + 55296,
- (c - 65536 & 1023) + 56320
- );
- }
- function setProperty(object, key, value) {
- if (key === "__proto__") {
- Object.defineProperty(object, key, {
- configurable: true,
- enumerable: true,
- writable: true,
- value
- });
- } else {
- object[key] = value;
- }
- }
- var simpleEscapeCheck = new Array(256);
- var simpleEscapeMap = new Array(256);
- for (i = 0; i < 256; i++) {
- simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;
- simpleEscapeMap[i] = simpleEscapeSequence(i);
- }
- var i;
- function State(input, options) {
- this.input = input;
- this.filename = options["filename"] || null;
- this.schema = options["schema"] || DEFAULT_SCHEMA;
- this.onWarning = options["onWarning"] || null;
- this.legacy = options["legacy"] || false;
- this.json = options["json"] || false;
- this.listener = options["listener"] || null;
- this.implicitTypes = this.schema.compiledImplicit;
- this.typeMap = this.schema.compiledTypeMap;
- this.length = input.length;
- this.position = 0;
- this.line = 0;
- this.lineStart = 0;
- this.lineIndent = 0;
- this.firstTabInLine = -1;
- this.documents = [];
- }
- function generateError(state, message) {
- var mark = {
- name: state.filename,
- buffer: state.input.slice(0, -1),
- // omit trailing \0
- position: state.position,
- line: state.line,
- column: state.position - state.lineStart
- };
- mark.snippet = makeSnippet(mark);
- return new YAMLException(message, mark);
- }
- function throwError(state, message) {
- throw generateError(state, message);
- }
- function throwWarning(state, message) {
- if (state.onWarning) {
- state.onWarning.call(null, generateError(state, message));
- }
- }
- var directiveHandlers = {
- YAML: function handleYamlDirective(state, name, args) {
- var match, major, minor;
- if (state.version !== null) {
- throwError(state, "duplication of %YAML directive");
- }
- if (args.length !== 1) {
- throwError(state, "YAML directive accepts exactly one argument");
- }
- match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]);
- if (match === null) {
- throwError(state, "ill-formed argument of the YAML directive");
- }
- major = parseInt(match[1], 10);
- minor = parseInt(match[2], 10);
- if (major !== 1) {
- throwError(state, "unacceptable YAML version of the document");
- }
- state.version = args[0];
- state.checkLineBreaks = minor < 2;
- if (minor !== 1 && minor !== 2) {
- throwWarning(state, "unsupported YAML version of the document");
- }
- },
- TAG: function handleTagDirective(state, name, args) {
- var handle, prefix;
- if (args.length !== 2) {
- throwError(state, "TAG directive accepts exactly two arguments");
- }
- handle = args[0];
- prefix = args[1];
- if (!PATTERN_TAG_HANDLE.test(handle)) {
- throwError(state, "ill-formed tag handle (first argument) of the TAG directive");
- }
- if (_hasOwnProperty.call(state.tagMap, handle)) {
- throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle');
- }
- if (!PATTERN_TAG_URI.test(prefix)) {
- throwError(state, "ill-formed tag prefix (second argument) of the TAG directive");
- }
- try {
- prefix = decodeURIComponent(prefix);
- } catch (err) {
- throwError(state, "tag prefix is malformed: " + prefix);
- }
- state.tagMap[handle] = prefix;
- }
- };
- function captureSegment(state, start, end, checkJson) {
- var _position, _length, _character, _result;
- if (start < end) {
- _result = state.input.slice(start, end);
- if (checkJson) {
- for (_position = 0, _length = _result.length; _position < _length; _position += 1) {
- _character = _result.charCodeAt(_position);
- if (!(_character === 9 || 32 <= _character && _character <= 1114111)) {
- throwError(state, "expected valid JSON character");
- }
- }
- } else if (PATTERN_NON_PRINTABLE.test(_result)) {
- throwError(state, "the stream contains non-printable characters");
- }
- state.result += _result;
- }
- }
- function mergeMappings(state, destination, source, overridableKeys) {
- var sourceKeys, key, index, quantity;
- if (!common.isObject(source)) {
- throwError(state, "cannot merge mappings; the provided source object is unacceptable");
- }
- sourceKeys = Object.keys(source);
- for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {
- key = sourceKeys[index];
- if (!_hasOwnProperty.call(destination, key)) {
- setProperty(destination, key, source[key]);
- overridableKeys[key] = true;
- }
- }
- }
- function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) {
- var index, quantity;
- if (Array.isArray(keyNode)) {
- keyNode = Array.prototype.slice.call(keyNode);
- for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {
- if (Array.isArray(keyNode[index])) {
- throwError(state, "nested arrays are not supported inside keys");
- }
- if (typeof keyNode === "object" && _class(keyNode[index]) === "[object Object]") {
- keyNode[index] = "[object Object]";
- }
- }
- }
- if (typeof keyNode === "object" && _class(keyNode) === "[object Object]") {
- keyNode = "[object Object]";
- }
- keyNode = String(keyNode);
- if (_result === null) {
- _result = {};
- }
- if (keyTag === "tag:yaml.org,2002:merge") {
- if (Array.isArray(valueNode)) {
- for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {
- mergeMappings(state, _result, valueNode[index], overridableKeys);
- }
- } else {
- mergeMappings(state, _result, valueNode, overridableKeys);
- }
- } else {
- if (!state.json && !_hasOwnProperty.call(overridableKeys, keyNode) && _hasOwnProperty.call(_result, keyNode)) {
- state.line = startLine || state.line;
- state.lineStart = startLineStart || state.lineStart;
- state.position = startPos || state.position;
- throwError(state, "duplicated mapping key");
- }
- setProperty(_result, keyNode, valueNode);
- delete overridableKeys[keyNode];
- }
- return _result;
- }
- function readLineBreak(state) {
- var ch;
- ch = state.input.charCodeAt(state.position);
- if (ch === 10) {
- state.position++;
- } else if (ch === 13) {
- state.position++;
- if (state.input.charCodeAt(state.position) === 10) {
- state.position++;
- }
- } else {
- throwError(state, "a line break is expected");
- }
- state.line += 1;
- state.lineStart = state.position;
- state.firstTabInLine = -1;
- }
- function skipSeparationSpace(state, allowComments, checkIndent) {
- var lineBreaks = 0, ch = state.input.charCodeAt(state.position);
- while (ch !== 0) {
- while (is_WHITE_SPACE(ch)) {
- if (ch === 9 && state.firstTabInLine === -1) {
- state.firstTabInLine = state.position;
- }
- ch = state.input.charCodeAt(++state.position);
- }
- if (allowComments && ch === 35) {
- do {
- ch = state.input.charCodeAt(++state.position);
- } while (ch !== 10 && ch !== 13 && ch !== 0);
- }
- if (is_EOL(ch)) {
- readLineBreak(state);
- ch = state.input.charCodeAt(state.position);
- lineBreaks++;
- state.lineIndent = 0;
- while (ch === 32) {
- state.lineIndent++;
- ch = state.input.charCodeAt(++state.position);
- }
- } else {
- break;
- }
- }
- if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {
- throwWarning(state, "deficient indentation");
- }
- return lineBreaks;
- }
- function testDocumentSeparator(state) {
- var _position = state.position, ch;
- ch = state.input.charCodeAt(_position);
- if ((ch === 45 || ch === 46) && ch === state.input.charCodeAt(_position + 1) && ch === state.input.charCodeAt(_position + 2)) {
- _position += 3;
- ch = state.input.charCodeAt(_position);
- if (ch === 0 || is_WS_OR_EOL(ch)) {
- return true;
- }
- }
- return false;
- }
- function writeFoldedLines(state, count) {
- if (count === 1) {
- state.result += " ";
- } else if (count > 1) {
- state.result += common.repeat("\n", count - 1);
- }
- }
- function readPlainScalar(state, nodeIndent, withinFlowCollection) {
- var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state.kind, _result = state.result, ch;
- ch = state.input.charCodeAt(state.position);
- if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) {
- return false;
- }
- if (ch === 63 || ch === 45) {
- following = state.input.charCodeAt(state.position + 1);
- if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {
- return false;
- }
- }
- state.kind = "scalar";
- state.result = "";
- captureStart = captureEnd = state.position;
- hasPendingContent = false;
- while (ch !== 0) {
- if (ch === 58) {
- following = state.input.charCodeAt(state.position + 1);
- if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {
- break;
- }
- } else if (ch === 35) {
- preceding = state.input.charCodeAt(state.position - 1);
- if (is_WS_OR_EOL(preceding)) {
- break;
- }
- } else if (state.position === state.lineStart && testDocumentSeparator(state) || withinFlowCollection && is_FLOW_INDICATOR(ch)) {
- break;
- } else if (is_EOL(ch)) {
- _line = state.line;
- _lineStart = state.lineStart;
- _lineIndent = state.lineIndent;
- skipSeparationSpace(state, false, -1);
- if (state.lineIndent >= nodeIndent) {
- hasPendingContent = true;
- ch = state.input.charCodeAt(state.position);
- continue;
- } else {
- state.position = captureEnd;
- state.line = _line;
- state.lineStart = _lineStart;
- state.lineIndent = _lineIndent;
- break;
- }
- }
- if (hasPendingContent) {
- captureSegment(state, captureStart, captureEnd, false);
- writeFoldedLines(state, state.line - _line);
- captureStart = captureEnd = state.position;
- hasPendingContent = false;
- }
- if (!is_WHITE_SPACE(ch)) {
- captureEnd = state.position + 1;
- }
- ch = state.input.charCodeAt(++state.position);
- }
- captureSegment(state, captureStart, captureEnd, false);
- if (state.result) {
- return true;
- }
- state.kind = _kind;
- state.result = _result;
- return false;
- }
- function readSingleQuotedScalar(state, nodeIndent) {
- var ch, captureStart, captureEnd;
- ch = state.input.charCodeAt(state.position);
- if (ch !== 39) {
- return false;
- }
- state.kind = "scalar";
- state.result = "";
- state.position++;
- captureStart = captureEnd = state.position;
- while ((ch = state.input.charCodeAt(state.position)) !== 0) {
- if (ch === 39) {
- captureSegment(state, captureStart, state.position, true);
- ch = state.input.charCodeAt(++state.position);
- if (ch === 39) {
- captureStart = state.position;
- state.position++;
- captureEnd = state.position;
- } else {
- return true;
- }
- } else if (is_EOL(ch)) {
- captureSegment(state, captureStart, captureEnd, true);
- writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));
- captureStart = captureEnd = state.position;
- } else if (state.position === state.lineStart && testDocumentSeparator(state)) {
- throwError(state, "unexpected end of the document within a single quoted scalar");
- } else {
- state.position++;
- captureEnd = state.position;
- }
- }
- throwError(state, "unexpected end of the stream within a single quoted scalar");
- }
- function readDoubleQuotedScalar(state, nodeIndent) {
- var captureStart, captureEnd, hexLength, hexResult, tmp, ch;
- ch = state.input.charCodeAt(state.position);
- if (ch !== 34) {
- return false;
- }
- state.kind = "scalar";
- state.result = "";
- state.position++;
- captureStart = captureEnd = state.position;
- while ((ch = state.input.charCodeAt(state.position)) !== 0) {
- if (ch === 34) {
- captureSegment(state, captureStart, state.position, true);
- state.position++;
- return true;
- } else if (ch === 92) {
- captureSegment(state, captureStart, state.position, true);
- ch = state.input.charCodeAt(++state.position);
- if (is_EOL(ch)) {
- skipSeparationSpace(state, false, nodeIndent);
- } else if (ch < 256 && simpleEscapeCheck[ch]) {
- state.result += simpleEscapeMap[ch];
- state.position++;
- } else if ((tmp = escapedHexLen(ch)) > 0) {
- hexLength = tmp;
- hexResult = 0;
- for (; hexLength > 0; hexLength--) {
- ch = state.input.charCodeAt(++state.position);
- if ((tmp = fromHexCode(ch)) >= 0) {
- hexResult = (hexResult << 4) + tmp;
- } else {
- throwError(state, "expected hexadecimal character");
- }
- }
- state.result += charFromCodepoint(hexResult);
- state.position++;
- } else {
- throwError(state, "unknown escape sequence");
- }
- captureStart = captureEnd = state.position;
- } else if (is_EOL(ch)) {
- captureSegment(state, captureStart, captureEnd, true);
- writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));
- captureStart = captureEnd = state.position;
- } else if (state.position === state.lineStart && testDocumentSeparator(state)) {
- throwError(state, "unexpected end of the document within a double quoted scalar");
- } else {
- state.position++;
- captureEnd = state.position;
- }
- }
- throwError(state, "unexpected end of the stream within a double quoted scalar");
- }
- function readFlowCollection(state, nodeIndent) {
- var readNext = true, _line, _lineStart, _pos, _tag = state.tag, _result, _anchor = state.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch;
- ch = state.input.charCodeAt(state.position);
- if (ch === 91) {
- terminator = 93;
- isMapping = false;
- _result = [];
- } else if (ch === 123) {
- terminator = 125;
- isMapping = true;
- _result = {};
- } else {
- return false;
- }
- if (state.anchor !== null) {
- state.anchorMap[state.anchor] = _result;
- }
- ch = state.input.charCodeAt(++state.position);
- while (ch !== 0) {
- skipSeparationSpace(state, true, nodeIndent);
- ch = state.input.charCodeAt(state.position);
- if (ch === terminator) {
- state.position++;
- state.tag = _tag;
- state.anchor = _anchor;
- state.kind = isMapping ? "mapping" : "sequence";
- state.result = _result;
- return true;
- } else if (!readNext) {
- throwError(state, "missed comma between flow collection entries");
- } else if (ch === 44) {
- throwError(state, "expected the node content, but found ','");
- }
- keyTag = keyNode = valueNode = null;
- isPair = isExplicitPair = false;
- if (ch === 63) {
- following = state.input.charCodeAt(state.position + 1);
- if (is_WS_OR_EOL(following)) {
- isPair = isExplicitPair = true;
- state.position++;
- skipSeparationSpace(state, true, nodeIndent);
- }
- }
- _line = state.line;
- _lineStart = state.lineStart;
- _pos = state.position;
- composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
- keyTag = state.tag;
- keyNode = state.result;
- skipSeparationSpace(state, true, nodeIndent);
- ch = state.input.charCodeAt(state.position);
- if ((isExplicitPair || state.line === _line) && ch === 58) {
- isPair = true;
- ch = state.input.charCodeAt(++state.position);
- skipSeparationSpace(state, true, nodeIndent);
- composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
- valueNode = state.result;
- }
- if (isMapping) {
- storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);
- } else if (isPair) {
- _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));
- } else {
- _result.push(keyNode);
- }
- skipSeparationSpace(state, true, nodeIndent);
- ch = state.input.charCodeAt(state.position);
- if (ch === 44) {
- readNext = true;
- ch = state.input.charCodeAt(++state.position);
- } else {
- readNext = false;
- }
- }
- throwError(state, "unexpected end of the stream within a flow collection");
- }
- function readBlockScalar(state, nodeIndent) {
- var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch;
- ch = state.input.charCodeAt(state.position);
- if (ch === 124) {
- folding = false;
- } else if (ch === 62) {
- folding = true;
- } else {
- return false;
- }
- state.kind = "scalar";
- state.result = "";
- while (ch !== 0) {
- ch = state.input.charCodeAt(++state.position);
- if (ch === 43 || ch === 45) {
- if (CHOMPING_CLIP === chomping) {
- chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP;
- } else {
- throwError(state, "repeat of a chomping mode identifier");
- }
- } else if ((tmp = fromDecimalCode(ch)) >= 0) {
- if (tmp === 0) {
- throwError(state, "bad explicit indentation width of a block scalar; it cannot be less than one");
- } else if (!detectedIndent) {
- textIndent = nodeIndent + tmp - 1;
- detectedIndent = true;
- } else {
- throwError(state, "repeat of an indentation width identifier");
- }
- } else {
- break;
- }
- }
- if (is_WHITE_SPACE(ch)) {
- do {
- ch = state.input.charCodeAt(++state.position);
- } while (is_WHITE_SPACE(ch));
- if (ch === 35) {
- do {
- ch = state.input.charCodeAt(++state.position);
- } while (!is_EOL(ch) && ch !== 0);
- }
- }
- while (ch !== 0) {
- readLineBreak(state);
- state.lineIndent = 0;
- ch = state.input.charCodeAt(state.position);
- while ((!detectedIndent || state.lineIndent < textIndent) && ch === 32) {
- state.lineIndent++;
- ch = state.input.charCodeAt(++state.position);
- }
- if (!detectedIndent && state.lineIndent > textIndent) {
- textIndent = state.lineIndent;
- }
- if (is_EOL(ch)) {
- emptyLines++;
- continue;
- }
- if (state.lineIndent < textIndent) {
- if (chomping === CHOMPING_KEEP) {
- state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
- } else if (chomping === CHOMPING_CLIP) {
- if (didReadContent) {
- state.result += "\n";
- }
- }
- break;
- }
- if (folding) {
- if (is_WHITE_SPACE(ch)) {
- atMoreIndented = true;
- state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
- } else if (atMoreIndented) {
- atMoreIndented = false;
- state.result += common.repeat("\n", emptyLines + 1);
- } else if (emptyLines === 0) {
- if (didReadContent) {
- state.result += " ";
- }
- } else {
- state.result += common.repeat("\n", emptyLines);
- }
- } else {
- state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
- }
- didReadContent = true;
- detectedIndent = true;
- emptyLines = 0;
- captureStart = state.position;
- while (!is_EOL(ch) && ch !== 0) {
- ch = state.input.charCodeAt(++state.position);
- }
- captureSegment(state, captureStart, state.position, false);
- }
- return true;
- }
- function readBlockSequence(state, nodeIndent) {
- var _line, _tag = state.tag, _anchor = state.anchor, _result = [], following, detected = false, ch;
- if (state.firstTabInLine !== -1) return false;
- if (state.anchor !== null) {
- state.anchorMap[state.anchor] = _result;
- }
- ch = state.input.charCodeAt(state.position);
- while (ch !== 0) {
- if (state.firstTabInLine !== -1) {
- state.position = state.firstTabInLine;
- throwError(state, "tab characters must not be used in indentation");
- }
- if (ch !== 45) {
- break;
- }
- following = state.input.charCodeAt(state.position + 1);
- if (!is_WS_OR_EOL(following)) {
- break;
- }
- detected = true;
- state.position++;
- if (skipSeparationSpace(state, true, -1)) {
- if (state.lineIndent <= nodeIndent) {
- _result.push(null);
- ch = state.input.charCodeAt(state.position);
- continue;
- }
- }
- _line = state.line;
- composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);
- _result.push(state.result);
- skipSeparationSpace(state, true, -1);
- ch = state.input.charCodeAt(state.position);
- if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) {
- throwError(state, "bad indentation of a sequence entry");
- } else if (state.lineIndent < nodeIndent) {
- break;
- }
- }
- if (detected) {
- state.tag = _tag;
- state.anchor = _anchor;
- state.kind = "sequence";
- state.result = _result;
- return true;
- }
- return false;
- }
- function readBlockMapping(state, nodeIndent, flowIndent) {
- var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state.tag, _anchor = state.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch;
- if (state.firstTabInLine !== -1) return false;
- if (state.anchor !== null) {
- state.anchorMap[state.anchor] = _result;
- }
- ch = state.input.charCodeAt(state.position);
- while (ch !== 0) {
- if (!atExplicitKey && state.firstTabInLine !== -1) {
- state.position = state.firstTabInLine;
- throwError(state, "tab characters must not be used in indentation");
- }
- following = state.input.charCodeAt(state.position + 1);
- _line = state.line;
- if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) {
- if (ch === 63) {
- if (atExplicitKey) {
- storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
- keyTag = keyNode = valueNode = null;
- }
- detected = true;
- atExplicitKey = true;
- allowCompact = true;
- } else if (atExplicitKey) {
- atExplicitKey = false;
- allowCompact = true;
- } else {
- throwError(state, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line");
- }
- state.position += 1;
- ch = following;
- } else {
- _keyLine = state.line;
- _keyLineStart = state.lineStart;
- _keyPos = state.position;
- if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {
- break;
- }
- if (state.line === _line) {
- ch = state.input.charCodeAt(state.position);
- while (is_WHITE_SPACE(ch)) {
- ch = state.input.charCodeAt(++state.position);
- }
- if (ch === 58) {
- ch = state.input.charCodeAt(++state.position);
- if (!is_WS_OR_EOL(ch)) {
- throwError(state, "a whitespace character is expected after the key-value separator within a block mapping");
- }
- if (atExplicitKey) {
- storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
- keyTag = keyNode = valueNode = null;
- }
- detected = true;
- atExplicitKey = false;
- allowCompact = false;
- keyTag = state.tag;
- keyNode = state.result;
- } else if (detected) {
- throwError(state, "can not read an implicit mapping pair; a colon is missed");
- } else {
- state.tag = _tag;
- state.anchor = _anchor;
- return true;
- }
- } else if (detected) {
- throwError(state, "can not read a block mapping entry; a multiline key may not be an implicit key");
- } else {
- state.tag = _tag;
- state.anchor = _anchor;
- return true;
- }
- }
- if (state.line === _line || state.lineIndent > nodeIndent) {
- if (atExplicitKey) {
- _keyLine = state.line;
- _keyLineStart = state.lineStart;
- _keyPos = state.position;
- }
- if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {
- if (atExplicitKey) {
- keyNode = state.result;
- } else {
- valueNode = state.result;
- }
- }
- if (!atExplicitKey) {
- storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);
- keyTag = keyNode = valueNode = null;
- }
- skipSeparationSpace(state, true, -1);
- ch = state.input.charCodeAt(state.position);
- }
- if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) {
- throwError(state, "bad indentation of a mapping entry");
- } else if (state.lineIndent < nodeIndent) {
- break;
- }
- }
- if (atExplicitKey) {
- storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
- }
- if (detected) {
- state.tag = _tag;
- state.anchor = _anchor;
- state.kind = "mapping";
- state.result = _result;
- }
- return detected;
- }
- function readTagProperty(state) {
- var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch;
- ch = state.input.charCodeAt(state.position);
- if (ch !== 33) return false;
- if (state.tag !== null) {
- throwError(state, "duplication of a tag property");
- }
- ch = state.input.charCodeAt(++state.position);
- if (ch === 60) {
- isVerbatim = true;
- ch = state.input.charCodeAt(++state.position);
- } else if (ch === 33) {
- isNamed = true;
- tagHandle = "!!";
- ch = state.input.charCodeAt(++state.position);
- } else {
- tagHandle = "!";
- }
- _position = state.position;
- if (isVerbatim) {
- do {
- ch = state.input.charCodeAt(++state.position);
- } while (ch !== 0 && ch !== 62);
- if (state.position < state.length) {
- tagName = state.input.slice(_position, state.position);
- ch = state.input.charCodeAt(++state.position);
- } else {
- throwError(state, "unexpected end of the stream within a verbatim tag");
- }
- } else {
- while (ch !== 0 && !is_WS_OR_EOL(ch)) {
- if (ch === 33) {
- if (!isNamed) {
- tagHandle = state.input.slice(_position - 1, state.position + 1);
- if (!PATTERN_TAG_HANDLE.test(tagHandle)) {
- throwError(state, "named tag handle cannot contain such characters");
- }
- isNamed = true;
- _position = state.position + 1;
- } else {
- throwError(state, "tag suffix cannot contain exclamation marks");
- }
- }
- ch = state.input.charCodeAt(++state.position);
- }
- tagName = state.input.slice(_position, state.position);
- if (PATTERN_FLOW_INDICATORS.test(tagName)) {
- throwError(state, "tag suffix cannot contain flow indicator characters");
- }
- }
- if (tagName && !PATTERN_TAG_URI.test(tagName)) {
- throwError(state, "tag name cannot contain such characters: " + tagName);
- }
- try {
- tagName = decodeURIComponent(tagName);
- } catch (err) {
- throwError(state, "tag name is malformed: " + tagName);
- }
- if (isVerbatim) {
- state.tag = tagName;
- } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) {
- state.tag = state.tagMap[tagHandle] + tagName;
- } else if (tagHandle === "!") {
- state.tag = "!" + tagName;
- } else if (tagHandle === "!!") {
- state.tag = "tag:yaml.org,2002:" + tagName;
- } else {
- throwError(state, 'undeclared tag handle "' + tagHandle + '"');
- }
- return true;
- }
- function readAnchorProperty(state) {
- var _position, ch;
- ch = state.input.charCodeAt(state.position);
- if (ch !== 38) return false;
- if (state.anchor !== null) {
- throwError(state, "duplication of an anchor property");
- }
- ch = state.input.charCodeAt(++state.position);
- _position = state.position;
- while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
- ch = state.input.charCodeAt(++state.position);
- }
- if (state.position === _position) {
- throwError(state, "name of an anchor node must contain at least one character");
- }
- state.anchor = state.input.slice(_position, state.position);
- return true;
- }
- function readAlias(state) {
- var _position, alias, ch;
- ch = state.input.charCodeAt(state.position);
- if (ch !== 42) return false;
- ch = state.input.charCodeAt(++state.position);
- _position = state.position;
- while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
- ch = state.input.charCodeAt(++state.position);
- }
- if (state.position === _position) {
- throwError(state, "name of an alias node must contain at least one character");
- }
- alias = state.input.slice(_position, state.position);
- if (!_hasOwnProperty.call(state.anchorMap, alias)) {
- throwError(state, 'unidentified alias "' + alias + '"');
- }
- state.result = state.anchorMap[alias];
- skipSeparationSpace(state, true, -1);
- return true;
- }
- function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {
- var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type, flowIndent, blockIndent;
- if (state.listener !== null) {
- state.listener("open", state);
- }
- state.tag = null;
- state.anchor = null;
- state.kind = null;
- state.result = null;
- allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext;
- if (allowToSeek) {
- if (skipSeparationSpace(state, true, -1)) {
- atNewLine = true;
- if (state.lineIndent > parentIndent) {
- indentStatus = 1;
- } else if (state.lineIndent === parentIndent) {
- indentStatus = 0;
- } else if (state.lineIndent < parentIndent) {
- indentStatus = -1;
- }
- }
- }
- if (indentStatus === 1) {
- while (readTagProperty(state) || readAnchorProperty(state)) {
- if (skipSeparationSpace(state, true, -1)) {
- atNewLine = true;
- allowBlockCollections = allowBlockStyles;
- if (state.lineIndent > parentIndent) {
- indentStatus = 1;
- } else if (state.lineIndent === parentIndent) {
- indentStatus = 0;
- } else if (state.lineIndent < parentIndent) {
- indentStatus = -1;
- }
- } else {
- allowBlockCollections = false;
- }
- }
- }
- if (allowBlockCollections) {
- allowBlockCollections = atNewLine || allowCompact;
- }
- if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {
- if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {
- flowIndent = parentIndent;
- } else {
- flowIndent = parentIndent + 1;
- }
- blockIndent = state.position - state.lineStart;
- if (indentStatus === 1) {
- if (allowBlockCollections && (readBlockSequence(state, blockIndent) || readBlockMapping(state, blockIndent, flowIndent)) || readFlowCollection(state, flowIndent)) {
- hasContent = true;
- } else {
- if (allowBlockScalars && readBlockScalar(state, flowIndent) || readSingleQuotedScalar(state, flowIndent) || readDoubleQuotedScalar(state, flowIndent)) {
- hasContent = true;
- } else if (readAlias(state)) {
- hasContent = true;
- if (state.tag !== null || state.anchor !== null) {
- throwError(state, "alias node should not have any properties");
- }
- } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {
- hasContent = true;
- if (state.tag === null) {
- state.tag = "?";
- }
- }
- if (state.anchor !== null) {
- state.anchorMap[state.anchor] = state.result;
- }
- }
- } else if (indentStatus === 0) {
- hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);
- }
- }
- if (state.tag === null) {
- if (state.anchor !== null) {
- state.anchorMap[state.anchor] = state.result;
- }
- } else if (state.tag === "?") {
- if (state.result !== null && state.kind !== "scalar") {
- throwError(state, 'unacceptable node kind for !<?> tag; it should be "scalar", not "' + state.kind + '"');
- }
- for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {
- type = state.implicitTypes[typeIndex];
- if (type.resolve(state.result)) {
- state.result = type.construct(state.result);
- state.tag = type.tag;
- if (state.anchor !== null) {
- state.anchorMap[state.anchor] = state.result;
- }
- break;
- }
- }
- } else if (state.tag !== "!") {
- if (_hasOwnProperty.call(state.typeMap[state.kind || "fallback"], state.tag)) {
- type = state.typeMap[state.kind || "fallback"][state.tag];
- } else {
- type = null;
- typeList = state.typeMap.multi[state.kind || "fallback"];
- for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {
- if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {
- type = typeList[typeIndex];
- break;
- }
- }
- }
- if (!type) {
- throwError(state, "unknown tag !<" + state.tag + ">");
- }
- if (state.result !== null && type.kind !== state.kind) {
- throwError(state, "unacceptable node kind for !<" + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"');
- }
- if (!type.resolve(state.result, state.tag)) {
- throwError(state, "cannot resolve a node with !<" + state.tag + "> explicit tag");
- } else {
- state.result = type.construct(state.result, state.tag);
- if (state.anchor !== null) {
- state.anchorMap[state.anchor] = state.result;
- }
- }
- }
- if (state.listener !== null) {
- state.listener("close", state);
- }
- return state.tag !== null || state.anchor !== null || hasContent;
- }
- function readDocument(state) {
- var documentStart = state.position, _position, directiveName, directiveArgs, hasDirectives = false, ch;
- state.version = null;
- state.checkLineBreaks = state.legacy;
- state.tagMap = /* @__PURE__ */ Object.create(null);
- state.anchorMap = /* @__PURE__ */ Object.create(null);
- while ((ch = state.input.charCodeAt(state.position)) !== 0) {
- skipSeparationSpace(state, true, -1);
- ch = state.input.charCodeAt(state.position);
- if (state.lineIndent > 0 || ch !== 37) {
- break;
- }
- hasDirectives = true;
- ch = state.input.charCodeAt(++state.position);
- _position = state.position;
- while (ch !== 0 && !is_WS_OR_EOL(ch)) {
- ch = state.input.charCodeAt(++state.position);
- }
- directiveName = state.input.slice(_position, state.position);
- directiveArgs = [];
- if (directiveName.length < 1) {
- throwError(state, "directive name must not be less than one character in length");
- }
- while (ch !== 0) {
- while (is_WHITE_SPACE(ch)) {
- ch = state.input.charCodeAt(++state.position);
- }
- if (ch === 35) {
- do {
- ch = state.input.charCodeAt(++state.position);
- } while (ch !== 0 && !is_EOL(ch));
- break;
- }
- if (is_EOL(ch)) break;
- _position = state.position;
- while (ch !== 0 && !is_WS_OR_EOL(ch)) {
- ch = state.input.charCodeAt(++state.position);
- }
- directiveArgs.push(state.input.slice(_position, state.position));
- }
- if (ch !== 0) readLineBreak(state);
- if (_hasOwnProperty.call(directiveHandlers, directiveName)) {
- directiveHandlers[directiveName](state, directiveName, directiveArgs);
- } else {
- throwWarning(state, 'unknown document directive "' + directiveName + '"');
- }
- }
- skipSeparationSpace(state, true, -1);
- if (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 45 && state.input.charCodeAt(state.position + 1) === 45 && state.input.charCodeAt(state.position + 2) === 45) {
- state.position += 3;
- skipSeparationSpace(state, true, -1);
- } else if (hasDirectives) {
- throwError(state, "directives end mark is expected");
- }
- composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);
- skipSeparationSpace(state, true, -1);
- if (state.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {
- throwWarning(state, "non-ASCII line breaks are interpreted as content");
- }
- state.documents.push(state.result);
- if (state.position === state.lineStart && testDocumentSeparator(state)) {
- if (state.input.charCodeAt(state.position) === 46) {
- state.position += 3;
- skipSeparationSpace(state, true, -1);
- }
- return;
- }
- if (state.position < state.length - 1) {
- throwError(state, "end of the stream or a document separator is expected");
- } else {
- return;
- }
- }
- function loadDocuments(input, options) {
- input = String(input);
- options = options || {};
- if (input.length !== 0) {
- if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) {
- input += "\n";
- }
- if (input.charCodeAt(0) === 65279) {
- input = input.slice(1);
- }
- }
- var state = new State(input, options);
- var nullpos = input.indexOf("\0");
- if (nullpos !== -1) {
- state.position = nullpos;
- throwError(state, "null byte is not allowed in input");
- }
- state.input += "\0";
- while (state.input.charCodeAt(state.position) === 32) {
- state.lineIndent += 1;
- state.position += 1;
- }
- while (state.position < state.length - 1) {
- readDocument(state);
- }
- return state.documents;
- }
- function loadAll(input, iterator, options) {
- if (iterator !== null && typeof iterator === "object" && typeof options === "undefined") {
- options = iterator;
- iterator = null;
- }
- var documents = loadDocuments(input, options);
- if (typeof iterator !== "function") {
- return documents;
- }
- for (var index = 0, length = documents.length; index < length; index += 1) {
- iterator(documents[index]);
- }
- }
- function load(input, options) {
- var documents = loadDocuments(input, options);
- if (documents.length === 0) {
- return void 0;
- } else if (documents.length === 1) {
- return documents[0];
- }
- throw new YAMLException("expected a single document in the stream, but found more");
- }
- module2.exports.loadAll = loadAll;
- module2.exports.load = load;
- }
- });
- // node_modules/js-yaml/lib/dumper.js
- var require_dumper = __commonJS({
- "node_modules/js-yaml/lib/dumper.js"(exports2, module2) {
- "use strict";
- var common = require_common2();
- var YAMLException = require_exception();
- var DEFAULT_SCHEMA = require_default();
- var _toString = Object.prototype.toString;
- var _hasOwnProperty = Object.prototype.hasOwnProperty;
- var CHAR_BOM = 65279;
- var CHAR_TAB = 9;
- var CHAR_LINE_FEED = 10;
- var CHAR_CARRIAGE_RETURN = 13;
- var CHAR_SPACE = 32;
- var CHAR_EXCLAMATION = 33;
- var CHAR_DOUBLE_QUOTE = 34;
- var CHAR_SHARP = 35;
- var CHAR_PERCENT = 37;
- var CHAR_AMPERSAND = 38;
- var CHAR_SINGLE_QUOTE = 39;
- var CHAR_ASTERISK = 42;
- var CHAR_COMMA = 44;
- var CHAR_MINUS = 45;
- var CHAR_COLON = 58;
- var CHAR_EQUALS = 61;
- var CHAR_GREATER_THAN = 62;
- var CHAR_QUESTION = 63;
- var CHAR_COMMERCIAL_AT = 64;
- var CHAR_LEFT_SQUARE_BRACKET = 91;
- var CHAR_RIGHT_SQUARE_BRACKET = 93;
- var CHAR_GRAVE_ACCENT = 96;
- var CHAR_LEFT_CURLY_BRACKET = 123;
- var CHAR_VERTICAL_LINE = 124;
- var CHAR_RIGHT_CURLY_BRACKET = 125;
- var ESCAPE_SEQUENCES = {};
- ESCAPE_SEQUENCES[0] = "\\0";
- ESCAPE_SEQUENCES[7] = "\\a";
- ESCAPE_SEQUENCES[8] = "\\b";
- ESCAPE_SEQUENCES[9] = "\\t";
- ESCAPE_SEQUENCES[10] = "\\n";
- ESCAPE_SEQUENCES[11] = "\\v";
- ESCAPE_SEQUENCES[12] = "\\f";
- ESCAPE_SEQUENCES[13] = "\\r";
- ESCAPE_SEQUENCES[27] = "\\e";
- ESCAPE_SEQUENCES[34] = '\\"';
- ESCAPE_SEQUENCES[92] = "\\\\";
- ESCAPE_SEQUENCES[133] = "\\N";
- ESCAPE_SEQUENCES[160] = "\\_";
- ESCAPE_SEQUENCES[8232] = "\\L";
- ESCAPE_SEQUENCES[8233] = "\\P";
- var DEPRECATED_BOOLEANS_SYNTAX = [
- "y",
- "Y",
- "yes",
- "Yes",
- "YES",
- "on",
- "On",
- "ON",
- "n",
- "N",
- "no",
- "No",
- "NO",
- "off",
- "Off",
- "OFF"
- ];
- var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;
- function compileStyleMap(schema, map) {
- var result, keys, index, length, tag, style, type;
- if (map === null) return {};
- result = {};
- keys = Object.keys(map);
- for (index = 0, length = keys.length; index < length; index += 1) {
- tag = keys[index];
- style = String(map[tag]);
- if (tag.slice(0, 2) === "!!") {
- tag = "tag:yaml.org,2002:" + tag.slice(2);
- }
- type = schema.compiledTypeMap["fallback"][tag];
- if (type && _hasOwnProperty.call(type.styleAliases, style)) {
- style = type.styleAliases[style];
- }
- result[tag] = style;
- }
- return result;
- }
- function encodeHex(character) {
- var string, handle, length;
- string = character.toString(16).toUpperCase();
- if (character <= 255) {
- handle = "x";
- length = 2;
- } else if (character <= 65535) {
- handle = "u";
- length = 4;
- } else if (character <= 4294967295) {
- handle = "U";
- length = 8;
- } else {
- throw new YAMLException("code point within a string may not be greater than 0xFFFFFFFF");
- }
- return "\\" + handle + common.repeat("0", length - string.length) + string;
- }
- var QUOTING_TYPE_SINGLE = 1;
- var QUOTING_TYPE_DOUBLE = 2;
- function State(options) {
- this.schema = options["schema"] || DEFAULT_SCHEMA;
- this.indent = Math.max(1, options["indent"] || 2);
- this.noArrayIndent = options["noArrayIndent"] || false;
- this.skipInvalid = options["skipInvalid"] || false;
- this.flowLevel = common.isNothing(options["flowLevel"]) ? -1 : options["flowLevel"];
- this.styleMap = compileStyleMap(this.schema, options["styles"] || null);
- this.sortKeys = options["sortKeys"] || false;
- this.lineWidth = options["lineWidth"] || 80;
- this.noRefs = options["noRefs"] || false;
- this.noCompatMode = options["noCompatMode"] || false;
- this.condenseFlow = options["condenseFlow"] || false;
- this.quotingType = options["quotingType"] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;
- this.forceQuotes = options["forceQuotes"] || false;
- this.replacer = typeof options["replacer"] === "function" ? options["replacer"] : null;
- this.implicitTypes = this.schema.compiledImplicit;
- this.explicitTypes = this.schema.compiledExplicit;
- this.tag = null;
- this.result = "";
- this.duplicates = [];
- this.usedDuplicates = null;
- }
- function indentString(string, spaces) {
- var ind = common.repeat(" ", spaces), position = 0, next = -1, result = "", line, length = string.length;
- while (position < length) {
- next = string.indexOf("\n", position);
- if (next === -1) {
- line = string.slice(position);
- position = length;
- } else {
- line = string.slice(position, next + 1);
- position = next + 1;
- }
- if (line.length && line !== "\n") result += ind;
- result += line;
- }
- return result;
- }
- function generateNextLine(state, level) {
- return "\n" + common.repeat(" ", state.indent * level);
- }
- function testImplicitResolving(state, str) {
- var index, length, type;
- for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {
- type = state.implicitTypes[index];
- if (type.resolve(str)) {
- return true;
- }
- }
- return false;
- }
- function isWhitespace(c) {
- return c === CHAR_SPACE || c === CHAR_TAB;
- }
- function isPrintable(c) {
- return 32 <= c && c <= 126 || 161 <= c && c <= 55295 && c !== 8232 && c !== 8233 || 57344 <= c && c <= 65533 && c !== CHAR_BOM || 65536 <= c && c <= 1114111;
- }
- function isNsCharOrWhitespace(c) {
- return isPrintable(c) && c !== CHAR_BOM && c !== CHAR_CARRIAGE_RETURN && c !== CHAR_LINE_FEED;
- }
- function isPlainSafe(c, prev, inblock) {
- var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);
- var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);
- return (
- // ns-plain-safe
- (inblock ? (
- // c = flow-in
- cIsNsCharOrWhitespace
- ) : cIsNsCharOrWhitespace && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET) && c !== CHAR_SHARP && !(prev === CHAR_COLON && !cIsNsChar) || isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP || prev === CHAR_COLON && cIsNsChar
- );
- }
- function isPlainSafeFirst(c) {
- return isPrintable(c) && c !== CHAR_BOM && !isWhitespace(c) && c !== CHAR_MINUS && c !== CHAR_QUESTION && c !== CHAR_COLON && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET && c !== CHAR_SHARP && c !== CHAR_AMPERSAND && c !== CHAR_ASTERISK && c !== CHAR_EXCLAMATION && c !== CHAR_VERTICAL_LINE && c !== CHAR_EQUALS && c !== CHAR_GREATER_THAN && c !== CHAR_SINGLE_QUOTE && c !== CHAR_DOUBLE_QUOTE && c !== CHAR_PERCENT && c !== CHAR_COMMERCIAL_AT && c !== CHAR_GRAVE_ACCENT;
- }
- function isPlainSafeLast(c) {
- return !isWhitespace(c) && c !== CHAR_COLON;
- }
- function codePointAt(string, pos) {
- var first = string.charCodeAt(pos), second;
- if (first >= 55296 && first <= 56319 && pos + 1 < string.length) {
- second = string.charCodeAt(pos + 1);
- if (second >= 56320 && second <= 57343) {
- return (first - 55296) * 1024 + second - 56320 + 65536;
- }
- }
- return first;
- }
- function needIndentIndicator(string) {
- var leadingSpaceRe = /^\n* /;
- return leadingSpaceRe.test(string);
- }
- var STYLE_PLAIN = 1;
- var STYLE_SINGLE = 2;
- var STYLE_LITERAL = 3;
- var STYLE_FOLDED = 4;
- var STYLE_DOUBLE = 5;
- function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType, quotingType, forceQuotes, inblock) {
- var i;
- var char = 0;
- var prevChar = null;
- var hasLineBreak = false;
- var hasFoldableLine = false;
- var shouldTrackWidth = lineWidth !== -1;
- var previousLineBreak = -1;
- var plain = isPlainSafeFirst(codePointAt(string, 0)) && isPlainSafeLast(codePointAt(string, string.length - 1));
- if (singleLineOnly || forceQuotes) {
- for (i = 0; i < string.length; char >= 65536 ? i += 2 : i++) {
- char = codePointAt(string, i);
- if (!isPrintable(char)) {
- return STYLE_DOUBLE;
- }
- plain = plain && isPlainSafe(char, prevChar, inblock);
- prevChar = char;
- }
- } else {
- for (i = 0; i < string.length; char >= 65536 ? i += 2 : i++) {
- char = codePointAt(string, i);
- if (char === CHAR_LINE_FEED) {
- hasLineBreak = true;
- if (shouldTrackWidth) {
- hasFoldableLine = hasFoldableLine || // Foldable line = too long, and not more-indented.
- i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== " ";
- previousLineBreak = i;
- }
- } else if (!isPrintable(char)) {
- return STYLE_DOUBLE;
- }
- plain = plain && isPlainSafe(char, prevChar, inblock);
- prevChar = char;
- }
- hasFoldableLine = hasFoldableLine || shouldTrackWidth && (i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== " ");
- }
- if (!hasLineBreak && !hasFoldableLine) {
- if (plain && !forceQuotes && !testAmbiguousType(string)) {
- return STYLE_PLAIN;
- }
- return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;
- }
- if (indentPerLevel > 9 && needIndentIndicator(string)) {
- return STYLE_DOUBLE;
- }
- if (!forceQuotes) {
- return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;
- }
- return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;
- }
- function writeScalar(state, string, level, iskey, inblock) {
- state.dump = (function() {
- if (string.length === 0) {
- return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''";
- }
- if (!state.noCompatMode) {
- if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {
- return state.quotingType === QUOTING_TYPE_DOUBLE ? '"' + string + '"' : "'" + string + "'";
- }
- }
- var indent = state.indent * Math.max(1, level);
- var lineWidth = state.lineWidth === -1 ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);
- var singleLineOnly = iskey || state.flowLevel > -1 && level >= state.flowLevel;
- function testAmbiguity(string2) {
- return testImplicitResolving(state, string2);
- }
- switch (chooseScalarStyle(
- string,
- singleLineOnly,
- state.indent,
- lineWidth,
- testAmbiguity,
- state.quotingType,
- state.forceQuotes && !iskey,
- inblock
- )) {
- case STYLE_PLAIN:
- return string;
- case STYLE_SINGLE:
- return "'" + string.replace(/'/g, "''") + "'";
- case STYLE_LITERAL:
- return "|" + blockHeader(string, state.indent) + dropEndingNewline(indentString(string, indent));
- case STYLE_FOLDED:
- return ">" + blockHeader(string, state.indent) + dropEndingNewline(indentString(foldString(string, lineWidth), indent));
- case STYLE_DOUBLE:
- return '"' + escapeString(string, lineWidth) + '"';
- default:
- throw new YAMLException("impossible error: invalid scalar style");
- }
- })();
- }
- function blockHeader(string, indentPerLevel) {
- var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : "";
- var clip = string[string.length - 1] === "\n";
- var keep = clip && (string[string.length - 2] === "\n" || string === "\n");
- var chomp = keep ? "+" : clip ? "" : "-";
- return indentIndicator + chomp + "\n";
- }
- function dropEndingNewline(string) {
- return string[string.length - 1] === "\n" ? string.slice(0, -1) : string;
- }
- function foldString(string, width) {
- var lineRe = /(\n+)([^\n]*)/g;
- var result = (function() {
- var nextLF = string.indexOf("\n");
- nextLF = nextLF !== -1 ? nextLF : string.length;
- lineRe.lastIndex = nextLF;
- return foldLine(string.slice(0, nextLF), width);
- })();
- var prevMoreIndented = string[0] === "\n" || string[0] === " ";
- var moreIndented;
- var match;
- while (match = lineRe.exec(string)) {
- var prefix = match[1], line = match[2];
- moreIndented = line[0] === " ";
- result += prefix + (!prevMoreIndented && !moreIndented && line !== "" ? "\n" : "") + foldLine(line, width);
- prevMoreIndented = moreIndented;
- }
- return result;
- }
- function foldLine(line, width) {
- if (line === "" || line[0] === " ") return line;
- var breakRe = / [^ ]/g;
- var match;
- var start = 0, end, curr = 0, next = 0;
- var result = "";
- while (match = breakRe.exec(line)) {
- next = match.index;
- if (next - start > width) {
- end = curr > start ? curr : next;
- result += "\n" + line.slice(start, end);
- start = end + 1;
- }
- curr = next;
- }
- result += "\n";
- if (line.length - start > width && curr > start) {
- result += line.slice(start, curr) + "\n" + line.slice(curr + 1);
- } else {
- result += line.slice(start);
- }
- return result.slice(1);
- }
- function escapeString(string) {
- var result = "";
- var char = 0;
- var escapeSeq;
- for (var i = 0; i < string.length; char >= 65536 ? i += 2 : i++) {
- char = codePointAt(string, i);
- escapeSeq = ESCAPE_SEQUENCES[char];
- if (!escapeSeq && isPrintable(char)) {
- result += string[i];
- if (char >= 65536) result += string[i + 1];
- } else {
- result += escapeSeq || encodeHex(char);
- }
- }
- return result;
- }
- function writeFlowSequence(state, level, object) {
- var _result = "", _tag = state.tag, index, length, value;
- for (index = 0, length = object.length; index < length; index += 1) {
- value = object[index];
- if (state.replacer) {
- value = state.replacer.call(object, String(index), value);
- }
- if (writeNode(state, level, value, false, false) || typeof value === "undefined" && writeNode(state, level, null, false, false)) {
- if (_result !== "") _result += "," + (!state.condenseFlow ? " " : "");
- _result += state.dump;
- }
- }
- state.tag = _tag;
- state.dump = "[" + _result + "]";
- }
- function writeBlockSequence(state, level, object, compact) {
- var _result = "", _tag = state.tag, index, length, value;
- for (index = 0, length = object.length; index < length; index += 1) {
- value = object[index];
- if (state.replacer) {
- value = state.replacer.call(object, String(index), value);
- }
- if (writeNode(state, level + 1, value, true, true, false, true) || typeof value === "undefined" && writeNode(state, level + 1, null, true, true, false, true)) {
- if (!compact || _result !== "") {
- _result += generateNextLine(state, level);
- }
- if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
- _result += "-";
- } else {
- _result += "- ";
- }
- _result += state.dump;
- }
- }
- state.tag = _tag;
- state.dump = _result || "[]";
- }
- function writeFlowMapping(state, level, object) {
- var _result = "", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, pairBuffer;
- for (index = 0, length = objectKeyList.length; index < length; index += 1) {
- pairBuffer = "";
- if (_result !== "") pairBuffer += ", ";
- if (state.condenseFlow) pairBuffer += '"';
- objectKey = objectKeyList[index];
- objectValue = object[objectKey];
- if (state.replacer) {
- objectValue = state.replacer.call(object, objectKey, objectValue);
- }
- if (!writeNode(state, level, objectKey, false, false)) {
- continue;
- }
- if (state.dump.length > 1024) pairBuffer += "? ";
- pairBuffer += state.dump + (state.condenseFlow ? '"' : "") + ":" + (state.condenseFlow ? "" : " ");
- if (!writeNode(state, level, objectValue, false, false)) {
- continue;
- }
- pairBuffer += state.dump;
- _result += pairBuffer;
- }
- state.tag = _tag;
- state.dump = "{" + _result + "}";
- }
- function writeBlockMapping(state, level, object, compact) {
- var _result = "", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, explicitPair, pairBuffer;
- if (state.sortKeys === true) {
- objectKeyList.sort();
- } else if (typeof state.sortKeys === "function") {
- objectKeyList.sort(state.sortKeys);
- } else if (state.sortKeys) {
- throw new YAMLException("sortKeys must be a boolean or a function");
- }
- for (index = 0, length = objectKeyList.length; index < length; index += 1) {
- pairBuffer = "";
- if (!compact || _result !== "") {
- pairBuffer += generateNextLine(state, level);
- }
- objectKey = objectKeyList[index];
- objectValue = object[objectKey];
- if (state.replacer) {
- objectValue = state.replacer.call(object, objectKey, objectValue);
- }
- if (!writeNode(state, level + 1, objectKey, true, true, true)) {
- continue;
- }
- explicitPair = state.tag !== null && state.tag !== "?" || state.dump && state.dump.length > 1024;
- if (explicitPair) {
- if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
- pairBuffer += "?";
- } else {
- pairBuffer += "? ";
- }
- }
- pairBuffer += state.dump;
- if (explicitPair) {
- pairBuffer += generateNextLine(state, level);
- }
- if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {
- continue;
- }
- if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
- pairBuffer += ":";
- } else {
- pairBuffer += ": ";
- }
- pairBuffer += state.dump;
- _result += pairBuffer;
- }
- state.tag = _tag;
- state.dump = _result || "{}";
- }
- function detectType(state, object, explicit) {
- var _result, typeList, index, length, type, style;
- typeList = explicit ? state.explicitTypes : state.implicitTypes;
- for (index = 0, length = typeList.length; index < length; index += 1) {
- type = typeList[index];
- if ((type.instanceOf || type.predicate) && (!type.instanceOf || typeof object === "object" && object instanceof type.instanceOf) && (!type.predicate || type.predicate(object))) {
- if (explicit) {
- if (type.multi && type.representName) {
- state.tag = type.representName(object);
- } else {
- state.tag = type.tag;
- }
- } else {
- state.tag = "?";
- }
- if (type.represent) {
- style = state.styleMap[type.tag] || type.defaultStyle;
- if (_toString.call(type.represent) === "[object Function]") {
- _result = type.represent(object, style);
- } else if (_hasOwnProperty.call(type.represent, style)) {
- _result = type.represent[style](object, style);
- } else {
- throw new YAMLException("!<" + type.tag + '> tag resolver accepts not "' + style + '" style');
- }
- state.dump = _result;
- }
- return true;
- }
- }
- return false;
- }
- function writeNode(state, level, object, block, compact, iskey, isblockseq) {
- state.tag = null;
- state.dump = object;
- if (!detectType(state, object, false)) {
- detectType(state, object, true);
- }
- var type = _toString.call(state.dump);
- var inblock = block;
- var tagStr;
- if (block) {
- block = state.flowLevel < 0 || state.flowLevel > level;
- }
- var objectOrArray = type === "[object Object]" || type === "[object Array]", duplicateIndex, duplicate;
- if (objectOrArray) {
- duplicateIndex = state.duplicates.indexOf(object);
- duplicate = duplicateIndex !== -1;
- }
- if (state.tag !== null && state.tag !== "?" || duplicate || state.indent !== 2 && level > 0) {
- compact = false;
- }
- if (duplicate && state.usedDuplicates[duplicateIndex]) {
- state.dump = "*ref_" + duplicateIndex;
- } else {
- if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {
- state.usedDuplicates[duplicateIndex] = true;
- }
- if (type === "[object Object]") {
- if (block && Object.keys(state.dump).length !== 0) {
- writeBlockMapping(state, level, state.dump, compact);
- if (duplicate) {
- state.dump = "&ref_" + duplicateIndex + state.dump;
- }
- } else {
- writeFlowMapping(state, level, state.dump);
- if (duplicate) {
- state.dump = "&ref_" + duplicateIndex + " " + state.dump;
- }
- }
- } else if (type === "[object Array]") {
- if (block && state.dump.length !== 0) {
- if (state.noArrayIndent && !isblockseq && level > 0) {
- writeBlockSequence(state, level - 1, state.dump, compact);
- } else {
- writeBlockSequence(state, level, state.dump, compact);
- }
- if (duplicate) {
- state.dump = "&ref_" + duplicateIndex + state.dump;
- }
- } else {
- writeFlowSequence(state, level, state.dump);
- if (duplicate) {
- state.dump = "&ref_" + duplicateIndex + " " + state.dump;
- }
- }
- } else if (type === "[object String]") {
- if (state.tag !== "?") {
- writeScalar(state, state.dump, level, iskey, inblock);
- }
- } else if (type === "[object Undefined]") {
- return false;
- } else {
- if (state.skipInvalid) return false;
- throw new YAMLException("unacceptable kind of an object to dump " + type);
- }
- if (state.tag !== null && state.tag !== "?") {
- tagStr = encodeURI(
- state.tag[0] === "!" ? state.tag.slice(1) : state.tag
- ).replace(/!/g, "%21");
- if (state.tag[0] === "!") {
- tagStr = "!" + tagStr;
- } else if (tagStr.slice(0, 18) === "tag:yaml.org,2002:") {
- tagStr = "!!" + tagStr.slice(18);
- } else {
- tagStr = "!<" + tagStr + ">";
- }
- state.dump = tagStr + " " + state.dump;
- }
- }
- return true;
- }
- function getDuplicateReferences(object, state) {
- var objects = [], duplicatesIndexes = [], index, length;
- inspectNode(object, objects, duplicatesIndexes);
- for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {
- state.duplicates.push(objects[duplicatesIndexes[index]]);
- }
- state.usedDuplicates = new Array(length);
- }
- function inspectNode(object, objects, duplicatesIndexes) {
- var objectKeyList, index, length;
- if (object !== null && typeof object === "object") {
- index = objects.indexOf(object);
- if (index !== -1) {
- if (duplicatesIndexes.indexOf(index) === -1) {
- duplicatesIndexes.push(index);
- }
- } else {
- objects.push(object);
- if (Array.isArray(object)) {
- for (index = 0, length = object.length; index < length; index += 1) {
- inspectNode(object[index], objects, duplicatesIndexes);
- }
- } else {
- objectKeyList = Object.keys(object);
- for (index = 0, length = objectKeyList.length; index < length; index += 1) {
- inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);
- }
- }
- }
- }
- }
- function dump(input, options) {
- options = options || {};
- var state = new State(options);
- if (!state.noRefs) getDuplicateReferences(input, state);
- var value = input;
- if (state.replacer) {
- value = state.replacer.call({ "": value }, "", value);
- }
- if (writeNode(state, 0, value, true, true)) return state.dump + "\n";
- return "";
- }
- module2.exports.dump = dump;
- }
- });
- // node_modules/js-yaml/index.js
- var require_js_yaml = __commonJS({
- "node_modules/js-yaml/index.js"(exports2, module2) {
- "use strict";
- var loader = require_loader();
- var dumper = require_dumper();
- function renamed(from, to) {
- return function() {
- throw new Error("Function yaml." + from + " is removed in js-yaml 4. Use yaml." + to + " instead, which is now safe by default.");
- };
- }
- module2.exports.Type = require_type2();
- module2.exports.Schema = require_schema6();
- module2.exports.FAILSAFE_SCHEMA = require_failsafe();
- module2.exports.JSON_SCHEMA = require_json3();
- module2.exports.CORE_SCHEMA = require_core();
- module2.exports.DEFAULT_SCHEMA = require_default();
- module2.exports.load = loader.load;
- module2.exports.loadAll = loader.loadAll;
- module2.exports.dump = dumper.dump;
- module2.exports.YAMLException = require_exception();
- module2.exports.types = {
- binary: require_binary(),
- float: require_float(),
- map: require_map(),
- null: require_null(),
- pairs: require_pairs(),
- set: require_set(),
- timestamp: require_timestamp(),
- bool: require_bool(),
- int: require_int(),
- merge: require_merge2(),
- omap: require_omap(),
- seq: require_seq(),
- str: require_str()
- };
- module2.exports.safeLoad = renamed("safeLoad", "load");
- module2.exports.safeLoadAll = renamed("safeLoadAll", "loadAll");
- module2.exports.safeDump = renamed("safeDump", "dump");
- }
- });
- // node_modules/@apidevtools/json-schema-ref-parser/lib/parsers/yaml.js
- var require_yaml = __commonJS({
- "node_modules/@apidevtools/json-schema-ref-parser/lib/parsers/yaml.js"(exports2, module2) {
- "use strict";
- var { ParserError } = require_errors();
- var yaml = require_js_yaml();
- var { JSON_SCHEMA } = require_js_yaml();
- module2.exports = {
- /**
- * The order that this parser will run, in relation to other parsers.
- *
- * @type {number}
- */
- order: 200,
- /**
- * Whether to allow "empty" files. This includes zero-byte files, as well as empty JSON objects.
- *
- * @type {boolean}
- */
- allowEmpty: true,
- /**
- * Determines whether this parser can parse a given file reference.
- * Parsers that match will be tried, in order, until one successfully parses the file.
- * Parsers that don't match will be skipped, UNLESS none of the parsers match, in which case
- * every parser will be tried.
- *
- * @type {RegExp|string[]|function}
- */
- canParse: [".yaml", ".yml", ".json"],
- // JSON is valid YAML
- /**
- * Parses the given file as YAML
- *
- * @param {object} file - An object containing information about the referenced file
- * @param {string} file.url - The full URL of the referenced file
- * @param {string} file.extension - The lowercased file extension (e.g. ".txt", ".html", etc.)
- * @param {*} file.data - The file contents. This will be whatever data type was returned by the resolver
- * @returns {Promise}
- */
- async parse(file) {
- let data = file.data;
- if (Buffer.isBuffer(data)) {
- data = data.toString();
- }
- if (typeof data === "string") {
- try {
- return yaml.load(data, { schema: JSON_SCHEMA });
- } catch (e) {
- throw new ParserError(e.message, file.url);
- }
- } else {
- return data;
- }
- }
- };
- }
- });
- // node_modules/@apidevtools/json-schema-ref-parser/lib/parsers/text.js
- var require_text2 = __commonJS({
- "node_modules/@apidevtools/json-schema-ref-parser/lib/parsers/text.js"(exports2, module2) {
- "use strict";
- var { ParserError } = require_errors();
- var TEXT_REGEXP = /\.(txt|htm|html|md|xml|js|min|map|css|scss|less|svg)$/i;
- module2.exports = {
- /**
- * The order that this parser will run, in relation to other parsers.
- *
- * @type {number}
- */
- order: 300,
- /**
- * Whether to allow "empty" files (zero bytes).
- *
- * @type {boolean}
- */
- allowEmpty: true,
- /**
- * The encoding that the text is expected to be in.
- *
- * @type {string}
- */
- encoding: "utf8",
- /**
- * Determines whether this parser can parse a given file reference.
- * Parsers that return true will be tried, in order, until one successfully parses the file.
- * Parsers that return false will be skipped, UNLESS all parsers returned false, in which case
- * every parser will be tried.
- *
- * @param {object} file - An object containing information about the referenced file
- * @param {string} file.url - The full URL of the referenced file
- * @param {string} file.extension - The lowercased file extension (e.g. ".txt", ".html", etc.)
- * @param {*} file.data - The file contents. This will be whatever data type was returned by the resolver
- * @returns {boolean}
- */
- canParse(file) {
- return (typeof file.data === "string" || Buffer.isBuffer(file.data)) && TEXT_REGEXP.test(file.url);
- },
- /**
- * Parses the given file as text
- *
- * @param {object} file - An object containing information about the referenced file
- * @param {string} file.url - The full URL of the referenced file
- * @param {string} file.extension - The lowercased file extension (e.g. ".txt", ".html", etc.)
- * @param {*} file.data - The file contents. This will be whatever data type was returned by the resolver
- * @returns {string}
- */
- parse(file) {
- if (typeof file.data === "string") {
- return file.data;
- } else if (Buffer.isBuffer(file.data)) {
- return file.data.toString(this.encoding);
- } else {
- throw new ParserError("data is not text", file.url);
- }
- }
- };
- }
- });
- // node_modules/@apidevtools/json-schema-ref-parser/lib/parsers/binary.js
- var require_binary2 = __commonJS({
- "node_modules/@apidevtools/json-schema-ref-parser/lib/parsers/binary.js"(exports2, module2) {
- "use strict";
- var BINARY_REGEXP = /\.(jpeg|jpg|gif|png|bmp|ico)$/i;
- module2.exports = {
- /**
- * The order that this parser will run, in relation to other parsers.
- *
- * @type {number}
- */
- order: 400,
- /**
- * Whether to allow "empty" files (zero bytes).
- *
- * @type {boolean}
- */
- allowEmpty: true,
- /**
- * Determines whether this parser can parse a given file reference.
- * Parsers that return true will be tried, in order, until one successfully parses the file.
- * Parsers that return false will be skipped, UNLESS all parsers returned false, in which case
- * every parser will be tried.
- *
- * @param {object} file - An object containing information about the referenced file
- * @param {string} file.url - The full URL of the referenced file
- * @param {string} file.extension - The lowercased file extension (e.g. ".txt", ".html", etc.)
- * @param {*} file.data - The file contents. This will be whatever data type was returned by the resolver
- * @returns {boolean}
- */
- canParse(file) {
- return Buffer.isBuffer(file.data) && BINARY_REGEXP.test(file.url);
- },
- /**
- * Parses the given data as a Buffer (byte array).
- *
- * @param {object} file - An object containing information about the referenced file
- * @param {string} file.url - The full URL of the referenced file
- * @param {string} file.extension - The lowercased file extension (e.g. ".txt", ".html", etc.)
- * @param {*} file.data - The file contents. This will be whatever data type was returned by the resolver
- * @returns {Buffer}
- */
- parse(file) {
- if (Buffer.isBuffer(file.data)) {
- return file.data;
- } else {
- return Buffer.from(file.data);
- }
- }
- };
- }
- });
- // node_modules/@apidevtools/json-schema-ref-parser/lib/resolvers/file.js
- var require_file = __commonJS({
- "node_modules/@apidevtools/json-schema-ref-parser/lib/resolvers/file.js"(exports2, module2) {
- "use strict";
- var fs4 = require("fs");
- var { ono } = require_cjs();
- var url = require_url();
- var { ResolverError } = require_errors();
- module2.exports = {
- /**
- * The order that this resolver will run, in relation to other resolvers.
- *
- * @type {number}
- */
- order: 100,
- /**
- * Determines whether this resolver can read a given file reference.
- * Resolvers that return true will be tried, in order, until one successfully resolves the file.
- * Resolvers that return false will not be given a chance to resolve the file.
- *
- * @param {object} file - An object containing information about the referenced file
- * @param {string} file.url - The full URL of the referenced file
- * @param {string} file.extension - The lowercased file extension (e.g. ".txt", ".html", etc.)
- * @returns {boolean}
- */
- canRead(file) {
- return url.isFileSystemPath(file.url);
- },
- /**
- * Reads the given file and returns its raw contents as a Buffer.
- *
- * @param {object} file - An object containing information about the referenced file
- * @param {string} file.url - The full URL of the referenced file
- * @param {string} file.extension - The lowercased file extension (e.g. ".txt", ".html", etc.)
- * @returns {Promise<Buffer>}
- */
- read(file) {
- return new Promise(((resolve, reject) => {
- let path2;
- try {
- path2 = url.toFileSystemPath(file.url);
- } catch (err) {
- reject(new ResolverError(ono.uri(err, `Malformed URI: ${file.url}`), file.url));
- }
- try {
- fs4.readFile(path2, (err, data) => {
- if (err) {
- reject(new ResolverError(ono(err, `Error opening file "${path2}"`), path2));
- } else {
- resolve(data);
- }
- });
- } catch (err) {
- reject(new ResolverError(ono(err, `Error opening file "${path2}"`), path2));
- }
- }));
- }
- };
- }
- });
- // node_modules/@apidevtools/json-schema-ref-parser/lib/resolvers/http.js
- var require_http = __commonJS({
- "node_modules/@apidevtools/json-schema-ref-parser/lib/resolvers/http.js"(exports2, module2) {
- "use strict";
- var http2 = require("http");
- var https = require("https");
- var { ono } = require_cjs();
- var url = require_url();
- var { ResolverError } = require_errors();
- module2.exports = {
- /**
- * The order that this resolver will run, in relation to other resolvers.
- *
- * @type {number}
- */
- order: 200,
- /**
- * HTTP headers to send when downloading files.
- *
- * @example:
- * {
- * "User-Agent": "JSON Schema $Ref Parser",
- * Accept: "application/json"
- * }
- *
- * @type {object}
- */
- headers: null,
- /**
- * HTTP request timeout (in milliseconds).
- *
- * @type {number}
- */
- timeout: 5e3,
- // 5 seconds
- /**
- * The maximum number of HTTP redirects to follow.
- * To disable automatic following of redirects, set this to zero.
- *
- * @type {number}
- */
- redirects: 5,
- /**
- * The `withCredentials` option of XMLHttpRequest.
- * Set this to `true` if you're downloading files from a CORS-enabled server that requires authentication
- *
- * @type {boolean}
- */
- withCredentials: false,
- /**
- * Determines whether this resolver can read a given file reference.
- * Resolvers that return true will be tried in order, until one successfully resolves the file.
- * Resolvers that return false will not be given a chance to resolve the file.
- *
- * @param {object} file - An object containing information about the referenced file
- * @param {string} file.url - The full URL of the referenced file
- * @param {string} file.extension - The lowercased file extension (e.g. ".txt", ".html", etc.)
- * @returns {boolean}
- */
- canRead(file) {
- return url.isHttp(file.url);
- },
- /**
- * Reads the given URL and returns its raw contents as a Buffer.
- *
- * @param {object} file - An object containing information about the referenced file
- * @param {string} file.url - The full URL of the referenced file
- * @param {string} file.extension - The lowercased file extension (e.g. ".txt", ".html", etc.)
- * @returns {Promise<Buffer>}
- */
- read(file) {
- let u = url.parse(file.url);
- if (process.browser && !u.protocol) {
- u.protocol = url.parse(location.href).protocol;
- }
- return download(u, this);
- }
- };
- function download(u, httpOptions, redirects) {
- return new Promise(((resolve, reject) => {
- u = url.parse(u);
- redirects = redirects || [];
- redirects.push(u.href);
- get(u, httpOptions).then((res) => {
- if (res.statusCode >= 400) {
- throw ono({ status: res.statusCode }, `HTTP ERROR ${res.statusCode}`);
- } else if (res.statusCode >= 300) {
- if (redirects.length > httpOptions.redirects) {
- reject(new ResolverError(ono(
- { status: res.statusCode },
- `Error downloading ${redirects[0]}.
- Too many redirects:
- ${redirects.join(" \n ")}`
- )));
- } else if (!res.headers.location) {
- throw ono({ status: res.statusCode }, `HTTP ${res.statusCode} redirect with no location header`);
- } else {
- let redirectTo = url.resolve(u, res.headers.location);
- download(redirectTo, httpOptions, redirects).then(resolve, reject);
- }
- } else {
- resolve(res.body || Buffer.alloc(0));
- }
- }).catch((err) => {
- reject(new ResolverError(ono(err, `Error downloading ${u.href}`), u.href));
- });
- }));
- }
- function get(u, httpOptions) {
- return new Promise(((resolve, reject) => {
- let protocol = u.protocol === "https:" ? https : http2;
- let req = protocol.get({
- hostname: u.hostname,
- port: u.port,
- path: u.path,
- auth: u.auth,
- protocol: u.protocol,
- headers: httpOptions.headers || {},
- withCredentials: httpOptions.withCredentials
- });
- if (typeof req.setTimeout === "function") {
- req.setTimeout(httpOptions.timeout);
- }
- req.on("timeout", () => {
- req.abort();
- });
- req.on("error", reject);
- req.once("response", (res) => {
- res.body = Buffer.alloc(0);
- res.on("data", (data) => {
- res.body = Buffer.concat([res.body, Buffer.from(data)]);
- });
- res.on("error", reject);
- res.on("end", () => {
- resolve(res);
- });
- });
- }));
- }
- }
- });
- // node_modules/@apidevtools/json-schema-ref-parser/lib/options.js
- var require_options = __commonJS({
- "node_modules/@apidevtools/json-schema-ref-parser/lib/options.js"(exports2, module2) {
- "use strict";
- var jsonParser = require_json2();
- var yamlParser = require_yaml();
- var textParser = require_text2();
- var binaryParser = require_binary2();
- var fileResolver = require_file();
- var httpResolver = require_http();
- module2.exports = $RefParserOptions;
- function $RefParserOptions(options) {
- merge(this, $RefParserOptions.defaults);
- merge(this, options);
- }
- $RefParserOptions.defaults = {
- /**
- * Determines how different types of files will be parsed.
- *
- * You can add additional parsers of your own, replace an existing one with
- * your own implementation, or disable any parser by setting it to false.
- */
- parse: {
- json: jsonParser,
- yaml: yamlParser,
- text: textParser,
- binary: binaryParser
- },
- /**
- * Determines how JSON References will be resolved.
- *
- * You can add additional resolvers of your own, replace an existing one with
- * your own implementation, or disable any resolver by setting it to false.
- */
- resolve: {
- file: fileResolver,
- http: httpResolver,
- /**
- * Determines whether external $ref pointers will be resolved.
- * If this option is disabled, then none of above resolvers will be called.
- * Instead, external $ref pointers will simply be ignored.
- *
- * @type {boolean}
- */
- external: true
- },
- /**
- * By default, JSON Schema $Ref Parser throws the first error it encounters. Setting `continueOnError` to `true`
- * causes it to keep processing as much as possible and then throw a single error that contains all errors
- * that were encountered.
- */
- continueOnError: false,
- /**
- * Determines the types of JSON references that are allowed.
- */
- dereference: {
- /**
- * Dereference circular (recursive) JSON references?
- * If false, then a {@link ReferenceError} will be thrown if a circular reference is found.
- * If "ignore", then circular references will not be dereferenced.
- *
- * @type {boolean|string}
- */
- circular: true,
- /**
- * A function, called for each path, which can return true to stop this path and all
- * subpaths from being dereferenced further. This is useful in schemas where some
- * subpaths contain literal $ref keys that should not be dereferenced.
- *
- * @type {function}
- */
- excludedPathMatcher: () => false
- }
- };
- function merge(target, source) {
- if (isMergeable(source)) {
- let keys = Object.keys(source);
- for (let i = 0; i < keys.length; i++) {
- let key = keys[i];
- let sourceSetting = source[key];
- let targetSetting = target[key];
- if (isMergeable(sourceSetting)) {
- target[key] = merge(targetSetting || {}, sourceSetting);
- } else if (sourceSetting !== void 0) {
- target[key] = sourceSetting;
- }
- }
- }
- return target;
- }
- function isMergeable(val) {
- return val && typeof val === "object" && !Array.isArray(val) && !(val instanceof RegExp) && !(val instanceof Date);
- }
- }
- });
- // node_modules/@apidevtools/json-schema-ref-parser/lib/normalize-args.js
- var require_normalize_args = __commonJS({
- "node_modules/@apidevtools/json-schema-ref-parser/lib/normalize-args.js"(exports2, module2) {
- "use strict";
- var Options2 = require_options();
- module2.exports = normalizeArgs;
- function normalizeArgs(args) {
- let path2, schema, options, callback;
- args = Array.prototype.slice.call(args);
- if (typeof args[args.length - 1] === "function") {
- callback = args.pop();
- }
- if (typeof args[0] === "string") {
- path2 = args[0];
- if (typeof args[2] === "object") {
- schema = args[1];
- options = args[2];
- } else {
- schema = void 0;
- options = args[1];
- }
- } else {
- path2 = "";
- schema = args[0];
- options = args[1];
- }
- if (!(options instanceof Options2)) {
- options = new Options2(options);
- }
- return {
- path: path2,
- schema,
- options,
- callback
- };
- }
- }
- });
- // node_modules/@apidevtools/swagger-parser/lib/options.js
- var require_options2 = __commonJS({
- "node_modules/@apidevtools/swagger-parser/lib/options.js"(exports2, module2) {
- "use strict";
- var $RefParserOptions = require_options();
- var schemaValidator = require_schema5();
- var specValidator = require_spec();
- var util = require("util");
- module2.exports = ParserOptions;
- function ParserOptions(_options) {
- $RefParserOptions.call(this, ParserOptions.defaults);
- $RefParserOptions.apply(this, arguments);
- }
- ParserOptions.defaults = {
- /**
- * Determines how the API definition will be validated.
- *
- * You can add additional validators of your own, replace an existing one with
- * your own implemenation, or disable any validator by setting it to false.
- */
- validate: {
- schema: schemaValidator,
- spec: specValidator
- }
- };
- util.inherits(ParserOptions, $RefParserOptions);
- }
- });
- // node_modules/call-me-maybe/src/next.js
- var require_next = __commonJS({
- "node_modules/call-me-maybe/src/next.js"(exports2, module2) {
- "use strict";
- function makeNext() {
- if (typeof process === "object" && typeof process.nextTick === "function") {
- return process.nextTick;
- } else if (typeof setImmediate === "function") {
- return setImmediate;
- } else {
- return function next(f) {
- setTimeout(f, 0);
- };
- }
- }
- module2.exports = makeNext();
- }
- });
- // node_modules/call-me-maybe/src/maybe.js
- var require_maybe = __commonJS({
- "node_modules/call-me-maybe/src/maybe.js"(exports2, module2) {
- "use strict";
- var next = require_next();
- module2.exports = function maybe(cb, promise) {
- if (cb) {
- promise.then(function(result) {
- next(function() {
- cb(null, result);
- });
- }, function(err) {
- next(function() {
- cb(err);
- });
- });
- return void 0;
- } else {
- return promise;
- }
- };
- }
- });
- // node_modules/@apidevtools/json-schema-ref-parser/lib/pointer.js
- var require_pointer = __commonJS({
- "node_modules/@apidevtools/json-schema-ref-parser/lib/pointer.js"(exports2, module2) {
- "use strict";
- module2.exports = Pointer;
- var $Ref = require_ref2();
- var url = require_url();
- var { JSONParserError, InvalidPointerError, MissingPointerError, isHandledError } = require_errors();
- var slashes = /\//g;
- var tildes = /~/g;
- var escapedSlash = /~1/g;
- var escapedTilde = /~0/g;
- function Pointer($ref, path2, friendlyPath) {
- this.$ref = $ref;
- this.path = path2;
- this.originalPath = friendlyPath || path2;
- this.value = void 0;
- this.circular = false;
- this.indirections = 0;
- }
- Pointer.prototype.resolve = function(obj, options, pathFromRoot) {
- let tokens = Pointer.parse(this.path, this.originalPath);
- this.value = unwrapOrThrow(obj);
- for (let i = 0; i < tokens.length; i++) {
- if (resolveIf$Ref(this, options)) {
- this.path = Pointer.join(this.path, tokens.slice(i));
- }
- if (typeof this.value === "object" && this.value !== null && "$ref" in this.value) {
- return this;
- }
- let token = tokens[i];
- if (this.value[token] === void 0 || this.value[token] === null) {
- this.value = null;
- throw new MissingPointerError(token, decodeURI(this.originalPath));
- } else {
- this.value = this.value[token];
- }
- }
- if (!this.value || this.value.$ref && url.resolve(this.path, this.value.$ref) !== pathFromRoot) {
- resolveIf$Ref(this, options);
- }
- return this;
- };
- Pointer.prototype.set = function(obj, value, options) {
- let tokens = Pointer.parse(this.path);
- let token;
- if (tokens.length === 0) {
- this.value = value;
- return value;
- }
- this.value = unwrapOrThrow(obj);
- for (let i = 0; i < tokens.length - 1; i++) {
- resolveIf$Ref(this, options);
- token = tokens[i];
- if (this.value && this.value[token] !== void 0) {
- this.value = this.value[token];
- } else {
- this.value = setValue(this, token, {});
- }
- }
- resolveIf$Ref(this, options);
- token = tokens[tokens.length - 1];
- setValue(this, token, value);
- return obj;
- };
- Pointer.parse = function(path2, originalPath) {
- let pointer = url.getHash(path2).substr(1);
- if (!pointer) {
- return [];
- }
- pointer = pointer.split("/");
- for (let i = 0; i < pointer.length; i++) {
- pointer[i] = decodeURIComponent(pointer[i].replace(escapedSlash, "/").replace(escapedTilde, "~"));
- }
- if (pointer[0] !== "") {
- throw new InvalidPointerError(pointer, originalPath === void 0 ? path2 : originalPath);
- }
- return pointer.slice(1);
- };
- Pointer.join = function(base, tokens) {
- if (base.indexOf("#") === -1) {
- base += "#";
- }
- tokens = Array.isArray(tokens) ? tokens : [tokens];
- for (let i = 0; i < tokens.length; i++) {
- let token = tokens[i];
- base += "/" + encodeURIComponent(token.replace(tildes, "~0").replace(slashes, "~1"));
- }
- return base;
- };
- function resolveIf$Ref(pointer, options) {
- if ($Ref.isAllowed$Ref(pointer.value, options)) {
- let $refPath = url.resolve(pointer.path, pointer.value.$ref);
- if ($refPath === pointer.path) {
- pointer.circular = true;
- } else {
- let resolved = pointer.$ref.$refs._resolve($refPath, pointer.path, options);
- if (resolved === null) {
- return false;
- }
- pointer.indirections += resolved.indirections + 1;
- if ($Ref.isExtended$Ref(pointer.value)) {
- pointer.value = $Ref.dereference(pointer.value, resolved.value);
- return false;
- } else {
- pointer.$ref = resolved.$ref;
- pointer.path = resolved.path;
- pointer.value = resolved.value;
- }
- return true;
- }
- }
- }
- function setValue(pointer, token, value) {
- if (pointer.value && typeof pointer.value === "object") {
- if (token === "-" && Array.isArray(pointer.value)) {
- pointer.value.push(value);
- } else {
- pointer.value[token] = value;
- }
- } else {
- throw new JSONParserError(`Error assigning $ref pointer "${pointer.path}".
- Cannot set "${token}" of a non-object.`);
- }
- return value;
- }
- function unwrapOrThrow(value) {
- if (isHandledError(value)) {
- throw value;
- }
- return value;
- }
- }
- });
- // node_modules/@apidevtools/json-schema-ref-parser/lib/ref.js
- var require_ref2 = __commonJS({
- "node_modules/@apidevtools/json-schema-ref-parser/lib/ref.js"(exports2, module2) {
- "use strict";
- module2.exports = $Ref;
- var Pointer = require_pointer();
- var { InvalidPointerError, isHandledError, normalizeError } = require_errors();
- var { safePointerToPath, stripHash, getHash } = require_url();
- function $Ref() {
- this.path = void 0;
- this.value = void 0;
- this.$refs = void 0;
- this.pathType = void 0;
- this.errors = void 0;
- }
- $Ref.prototype.addError = function(err) {
- if (this.errors === void 0) {
- this.errors = [];
- }
- const existingErrors = this.errors.map(({ footprint }) => footprint);
- if (Array.isArray(err.errors)) {
- this.errors.push(
- ...err.errors.map(normalizeError).filter(({ footprint }) => !existingErrors.includes(footprint))
- );
- } else if (!existingErrors.includes(err.footprint)) {
- this.errors.push(normalizeError(err));
- }
- };
- $Ref.prototype.exists = function(path2, options) {
- try {
- this.resolve(path2, options);
- return true;
- } catch (e) {
- return false;
- }
- };
- $Ref.prototype.get = function(path2, options) {
- return this.resolve(path2, options).value;
- };
- $Ref.prototype.resolve = function(path2, options, friendlyPath, pathFromRoot) {
- let pointer = new Pointer(this, path2, friendlyPath);
- try {
- return pointer.resolve(this.value, options, pathFromRoot);
- } catch (err) {
- if (!options || !options.continueOnError || !isHandledError(err)) {
- throw err;
- }
- if (err.path === null) {
- err.path = safePointerToPath(getHash(pathFromRoot));
- }
- if (err instanceof InvalidPointerError) {
- err.source = decodeURI(stripHash(pathFromRoot));
- }
- this.addError(err);
- return null;
- }
- };
- $Ref.prototype.set = function(path2, value) {
- let pointer = new Pointer(this, path2);
- this.value = pointer.set(this.value, value);
- };
- $Ref.is$Ref = function(value) {
- return value && typeof value === "object" && typeof value.$ref === "string" && value.$ref.length > 0;
- };
- $Ref.isExternal$Ref = function(value) {
- return $Ref.is$Ref(value) && value.$ref[0] !== "#";
- };
- $Ref.isAllowed$Ref = function(value, options) {
- if ($Ref.is$Ref(value)) {
- if (value.$ref.substr(0, 2) === "#/" || value.$ref === "#") {
- return true;
- } else if (value.$ref[0] !== "#" && (!options || options.resolve.external)) {
- return true;
- }
- }
- };
- $Ref.isExtended$Ref = function(value) {
- return $Ref.is$Ref(value) && Object.keys(value).length > 1;
- };
- $Ref.dereference = function($ref, resolvedValue) {
- if (resolvedValue && typeof resolvedValue === "object" && $Ref.isExtended$Ref($ref)) {
- let merged = {};
- for (let key of Object.keys($ref)) {
- if (key !== "$ref") {
- merged[key] = $ref[key];
- }
- }
- for (let key of Object.keys(resolvedValue)) {
- if (!(key in merged)) {
- merged[key] = resolvedValue[key];
- }
- }
- return merged;
- } else {
- return resolvedValue;
- }
- };
- }
- });
- // node_modules/@apidevtools/json-schema-ref-parser/lib/refs.js
- var require_refs = __commonJS({
- "node_modules/@apidevtools/json-schema-ref-parser/lib/refs.js"(exports2, module2) {
- "use strict";
- var { ono } = require_cjs();
- var $Ref = require_ref2();
- var url = require_url();
- module2.exports = $Refs;
- function $Refs() {
- this.circular = false;
- this._$refs = {};
- this._root$Ref = null;
- }
- $Refs.prototype.paths = function(types) {
- let paths = getPaths(this._$refs, arguments);
- return paths.map((path2) => {
- return path2.decoded;
- });
- };
- $Refs.prototype.values = function(types) {
- let $refs = this._$refs;
- let paths = getPaths($refs, arguments);
- return paths.reduce((obj, path2) => {
- obj[path2.decoded] = $refs[path2.encoded].value;
- return obj;
- }, {});
- };
- $Refs.prototype.toJSON = $Refs.prototype.values;
- $Refs.prototype.exists = function(path2, options) {
- try {
- this._resolve(path2, "", options);
- return true;
- } catch (e) {
- return false;
- }
- };
- $Refs.prototype.get = function(path2, options) {
- return this._resolve(path2, "", options).value;
- };
- $Refs.prototype.set = function(path2, value) {
- let absPath = url.resolve(this._root$Ref.path, path2);
- let withoutHash = url.stripHash(absPath);
- let $ref = this._$refs[withoutHash];
- if (!$ref) {
- throw ono(`Error resolving $ref pointer "${path2}".
- "${withoutHash}" not found.`);
- }
- $ref.set(absPath, value);
- };
- $Refs.prototype._add = function(path2) {
- let withoutHash = url.stripHash(path2);
- let $ref = new $Ref();
- $ref.path = withoutHash;
- $ref.$refs = this;
- this._$refs[withoutHash] = $ref;
- this._root$Ref = this._root$Ref || $ref;
- return $ref;
- };
- $Refs.prototype._resolve = function(path2, pathFromRoot, options) {
- let absPath = url.resolve(this._root$Ref.path, path2);
- let withoutHash = url.stripHash(absPath);
- let $ref = this._$refs[withoutHash];
- if (!$ref) {
- throw ono(`Error resolving $ref pointer "${path2}".
- "${withoutHash}" not found.`);
- }
- return $ref.resolve(absPath, options, path2, pathFromRoot);
- };
- $Refs.prototype._get$Ref = function(path2) {
- path2 = url.resolve(this._root$Ref.path, path2);
- let withoutHash = url.stripHash(path2);
- return this._$refs[withoutHash];
- };
- function getPaths($refs, types) {
- let paths = Object.keys($refs);
- types = Array.isArray(types[0]) ? types[0] : Array.prototype.slice.call(types);
- if (types.length > 0 && types[0]) {
- paths = paths.filter((key) => {
- return types.indexOf($refs[key].pathType) !== -1;
- });
- }
- return paths.map((path2) => {
- return {
- encoded: path2,
- decoded: $refs[path2].pathType === "file" ? url.toFileSystemPath(path2, true) : path2
- };
- });
- }
- }
- });
- // node_modules/@apidevtools/json-schema-ref-parser/lib/util/plugins.js
- var require_plugins = __commonJS({
- "node_modules/@apidevtools/json-schema-ref-parser/lib/util/plugins.js"(exports2) {
- "use strict";
- exports2.all = function(plugins) {
- return Object.keys(plugins).filter((key) => {
- return typeof plugins[key] === "object";
- }).map((key) => {
- plugins[key].name = key;
- return plugins[key];
- });
- };
- exports2.filter = function(plugins, method, file) {
- return plugins.filter((plugin) => {
- return !!getResult(plugin, method, file);
- });
- };
- exports2.sort = function(plugins) {
- for (let plugin of plugins) {
- plugin.order = plugin.order || Number.MAX_SAFE_INTEGER;
- }
- return plugins.sort((a, b) => {
- return a.order - b.order;
- });
- };
- exports2.run = function(plugins, method, file, $refs) {
- let plugin, lastError, index = 0;
- return new Promise(((resolve, reject) => {
- runNextPlugin();
- function runNextPlugin() {
- plugin = plugins[index++];
- if (!plugin) {
- return reject(lastError);
- }
- try {
- let result = getResult(plugin, method, file, callback, $refs);
- if (result && typeof result.then === "function") {
- result.then(onSuccess, onError);
- } else if (result !== void 0) {
- onSuccess(result);
- } else if (index === plugins.length) {
- throw new Error("No promise has been returned or callback has been called.");
- }
- } catch (e) {
- onError(e);
- }
- }
- function callback(err, result) {
- if (err) {
- onError(err);
- } else {
- onSuccess(result);
- }
- }
- function onSuccess(result) {
- resolve({
- plugin,
- result
- });
- }
- function onError(error) {
- lastError = {
- plugin,
- error
- };
- runNextPlugin();
- }
- }));
- };
- function getResult(obj, prop, file, callback, $refs) {
- let value = obj[prop];
- if (typeof value === "function") {
- return value.apply(obj, [file, callback, $refs]);
- }
- if (!callback) {
- if (value instanceof RegExp) {
- return value.test(file.url);
- } else if (typeof value === "string") {
- return value === file.extension;
- } else if (Array.isArray(value)) {
- return value.indexOf(file.extension) !== -1;
- }
- }
- return value;
- }
- }
- });
- // node_modules/@apidevtools/json-schema-ref-parser/lib/parse.js
- var require_parse2 = __commonJS({
- "node_modules/@apidevtools/json-schema-ref-parser/lib/parse.js"(exports2, module2) {
- "use strict";
- var { ono } = require_cjs();
- var url = require_url();
- var plugins = require_plugins();
- var { ResolverError, ParserError, UnmatchedParserError, UnmatchedResolverError, isHandledError } = require_errors();
- module2.exports = parse;
- async function parse(path2, $refs, options) {
- path2 = url.stripHash(path2);
- let $ref = $refs._add(path2);
- let file = {
- url: path2,
- extension: url.getExtension(path2)
- };
- try {
- const resolver = await readFile(file, options, $refs);
- $ref.pathType = resolver.plugin.name;
- file.data = resolver.result;
- const parser = await parseFile(file, options, $refs);
- $ref.value = parser.result;
- return parser.result;
- } catch (err) {
- if (isHandledError(err)) {
- $ref.value = err;
- }
- throw err;
- }
- }
- function readFile(file, options, $refs) {
- return new Promise(((resolve, reject) => {
- let resolvers = plugins.all(options.resolve);
- resolvers = plugins.filter(resolvers, "canRead", file);
- plugins.sort(resolvers);
- plugins.run(resolvers, "read", file, $refs).then(resolve, onError);
- function onError(err) {
- if (!err && options.continueOnError) {
- reject(new UnmatchedResolverError(file.url));
- } else if (!err || !("error" in err)) {
- reject(ono.syntax(`Unable to resolve $ref pointer "${file.url}"`));
- } else if (err.error instanceof ResolverError) {
- reject(err.error);
- } else {
- reject(new ResolverError(err, file.url));
- }
- }
- }));
- }
- function parseFile(file, options, $refs) {
- return new Promise(((resolve, reject) => {
- let allParsers = plugins.all(options.parse);
- let filteredParsers = plugins.filter(allParsers, "canParse", file);
- let parsers = filteredParsers.length > 0 ? filteredParsers : allParsers;
- plugins.sort(parsers);
- plugins.run(parsers, "parse", file, $refs).then(onParsed, onError);
- function onParsed(parser) {
- if (!parser.plugin.allowEmpty && isEmpty(parser.result)) {
- reject(ono.syntax(`Error parsing "${file.url}" as ${parser.plugin.name}.
- Parsed value is empty`));
- } else {
- resolve(parser);
- }
- }
- function onError(err) {
- if (!err && options.continueOnError) {
- reject(new UnmatchedParserError(file.url));
- } else if (!err || !("error" in err)) {
- reject(ono.syntax(`Unable to parse ${file.url}`));
- } else if (err.error instanceof ParserError) {
- reject(err.error);
- } else {
- reject(new ParserError(err.error.message, file.url));
- }
- }
- }));
- }
- function isEmpty(value) {
- return value === void 0 || typeof value === "object" && Object.keys(value).length === 0 || typeof value === "string" && value.trim().length === 0 || Buffer.isBuffer(value) && value.length === 0;
- }
- }
- });
- // node_modules/@apidevtools/json-schema-ref-parser/lib/resolve-external.js
- var require_resolve_external = __commonJS({
- "node_modules/@apidevtools/json-schema-ref-parser/lib/resolve-external.js"(exports2, module2) {
- "use strict";
- var $Ref = require_ref2();
- var Pointer = require_pointer();
- var parse = require_parse2();
- var url = require_url();
- var { isHandledError } = require_errors();
- module2.exports = resolveExternal;
- function resolveExternal(parser, options) {
- if (!options.resolve.external) {
- return Promise.resolve();
- }
- try {
- let promises = crawl(parser.schema, parser.$refs._root$Ref.path + "#", parser.$refs, options);
- return Promise.all(promises);
- } catch (e) {
- return Promise.reject(e);
- }
- }
- function crawl(obj, path2, $refs, options, seen) {
- seen = seen || /* @__PURE__ */ new Set();
- let promises = [];
- if (obj && typeof obj === "object" && !ArrayBuffer.isView(obj) && !seen.has(obj)) {
- seen.add(obj);
- if ($Ref.isExternal$Ref(obj)) {
- promises.push(resolve$Ref(obj, path2, $refs, options));
- } else {
- for (let key of Object.keys(obj)) {
- let keyPath = Pointer.join(path2, key);
- let value = obj[key];
- if ($Ref.isExternal$Ref(value)) {
- promises.push(resolve$Ref(value, keyPath, $refs, options));
- } else {
- promises = promises.concat(crawl(value, keyPath, $refs, options, seen));
- }
- }
- }
- }
- return promises;
- }
- async function resolve$Ref($ref, path2, $refs, options) {
- let resolvedPath = url.resolve(path2, $ref.$ref);
- let withoutHash = url.stripHash(resolvedPath);
- $ref = $refs._$refs[withoutHash];
- if ($ref) {
- return Promise.resolve($ref.value);
- }
- try {
- const result = await parse(resolvedPath, $refs, options);
- let promises = crawl(result, withoutHash + "#", $refs, options);
- return Promise.all(promises);
- } catch (err) {
- if (!options.continueOnError || !isHandledError(err)) {
- throw err;
- }
- if ($refs._$refs[withoutHash]) {
- err.source = decodeURI(url.stripHash(path2));
- err.path = url.safePointerToPath(url.getHash(path2));
- }
- return [];
- }
- }
- }
- });
- // node_modules/@apidevtools/json-schema-ref-parser/lib/bundle.js
- var require_bundle = __commonJS({
- "node_modules/@apidevtools/json-schema-ref-parser/lib/bundle.js"(exports2, module2) {
- "use strict";
- var $Ref = require_ref2();
- var Pointer = require_pointer();
- var url = require_url();
- module2.exports = bundle;
- function bundle(parser, options) {
- let inventory = [];
- crawl(parser, "schema", parser.$refs._root$Ref.path + "#", "#", 0, inventory, parser.$refs, options);
- remap(inventory);
- }
- function crawl(parent, key, path2, pathFromRoot, indirections, inventory, $refs, options) {
- let obj = key === null ? parent : parent[key];
- if (obj && typeof obj === "object" && !ArrayBuffer.isView(obj)) {
- if ($Ref.isAllowed$Ref(obj)) {
- inventory$Ref(parent, key, path2, pathFromRoot, indirections, inventory, $refs, options);
- } else {
- let keys = Object.keys(obj).sort((a, b) => {
- if (a === "definitions") {
- return -1;
- } else if (b === "definitions") {
- return 1;
- } else {
- return a.length - b.length;
- }
- });
- for (let key2 of keys) {
- let keyPath = Pointer.join(path2, key2);
- let keyPathFromRoot = Pointer.join(pathFromRoot, key2);
- let value = obj[key2];
- if ($Ref.isAllowed$Ref(value)) {
- inventory$Ref(obj, key2, path2, keyPathFromRoot, indirections, inventory, $refs, options);
- } else {
- crawl(obj, key2, keyPath, keyPathFromRoot, indirections, inventory, $refs, options);
- }
- }
- }
- }
- }
- function inventory$Ref($refParent, $refKey, path2, pathFromRoot, indirections, inventory, $refs, options) {
- let $ref = $refKey === null ? $refParent : $refParent[$refKey];
- let $refPath = url.resolve(path2, $ref.$ref);
- let pointer = $refs._resolve($refPath, pathFromRoot, options);
- if (pointer === null) {
- return;
- }
- let depth = Pointer.parse(pathFromRoot).length;
- let file = url.stripHash(pointer.path);
- let hash = url.getHash(pointer.path);
- let external = file !== $refs._root$Ref.path;
- let extended = $Ref.isExtended$Ref($ref);
- indirections += pointer.indirections;
- let existingEntry = findInInventory(inventory, $refParent, $refKey);
- if (existingEntry) {
- if (depth < existingEntry.depth || indirections < existingEntry.indirections) {
- removeFromInventory(inventory, existingEntry);
- } else {
- return;
- }
- }
- inventory.push({
- $ref,
- // The JSON Reference (e.g. {$ref: string})
- parent: $refParent,
- // The object that contains this $ref pointer
- key: $refKey,
- // The key in `parent` that is the $ref pointer
- pathFromRoot,
- // The path to the $ref pointer, from the JSON Schema root
- depth,
- // How far from the JSON Schema root is this $ref pointer?
- file,
- // The file that the $ref pointer resolves to
- hash,
- // The hash within `file` that the $ref pointer resolves to
- value: pointer.value,
- // The resolved value of the $ref pointer
- circular: pointer.circular,
- // Is this $ref pointer DIRECTLY circular? (i.e. it references itself)
- extended,
- // Does this $ref extend its resolved value? (i.e. it has extra properties, in addition to "$ref")
- external,
- // Does this $ref pointer point to a file other than the main JSON Schema file?
- indirections
- // The number of indirect references that were traversed to resolve the value
- });
- if (!existingEntry) {
- crawl(pointer.value, null, pointer.path, pathFromRoot, indirections + 1, inventory, $refs, options);
- }
- }
- function remap(inventory) {
- inventory.sort((a, b) => {
- if (a.file !== b.file) {
- return a.file < b.file ? -1 : 1;
- } else if (a.hash !== b.hash) {
- return a.hash < b.hash ? -1 : 1;
- } else if (a.circular !== b.circular) {
- return a.circular ? -1 : 1;
- } else if (a.extended !== b.extended) {
- return a.extended ? 1 : -1;
- } else if (a.indirections !== b.indirections) {
- return a.indirections - b.indirections;
- } else if (a.depth !== b.depth) {
- return a.depth - b.depth;
- } else {
- let aDefinitionsIndex = a.pathFromRoot.lastIndexOf("/definitions");
- let bDefinitionsIndex = b.pathFromRoot.lastIndexOf("/definitions");
- if (aDefinitionsIndex !== bDefinitionsIndex) {
- return bDefinitionsIndex - aDefinitionsIndex;
- } else {
- return a.pathFromRoot.length - b.pathFromRoot.length;
- }
- }
- });
- let file, hash, pathFromRoot;
- for (let entry of inventory) {
- if (!entry.external) {
- entry.$ref.$ref = entry.hash;
- } else if (entry.file === file && entry.hash === hash) {
- entry.$ref.$ref = pathFromRoot;
- } else if (entry.file === file && entry.hash.indexOf(hash + "/") === 0) {
- entry.$ref.$ref = Pointer.join(pathFromRoot, Pointer.parse(entry.hash.replace(hash, "#")));
- } else {
- file = entry.file;
- hash = entry.hash;
- pathFromRoot = entry.pathFromRoot;
- entry.$ref = entry.parent[entry.key] = $Ref.dereference(entry.$ref, entry.value);
- if (entry.circular) {
- entry.$ref.$ref = entry.pathFromRoot;
- }
- }
- }
- }
- function findInInventory(inventory, $refParent, $refKey) {
- for (let i = 0; i < inventory.length; i++) {
- let existingEntry = inventory[i];
- if (existingEntry.parent === $refParent && existingEntry.key === $refKey) {
- return existingEntry;
- }
- }
- }
- function removeFromInventory(inventory, entry) {
- let index = inventory.indexOf(entry);
- inventory.splice(index, 1);
- }
- }
- });
- // node_modules/@apidevtools/json-schema-ref-parser/lib/dereference.js
- var require_dereference = __commonJS({
- "node_modules/@apidevtools/json-schema-ref-parser/lib/dereference.js"(exports2, module2) {
- "use strict";
- var $Ref = require_ref2();
- var Pointer = require_pointer();
- var { ono } = require_cjs();
- var url = require_url();
- module2.exports = dereference;
- function dereference(parser, options) {
- let dereferenced = crawl(parser.schema, parser.$refs._root$Ref.path, "#", /* @__PURE__ */ new Set(), /* @__PURE__ */ new Set(), /* @__PURE__ */ new Map(), parser.$refs, options);
- parser.$refs.circular = dereferenced.circular;
- parser.schema = dereferenced.value;
- }
- function crawl(obj, path2, pathFromRoot, parents, processedObjects, dereferencedCache, $refs, options) {
- let dereferenced;
- let result = {
- value: obj,
- circular: false
- };
- let isExcludedPath = options.dereference.excludedPathMatcher;
- if (options.dereference.circular === "ignore" || !processedObjects.has(obj)) {
- if (obj && typeof obj === "object" && !ArrayBuffer.isView(obj) && !isExcludedPath(pathFromRoot)) {
- parents.add(obj);
- processedObjects.add(obj);
- if ($Ref.isAllowed$Ref(obj, options)) {
- dereferenced = dereference$Ref(obj, path2, pathFromRoot, parents, processedObjects, dereferencedCache, $refs, options);
- result.circular = dereferenced.circular;
- result.value = dereferenced.value;
- } else {
- for (const key of Object.keys(obj)) {
- let keyPath = Pointer.join(path2, key);
- let keyPathFromRoot = Pointer.join(pathFromRoot, key);
- if (isExcludedPath(keyPathFromRoot)) {
- continue;
- }
- let value = obj[key];
- let circular = false;
- if ($Ref.isAllowed$Ref(value, options)) {
- dereferenced = dereference$Ref(value, keyPath, keyPathFromRoot, parents, processedObjects, dereferencedCache, $refs, options);
- circular = dereferenced.circular;
- if (obj[key] !== dereferenced.value) {
- obj[key] = dereferenced.value;
- }
- } else {
- if (!parents.has(value)) {
- dereferenced = crawl(value, keyPath, keyPathFromRoot, parents, processedObjects, dereferencedCache, $refs, options);
- circular = dereferenced.circular;
- if (obj[key] !== dereferenced.value) {
- obj[key] = dereferenced.value;
- }
- } else {
- circular = foundCircularReference(keyPath, $refs, options);
- }
- }
- result.circular = result.circular || circular;
- }
- }
- parents.delete(obj);
- }
- }
- return result;
- }
- function dereference$Ref($ref, path2, pathFromRoot, parents, processedObjects, dereferencedCache, $refs, options) {
- let $refPath = url.resolve(path2, $ref.$ref);
- const cache = dereferencedCache.get($refPath);
- if (cache) {
- const refKeys = Object.keys($ref);
- if (refKeys.length > 1) {
- const extraKeys = {};
- for (let key of refKeys) {
- if (key !== "$ref" && !(key in cache.value)) {
- extraKeys[key] = $ref[key];
- }
- }
- return {
- circular: cache.circular,
- value: Object.assign({}, cache.value, extraKeys)
- };
- }
- return cache;
- }
- let pointer = $refs._resolve($refPath, path2, options);
- if (pointer === null) {
- return {
- circular: false,
- value: null
- };
- }
- let directCircular = pointer.circular;
- let circular = directCircular || parents.has(pointer.value);
- circular && foundCircularReference(path2, $refs, options);
- let dereferencedValue = $Ref.dereference($ref, pointer.value);
- if (!circular) {
- let dereferenced = crawl(dereferencedValue, pointer.path, pathFromRoot, parents, processedObjects, dereferencedCache, $refs, options);
- circular = dereferenced.circular;
- dereferencedValue = dereferenced.value;
- }
- if (circular && !directCircular && options.dereference.circular === "ignore") {
- dereferencedValue = $ref;
- }
- if (directCircular) {
- dereferencedValue.$ref = pathFromRoot;
- }
- const dereferencedObject = {
- circular,
- value: dereferencedValue
- };
- if (Object.keys($ref).length === 1) {
- dereferencedCache.set($refPath, dereferencedObject);
- }
- return dereferencedObject;
- }
- function foundCircularReference(keyPath, $refs, options) {
- $refs.circular = true;
- if (!options.dereference.circular) {
- throw ono.reference(`Circular $ref pointer found at ${keyPath}`);
- }
- return true;
- }
- }
- });
- // node_modules/@apidevtools/json-schema-ref-parser/lib/index.js
- var require_lib5 = __commonJS({
- "node_modules/@apidevtools/json-schema-ref-parser/lib/index.js"(exports2, module2) {
- "use strict";
- var $Refs = require_refs();
- var _parse = require_parse2();
- var normalizeArgs = require_normalize_args();
- var resolveExternal = require_resolve_external();
- var _bundle = require_bundle();
- var _dereference = require_dereference();
- var url = require_url();
- var { JSONParserError, InvalidPointerError, MissingPointerError, ResolverError, ParserError, UnmatchedParserError, UnmatchedResolverError, isHandledError, JSONParserErrorGroup } = require_errors();
- var maybe = require_maybe();
- var { ono } = require_cjs();
- module2.exports = $RefParser;
- module2.exports.default = $RefParser;
- module2.exports.JSONParserError = JSONParserError;
- module2.exports.InvalidPointerError = InvalidPointerError;
- module2.exports.MissingPointerError = MissingPointerError;
- module2.exports.ResolverError = ResolverError;
- module2.exports.ParserError = ParserError;
- module2.exports.UnmatchedParserError = UnmatchedParserError;
- module2.exports.UnmatchedResolverError = UnmatchedResolverError;
- function $RefParser() {
- this.schema = null;
- this.$refs = new $Refs();
- }
- $RefParser.parse = function parse(path2, schema, options, callback) {
- let Class = this;
- let instance = new Class();
- return instance.parse.apply(instance, arguments);
- };
- $RefParser.prototype.parse = async function parse(path2, schema, options, callback) {
- let args = normalizeArgs(arguments);
- let promise;
- if (!args.path && !args.schema) {
- let err = ono(`Expected a file path, URL, or object. Got ${args.path || args.schema}`);
- return maybe(args.callback, Promise.reject(err));
- }
- this.schema = null;
- this.$refs = new $Refs();
- let pathType = "http";
- if (url.isFileSystemPath(args.path)) {
- args.path = url.fromFileSystemPath(args.path);
- pathType = "file";
- }
- args.path = url.resolve(url.cwd(), args.path);
- if (args.schema && typeof args.schema === "object") {
- let $ref = this.$refs._add(args.path);
- $ref.value = args.schema;
- $ref.pathType = pathType;
- promise = Promise.resolve(args.schema);
- } else {
- promise = _parse(args.path, this.$refs, args.options);
- }
- let me = this;
- try {
- let result = await promise;
- if (result !== null && typeof result === "object" && !Buffer.isBuffer(result)) {
- me.schema = result;
- return maybe(args.callback, Promise.resolve(me.schema));
- } else if (args.options.continueOnError) {
- me.schema = null;
- return maybe(args.callback, Promise.resolve(me.schema));
- } else {
- throw ono.syntax(`"${me.$refs._root$Ref.path || result}" is not a valid JSON Schema`);
- }
- } catch (err) {
- if (!args.options.continueOnError || !isHandledError(err)) {
- return maybe(args.callback, Promise.reject(err));
- }
- if (this.$refs._$refs[url.stripHash(args.path)]) {
- this.$refs._$refs[url.stripHash(args.path)].addError(err);
- }
- return maybe(args.callback, Promise.resolve(null));
- }
- };
- $RefParser.resolve = function resolve(path2, schema, options, callback) {
- let Class = this;
- let instance = new Class();
- return instance.resolve.apply(instance, arguments);
- };
- $RefParser.prototype.resolve = async function resolve(path2, schema, options, callback) {
- let me = this;
- let args = normalizeArgs(arguments);
- try {
- await this.parse(args.path, args.schema, args.options);
- await resolveExternal(me, args.options);
- finalize(me);
- return maybe(args.callback, Promise.resolve(me.$refs));
- } catch (err) {
- return maybe(args.callback, Promise.reject(err));
- }
- };
- $RefParser.bundle = function bundle(path2, schema, options, callback) {
- let Class = this;
- let instance = new Class();
- return instance.bundle.apply(instance, arguments);
- };
- $RefParser.prototype.bundle = async function bundle(path2, schema, options, callback) {
- let me = this;
- let args = normalizeArgs(arguments);
- try {
- await this.resolve(args.path, args.schema, args.options);
- _bundle(me, args.options);
- finalize(me);
- return maybe(args.callback, Promise.resolve(me.schema));
- } catch (err) {
- return maybe(args.callback, Promise.reject(err));
- }
- };
- $RefParser.dereference = function dereference(path2, schema, options, callback) {
- let Class = this;
- let instance = new Class();
- return instance.dereference.apply(instance, arguments);
- };
- $RefParser.prototype.dereference = async function dereference(path2, schema, options, callback) {
- let me = this;
- let args = normalizeArgs(arguments);
- try {
- await this.resolve(args.path, args.schema, args.options);
- _dereference(me, args.options);
- finalize(me);
- return maybe(args.callback, Promise.resolve(me.schema));
- } catch (err) {
- return maybe(args.callback, Promise.reject(err));
- }
- };
- function finalize(parser) {
- const errors = JSONParserErrorGroup.getParserErrors(parser);
- if (errors.length > 0) {
- throw new JSONParserErrorGroup(parser);
- }
- }
- }
- });
- // node_modules/@apidevtools/swagger-parser/lib/index.js
- var require_lib6 = __commonJS({
- "node_modules/@apidevtools/swagger-parser/lib/index.js"(exports2, module2) {
- "use strict";
- var validateSchema = require_schema5();
- var validateSpec = require_spec();
- var normalizeArgs = require_normalize_args();
- var util = require_util();
- var Options2 = require_options2();
- var maybe = require_maybe();
- var { ono } = require_cjs();
- var $RefParser = require_lib5();
- var dereference = require_dereference();
- module2.exports = SwaggerParser;
- function SwaggerParser() {
- $RefParser.apply(this, arguments);
- }
- util.inherits(SwaggerParser, $RefParser);
- SwaggerParser.parse = $RefParser.parse;
- SwaggerParser.resolve = $RefParser.resolve;
- SwaggerParser.bundle = $RefParser.bundle;
- SwaggerParser.dereference = $RefParser.dereference;
- Object.defineProperty(SwaggerParser.prototype, "api", {
- configurable: true,
- enumerable: true,
- get() {
- return this.schema;
- }
- });
- SwaggerParser.prototype.parse = async function(path2, api, options, callback) {
- let args = normalizeArgs(arguments);
- args.options = new Options2(args.options);
- try {
- let schema = await $RefParser.prototype.parse.call(this, args.path, args.schema, args.options);
- if (schema.swagger) {
- if (schema.swagger === void 0 || schema.info === void 0 || schema.paths === void 0) {
- throw ono.syntax(`${args.path || args.schema} is not a valid Swagger API definition`);
- } else if (typeof schema.swagger === "number") {
- throw ono.syntax('Swagger version number must be a string (e.g. "2.0") not a number.');
- } else if (typeof schema.info.version === "number") {
- throw ono.syntax('API version number must be a string (e.g. "1.0.0") not a number.');
- } else if (schema.swagger !== "2.0") {
- throw ono.syntax(`Unrecognized Swagger version: ${schema.swagger}. Expected 2.0`);
- }
- } else {
- let supportedVersions = ["3.0.0", "3.0.1", "3.0.2", "3.0.3"];
- if (schema.openapi === void 0 || schema.info === void 0 || schema.paths === void 0) {
- throw ono.syntax(`${args.path || args.schema} is not a valid Openapi API definition`);
- } else if (typeof schema.openapi === "number") {
- throw ono.syntax('Openapi version number must be a string (e.g. "3.0.0") not a number.');
- } else if (typeof schema.info.version === "number") {
- throw ono.syntax('API version number must be a string (e.g. "1.0.0") not a number.');
- } else if (supportedVersions.indexOf(schema.openapi) === -1) {
- throw ono.syntax(
- `Unsupported OpenAPI version: ${schema.openapi}. Swagger Parser only supports versions ${supportedVersions.join(", ")}`
- );
- }
- }
- return maybe(args.callback, Promise.resolve(schema));
- } catch (err) {
- return maybe(args.callback, Promise.reject(err));
- }
- };
- SwaggerParser.validate = function(path2, api, options, callback) {
- let Class = this;
- let instance = new Class();
- return instance.validate.apply(instance, arguments);
- };
- SwaggerParser.prototype.validate = async function(path2, api, options, callback) {
- let me = this;
- let args = normalizeArgs(arguments);
- args.options = new Options2(args.options);
- let circular$RefOption = args.options.dereference.circular;
- args.options.validate.schema && (args.options.dereference.circular = "ignore");
- try {
- await this.dereference(args.path, args.schema, args.options);
- args.options.dereference.circular = circular$RefOption;
- if (args.options.validate.schema) {
- validateSchema(me.api);
- if (me.$refs.circular) {
- if (circular$RefOption === true) {
- dereference(me, args.options);
- } else if (circular$RefOption === false) {
- throw ono.reference("The API contains circular references");
- }
- }
- }
- if (args.options.validate.spec) {
- validateSpec(me.api);
- }
- return maybe(args.callback, Promise.resolve(me.schema));
- } catch (err) {
- return maybe(args.callback, Promise.reject(err));
- }
- };
- }
- });
- // node_modules/swagger-parser/index.js
- var require_swagger_parser = __commonJS({
- "node_modules/swagger-parser/index.js"(exports2, module2) {
- "use strict";
- module2.exports = require_lib6();
- }
- });
- // node_modules/yaml/dist/_rollupPluginBabelHelpers-eed30217.js
- var require_rollupPluginBabelHelpers_eed30217 = __commonJS({
- "node_modules/yaml/dist/_rollupPluginBabelHelpers-eed30217.js"(exports2) {
- "use strict";
- var Char = {
- ANCHOR: "&",
- COMMENT: "#",
- TAG: "!",
- DIRECTIVES_END: "-",
- DOCUMENT_END: "."
- };
- var Type = {
- ALIAS: "ALIAS",
- BLANK_LINE: "BLANK_LINE",
- BLOCK_FOLDED: "BLOCK_FOLDED",
- BLOCK_LITERAL: "BLOCK_LITERAL",
- COMMENT: "COMMENT",
- DIRECTIVE: "DIRECTIVE",
- DOCUMENT: "DOCUMENT",
- FLOW_MAP: "FLOW_MAP",
- FLOW_SEQ: "FLOW_SEQ",
- MAP: "MAP",
- MAP_KEY: "MAP_KEY",
- MAP_VALUE: "MAP_VALUE",
- PLAIN: "PLAIN",
- QUOTE_DOUBLE: "QUOTE_DOUBLE",
- QUOTE_SINGLE: "QUOTE_SINGLE",
- SEQ: "SEQ",
- SEQ_ITEM: "SEQ_ITEM"
- };
- var defaultTagPrefix = "tag:yaml.org,2002:";
- var defaultTags = {
- MAP: "tag:yaml.org,2002:map",
- SEQ: "tag:yaml.org,2002:seq",
- STR: "tag:yaml.org,2002:str"
- };
- function findLineStarts(src) {
- const ls = [0];
- let offset = src.indexOf("\n");
- while (offset !== -1) {
- offset += 1;
- ls.push(offset);
- offset = src.indexOf("\n", offset);
- }
- return ls;
- }
- function getSrcInfo(cst) {
- let lineStarts, src;
- if (typeof cst === "string") {
- lineStarts = findLineStarts(cst);
- src = cst;
- } else {
- if (Array.isArray(cst)) cst = cst[0];
- if (cst && cst.context) {
- if (!cst.lineStarts) cst.lineStarts = findLineStarts(cst.context.src);
- lineStarts = cst.lineStarts;
- src = cst.context.src;
- }
- }
- return {
- lineStarts,
- src
- };
- }
- function getLinePos(offset, cst) {
- if (typeof offset !== "number" || offset < 0) return null;
- const {
- lineStarts,
- src
- } = getSrcInfo(cst);
- if (!lineStarts || !src || offset > src.length) return null;
- for (let i = 0; i < lineStarts.length; ++i) {
- const start = lineStarts[i];
- if (offset < start) {
- return {
- line: i,
- col: offset - lineStarts[i - 1] + 1
- };
- }
- if (offset === start) return {
- line: i + 1,
- col: 1
- };
- }
- const line = lineStarts.length;
- return {
- line,
- col: offset - lineStarts[line - 1] + 1
- };
- }
- function getLine(line, cst) {
- const {
- lineStarts,
- src
- } = getSrcInfo(cst);
- if (!lineStarts || !(line >= 1) || line > lineStarts.length) return null;
- const start = lineStarts[line - 1];
- let end = lineStarts[line];
- while (end && end > start && src[end - 1] === "\n") --end;
- return src.slice(start, end);
- }
- function getPrettyContext({
- start,
- end
- }, cst, maxWidth = 80) {
- let src = getLine(start.line, cst);
- if (!src) return null;
- let {
- col
- } = start;
- if (src.length > maxWidth) {
- if (col <= maxWidth - 10) {
- src = src.substr(0, maxWidth - 1) + "\u2026";
- } else {
- const halfWidth = Math.round(maxWidth / 2);
- if (src.length > col + halfWidth) src = src.substr(0, col + halfWidth - 1) + "\u2026";
- col -= src.length - maxWidth;
- src = "\u2026" + src.substr(1 - maxWidth);
- }
- }
- let errLen = 1;
- let errEnd = "";
- if (end) {
- if (end.line === start.line && col + (end.col - start.col) <= maxWidth + 1) {
- errLen = end.col - start.col;
- } else {
- errLen = Math.min(src.length + 1, maxWidth) - col;
- errEnd = "\u2026";
- }
- }
- const offset = col > 1 ? " ".repeat(col - 1) : "";
- const err = "^".repeat(errLen);
- return `${src}
- ${offset}${err}${errEnd}`;
- }
- var Range = class _Range {
- static copy(orig) {
- return new _Range(orig.start, orig.end);
- }
- constructor(start, end) {
- this.start = start;
- this.end = end || start;
- }
- isEmpty() {
- return typeof this.start !== "number" || !this.end || this.end <= this.start;
- }
- /**
- * Set `origStart` and `origEnd` to point to the original source range for
- * this node, which may differ due to dropped CR characters.
- *
- * @param {number[]} cr - Positions of dropped CR characters
- * @param {number} offset - Starting index of `cr` from the last call
- * @returns {number} - The next offset, matching the one found for `origStart`
- */
- setOrigRange(cr, offset) {
- const {
- start,
- end
- } = this;
- if (cr.length === 0 || end <= cr[0]) {
- this.origStart = start;
- this.origEnd = end;
- return offset;
- }
- let i = offset;
- while (i < cr.length) {
- if (cr[i] > start) break;
- else ++i;
- }
- this.origStart = start + i;
- const nextOffset = i;
- while (i < cr.length) {
- if (cr[i] >= end) break;
- else ++i;
- }
- this.origEnd = end + i;
- return nextOffset;
- }
- };
- var Node = class _Node {
- static addStringTerminator(src, offset, str) {
- if (str[str.length - 1] === "\n") return str;
- const next = _Node.endOfWhiteSpace(src, offset);
- return next >= src.length || src[next] === "\n" ? str + "\n" : str;
- }
- // ^(---|...)
- static atDocumentBoundary(src, offset, sep) {
- const ch0 = src[offset];
- if (!ch0) return true;
- const prev = src[offset - 1];
- if (prev && prev !== "\n") return false;
- if (sep) {
- if (ch0 !== sep) return false;
- } else {
- if (ch0 !== Char.DIRECTIVES_END && ch0 !== Char.DOCUMENT_END) return false;
- }
- const ch1 = src[offset + 1];
- const ch2 = src[offset + 2];
- if (ch1 !== ch0 || ch2 !== ch0) return false;
- const ch3 = src[offset + 3];
- return !ch3 || ch3 === "\n" || ch3 === " " || ch3 === " ";
- }
- static endOfIdentifier(src, offset) {
- let ch = src[offset];
- const isVerbatim = ch === "<";
- const notOk = isVerbatim ? ["\n", " ", " ", ">"] : ["\n", " ", " ", "[", "]", "{", "}", ","];
- while (ch && notOk.indexOf(ch) === -1) ch = src[offset += 1];
- if (isVerbatim && ch === ">") offset += 1;
- return offset;
- }
- static endOfIndent(src, offset) {
- let ch = src[offset];
- while (ch === " ") ch = src[offset += 1];
- return offset;
- }
- static endOfLine(src, offset) {
- let ch = src[offset];
- while (ch && ch !== "\n") ch = src[offset += 1];
- return offset;
- }
- static endOfWhiteSpace(src, offset) {
- let ch = src[offset];
- while (ch === " " || ch === " ") ch = src[offset += 1];
- return offset;
- }
- static startOfLine(src, offset) {
- let ch = src[offset - 1];
- if (ch === "\n") return offset;
- while (ch && ch !== "\n") ch = src[offset -= 1];
- return offset + 1;
- }
- /**
- * End of indentation, or null if the line's indent level is not more
- * than `indent`
- *
- * @param {string} src
- * @param {number} indent
- * @param {number} lineStart
- * @returns {?number}
- */
- static endOfBlockIndent(src, indent, lineStart) {
- const inEnd = _Node.endOfIndent(src, lineStart);
- if (inEnd > lineStart + indent) {
- return inEnd;
- } else {
- const wsEnd = _Node.endOfWhiteSpace(src, inEnd);
- const ch = src[wsEnd];
- if (!ch || ch === "\n") return wsEnd;
- }
- return null;
- }
- static atBlank(src, offset, endAsBlank) {
- const ch = src[offset];
- return ch === "\n" || ch === " " || ch === " " || endAsBlank && !ch;
- }
- static nextNodeIsIndented(ch, indentDiff, indicatorAsIndent) {
- if (!ch || indentDiff < 0) return false;
- if (indentDiff > 0) return true;
- return indicatorAsIndent && ch === "-";
- }
- // should be at line or string end, or at next non-whitespace char
- static normalizeOffset(src, offset) {
- const ch = src[offset];
- return !ch ? offset : ch !== "\n" && src[offset - 1] === "\n" ? offset - 1 : _Node.endOfWhiteSpace(src, offset);
- }
- // fold single newline into space, multiple newlines to N - 1 newlines
- // presumes src[offset] === '\n'
- static foldNewline(src, offset, indent) {
- let inCount = 0;
- let error = false;
- let fold = "";
- let ch = src[offset + 1];
- while (ch === " " || ch === " " || ch === "\n") {
- switch (ch) {
- case "\n":
- inCount = 0;
- offset += 1;
- fold += "\n";
- break;
- case " ":
- if (inCount <= indent) error = true;
- offset = _Node.endOfWhiteSpace(src, offset + 2) - 1;
- break;
- case " ":
- inCount += 1;
- offset += 1;
- break;
- }
- ch = src[offset + 1];
- }
- if (!fold) fold = " ";
- if (ch && inCount <= indent) error = true;
- return {
- fold,
- offset,
- error
- };
- }
- constructor(type, props, context) {
- Object.defineProperty(this, "context", {
- value: context || null,
- writable: true
- });
- this.error = null;
- this.range = null;
- this.valueRange = null;
- this.props = props || [];
- this.type = type;
- this.value = null;
- }
- getPropValue(idx, key, skipKey) {
- if (!this.context) return null;
- const {
- src
- } = this.context;
- const prop = this.props[idx];
- return prop && src[prop.start] === key ? src.slice(prop.start + (skipKey ? 1 : 0), prop.end) : null;
- }
- get anchor() {
- for (let i = 0; i < this.props.length; ++i) {
- const anchor = this.getPropValue(i, Char.ANCHOR, true);
- if (anchor != null) return anchor;
- }
- return null;
- }
- get comment() {
- const comments = [];
- for (let i = 0; i < this.props.length; ++i) {
- const comment = this.getPropValue(i, Char.COMMENT, true);
- if (comment != null) comments.push(comment);
- }
- return comments.length > 0 ? comments.join("\n") : null;
- }
- commentHasRequiredWhitespace(start) {
- const {
- src
- } = this.context;
- if (this.header && start === this.header.end) return false;
- if (!this.valueRange) return false;
- const {
- end
- } = this.valueRange;
- return start !== end || _Node.atBlank(src, end - 1);
- }
- get hasComment() {
- if (this.context) {
- const {
- src
- } = this.context;
- for (let i = 0; i < this.props.length; ++i) {
- if (src[this.props[i].start] === Char.COMMENT) return true;
- }
- }
- return false;
- }
- get hasProps() {
- if (this.context) {
- const {
- src
- } = this.context;
- for (let i = 0; i < this.props.length; ++i) {
- if (src[this.props[i].start] !== Char.COMMENT) return true;
- }
- }
- return false;
- }
- get includesTrailingLines() {
- return false;
- }
- get jsonLike() {
- const jsonLikeTypes = [Type.FLOW_MAP, Type.FLOW_SEQ, Type.QUOTE_DOUBLE, Type.QUOTE_SINGLE];
- return jsonLikeTypes.indexOf(this.type) !== -1;
- }
- get rangeAsLinePos() {
- if (!this.range || !this.context) return void 0;
- const start = getLinePos(this.range.start, this.context.root);
- if (!start) return void 0;
- const end = getLinePos(this.range.end, this.context.root);
- return {
- start,
- end
- };
- }
- get rawValue() {
- if (!this.valueRange || !this.context) return null;
- const {
- start,
- end
- } = this.valueRange;
- return this.context.src.slice(start, end);
- }
- get tag() {
- for (let i = 0; i < this.props.length; ++i) {
- const tag = this.getPropValue(i, Char.TAG, false);
- if (tag != null) {
- if (tag[1] === "<") {
- return {
- verbatim: tag.slice(2, -1)
- };
- } else {
- const [_, handle, suffix] = tag.match(/^(.*!)([^!]*)$/);
- return {
- handle,
- suffix
- };
- }
- }
- }
- return null;
- }
- get valueRangeContainsNewline() {
- if (!this.valueRange || !this.context) return false;
- const {
- start,
- end
- } = this.valueRange;
- const {
- src
- } = this.context;
- for (let i = start; i < end; ++i) {
- if (src[i] === "\n") return true;
- }
- return false;
- }
- parseComment(start) {
- const {
- src
- } = this.context;
- if (src[start] === Char.COMMENT) {
- const end = _Node.endOfLine(src, start + 1);
- const commentRange = new Range(start, end);
- this.props.push(commentRange);
- return end;
- }
- return start;
- }
- /**
- * Populates the `origStart` and `origEnd` values of all ranges for this
- * node. Extended by child classes to handle descendant nodes.
- *
- * @param {number[]} cr - Positions of dropped CR characters
- * @param {number} offset - Starting index of `cr` from the last call
- * @returns {number} - The next offset, matching the one found for `origStart`
- */
- setOrigRanges(cr, offset) {
- if (this.range) offset = this.range.setOrigRange(cr, offset);
- if (this.valueRange) this.valueRange.setOrigRange(cr, offset);
- this.props.forEach((prop) => prop.setOrigRange(cr, offset));
- return offset;
- }
- toString() {
- const {
- context: {
- src
- },
- range,
- value
- } = this;
- if (value != null) return value;
- const str = src.slice(range.start, range.end);
- return _Node.addStringTerminator(src, range.end, str);
- }
- };
- var YAMLError = class extends Error {
- constructor(name, source, message) {
- if (!message || !(source instanceof Node)) throw new Error(`Invalid arguments for new ${name}`);
- super();
- this.name = name;
- this.message = message;
- this.source = source;
- }
- makePretty() {
- if (!this.source) return;
- this.nodeType = this.source.type;
- const cst = this.source.context && this.source.context.root;
- if (typeof this.offset === "number") {
- this.range = new Range(this.offset, this.offset + 1);
- const start = cst && getLinePos(this.offset, cst);
- if (start) {
- const end = {
- line: start.line,
- col: start.col + 1
- };
- this.linePos = {
- start,
- end
- };
- }
- delete this.offset;
- } else {
- this.range = this.source.range;
- this.linePos = this.source.rangeAsLinePos;
- }
- if (this.linePos) {
- const {
- line,
- col
- } = this.linePos.start;
- this.message += ` at line ${line}, column ${col}`;
- const ctx = cst && getPrettyContext(this.linePos, cst);
- if (ctx) this.message += `:
- ${ctx}
- `;
- }
- delete this.source;
- }
- };
- var YAMLReferenceError = class extends YAMLError {
- constructor(source, message) {
- super("YAMLReferenceError", source, message);
- }
- };
- var YAMLSemanticError = class extends YAMLError {
- constructor(source, message) {
- super("YAMLSemanticError", source, message);
- }
- };
- var YAMLSyntaxError = class extends YAMLError {
- constructor(source, message) {
- super("YAMLSyntaxError", source, message);
- }
- };
- var YAMLWarning = class extends YAMLError {
- constructor(source, message) {
- super("YAMLWarning", source, message);
- }
- };
- function _defineProperty(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, {
- value,
- enumerable: true,
- configurable: true,
- writable: true
- });
- } else {
- obj[key] = value;
- }
- return obj;
- }
- exports2.Char = Char;
- exports2.Node = Node;
- exports2.Range = Range;
- exports2.Type = Type;
- exports2.YAMLError = YAMLError;
- exports2.YAMLReferenceError = YAMLReferenceError;
- exports2.YAMLSemanticError = YAMLSemanticError;
- exports2.YAMLSyntaxError = YAMLSyntaxError;
- exports2.YAMLWarning = YAMLWarning;
- exports2._defineProperty = _defineProperty;
- exports2.defaultTagPrefix = defaultTagPrefix;
- exports2.defaultTags = defaultTags;
- }
- });
- // node_modules/yaml/dist/parse-3997f544.js
- var require_parse_3997f544 = __commonJS({
- "node_modules/yaml/dist/parse-3997f544.js"(exports2) {
- "use strict";
- var _rollupPluginBabelHelpers = require_rollupPluginBabelHelpers_eed30217();
- var BlankLine = class extends _rollupPluginBabelHelpers.Node {
- constructor() {
- super(_rollupPluginBabelHelpers.Type.BLANK_LINE);
- }
- /* istanbul ignore next */
- get includesTrailingLines() {
- return true;
- }
- /**
- * Parses a blank line from the source
- *
- * @param {ParseContext} context
- * @param {number} start - Index of first \n character
- * @returns {number} - Index of the character after this
- */
- parse(context, start) {
- this.context = context;
- this.range = new _rollupPluginBabelHelpers.Range(start, start + 1);
- return start + 1;
- }
- };
- var CollectionItem = class extends _rollupPluginBabelHelpers.Node {
- constructor(type, props) {
- super(type, props);
- this.node = null;
- }
- get includesTrailingLines() {
- return !!this.node && this.node.includesTrailingLines;
- }
- /**
- * @param {ParseContext} context
- * @param {number} start - Index of first character
- * @returns {number} - Index of the character after this
- */
- parse(context, start) {
- this.context = context;
- const {
- parseNode,
- src
- } = context;
- let {
- atLineStart,
- lineStart
- } = context;
- if (!atLineStart && this.type === _rollupPluginBabelHelpers.Type.SEQ_ITEM) this.error = new _rollupPluginBabelHelpers.YAMLSemanticError(this, "Sequence items must not have preceding content on the same line");
- const indent = atLineStart ? start - lineStart : context.indent;
- let offset = _rollupPluginBabelHelpers.Node.endOfWhiteSpace(src, start + 1);
- let ch = src[offset];
- const inlineComment = ch === "#";
- const comments = [];
- let blankLine = null;
- while (ch === "\n" || ch === "#") {
- if (ch === "#") {
- const end2 = _rollupPluginBabelHelpers.Node.endOfLine(src, offset + 1);
- comments.push(new _rollupPluginBabelHelpers.Range(offset, end2));
- offset = end2;
- } else {
- atLineStart = true;
- lineStart = offset + 1;
- const wsEnd = _rollupPluginBabelHelpers.Node.endOfWhiteSpace(src, lineStart);
- if (src[wsEnd] === "\n" && comments.length === 0) {
- blankLine = new BlankLine();
- lineStart = blankLine.parse({
- src
- }, lineStart);
- }
- offset = _rollupPluginBabelHelpers.Node.endOfIndent(src, lineStart);
- }
- ch = src[offset];
- }
- if (_rollupPluginBabelHelpers.Node.nextNodeIsIndented(ch, offset - (lineStart + indent), this.type !== _rollupPluginBabelHelpers.Type.SEQ_ITEM)) {
- this.node = parseNode({
- atLineStart,
- inCollection: false,
- indent,
- lineStart,
- parent: this
- }, offset);
- } else if (ch && lineStart > start + 1) {
- offset = lineStart - 1;
- }
- if (this.node) {
- if (blankLine) {
- const items = context.parent.items || context.parent.contents;
- if (items) items.push(blankLine);
- }
- if (comments.length) Array.prototype.push.apply(this.props, comments);
- offset = this.node.range.end;
- } else {
- if (inlineComment) {
- const c = comments[0];
- this.props.push(c);
- offset = c.end;
- } else {
- offset = _rollupPluginBabelHelpers.Node.endOfLine(src, start + 1);
- }
- }
- const end = this.node ? this.node.valueRange.end : offset;
- this.valueRange = new _rollupPluginBabelHelpers.Range(start, end);
- return offset;
- }
- setOrigRanges(cr, offset) {
- offset = super.setOrigRanges(cr, offset);
- return this.node ? this.node.setOrigRanges(cr, offset) : offset;
- }
- toString() {
- const {
- context: {
- src
- },
- node,
- range,
- value
- } = this;
- if (value != null) return value;
- const str = node ? src.slice(range.start, node.range.start) + String(node) : src.slice(range.start, range.end);
- return _rollupPluginBabelHelpers.Node.addStringTerminator(src, range.end, str);
- }
- };
- var Comment = class extends _rollupPluginBabelHelpers.Node {
- constructor() {
- super(_rollupPluginBabelHelpers.Type.COMMENT);
- }
- /**
- * Parses a comment line from the source
- *
- * @param {ParseContext} context
- * @param {number} start - Index of first character
- * @returns {number} - Index of the character after this scalar
- */
- parse(context, start) {
- this.context = context;
- const offset = this.parseComment(start);
- this.range = new _rollupPluginBabelHelpers.Range(start, offset);
- return offset;
- }
- };
- function grabCollectionEndComments(node) {
- let cnode = node;
- while (cnode instanceof CollectionItem) cnode = cnode.node;
- if (!(cnode instanceof Collection)) return null;
- const len = cnode.items.length;
- let ci = -1;
- for (let i = len - 1; i >= 0; --i) {
- const n = cnode.items[i];
- if (n.type === _rollupPluginBabelHelpers.Type.COMMENT) {
- const {
- indent,
- lineStart
- } = n.context;
- if (indent > 0 && n.range.start >= lineStart + indent) break;
- ci = i;
- } else if (n.type === _rollupPluginBabelHelpers.Type.BLANK_LINE) ci = i;
- else break;
- }
- if (ci === -1) return null;
- const ca = cnode.items.splice(ci, len - ci);
- const prevEnd = ca[0].range.start;
- while (true) {
- cnode.range.end = prevEnd;
- if (cnode.valueRange && cnode.valueRange.end > prevEnd) cnode.valueRange.end = prevEnd;
- if (cnode === node) break;
- cnode = cnode.context.parent;
- }
- return ca;
- }
- var Collection = class _Collection extends _rollupPluginBabelHelpers.Node {
- static nextContentHasIndent(src, offset, indent) {
- const lineStart = _rollupPluginBabelHelpers.Node.endOfLine(src, offset) + 1;
- offset = _rollupPluginBabelHelpers.Node.endOfWhiteSpace(src, lineStart);
- const ch = src[offset];
- if (!ch) return false;
- if (offset >= lineStart + indent) return true;
- if (ch !== "#" && ch !== "\n") return false;
- return _Collection.nextContentHasIndent(src, offset, indent);
- }
- constructor(firstItem) {
- super(firstItem.type === _rollupPluginBabelHelpers.Type.SEQ_ITEM ? _rollupPluginBabelHelpers.Type.SEQ : _rollupPluginBabelHelpers.Type.MAP);
- for (let i = firstItem.props.length - 1; i >= 0; --i) {
- if (firstItem.props[i].start < firstItem.context.lineStart) {
- this.props = firstItem.props.slice(0, i + 1);
- firstItem.props = firstItem.props.slice(i + 1);
- const itemRange = firstItem.props[0] || firstItem.valueRange;
- firstItem.range.start = itemRange.start;
- break;
- }
- }
- this.items = [firstItem];
- const ec = grabCollectionEndComments(firstItem);
- if (ec) Array.prototype.push.apply(this.items, ec);
- }
- get includesTrailingLines() {
- return this.items.length > 0;
- }
- /**
- * @param {ParseContext} context
- * @param {number} start - Index of first character
- * @returns {number} - Index of the character after this
- */
- parse(context, start) {
- this.context = context;
- const {
- parseNode,
- src
- } = context;
- let lineStart = _rollupPluginBabelHelpers.Node.startOfLine(src, start);
- const firstItem = this.items[0];
- firstItem.context.parent = this;
- this.valueRange = _rollupPluginBabelHelpers.Range.copy(firstItem.valueRange);
- const indent = firstItem.range.start - firstItem.context.lineStart;
- let offset = start;
- offset = _rollupPluginBabelHelpers.Node.normalizeOffset(src, offset);
- let ch = src[offset];
- let atLineStart = _rollupPluginBabelHelpers.Node.endOfWhiteSpace(src, lineStart) === offset;
- let prevIncludesTrailingLines = false;
- while (ch) {
- while (ch === "\n" || ch === "#") {
- if (atLineStart && ch === "\n" && !prevIncludesTrailingLines) {
- const blankLine = new BlankLine();
- offset = blankLine.parse({
- src
- }, offset);
- this.valueRange.end = offset;
- if (offset >= src.length) {
- ch = null;
- break;
- }
- this.items.push(blankLine);
- offset -= 1;
- } else if (ch === "#") {
- if (offset < lineStart + indent && !_Collection.nextContentHasIndent(src, offset, indent)) {
- return offset;
- }
- const comment = new Comment();
- offset = comment.parse({
- indent,
- lineStart,
- src
- }, offset);
- this.items.push(comment);
- this.valueRange.end = offset;
- if (offset >= src.length) {
- ch = null;
- break;
- }
- }
- lineStart = offset + 1;
- offset = _rollupPluginBabelHelpers.Node.endOfIndent(src, lineStart);
- if (_rollupPluginBabelHelpers.Node.atBlank(src, offset)) {
- const wsEnd = _rollupPluginBabelHelpers.Node.endOfWhiteSpace(src, offset);
- const next = src[wsEnd];
- if (!next || next === "\n" || next === "#") {
- offset = wsEnd;
- }
- }
- ch = src[offset];
- atLineStart = true;
- }
- if (!ch) {
- break;
- }
- if (offset !== lineStart + indent && (atLineStart || ch !== ":")) {
- if (offset < lineStart + indent) {
- if (lineStart > start) offset = lineStart;
- break;
- } else if (!this.error) {
- const msg = "All collection items must start at the same column";
- this.error = new _rollupPluginBabelHelpers.YAMLSyntaxError(this, msg);
- }
- }
- if (firstItem.type === _rollupPluginBabelHelpers.Type.SEQ_ITEM) {
- if (ch !== "-") {
- if (lineStart > start) offset = lineStart;
- break;
- }
- } else if (ch === "-" && !this.error) {
- const next = src[offset + 1];
- if (!next || next === "\n" || next === " " || next === " ") {
- const msg = "A collection cannot be both a mapping and a sequence";
- this.error = new _rollupPluginBabelHelpers.YAMLSyntaxError(this, msg);
- }
- }
- const node = parseNode({
- atLineStart,
- inCollection: true,
- indent,
- lineStart,
- parent: this
- }, offset);
- if (!node) return offset;
- this.items.push(node);
- this.valueRange.end = node.valueRange.end;
- offset = _rollupPluginBabelHelpers.Node.normalizeOffset(src, node.range.end);
- ch = src[offset];
- atLineStart = false;
- prevIncludesTrailingLines = node.includesTrailingLines;
- if (ch) {
- let ls = offset - 1;
- let prev = src[ls];
- while (prev === " " || prev === " ") prev = src[--ls];
- if (prev === "\n") {
- lineStart = ls + 1;
- atLineStart = true;
- }
- }
- const ec = grabCollectionEndComments(node);
- if (ec) Array.prototype.push.apply(this.items, ec);
- }
- return offset;
- }
- setOrigRanges(cr, offset) {
- offset = super.setOrigRanges(cr, offset);
- this.items.forEach((node) => {
- offset = node.setOrigRanges(cr, offset);
- });
- return offset;
- }
- toString() {
- const {
- context: {
- src
- },
- items,
- range,
- value
- } = this;
- if (value != null) return value;
- let str = src.slice(range.start, items[0].range.start) + String(items[0]);
- for (let i = 1; i < items.length; ++i) {
- const item = items[i];
- const {
- atLineStart,
- indent
- } = item.context;
- if (atLineStart) for (let i2 = 0; i2 < indent; ++i2) str += " ";
- str += String(item);
- }
- return _rollupPluginBabelHelpers.Node.addStringTerminator(src, range.end, str);
- }
- };
- var Directive = class extends _rollupPluginBabelHelpers.Node {
- constructor() {
- super(_rollupPluginBabelHelpers.Type.DIRECTIVE);
- this.name = null;
- }
- get parameters() {
- const raw = this.rawValue;
- return raw ? raw.trim().split(/[ \t]+/) : [];
- }
- parseName(start) {
- const {
- src
- } = this.context;
- let offset = start;
- let ch = src[offset];
- while (ch && ch !== "\n" && ch !== " " && ch !== " ") ch = src[offset += 1];
- this.name = src.slice(start, offset);
- return offset;
- }
- parseParameters(start) {
- const {
- src
- } = this.context;
- let offset = start;
- let ch = src[offset];
- while (ch && ch !== "\n" && ch !== "#") ch = src[offset += 1];
- this.valueRange = new _rollupPluginBabelHelpers.Range(start, offset);
- return offset;
- }
- parse(context, start) {
- this.context = context;
- let offset = this.parseName(start + 1);
- offset = this.parseParameters(offset);
- offset = this.parseComment(offset);
- this.range = new _rollupPluginBabelHelpers.Range(start, offset);
- return offset;
- }
- };
- var Document = class _Document extends _rollupPluginBabelHelpers.Node {
- static startCommentOrEndBlankLine(src, start) {
- const offset = _rollupPluginBabelHelpers.Node.endOfWhiteSpace(src, start);
- const ch = src[offset];
- return ch === "#" || ch === "\n" ? offset : start;
- }
- constructor() {
- super(_rollupPluginBabelHelpers.Type.DOCUMENT);
- this.directives = null;
- this.contents = null;
- this.directivesEndMarker = null;
- this.documentEndMarker = null;
- }
- parseDirectives(start) {
- const {
- src
- } = this.context;
- this.directives = [];
- let atLineStart = true;
- let hasDirectives = false;
- let offset = start;
- while (!_rollupPluginBabelHelpers.Node.atDocumentBoundary(src, offset, _rollupPluginBabelHelpers.Char.DIRECTIVES_END)) {
- offset = _Document.startCommentOrEndBlankLine(src, offset);
- switch (src[offset]) {
- case "\n":
- if (atLineStart) {
- const blankLine = new BlankLine();
- offset = blankLine.parse({
- src
- }, offset);
- if (offset < src.length) {
- this.directives.push(blankLine);
- }
- } else {
- offset += 1;
- atLineStart = true;
- }
- break;
- case "#":
- {
- const comment = new Comment();
- offset = comment.parse({
- src
- }, offset);
- this.directives.push(comment);
- atLineStart = false;
- }
- break;
- case "%":
- {
- const directive = new Directive();
- offset = directive.parse({
- parent: this,
- src
- }, offset);
- this.directives.push(directive);
- hasDirectives = true;
- atLineStart = false;
- }
- break;
- default:
- if (hasDirectives) {
- this.error = new _rollupPluginBabelHelpers.YAMLSemanticError(this, "Missing directives-end indicator line");
- } else if (this.directives.length > 0) {
- this.contents = this.directives;
- this.directives = [];
- }
- return offset;
- }
- }
- if (src[offset]) {
- this.directivesEndMarker = new _rollupPluginBabelHelpers.Range(offset, offset + 3);
- return offset + 3;
- }
- if (hasDirectives) {
- this.error = new _rollupPluginBabelHelpers.YAMLSemanticError(this, "Missing directives-end indicator line");
- } else if (this.directives.length > 0) {
- this.contents = this.directives;
- this.directives = [];
- }
- return offset;
- }
- parseContents(start) {
- const {
- parseNode,
- src
- } = this.context;
- if (!this.contents) this.contents = [];
- let lineStart = start;
- while (src[lineStart - 1] === "-") lineStart -= 1;
- let offset = _rollupPluginBabelHelpers.Node.endOfWhiteSpace(src, start);
- let atLineStart = lineStart === start;
- this.valueRange = new _rollupPluginBabelHelpers.Range(offset);
- while (!_rollupPluginBabelHelpers.Node.atDocumentBoundary(src, offset, _rollupPluginBabelHelpers.Char.DOCUMENT_END)) {
- switch (src[offset]) {
- case "\n":
- if (atLineStart) {
- const blankLine = new BlankLine();
- offset = blankLine.parse({
- src
- }, offset);
- if (offset < src.length) {
- this.contents.push(blankLine);
- }
- } else {
- offset += 1;
- atLineStart = true;
- }
- lineStart = offset;
- break;
- case "#":
- {
- const comment = new Comment();
- offset = comment.parse({
- src
- }, offset);
- this.contents.push(comment);
- atLineStart = false;
- }
- break;
- default: {
- const iEnd = _rollupPluginBabelHelpers.Node.endOfIndent(src, offset);
- const context = {
- atLineStart,
- indent: -1,
- inFlow: false,
- inCollection: false,
- lineStart,
- parent: this
- };
- const node = parseNode(context, iEnd);
- if (!node) return this.valueRange.end = iEnd;
- this.contents.push(node);
- offset = node.range.end;
- atLineStart = false;
- const ec = grabCollectionEndComments(node);
- if (ec) Array.prototype.push.apply(this.contents, ec);
- }
- }
- offset = _Document.startCommentOrEndBlankLine(src, offset);
- }
- this.valueRange.end = offset;
- if (src[offset]) {
- this.documentEndMarker = new _rollupPluginBabelHelpers.Range(offset, offset + 3);
- offset += 3;
- if (src[offset]) {
- offset = _rollupPluginBabelHelpers.Node.endOfWhiteSpace(src, offset);
- if (src[offset] === "#") {
- const comment = new Comment();
- offset = comment.parse({
- src
- }, offset);
- this.contents.push(comment);
- }
- switch (src[offset]) {
- case "\n":
- offset += 1;
- break;
- case void 0:
- break;
- default:
- this.error = new _rollupPluginBabelHelpers.YAMLSyntaxError(this, "Document end marker line cannot have a non-comment suffix");
- }
- }
- }
- return offset;
- }
- /**
- * @param {ParseContext} context
- * @param {number} start - Index of first character
- * @returns {number} - Index of the character after this
- */
- parse(context, start) {
- context.root = this;
- this.context = context;
- const {
- src
- } = context;
- let offset = src.charCodeAt(start) === 65279 ? start + 1 : start;
- offset = this.parseDirectives(offset);
- offset = this.parseContents(offset);
- return offset;
- }
- setOrigRanges(cr, offset) {
- offset = super.setOrigRanges(cr, offset);
- this.directives.forEach((node) => {
- offset = node.setOrigRanges(cr, offset);
- });
- if (this.directivesEndMarker) offset = this.directivesEndMarker.setOrigRange(cr, offset);
- this.contents.forEach((node) => {
- offset = node.setOrigRanges(cr, offset);
- });
- if (this.documentEndMarker) offset = this.documentEndMarker.setOrigRange(cr, offset);
- return offset;
- }
- toString() {
- const {
- contents,
- directives,
- value
- } = this;
- if (value != null) return value;
- let str = directives.join("");
- if (contents.length > 0) {
- if (directives.length > 0 || contents[0].type === _rollupPluginBabelHelpers.Type.COMMENT) str += "---\n";
- str += contents.join("");
- }
- if (str[str.length - 1] !== "\n") str += "\n";
- return str;
- }
- };
- var Alias = class extends _rollupPluginBabelHelpers.Node {
- /**
- * Parses an *alias from the source
- *
- * @param {ParseContext} context
- * @param {number} start - Index of first character
- * @returns {number} - Index of the character after this scalar
- */
- parse(context, start) {
- this.context = context;
- const {
- src
- } = context;
- let offset = _rollupPluginBabelHelpers.Node.endOfIdentifier(src, start + 1);
- this.valueRange = new _rollupPluginBabelHelpers.Range(start + 1, offset);
- offset = _rollupPluginBabelHelpers.Node.endOfWhiteSpace(src, offset);
- offset = this.parseComment(offset);
- return offset;
- }
- };
- var Chomp = {
- CLIP: "CLIP",
- KEEP: "KEEP",
- STRIP: "STRIP"
- };
- var BlockValue = class extends _rollupPluginBabelHelpers.Node {
- constructor(type, props) {
- super(type, props);
- this.blockIndent = null;
- this.chomping = Chomp.CLIP;
- this.header = null;
- }
- get includesTrailingLines() {
- return this.chomping === Chomp.KEEP;
- }
- get strValue() {
- if (!this.valueRange || !this.context) return null;
- let {
- start,
- end
- } = this.valueRange;
- const {
- indent,
- src
- } = this.context;
- if (this.valueRange.isEmpty()) return "";
- let lastNewLine = null;
- let ch = src[end - 1];
- while (ch === "\n" || ch === " " || ch === " ") {
- end -= 1;
- if (end <= start) {
- if (this.chomping === Chomp.KEEP) break;
- else return "";
- }
- if (ch === "\n") lastNewLine = end;
- ch = src[end - 1];
- }
- let keepStart = end + 1;
- if (lastNewLine) {
- if (this.chomping === Chomp.KEEP) {
- keepStart = lastNewLine;
- end = this.valueRange.end;
- } else {
- end = lastNewLine;
- }
- }
- const bi = indent + this.blockIndent;
- const folded = this.type === _rollupPluginBabelHelpers.Type.BLOCK_FOLDED;
- let atStart = true;
- let str = "";
- let sep = "";
- let prevMoreIndented = false;
- for (let i = start; i < end; ++i) {
- for (let j = 0; j < bi; ++j) {
- if (src[i] !== " ") break;
- i += 1;
- }
- const ch2 = src[i];
- if (ch2 === "\n") {
- if (sep === "\n") str += "\n";
- else sep = "\n";
- } else {
- const lineEnd = _rollupPluginBabelHelpers.Node.endOfLine(src, i);
- const line = src.slice(i, lineEnd);
- i = lineEnd;
- if (folded && (ch2 === " " || ch2 === " ") && i < keepStart) {
- if (sep === " ") sep = "\n";
- else if (!prevMoreIndented && !atStart && sep === "\n") sep = "\n\n";
- str += sep + line;
- sep = lineEnd < end && src[lineEnd] || "";
- prevMoreIndented = true;
- } else {
- str += sep + line;
- sep = folded && i < keepStart ? " " : "\n";
- prevMoreIndented = false;
- }
- if (atStart && line !== "") atStart = false;
- }
- }
- return this.chomping === Chomp.STRIP ? str : str + "\n";
- }
- parseBlockHeader(start) {
- const {
- src
- } = this.context;
- let offset = start + 1;
- let bi = "";
- while (true) {
- const ch = src[offset];
- switch (ch) {
- case "-":
- this.chomping = Chomp.STRIP;
- break;
- case "+":
- this.chomping = Chomp.KEEP;
- break;
- case "0":
- case "1":
- case "2":
- case "3":
- case "4":
- case "5":
- case "6":
- case "7":
- case "8":
- case "9":
- bi += ch;
- break;
- default:
- this.blockIndent = Number(bi) || null;
- this.header = new _rollupPluginBabelHelpers.Range(start, offset);
- return offset;
- }
- offset += 1;
- }
- }
- parseBlockValue(start) {
- const {
- indent,
- src
- } = this.context;
- const explicit = !!this.blockIndent;
- let offset = start;
- let valueEnd = start;
- let minBlockIndent = 1;
- for (let ch = src[offset]; ch === "\n"; ch = src[offset]) {
- offset += 1;
- if (_rollupPluginBabelHelpers.Node.atDocumentBoundary(src, offset)) break;
- const end = _rollupPluginBabelHelpers.Node.endOfBlockIndent(src, indent, offset);
- if (end === null) break;
- const ch2 = src[end];
- const lineIndent = end - (offset + indent);
- if (!this.blockIndent) {
- if (src[end] !== "\n") {
- if (lineIndent < minBlockIndent) {
- const msg = "Block scalars with more-indented leading empty lines must use an explicit indentation indicator";
- this.error = new _rollupPluginBabelHelpers.YAMLSemanticError(this, msg);
- }
- this.blockIndent = lineIndent;
- } else if (lineIndent > minBlockIndent) {
- minBlockIndent = lineIndent;
- }
- } else if (ch2 && ch2 !== "\n" && lineIndent < this.blockIndent) {
- if (src[end] === "#") break;
- if (!this.error) {
- const src2 = explicit ? "explicit indentation indicator" : "first line";
- const msg = `Block scalars must not be less indented than their ${src2}`;
- this.error = new _rollupPluginBabelHelpers.YAMLSemanticError(this, msg);
- }
- }
- if (src[end] === "\n") {
- offset = end;
- } else {
- offset = valueEnd = _rollupPluginBabelHelpers.Node.endOfLine(src, end);
- }
- }
- if (this.chomping !== Chomp.KEEP) {
- offset = src[valueEnd] ? valueEnd + 1 : valueEnd;
- }
- this.valueRange = new _rollupPluginBabelHelpers.Range(start + 1, offset);
- return offset;
- }
- /**
- * Parses a block value from the source
- *
- * Accepted forms are:
- * ```
- * BS
- * block
- * lines
- *
- * BS #comment
- * block
- * lines
- * ```
- * where the block style BS matches the regexp `[|>][-+1-9]*` and block lines
- * are empty or have an indent level greater than `indent`.
- *
- * @param {ParseContext} context
- * @param {number} start - Index of first character
- * @returns {number} - Index of the character after this block
- */
- parse(context, start) {
- this.context = context;
- const {
- src
- } = context;
- let offset = this.parseBlockHeader(start);
- offset = _rollupPluginBabelHelpers.Node.endOfWhiteSpace(src, offset);
- offset = this.parseComment(offset);
- offset = this.parseBlockValue(offset);
- return offset;
- }
- setOrigRanges(cr, offset) {
- offset = super.setOrigRanges(cr, offset);
- return this.header ? this.header.setOrigRange(cr, offset) : offset;
- }
- };
- var FlowCollection = class extends _rollupPluginBabelHelpers.Node {
- constructor(type, props) {
- super(type, props);
- this.items = null;
- }
- prevNodeIsJsonLike(idx = this.items.length) {
- const node = this.items[idx - 1];
- return !!node && (node.jsonLike || node.type === _rollupPluginBabelHelpers.Type.COMMENT && this.prevNodeIsJsonLike(idx - 1));
- }
- /**
- * @param {ParseContext} context
- * @param {number} start - Index of first character
- * @returns {number} - Index of the character after this
- */
- parse(context, start) {
- this.context = context;
- const {
- parseNode,
- src
- } = context;
- let {
- indent,
- lineStart
- } = context;
- let char = src[start];
- this.items = [{
- char,
- offset: start
- }];
- let offset = _rollupPluginBabelHelpers.Node.endOfWhiteSpace(src, start + 1);
- char = src[offset];
- while (char && char !== "]" && char !== "}") {
- switch (char) {
- case "\n":
- {
- lineStart = offset + 1;
- const wsEnd = _rollupPluginBabelHelpers.Node.endOfWhiteSpace(src, lineStart);
- if (src[wsEnd] === "\n") {
- const blankLine = new BlankLine();
- lineStart = blankLine.parse({
- src
- }, lineStart);
- this.items.push(blankLine);
- }
- offset = _rollupPluginBabelHelpers.Node.endOfIndent(src, lineStart);
- if (offset <= lineStart + indent) {
- char = src[offset];
- if (offset < lineStart + indent || char !== "]" && char !== "}") {
- const msg = "Insufficient indentation in flow collection";
- this.error = new _rollupPluginBabelHelpers.YAMLSemanticError(this, msg);
- }
- }
- }
- break;
- case ",":
- {
- this.items.push({
- char,
- offset
- });
- offset += 1;
- }
- break;
- case "#":
- {
- const comment = new Comment();
- offset = comment.parse({
- src
- }, offset);
- this.items.push(comment);
- }
- break;
- case "?":
- case ":": {
- const next = src[offset + 1];
- if (next === "\n" || next === " " || next === " " || next === "," || // in-flow : after JSON-like key does not need to be followed by whitespace
- char === ":" && this.prevNodeIsJsonLike()) {
- this.items.push({
- char,
- offset
- });
- offset += 1;
- break;
- }
- }
- // fallthrough
- default: {
- const node = parseNode({
- atLineStart: false,
- inCollection: false,
- inFlow: true,
- indent: -1,
- lineStart,
- parent: this
- }, offset);
- if (!node) {
- this.valueRange = new _rollupPluginBabelHelpers.Range(start, offset);
- return offset;
- }
- this.items.push(node);
- offset = _rollupPluginBabelHelpers.Node.normalizeOffset(src, node.range.end);
- }
- }
- offset = _rollupPluginBabelHelpers.Node.endOfWhiteSpace(src, offset);
- char = src[offset];
- }
- this.valueRange = new _rollupPluginBabelHelpers.Range(start, offset + 1);
- if (char) {
- this.items.push({
- char,
- offset
- });
- offset = _rollupPluginBabelHelpers.Node.endOfWhiteSpace(src, offset + 1);
- offset = this.parseComment(offset);
- }
- return offset;
- }
- setOrigRanges(cr, offset) {
- offset = super.setOrigRanges(cr, offset);
- this.items.forEach((node) => {
- if (node instanceof _rollupPluginBabelHelpers.Node) {
- offset = node.setOrigRanges(cr, offset);
- } else if (cr.length === 0) {
- node.origOffset = node.offset;
- } else {
- let i = offset;
- while (i < cr.length) {
- if (cr[i] > node.offset) break;
- else ++i;
- }
- node.origOffset = node.offset + i;
- offset = i;
- }
- });
- return offset;
- }
- toString() {
- const {
- context: {
- src
- },
- items,
- range,
- value
- } = this;
- if (value != null) return value;
- const nodes = items.filter((item) => item instanceof _rollupPluginBabelHelpers.Node);
- let str = "";
- let prevEnd = range.start;
- nodes.forEach((node) => {
- const prefix = src.slice(prevEnd, node.range.start);
- prevEnd = node.range.end;
- str += prefix + String(node);
- if (str[str.length - 1] === "\n" && src[prevEnd - 1] !== "\n" && src[prevEnd] === "\n") {
- prevEnd += 1;
- }
- });
- str += src.slice(prevEnd, range.end);
- return _rollupPluginBabelHelpers.Node.addStringTerminator(src, range.end, str);
- }
- };
- var PlainValue = class _PlainValue extends _rollupPluginBabelHelpers.Node {
- static endOfLine(src, start, inFlow) {
- let ch = src[start];
- let offset = start;
- while (ch && ch !== "\n") {
- if (inFlow && (ch === "[" || ch === "]" || ch === "{" || ch === "}" || ch === ",")) break;
- const next = src[offset + 1];
- if (ch === ":" && (!next || next === "\n" || next === " " || next === " " || inFlow && next === ",")) break;
- if ((ch === " " || ch === " ") && next === "#") break;
- offset += 1;
- ch = next;
- }
- return offset;
- }
- get strValue() {
- if (!this.valueRange || !this.context) return null;
- let {
- start,
- end
- } = this.valueRange;
- const {
- src
- } = this.context;
- let ch = src[end - 1];
- while (start < end && (ch === "\n" || ch === " " || ch === " ")) ch = src[--end - 1];
- let str = "";
- for (let i = start; i < end; ++i) {
- const ch2 = src[i];
- if (ch2 === "\n") {
- const {
- fold,
- offset
- } = _rollupPluginBabelHelpers.Node.foldNewline(src, i, -1);
- str += fold;
- i = offset;
- } else if (ch2 === " " || ch2 === " ") {
- const wsStart = i;
- let next = src[i + 1];
- while (i < end && (next === " " || next === " ")) {
- i += 1;
- next = src[i + 1];
- }
- if (next !== "\n") str += i > wsStart ? src.slice(wsStart, i + 1) : ch2;
- } else {
- str += ch2;
- }
- }
- const ch0 = src[start];
- switch (ch0) {
- case " ": {
- const msg = "Plain value cannot start with a tab character";
- const errors = [new _rollupPluginBabelHelpers.YAMLSemanticError(this, msg)];
- return {
- errors,
- str
- };
- }
- case "@":
- case "`": {
- const msg = `Plain value cannot start with reserved character ${ch0}`;
- const errors = [new _rollupPluginBabelHelpers.YAMLSemanticError(this, msg)];
- return {
- errors,
- str
- };
- }
- default:
- return str;
- }
- }
- parseBlockValue(start) {
- const {
- indent,
- inFlow,
- src
- } = this.context;
- let offset = start;
- let valueEnd = start;
- for (let ch = src[offset]; ch === "\n"; ch = src[offset]) {
- if (_rollupPluginBabelHelpers.Node.atDocumentBoundary(src, offset + 1)) break;
- const end = _rollupPluginBabelHelpers.Node.endOfBlockIndent(src, indent, offset + 1);
- if (end === null || src[end] === "#") break;
- if (src[end] === "\n") {
- offset = end;
- } else {
- valueEnd = _PlainValue.endOfLine(src, end, inFlow);
- offset = valueEnd;
- }
- }
- if (this.valueRange.isEmpty()) this.valueRange.start = start;
- this.valueRange.end = valueEnd;
- return valueEnd;
- }
- /**
- * Parses a plain value from the source
- *
- * Accepted forms are:
- * ```
- * #comment
- *
- * first line
- *
- * first line #comment
- *
- * first line
- * block
- * lines
- *
- * #comment
- * block
- * lines
- * ```
- * where block lines are empty or have an indent level greater than `indent`.
- *
- * @param {ParseContext} context
- * @param {number} start - Index of first character
- * @returns {number} - Index of the character after this scalar, may be `\n`
- */
- parse(context, start) {
- this.context = context;
- const {
- inFlow,
- src
- } = context;
- let offset = start;
- const ch = src[offset];
- if (ch && ch !== "#" && ch !== "\n") {
- offset = _PlainValue.endOfLine(src, start, inFlow);
- }
- this.valueRange = new _rollupPluginBabelHelpers.Range(start, offset);
- offset = _rollupPluginBabelHelpers.Node.endOfWhiteSpace(src, offset);
- offset = this.parseComment(offset);
- if (!this.hasComment || this.valueRange.isEmpty()) {
- offset = this.parseBlockValue(offset);
- }
- return offset;
- }
- };
- var QuoteDouble = class _QuoteDouble extends _rollupPluginBabelHelpers.Node {
- static endOfQuote(src, offset) {
- let ch = src[offset];
- while (ch && ch !== '"') {
- offset += ch === "\\" ? 2 : 1;
- ch = src[offset];
- }
- return offset + 1;
- }
- /**
- * @returns {string | { str: string, errors: YAMLSyntaxError[] }}
- */
- get strValue() {
- if (!this.valueRange || !this.context) return null;
- const errors = [];
- const {
- start,
- end
- } = this.valueRange;
- const {
- indent,
- src
- } = this.context;
- if (src[end - 1] !== '"') errors.push(new _rollupPluginBabelHelpers.YAMLSyntaxError(this, 'Missing closing "quote'));
- let str = "";
- for (let i = start + 1; i < end - 1; ++i) {
- const ch = src[i];
- if (ch === "\n") {
- if (_rollupPluginBabelHelpers.Node.atDocumentBoundary(src, i + 1)) errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(this, "Document boundary indicators are not allowed within string values"));
- const {
- fold,
- offset,
- error
- } = _rollupPluginBabelHelpers.Node.foldNewline(src, i, indent);
- str += fold;
- i = offset;
- if (error) errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(this, "Multi-line double-quoted string needs to be sufficiently indented"));
- } else if (ch === "\\") {
- i += 1;
- switch (src[i]) {
- case "0":
- str += "\0";
- break;
- // null character
- case "a":
- str += "\x07";
- break;
- // bell character
- case "b":
- str += "\b";
- break;
- // backspace
- case "e":
- str += "\x1B";
- break;
- // escape character
- case "f":
- str += "\f";
- break;
- // form feed
- case "n":
- str += "\n";
- break;
- // line feed
- case "r":
- str += "\r";
- break;
- // carriage return
- case "t":
- str += " ";
- break;
- // horizontal tab
- case "v":
- str += "\v";
- break;
- // vertical tab
- case "N":
- str += "\x85";
- break;
- // Unicode next line
- case "_":
- str += "\xA0";
- break;
- // Unicode non-breaking space
- case "L":
- str += "\u2028";
- break;
- // Unicode line separator
- case "P":
- str += "\u2029";
- break;
- // Unicode paragraph separator
- case " ":
- str += " ";
- break;
- case '"':
- str += '"';
- break;
- case "/":
- str += "/";
- break;
- case "\\":
- str += "\\";
- break;
- case " ":
- str += " ";
- break;
- case "x":
- str += this.parseCharCode(i + 1, 2, errors);
- i += 2;
- break;
- case "u":
- str += this.parseCharCode(i + 1, 4, errors);
- i += 4;
- break;
- case "U":
- str += this.parseCharCode(i + 1, 8, errors);
- i += 8;
- break;
- case "\n":
- while (src[i + 1] === " " || src[i + 1] === " ") i += 1;
- break;
- default:
- errors.push(new _rollupPluginBabelHelpers.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(i - 1, 2)}`));
- str += "\\" + src[i];
- }
- } else if (ch === " " || ch === " ") {
- const wsStart = i;
- let next = src[i + 1];
- while (next === " " || next === " ") {
- i += 1;
- next = src[i + 1];
- }
- if (next !== "\n") str += i > wsStart ? src.slice(wsStart, i + 1) : ch;
- } else {
- str += ch;
- }
- }
- return errors.length > 0 ? {
- errors,
- str
- } : str;
- }
- parseCharCode(offset, length, errors) {
- const {
- src
- } = this.context;
- const cc = src.substr(offset, length);
- const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc);
- const code = ok ? parseInt(cc, 16) : NaN;
- if (isNaN(code)) {
- errors.push(new _rollupPluginBabelHelpers.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(offset - 2, length + 2)}`));
- return src.substr(offset - 2, length + 2);
- }
- return String.fromCodePoint(code);
- }
- /**
- * Parses a "double quoted" value from the source
- *
- * @param {ParseContext} context
- * @param {number} start - Index of first character
- * @returns {number} - Index of the character after this scalar
- */
- parse(context, start) {
- this.context = context;
- const {
- src
- } = context;
- let offset = _QuoteDouble.endOfQuote(src, start + 1);
- this.valueRange = new _rollupPluginBabelHelpers.Range(start, offset);
- offset = _rollupPluginBabelHelpers.Node.endOfWhiteSpace(src, offset);
- offset = this.parseComment(offset);
- return offset;
- }
- };
- var QuoteSingle = class _QuoteSingle extends _rollupPluginBabelHelpers.Node {
- static endOfQuote(src, offset) {
- let ch = src[offset];
- while (ch) {
- if (ch === "'") {
- if (src[offset + 1] !== "'") break;
- ch = src[offset += 2];
- } else {
- ch = src[offset += 1];
- }
- }
- return offset + 1;
- }
- /**
- * @returns {string | { str: string, errors: YAMLSyntaxError[] }}
- */
- get strValue() {
- if (!this.valueRange || !this.context) return null;
- const errors = [];
- const {
- start,
- end
- } = this.valueRange;
- const {
- indent,
- src
- } = this.context;
- if (src[end - 1] !== "'") errors.push(new _rollupPluginBabelHelpers.YAMLSyntaxError(this, "Missing closing 'quote"));
- let str = "";
- for (let i = start + 1; i < end - 1; ++i) {
- const ch = src[i];
- if (ch === "\n") {
- if (_rollupPluginBabelHelpers.Node.atDocumentBoundary(src, i + 1)) errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(this, "Document boundary indicators are not allowed within string values"));
- const {
- fold,
- offset,
- error
- } = _rollupPluginBabelHelpers.Node.foldNewline(src, i, indent);
- str += fold;
- i = offset;
- if (error) errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(this, "Multi-line single-quoted string needs to be sufficiently indented"));
- } else if (ch === "'") {
- str += ch;
- i += 1;
- if (src[i] !== "'") errors.push(new _rollupPluginBabelHelpers.YAMLSyntaxError(this, "Unescaped single quote? This should not happen."));
- } else if (ch === " " || ch === " ") {
- const wsStart = i;
- let next = src[i + 1];
- while (next === " " || next === " ") {
- i += 1;
- next = src[i + 1];
- }
- if (next !== "\n") str += i > wsStart ? src.slice(wsStart, i + 1) : ch;
- } else {
- str += ch;
- }
- }
- return errors.length > 0 ? {
- errors,
- str
- } : str;
- }
- /**
- * Parses a 'single quoted' value from the source
- *
- * @param {ParseContext} context
- * @param {number} start - Index of first character
- * @returns {number} - Index of the character after this scalar
- */
- parse(context, start) {
- this.context = context;
- const {
- src
- } = context;
- let offset = _QuoteSingle.endOfQuote(src, start + 1);
- this.valueRange = new _rollupPluginBabelHelpers.Range(start, offset);
- offset = _rollupPluginBabelHelpers.Node.endOfWhiteSpace(src, offset);
- offset = this.parseComment(offset);
- return offset;
- }
- };
- function createNewNode(type, props) {
- switch (type) {
- case _rollupPluginBabelHelpers.Type.ALIAS:
- return new Alias(type, props);
- case _rollupPluginBabelHelpers.Type.BLOCK_FOLDED:
- case _rollupPluginBabelHelpers.Type.BLOCK_LITERAL:
- return new BlockValue(type, props);
- case _rollupPluginBabelHelpers.Type.FLOW_MAP:
- case _rollupPluginBabelHelpers.Type.FLOW_SEQ:
- return new FlowCollection(type, props);
- case _rollupPluginBabelHelpers.Type.MAP_KEY:
- case _rollupPluginBabelHelpers.Type.MAP_VALUE:
- case _rollupPluginBabelHelpers.Type.SEQ_ITEM:
- return new CollectionItem(type, props);
- case _rollupPluginBabelHelpers.Type.COMMENT:
- case _rollupPluginBabelHelpers.Type.PLAIN:
- return new PlainValue(type, props);
- case _rollupPluginBabelHelpers.Type.QUOTE_DOUBLE:
- return new QuoteDouble(type, props);
- case _rollupPluginBabelHelpers.Type.QUOTE_SINGLE:
- return new QuoteSingle(type, props);
- /* istanbul ignore next */
- default:
- return null;
- }
- }
- var ParseContext = class _ParseContext {
- static parseType(src, offset, inFlow) {
- switch (src[offset]) {
- case "*":
- return _rollupPluginBabelHelpers.Type.ALIAS;
- case ">":
- return _rollupPluginBabelHelpers.Type.BLOCK_FOLDED;
- case "|":
- return _rollupPluginBabelHelpers.Type.BLOCK_LITERAL;
- case "{":
- return _rollupPluginBabelHelpers.Type.FLOW_MAP;
- case "[":
- return _rollupPluginBabelHelpers.Type.FLOW_SEQ;
- case "?":
- return !inFlow && _rollupPluginBabelHelpers.Node.atBlank(src, offset + 1, true) ? _rollupPluginBabelHelpers.Type.MAP_KEY : _rollupPluginBabelHelpers.Type.PLAIN;
- case ":":
- return !inFlow && _rollupPluginBabelHelpers.Node.atBlank(src, offset + 1, true) ? _rollupPluginBabelHelpers.Type.MAP_VALUE : _rollupPluginBabelHelpers.Type.PLAIN;
- case "-":
- return !inFlow && _rollupPluginBabelHelpers.Node.atBlank(src, offset + 1, true) ? _rollupPluginBabelHelpers.Type.SEQ_ITEM : _rollupPluginBabelHelpers.Type.PLAIN;
- case '"':
- return _rollupPluginBabelHelpers.Type.QUOTE_DOUBLE;
- case "'":
- return _rollupPluginBabelHelpers.Type.QUOTE_SINGLE;
- default:
- return _rollupPluginBabelHelpers.Type.PLAIN;
- }
- }
- constructor(orig = {}, {
- atLineStart,
- inCollection,
- inFlow,
- indent,
- lineStart,
- parent
- } = {}) {
- _rollupPluginBabelHelpers._defineProperty(this, "parseNode", (overlay, start) => {
- if (_rollupPluginBabelHelpers.Node.atDocumentBoundary(this.src, start)) return null;
- const context = new _ParseContext(this, overlay);
- const {
- props,
- type,
- valueStart
- } = context.parseProps(start);
- const node = createNewNode(type, props);
- let offset = node.parse(context, valueStart);
- node.range = new _rollupPluginBabelHelpers.Range(start, offset);
- if (offset <= start) {
- node.error = new Error(`Node#parse consumed no characters`);
- node.error.parseEnd = offset;
- node.error.source = node;
- node.range.end = start + 1;
- }
- if (context.nodeStartsCollection(node)) {
- if (!node.error && !context.atLineStart && context.parent.type === _rollupPluginBabelHelpers.Type.DOCUMENT) {
- node.error = new _rollupPluginBabelHelpers.YAMLSyntaxError(node, "Block collection must not have preceding content here (e.g. directives-end indicator)");
- }
- const collection = new Collection(node);
- offset = collection.parse(new _ParseContext(context), offset);
- collection.range = new _rollupPluginBabelHelpers.Range(start, offset);
- return collection;
- }
- return node;
- });
- this.atLineStart = atLineStart != null ? atLineStart : orig.atLineStart || false;
- this.inCollection = inCollection != null ? inCollection : orig.inCollection || false;
- this.inFlow = inFlow != null ? inFlow : orig.inFlow || false;
- this.indent = indent != null ? indent : orig.indent;
- this.lineStart = lineStart != null ? lineStart : orig.lineStart;
- this.parent = parent != null ? parent : orig.parent || {};
- this.root = orig.root;
- this.src = orig.src;
- }
- nodeStartsCollection(node) {
- const {
- inCollection,
- inFlow,
- src
- } = this;
- if (inCollection || inFlow) return false;
- if (node instanceof CollectionItem) return true;
- let offset = node.range.end;
- if (src[offset] === "\n" || src[offset - 1] === "\n") return false;
- offset = _rollupPluginBabelHelpers.Node.endOfWhiteSpace(src, offset);
- return src[offset] === ":";
- }
- // Anchor and tag are before type, which determines the node implementation
- // class; hence this intermediate step.
- parseProps(offset) {
- const {
- inFlow,
- parent,
- src
- } = this;
- const props = [];
- let lineHasProps = false;
- offset = this.atLineStart ? _rollupPluginBabelHelpers.Node.endOfIndent(src, offset) : _rollupPluginBabelHelpers.Node.endOfWhiteSpace(src, offset);
- let ch = src[offset];
- while (ch === _rollupPluginBabelHelpers.Char.ANCHOR || ch === _rollupPluginBabelHelpers.Char.COMMENT || ch === _rollupPluginBabelHelpers.Char.TAG || ch === "\n") {
- if (ch === "\n") {
- const lineStart = offset + 1;
- const inEnd = _rollupPluginBabelHelpers.Node.endOfIndent(src, lineStart);
- const indentDiff = inEnd - (lineStart + this.indent);
- const noIndicatorAsIndent = parent.type === _rollupPluginBabelHelpers.Type.SEQ_ITEM && parent.context.atLineStart;
- if (!_rollupPluginBabelHelpers.Node.nextNodeIsIndented(src[inEnd], indentDiff, !noIndicatorAsIndent)) break;
- this.atLineStart = true;
- this.lineStart = lineStart;
- lineHasProps = false;
- offset = inEnd;
- } else if (ch === _rollupPluginBabelHelpers.Char.COMMENT) {
- const end = _rollupPluginBabelHelpers.Node.endOfLine(src, offset + 1);
- props.push(new _rollupPluginBabelHelpers.Range(offset, end));
- offset = end;
- } else {
- let end = _rollupPluginBabelHelpers.Node.endOfIdentifier(src, offset + 1);
- if (ch === _rollupPluginBabelHelpers.Char.TAG && src[end] === "," && /^[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+,\d\d\d\d(-\d\d){0,2}\/\S/.test(src.slice(offset + 1, end + 13))) {
- end = _rollupPluginBabelHelpers.Node.endOfIdentifier(src, end + 5);
- }
- props.push(new _rollupPluginBabelHelpers.Range(offset, end));
- lineHasProps = true;
- offset = _rollupPluginBabelHelpers.Node.endOfWhiteSpace(src, end);
- }
- ch = src[offset];
- }
- if (lineHasProps && ch === ":" && _rollupPluginBabelHelpers.Node.atBlank(src, offset + 1, true)) offset -= 1;
- const type = _ParseContext.parseType(src, offset, inFlow);
- return {
- props,
- type,
- valueStart: offset
- };
- }
- /**
- * Parses a node from the source
- * @param {ParseContext} overlay
- * @param {number} start - Index of first non-whitespace character for the node
- * @returns {?Node} - null if at a document boundary
- */
- };
- function parse(src) {
- const cr = [];
- if (src.indexOf("\r") !== -1) {
- src = src.replace(/\r\n?/g, (match, offset2) => {
- if (match.length > 1) cr.push(offset2);
- return "\n";
- });
- }
- const documents = [];
- let offset = 0;
- do {
- const doc = new Document();
- const context = new ParseContext({
- src
- });
- offset = doc.parse(context, offset);
- documents.push(doc);
- } while (offset < src.length);
- documents.setOrigRanges = () => {
- if (cr.length === 0) return false;
- for (let i = 1; i < cr.length; ++i) cr[i] -= i;
- let crOffset = 0;
- for (let i = 0; i < documents.length; ++i) {
- crOffset = documents[i].setOrigRanges(cr, crOffset);
- }
- cr.splice(0, cr.length);
- return true;
- };
- documents.toString = () => documents.join("...\n");
- return documents;
- }
- exports2.Document = Document;
- exports2.PlainValue = PlainValue;
- exports2.parse = parse;
- }
- });
- // node_modules/yaml/dist/stringifyNumber-dea1120c.js
- var require_stringifyNumber_dea1120c = __commonJS({
- "node_modules/yaml/dist/stringifyNumber-dea1120c.js"(exports2) {
- "use strict";
- var _rollupPluginBabelHelpers = require_rollupPluginBabelHelpers_eed30217();
- function addCommentBefore(str, indent, comment) {
- if (!comment) return str;
- const cc = comment.replace(/[\s\S]^/gm, `$&${indent}#`);
- return `#${cc}
- ${indent}${str}`;
- }
- function addComment(str, indent, comment) {
- return !comment ? str : comment.indexOf("\n") === -1 ? `${str} #${comment}` : `${str}
- ` + comment.replace(/^/gm, `${indent || ""}#`);
- }
- var Node = class {
- };
- function toJS(value, arg, ctx) {
- if (Array.isArray(value)) return value.map((v, i) => toJS(v, String(i), ctx));
- if (value && typeof value.toJSON === "function") {
- const anchor = ctx && ctx.anchors && ctx.anchors.get(value);
- if (anchor) ctx.onCreate = (res2) => {
- anchor.res = res2;
- delete ctx.onCreate;
- };
- const res = value.toJSON(arg, ctx);
- if (anchor && ctx.onCreate) ctx.onCreate(res);
- return res;
- }
- if (!(ctx && ctx.keep) && typeof value === "bigint") return Number(value);
- return value;
- }
- var isScalarValue = (value) => !value || typeof value !== "function" && typeof value !== "object";
- var Scalar = class extends Node {
- constructor(value) {
- super();
- this.value = value;
- }
- toJSON(arg, ctx) {
- return ctx && ctx.keep ? this.value : toJS(this.value, arg, ctx);
- }
- toString() {
- return String(this.value);
- }
- };
- function findTagObject(value, tagName, tags) {
- if (tagName) {
- const match = tags.filter((t) => t.tag === tagName);
- const tagObj = match.find((t) => !t.format) || match[0];
- if (!tagObj) throw new Error(`Tag ${tagName} not found`);
- return tagObj;
- }
- return tags.find((t) => t.identify && t.identify(value) && !t.format);
- }
- function createNode(value, tagName, ctx) {
- if (value instanceof Node) return value;
- const {
- onAlias,
- onTagObj,
- prevObjects,
- wrapScalars
- } = ctx;
- const {
- map,
- seq,
- tags
- } = ctx.schema;
- if (tagName && tagName.startsWith("!!")) tagName = _rollupPluginBabelHelpers.defaultTagPrefix + tagName.slice(2);
- let tagObj = findTagObject(value, tagName, tags);
- if (!tagObj) {
- if (typeof value.toJSON === "function") value = value.toJSON();
- if (!value || typeof value !== "object") return wrapScalars ? new Scalar(value) : value;
- tagObj = value instanceof Map ? map : value[Symbol.iterator] ? seq : map;
- }
- if (onTagObj) {
- onTagObj(tagObj);
- delete ctx.onTagObj;
- }
- const obj = {
- value: void 0,
- node: void 0
- };
- if (value && typeof value === "object") {
- const prev = prevObjects.get(value);
- if (prev) return onAlias(prev);
- obj.value = value;
- prevObjects.set(value, obj);
- }
- obj.node = tagObj.createNode ? tagObj.createNode(ctx.schema, value, ctx) : wrapScalars ? new Scalar(value) : value;
- if (tagName && obj.node instanceof Node) obj.node.tag = tagName;
- return obj.node;
- }
- function collectionFromPath(schema, path2, value) {
- let v = value;
- for (let i = path2.length - 1; i >= 0; --i) {
- const k = path2[i];
- if (Number.isInteger(k) && k >= 0) {
- const a = [];
- a[k] = v;
- v = a;
- } else {
- const o = {};
- Object.defineProperty(o, k, {
- value: v,
- writable: true,
- enumerable: true,
- configurable: true
- });
- v = o;
- }
- }
- return createNode(v, null, {
- onAlias() {
- throw new Error("Repeated objects are not supported here");
- },
- prevObjects: /* @__PURE__ */ new Map(),
- schema,
- wrapScalars: false
- });
- }
- var isEmptyPath = (path2) => path2 == null || typeof path2 === "object" && path2[Symbol.iterator]().next().done;
- var Collection = class _Collection extends Node {
- constructor(schema) {
- super();
- _rollupPluginBabelHelpers._defineProperty(this, "items", []);
- this.schema = schema;
- }
- addIn(path2, value) {
- if (isEmptyPath(path2)) this.add(value);
- else {
- const [key, ...rest] = path2;
- const node = this.get(key, true);
- if (node instanceof _Collection) node.addIn(rest, value);
- else if (node === void 0 && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));
- else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);
- }
- }
- deleteIn([key, ...rest]) {
- if (rest.length === 0) return this.delete(key);
- const node = this.get(key, true);
- if (node instanceof _Collection) return node.deleteIn(rest);
- else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);
- }
- getIn([key, ...rest], keepScalar) {
- const node = this.get(key, true);
- if (rest.length === 0) return !keepScalar && node instanceof Scalar ? node.value : node;
- else return node instanceof _Collection ? node.getIn(rest, keepScalar) : void 0;
- }
- hasAllNullValues() {
- return this.items.every((node) => {
- if (!node || node.type !== "PAIR") return false;
- const n = node.value;
- return n == null || n instanceof Scalar && n.value == null && !n.commentBefore && !n.comment && !n.tag;
- });
- }
- hasIn([key, ...rest]) {
- if (rest.length === 0) return this.has(key);
- const node = this.get(key, true);
- return node instanceof _Collection ? node.hasIn(rest) : false;
- }
- setIn([key, ...rest], value) {
- if (rest.length === 0) {
- this.set(key, value);
- } else {
- const node = this.get(key, true);
- if (node instanceof _Collection) node.setIn(rest, value);
- else if (node === void 0 && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));
- else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);
- }
- }
- /* istanbul ignore next: overridden in implementations */
- toJSON() {
- return null;
- }
- toString(ctx, {
- blockItem,
- flowChars,
- isMap,
- itemIndent
- }, onComment, onChompKeep) {
- const {
- indent,
- indentStep,
- stringify
- } = ctx;
- const inFlow = this.type === _rollupPluginBabelHelpers.Type.FLOW_MAP || this.type === _rollupPluginBabelHelpers.Type.FLOW_SEQ || ctx.inFlow;
- if (inFlow) itemIndent += indentStep;
- const allNullValues = isMap && this.hasAllNullValues();
- ctx = Object.assign({}, ctx, {
- allNullValues,
- indent: itemIndent,
- inFlow,
- type: null
- });
- let chompKeep = false;
- let hasItemWithNewLine = false;
- const nodes = this.items.reduce((nodes2, item, i) => {
- let comment;
- if (item) {
- if (!chompKeep && item.spaceBefore) nodes2.push({
- type: "comment",
- str: ""
- });
- if (item.commentBefore) item.commentBefore.match(/^.*$/gm).forEach((line) => {
- nodes2.push({
- type: "comment",
- str: `#${line}`
- });
- });
- if (item.comment) comment = item.comment;
- if (inFlow && (!chompKeep && item.spaceBefore || item.commentBefore || item.comment || item.key && (item.key.commentBefore || item.key.comment) || item.value && (item.value.commentBefore || item.value.comment))) hasItemWithNewLine = true;
- }
- chompKeep = false;
- let str2 = stringify(item, ctx, () => comment = null, () => chompKeep = true);
- if (inFlow && !hasItemWithNewLine && str2.includes("\n")) hasItemWithNewLine = true;
- if (inFlow && i < this.items.length - 1) str2 += ",";
- str2 = addComment(str2, itemIndent, comment);
- if (chompKeep && (comment || inFlow)) chompKeep = false;
- nodes2.push({
- type: "item",
- str: str2
- });
- return nodes2;
- }, []);
- let str;
- if (nodes.length === 0) {
- str = flowChars.start + flowChars.end;
- } else if (inFlow) {
- const {
- start,
- end
- } = flowChars;
- const strings = nodes.map((n) => n.str);
- if (hasItemWithNewLine || strings.reduce((sum, str2) => sum + str2.length + 2, 2) > _Collection.maxFlowStringSingleLineLength) {
- str = start;
- for (const s of strings) {
- str += s ? `
- ${indentStep}${indent}${s}` : "\n";
- }
- str += `
- ${indent}${end}`;
- } else {
- str = `${start} ${strings.join(" ")} ${end}`;
- }
- } else {
- const strings = nodes.map(blockItem);
- str = strings.shift();
- for (const s of strings) str += s ? `
- ${indent}${s}` : "\n";
- }
- if (this.comment) {
- str += "\n" + this.comment.replace(/^/gm, `${indent}#`);
- if (onComment) onComment();
- } else if (chompKeep && onChompKeep) onChompKeep();
- return str;
- }
- };
- _rollupPluginBabelHelpers._defineProperty(Collection, "maxFlowStringSingleLineLength", 60);
- function asItemIndex(key) {
- let idx = key instanceof Scalar ? key.value : key;
- if (idx && typeof idx === "string") idx = Number(idx);
- return Number.isInteger(idx) && idx >= 0 ? idx : null;
- }
- var YAMLSeq = class extends Collection {
- add(value) {
- this.items.push(value);
- }
- delete(key) {
- const idx = asItemIndex(key);
- if (typeof idx !== "number") return false;
- const del = this.items.splice(idx, 1);
- return del.length > 0;
- }
- get(key, keepScalar) {
- const idx = asItemIndex(key);
- if (typeof idx !== "number") return void 0;
- const it = this.items[idx];
- return !keepScalar && it instanceof Scalar ? it.value : it;
- }
- has(key) {
- const idx = asItemIndex(key);
- return typeof idx === "number" && idx < this.items.length;
- }
- set(key, value) {
- const idx = asItemIndex(key);
- if (typeof idx !== "number") throw new Error(`Expected a valid index, not ${key}.`);
- const prev = this.items[idx];
- if (prev instanceof Scalar && isScalarValue(value)) prev.value = value;
- else this.items[idx] = value;
- }
- toJSON(_, ctx) {
- const seq = [];
- if (ctx && ctx.onCreate) ctx.onCreate(seq);
- let i = 0;
- for (const item of this.items) seq.push(toJS(item, String(i++), ctx));
- return seq;
- }
- toString(ctx, onComment, onChompKeep) {
- if (!ctx) return JSON.stringify(this);
- return super.toString(ctx, {
- blockItem: (n) => n.type === "comment" ? n.str : `- ${n.str}`,
- flowChars: {
- start: "[",
- end: "]"
- },
- isMap: false,
- itemIndent: (ctx.indent || "") + " "
- }, onComment, onChompKeep);
- }
- };
- var stringifyKey = (key, jsKey, ctx) => {
- if (jsKey === null) return "";
- if (typeof jsKey !== "object") return String(jsKey);
- if (key instanceof Node && ctx && ctx.doc) return key.toString({
- anchors: /* @__PURE__ */ Object.create(null),
- doc: ctx.doc,
- indent: "",
- indentStep: ctx.indentStep,
- inFlow: true,
- inStringifyKey: true,
- stringify: ctx.stringify
- });
- return JSON.stringify(jsKey);
- };
- function createPair(key, value, ctx) {
- const k = createNode(key, null, ctx);
- const v = createNode(value, null, ctx);
- return new Pair(k, v);
- }
- var Pair = class _Pair extends Node {
- constructor(key, value = null) {
- super();
- this.key = key;
- this.value = value;
- this.type = _Pair.Type.PAIR;
- }
- get commentBefore() {
- return this.key instanceof Node ? this.key.commentBefore : void 0;
- }
- set commentBefore(cb) {
- if (this.key == null) this.key = new Scalar(null);
- if (this.key instanceof Node) this.key.commentBefore = cb;
- else {
- const msg = "Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node.";
- throw new Error(msg);
- }
- }
- addToJSMap(ctx, map) {
- const key = toJS(this.key, "", ctx);
- if (map instanceof Map) {
- const value = toJS(this.value, key, ctx);
- map.set(key, value);
- } else if (map instanceof Set) {
- map.add(key);
- } else {
- const stringKey = stringifyKey(this.key, key, ctx);
- const value = toJS(this.value, stringKey, ctx);
- if (stringKey in map) Object.defineProperty(map, stringKey, {
- value,
- writable: true,
- enumerable: true,
- configurable: true
- });
- else map[stringKey] = value;
- }
- return map;
- }
- toJSON(_, ctx) {
- const pair = ctx && ctx.mapAsMap ? /* @__PURE__ */ new Map() : {};
- return this.addToJSMap(ctx, pair);
- }
- toString(ctx, onComment, onChompKeep) {
- if (!ctx || !ctx.doc) return JSON.stringify(this);
- const {
- indent: indentSize,
- indentSeq,
- simpleKeys
- } = ctx.doc.options;
- let {
- key,
- value
- } = this;
- let keyComment = key instanceof Node && key.comment;
- if (simpleKeys) {
- if (keyComment) {
- throw new Error("With simple keys, key nodes cannot have comments");
- }
- if (key instanceof Collection) {
- const msg = "With simple keys, collection cannot be used as a key value";
- throw new Error(msg);
- }
- }
- let explicitKey = !simpleKeys && (!key || keyComment || key instanceof Collection || key.type === _rollupPluginBabelHelpers.Type.BLOCK_FOLDED || key.type === _rollupPluginBabelHelpers.Type.BLOCK_LITERAL);
- const {
- allNullValues,
- doc,
- indent,
- indentStep,
- stringify
- } = ctx;
- ctx = Object.assign({}, ctx, {
- implicitKey: !explicitKey && (simpleKeys || !allNullValues),
- indent: indent + indentStep
- });
- let chompKeep = false;
- let str = stringify(key, ctx, () => keyComment = null, () => chompKeep = true);
- str = addComment(str, ctx.indent, keyComment);
- if (allNullValues && !simpleKeys) {
- if (this.comment) {
- str = addComment(str, ctx.indent, this.comment);
- if (onComment) onComment();
- } else if (chompKeep && !keyComment && onChompKeep) onChompKeep();
- return ctx.inFlow ? str : `? ${str}`;
- }
- if (!explicitKey && str.length > 1024) {
- if (!simpleKeys) {
- explicitKey = true;
- } else {
- const msg = "With simple keys, single line scalar must not span more than 1024 characters";
- throw new Error(msg);
- }
- }
- str = explicitKey ? `? ${str}
- ${indent}:` : `${str}:`;
- if (this.comment) {
- str = addComment(str, ctx.indent, this.comment);
- if (onComment) onComment();
- }
- let vcb = "";
- let valueComment = null;
- if (value instanceof Node) {
- if (value.spaceBefore) vcb = "\n";
- if (value.commentBefore) {
- const cs = value.commentBefore.replace(/^/gm, `${ctx.indent}#`);
- vcb += `
- ${cs}`;
- }
- valueComment = value.comment;
- } else if (value && typeof value === "object") {
- value = doc.createNode(value);
- }
- ctx.implicitKey = false;
- if (!explicitKey && !this.comment && value instanceof Scalar) ctx.indentAtStart = str.length + 1;
- chompKeep = false;
- if (!indentSeq && indentSize >= 2 && !ctx.inFlow && !explicitKey && value instanceof YAMLSeq && value.type !== _rollupPluginBabelHelpers.Type.FLOW_SEQ && !value.tag && !doc.anchors.getName(value)) {
- ctx.indent = ctx.indent.substr(2);
- }
- const valueStr = stringify(value, ctx, () => valueComment = null, () => chompKeep = true);
- let ws = " ";
- if (vcb || this.comment) {
- ws = `${vcb}
- ${ctx.indent}`;
- } else if (!explicitKey && value instanceof Collection) {
- const flow = valueStr[0] === "[" || valueStr[0] === "{";
- if (!flow || valueStr.includes("\n")) ws = `
- ${ctx.indent}`;
- } else if (valueStr[0] === "\n") ws = "";
- if (chompKeep && !valueComment && onChompKeep) onChompKeep();
- return addComment(str + ws + valueStr, ctx.indent, valueComment);
- }
- };
- _rollupPluginBabelHelpers._defineProperty(Pair, "Type", {
- PAIR: "PAIR",
- MERGE_PAIR: "MERGE_PAIR"
- });
- var getAliasCount = (node, anchors) => {
- if (node instanceof Alias) {
- const anchor = anchors.get(node.source);
- return anchor.count * anchor.aliasCount;
- } else if (node instanceof Collection) {
- let count = 0;
- for (const item of node.items) {
- const c = getAliasCount(item, anchors);
- if (c > count) count = c;
- }
- return count;
- } else if (node instanceof Pair) {
- const kc = getAliasCount(node.key, anchors);
- const vc = getAliasCount(node.value, anchors);
- return Math.max(kc, vc);
- }
- return 1;
- };
- var Alias = class _Alias extends Node {
- static stringify({
- range,
- source
- }, {
- anchors,
- doc,
- implicitKey,
- inStringifyKey
- }) {
- let anchor = Object.keys(anchors).find((a) => anchors[a] === source);
- if (!anchor && inStringifyKey) anchor = doc.anchors.getName(source) || doc.anchors.newName();
- if (anchor) return `*${anchor}${implicitKey ? " " : ""}`;
- const msg = doc.anchors.getName(source) ? "Alias node must be after source node" : "Source node not found for alias node";
- throw new Error(`${msg} [${range}]`);
- }
- constructor(source) {
- super();
- this.source = source;
- this.type = _rollupPluginBabelHelpers.Type.ALIAS;
- }
- set tag(t) {
- throw new Error("Alias nodes cannot have tags");
- }
- toJSON(arg, ctx) {
- if (!ctx) return toJS(this.source, arg, ctx);
- const {
- anchors,
- maxAliasCount
- } = ctx;
- const anchor = anchors.get(this.source);
- if (!anchor || anchor.res === void 0) {
- const msg = "This should not happen: Alias anchor was not resolved?";
- if (this.cstNode) throw new _rollupPluginBabelHelpers.YAMLReferenceError(this.cstNode, msg);
- else throw new ReferenceError(msg);
- }
- if (maxAliasCount >= 0) {
- anchor.count += 1;
- if (anchor.aliasCount === 0) anchor.aliasCount = getAliasCount(this.source, anchors);
- if (anchor.count * anchor.aliasCount > maxAliasCount) {
- const msg = "Excessive alias count indicates a resource exhaustion attack";
- if (this.cstNode) throw new _rollupPluginBabelHelpers.YAMLReferenceError(this.cstNode, msg);
- else throw new ReferenceError(msg);
- }
- }
- return anchor.res;
- }
- // Only called when stringifying an alias mapping key while constructing
- // Object output.
- toString(ctx) {
- return _Alias.stringify(this, ctx);
- }
- };
- _rollupPluginBabelHelpers._defineProperty(Alias, "default", true);
- function findPair(items, key) {
- const k = key instanceof Scalar ? key.value : key;
- for (const it of items) {
- if (it instanceof Pair) {
- if (it.key === key || it.key === k) return it;
- if (it.key && it.key.value === k) return it;
- }
- }
- return void 0;
- }
- var YAMLMap = class extends Collection {
- add(pair, overwrite) {
- if (!pair) pair = new Pair(pair);
- else if (!(pair instanceof Pair)) pair = new Pair(pair.key || pair, pair.value);
- const prev = findPair(this.items, pair.key);
- const sortEntries = this.schema && this.schema.sortMapEntries;
- if (prev) {
- if (!overwrite) throw new Error(`Key ${pair.key} already set`);
- if (prev.value instanceof Scalar && isScalarValue(pair.value)) prev.value.value = pair.value;
- else prev.value = pair.value;
- } else if (sortEntries) {
- const i = this.items.findIndex((item) => sortEntries(pair, item) < 0);
- if (i === -1) this.items.push(pair);
- else this.items.splice(i, 0, pair);
- } else {
- this.items.push(pair);
- }
- }
- delete(key) {
- const it = findPair(this.items, key);
- if (!it) return false;
- const del = this.items.splice(this.items.indexOf(it), 1);
- return del.length > 0;
- }
- get(key, keepScalar) {
- const it = findPair(this.items, key);
- const node = it && it.value;
- return !keepScalar && node instanceof Scalar ? node.value : node;
- }
- has(key) {
- return !!findPair(this.items, key);
- }
- set(key, value) {
- this.add(new Pair(key, value), true);
- }
- /**
- * @param ctx - Conversion context, originally set in Document#toJS()
- * @param {Class} Type - If set, forces the returned collection type
- * @returns Instance of Type, Map, or Object
- */
- toJSON(_, ctx, Type) {
- const map = Type ? new Type() : ctx && ctx.mapAsMap ? /* @__PURE__ */ new Map() : {};
- if (ctx && ctx.onCreate) ctx.onCreate(map);
- for (const item of this.items) item.addToJSMap(ctx, map);
- return map;
- }
- toString(ctx, onComment, onChompKeep) {
- if (!ctx) return JSON.stringify(this);
- for (const item of this.items) {
- if (!(item instanceof Pair)) throw new Error(`Map items must all be pairs; found ${JSON.stringify(item)} instead`);
- }
- return super.toString(ctx, {
- blockItem: (n) => n.str,
- flowChars: {
- start: "{",
- end: "}"
- },
- isMap: true,
- itemIndent: ctx.indent || ""
- }, onComment, onChompKeep);
- }
- };
- var binaryOptions = {
- defaultType: _rollupPluginBabelHelpers.Type.BLOCK_LITERAL,
- lineWidth: 76
- };
- var boolOptions = {
- trueStr: "true",
- falseStr: "false"
- };
- var intOptions = {
- asBigInt: false
- };
- var nullOptions = {
- nullStr: "null"
- };
- var strOptions = {
- defaultType: _rollupPluginBabelHelpers.Type.PLAIN,
- defaultKeyType: _rollupPluginBabelHelpers.Type.PLAIN,
- defaultQuoteSingle: false,
- doubleQuoted: {
- jsonEncoding: false,
- minMultiLineLength: 40
- },
- fold: {
- lineWidth: 80,
- minContentWidth: 20
- }
- };
- function resolveScalar(str, tags) {
- for (const {
- format,
- test,
- resolve
- } of tags) {
- if (test && test.test(str)) {
- let res = resolve(str);
- if (!(res instanceof Scalar)) res = new Scalar(res);
- if (format) res.format = format;
- return res;
- }
- }
- return new Scalar(str);
- }
- var FOLD_FLOW = "flow";
- var FOLD_BLOCK = "block";
- var FOLD_QUOTED = "quoted";
- var consumeMoreIndentedLines = (text, i) => {
- let ch = text[i + 1];
- while (ch === " " || ch === " ") {
- do {
- ch = text[i += 1];
- } while (ch && ch !== "\n");
- ch = text[i + 1];
- }
- return i;
- };
- function foldFlowLines(text, indent, mode, {
- indentAtStart,
- lineWidth = 80,
- minContentWidth = 20,
- onFold,
- onOverflow
- }) {
- if (!lineWidth || lineWidth < 0) return text;
- const endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length);
- if (text.length <= endStep) return text;
- const folds = [];
- const escapedFolds = {};
- let end = lineWidth - indent.length;
- if (typeof indentAtStart === "number") {
- if (indentAtStart > lineWidth - Math.max(2, minContentWidth)) folds.push(0);
- else end = lineWidth - indentAtStart;
- }
- let split = void 0;
- let prev = void 0;
- let overflow = false;
- let i = -1;
- if (mode === FOLD_BLOCK) {
- i = consumeMoreIndentedLines(text, i);
- if (i !== -1) end = i + endStep;
- }
- for (let ch; ch = text[i += 1]; ) {
- if (mode === FOLD_QUOTED && ch === "\\") {
- switch (text[i + 1]) {
- case "x":
- i += 3;
- break;
- case "u":
- i += 5;
- break;
- case "U":
- i += 9;
- break;
- default:
- i += 1;
- }
- }
- if (ch === "\n") {
- if (mode === FOLD_BLOCK) i = consumeMoreIndentedLines(text, i);
- end = i + endStep;
- split = void 0;
- } else {
- if (ch === " " && prev && prev !== " " && prev !== "\n" && prev !== " ") {
- const next = text[i + 1];
- if (next && next !== " " && next !== "\n" && next !== " ") split = i;
- }
- if (i >= end) {
- if (split) {
- folds.push(split);
- end = split + endStep;
- split = void 0;
- } else if (mode === FOLD_QUOTED) {
- while (prev === " " || prev === " ") {
- prev = ch;
- ch = text[i += 1];
- overflow = true;
- }
- folds.push(i - 2);
- escapedFolds[i - 2] = true;
- end = i - 2 + endStep;
- split = void 0;
- } else {
- overflow = true;
- }
- }
- }
- prev = ch;
- }
- if (overflow && onOverflow) onOverflow();
- if (folds.length === 0) return text;
- if (onFold) onFold();
- let res = text.slice(0, folds[0]);
- for (let i2 = 0; i2 < folds.length; ++i2) {
- const fold = folds[i2];
- const end2 = folds[i2 + 1] || text.length;
- if (fold === 0) res = `
- ${indent}${text.slice(0, end2)}`;
- else {
- if (mode === FOLD_QUOTED && escapedFolds[fold]) res += `${text[fold]}\\`;
- res += `
- ${indent}${text.slice(fold + 1, end2)}`;
- }
- }
- return res;
- }
- var getFoldOptions = ({
- indentAtStart
- }) => indentAtStart ? Object.assign({
- indentAtStart
- }, strOptions.fold) : strOptions.fold;
- var containsDocumentMarker = (str) => /^(%|---|\.\.\.)/m.test(str);
- function lineLengthOverLimit(str, limit) {
- const strLen = str.length;
- if (strLen <= limit) return false;
- for (let i = 0, start = 0; i < strLen; ++i) {
- if (str[i] === "\n") {
- if (i - start > limit) return true;
- start = i + 1;
- if (strLen - start <= limit) return false;
- }
- }
- return true;
- }
- function doubleQuotedString(value, ctx) {
- const {
- implicitKey
- } = ctx;
- const {
- jsonEncoding,
- minMultiLineLength
- } = strOptions.doubleQuoted;
- const json = JSON.stringify(value);
- if (jsonEncoding) return json;
- const indent = ctx.indent || (containsDocumentMarker(value) ? " " : "");
- let str = "";
- let start = 0;
- for (let i = 0, ch = json[i]; ch; ch = json[++i]) {
- if (ch === " " && json[i + 1] === "\\" && json[i + 2] === "n") {
- str += json.slice(start, i) + "\\ ";
- i += 1;
- start = i;
- ch = "\\";
- }
- if (ch === "\\") switch (json[i + 1]) {
- case "u":
- {
- str += json.slice(start, i);
- const code = json.substr(i + 2, 4);
- switch (code) {
- case "0000":
- str += "\\0";
- break;
- case "0007":
- str += "\\a";
- break;
- case "000b":
- str += "\\v";
- break;
- case "001b":
- str += "\\e";
- break;
- case "0085":
- str += "\\N";
- break;
- case "00a0":
- str += "\\_";
- break;
- case "2028":
- str += "\\L";
- break;
- case "2029":
- str += "\\P";
- break;
- default:
- if (code.substr(0, 2) === "00") str += "\\x" + code.substr(2);
- else str += json.substr(i, 6);
- }
- i += 5;
- start = i + 1;
- }
- break;
- case "n":
- if (implicitKey || json[i + 2] === '"' || json.length < minMultiLineLength) {
- i += 1;
- } else {
- str += json.slice(start, i) + "\n\n";
- while (json[i + 2] === "\\" && json[i + 3] === "n" && json[i + 4] !== '"') {
- str += "\n";
- i += 2;
- }
- str += indent;
- if (json[i + 2] === " ") str += "\\";
- i += 1;
- start = i + 1;
- }
- break;
- default:
- i += 1;
- }
- }
- str = start ? str + json.slice(start) : json;
- return implicitKey ? str : foldFlowLines(str, indent, FOLD_QUOTED, getFoldOptions(ctx));
- }
- function singleQuotedString(value, ctx) {
- if (ctx.implicitKey) {
- if (/\n/.test(value)) return doubleQuotedString(value, ctx);
- } else {
- if (/[ \t]\n|\n[ \t]/.test(value)) return doubleQuotedString(value, ctx);
- }
- const indent = ctx.indent || (containsDocumentMarker(value) ? " " : "");
- const res = "'" + value.replace(/'/g, "''").replace(/\n+/g, `$&
- ${indent}`) + "'";
- return ctx.implicitKey ? res : foldFlowLines(res, indent, FOLD_FLOW, getFoldOptions(ctx));
- }
- function blockString({
- comment,
- type,
- value
- }, ctx, onComment, onChompKeep) {
- if (/\n[\t ]+$/.test(value) || /^\s*$/.test(value)) {
- return doubleQuotedString(value, ctx);
- }
- const indent = ctx.indent || (ctx.forceBlockIndent || containsDocumentMarker(value) ? " " : "");
- const indentSize = indent ? "2" : "1";
- const literal = type === _rollupPluginBabelHelpers.Type.BLOCK_FOLDED ? false : type === _rollupPluginBabelHelpers.Type.BLOCK_LITERAL ? true : !lineLengthOverLimit(value, strOptions.fold.lineWidth - indent.length);
- let header = literal ? "|" : ">";
- if (!value) return header + "\n";
- let wsStart = "";
- let wsEnd = "";
- value = value.replace(/[\n\t ]*$/, (ws) => {
- const n = ws.indexOf("\n");
- if (n === -1) {
- header += "-";
- } else if (value === ws || n !== ws.length - 1) {
- header += "+";
- if (onChompKeep) onChompKeep();
- }
- wsEnd = ws.replace(/\n$/, "");
- return "";
- }).replace(/^[\n ]*/, (ws) => {
- if (ws.indexOf(" ") !== -1) header += indentSize;
- const m = ws.match(/ +$/);
- if (m) {
- wsStart = ws.slice(0, -m[0].length);
- return m[0];
- } else {
- wsStart = ws;
- return "";
- }
- });
- if (wsEnd) wsEnd = wsEnd.replace(/\n+(?!\n|$)/g, `$&${indent}`);
- if (wsStart) wsStart = wsStart.replace(/\n+/g, `$&${indent}`);
- if (comment) {
- header += " #" + comment.replace(/ ?[\r\n]+/g, " ");
- if (onComment) onComment();
- }
- if (!value) return `${header}${indentSize}
- ${indent}${wsEnd}`;
- if (literal) {
- value = value.replace(/\n+/g, `$&${indent}`);
- return `${header}
- ${indent}${wsStart}${value}${wsEnd}`;
- }
- value = value.replace(/\n+/g, "\n$&").replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g, "$1$2").replace(/\n+/g, `$&${indent}`);
- const body = foldFlowLines(`${wsStart}${value}${wsEnd}`, indent, FOLD_BLOCK, strOptions.fold);
- return `${header}
- ${indent}${body}`;
- }
- function plainString(item, ctx, onComment, onChompKeep) {
- const {
- comment,
- type,
- value
- } = item;
- const {
- actualString,
- implicitKey,
- indent,
- inFlow
- } = ctx;
- if (implicitKey && /[\n[\]{},]/.test(value) || inFlow && /[[\]{},]/.test(value)) {
- return doubleQuotedString(value, ctx);
- }
- if (!value || /^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(value)) {
- const hasDouble = value.indexOf('"') !== -1;
- const hasSingle = value.indexOf("'") !== -1;
- let quotedString;
- if (hasDouble && !hasSingle) {
- quotedString = singleQuotedString;
- } else if (hasSingle && !hasDouble) {
- quotedString = doubleQuotedString;
- } else if (strOptions.defaultQuoteSingle) {
- quotedString = singleQuotedString;
- } else {
- quotedString = doubleQuotedString;
- }
- return implicitKey || inFlow || value.indexOf("\n") === -1 ? quotedString(value, ctx) : blockString(item, ctx, onComment, onChompKeep);
- }
- if (!implicitKey && !inFlow && type !== _rollupPluginBabelHelpers.Type.PLAIN && value.indexOf("\n") !== -1) {
- return blockString(item, ctx, onComment, onChompKeep);
- }
- if (indent === "" && containsDocumentMarker(value)) {
- ctx.forceBlockIndent = true;
- return blockString(item, ctx, onComment, onChompKeep);
- }
- const str = value.replace(/\n+/g, `$&
- ${indent}`);
- if (actualString) {
- const {
- tags
- } = ctx.doc.schema;
- const resolved = resolveScalar(str, tags).value;
- if (typeof resolved !== "string") return doubleQuotedString(value, ctx);
- }
- const body = implicitKey ? str : foldFlowLines(str, indent, FOLD_FLOW, getFoldOptions(ctx));
- if (comment && !inFlow && (body.indexOf("\n") !== -1 || comment.indexOf("\n") !== -1)) {
- if (onComment) onComment();
- return addCommentBefore(body, indent, comment);
- }
- return body;
- }
- function stringifyString(item, ctx, onComment, onChompKeep) {
- const {
- defaultKeyType,
- defaultType
- } = strOptions;
- const {
- implicitKey,
- inFlow
- } = ctx;
- let {
- type,
- value
- } = item;
- if (typeof value !== "string") {
- value = String(value);
- item = Object.assign({}, item, {
- value
- });
- }
- if (type !== _rollupPluginBabelHelpers.Type.QUOTE_DOUBLE) {
- if (/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(value)) type = _rollupPluginBabelHelpers.Type.QUOTE_DOUBLE;
- }
- const _stringify = (_type) => {
- switch (_type) {
- case _rollupPluginBabelHelpers.Type.BLOCK_FOLDED:
- case _rollupPluginBabelHelpers.Type.BLOCK_LITERAL:
- return implicitKey || inFlow ? doubleQuotedString(value, ctx) : blockString(item, ctx, onComment, onChompKeep);
- case _rollupPluginBabelHelpers.Type.QUOTE_DOUBLE:
- return doubleQuotedString(value, ctx);
- case _rollupPluginBabelHelpers.Type.QUOTE_SINGLE:
- return singleQuotedString(value, ctx);
- case _rollupPluginBabelHelpers.Type.PLAIN:
- return plainString(item, ctx, onComment, onChompKeep);
- default:
- return null;
- }
- };
- let res = _stringify(type);
- if (res === null) {
- const t = implicitKey ? defaultKeyType : defaultType;
- res = _stringify(t);
- if (res === null) throw new Error(`Unsupported default string type ${t}`);
- }
- return res;
- }
- function stringifyNumber({
- format,
- minFractionDigits,
- tag,
- value
- }) {
- if (typeof value === "bigint") return String(value);
- if (!isFinite(value)) return isNaN(value) ? ".nan" : value < 0 ? "-.inf" : ".inf";
- let n = JSON.stringify(value);
- if (!format && minFractionDigits && (!tag || tag === "tag:yaml.org,2002:float") && /^\d/.test(n)) {
- let i = n.indexOf(".");
- if (i < 0) {
- i = n.length;
- n += ".";
- }
- let d = minFractionDigits - (n.length - i - 1);
- while (d-- > 0) n += "0";
- }
- return n;
- }
- exports2.Alias = Alias;
- exports2.Collection = Collection;
- exports2.Node = Node;
- exports2.Pair = Pair;
- exports2.Scalar = Scalar;
- exports2.YAMLMap = YAMLMap;
- exports2.YAMLSeq = YAMLSeq;
- exports2.addComment = addComment;
- exports2.binaryOptions = binaryOptions;
- exports2.boolOptions = boolOptions;
- exports2.collectionFromPath = collectionFromPath;
- exports2.createNode = createNode;
- exports2.createPair = createPair;
- exports2.findPair = findPair;
- exports2.intOptions = intOptions;
- exports2.isEmptyPath = isEmptyPath;
- exports2.nullOptions = nullOptions;
- exports2.resolveScalar = resolveScalar;
- exports2.strOptions = strOptions;
- exports2.stringifyNumber = stringifyNumber;
- exports2.stringifyString = stringifyString;
- exports2.toJS = toJS;
- }
- });
- // node_modules/yaml/dist/Schema-807430ba.js
- var require_Schema_807430ba = __commonJS({
- "node_modules/yaml/dist/Schema-807430ba.js"(exports2) {
- "use strict";
- var _rollupPluginBabelHelpers = require_rollupPluginBabelHelpers_eed30217();
- var stringifyNumber = require_stringifyNumber_dea1120c();
- var MERGE_KEY = "<<";
- var Merge = class extends stringifyNumber.Pair {
- constructor(pair) {
- if (pair instanceof stringifyNumber.Pair) {
- let seq2 = pair.value;
- if (!(seq2 instanceof stringifyNumber.YAMLSeq)) {
- seq2 = new stringifyNumber.YAMLSeq();
- seq2.items.push(pair.value);
- seq2.range = pair.value.range;
- }
- super(pair.key, seq2);
- this.range = pair.range;
- } else {
- super(new stringifyNumber.Scalar(MERGE_KEY), new stringifyNumber.YAMLSeq());
- }
- this.type = stringifyNumber.Pair.Type.MERGE_PAIR;
- }
- // If the value associated with a merge key is a single mapping node, each of
- // its key/value pairs is inserted into the current mapping, unless the key
- // already exists in it. If the value associated with the merge key is a
- // sequence, then this sequence is expected to contain mapping nodes and each
- // of these nodes is merged in turn according to its order in the sequence.
- // Keys in mapping nodes earlier in the sequence override keys specified in
- // later mapping nodes. -- http://yaml.org/type/merge.html
- addToJSMap(ctx, map2) {
- for (const {
- source
- } of this.value.items) {
- if (!(source instanceof stringifyNumber.YAMLMap)) throw new Error("Merge sources must be maps");
- const srcMap = source.toJSON(null, ctx, Map);
- for (const [key, value] of srcMap) {
- if (map2 instanceof Map) {
- if (!map2.has(key)) map2.set(key, value);
- } else if (map2 instanceof Set) {
- map2.add(key);
- } else if (!Object.prototype.hasOwnProperty.call(map2, key)) {
- Object.defineProperty(map2, key, {
- value,
- writable: true,
- enumerable: true,
- configurable: true
- });
- }
- }
- }
- return map2;
- }
- toString(ctx, onComment) {
- const seq2 = this.value;
- if (seq2.items.length > 1) return super.toString(ctx, onComment);
- this.value = seq2.items[0];
- const str = super.toString(ctx, onComment);
- this.value = seq2;
- return str;
- }
- };
- function createMap(schema, obj, ctx) {
- const {
- keepUndefined,
- replacer
- } = ctx;
- const map2 = new stringifyNumber.YAMLMap(schema);
- const add = (key, value) => {
- if (typeof replacer === "function") value = replacer.call(obj, key, value);
- else if (Array.isArray(replacer) && !replacer.includes(key)) return;
- if (value !== void 0 || keepUndefined) map2.items.push(stringifyNumber.createPair(key, value, ctx));
- };
- if (obj instanceof Map) {
- for (const [key, value] of obj) add(key, value);
- } else if (obj && typeof obj === "object") {
- for (const key of Object.keys(obj)) add(key, obj[key]);
- }
- if (typeof schema.sortMapEntries === "function") {
- map2.items.sort(schema.sortMapEntries);
- }
- return map2;
- }
- var map = {
- createNode: createMap,
- default: true,
- nodeClass: stringifyNumber.YAMLMap,
- tag: "tag:yaml.org,2002:map",
- resolve: (map2) => map2
- };
- function createSeq(schema, obj, ctx) {
- const {
- replacer
- } = ctx;
- const seq2 = new stringifyNumber.YAMLSeq(schema);
- if (obj && obj[Symbol.iterator]) {
- let i = 0;
- for (let it of obj) {
- if (typeof replacer === "function") {
- const key = obj instanceof Set ? it : String(i++);
- it = replacer.call(obj, key, it);
- }
- seq2.items.push(stringifyNumber.createNode(it, null, ctx));
- }
- }
- return seq2;
- }
- var seq = {
- createNode: createSeq,
- default: true,
- nodeClass: stringifyNumber.YAMLSeq,
- tag: "tag:yaml.org,2002:seq",
- resolve: (seq2) => seq2
- };
- var string = {
- identify: (value) => typeof value === "string",
- default: true,
- tag: "tag:yaml.org,2002:str",
- resolve: (str) => str,
- stringify(item, ctx, onComment, onChompKeep) {
- ctx = Object.assign({
- actualString: true
- }, ctx);
- return stringifyNumber.stringifyString(item, ctx, onComment, onChompKeep);
- },
- options: stringifyNumber.strOptions
- };
- var failsafe = [map, seq, string];
- var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
- var intResolve = (src, offset, radix) => stringifyNumber.intOptions.asBigInt ? BigInt(src) : parseInt(src.substring(offset), radix);
- function intStringify(node, radix, prefix) {
- const {
- value
- } = node;
- if (intIdentify(value) && value >= 0) return prefix + value.toString(radix);
- return stringifyNumber.stringifyNumber(node);
- }
- var nullObj = {
- identify: (value) => value == null,
- createNode: (schema, value, ctx) => ctx.wrapScalars ? new stringifyNumber.Scalar(null) : null,
- default: true,
- tag: "tag:yaml.org,2002:null",
- test: /^(?:~|[Nn]ull|NULL)?$/,
- resolve: (str) => {
- const node = new stringifyNumber.Scalar(null);
- node.sourceStr = str;
- return node;
- },
- options: stringifyNumber.nullOptions,
- stringify: ({
- sourceStr
- }) => sourceStr !== null && sourceStr !== void 0 ? sourceStr : stringifyNumber.nullOptions.nullStr
- };
- var boolObj = {
- identify: (value) => typeof value === "boolean",
- default: true,
- tag: "tag:yaml.org,2002:bool",
- test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,
- resolve: (str) => str[0] === "t" || str[0] === "T",
- options: stringifyNumber.boolOptions,
- stringify: ({
- value
- }) => value ? stringifyNumber.boolOptions.trueStr : stringifyNumber.boolOptions.falseStr
- };
- var octObj = {
- identify: (value) => intIdentify(value) && value >= 0,
- default: true,
- tag: "tag:yaml.org,2002:int",
- format: "OCT",
- test: /^0o[0-7]+$/,
- resolve: (str) => intResolve(str, 2, 8),
- options: stringifyNumber.intOptions,
- stringify: (node) => intStringify(node, 8, "0o")
- };
- var intObj = {
- identify: intIdentify,
- default: true,
- tag: "tag:yaml.org,2002:int",
- test: /^[-+]?[0-9]+$/,
- resolve: (str) => intResolve(str, 0, 10),
- options: stringifyNumber.intOptions,
- stringify: stringifyNumber.stringifyNumber
- };
- var hexObj = {
- identify: (value) => intIdentify(value) && value >= 0,
- default: true,
- tag: "tag:yaml.org,2002:int",
- format: "HEX",
- test: /^0x[0-9a-fA-F]+$/,
- resolve: (str) => intResolve(str, 2, 16),
- options: stringifyNumber.intOptions,
- stringify: (node) => intStringify(node, 16, "0x")
- };
- var nanObj = {
- identify: (value) => typeof value === "number",
- default: true,
- tag: "tag:yaml.org,2002:float",
- test: /^(?:[-+]?\.(?:inf|Inf|INF|nan|NaN|NAN))$/,
- resolve: (str) => str.slice(-3).toLowerCase() === "nan" ? NaN : str[0] === "-" ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,
- stringify: stringifyNumber.stringifyNumber
- };
- var expObj = {
- identify: (value) => typeof value === "number",
- default: true,
- tag: "tag:yaml.org,2002:float",
- format: "EXP",
- test: /^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,
- resolve: (str) => parseFloat(str),
- stringify: ({
- value
- }) => Number(value).toExponential()
- };
- var floatObj = {
- identify: (value) => typeof value === "number",
- default: true,
- tag: "tag:yaml.org,2002:float",
- test: /^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,
- resolve(str) {
- const node = new stringifyNumber.Scalar(parseFloat(str));
- const dot = str.indexOf(".");
- if (dot !== -1 && str[str.length - 1] === "0") node.minFractionDigits = str.length - dot - 1;
- return node;
- },
- stringify: stringifyNumber.stringifyNumber
- };
- var core = failsafe.concat([nullObj, boolObj, octObj, intObj, hexObj, nanObj, expObj, floatObj]);
- var intIdentify$1 = (value) => typeof value === "bigint" || Number.isInteger(value);
- var stringifyJSON = ({
- value
- }) => JSON.stringify(value);
- var json = [map, seq, {
- identify: (value) => typeof value === "string",
- default: true,
- tag: "tag:yaml.org,2002:str",
- resolve: (str) => str,
- stringify: stringifyJSON
- }, {
- identify: (value) => value == null,
- createNode: (schema, value, ctx) => ctx.wrapScalars ? new stringifyNumber.Scalar(null) : null,
- default: true,
- tag: "tag:yaml.org,2002:null",
- test: /^null$/,
- resolve: () => null,
- stringify: stringifyJSON
- }, {
- identify: (value) => typeof value === "boolean",
- default: true,
- tag: "tag:yaml.org,2002:bool",
- test: /^true|false$/,
- resolve: (str) => str === "true",
- stringify: stringifyJSON
- }, {
- identify: intIdentify$1,
- default: true,
- tag: "tag:yaml.org,2002:int",
- test: /^-?(?:0|[1-9][0-9]*)$/,
- resolve: (str) => stringifyNumber.intOptions.asBigInt ? BigInt(str) : parseInt(str, 10),
- stringify: ({
- value
- }) => intIdentify$1(value) ? value.toString() : JSON.stringify(value)
- }, {
- identify: (value) => typeof value === "number",
- default: true,
- tag: "tag:yaml.org,2002:float",
- test: /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,
- resolve: (str) => parseFloat(str),
- stringify: stringifyJSON
- }, {
- default: true,
- test: /^/,
- resolve(str, onError) {
- onError(`Unresolved plain scalar ${JSON.stringify(str)}`);
- return str;
- }
- }];
- var binary = {
- identify: (value) => value instanceof Uint8Array,
- // Buffer inherits from Uint8Array
- default: false,
- tag: "tag:yaml.org,2002:binary",
- /**
- * Returns a Buffer in node and an Uint8Array in browsers
- *
- * To use the resulting buffer as an image, you'll want to do something like:
- *
- * const blob = new Blob([buffer], { type: 'image/jpeg' })
- * document.querySelector('#photo').src = URL.createObjectURL(blob)
- */
- resolve(src, onError) {
- if (typeof Buffer === "function") {
- return Buffer.from(src, "base64");
- } else if (typeof atob === "function") {
- const str = atob(src.replace(/[\n\r]/g, ""));
- const buffer = new Uint8Array(str.length);
- for (let i = 0; i < str.length; ++i) buffer[i] = str.charCodeAt(i);
- return buffer;
- } else {
- onError("This environment does not support reading binary tags; either Buffer or atob is required");
- return src;
- }
- },
- options: stringifyNumber.binaryOptions,
- stringify: ({
- comment,
- type,
- value
- }, ctx, onComment, onChompKeep) => {
- let src;
- if (typeof Buffer === "function") {
- src = value instanceof Buffer ? value.toString("base64") : Buffer.from(value.buffer).toString("base64");
- } else if (typeof btoa === "function") {
- let s = "";
- for (let i = 0; i < value.length; ++i) s += String.fromCharCode(value[i]);
- src = btoa(s);
- } else {
- throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");
- }
- if (!type) type = stringifyNumber.binaryOptions.defaultType;
- if (type === _rollupPluginBabelHelpers.Type.QUOTE_DOUBLE) {
- value = src;
- } else {
- const {
- lineWidth
- } = stringifyNumber.binaryOptions;
- const n = Math.ceil(src.length / lineWidth);
- const lines = new Array(n);
- for (let i = 0, o = 0; i < n; ++i, o += lineWidth) {
- lines[i] = src.substr(o, lineWidth);
- }
- value = lines.join(type === _rollupPluginBabelHelpers.Type.BLOCK_LITERAL ? "\n" : " ");
- }
- return stringifyNumber.stringifyString({
- comment,
- type,
- value
- }, ctx, onComment, onChompKeep);
- }
- };
- function parsePairs(seq2, onError) {
- if (seq2 instanceof stringifyNumber.YAMLSeq) {
- for (let i = 0; i < seq2.items.length; ++i) {
- let item = seq2.items[i];
- if (item instanceof stringifyNumber.Pair) continue;
- else if (item instanceof stringifyNumber.YAMLMap) {
- if (item.items.length > 1) onError("Each pair must have its own sequence indicator");
- const pair = item.items[0] || new stringifyNumber.Pair();
- if (item.commentBefore) pair.commentBefore = pair.commentBefore ? `${item.commentBefore}
- ${pair.commentBefore}` : item.commentBefore;
- if (item.comment) pair.comment = pair.comment ? `${item.comment}
- ${pair.comment}` : item.comment;
- item = pair;
- }
- seq2.items[i] = item instanceof stringifyNumber.Pair ? item : new stringifyNumber.Pair(item);
- }
- } else onError("Expected a sequence for this tag");
- return seq2;
- }
- function createPairs(schema, iterable, ctx) {
- const {
- replacer
- } = ctx;
- const pairs2 = new stringifyNumber.YAMLSeq(schema);
- pairs2.tag = "tag:yaml.org,2002:pairs";
- let i = 0;
- for (let it of iterable) {
- if (typeof replacer === "function") it = replacer.call(iterable, String(i++), it);
- let key, value;
- if (Array.isArray(it)) {
- if (it.length === 2) {
- key = it[0];
- value = it[1];
- } else throw new TypeError(`Expected [key, value] tuple: ${it}`);
- } else if (it && it instanceof Object) {
- const keys = Object.keys(it);
- if (keys.length === 1) {
- key = keys[0];
- value = it[key];
- } else throw new TypeError(`Expected { key: value } tuple: ${it}`);
- } else {
- key = it;
- }
- pairs2.items.push(stringifyNumber.createPair(key, value, ctx));
- }
- return pairs2;
- }
- var pairs = {
- default: false,
- tag: "tag:yaml.org,2002:pairs",
- resolve: parsePairs,
- createNode: createPairs
- };
- var YAMLOMap = class _YAMLOMap extends stringifyNumber.YAMLSeq {
- constructor() {
- super();
- _rollupPluginBabelHelpers._defineProperty(this, "add", stringifyNumber.YAMLMap.prototype.add.bind(this));
- _rollupPluginBabelHelpers._defineProperty(this, "delete", stringifyNumber.YAMLMap.prototype.delete.bind(this));
- _rollupPluginBabelHelpers._defineProperty(this, "get", stringifyNumber.YAMLMap.prototype.get.bind(this));
- _rollupPluginBabelHelpers._defineProperty(this, "has", stringifyNumber.YAMLMap.prototype.has.bind(this));
- _rollupPluginBabelHelpers._defineProperty(this, "set", stringifyNumber.YAMLMap.prototype.set.bind(this));
- this.tag = _YAMLOMap.tag;
- }
- toJSON(_, ctx) {
- const map2 = /* @__PURE__ */ new Map();
- if (ctx && ctx.onCreate) ctx.onCreate(map2);
- for (const pair of this.items) {
- let key, value;
- if (pair instanceof stringifyNumber.Pair) {
- key = stringifyNumber.toJS(pair.key, "", ctx);
- value = stringifyNumber.toJS(pair.value, key, ctx);
- } else {
- key = stringifyNumber.toJS(pair, "", ctx);
- }
- if (map2.has(key)) throw new Error("Ordered maps must not include duplicate keys");
- map2.set(key, value);
- }
- return map2;
- }
- };
- _rollupPluginBabelHelpers._defineProperty(YAMLOMap, "tag", "tag:yaml.org,2002:omap");
- function parseOMap(seq2, onError) {
- const pairs2 = parsePairs(seq2, onError);
- const seenKeys = [];
- for (const {
- key
- } of pairs2.items) {
- if (key instanceof stringifyNumber.Scalar) {
- if (seenKeys.includes(key.value)) {
- onError(`Ordered maps must not include duplicate keys: ${key.value}`);
- } else {
- seenKeys.push(key.value);
- }
- }
- }
- return Object.assign(new YAMLOMap(), pairs2);
- }
- function createOMap(schema, iterable, ctx) {
- const pairs2 = createPairs(schema, iterable, ctx);
- const omap2 = new YAMLOMap();
- omap2.items = pairs2.items;
- return omap2;
- }
- var omap = {
- identify: (value) => value instanceof Map,
- nodeClass: YAMLOMap,
- default: false,
- tag: "tag:yaml.org,2002:omap",
- resolve: parseOMap,
- createNode: createOMap
- };
- var YAMLSet = class _YAMLSet extends stringifyNumber.YAMLMap {
- constructor(schema) {
- super(schema);
- this.tag = _YAMLSet.tag;
- }
- add(key) {
- const pair = key instanceof stringifyNumber.Pair ? key : new stringifyNumber.Pair(key);
- const prev = stringifyNumber.findPair(this.items, pair.key);
- if (!prev) this.items.push(pair);
- }
- get(key, keepPair) {
- const pair = stringifyNumber.findPair(this.items, key);
- return !keepPair && pair instanceof stringifyNumber.Pair ? pair.key instanceof stringifyNumber.Scalar ? pair.key.value : pair.key : pair;
- }
- set(key, value) {
- if (typeof value !== "boolean") throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof value}`);
- const prev = stringifyNumber.findPair(this.items, key);
- if (prev && !value) {
- this.items.splice(this.items.indexOf(prev), 1);
- } else if (!prev && value) {
- this.items.push(new stringifyNumber.Pair(key));
- }
- }
- toJSON(_, ctx) {
- return super.toJSON(_, ctx, Set);
- }
- toString(ctx, onComment, onChompKeep) {
- if (!ctx) return JSON.stringify(this);
- if (this.hasAllNullValues()) return super.toString(ctx, onComment, onChompKeep);
- else throw new Error("Set items must all have null values");
- }
- };
- _rollupPluginBabelHelpers._defineProperty(YAMLSet, "tag", "tag:yaml.org,2002:set");
- function parseSet(map2, onError) {
- if (map2 instanceof stringifyNumber.YAMLMap) {
- if (map2.hasAllNullValues()) return Object.assign(new YAMLSet(), map2);
- else onError("Set items must all have null values");
- } else onError("Expected a mapping for this tag");
- return map2;
- }
- function createSet(schema, iterable, ctx) {
- const {
- replacer
- } = ctx;
- const set2 = new YAMLSet(schema);
- for (let value of iterable) {
- if (typeof replacer === "function") value = replacer.call(iterable, value, value);
- set2.items.push(stringifyNumber.createPair(value, null, ctx));
- }
- return set2;
- }
- var set = {
- identify: (value) => value instanceof Set,
- nodeClass: YAMLSet,
- default: false,
- tag: "tag:yaml.org,2002:set",
- resolve: parseSet,
- createNode: createSet
- };
- var parseSexagesimal = (str, isInt) => {
- const sign = str[0];
- const parts = sign === "-" || sign === "+" ? str.substring(1) : str;
- const num = (n) => isInt && stringifyNumber.intOptions.asBigInt ? BigInt(n) : Number(n);
- const res = parts.replace(/_/g, "").split(":").reduce((res2, p) => res2 * num(60) + num(p), num(0));
- return sign === "-" ? num(-1) * res : res;
- };
- var stringifySexagesimal = ({
- value
- }) => {
- let num = (n) => n;
- if (typeof value === "bigint") num = (n) => BigInt(n);
- else if (isNaN(value) || !isFinite(value)) return stringifyNumber.stringifyNumber(value);
- let sign = "";
- if (value < 0) {
- sign = "-";
- value *= num(-1);
- }
- const _60 = num(60);
- const parts = [value % _60];
- if (value < 60) {
- parts.unshift(0);
- } else {
- value = (value - parts[0]) / _60;
- parts.unshift(value % _60);
- if (value >= 60) {
- value = (value - parts[0]) / _60;
- parts.unshift(value);
- }
- }
- return sign + parts.map((n) => n < 10 ? "0" + String(n) : String(n)).join(":").replace(/000000\d*$/, "");
- };
- var intTime = {
- identify: (value) => typeof value === "bigint" || Number.isInteger(value),
- default: true,
- tag: "tag:yaml.org,2002:int",
- format: "TIME",
- test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,
- resolve: (str) => parseSexagesimal(str, true),
- stringify: stringifySexagesimal
- };
- var floatTime = {
- identify: (value) => typeof value === "number",
- default: true,
- tag: "tag:yaml.org,2002:float",
- format: "TIME",
- test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,
- resolve: (str) => parseSexagesimal(str, false),
- stringify: stringifySexagesimal
- };
- var timestamp = {
- identify: (value) => value instanceof Date,
- default: true,
- tag: "tag:yaml.org,2002:timestamp",
- // If the time zone is omitted, the timestamp is assumed to be specified in UTC. The time part
- // may be omitted altogether, resulting in a date format. In such a case, the time part is
- // assumed to be 00:00:00Z (start of day, UTC).
- test: RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),
- resolve(str) {
- let [, year, month, day, hour, minute, second, millisec, tz] = str.match(timestamp.test);
- if (millisec) millisec = (millisec + "00").substr(1, 3);
- let date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec || 0);
- if (tz && tz !== "Z") {
- let d = parseSexagesimal(tz, false);
- if (Math.abs(d) < 30) d *= 60;
- date -= 6e4 * d;
- }
- return new Date(date);
- },
- stringify: ({
- value
- }) => value.toISOString().replace(/((T00:00)?:00)?\.000Z$/, "")
- };
- var boolStringify = ({
- value
- }) => value ? stringifyNumber.boolOptions.trueStr : stringifyNumber.boolOptions.falseStr;
- var intIdentify$2 = (value) => typeof value === "bigint" || Number.isInteger(value);
- function intResolve$1(str, offset, radix) {
- const sign = str[0];
- if (sign === "-" || sign === "+") offset += 1;
- str = str.substring(offset).replace(/_/g, "");
- if (stringifyNumber.intOptions.asBigInt) {
- switch (radix) {
- case 2:
- str = `0b${str}`;
- break;
- case 8:
- str = `0o${str}`;
- break;
- case 16:
- str = `0x${str}`;
- break;
- }
- const n2 = BigInt(str);
- return sign === "-" ? BigInt(-1) * n2 : n2;
- }
- const n = parseInt(str, radix);
- return sign === "-" ? -1 * n : n;
- }
- function intStringify$1(node, radix, prefix) {
- const {
- value
- } = node;
- if (intIdentify$2(value)) {
- const str = value.toString(radix);
- return value < 0 ? "-" + prefix + str.substr(1) : prefix + str;
- }
- return stringifyNumber.stringifyNumber(node);
- }
- var yaml11 = failsafe.concat([{
- identify: (value) => value == null,
- createNode: (schema, value, ctx) => ctx.wrapScalars ? new stringifyNumber.Scalar(null) : null,
- default: true,
- tag: "tag:yaml.org,2002:null",
- test: /^(?:~|[Nn]ull|NULL)?$/,
- resolve: (str) => {
- const node = new stringifyNumber.Scalar(null);
- node.sourceStr = str;
- return node;
- },
- options: stringifyNumber.nullOptions,
- stringify: ({
- sourceStr
- }) => sourceStr !== null && sourceStr !== void 0 ? sourceStr : stringifyNumber.nullOptions.nullStr
- }, {
- identify: (value) => typeof value === "boolean",
- default: true,
- tag: "tag:yaml.org,2002:bool",
- test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,
- resolve: () => true,
- options: stringifyNumber.boolOptions,
- stringify: boolStringify
- }, {
- identify: (value) => typeof value === "boolean",
- default: true,
- tag: "tag:yaml.org,2002:bool",
- test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,
- resolve: () => false,
- options: stringifyNumber.boolOptions,
- stringify: boolStringify
- }, {
- identify: intIdentify$2,
- default: true,
- tag: "tag:yaml.org,2002:int",
- format: "BIN",
- test: /^[-+]?0b[0-1_]+$/,
- resolve: (str) => intResolve$1(str, 2, 2),
- stringify: (node) => intStringify$1(node, 2, "0b")
- }, {
- identify: intIdentify$2,
- default: true,
- tag: "tag:yaml.org,2002:int",
- format: "OCT",
- test: /^[-+]?0[0-7_]+$/,
- resolve: (str) => intResolve$1(str, 1, 8),
- stringify: (node) => intStringify$1(node, 8, "0")
- }, {
- identify: intIdentify$2,
- default: true,
- tag: "tag:yaml.org,2002:int",
- test: /^[-+]?[0-9][0-9_]*$/,
- resolve: (str) => intResolve$1(str, 0, 10),
- stringify: stringifyNumber.stringifyNumber
- }, {
- identify: intIdentify$2,
- default: true,
- tag: "tag:yaml.org,2002:int",
- format: "HEX",
- test: /^[-+]?0x[0-9a-fA-F_]+$/,
- resolve: (str) => intResolve$1(str, 2, 16),
- stringify: (node) => intStringify$1(node, 16, "0x")
- }, {
- identify: (value) => typeof value === "number",
- default: true,
- tag: "tag:yaml.org,2002:float",
- test: /^[-+]?\.(?:inf|Inf|INF|nan|NaN|NAN)$/,
- resolve: (str) => str.slice(-3).toLowerCase() === "nan" ? NaN : str[0] === "-" ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,
- stringify: stringifyNumber.stringifyNumber
- }, {
- identify: (value) => typeof value === "number",
- default: true,
- tag: "tag:yaml.org,2002:float",
- format: "EXP",
- test: /^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,
- resolve: (str) => parseFloat(str.replace(/_/g, "")),
- stringify: ({
- value
- }) => Number(value).toExponential()
- }, {
- identify: (value) => typeof value === "number",
- default: true,
- tag: "tag:yaml.org,2002:float",
- test: /^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,
- resolve(str) {
- const node = new stringifyNumber.Scalar(parseFloat(str.replace(/_/g, "")));
- const dot = str.indexOf(".");
- if (dot !== -1) {
- const f = str.substring(dot + 1).replace(/_/g, "");
- if (f[f.length - 1] === "0") node.minFractionDigits = f.length;
- }
- return node;
- },
- stringify: stringifyNumber.stringifyNumber
- }], binary, omap, pairs, set, intTime, floatTime, timestamp);
- var schemas = {
- core,
- failsafe,
- json,
- yaml11
- };
- var tags = {
- binary,
- bool: boolObj,
- float: floatObj,
- floatExp: expObj,
- floatNaN: nanObj,
- floatTime,
- int: intObj,
- intHex: hexObj,
- intOct: octObj,
- intTime,
- map,
- null: nullObj,
- omap,
- pairs,
- seq,
- set,
- timestamp
- };
- function getSchemaTags(schemas2, knownTags, customTags, schemaId) {
- let tags2 = schemas2[schemaId.replace(/\W/g, "")];
- if (!tags2) {
- const keys = Object.keys(schemas2).map((key) => JSON.stringify(key)).join(", ");
- throw new Error(`Unknown schema "${schemaId}"; use one of ${keys}`);
- }
- if (Array.isArray(customTags)) {
- for (const tag of customTags) tags2 = tags2.concat(tag);
- } else if (typeof customTags === "function") {
- tags2 = customTags(tags2.slice());
- }
- for (let i = 0; i < tags2.length; ++i) {
- const tag = tags2[i];
- if (typeof tag === "string") {
- const tagObj = knownTags[tag];
- if (!tagObj) {
- const keys = Object.keys(knownTags).map((key) => JSON.stringify(key)).join(", ");
- throw new Error(`Unknown custom tag "${tag}"; use one of ${keys}`);
- }
- tags2[i] = tagObj;
- }
- }
- return tags2;
- }
- var sortMapEntriesByKey = (a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0;
- var coreKnownTags = {
- "tag:yaml.org,2002:binary": tags.binary,
- "tag:yaml.org,2002:omap": tags.omap,
- "tag:yaml.org,2002:pairs": tags.pairs,
- "tag:yaml.org,2002:set": tags.set,
- "tag:yaml.org,2002:timestamp": tags.timestamp
- };
- var Schema = class {
- constructor({
- customTags,
- merge,
- resolveKnownTags,
- schema,
- sortMapEntries
- }) {
- this.merge = !!merge;
- this.name = schema;
- this.knownTags = resolveKnownTags ? coreKnownTags : {};
- this.tags = getSchemaTags(schemas, tags, customTags, schema);
- this.map = tags.map;
- this.seq = tags.seq;
- this.sortMapEntries = sortMapEntries === true ? sortMapEntriesByKey : sortMapEntries || null;
- }
- };
- exports2.MERGE_KEY = MERGE_KEY;
- exports2.Merge = Merge;
- exports2.Schema = Schema;
- }
- });
- // node_modules/yaml/dist/Document-f89a2614.js
- var require_Document_f89a2614 = __commonJS({
- "node_modules/yaml/dist/Document-f89a2614.js"(exports2) {
- "use strict";
- var _rollupPluginBabelHelpers = require_rollupPluginBabelHelpers_eed30217();
- var parseCst = require_parse_3997f544();
- var stringifyNumber = require_stringifyNumber_dea1120c();
- var Schema = require_Schema_807430ba();
- var defaultOptions = {
- anchorPrefix: "a",
- customTags: null,
- indent: 2,
- indentSeq: true,
- keepCstNodes: false,
- keepNodeTypes: true,
- keepUndefined: false,
- mapAsMap: false,
- maxAliasCount: 100,
- prettyErrors: true,
- simpleKeys: false,
- version: "1.2"
- };
- var scalarOptions = {
- get binary() {
- return stringifyNumber.binaryOptions;
- },
- set binary(opt) {
- Object.assign(stringifyNumber.binaryOptions, opt);
- },
- get bool() {
- return stringifyNumber.boolOptions;
- },
- set bool(opt) {
- Object.assign(stringifyNumber.boolOptions, opt);
- },
- get int() {
- return stringifyNumber.intOptions;
- },
- set int(opt) {
- Object.assign(stringifyNumber.intOptions, opt);
- },
- get null() {
- return stringifyNumber.nullOptions;
- },
- set null(opt) {
- Object.assign(stringifyNumber.nullOptions, opt);
- },
- get str() {
- return stringifyNumber.strOptions;
- },
- set str(opt) {
- Object.assign(stringifyNumber.strOptions, opt);
- }
- };
- var documentOptions = {
- "1.0": {
- schema: "yaml-1.1",
- merge: true,
- tagPrefixes: [{
- handle: "!",
- prefix: _rollupPluginBabelHelpers.defaultTagPrefix
- }, {
- handle: "!!",
- prefix: "tag:private.yaml.org,2002:"
- }]
- },
- "1.1": {
- schema: "yaml-1.1",
- merge: true,
- tagPrefixes: [{
- handle: "!",
- prefix: "!"
- }, {
- handle: "!!",
- prefix: _rollupPluginBabelHelpers.defaultTagPrefix
- }]
- },
- "1.2": {
- schema: "core",
- merge: false,
- resolveKnownTags: true,
- tagPrefixes: [{
- handle: "!",
- prefix: "!"
- }, {
- handle: "!!",
- prefix: _rollupPluginBabelHelpers.defaultTagPrefix
- }]
- }
- };
- function stringifyTag(doc, tag) {
- if ((doc.version || doc.options.version) === "1.0") {
- const priv = tag.match(/^tag:private\.yaml\.org,2002:([^:/]+)$/);
- if (priv) return "!" + priv[1];
- const vocab = tag.match(/^tag:([a-zA-Z0-9-]+)\.yaml\.org,2002:(.*)/);
- return vocab ? `!${vocab[1]}/${vocab[2]}` : `!${tag.replace(/^tag:/, "")}`;
- }
- let p = doc.tagPrefixes.find((p2) => tag.indexOf(p2.prefix) === 0);
- if (!p) {
- const dtp = doc.getDefaults().tagPrefixes;
- p = dtp && dtp.find((p2) => tag.indexOf(p2.prefix) === 0);
- }
- if (!p) return tag[0] === "!" ? tag : `!<${tag}>`;
- const suffix = tag.substr(p.prefix.length).replace(/[!,[\]{}]/g, (ch) => ({
- "!": "%21",
- ",": "%2C",
- "[": "%5B",
- "]": "%5D",
- "{": "%7B",
- "}": "%7D"
- })[ch]);
- return p.handle + suffix;
- }
- function getTagObject(tags, item) {
- if (item instanceof stringifyNumber.Alias) return stringifyNumber.Alias;
- if (item.tag) {
- const match = tags.filter((t) => t.tag === item.tag);
- if (match.length > 0) return match.find((t) => t.format === item.format) || match[0];
- }
- let tagObj, obj;
- if (item instanceof stringifyNumber.Scalar) {
- obj = item.value;
- const match = tags.filter((t) => t.identify && t.identify(obj));
- tagObj = match.find((t) => t.format === item.format) || match.find((t) => !t.format);
- } else {
- obj = item;
- tagObj = tags.find((t) => t.nodeClass && obj instanceof t.nodeClass);
- }
- if (!tagObj) {
- const name = obj && obj.constructor ? obj.constructor.name : typeof obj;
- throw new Error(`Tag not resolved for ${name} value`);
- }
- return tagObj;
- }
- function stringifyProps(node, tagObj, {
- anchors,
- doc
- }) {
- const props = [];
- const anchor = doc.anchors.getName(node);
- if (anchor) {
- anchors[anchor] = node;
- props.push(`&${anchor}`);
- }
- if (node.tag) {
- props.push(stringifyTag(doc, node.tag));
- } else if (!tagObj.default) {
- props.push(stringifyTag(doc, tagObj.tag));
- }
- return props.join(" ");
- }
- function stringify(item, ctx, onComment, onChompKeep) {
- const {
- schema
- } = ctx.doc;
- let tagObj;
- if (!(item instanceof stringifyNumber.Node)) {
- item = ctx.doc.createNode(item, {
- onTagObj: (o) => tagObj = o,
- wrapScalars: true
- });
- }
- if (item instanceof stringifyNumber.Pair) return item.toString(ctx, onComment, onChompKeep);
- if (!tagObj) tagObj = getTagObject(schema.tags, item);
- const props = stringifyProps(item, tagObj, ctx);
- if (props.length > 0) ctx.indentAtStart = (ctx.indentAtStart || 0) + props.length + 1;
- const str = typeof tagObj.stringify === "function" ? tagObj.stringify(item, ctx, onComment, onChompKeep) : item instanceof stringifyNumber.Scalar ? stringifyNumber.stringifyString(item, ctx, onComment, onChompKeep) : item.toString(ctx, onComment, onChompKeep);
- if (!props) return str;
- return item instanceof stringifyNumber.Scalar || str[0] === "{" || str[0] === "[" ? `${props} ${str}` : `${props}
- ${ctx.indent}${str}`;
- }
- var Anchors = class _Anchors {
- static validAnchorNode(node) {
- return node instanceof stringifyNumber.Scalar || node instanceof stringifyNumber.YAMLSeq || node instanceof stringifyNumber.YAMLMap;
- }
- constructor(prefix) {
- _rollupPluginBabelHelpers._defineProperty(this, "map", /* @__PURE__ */ Object.create(null));
- this.prefix = prefix;
- }
- createAlias(node, name) {
- this.setAnchor(node, name);
- return new stringifyNumber.Alias(node);
- }
- createMergePair(...sources) {
- const merge = new Schema.Merge();
- merge.value.items = sources.map((s) => {
- if (s instanceof stringifyNumber.Alias) {
- if (s.source instanceof stringifyNumber.YAMLMap) return s;
- } else if (s instanceof stringifyNumber.YAMLMap) {
- return this.createAlias(s);
- }
- throw new Error("Merge sources must be Map nodes or their Aliases");
- });
- return merge;
- }
- getName(node) {
- const {
- map
- } = this;
- return Object.keys(map).find((a) => map[a] === node);
- }
- getNames() {
- return Object.keys(this.map);
- }
- getNode(name) {
- return this.map[name];
- }
- newName(prefix) {
- if (!prefix) prefix = this.prefix;
- const names = Object.keys(this.map);
- for (let i = 1; true; ++i) {
- const name = `${prefix}${i}`;
- if (!names.includes(name)) return name;
- }
- }
- // During parsing, map & aliases contain CST nodes
- resolveNodes() {
- const {
- map,
- _cstAliases
- } = this;
- Object.keys(map).forEach((a) => {
- map[a] = map[a].resolved;
- });
- _cstAliases.forEach((a) => {
- a.source = a.source.resolved;
- });
- delete this._cstAliases;
- }
- setAnchor(node, name) {
- if (node != null && !_Anchors.validAnchorNode(node)) {
- throw new Error("Anchors may only be set for Scalar, Seq and Map nodes");
- }
- if (name && /[\x00-\x19\s,[\]{}]/.test(name)) {
- throw new Error("Anchor names must not contain whitespace or control characters");
- }
- const {
- map
- } = this;
- const prev = node && Object.keys(map).find((a) => map[a] === node);
- if (prev) {
- if (!name) {
- return prev;
- } else if (prev !== name) {
- delete map[prev];
- map[name] = node;
- }
- } else {
- if (!name) {
- if (!node) return null;
- name = this.newName();
- }
- map[name] = node;
- }
- return name;
- }
- };
- function applyReviver(reviver, obj, key, val) {
- if (val && typeof val === "object") {
- if (Array.isArray(val)) {
- for (let i = 0, len = val.length; i < len; ++i) {
- const v0 = val[i];
- const v1 = applyReviver(reviver, val, String(i), v0);
- if (v1 === void 0) delete val[i];
- else if (v1 !== v0) val[i] = v1;
- }
- } else if (val instanceof Map) {
- for (const k of Array.from(val.keys())) {
- const v0 = val.get(k);
- const v1 = applyReviver(reviver, val, k, v0);
- if (v1 === void 0) val.delete(k);
- else if (v1 !== v0) val.set(k, v1);
- }
- } else if (val instanceof Set) {
- for (const v0 of Array.from(val)) {
- const v1 = applyReviver(reviver, val, v0, v0);
- if (v1 === void 0) val.delete(v0);
- else if (v1 !== v0) {
- val.delete(v0);
- val.add(v1);
- }
- }
- } else {
- for (const [k, v0] of Object.entries(val)) {
- const v1 = applyReviver(reviver, val, k, v0);
- if (v1 === void 0) delete val[k];
- else if (v1 !== v0) val[k] = v1;
- }
- }
- }
- return reviver.call(obj, key, val);
- }
- var visit = (node, tags) => {
- if (node && typeof node === "object") {
- const {
- tag
- } = node;
- if (node instanceof stringifyNumber.Collection) {
- if (tag) tags[tag] = true;
- node.items.forEach((n) => visit(n, tags));
- } else if (node instanceof stringifyNumber.Pair) {
- visit(node.key, tags);
- visit(node.value, tags);
- } else if (node instanceof stringifyNumber.Scalar) {
- if (tag) tags[tag] = true;
- }
- }
- return tags;
- };
- var listTagNames = (node) => Object.keys(visit(node, {}));
- function resolveTagHandle(doc, node) {
- const {
- handle,
- suffix
- } = node.tag;
- let prefix = doc.tagPrefixes.find((p) => p.handle === handle);
- if (!prefix) {
- const dtp = doc.getDefaults().tagPrefixes;
- if (dtp) prefix = dtp.find((p) => p.handle === handle);
- if (!prefix) throw new _rollupPluginBabelHelpers.YAMLSemanticError(node, `The ${handle} tag handle is non-default and was not declared.`);
- }
- if (!suffix) throw new _rollupPluginBabelHelpers.YAMLSemanticError(node, `The ${handle} tag has no suffix.`);
- if (handle === "!" && (doc.version || doc.options.version) === "1.0") {
- if (suffix[0] === "^") {
- doc.warnings.push(new _rollupPluginBabelHelpers.YAMLWarning(node, "YAML 1.0 ^ tag expansion is not supported"));
- return suffix;
- }
- if (/[:/]/.test(suffix)) {
- const vocab = suffix.match(/^([a-z0-9-]+)\/(.*)/i);
- return vocab ? `tag:${vocab[1]}.yaml.org,2002:${vocab[2]}` : `tag:${suffix}`;
- }
- }
- return prefix.prefix + decodeURIComponent(suffix);
- }
- function resolveTagName(doc, node) {
- const {
- tag,
- type
- } = node;
- let nonSpecific = false;
- if (tag) {
- const {
- handle,
- suffix,
- verbatim
- } = tag;
- if (verbatim) {
- if (verbatim !== "!" && verbatim !== "!!") return verbatim;
- const msg = `Verbatim tags aren't resolved, so ${verbatim} is invalid.`;
- doc.errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(node, msg));
- } else if (handle === "!" && !suffix) {
- nonSpecific = true;
- } else {
- try {
- return resolveTagHandle(doc, node);
- } catch (error) {
- doc.errors.push(error);
- }
- }
- }
- switch (type) {
- case _rollupPluginBabelHelpers.Type.BLOCK_FOLDED:
- case _rollupPluginBabelHelpers.Type.BLOCK_LITERAL:
- case _rollupPluginBabelHelpers.Type.QUOTE_DOUBLE:
- case _rollupPluginBabelHelpers.Type.QUOTE_SINGLE:
- return _rollupPluginBabelHelpers.defaultTags.STR;
- case _rollupPluginBabelHelpers.Type.FLOW_MAP:
- case _rollupPluginBabelHelpers.Type.MAP:
- return _rollupPluginBabelHelpers.defaultTags.MAP;
- case _rollupPluginBabelHelpers.Type.FLOW_SEQ:
- case _rollupPluginBabelHelpers.Type.SEQ:
- return _rollupPluginBabelHelpers.defaultTags.SEQ;
- case _rollupPluginBabelHelpers.Type.PLAIN:
- return nonSpecific ? _rollupPluginBabelHelpers.defaultTags.STR : null;
- default:
- return null;
- }
- }
- function checkFlowCollectionEnd(errors, cst) {
- let char, name;
- switch (cst.type) {
- case _rollupPluginBabelHelpers.Type.FLOW_MAP:
- char = "}";
- name = "flow map";
- break;
- case _rollupPluginBabelHelpers.Type.FLOW_SEQ:
- char = "]";
- name = "flow sequence";
- break;
- default:
- errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(cst, "Not a flow collection!?"));
- return;
- }
- let lastItem;
- for (let i = cst.items.length - 1; i >= 0; --i) {
- const item = cst.items[i];
- if (!item || item.type !== _rollupPluginBabelHelpers.Type.COMMENT) {
- lastItem = item;
- break;
- }
- }
- if (lastItem && lastItem.char !== char) {
- const msg = `Expected ${name} to end with ${char}`;
- let err;
- if (typeof lastItem.offset === "number") {
- err = new _rollupPluginBabelHelpers.YAMLSemanticError(cst, msg);
- err.offset = lastItem.offset + 1;
- } else {
- err = new _rollupPluginBabelHelpers.YAMLSemanticError(lastItem, msg);
- if (lastItem.range && lastItem.range.end) err.offset = lastItem.range.end - lastItem.range.start;
- }
- errors.push(err);
- }
- }
- function checkFlowCommentSpace(errors, comment) {
- const prev = comment.context.src[comment.range.start - 1];
- if (prev !== "\n" && prev !== " " && prev !== " ") {
- const msg = "Comments must be separated from other tokens by white space characters";
- errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(comment, msg));
- }
- }
- function getLongKeyError(source, key) {
- const sk = String(key);
- const k = sk.substr(0, 8) + "..." + sk.substr(-8);
- return new _rollupPluginBabelHelpers.YAMLSemanticError(source, `The "${k}" key is too long`);
- }
- function resolveComments(collection, comments) {
- for (const {
- afterKey,
- before,
- comment
- } of comments) {
- let item = collection.items[before];
- if (!item) {
- if (comment !== void 0) {
- if (collection.comment) collection.comment += "\n" + comment;
- else collection.comment = comment;
- }
- } else {
- if (afterKey && item.value) item = item.value;
- if (comment === void 0) {
- if (afterKey || !item.commentBefore) item.spaceBefore = true;
- } else {
- if (item.commentBefore) item.commentBefore += "\n" + comment;
- else item.commentBefore = comment;
- }
- }
- }
- }
- function resolveMap(doc, cst) {
- const {
- comments,
- items
- } = cst.type === _rollupPluginBabelHelpers.Type.FLOW_MAP ? resolveFlowMapItems(doc, cst) : resolveBlockMapItems(doc, cst);
- const map = new stringifyNumber.YAMLMap(doc.schema);
- map.items = items;
- resolveComments(map, comments);
- let hasCollectionKey = false;
- for (let i = 0; i < items.length; ++i) {
- const {
- key: iKey
- } = items[i];
- if (iKey instanceof stringifyNumber.Collection) hasCollectionKey = true;
- if (doc.schema.merge && iKey && iKey.value === Schema.MERGE_KEY) {
- items[i] = new Schema.Merge(items[i]);
- const sources = items[i].value.items;
- let error = null;
- sources.some((node) => {
- if (node instanceof stringifyNumber.Alias) {
- const {
- type
- } = node.source;
- if (type === _rollupPluginBabelHelpers.Type.MAP || type === _rollupPluginBabelHelpers.Type.FLOW_MAP) return false;
- return error = "Merge nodes aliases can only point to maps";
- }
- return error = "Merge nodes can only have Alias nodes as values";
- });
- if (error) doc.errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(cst, error));
- } else {
- for (let j = i + 1; j < items.length; ++j) {
- const {
- key: jKey
- } = items[j];
- if (iKey === jKey || iKey && jKey && Object.prototype.hasOwnProperty.call(iKey, "value") && iKey.value === jKey.value) {
- const msg = `Map keys must be unique; "${iKey}" is repeated`;
- doc.errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(cst, msg));
- break;
- }
- }
- }
- }
- if (hasCollectionKey && !doc.options.mapAsMap) {
- const warn = "Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.";
- doc.warnings.push(new _rollupPluginBabelHelpers.YAMLWarning(cst, warn));
- }
- cst.resolved = map;
- return map;
- }
- var valueHasPairComment = ({
- context: {
- lineStart,
- node,
- src
- },
- props
- }) => {
- if (props.length === 0) return false;
- const {
- start
- } = props[0];
- if (node && start > node.valueRange.start) return false;
- if (src[start] !== _rollupPluginBabelHelpers.Char.COMMENT) return false;
- for (let i = lineStart; i < start; ++i) if (src[i] === "\n") return false;
- return true;
- };
- function resolvePairComment(item, pair) {
- if (!valueHasPairComment(item)) return;
- const comment = item.getPropValue(0, _rollupPluginBabelHelpers.Char.COMMENT, true);
- let found = false;
- const cb = pair.value.commentBefore;
- if (cb && cb.startsWith(comment)) {
- pair.value.commentBefore = cb.substr(comment.length + 1);
- found = true;
- } else {
- const cc = pair.value.comment;
- if (!item.node && cc && cc.startsWith(comment)) {
- pair.value.comment = cc.substr(comment.length + 1);
- found = true;
- }
- }
- if (found) pair.comment = comment;
- }
- function resolveBlockMapItems(doc, cst) {
- const comments = [];
- const items = [];
- let key = void 0;
- let keyStart = null;
- for (let i = 0; i < cst.items.length; ++i) {
- const item = cst.items[i];
- switch (item.type) {
- case _rollupPluginBabelHelpers.Type.BLANK_LINE:
- comments.push({
- afterKey: !!key,
- before: items.length
- });
- break;
- case _rollupPluginBabelHelpers.Type.COMMENT:
- comments.push({
- afterKey: !!key,
- before: items.length,
- comment: item.comment
- });
- break;
- case _rollupPluginBabelHelpers.Type.MAP_KEY:
- if (key !== void 0) items.push(new stringifyNumber.Pair(key));
- if (item.error) doc.errors.push(item.error);
- key = resolveNode(doc, item.node);
- keyStart = null;
- break;
- case _rollupPluginBabelHelpers.Type.MAP_VALUE:
- {
- if (key === void 0) key = null;
- if (item.error) doc.errors.push(item.error);
- if (!item.context.atLineStart && item.node && item.node.type === _rollupPluginBabelHelpers.Type.MAP && !item.node.context.atLineStart) {
- const msg = "Nested mappings are not allowed in compact mappings";
- doc.errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(item.node, msg));
- }
- let valueNode = item.node;
- if (!valueNode && item.props.length > 0) {
- valueNode = new parseCst.PlainValue(_rollupPluginBabelHelpers.Type.PLAIN, []);
- valueNode.context = {
- parent: item,
- src: item.context.src
- };
- const pos = item.range.start + 1;
- valueNode.range = {
- start: pos,
- end: pos
- };
- valueNode.valueRange = {
- start: pos,
- end: pos
- };
- if (typeof item.range.origStart === "number") {
- const origPos = item.range.origStart + 1;
- valueNode.range.origStart = valueNode.range.origEnd = origPos;
- valueNode.valueRange.origStart = valueNode.valueRange.origEnd = origPos;
- }
- }
- const pair = new stringifyNumber.Pair(key, resolveNode(doc, valueNode));
- resolvePairComment(item, pair);
- items.push(pair);
- if (key && typeof keyStart === "number") {
- if (item.range.start > keyStart + 1024) doc.errors.push(getLongKeyError(cst, key));
- }
- key = void 0;
- keyStart = null;
- }
- break;
- default:
- if (key !== void 0) items.push(new stringifyNumber.Pair(key));
- key = resolveNode(doc, item);
- keyStart = item.range.start;
- if (item.error) doc.errors.push(item.error);
- next: for (let j = i + 1; ; ++j) {
- const nextItem = cst.items[j];
- switch (nextItem && nextItem.type) {
- case _rollupPluginBabelHelpers.Type.BLANK_LINE:
- case _rollupPluginBabelHelpers.Type.COMMENT:
- continue next;
- case _rollupPluginBabelHelpers.Type.MAP_VALUE:
- break next;
- default: {
- const msg = "Implicit map keys need to be followed by map values";
- doc.errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(item, msg));
- break next;
- }
- }
- }
- if (item.valueRangeContainsNewline) {
- const msg = "Implicit map keys need to be on a single line";
- doc.errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(item, msg));
- }
- }
- }
- if (key !== void 0) items.push(new stringifyNumber.Pair(key));
- return {
- comments,
- items
- };
- }
- function resolveFlowMapItems(doc, cst) {
- const comments = [];
- const items = [];
- let key = void 0;
- let explicitKey = false;
- let next = "{";
- for (let i = 0; i < cst.items.length; ++i) {
- const item = cst.items[i];
- if (typeof item.char === "string") {
- const {
- char,
- offset
- } = item;
- if (char === "?" && key === void 0 && !explicitKey) {
- explicitKey = true;
- next = ":";
- continue;
- }
- if (char === ":") {
- if (key === void 0) key = null;
- if (next === ":") {
- next = ",";
- continue;
- }
- } else {
- if (explicitKey) {
- if (key === void 0 && char !== ",") key = null;
- explicitKey = false;
- }
- if (key !== void 0) {
- items.push(new stringifyNumber.Pair(key));
- key = void 0;
- if (char === ",") {
- next = ":";
- continue;
- }
- }
- }
- if (char === "}") {
- if (i === cst.items.length - 1) continue;
- } else if (char === next) {
- next = ":";
- continue;
- }
- const msg = `Flow map contains an unexpected ${char}`;
- const err = new _rollupPluginBabelHelpers.YAMLSyntaxError(cst, msg);
- err.offset = offset;
- doc.errors.push(err);
- } else if (item.type === _rollupPluginBabelHelpers.Type.BLANK_LINE) {
- comments.push({
- afterKey: !!key,
- before: items.length
- });
- } else if (item.type === _rollupPluginBabelHelpers.Type.COMMENT) {
- checkFlowCommentSpace(doc.errors, item);
- comments.push({
- afterKey: !!key,
- before: items.length,
- comment: item.comment
- });
- } else if (key === void 0) {
- if (next === ",") doc.errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(item, "Separator , missing in flow map"));
- key = resolveNode(doc, item);
- } else {
- if (next !== ",") doc.errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(item, "Indicator : missing in flow map entry"));
- items.push(new stringifyNumber.Pair(key, resolveNode(doc, item)));
- key = void 0;
- explicitKey = false;
- }
- }
- checkFlowCollectionEnd(doc.errors, cst);
- if (key !== void 0) items.push(new stringifyNumber.Pair(key));
- return {
- comments,
- items
- };
- }
- function resolveSeq(doc, cst) {
- const {
- comments,
- items
- } = cst.type === _rollupPluginBabelHelpers.Type.FLOW_SEQ ? resolveFlowSeqItems(doc, cst) : resolveBlockSeqItems(doc, cst);
- const seq = new stringifyNumber.YAMLSeq(doc.schema);
- seq.items = items;
- resolveComments(seq, comments);
- if (!doc.options.mapAsMap && items.some((it) => it instanceof stringifyNumber.Pair && it.key instanceof stringifyNumber.Collection)) {
- const warn = "Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.";
- doc.warnings.push(new _rollupPluginBabelHelpers.YAMLWarning(cst, warn));
- }
- cst.resolved = seq;
- return seq;
- }
- function resolveBlockSeqItems(doc, cst) {
- const comments = [];
- const items = [];
- for (let i = 0; i < cst.items.length; ++i) {
- const item = cst.items[i];
- switch (item.type) {
- case _rollupPluginBabelHelpers.Type.BLANK_LINE:
- comments.push({
- before: items.length
- });
- break;
- case _rollupPluginBabelHelpers.Type.COMMENT:
- comments.push({
- comment: item.comment,
- before: items.length
- });
- break;
- case _rollupPluginBabelHelpers.Type.SEQ_ITEM:
- if (item.error) doc.errors.push(item.error);
- items.push(resolveNode(doc, item.node));
- if (item.hasProps) {
- const msg = "Sequence items cannot have tags or anchors before the - indicator";
- doc.errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(item, msg));
- }
- break;
- default:
- if (item.error) doc.errors.push(item.error);
- doc.errors.push(new _rollupPluginBabelHelpers.YAMLSyntaxError(item, `Unexpected ${item.type} node in sequence`));
- }
- }
- return {
- comments,
- items
- };
- }
- function resolveFlowSeqItems(doc, cst) {
- const comments = [];
- const items = [];
- let explicitKey = false;
- let key = void 0;
- let keyStart = null;
- let next = "[";
- let prevItem = null;
- for (let i = 0; i < cst.items.length; ++i) {
- const item = cst.items[i];
- if (typeof item.char === "string") {
- const {
- char,
- offset
- } = item;
- if (char !== ":" && (explicitKey || key !== void 0)) {
- if (explicitKey && key === void 0) key = next ? items.pop() : null;
- items.push(new stringifyNumber.Pair(key));
- explicitKey = false;
- key = void 0;
- keyStart = null;
- }
- if (char === next) {
- next = null;
- } else if (!next && char === "?") {
- explicitKey = true;
- } else if (next !== "[" && char === ":" && key === void 0) {
- if (next === ",") {
- key = items.pop();
- if (key instanceof stringifyNumber.Pair) {
- const msg = "Chaining flow sequence pairs is invalid";
- const err = new _rollupPluginBabelHelpers.YAMLSemanticError(cst, msg);
- err.offset = offset;
- doc.errors.push(err);
- }
- if (!explicitKey && typeof keyStart === "number") {
- const keyEnd = item.range ? item.range.start : item.offset;
- if (keyEnd > keyStart + 1024) doc.errors.push(getLongKeyError(cst, key));
- const {
- src
- } = prevItem.context;
- for (let i2 = keyStart; i2 < keyEnd; ++i2) if (src[i2] === "\n") {
- const msg = "Implicit keys of flow sequence pairs need to be on a single line";
- doc.errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(prevItem, msg));
- break;
- }
- }
- } else {
- key = null;
- }
- keyStart = null;
- explicitKey = false;
- next = null;
- } else if (next === "[" || char !== "]" || i < cst.items.length - 1) {
- const msg = `Flow sequence contains an unexpected ${char}`;
- const err = new _rollupPluginBabelHelpers.YAMLSyntaxError(cst, msg);
- err.offset = offset;
- doc.errors.push(err);
- }
- } else if (item.type === _rollupPluginBabelHelpers.Type.BLANK_LINE) {
- comments.push({
- before: items.length
- });
- } else if (item.type === _rollupPluginBabelHelpers.Type.COMMENT) {
- checkFlowCommentSpace(doc.errors, item);
- comments.push({
- comment: item.comment,
- before: items.length
- });
- } else {
- if (next) {
- const msg = `Expected a ${next} in flow sequence`;
- doc.errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(item, msg));
- }
- const value = resolveNode(doc, item);
- if (key === void 0) {
- items.push(value);
- prevItem = item;
- } else {
- items.push(new stringifyNumber.Pair(key, value));
- key = void 0;
- }
- keyStart = item.range.start;
- next = ",";
- }
- }
- checkFlowCollectionEnd(doc.errors, cst);
- if (key !== void 0) items.push(new stringifyNumber.Pair(key));
- return {
- comments,
- items
- };
- }
- function resolveByTagName({
- knownTags,
- tags
- }, tagName, value, onError) {
- const matchWithTest = [];
- for (const tag of tags) {
- if (tag.tag === tagName) {
- if (tag.test) {
- if (typeof value === "string") matchWithTest.push(tag);
- else onError(`The tag ${tagName} cannot be applied to a collection`);
- } else {
- const res = tag.resolve(value, onError);
- return res instanceof stringifyNumber.Collection ? res : new stringifyNumber.Scalar(res);
- }
- }
- }
- if (matchWithTest.length > 0) return stringifyNumber.resolveScalar(value, matchWithTest);
- const kt = knownTags[tagName];
- if (kt) {
- tags.push(Object.assign({}, kt, {
- default: false,
- test: void 0
- }));
- const res = kt.resolve(value, onError);
- return res instanceof stringifyNumber.Collection ? res : new stringifyNumber.Scalar(res);
- }
- return null;
- }
- function resolveTag(doc, node, tagName) {
- const {
- MAP,
- SEQ,
- STR
- } = _rollupPluginBabelHelpers.defaultTags;
- let value, fallback;
- const onError = (message) => doc.errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(node, message));
- try {
- switch (node.type) {
- case _rollupPluginBabelHelpers.Type.FLOW_MAP:
- case _rollupPluginBabelHelpers.Type.MAP:
- value = resolveMap(doc, node);
- fallback = MAP;
- if (tagName === SEQ || tagName === STR) onError(`The tag ${tagName} cannot be applied to a mapping`);
- break;
- case _rollupPluginBabelHelpers.Type.FLOW_SEQ:
- case _rollupPluginBabelHelpers.Type.SEQ:
- value = resolveSeq(doc, node);
- fallback = SEQ;
- if (tagName === MAP || tagName === STR) onError(`The tag ${tagName} cannot be applied to a sequence`);
- break;
- default:
- value = node.strValue || "";
- if (typeof value !== "string") {
- value.errors.forEach((error) => doc.errors.push(error));
- value = value.str;
- }
- if (tagName === MAP || tagName === SEQ) onError(`The tag ${tagName} cannot be applied to a scalar`);
- fallback = STR;
- }
- const res = resolveByTagName(doc.schema, tagName, value, onError);
- if (res) {
- if (tagName && node.tag) res.tag = tagName;
- return res;
- }
- } catch (error) {
- if (!error.source) error.source = node;
- doc.errors.push(error);
- return null;
- }
- try {
- if (!fallback) throw new Error(`The tag ${tagName} is unavailable`);
- const msg = `The tag ${tagName} is unavailable, falling back to ${fallback}`;
- doc.warnings.push(new _rollupPluginBabelHelpers.YAMLWarning(node, msg));
- const res = resolveByTagName(doc.schema, fallback, value, onError);
- res.tag = tagName;
- return res;
- } catch (error) {
- const refError = new _rollupPluginBabelHelpers.YAMLReferenceError(node, error.message);
- refError.stack = error.stack;
- doc.errors.push(refError);
- return null;
- }
- }
- var isCollectionItem = (node) => {
- if (!node) return false;
- const {
- type
- } = node;
- return type === _rollupPluginBabelHelpers.Type.MAP_KEY || type === _rollupPluginBabelHelpers.Type.MAP_VALUE || type === _rollupPluginBabelHelpers.Type.SEQ_ITEM;
- };
- function resolveNodeProps(errors, node) {
- const comments = {
- before: [],
- after: []
- };
- let hasAnchor = false;
- let hasTag = false;
- const props = isCollectionItem(node.context.parent) ? node.context.parent.props.concat(node.props) : node.props;
- for (const {
- start,
- end
- } of props) {
- switch (node.context.src[start]) {
- case _rollupPluginBabelHelpers.Char.COMMENT: {
- if (!node.commentHasRequiredWhitespace(start)) {
- const msg = "Comments must be separated from other tokens by white space characters";
- errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(node, msg));
- }
- const {
- header,
- valueRange
- } = node;
- const cc = valueRange && (start > valueRange.start || header && start > header.start) ? comments.after : comments.before;
- cc.push(node.context.src.slice(start + 1, end));
- break;
- }
- // Actual anchor & tag resolution is handled by schema, here we just complain
- case _rollupPluginBabelHelpers.Char.ANCHOR:
- if (hasAnchor) {
- const msg = "A node can have at most one anchor";
- errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(node, msg));
- }
- hasAnchor = true;
- break;
- case _rollupPluginBabelHelpers.Char.TAG:
- if (hasTag) {
- const msg = "A node can have at most one tag";
- errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(node, msg));
- }
- hasTag = true;
- break;
- }
- }
- return {
- comments,
- hasAnchor,
- hasTag
- };
- }
- function resolveNodeValue(doc, node) {
- const {
- anchors,
- errors,
- schema
- } = doc;
- if (node.type === _rollupPluginBabelHelpers.Type.ALIAS) {
- const name = node.rawValue;
- const src = anchors.getNode(name);
- if (!src) {
- const msg = `Aliased anchor not found: ${name}`;
- errors.push(new _rollupPluginBabelHelpers.YAMLReferenceError(node, msg));
- return null;
- }
- const res = new stringifyNumber.Alias(src);
- anchors._cstAliases.push(res);
- return res;
- }
- const tagName = resolveTagName(doc, node);
- if (tagName) return resolveTag(doc, node, tagName);
- if (node.type !== _rollupPluginBabelHelpers.Type.PLAIN) {
- const msg = `Failed to resolve ${node.type} node here`;
- errors.push(new _rollupPluginBabelHelpers.YAMLSyntaxError(node, msg));
- return null;
- }
- try {
- let str = node.strValue || "";
- if (typeof str !== "string") {
- str.errors.forEach((error) => doc.errors.push(error));
- str = str.str;
- }
- return stringifyNumber.resolveScalar(str, schema.tags);
- } catch (error) {
- if (!error.source) error.source = node;
- errors.push(error);
- return null;
- }
- }
- function resolveNode(doc, node) {
- if (!node) return null;
- if (node.error) doc.errors.push(node.error);
- const {
- comments,
- hasAnchor,
- hasTag
- } = resolveNodeProps(doc.errors, node);
- if (hasAnchor) {
- const {
- anchors
- } = doc;
- const name = node.anchor;
- const prev = anchors.getNode(name);
- if (prev) anchors.map[anchors.newName(name)] = prev;
- anchors.map[name] = node;
- }
- if (node.type === _rollupPluginBabelHelpers.Type.ALIAS && (hasAnchor || hasTag)) {
- const msg = "An alias node must not specify any properties";
- doc.errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(node, msg));
- }
- const res = resolveNodeValue(doc, node);
- if (res) {
- res.range = [node.range.start, node.range.end];
- if (doc.options.keepCstNodes) res.cstNode = node;
- if (doc.options.keepNodeTypes) res.type = node.type;
- const cb = comments.before.join("\n");
- if (cb) {
- res.commentBefore = res.commentBefore ? `${res.commentBefore}
- ${cb}` : cb;
- }
- const ca = comments.after.join("\n");
- if (ca) res.comment = res.comment ? `${res.comment}
- ${ca}` : ca;
- }
- return node.resolved = res;
- }
- function parseContents(doc, contents) {
- const comments = {
- before: [],
- after: []
- };
- let body = void 0;
- let spaceBefore = false;
- for (const node of contents) {
- if (node.valueRange) {
- if (body !== void 0) {
- const msg = "Document contains trailing content not separated by a ... or --- line";
- doc.errors.push(new _rollupPluginBabelHelpers.YAMLSyntaxError(node, msg));
- break;
- }
- const res = resolveNode(doc, node);
- if (spaceBefore) {
- res.spaceBefore = true;
- spaceBefore = false;
- }
- body = res;
- } else if (node.comment !== null) {
- const cc = body === void 0 ? comments.before : comments.after;
- cc.push(node.comment);
- } else if (node.type === _rollupPluginBabelHelpers.Type.BLANK_LINE) {
- spaceBefore = true;
- if (body === void 0 && comments.before.length > 0 && !doc.commentBefore) {
- doc.commentBefore = comments.before.join("\n");
- comments.before = [];
- }
- }
- }
- doc.contents = body || null;
- if (!body) {
- doc.comment = comments.before.concat(comments.after).join("\n") || null;
- } else {
- const cb = comments.before.join("\n");
- if (cb) {
- const cbNode = body instanceof stringifyNumber.Collection && body.items[0] ? body.items[0] : body;
- cbNode.commentBefore = cbNode.commentBefore ? `${cb}
- ${cbNode.commentBefore}` : cb;
- }
- doc.comment = comments.after.join("\n") || null;
- }
- }
- function resolveTagDirective({
- tagPrefixes
- }, directive) {
- const [handle, prefix] = directive.parameters;
- if (!handle || !prefix) {
- const msg = "Insufficient parameters given for %TAG directive";
- throw new _rollupPluginBabelHelpers.YAMLSemanticError(directive, msg);
- }
- if (tagPrefixes.some((p) => p.handle === handle)) {
- const msg = "The %TAG directive must only be given at most once per handle in the same document.";
- throw new _rollupPluginBabelHelpers.YAMLSemanticError(directive, msg);
- }
- return {
- handle,
- prefix
- };
- }
- function resolveYamlDirective(doc, directive) {
- let [version] = directive.parameters;
- if (directive.name === "YAML:1.0") version = "1.0";
- if (!version) {
- const msg = "Insufficient parameters given for %YAML directive";
- throw new _rollupPluginBabelHelpers.YAMLSemanticError(directive, msg);
- }
- if (!documentOptions[version]) {
- const v0 = doc.version || doc.options.version;
- const msg = `Document will be parsed as YAML ${v0} rather than YAML ${version}`;
- doc.warnings.push(new _rollupPluginBabelHelpers.YAMLWarning(directive, msg));
- }
- return version;
- }
- function parseDirectives(doc, directives, prevDoc) {
- const directiveComments = [];
- let hasDirectives = false;
- for (const directive of directives) {
- const {
- comment,
- name
- } = directive;
- switch (name) {
- case "TAG":
- try {
- doc.tagPrefixes.push(resolveTagDirective(doc, directive));
- } catch (error) {
- doc.errors.push(error);
- }
- hasDirectives = true;
- break;
- case "YAML":
- case "YAML:1.0":
- if (doc.version) {
- const msg = "The %YAML directive must only be given at most once per document.";
- doc.errors.push(new _rollupPluginBabelHelpers.YAMLSemanticError(directive, msg));
- }
- try {
- doc.version = resolveYamlDirective(doc, directive);
- } catch (error) {
- doc.errors.push(error);
- }
- hasDirectives = true;
- break;
- default:
- if (name) {
- const msg = `YAML only supports %TAG and %YAML directives, and not %${name}`;
- doc.warnings.push(new _rollupPluginBabelHelpers.YAMLWarning(directive, msg));
- }
- }
- if (comment) directiveComments.push(comment);
- }
- if (prevDoc && !hasDirectives && "1.1" === (doc.version || prevDoc.version || doc.options.version)) {
- const copyTagPrefix = ({
- handle,
- prefix
- }) => ({
- handle,
- prefix
- });
- doc.tagPrefixes = prevDoc.tagPrefixes.map(copyTagPrefix);
- doc.version = prevDoc.version;
- }
- doc.commentBefore = directiveComments.join("\n") || null;
- }
- function assertCollection(contents) {
- if (contents instanceof stringifyNumber.Collection) return true;
- throw new Error("Expected a YAML collection as document contents");
- }
- var Document = class _Document {
- constructor(value, replacer, options) {
- if (options === void 0 && replacer && typeof replacer === "object" && !Array.isArray(replacer)) {
- options = replacer;
- replacer = void 0;
- }
- this.options = Object.assign({}, defaultOptions, options);
- this.anchors = new Anchors(this.options.anchorPrefix);
- this.commentBefore = null;
- this.comment = null;
- this.directivesEndMarker = null;
- this.errors = [];
- this.schema = null;
- this.tagPrefixes = [];
- this.version = null;
- this.warnings = [];
- if (value === void 0) {
- this.contents = null;
- } else if (value instanceof parseCst.Document) {
- this.parse(value);
- } else {
- this.contents = this.createNode(value, {
- replacer
- });
- }
- }
- add(value) {
- assertCollection(this.contents);
- return this.contents.add(value);
- }
- addIn(path2, value) {
- assertCollection(this.contents);
- this.contents.addIn(path2, value);
- }
- createNode(value, {
- keepUndefined,
- onTagObj,
- replacer,
- tag,
- wrapScalars
- } = {}) {
- this.setSchema();
- if (typeof replacer === "function") value = replacer.call({
- "": value
- }, "", value);
- else if (Array.isArray(replacer)) {
- const keyToStr = (v) => typeof v === "number" || v instanceof String || v instanceof Number;
- const asStr = replacer.filter(keyToStr).map(String);
- if (asStr.length > 0) replacer = replacer.concat(asStr);
- }
- if (typeof keepUndefined !== "boolean") keepUndefined = !!this.options.keepUndefined;
- const aliasNodes = [];
- const ctx = {
- keepUndefined,
- onAlias(source) {
- const alias = new stringifyNumber.Alias(source);
- aliasNodes.push(alias);
- return alias;
- },
- onTagObj,
- prevObjects: /* @__PURE__ */ new Map(),
- replacer,
- schema: this.schema,
- wrapScalars: wrapScalars !== false
- };
- const node = stringifyNumber.createNode(value, tag, ctx);
- for (const alias of aliasNodes) {
- alias.source = alias.source.node;
- let name = this.anchors.getName(alias.source);
- if (!name) {
- name = this.anchors.newName();
- this.anchors.map[name] = alias.source;
- }
- }
- return node;
- }
- createPair(key, value, options = {}) {
- const k = this.createNode(key, options);
- const v = this.createNode(value, options);
- return new stringifyNumber.Pair(k, v);
- }
- delete(key) {
- assertCollection(this.contents);
- return this.contents.delete(key);
- }
- deleteIn(path2) {
- if (stringifyNumber.isEmptyPath(path2)) {
- if (this.contents == null) return false;
- this.contents = null;
- return true;
- }
- assertCollection(this.contents);
- return this.contents.deleteIn(path2);
- }
- getDefaults() {
- return _Document.defaults[this.version] || _Document.defaults[this.options.version] || {};
- }
- get(key, keepScalar) {
- return this.contents instanceof stringifyNumber.Collection ? this.contents.get(key, keepScalar) : void 0;
- }
- getIn(path2, keepScalar) {
- if (stringifyNumber.isEmptyPath(path2)) return !keepScalar && this.contents instanceof stringifyNumber.Scalar ? this.contents.value : this.contents;
- return this.contents instanceof stringifyNumber.Collection ? this.contents.getIn(path2, keepScalar) : void 0;
- }
- has(key) {
- return this.contents instanceof stringifyNumber.Collection ? this.contents.has(key) : false;
- }
- hasIn(path2) {
- if (stringifyNumber.isEmptyPath(path2)) return this.contents !== void 0;
- return this.contents instanceof stringifyNumber.Collection ? this.contents.hasIn(path2) : false;
- }
- set(key, value) {
- if (this.contents == null) {
- this.setSchema();
- this.contents = stringifyNumber.collectionFromPath(this.schema, [key], value);
- } else {
- assertCollection(this.contents);
- this.contents.set(key, value);
- }
- }
- setIn(path2, value) {
- if (stringifyNumber.isEmptyPath(path2)) this.contents = value;
- else if (this.contents == null) {
- this.setSchema();
- this.contents = stringifyNumber.collectionFromPath(this.schema, path2, value);
- } else {
- assertCollection(this.contents);
- this.contents.setIn(path2, value);
- }
- }
- setSchema(id, customTags) {
- if (!id && !customTags && this.schema) return;
- if (typeof id === "number") id = id.toFixed(1);
- if (id === "1.0" || id === "1.1" || id === "1.2") {
- if (this.version) this.version = id;
- else this.options.version = id;
- delete this.options.schema;
- } else if (id && typeof id === "string") {
- this.options.schema = id;
- }
- if (Array.isArray(customTags)) this.options.customTags = customTags;
- const opt = Object.assign({}, this.getDefaults(), this.options);
- this.schema = new Schema.Schema(opt);
- }
- parse(node, prevDoc) {
- if (this.options.keepCstNodes) this.cstNode = node;
- if (this.options.keepNodeTypes) this.type = "DOCUMENT";
- const {
- directives = [],
- contents = [],
- directivesEndMarker,
- error,
- valueRange
- } = node;
- if (error) {
- if (!error.source) error.source = this;
- this.errors.push(error);
- }
- parseDirectives(this, directives, prevDoc);
- if (directivesEndMarker) this.directivesEndMarker = true;
- this.range = valueRange ? [valueRange.start, valueRange.end] : null;
- this.setSchema();
- this.anchors._cstAliases = [];
- parseContents(this, contents);
- this.anchors.resolveNodes();
- if (this.options.prettyErrors) {
- for (const error2 of this.errors) if (error2 instanceof _rollupPluginBabelHelpers.YAMLError) error2.makePretty();
- for (const warn of this.warnings) if (warn instanceof _rollupPluginBabelHelpers.YAMLError) warn.makePretty();
- }
- return this;
- }
- listNonDefaultTags() {
- return listTagNames(this.contents).filter((t) => t.indexOf(_rollupPluginBabelHelpers.defaultTagPrefix) !== 0);
- }
- setTagPrefix(handle, prefix) {
- if (handle[0] !== "!" || handle[handle.length - 1] !== "!") throw new Error("Handle must start and end with !");
- if (prefix) {
- const prev = this.tagPrefixes.find((p) => p.handle === handle);
- if (prev) prev.prefix = prefix;
- else this.tagPrefixes.push({
- handle,
- prefix
- });
- } else {
- this.tagPrefixes = this.tagPrefixes.filter((p) => p.handle !== handle);
- }
- }
- toJS({
- json,
- jsonArg,
- mapAsMap,
- onAnchor,
- reviver
- } = {}) {
- const anchorNodes = Object.values(this.anchors.map).map((node) => [node, {
- alias: [],
- aliasCount: 0,
- count: 1
- }]);
- const anchors = anchorNodes.length > 0 ? new Map(anchorNodes) : null;
- const ctx = {
- anchors,
- doc: this,
- indentStep: " ",
- keep: !json,
- mapAsMap: typeof mapAsMap === "boolean" ? mapAsMap : !!this.options.mapAsMap,
- maxAliasCount: this.options.maxAliasCount,
- stringify
- // Requiring directly in Pair would create circular dependencies
- };
- const res = stringifyNumber.toJS(this.contents, jsonArg || "", ctx);
- if (typeof onAnchor === "function" && anchors) for (const {
- count,
- res: res2
- } of anchors.values()) onAnchor(res2, count);
- return typeof reviver === "function" ? applyReviver(reviver, {
- "": res
- }, "", res) : res;
- }
- toJSON(jsonArg, onAnchor) {
- return this.toJS({
- json: true,
- jsonArg,
- mapAsMap: false,
- onAnchor
- });
- }
- toString() {
- if (this.errors.length > 0) throw new Error("Document with errors cannot be stringified");
- const indentSize = this.options.indent;
- if (!Number.isInteger(indentSize) || indentSize <= 0) {
- const s = JSON.stringify(indentSize);
- throw new Error(`"indent" option must be a positive integer, not ${s}`);
- }
- this.setSchema();
- const lines = [];
- let hasDirectives = false;
- if (this.version) {
- let vd = "%YAML 1.2";
- if (this.schema.name === "yaml-1.1") {
- if (this.version === "1.0") vd = "%YAML:1.0";
- else if (this.version === "1.1") vd = "%YAML 1.1";
- }
- lines.push(vd);
- hasDirectives = true;
- }
- const tagNames = this.listNonDefaultTags();
- this.tagPrefixes.forEach(({
- handle,
- prefix
- }) => {
- if (tagNames.some((t) => t.indexOf(prefix) === 0)) {
- lines.push(`%TAG ${handle} ${prefix}`);
- hasDirectives = true;
- }
- });
- if (hasDirectives || this.directivesEndMarker) lines.push("---");
- if (this.commentBefore) {
- if (hasDirectives || !this.directivesEndMarker) lines.unshift("");
- lines.unshift(this.commentBefore.replace(/^/gm, "#"));
- }
- const ctx = {
- anchors: /* @__PURE__ */ Object.create(null),
- doc: this,
- indent: "",
- indentStep: " ".repeat(indentSize),
- stringify
- // Requiring directly in nodes would create circular dependencies
- };
- let chompKeep = false;
- let contentComment = null;
- if (this.contents) {
- if (this.contents instanceof stringifyNumber.Node) {
- if (this.contents.spaceBefore && (hasDirectives || this.directivesEndMarker)) lines.push("");
- if (this.contents.commentBefore) lines.push(this.contents.commentBefore.replace(/^/gm, "#"));
- ctx.forceBlockIndent = !!this.comment;
- contentComment = this.contents.comment;
- }
- const onChompKeep = contentComment ? null : () => chompKeep = true;
- const body = stringify(this.contents, ctx, () => contentComment = null, onChompKeep);
- lines.push(stringifyNumber.addComment(body, "", contentComment));
- } else {
- lines.push(stringify(this.contents, ctx));
- }
- if (this.comment) {
- if ((!chompKeep || contentComment) && lines[lines.length - 1] !== "") lines.push("");
- lines.push(this.comment.replace(/^/gm, "#"));
- }
- return lines.join("\n") + "\n";
- }
- };
- _rollupPluginBabelHelpers._defineProperty(Document, "defaults", documentOptions);
- exports2.Document = Document;
- exports2.defaultOptions = defaultOptions;
- exports2.scalarOptions = scalarOptions;
- }
- });
- // node_modules/yaml/dist/index.js
- var require_dist2 = __commonJS({
- "node_modules/yaml/dist/index.js"(exports2) {
- "use strict";
- var _rollupPluginBabelHelpers = require_rollupPluginBabelHelpers_eed30217();
- var parseCst = require_parse_3997f544();
- require_stringifyNumber_dea1120c();
- require_Schema_807430ba();
- var Document = require_Document_f89a2614();
- function warn(warning, type) {
- if (typeof YAML_SILENCE_WARNINGS !== "undefined" && YAML_SILENCE_WARNINGS) return;
- if (typeof process !== "undefined") {
- if (process.env.YAML_SILENCE_WARNINGS) return;
- if (process.emitWarning) {
- process.emitWarning(warning, type);
- return;
- }
- }
- console.warn(type ? `${type}: ${warning}` : warning);
- }
- function parseAllDocuments(src, options) {
- const stream = [];
- let prev;
- for (const cstDoc of parseCst.parse(src)) {
- const doc = new Document.Document(void 0, null, options);
- doc.parse(cstDoc, prev);
- stream.push(doc);
- prev = doc;
- }
- return stream;
- }
- function parseDocument(src, options) {
- const cst = parseCst.parse(src);
- const doc = new Document.Document(cst[0], null, options);
- if (cst.length > 1) {
- const errMsg = "Source contains multiple documents; please use YAML.parseAllDocuments()";
- doc.errors.unshift(new _rollupPluginBabelHelpers.YAMLSemanticError(cst[1], errMsg));
- }
- return doc;
- }
- function parse(src, reviver, options) {
- if (options === void 0 && reviver && typeof reviver === "object") {
- options = reviver;
- reviver = void 0;
- }
- const doc = parseDocument(src, options);
- doc.warnings.forEach((warning) => warn(warning));
- if (doc.errors.length > 0) throw doc.errors[0];
- return doc.toJS({
- reviver
- });
- }
- function stringify(value, replacer, options) {
- if (typeof options === "string") options = options.length;
- if (typeof options === "number") {
- const indent = Math.round(options);
- options = indent < 1 ? void 0 : indent > 8 ? {
- indent: 8
- } : {
- indent
- };
- }
- if (value === void 0) {
- const {
- keepUndefined
- } = options || replacer || {};
- if (!keepUndefined) return void 0;
- }
- return new Document.Document(value, replacer, options).toString();
- }
- exports2.parseCST = parseCst.parse;
- exports2.Document = Document.Document;
- exports2.defaultOptions = Document.defaultOptions;
- exports2.scalarOptions = Document.scalarOptions;
- exports2.parse = parse;
- exports2.parseAllDocuments = parseAllDocuments;
- exports2.parseDocument = parseDocument;
- exports2.stringify = stringify;
- }
- });
- // node_modules/yaml/index.js
- var require_yaml2 = __commonJS({
- "node_modules/yaml/index.js"(exports2, module2) {
- module2.exports = require_dist2();
- }
- });
- // node_modules/fs.realpath/old.js
- var require_old = __commonJS({
- "node_modules/fs.realpath/old.js"(exports2) {
- var pathModule = require("path");
- var isWindows = process.platform === "win32";
- var fs4 = require("fs");
- var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG);
- function rethrow() {
- var callback;
- if (DEBUG) {
- var backtrace = new Error();
- callback = debugCallback;
- } else
- callback = missingCallback;
- return callback;
- function debugCallback(err) {
- if (err) {
- backtrace.message = err.message;
- err = backtrace;
- missingCallback(err);
- }
- }
- function missingCallback(err) {
- if (err) {
- if (process.throwDeprecation)
- throw err;
- else if (!process.noDeprecation) {
- var msg = "fs: missing callback " + (err.stack || err.message);
- if (process.traceDeprecation)
- console.trace(msg);
- else
- console.error(msg);
- }
- }
- }
- }
- function maybeCallback(cb) {
- return typeof cb === "function" ? cb : rethrow();
- }
- var normalize = pathModule.normalize;
- if (isWindows) {
- nextPartRe = /(.*?)(?:[\/\\]+|$)/g;
- } else {
- nextPartRe = /(.*?)(?:[\/]+|$)/g;
- }
- var nextPartRe;
- if (isWindows) {
- splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/;
- } else {
- splitRootRe = /^[\/]*/;
- }
- var splitRootRe;
- exports2.realpathSync = function realpathSync(p, cache) {
- p = pathModule.resolve(p);
- if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
- return cache[p];
- }
- var original = p, seenLinks = {}, knownHard = {};
- var pos;
- var current;
- var base;
- var previous;
- start();
- function start() {
- var m = splitRootRe.exec(p);
- pos = m[0].length;
- current = m[0];
- base = m[0];
- previous = "";
- if (isWindows && !knownHard[base]) {
- fs4.lstatSync(base);
- knownHard[base] = true;
- }
- }
- while (pos < p.length) {
- nextPartRe.lastIndex = pos;
- var result = nextPartRe.exec(p);
- previous = current;
- current += result[0];
- base = previous + result[1];
- pos = nextPartRe.lastIndex;
- if (knownHard[base] || cache && cache[base] === base) {
- continue;
- }
- var resolvedLink;
- if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
- resolvedLink = cache[base];
- } else {
- var stat = fs4.lstatSync(base);
- if (!stat.isSymbolicLink()) {
- knownHard[base] = true;
- if (cache) cache[base] = base;
- continue;
- }
- var linkTarget = null;
- if (!isWindows) {
- var id = stat.dev.toString(32) + ":" + stat.ino.toString(32);
- if (seenLinks.hasOwnProperty(id)) {
- linkTarget = seenLinks[id];
- }
- }
- if (linkTarget === null) {
- fs4.statSync(base);
- linkTarget = fs4.readlinkSync(base);
- }
- resolvedLink = pathModule.resolve(previous, linkTarget);
- if (cache) cache[base] = resolvedLink;
- if (!isWindows) seenLinks[id] = linkTarget;
- }
- p = pathModule.resolve(resolvedLink, p.slice(pos));
- start();
- }
- if (cache) cache[original] = p;
- return p;
- };
- exports2.realpath = function realpath(p, cache, cb) {
- if (typeof cb !== "function") {
- cb = maybeCallback(cache);
- cache = null;
- }
- p = pathModule.resolve(p);
- if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
- return process.nextTick(cb.bind(null, null, cache[p]));
- }
- var original = p, seenLinks = {}, knownHard = {};
- var pos;
- var current;
- var base;
- var previous;
- start();
- function start() {
- var m = splitRootRe.exec(p);
- pos = m[0].length;
- current = m[0];
- base = m[0];
- previous = "";
- if (isWindows && !knownHard[base]) {
- fs4.lstat(base, function(err) {
- if (err) return cb(err);
- knownHard[base] = true;
- LOOP();
- });
- } else {
- process.nextTick(LOOP);
- }
- }
- function LOOP() {
- if (pos >= p.length) {
- if (cache) cache[original] = p;
- return cb(null, p);
- }
- nextPartRe.lastIndex = pos;
- var result = nextPartRe.exec(p);
- previous = current;
- current += result[0];
- base = previous + result[1];
- pos = nextPartRe.lastIndex;
- if (knownHard[base] || cache && cache[base] === base) {
- return process.nextTick(LOOP);
- }
- if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
- return gotResolvedLink(cache[base]);
- }
- return fs4.lstat(base, gotStat);
- }
- function gotStat(err, stat) {
- if (err) return cb(err);
- if (!stat.isSymbolicLink()) {
- knownHard[base] = true;
- if (cache) cache[base] = base;
- return process.nextTick(LOOP);
- }
- if (!isWindows) {
- var id = stat.dev.toString(32) + ":" + stat.ino.toString(32);
- if (seenLinks.hasOwnProperty(id)) {
- return gotTarget(null, seenLinks[id], base);
- }
- }
- fs4.stat(base, function(err2) {
- if (err2) return cb(err2);
- fs4.readlink(base, function(err3, target) {
- if (!isWindows) seenLinks[id] = target;
- gotTarget(err3, target);
- });
- });
- }
- function gotTarget(err, target, base2) {
- if (err) return cb(err);
- var resolvedLink = pathModule.resolve(previous, target);
- if (cache) cache[base2] = resolvedLink;
- gotResolvedLink(resolvedLink);
- }
- function gotResolvedLink(resolvedLink) {
- p = pathModule.resolve(resolvedLink, p.slice(pos));
- start();
- }
- };
- }
- });
- // node_modules/fs.realpath/index.js
- var require_fs = __commonJS({
- "node_modules/fs.realpath/index.js"(exports2, module2) {
- module2.exports = realpath;
- realpath.realpath = realpath;
- realpath.sync = realpathSync;
- realpath.realpathSync = realpathSync;
- realpath.monkeypatch = monkeypatch;
- realpath.unmonkeypatch = unmonkeypatch;
- var fs4 = require("fs");
- var origRealpath = fs4.realpath;
- var origRealpathSync = fs4.realpathSync;
- var version = process.version;
- var ok = /^v[0-5]\./.test(version);
- var old = require_old();
- function newError(er) {
- return er && er.syscall === "realpath" && (er.code === "ELOOP" || er.code === "ENOMEM" || er.code === "ENAMETOOLONG");
- }
- function realpath(p, cache, cb) {
- if (ok) {
- return origRealpath(p, cache, cb);
- }
- if (typeof cache === "function") {
- cb = cache;
- cache = null;
- }
- origRealpath(p, cache, function(er, result) {
- if (newError(er)) {
- old.realpath(p, cache, cb);
- } else {
- cb(er, result);
- }
- });
- }
- function realpathSync(p, cache) {
- if (ok) {
- return origRealpathSync(p, cache);
- }
- try {
- return origRealpathSync(p, cache);
- } catch (er) {
- if (newError(er)) {
- return old.realpathSync(p, cache);
- } else {
- throw er;
- }
- }
- }
- function monkeypatch() {
- fs4.realpath = realpath;
- fs4.realpathSync = realpathSync;
- }
- function unmonkeypatch() {
- fs4.realpath = origRealpath;
- fs4.realpathSync = origRealpathSync;
- }
- }
- });
- // node_modules/concat-map/index.js
- var require_concat_map = __commonJS({
- "node_modules/concat-map/index.js"(exports2, module2) {
- module2.exports = function(xs, fn) {
- var res = [];
- for (var i = 0; i < xs.length; i++) {
- var x = fn(xs[i], i);
- if (isArray(x)) res.push.apply(res, x);
- else res.push(x);
- }
- return res;
- };
- var isArray = Array.isArray || function(xs) {
- return Object.prototype.toString.call(xs) === "[object Array]";
- };
- }
- });
- // node_modules/balanced-match/index.js
- var require_balanced_match = __commonJS({
- "node_modules/balanced-match/index.js"(exports2, module2) {
- "use strict";
- module2.exports = balanced;
- function balanced(a, b, str) {
- if (a instanceof RegExp) a = maybeMatch(a, str);
- if (b instanceof RegExp) b = maybeMatch(b, str);
- var r = range(a, b, str);
- return r && {
- start: r[0],
- end: r[1],
- pre: str.slice(0, r[0]),
- body: str.slice(r[0] + a.length, r[1]),
- post: str.slice(r[1] + b.length)
- };
- }
- function maybeMatch(reg, str) {
- var m = str.match(reg);
- return m ? m[0] : null;
- }
- balanced.range = range;
- function range(a, b, str) {
- var begs, beg, left, right, result;
- var ai = str.indexOf(a);
- var bi = str.indexOf(b, ai + 1);
- var i = ai;
- if (ai >= 0 && bi > 0) {
- if (a === b) {
- return [ai, bi];
- }
- begs = [];
- left = str.length;
- while (i >= 0 && !result) {
- if (i == ai) {
- begs.push(i);
- ai = str.indexOf(a, i + 1);
- } else if (begs.length == 1) {
- result = [begs.pop(), bi];
- } else {
- beg = begs.pop();
- if (beg < left) {
- left = beg;
- right = bi;
- }
- bi = str.indexOf(b, i + 1);
- }
- i = ai < bi && ai >= 0 ? ai : bi;
- }
- if (begs.length) {
- result = [left, right];
- }
- }
- return result;
- }
- }
- });
- // node_modules/brace-expansion/index.js
- var require_brace_expansion = __commonJS({
- "node_modules/brace-expansion/index.js"(exports2, module2) {
- var concatMap = require_concat_map();
- var balanced = require_balanced_match();
- module2.exports = expandTop;
- var escSlash = "\0SLASH" + Math.random() + "\0";
- var escOpen = "\0OPEN" + Math.random() + "\0";
- var escClose = "\0CLOSE" + Math.random() + "\0";
- var escComma = "\0COMMA" + Math.random() + "\0";
- var escPeriod = "\0PERIOD" + Math.random() + "\0";
- function numeric(str) {
- return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0);
- }
- function escapeBraces(str) {
- return str.split("\\\\").join(escSlash).split("\\{").join(escOpen).split("\\}").join(escClose).split("\\,").join(escComma).split("\\.").join(escPeriod);
- }
- function unescapeBraces(str) {
- return str.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join(".");
- }
- function parseCommaParts(str) {
- if (!str)
- return [""];
- var parts = [];
- var m = balanced("{", "}", str);
- if (!m)
- return str.split(",");
- var pre = m.pre;
- var body = m.body;
- var post = m.post;
- var p = pre.split(",");
- p[p.length - 1] += "{" + body + "}";
- var postParts = parseCommaParts(post);
- if (post.length) {
- p[p.length - 1] += postParts.shift();
- p.push.apply(p, postParts);
- }
- parts.push.apply(parts, p);
- return parts;
- }
- function expandTop(str, options) {
- if (!str)
- return [];
- options = options || {};
- var max = options.max == null ? Infinity : options.max;
- if (str.substr(0, 2) === "{}") {
- str = "\\{\\}" + str.substr(2);
- }
- return expand(escapeBraces(str), max, true).map(unescapeBraces);
- }
- function embrace(str) {
- return "{" + str + "}";
- }
- function isPadded(el) {
- return /^-?0\d/.test(el);
- }
- function lte(i, y) {
- return i <= y;
- }
- function gte(i, y) {
- return i >= y;
- }
- function expand(str, max, isTop) {
- var expansions = [];
- var m = balanced("{", "}", str);
- if (!m || /\$$/.test(m.pre)) return [str];
- var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
- var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
- var isSequence = isNumericSequence || isAlphaSequence;
- var isOptions = m.body.indexOf(",") >= 0;
- if (!isSequence && !isOptions) {
- if (m.post.match(/,(?!,).*\}/)) {
- str = m.pre + "{" + m.body + escClose + m.post;
- return expand(str, max, true);
- }
- return [str];
- }
- var n;
- if (isSequence) {
- n = m.body.split(/\.\./);
- } else {
- n = parseCommaParts(m.body);
- if (n.length === 1) {
- n = expand(n[0], max, false).map(embrace);
- if (n.length === 1) {
- var post = m.post.length ? expand(m.post, max, false) : [""];
- return post.map(function(p) {
- return m.pre + n[0] + p;
- });
- }
- }
- }
- var pre = m.pre;
- var post = m.post.length ? expand(m.post, max, false) : [""];
- var N;
- if (isSequence) {
- var x = numeric(n[0]);
- var y = numeric(n[1]);
- var width = Math.max(n[0].length, n[1].length);
- var incr = n.length == 3 ? Math.max(Math.abs(numeric(n[2])), 1) : 1;
- var test = lte;
- var reverse = y < x;
- if (reverse) {
- incr *= -1;
- test = gte;
- }
- var pad = n.some(isPadded);
- N = [];
- for (var i = x; test(i, y); i += incr) {
- var c;
- if (isAlphaSequence) {
- c = String.fromCharCode(i);
- if (c === "\\")
- c = "";
- } else {
- c = String(i);
- if (pad) {
- var need = width - c.length;
- if (need > 0) {
- var z = new Array(need + 1).join("0");
- if (i < 0)
- c = "-" + z + c.slice(1);
- else
- c = z + c;
- }
- }
- }
- N.push(c);
- }
- } else {
- N = concatMap(n, function(el) {
- return expand(el, max, false);
- });
- }
- for (var j = 0; j < N.length; j++) {
- for (var k = 0; k < post.length && expansions.length < max; k++) {
- var expansion = pre + N[j] + post[k];
- if (!isTop || isSequence || expansion)
- expansions.push(expansion);
- }
- }
- return expansions;
- }
- }
- });
- // node_modules/minimatch/minimatch.js
- var require_minimatch = __commonJS({
- "node_modules/minimatch/minimatch.js"(exports2, module2) {
- module2.exports = minimatch;
- minimatch.Minimatch = Minimatch;
- var path2 = (function() {
- try {
- return require("path");
- } catch (e) {
- }
- })() || {
- sep: "/"
- };
- minimatch.sep = path2.sep;
- var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {};
- var expand = require_brace_expansion();
- var plTypes = {
- "!": { open: "(?:(?!(?:", close: "))[^/]*?)" },
- "?": { open: "(?:", close: ")?" },
- "+": { open: "(?:", close: ")+" },
- "*": { open: "(?:", close: ")*" },
- "@": { open: "(?:", close: ")" }
- };
- var qmark = "[^/]";
- var star = qmark + "*?";
- var twoStarDot = "(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?";
- var twoStarNoDot = "(?:(?!(?:\\/|^)\\.).)*?";
- var reSpecials = charSet("().*{}+?[]^$\\!");
- function charSet(s) {
- return s.split("").reduce(function(set, c) {
- set[c] = true;
- return set;
- }, {});
- }
- var slashSplit = /\/+/;
- minimatch.filter = filter;
- function filter(pattern, options) {
- options = options || {};
- return function(p, i, list) {
- return minimatch(p, pattern, options);
- };
- }
- function ext(a, b) {
- b = b || {};
- var t = {};
- Object.keys(a).forEach(function(k) {
- t[k] = a[k];
- });
- Object.keys(b).forEach(function(k) {
- t[k] = b[k];
- });
- return t;
- }
- minimatch.defaults = function(def) {
- if (!def || typeof def !== "object" || !Object.keys(def).length) {
- return minimatch;
- }
- var orig = minimatch;
- var m = function minimatch2(p, pattern, options) {
- return orig(p, pattern, ext(def, options));
- };
- m.Minimatch = function Minimatch2(pattern, options) {
- return new orig.Minimatch(pattern, ext(def, options));
- };
- m.Minimatch.defaults = function defaults(options) {
- return orig.defaults(ext(def, options)).Minimatch;
- };
- m.filter = function filter2(pattern, options) {
- return orig.filter(pattern, ext(def, options));
- };
- m.defaults = function defaults(options) {
- return orig.defaults(ext(def, options));
- };
- m.makeRe = function makeRe2(pattern, options) {
- return orig.makeRe(pattern, ext(def, options));
- };
- m.braceExpand = function braceExpand2(pattern, options) {
- return orig.braceExpand(pattern, ext(def, options));
- };
- m.match = function(list, pattern, options) {
- return orig.match(list, pattern, ext(def, options));
- };
- return m;
- };
- Minimatch.defaults = function(def) {
- return minimatch.defaults(def).Minimatch;
- };
- function minimatch(p, pattern, options) {
- assertValidPattern(pattern);
- if (!options) options = {};
- if (!options.nocomment && pattern.charAt(0) === "#") {
- return false;
- }
- return new Minimatch(pattern, options).match(p);
- }
- function Minimatch(pattern, options) {
- if (!(this instanceof Minimatch)) {
- return new Minimatch(pattern, options);
- }
- assertValidPattern(pattern);
- if (!options) options = {};
- pattern = pattern.trim();
- if (!options.allowWindowsEscape && path2.sep !== "/") {
- pattern = pattern.split(path2.sep).join("/");
- }
- this.options = options;
- this.maxGlobstarRecursion = options.maxGlobstarRecursion !== void 0 ? options.maxGlobstarRecursion : 200;
- this.set = [];
- this.pattern = pattern;
- this.regexp = null;
- this.negate = false;
- this.comment = false;
- this.empty = false;
- this.partial = !!options.partial;
- this.make();
- }
- Minimatch.prototype.debug = function() {
- };
- Minimatch.prototype.make = make;
- function make() {
- var pattern = this.pattern;
- var options = this.options;
- if (!options.nocomment && pattern.charAt(0) === "#") {
- this.comment = true;
- return;
- }
- if (!pattern) {
- this.empty = true;
- return;
- }
- this.parseNegate();
- var set = this.globSet = this.braceExpand();
- if (options.debug) this.debug = function debug() {
- console.error.apply(console, arguments);
- };
- this.debug(this.pattern, set);
- set = this.globParts = set.map(function(s) {
- return s.split(slashSplit);
- });
- this.debug(this.pattern, set);
- set = set.map(function(s, si, set2) {
- return s.map(this.parse, this);
- }, this);
- this.debug(this.pattern, set);
- set = set.filter(function(s) {
- return s.indexOf(false) === -1;
- });
- this.debug(this.pattern, set);
- this.set = set;
- }
- Minimatch.prototype.parseNegate = parseNegate;
- function parseNegate() {
- var pattern = this.pattern;
- var negate = false;
- var options = this.options;
- var negateOffset = 0;
- if (options.nonegate) return;
- for (var i = 0, l = pattern.length; i < l && pattern.charAt(i) === "!"; i++) {
- negate = !negate;
- negateOffset++;
- }
- if (negateOffset) this.pattern = pattern.substr(negateOffset);
- this.negate = negate;
- }
- minimatch.braceExpand = function(pattern, options) {
- return braceExpand(pattern, options);
- };
- Minimatch.prototype.braceExpand = braceExpand;
- function braceExpand(pattern, options) {
- if (!options) {
- if (this instanceof Minimatch) {
- options = this.options;
- } else {
- options = {};
- }
- }
- pattern = typeof pattern === "undefined" ? this.pattern : pattern;
- assertValidPattern(pattern);
- if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) {
- return [pattern];
- }
- return expand(pattern);
- }
- var MAX_PATTERN_LENGTH = 1024 * 64;
- var assertValidPattern = function(pattern) {
- if (typeof pattern !== "string") {
- throw new TypeError("invalid pattern");
- }
- if (pattern.length > MAX_PATTERN_LENGTH) {
- throw new TypeError("pattern is too long");
- }
- };
- Minimatch.prototype.parse = parse;
- var SUBPARSE = {};
- function parse(pattern, isSub) {
- assertValidPattern(pattern);
- var options = this.options;
- if (pattern === "**") {
- if (!options.noglobstar)
- return GLOBSTAR;
- else
- pattern = "*";
- }
- if (pattern === "") return "";
- var re = "";
- var hasMagic = !!options.nocase;
- var escaping = false;
- var patternListStack = [];
- var negativeLists = [];
- var stateChar;
- var inClass = false;
- var reClassStart = -1;
- var classStart = -1;
- var patternStart = pattern.charAt(0) === "." ? "" : options.dot ? "(?!(?:^|\\/)\\.{1,2}(?:$|\\/))" : "(?!\\.)";
- var self2 = this;
- function clearStateChar() {
- if (stateChar) {
- switch (stateChar) {
- case "*":
- re += star;
- hasMagic = true;
- break;
- case "?":
- re += qmark;
- hasMagic = true;
- break;
- default:
- re += "\\" + stateChar;
- break;
- }
- self2.debug("clearStateChar %j %j", stateChar, re);
- stateChar = false;
- }
- }
- for (var i = 0, len = pattern.length, c; i < len && (c = pattern.charAt(i)); i++) {
- this.debug("%s %s %s %j", pattern, i, re, c);
- if (escaping && reSpecials[c]) {
- re += "\\" + c;
- escaping = false;
- continue;
- }
- switch (c) {
- /* istanbul ignore next */
- case "/": {
- return false;
- }
- case "\\":
- clearStateChar();
- escaping = true;
- continue;
- // the various stateChar values
- // for the "extglob" stuff.
- case "?":
- case "*":
- case "+":
- case "@":
- case "!":
- this.debug("%s %s %s %j <-- stateChar", pattern, i, re, c);
- if (inClass) {
- this.debug(" in class");
- if (c === "!" && i === classStart + 1) c = "^";
- re += c;
- continue;
- }
- if (c === "*" && stateChar === "*") continue;
- self2.debug("call clearStateChar %j", stateChar);
- clearStateChar();
- stateChar = c;
- if (options.noext) clearStateChar();
- continue;
- case "(":
- if (inClass) {
- re += "(";
- continue;
- }
- if (!stateChar) {
- re += "\\(";
- continue;
- }
- patternListStack.push({
- type: stateChar,
- start: i - 1,
- reStart: re.length,
- open: plTypes[stateChar].open,
- close: plTypes[stateChar].close
- });
- re += stateChar === "!" ? "(?:(?!(?:" : "(?:";
- this.debug("plType %j %j", stateChar, re);
- stateChar = false;
- continue;
- case ")":
- if (inClass || !patternListStack.length) {
- re += "\\)";
- continue;
- }
- clearStateChar();
- hasMagic = true;
- var pl = patternListStack.pop();
- re += pl.close;
- if (pl.type === "!") {
- negativeLists.push(pl);
- }
- pl.reEnd = re.length;
- continue;
- case "|":
- if (inClass || !patternListStack.length || escaping) {
- re += "\\|";
- escaping = false;
- continue;
- }
- clearStateChar();
- re += "|";
- continue;
- // these are mostly the same in regexp and glob
- case "[":
- clearStateChar();
- if (inClass) {
- re += "\\" + c;
- continue;
- }
- inClass = true;
- classStart = i;
- reClassStart = re.length;
- re += c;
- continue;
- case "]":
- if (i === classStart + 1 || !inClass) {
- re += "\\" + c;
- escaping = false;
- continue;
- }
- var cs = pattern.substring(classStart + 1, i);
- try {
- RegExp("[" + cs + "]");
- } catch (er) {
- var sp = this.parse(cs, SUBPARSE);
- re = re.substr(0, reClassStart) + "\\[" + sp[0] + "\\]";
- hasMagic = hasMagic || sp[1];
- inClass = false;
- continue;
- }
- hasMagic = true;
- inClass = false;
- re += c;
- continue;
- default:
- clearStateChar();
- if (escaping) {
- escaping = false;
- } else if (reSpecials[c] && !(c === "^" && inClass)) {
- re += "\\";
- }
- re += c;
- }
- }
- if (inClass) {
- cs = pattern.substr(classStart + 1);
- sp = this.parse(cs, SUBPARSE);
- re = re.substr(0, reClassStart) + "\\[" + sp[0];
- hasMagic = hasMagic || sp[1];
- }
- for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
- var tail = re.slice(pl.reStart + pl.open.length);
- this.debug("setting tail", re, pl);
- tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function(_, $1, $2) {
- if (!$2) {
- $2 = "\\";
- }
- return $1 + $1 + $2 + "|";
- });
- this.debug("tail=%j\n %s", tail, tail, pl, re);
- var t = pl.type === "*" ? star : pl.type === "?" ? qmark : "\\" + pl.type;
- hasMagic = true;
- re = re.slice(0, pl.reStart) + t + "\\(" + tail;
- }
- clearStateChar();
- if (escaping) {
- re += "\\\\";
- }
- var addPatternStart = false;
- switch (re.charAt(0)) {
- case "[":
- case ".":
- case "(":
- addPatternStart = true;
- }
- for (var n = negativeLists.length - 1; n > -1; n--) {
- var nl = negativeLists[n];
- var nlBefore = re.slice(0, nl.reStart);
- var nlFirst = re.slice(nl.reStart, nl.reEnd - 8);
- var nlLast = re.slice(nl.reEnd - 8, nl.reEnd);
- var nlAfter = re.slice(nl.reEnd);
- nlLast += nlAfter;
- var openParensBefore = nlBefore.split("(").length - 1;
- var cleanAfter = nlAfter;
- for (i = 0; i < openParensBefore; i++) {
- cleanAfter = cleanAfter.replace(/\)[+*?]?/, "");
- }
- nlAfter = cleanAfter;
- var dollar = "";
- if (nlAfter === "" && isSub !== SUBPARSE) {
- dollar = "$";
- }
- var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast;
- re = newRe;
- }
- if (re !== "" && hasMagic) {
- re = "(?=.)" + re;
- }
- if (addPatternStart) {
- re = patternStart + re;
- }
- if (isSub === SUBPARSE) {
- return [re, hasMagic];
- }
- if (!hasMagic) {
- return globUnescape(pattern);
- }
- var flags = options.nocase ? "i" : "";
- try {
- var regExp = new RegExp("^" + re + "$", flags);
- } catch (er) {
- return new RegExp("$.");
- }
- regExp._glob = pattern;
- regExp._src = re;
- return regExp;
- }
- minimatch.makeRe = function(pattern, options) {
- return new Minimatch(pattern, options || {}).makeRe();
- };
- Minimatch.prototype.makeRe = makeRe;
- function makeRe() {
- if (this.regexp || this.regexp === false) return this.regexp;
- var set = this.set;
- if (!set.length) {
- this.regexp = false;
- return this.regexp;
- }
- var options = this.options;
- var twoStar = options.noglobstar ? star : options.dot ? twoStarDot : twoStarNoDot;
- var flags = options.nocase ? "i" : "";
- var re = set.map(function(pattern) {
- return pattern.map(function(p) {
- return p === GLOBSTAR ? twoStar : typeof p === "string" ? regExpEscape(p) : p._src;
- }).join("\\/");
- }).join("|");
- re = "^(?:" + re + ")$";
- if (this.negate) re = "^(?!" + re + ").*$";
- try {
- this.regexp = new RegExp(re, flags);
- } catch (ex) {
- this.regexp = false;
- }
- return this.regexp;
- }
- minimatch.match = function(list, pattern, options) {
- options = options || {};
- var mm = new Minimatch(pattern, options);
- list = list.filter(function(f) {
- return mm.match(f);
- });
- if (mm.options.nonull && !list.length) {
- list.push(pattern);
- }
- return list;
- };
- Minimatch.prototype.match = function match(f, partial) {
- if (typeof partial === "undefined") partial = this.partial;
- this.debug("match", f, this.pattern);
- if (this.comment) return false;
- if (this.empty) return f === "";
- if (f === "/" && partial) return true;
- var options = this.options;
- if (path2.sep !== "/") {
- f = f.split(path2.sep).join("/");
- }
- f = f.split(slashSplit);
- this.debug(this.pattern, "split", f);
- var set = this.set;
- this.debug(this.pattern, "set", set);
- var filename;
- var i;
- for (i = f.length - 1; i >= 0; i--) {
- filename = f[i];
- if (filename) break;
- }
- for (i = 0; i < set.length; i++) {
- var pattern = set[i];
- var file = f;
- if (options.matchBase && pattern.length === 1) {
- file = [filename];
- }
- var hit = this.matchOne(file, pattern, partial);
- if (hit) {
- if (options.flipNegate) return true;
- return !this.negate;
- }
- }
- if (options.flipNegate) return false;
- return this.negate;
- };
- Minimatch.prototype.matchOne = function(file, pattern, partial) {
- if (pattern.indexOf(GLOBSTAR) !== -1) {
- return this._matchGlobstar(file, pattern, partial, 0, 0);
- }
- return this._matchOne(file, pattern, partial, 0, 0);
- };
- Minimatch.prototype._matchGlobstar = function(file, pattern, partial, fileIndex, patternIndex) {
- var i;
- var firstgs = -1;
- for (i = patternIndex; i < pattern.length; i++) {
- if (pattern[i] === GLOBSTAR) {
- firstgs = i;
- break;
- }
- }
- var lastgs = -1;
- for (i = pattern.length - 1; i >= 0; i--) {
- if (pattern[i] === GLOBSTAR) {
- lastgs = i;
- break;
- }
- }
- var head = pattern.slice(patternIndex, firstgs);
- var body = partial ? pattern.slice(firstgs + 1) : pattern.slice(firstgs + 1, lastgs);
- var tail = partial ? [] : pattern.slice(lastgs + 1);
- if (head.length) {
- var fileHead = file.slice(fileIndex, fileIndex + head.length);
- if (!this._matchOne(fileHead, head, partial, 0, 0)) {
- return false;
- }
- fileIndex += head.length;
- }
- var fileTailMatch = 0;
- if (tail.length) {
- if (tail.length + fileIndex > file.length) return false;
- var tailStart = file.length - tail.length;
- if (this._matchOne(file, tail, partial, tailStart, 0)) {
- fileTailMatch = tail.length;
- } else {
- if (file[file.length - 1] !== "" || fileIndex + tail.length === file.length) {
- return false;
- }
- tailStart--;
- if (!this._matchOne(file, tail, partial, tailStart, 0)) {
- return false;
- }
- fileTailMatch = tail.length + 1;
- }
- }
- if (!body.length) {
- var sawSome = !!fileTailMatch;
- for (i = fileIndex; i < file.length - fileTailMatch; i++) {
- var f = String(file[i]);
- sawSome = true;
- if (f === "." || f === ".." || !this.options.dot && f.charAt(0) === ".") {
- return false;
- }
- }
- return partial || sawSome;
- }
- var bodySegments = [[[], 0]];
- var currentBody = bodySegments[0];
- var nonGsParts = 0;
- var nonGsPartsSums = [0];
- for (var bi = 0; bi < body.length; bi++) {
- var b = body[bi];
- if (b === GLOBSTAR) {
- nonGsPartsSums.push(nonGsParts);
- currentBody = [[], 0];
- bodySegments.push(currentBody);
- } else {
- currentBody[0].push(b);
- nonGsParts++;
- }
- }
- var idx = bodySegments.length - 1;
- var fileLength = file.length - fileTailMatch;
- for (var si = 0; si < bodySegments.length; si++) {
- bodySegments[si][1] = fileLength - (nonGsPartsSums[idx--] + bodySegments[si][0].length);
- }
- return !!this._matchGlobStarBodySections(
- file,
- bodySegments,
- fileIndex,
- 0,
- partial,
- 0,
- !!fileTailMatch
- );
- };
- Minimatch.prototype._matchGlobStarBodySections = function(file, bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail) {
- var bs = bodySegments[bodyIndex];
- if (!bs) {
- for (var i = fileIndex; i < file.length; i++) {
- sawTail = true;
- var f = file[i];
- if (f === "." || f === ".." || !this.options.dot && f.charAt(0) === ".") {
- return false;
- }
- }
- return sawTail;
- }
- var body = bs[0];
- var after = bs[1];
- while (fileIndex <= after) {
- var m = this._matchOne(
- file.slice(0, fileIndex + body.length),
- body,
- partial,
- fileIndex,
- 0
- );
- if (m && globStarDepth < this.maxGlobstarRecursion) {
- var sub = this._matchGlobStarBodySections(
- file,
- bodySegments,
- fileIndex + body.length,
- bodyIndex + 1,
- partial,
- globStarDepth + 1,
- sawTail
- );
- if (sub !== false) {
- return sub;
- }
- }
- var f = file[fileIndex];
- if (f === "." || f === ".." || !this.options.dot && f.charAt(0) === ".") {
- return false;
- }
- fileIndex++;
- }
- return partial || null;
- };
- Minimatch.prototype._matchOne = function(file, pattern, partial, fileIndex, patternIndex) {
- var fi, pi, fl, pl;
- for (fi = fileIndex, pi = patternIndex, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
- this.debug("matchOne loop");
- var p = pattern[pi];
- var f = file[fi];
- this.debug(pattern, p, f);
- if (p === false || p === GLOBSTAR) return false;
- var hit;
- if (typeof p === "string") {
- hit = f === p;
- this.debug("string match", p, f, hit);
- } else {
- hit = f.match(p);
- this.debug("pattern match", p, f, hit);
- }
- if (!hit) return false;
- }
- if (fi === fl && pi === pl) {
- return true;
- } else if (fi === fl) {
- return partial;
- } else if (pi === pl) {
- return fi === fl - 1 && file[fi] === "";
- }
- throw new Error("wtf?");
- };
- function globUnescape(s) {
- return s.replace(/\\(.)/g, "$1");
- }
- function regExpEscape(s) {
- return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
- }
- }
- });
- // node_modules/path-is-absolute/index.js
- var require_path_is_absolute = __commonJS({
- "node_modules/path-is-absolute/index.js"(exports2, module2) {
- "use strict";
- function posix(path2) {
- return path2.charAt(0) === "/";
- }
- function win32(path2) {
- var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/;
- var result = splitDeviceRe.exec(path2);
- var device = result[1] || "";
- var isUnc = Boolean(device && device.charAt(1) !== ":");
- return Boolean(result[2] || isUnc);
- }
- module2.exports = process.platform === "win32" ? win32 : posix;
- module2.exports.posix = posix;
- module2.exports.win32 = win32;
- }
- });
- // node_modules/glob/common.js
- var require_common3 = __commonJS({
- "node_modules/glob/common.js"(exports2) {
- exports2.alphasort = alphasort;
- exports2.alphasorti = alphasorti;
- exports2.setopts = setopts;
- exports2.ownProp = ownProp;
- exports2.makeAbs = makeAbs;
- exports2.finish = finish;
- exports2.mark = mark;
- exports2.isIgnored = isIgnored;
- exports2.childrenIgnored = childrenIgnored;
- function ownProp(obj, field) {
- return Object.prototype.hasOwnProperty.call(obj, field);
- }
- var path2 = require("path");
- var minimatch = require_minimatch();
- var isAbsolute = require_path_is_absolute();
- var Minimatch = minimatch.Minimatch;
- function alphasorti(a, b) {
- return a.toLowerCase().localeCompare(b.toLowerCase());
- }
- function alphasort(a, b) {
- return a.localeCompare(b);
- }
- function setupIgnores(self2, options) {
- self2.ignore = options.ignore || [];
- if (!Array.isArray(self2.ignore))
- self2.ignore = [self2.ignore];
- if (self2.ignore.length) {
- self2.ignore = self2.ignore.map(ignoreMap);
- }
- }
- function ignoreMap(pattern) {
- var gmatcher = null;
- if (pattern.slice(-3) === "/**") {
- var gpattern = pattern.replace(/(\/\*\*)+$/, "");
- gmatcher = new Minimatch(gpattern, { dot: true });
- }
- return {
- matcher: new Minimatch(pattern, { dot: true }),
- gmatcher
- };
- }
- function setopts(self2, pattern, options) {
- if (!options)
- options = {};
- if (options.matchBase && -1 === pattern.indexOf("/")) {
- if (options.noglobstar) {
- throw new Error("base matching requires globstar");
- }
- pattern = "**/" + pattern;
- }
- self2.silent = !!options.silent;
- self2.pattern = pattern;
- self2.strict = options.strict !== false;
- self2.realpath = !!options.realpath;
- self2.realpathCache = options.realpathCache || /* @__PURE__ */ Object.create(null);
- self2.follow = !!options.follow;
- self2.dot = !!options.dot;
- self2.mark = !!options.mark;
- self2.nodir = !!options.nodir;
- if (self2.nodir)
- self2.mark = true;
- self2.sync = !!options.sync;
- self2.nounique = !!options.nounique;
- self2.nonull = !!options.nonull;
- self2.nosort = !!options.nosort;
- self2.nocase = !!options.nocase;
- self2.stat = !!options.stat;
- self2.noprocess = !!options.noprocess;
- self2.absolute = !!options.absolute;
- self2.maxLength = options.maxLength || Infinity;
- self2.cache = options.cache || /* @__PURE__ */ Object.create(null);
- self2.statCache = options.statCache || /* @__PURE__ */ Object.create(null);
- self2.symlinks = options.symlinks || /* @__PURE__ */ Object.create(null);
- setupIgnores(self2, options);
- self2.changedCwd = false;
- var cwd = process.cwd();
- if (!ownProp(options, "cwd"))
- self2.cwd = cwd;
- else {
- self2.cwd = path2.resolve(options.cwd);
- self2.changedCwd = self2.cwd !== cwd;
- }
- self2.root = options.root || path2.resolve(self2.cwd, "/");
- self2.root = path2.resolve(self2.root);
- if (process.platform === "win32")
- self2.root = self2.root.replace(/\\/g, "/");
- self2.cwdAbs = isAbsolute(self2.cwd) ? self2.cwd : makeAbs(self2, self2.cwd);
- if (process.platform === "win32")
- self2.cwdAbs = self2.cwdAbs.replace(/\\/g, "/");
- self2.nomount = !!options.nomount;
- options.nonegate = true;
- options.nocomment = true;
- self2.minimatch = new Minimatch(pattern, options);
- self2.options = self2.minimatch.options;
- }
- function finish(self2) {
- var nou = self2.nounique;
- var all = nou ? [] : /* @__PURE__ */ Object.create(null);
- for (var i = 0, l = self2.matches.length; i < l; i++) {
- var matches = self2.matches[i];
- if (!matches || Object.keys(matches).length === 0) {
- if (self2.nonull) {
- var literal = self2.minimatch.globSet[i];
- if (nou)
- all.push(literal);
- else
- all[literal] = true;
- }
- } else {
- var m = Object.keys(matches);
- if (nou)
- all.push.apply(all, m);
- else
- m.forEach(function(m2) {
- all[m2] = true;
- });
- }
- }
- if (!nou)
- all = Object.keys(all);
- if (!self2.nosort)
- all = all.sort(self2.nocase ? alphasorti : alphasort);
- if (self2.mark) {
- for (var i = 0; i < all.length; i++) {
- all[i] = self2._mark(all[i]);
- }
- if (self2.nodir) {
- all = all.filter(function(e) {
- var notDir = !/\/$/.test(e);
- var c = self2.cache[e] || self2.cache[makeAbs(self2, e)];
- if (notDir && c)
- notDir = c !== "DIR" && !Array.isArray(c);
- return notDir;
- });
- }
- }
- if (self2.ignore.length)
- all = all.filter(function(m2) {
- return !isIgnored(self2, m2);
- });
- self2.found = all;
- }
- function mark(self2, p) {
- var abs = makeAbs(self2, p);
- var c = self2.cache[abs];
- var m = p;
- if (c) {
- var isDir = c === "DIR" || Array.isArray(c);
- var slash = p.slice(-1) === "/";
- if (isDir && !slash)
- m += "/";
- else if (!isDir && slash)
- m = m.slice(0, -1);
- if (m !== p) {
- var mabs = makeAbs(self2, m);
- self2.statCache[mabs] = self2.statCache[abs];
- self2.cache[mabs] = self2.cache[abs];
- }
- }
- return m;
- }
- function makeAbs(self2, f) {
- var abs = f;
- if (f.charAt(0) === "/") {
- abs = path2.join(self2.root, f);
- } else if (isAbsolute(f) || f === "") {
- abs = f;
- } else if (self2.changedCwd) {
- abs = path2.resolve(self2.cwd, f);
- } else {
- abs = path2.resolve(f);
- }
- if (process.platform === "win32")
- abs = abs.replace(/\\/g, "/");
- return abs;
- }
- function isIgnored(self2, path3) {
- if (!self2.ignore.length)
- return false;
- return self2.ignore.some(function(item) {
- return item.matcher.match(path3) || !!(item.gmatcher && item.gmatcher.match(path3));
- });
- }
- function childrenIgnored(self2, path3) {
- if (!self2.ignore.length)
- return false;
- return self2.ignore.some(function(item) {
- return !!(item.gmatcher && item.gmatcher.match(path3));
- });
- }
- }
- });
- // node_modules/glob/sync.js
- var require_sync = __commonJS({
- "node_modules/glob/sync.js"(exports2, module2) {
- module2.exports = globSync;
- globSync.GlobSync = GlobSync;
- var fs4 = require("fs");
- var rp = require_fs();
- var minimatch = require_minimatch();
- var Minimatch = minimatch.Minimatch;
- var Glob = require_glob().Glob;
- var util = require("util");
- var path2 = require("path");
- var assert = require("assert");
- var isAbsolute = require_path_is_absolute();
- var common = require_common3();
- var alphasort = common.alphasort;
- var alphasorti = common.alphasorti;
- var setopts = common.setopts;
- var ownProp = common.ownProp;
- var childrenIgnored = common.childrenIgnored;
- var isIgnored = common.isIgnored;
- function globSync(pattern, options) {
- if (typeof options === "function" || arguments.length === 3)
- throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167");
- return new GlobSync(pattern, options).found;
- }
- function GlobSync(pattern, options) {
- if (!pattern)
- throw new Error("must provide pattern");
- if (typeof options === "function" || arguments.length === 3)
- throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167");
- if (!(this instanceof GlobSync))
- return new GlobSync(pattern, options);
- setopts(this, pattern, options);
- if (this.noprocess)
- return this;
- var n = this.minimatch.set.length;
- this.matches = new Array(n);
- for (var i = 0; i < n; i++) {
- this._process(this.minimatch.set[i], i, false);
- }
- this._finish();
- }
- GlobSync.prototype._finish = function() {
- assert(this instanceof GlobSync);
- if (this.realpath) {
- var self2 = this;
- this.matches.forEach(function(matchset, index) {
- var set = self2.matches[index] = /* @__PURE__ */ Object.create(null);
- for (var p in matchset) {
- try {
- p = self2._makeAbs(p);
- var real = rp.realpathSync(p, self2.realpathCache);
- set[real] = true;
- } catch (er) {
- if (er.syscall === "stat")
- set[self2._makeAbs(p)] = true;
- else
- throw er;
- }
- }
- });
- }
- common.finish(this);
- };
- GlobSync.prototype._process = function(pattern, index, inGlobStar) {
- assert(this instanceof GlobSync);
- var n = 0;
- while (typeof pattern[n] === "string") {
- n++;
- }
- var prefix;
- switch (n) {
- // if not, then this is rather simple
- case pattern.length:
- this._processSimple(pattern.join("/"), index);
- return;
- case 0:
- prefix = null;
- break;
- default:
- prefix = pattern.slice(0, n).join("/");
- break;
- }
- var remain = pattern.slice(n);
- var read;
- if (prefix === null)
- read = ".";
- else if (isAbsolute(prefix) || isAbsolute(pattern.join("/"))) {
- if (!prefix || !isAbsolute(prefix))
- prefix = "/" + prefix;
- read = prefix;
- } else
- read = prefix;
- var abs = this._makeAbs(read);
- if (childrenIgnored(this, read))
- return;
- var isGlobStar = remain[0] === minimatch.GLOBSTAR;
- if (isGlobStar)
- this._processGlobStar(prefix, read, abs, remain, index, inGlobStar);
- else
- this._processReaddir(prefix, read, abs, remain, index, inGlobStar);
- };
- GlobSync.prototype._processReaddir = function(prefix, read, abs, remain, index, inGlobStar) {
- var entries = this._readdir(abs, inGlobStar);
- if (!entries)
- return;
- var pn = remain[0];
- var negate = !!this.minimatch.negate;
- var rawGlob = pn._glob;
- var dotOk = this.dot || rawGlob.charAt(0) === ".";
- var matchedEntries = [];
- for (var i = 0; i < entries.length; i++) {
- var e = entries[i];
- if (e.charAt(0) !== "." || dotOk) {
- var m;
- if (negate && !prefix) {
- m = !e.match(pn);
- } else {
- m = e.match(pn);
- }
- if (m)
- matchedEntries.push(e);
- }
- }
- var len = matchedEntries.length;
- if (len === 0)
- return;
- if (remain.length === 1 && !this.mark && !this.stat) {
- if (!this.matches[index])
- this.matches[index] = /* @__PURE__ */ Object.create(null);
- for (var i = 0; i < len; i++) {
- var e = matchedEntries[i];
- if (prefix) {
- if (prefix.slice(-1) !== "/")
- e = prefix + "/" + e;
- else
- e = prefix + e;
- }
- if (e.charAt(0) === "/" && !this.nomount) {
- e = path2.join(this.root, e);
- }
- this._emitMatch(index, e);
- }
- return;
- }
- remain.shift();
- for (var i = 0; i < len; i++) {
- var e = matchedEntries[i];
- var newPattern;
- if (prefix)
- newPattern = [prefix, e];
- else
- newPattern = [e];
- this._process(newPattern.concat(remain), index, inGlobStar);
- }
- };
- GlobSync.prototype._emitMatch = function(index, e) {
- if (isIgnored(this, e))
- return;
- var abs = this._makeAbs(e);
- if (this.mark)
- e = this._mark(e);
- if (this.absolute) {
- e = abs;
- }
- if (this.matches[index][e])
- return;
- if (this.nodir) {
- var c = this.cache[abs];
- if (c === "DIR" || Array.isArray(c))
- return;
- }
- this.matches[index][e] = true;
- if (this.stat)
- this._stat(e);
- };
- GlobSync.prototype._readdirInGlobStar = function(abs) {
- if (this.follow)
- return this._readdir(abs, false);
- var entries;
- var lstat;
- var stat;
- try {
- lstat = fs4.lstatSync(abs);
- } catch (er) {
- if (er.code === "ENOENT") {
- return null;
- }
- }
- var isSym = lstat && lstat.isSymbolicLink();
- this.symlinks[abs] = isSym;
- if (!isSym && lstat && !lstat.isDirectory())
- this.cache[abs] = "FILE";
- else
- entries = this._readdir(abs, false);
- return entries;
- };
- GlobSync.prototype._readdir = function(abs, inGlobStar) {
- var entries;
- if (inGlobStar && !ownProp(this.symlinks, abs))
- return this._readdirInGlobStar(abs);
- if (ownProp(this.cache, abs)) {
- var c = this.cache[abs];
- if (!c || c === "FILE")
- return null;
- if (Array.isArray(c))
- return c;
- }
- try {
- return this._readdirEntries(abs, fs4.readdirSync(abs));
- } catch (er) {
- this._readdirError(abs, er);
- return null;
- }
- };
- GlobSync.prototype._readdirEntries = function(abs, entries) {
- if (!this.mark && !this.stat) {
- for (var i = 0; i < entries.length; i++) {
- var e = entries[i];
- if (abs === "/")
- e = abs + e;
- else
- e = abs + "/" + e;
- this.cache[e] = true;
- }
- }
- this.cache[abs] = entries;
- return entries;
- };
- GlobSync.prototype._readdirError = function(f, er) {
- switch (er.code) {
- case "ENOTSUP":
- // https://github.com/isaacs/node-glob/issues/205
- case "ENOTDIR":
- var abs = this._makeAbs(f);
- this.cache[abs] = "FILE";
- if (abs === this.cwdAbs) {
- var error = new Error(er.code + " invalid cwd " + this.cwd);
- error.path = this.cwd;
- error.code = er.code;
- throw error;
- }
- break;
- case "ENOENT":
- // not terribly unusual
- case "ELOOP":
- case "ENAMETOOLONG":
- case "UNKNOWN":
- this.cache[this._makeAbs(f)] = false;
- break;
- default:
- this.cache[this._makeAbs(f)] = false;
- if (this.strict)
- throw er;
- if (!this.silent)
- console.error("glob error", er);
- break;
- }
- };
- GlobSync.prototype._processGlobStar = function(prefix, read, abs, remain, index, inGlobStar) {
- var entries = this._readdir(abs, inGlobStar);
- if (!entries)
- return;
- var remainWithoutGlobStar = remain.slice(1);
- var gspref = prefix ? [prefix] : [];
- var noGlobStar = gspref.concat(remainWithoutGlobStar);
- this._process(noGlobStar, index, false);
- var len = entries.length;
- var isSym = this.symlinks[abs];
- if (isSym && inGlobStar)
- return;
- for (var i = 0; i < len; i++) {
- var e = entries[i];
- if (e.charAt(0) === "." && !this.dot)
- continue;
- var instead = gspref.concat(entries[i], remainWithoutGlobStar);
- this._process(instead, index, true);
- var below = gspref.concat(entries[i], remain);
- this._process(below, index, true);
- }
- };
- GlobSync.prototype._processSimple = function(prefix, index) {
- var exists = this._stat(prefix);
- if (!this.matches[index])
- this.matches[index] = /* @__PURE__ */ Object.create(null);
- if (!exists)
- return;
- if (prefix && isAbsolute(prefix) && !this.nomount) {
- var trail = /[\/\\]$/.test(prefix);
- if (prefix.charAt(0) === "/") {
- prefix = path2.join(this.root, prefix);
- } else {
- prefix = path2.resolve(this.root, prefix);
- if (trail)
- prefix += "/";
- }
- }
- if (process.platform === "win32")
- prefix = prefix.replace(/\\/g, "/");
- this._emitMatch(index, prefix);
- };
- GlobSync.prototype._stat = function(f) {
- var abs = this._makeAbs(f);
- var needDir = f.slice(-1) === "/";
- if (f.length > this.maxLength)
- return false;
- if (!this.stat && ownProp(this.cache, abs)) {
- var c = this.cache[abs];
- if (Array.isArray(c))
- c = "DIR";
- if (!needDir || c === "DIR")
- return c;
- if (needDir && c === "FILE")
- return false;
- }
- var exists;
- var stat = this.statCache[abs];
- if (!stat) {
- var lstat;
- try {
- lstat = fs4.lstatSync(abs);
- } catch (er) {
- if (er && (er.code === "ENOENT" || er.code === "ENOTDIR")) {
- this.statCache[abs] = false;
- return false;
- }
- }
- if (lstat && lstat.isSymbolicLink()) {
- try {
- stat = fs4.statSync(abs);
- } catch (er) {
- stat = lstat;
- }
- } else {
- stat = lstat;
- }
- }
- this.statCache[abs] = stat;
- var c = true;
- if (stat)
- c = stat.isDirectory() ? "DIR" : "FILE";
- this.cache[abs] = this.cache[abs] || c;
- if (needDir && c === "FILE")
- return false;
- return c;
- };
- GlobSync.prototype._mark = function(p) {
- return common.mark(this, p);
- };
- GlobSync.prototype._makeAbs = function(f) {
- return common.makeAbs(this, f);
- };
- }
- });
- // node_modules/inflight/inflight.js
- var require_inflight = __commonJS({
- "node_modules/inflight/inflight.js"(exports2, module2) {
- var wrappy = require_wrappy();
- var reqs = /* @__PURE__ */ Object.create(null);
- var once = require_once();
- module2.exports = wrappy(inflight);
- function inflight(key, cb) {
- if (reqs[key]) {
- reqs[key].push(cb);
- return null;
- } else {
- reqs[key] = [cb];
- return makeres(key);
- }
- }
- function makeres(key) {
- return once(function RES() {
- var cbs = reqs[key];
- var len = cbs.length;
- var args = slice(arguments);
- try {
- for (var i = 0; i < len; i++) {
- cbs[i].apply(null, args);
- }
- } finally {
- if (cbs.length > len) {
- cbs.splice(0, len);
- process.nextTick(function() {
- RES.apply(null, args);
- });
- } else {
- delete reqs[key];
- }
- }
- });
- }
- function slice(args) {
- var length = args.length;
- var array = [];
- for (var i = 0; i < length; i++) array[i] = args[i];
- return array;
- }
- }
- });
- // node_modules/glob/glob.js
- var require_glob = __commonJS({
- "node_modules/glob/glob.js"(exports2, module2) {
- module2.exports = glob;
- var fs4 = require("fs");
- var rp = require_fs();
- var minimatch = require_minimatch();
- var Minimatch = minimatch.Minimatch;
- var inherits = require_inherits();
- var EE = require("events").EventEmitter;
- var path2 = require("path");
- var assert = require("assert");
- var isAbsolute = require_path_is_absolute();
- var globSync = require_sync();
- var common = require_common3();
- var alphasort = common.alphasort;
- var alphasorti = common.alphasorti;
- var setopts = common.setopts;
- var ownProp = common.ownProp;
- var inflight = require_inflight();
- var util = require("util");
- var childrenIgnored = common.childrenIgnored;
- var isIgnored = common.isIgnored;
- var once = require_once();
- function glob(pattern, options, cb) {
- if (typeof options === "function") cb = options, options = {};
- if (!options) options = {};
- if (options.sync) {
- if (cb)
- throw new TypeError("callback provided to sync glob");
- return globSync(pattern, options);
- }
- return new Glob(pattern, options, cb);
- }
- glob.sync = globSync;
- var GlobSync = glob.GlobSync = globSync.GlobSync;
- glob.glob = glob;
- function extend(origin, add) {
- if (add === null || typeof add !== "object") {
- return origin;
- }
- var keys = Object.keys(add);
- var i = keys.length;
- while (i--) {
- origin[keys[i]] = add[keys[i]];
- }
- return origin;
- }
- glob.hasMagic = function(pattern, options_) {
- var options = extend({}, options_);
- options.noprocess = true;
- var g = new Glob(pattern, options);
- var set = g.minimatch.set;
- if (!pattern)
- return false;
- if (set.length > 1)
- return true;
- for (var j = 0; j < set[0].length; j++) {
- if (typeof set[0][j] !== "string")
- return true;
- }
- return false;
- };
- glob.Glob = Glob;
- inherits(Glob, EE);
- function Glob(pattern, options, cb) {
- if (typeof options === "function") {
- cb = options;
- options = null;
- }
- if (options && options.sync) {
- if (cb)
- throw new TypeError("callback provided to sync glob");
- return new GlobSync(pattern, options);
- }
- if (!(this instanceof Glob))
- return new Glob(pattern, options, cb);
- setopts(this, pattern, options);
- this._didRealPath = false;
- var n = this.minimatch.set.length;
- this.matches = new Array(n);
- if (typeof cb === "function") {
- cb = once(cb);
- this.on("error", cb);
- this.on("end", function(matches) {
- cb(null, matches);
- });
- }
- var self2 = this;
- this._processing = 0;
- this._emitQueue = [];
- this._processQueue = [];
- this.paused = false;
- if (this.noprocess)
- return this;
- if (n === 0)
- return done();
- var sync = true;
- for (var i = 0; i < n; i++) {
- this._process(this.minimatch.set[i], i, false, done);
- }
- sync = false;
- function done() {
- --self2._processing;
- if (self2._processing <= 0) {
- if (sync) {
- process.nextTick(function() {
- self2._finish();
- });
- } else {
- self2._finish();
- }
- }
- }
- }
- Glob.prototype._finish = function() {
- assert(this instanceof Glob);
- if (this.aborted)
- return;
- if (this.realpath && !this._didRealpath)
- return this._realpath();
- common.finish(this);
- this.emit("end", this.found);
- };
- Glob.prototype._realpath = function() {
- if (this._didRealpath)
- return;
- this._didRealpath = true;
- var n = this.matches.length;
- if (n === 0)
- return this._finish();
- var self2 = this;
- for (var i = 0; i < this.matches.length; i++)
- this._realpathSet(i, next);
- function next() {
- if (--n === 0)
- self2._finish();
- }
- };
- Glob.prototype._realpathSet = function(index, cb) {
- var matchset = this.matches[index];
- if (!matchset)
- return cb();
- var found = Object.keys(matchset);
- var self2 = this;
- var n = found.length;
- if (n === 0)
- return cb();
- var set = this.matches[index] = /* @__PURE__ */ Object.create(null);
- found.forEach(function(p, i) {
- p = self2._makeAbs(p);
- rp.realpath(p, self2.realpathCache, function(er, real) {
- if (!er)
- set[real] = true;
- else if (er.syscall === "stat")
- set[p] = true;
- else
- self2.emit("error", er);
- if (--n === 0) {
- self2.matches[index] = set;
- cb();
- }
- });
- });
- };
- Glob.prototype._mark = function(p) {
- return common.mark(this, p);
- };
- Glob.prototype._makeAbs = function(f) {
- return common.makeAbs(this, f);
- };
- Glob.prototype.abort = function() {
- this.aborted = true;
- this.emit("abort");
- };
- Glob.prototype.pause = function() {
- if (!this.paused) {
- this.paused = true;
- this.emit("pause");
- }
- };
- Glob.prototype.resume = function() {
- if (this.paused) {
- this.emit("resume");
- this.paused = false;
- if (this._emitQueue.length) {
- var eq = this._emitQueue.slice(0);
- this._emitQueue.length = 0;
- for (var i = 0; i < eq.length; i++) {
- var e = eq[i];
- this._emitMatch(e[0], e[1]);
- }
- }
- if (this._processQueue.length) {
- var pq = this._processQueue.slice(0);
- this._processQueue.length = 0;
- for (var i = 0; i < pq.length; i++) {
- var p = pq[i];
- this._processing--;
- this._process(p[0], p[1], p[2], p[3]);
- }
- }
- }
- };
- Glob.prototype._process = function(pattern, index, inGlobStar, cb) {
- assert(this instanceof Glob);
- assert(typeof cb === "function");
- if (this.aborted)
- return;
- this._processing++;
- if (this.paused) {
- this._processQueue.push([pattern, index, inGlobStar, cb]);
- return;
- }
- var n = 0;
- while (typeof pattern[n] === "string") {
- n++;
- }
- var prefix;
- switch (n) {
- // if not, then this is rather simple
- case pattern.length:
- this._processSimple(pattern.join("/"), index, cb);
- return;
- case 0:
- prefix = null;
- break;
- default:
- prefix = pattern.slice(0, n).join("/");
- break;
- }
- var remain = pattern.slice(n);
- var read;
- if (prefix === null)
- read = ".";
- else if (isAbsolute(prefix) || isAbsolute(pattern.join("/"))) {
- if (!prefix || !isAbsolute(prefix))
- prefix = "/" + prefix;
- read = prefix;
- } else
- read = prefix;
- var abs = this._makeAbs(read);
- if (childrenIgnored(this, read))
- return cb();
- var isGlobStar = remain[0] === minimatch.GLOBSTAR;
- if (isGlobStar)
- this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb);
- else
- this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb);
- };
- Glob.prototype._processReaddir = function(prefix, read, abs, remain, index, inGlobStar, cb) {
- var self2 = this;
- this._readdir(abs, inGlobStar, function(er, entries) {
- return self2._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb);
- });
- };
- Glob.prototype._processReaddir2 = function(prefix, read, abs, remain, index, inGlobStar, entries, cb) {
- if (!entries)
- return cb();
- var pn = remain[0];
- var negate = !!this.minimatch.negate;
- var rawGlob = pn._glob;
- var dotOk = this.dot || rawGlob.charAt(0) === ".";
- var matchedEntries = [];
- for (var i = 0; i < entries.length; i++) {
- var e = entries[i];
- if (e.charAt(0) !== "." || dotOk) {
- var m;
- if (negate && !prefix) {
- m = !e.match(pn);
- } else {
- m = e.match(pn);
- }
- if (m)
- matchedEntries.push(e);
- }
- }
- var len = matchedEntries.length;
- if (len === 0)
- return cb();
- if (remain.length === 1 && !this.mark && !this.stat) {
- if (!this.matches[index])
- this.matches[index] = /* @__PURE__ */ Object.create(null);
- for (var i = 0; i < len; i++) {
- var e = matchedEntries[i];
- if (prefix) {
- if (prefix !== "/")
- e = prefix + "/" + e;
- else
- e = prefix + e;
- }
- if (e.charAt(0) === "/" && !this.nomount) {
- e = path2.join(this.root, e);
- }
- this._emitMatch(index, e);
- }
- return cb();
- }
- remain.shift();
- for (var i = 0; i < len; i++) {
- var e = matchedEntries[i];
- var newPattern;
- if (prefix) {
- if (prefix !== "/")
- e = prefix + "/" + e;
- else
- e = prefix + e;
- }
- this._process([e].concat(remain), index, inGlobStar, cb);
- }
- cb();
- };
- Glob.prototype._emitMatch = function(index, e) {
- if (this.aborted)
- return;
- if (isIgnored(this, e))
- return;
- if (this.paused) {
- this._emitQueue.push([index, e]);
- return;
- }
- var abs = isAbsolute(e) ? e : this._makeAbs(e);
- if (this.mark)
- e = this._mark(e);
- if (this.absolute)
- e = abs;
- if (this.matches[index][e])
- return;
- if (this.nodir) {
- var c = this.cache[abs];
- if (c === "DIR" || Array.isArray(c))
- return;
- }
- this.matches[index][e] = true;
- var st = this.statCache[abs];
- if (st)
- this.emit("stat", e, st);
- this.emit("match", e);
- };
- Glob.prototype._readdirInGlobStar = function(abs, cb) {
- if (this.aborted)
- return;
- if (this.follow)
- return this._readdir(abs, false, cb);
- var lstatkey = "lstat\0" + abs;
- var self2 = this;
- var lstatcb = inflight(lstatkey, lstatcb_);
- if (lstatcb)
- fs4.lstat(abs, lstatcb);
- function lstatcb_(er, lstat) {
- if (er && er.code === "ENOENT")
- return cb();
- var isSym = lstat && lstat.isSymbolicLink();
- self2.symlinks[abs] = isSym;
- if (!isSym && lstat && !lstat.isDirectory()) {
- self2.cache[abs] = "FILE";
- cb();
- } else
- self2._readdir(abs, false, cb);
- }
- };
- Glob.prototype._readdir = function(abs, inGlobStar, cb) {
- if (this.aborted)
- return;
- cb = inflight("readdir\0" + abs + "\0" + inGlobStar, cb);
- if (!cb)
- return;
- if (inGlobStar && !ownProp(this.symlinks, abs))
- return this._readdirInGlobStar(abs, cb);
- if (ownProp(this.cache, abs)) {
- var c = this.cache[abs];
- if (!c || c === "FILE")
- return cb();
- if (Array.isArray(c))
- return cb(null, c);
- }
- var self2 = this;
- fs4.readdir(abs, readdirCb(this, abs, cb));
- };
- function readdirCb(self2, abs, cb) {
- return function(er, entries) {
- if (er)
- self2._readdirError(abs, er, cb);
- else
- self2._readdirEntries(abs, entries, cb);
- };
- }
- Glob.prototype._readdirEntries = function(abs, entries, cb) {
- if (this.aborted)
- return;
- if (!this.mark && !this.stat) {
- for (var i = 0; i < entries.length; i++) {
- var e = entries[i];
- if (abs === "/")
- e = abs + e;
- else
- e = abs + "/" + e;
- this.cache[e] = true;
- }
- }
- this.cache[abs] = entries;
- return cb(null, entries);
- };
- Glob.prototype._readdirError = function(f, er, cb) {
- if (this.aborted)
- return;
- switch (er.code) {
- case "ENOTSUP":
- // https://github.com/isaacs/node-glob/issues/205
- case "ENOTDIR":
- var abs = this._makeAbs(f);
- this.cache[abs] = "FILE";
- if (abs === this.cwdAbs) {
- var error = new Error(er.code + " invalid cwd " + this.cwd);
- error.path = this.cwd;
- error.code = er.code;
- this.emit("error", error);
- this.abort();
- }
- break;
- case "ENOENT":
- // not terribly unusual
- case "ELOOP":
- case "ENAMETOOLONG":
- case "UNKNOWN":
- this.cache[this._makeAbs(f)] = false;
- break;
- default:
- this.cache[this._makeAbs(f)] = false;
- if (this.strict) {
- this.emit("error", er);
- this.abort();
- }
- if (!this.silent)
- console.error("glob error", er);
- break;
- }
- return cb();
- };
- Glob.prototype._processGlobStar = function(prefix, read, abs, remain, index, inGlobStar, cb) {
- var self2 = this;
- this._readdir(abs, inGlobStar, function(er, entries) {
- self2._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb);
- });
- };
- Glob.prototype._processGlobStar2 = function(prefix, read, abs, remain, index, inGlobStar, entries, cb) {
- if (!entries)
- return cb();
- var remainWithoutGlobStar = remain.slice(1);
- var gspref = prefix ? [prefix] : [];
- var noGlobStar = gspref.concat(remainWithoutGlobStar);
- this._process(noGlobStar, index, false, cb);
- var isSym = this.symlinks[abs];
- var len = entries.length;
- if (isSym && inGlobStar)
- return cb();
- for (var i = 0; i < len; i++) {
- var e = entries[i];
- if (e.charAt(0) === "." && !this.dot)
- continue;
- var instead = gspref.concat(entries[i], remainWithoutGlobStar);
- this._process(instead, index, true, cb);
- var below = gspref.concat(entries[i], remain);
- this._process(below, index, true, cb);
- }
- cb();
- };
- Glob.prototype._processSimple = function(prefix, index, cb) {
- var self2 = this;
- this._stat(prefix, function(er, exists) {
- self2._processSimple2(prefix, index, er, exists, cb);
- });
- };
- Glob.prototype._processSimple2 = function(prefix, index, er, exists, cb) {
- if (!this.matches[index])
- this.matches[index] = /* @__PURE__ */ Object.create(null);
- if (!exists)
- return cb();
- if (prefix && isAbsolute(prefix) && !this.nomount) {
- var trail = /[\/\\]$/.test(prefix);
- if (prefix.charAt(0) === "/") {
- prefix = path2.join(this.root, prefix);
- } else {
- prefix = path2.resolve(this.root, prefix);
- if (trail)
- prefix += "/";
- }
- }
- if (process.platform === "win32")
- prefix = prefix.replace(/\\/g, "/");
- this._emitMatch(index, prefix);
- cb();
- };
- Glob.prototype._stat = function(f, cb) {
- var abs = this._makeAbs(f);
- var needDir = f.slice(-1) === "/";
- if (f.length > this.maxLength)
- return cb();
- if (!this.stat && ownProp(this.cache, abs)) {
- var c = this.cache[abs];
- if (Array.isArray(c))
- c = "DIR";
- if (!needDir || c === "DIR")
- return cb(null, c);
- if (needDir && c === "FILE")
- return cb();
- }
- var exists;
- var stat = this.statCache[abs];
- if (stat !== void 0) {
- if (stat === false)
- return cb(null, stat);
- else {
- var type = stat.isDirectory() ? "DIR" : "FILE";
- if (needDir && type === "FILE")
- return cb();
- else
- return cb(null, type, stat);
- }
- }
- var self2 = this;
- var statcb = inflight("stat\0" + abs, lstatcb_);
- if (statcb)
- fs4.lstat(abs, statcb);
- function lstatcb_(er, lstat) {
- if (lstat && lstat.isSymbolicLink()) {
- return fs4.stat(abs, function(er2, stat2) {
- if (er2)
- self2._stat2(f, abs, null, lstat, cb);
- else
- self2._stat2(f, abs, er2, stat2, cb);
- });
- } else {
- self2._stat2(f, abs, er, lstat, cb);
- }
- }
- };
- Glob.prototype._stat2 = function(f, abs, er, stat, cb) {
- if (er && (er.code === "ENOENT" || er.code === "ENOTDIR")) {
- this.statCache[abs] = false;
- return cb();
- }
- var needDir = f.slice(-1) === "/";
- this.statCache[abs] = stat;
- if (abs.slice(-1) === "/" && stat && !stat.isDirectory())
- return cb(null, false, stat);
- var c = true;
- if (stat)
- c = stat.isDirectory() ? "DIR" : "FILE";
- this.cache[abs] = this.cache[abs] || c;
- if (needDir && c === "FILE")
- return cb();
- return cb(null, c, stat);
- };
- }
- });
- // node_modules/lodash.mergewith/index.js
- var require_lodash3 = __commonJS({
- "node_modules/lodash.mergewith/index.js"(exports2, module2) {
- var LARGE_ARRAY_SIZE = 200;
- var HASH_UNDEFINED = "__lodash_hash_undefined__";
- var HOT_COUNT = 800;
- var HOT_SPAN = 16;
- var MAX_SAFE_INTEGER = 9007199254740991;
- var argsTag = "[object Arguments]";
- var arrayTag = "[object Array]";
- var asyncTag = "[object AsyncFunction]";
- var boolTag = "[object Boolean]";
- var dateTag = "[object Date]";
- var errorTag = "[object Error]";
- var funcTag = "[object Function]";
- var genTag = "[object GeneratorFunction]";
- var mapTag = "[object Map]";
- var numberTag = "[object Number]";
- var nullTag = "[object Null]";
- var objectTag = "[object Object]";
- var proxyTag = "[object Proxy]";
- var regexpTag = "[object RegExp]";
- var setTag = "[object Set]";
- var stringTag = "[object String]";
- var undefinedTag = "[object Undefined]";
- var weakMapTag = "[object WeakMap]";
- var arrayBufferTag = "[object ArrayBuffer]";
- var dataViewTag = "[object DataView]";
- var float32Tag = "[object Float32Array]";
- var float64Tag = "[object Float64Array]";
- var int8Tag = "[object Int8Array]";
- var int16Tag = "[object Int16Array]";
- var int32Tag = "[object Int32Array]";
- var uint8Tag = "[object Uint8Array]";
- var uint8ClampedTag = "[object Uint8ClampedArray]";
- var uint16Tag = "[object Uint16Array]";
- var uint32Tag = "[object Uint32Array]";
- var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
- var reIsHostCtor = /^\[object .+?Constructor\]$/;
- var reIsUint = /^(?:0|[1-9]\d*)$/;
- var typedArrayTags = {};
- typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
- typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
- var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
- var freeSelf = typeof self == "object" && self && self.Object === Object && self;
- var root = freeGlobal || freeSelf || Function("return this")();
- var freeExports = typeof exports2 == "object" && exports2 && !exports2.nodeType && exports2;
- var freeModule = freeExports && typeof module2 == "object" && module2 && !module2.nodeType && module2;
- var moduleExports = freeModule && freeModule.exports === freeExports;
- var freeProcess = moduleExports && freeGlobal.process;
- var nodeUtil = (function() {
- try {
- var types = freeModule && freeModule.require && freeModule.require("util").types;
- if (types) {
- return types;
- }
- return freeProcess && freeProcess.binding && freeProcess.binding("util");
- } catch (e) {
- }
- })();
- var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
- function apply(func, thisArg, args) {
- switch (args.length) {
- case 0:
- return func.call(thisArg);
- case 1:
- return func.call(thisArg, args[0]);
- case 2:
- return func.call(thisArg, args[0], args[1]);
- case 3:
- return func.call(thisArg, args[0], args[1], args[2]);
- }
- return func.apply(thisArg, args);
- }
- function baseTimes(n, iteratee) {
- var index = -1, result = Array(n);
- while (++index < n) {
- result[index] = iteratee(index);
- }
- return result;
- }
- function baseUnary(func) {
- return function(value) {
- return func(value);
- };
- }
- function getValue(object, key) {
- return object == null ? void 0 : object[key];
- }
- function overArg(func, transform) {
- return function(arg) {
- return func(transform(arg));
- };
- }
- var arrayProto = Array.prototype;
- var funcProto = Function.prototype;
- var objectProto = Object.prototype;
- var coreJsData = root["__core-js_shared__"];
- var funcToString = funcProto.toString;
- var hasOwnProperty = objectProto.hasOwnProperty;
- var maskSrcKey = (function() {
- var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
- return uid ? "Symbol(src)_1." + uid : "";
- })();
- var nativeObjectToString = objectProto.toString;
- var objectCtorString = funcToString.call(Object);
- var reIsNative = RegExp(
- "^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
- );
- var Buffer2 = moduleExports ? root.Buffer : void 0;
- var Symbol2 = root.Symbol;
- var Uint8Array2 = root.Uint8Array;
- var allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : void 0;
- var getPrototype = overArg(Object.getPrototypeOf, Object);
- var objectCreate = Object.create;
- var propertyIsEnumerable = objectProto.propertyIsEnumerable;
- var splice = arrayProto.splice;
- var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;
- var defineProperty = (function() {
- try {
- var func = getNative(Object, "defineProperty");
- func({}, "", {});
- return func;
- } catch (e) {
- }
- })();
- var nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : void 0;
- var nativeMax = Math.max;
- var nativeNow = Date.now;
- var Map2 = getNative(root, "Map");
- var nativeCreate = getNative(Object, "create");
- var baseCreate = /* @__PURE__ */ (function() {
- function object() {
- }
- return function(proto) {
- if (!isObject(proto)) {
- return {};
- }
- if (objectCreate) {
- return objectCreate(proto);
- }
- object.prototype = proto;
- var result = new object();
- object.prototype = void 0;
- return result;
- };
- })();
- function Hash(entries) {
- var index = -1, length = entries == null ? 0 : entries.length;
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
- }
- function hashClear() {
- this.__data__ = nativeCreate ? nativeCreate(null) : {};
- this.size = 0;
- }
- function hashDelete(key) {
- var result = this.has(key) && delete this.__data__[key];
- this.size -= result ? 1 : 0;
- return result;
- }
- function hashGet(key) {
- var data = this.__data__;
- if (nativeCreate) {
- var result = data[key];
- return result === HASH_UNDEFINED ? void 0 : result;
- }
- return hasOwnProperty.call(data, key) ? data[key] : void 0;
- }
- function hashHas(key) {
- var data = this.__data__;
- return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key);
- }
- function hashSet(key, value) {
- var data = this.__data__;
- this.size += this.has(key) ? 0 : 1;
- data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED : value;
- return this;
- }
- Hash.prototype.clear = hashClear;
- Hash.prototype["delete"] = hashDelete;
- Hash.prototype.get = hashGet;
- Hash.prototype.has = hashHas;
- Hash.prototype.set = hashSet;
- function ListCache(entries) {
- var index = -1, length = entries == null ? 0 : entries.length;
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
- }
- function listCacheClear() {
- this.__data__ = [];
- this.size = 0;
- }
- function listCacheDelete(key) {
- var data = this.__data__, index = assocIndexOf(data, key);
- if (index < 0) {
- return false;
- }
- var lastIndex = data.length - 1;
- if (index == lastIndex) {
- data.pop();
- } else {
- splice.call(data, index, 1);
- }
- --this.size;
- return true;
- }
- function listCacheGet(key) {
- var data = this.__data__, index = assocIndexOf(data, key);
- return index < 0 ? void 0 : data[index][1];
- }
- function listCacheHas(key) {
- return assocIndexOf(this.__data__, key) > -1;
- }
- function listCacheSet(key, value) {
- var data = this.__data__, index = assocIndexOf(data, key);
- if (index < 0) {
- ++this.size;
- data.push([key, value]);
- } else {
- data[index][1] = value;
- }
- return this;
- }
- ListCache.prototype.clear = listCacheClear;
- ListCache.prototype["delete"] = listCacheDelete;
- ListCache.prototype.get = listCacheGet;
- ListCache.prototype.has = listCacheHas;
- ListCache.prototype.set = listCacheSet;
- function MapCache(entries) {
- var index = -1, length = entries == null ? 0 : entries.length;
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
- }
- function mapCacheClear() {
- this.size = 0;
- this.__data__ = {
- "hash": new Hash(),
- "map": new (Map2 || ListCache)(),
- "string": new Hash()
- };
- }
- function mapCacheDelete(key) {
- var result = getMapData(this, key)["delete"](key);
- this.size -= result ? 1 : 0;
- return result;
- }
- function mapCacheGet(key) {
- return getMapData(this, key).get(key);
- }
- function mapCacheHas(key) {
- return getMapData(this, key).has(key);
- }
- function mapCacheSet(key, value) {
- var data = getMapData(this, key), size = data.size;
- data.set(key, value);
- this.size += data.size == size ? 0 : 1;
- return this;
- }
- MapCache.prototype.clear = mapCacheClear;
- MapCache.prototype["delete"] = mapCacheDelete;
- MapCache.prototype.get = mapCacheGet;
- MapCache.prototype.has = mapCacheHas;
- MapCache.prototype.set = mapCacheSet;
- function Stack(entries) {
- var data = this.__data__ = new ListCache(entries);
- this.size = data.size;
- }
- function stackClear() {
- this.__data__ = new ListCache();
- this.size = 0;
- }
- function stackDelete(key) {
- var data = this.__data__, result = data["delete"](key);
- this.size = data.size;
- return result;
- }
- function stackGet(key) {
- return this.__data__.get(key);
- }
- function stackHas(key) {
- return this.__data__.has(key);
- }
- function stackSet(key, value) {
- var data = this.__data__;
- if (data instanceof ListCache) {
- var pairs = data.__data__;
- if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) {
- pairs.push([key, value]);
- this.size = ++data.size;
- return this;
- }
- data = this.__data__ = new MapCache(pairs);
- }
- data.set(key, value);
- this.size = data.size;
- return this;
- }
- Stack.prototype.clear = stackClear;
- Stack.prototype["delete"] = stackDelete;
- Stack.prototype.get = stackGet;
- Stack.prototype.has = stackHas;
- Stack.prototype.set = stackSet;
- function arrayLikeKeys(value, inherited) {
- var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length;
- for (var key in value) {
- if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
- (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
- isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
- isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties.
- isIndex(key, length)))) {
- result.push(key);
- }
- }
- return result;
- }
- function assignMergeValue(object, key, value) {
- if (value !== void 0 && !eq(object[key], value) || value === void 0 && !(key in object)) {
- baseAssignValue(object, key, value);
- }
- }
- function assignValue(object, key, value) {
- var objValue = object[key];
- if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === void 0 && !(key in object)) {
- baseAssignValue(object, key, value);
- }
- }
- function assocIndexOf(array, key) {
- var length = array.length;
- while (length--) {
- if (eq(array[length][0], key)) {
- return length;
- }
- }
- return -1;
- }
- function baseAssignValue(object, key, value) {
- if (key == "__proto__" && defineProperty) {
- defineProperty(object, key, {
- "configurable": true,
- "enumerable": true,
- "value": value,
- "writable": true
- });
- } else {
- object[key] = value;
- }
- }
- var baseFor = createBaseFor();
- function baseGetTag(value) {
- if (value == null) {
- return value === void 0 ? undefinedTag : nullTag;
- }
- return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
- }
- function baseIsArguments(value) {
- return isObjectLike(value) && baseGetTag(value) == argsTag;
- }
- function baseIsNative(value) {
- if (!isObject(value) || isMasked(value)) {
- return false;
- }
- var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
- return pattern.test(toSource(value));
- }
- function baseIsTypedArray(value) {
- return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
- }
- function baseKeysIn(object) {
- if (!isObject(object)) {
- return nativeKeysIn(object);
- }
- var isProto = isPrototype(object), result = [];
- for (var key in object) {
- if (!(key == "constructor" && (isProto || !hasOwnProperty.call(object, key)))) {
- result.push(key);
- }
- }
- return result;
- }
- function baseMerge(object, source, srcIndex, customizer, stack) {
- if (object === source) {
- return;
- }
- baseFor(source, function(srcValue, key) {
- stack || (stack = new Stack());
- if (isObject(srcValue)) {
- baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
- } else {
- var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : void 0;
- if (newValue === void 0) {
- newValue = srcValue;
- }
- assignMergeValue(object, key, newValue);
- }
- }, keysIn);
- }
- function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
- var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue);
- if (stacked) {
- assignMergeValue(object, key, stacked);
- return;
- }
- var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : void 0;
- var isCommon = newValue === void 0;
- if (isCommon) {
- var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue);
- newValue = srcValue;
- if (isArr || isBuff || isTyped) {
- if (isArray(objValue)) {
- newValue = objValue;
- } else if (isArrayLikeObject(objValue)) {
- newValue = copyArray(objValue);
- } else if (isBuff) {
- isCommon = false;
- newValue = cloneBuffer(srcValue, true);
- } else if (isTyped) {
- isCommon = false;
- newValue = cloneTypedArray(srcValue, true);
- } else {
- newValue = [];
- }
- } else if (isPlainObject(srcValue) || isArguments(srcValue)) {
- newValue = objValue;
- if (isArguments(objValue)) {
- newValue = toPlainObject(objValue);
- } else if (!isObject(objValue) || isFunction(objValue)) {
- newValue = initCloneObject(srcValue);
- }
- } else {
- isCommon = false;
- }
- }
- if (isCommon) {
- stack.set(srcValue, newValue);
- mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
- stack["delete"](srcValue);
- }
- assignMergeValue(object, key, newValue);
- }
- function baseRest(func, start) {
- return setToString(overRest(func, start, identity), func + "");
- }
- var baseSetToString = !defineProperty ? identity : function(func, string) {
- return defineProperty(func, "toString", {
- "configurable": true,
- "enumerable": false,
- "value": constant(string),
- "writable": true
- });
- };
- function cloneBuffer(buffer, isDeep) {
- if (isDeep) {
- return buffer.slice();
- }
- var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
- buffer.copy(result);
- return result;
- }
- function cloneArrayBuffer(arrayBuffer) {
- var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
- new Uint8Array2(result).set(new Uint8Array2(arrayBuffer));
- return result;
- }
- function cloneTypedArray(typedArray, isDeep) {
- var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
- return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
- }
- function copyArray(source, array) {
- var index = -1, length = source.length;
- array || (array = Array(length));
- while (++index < length) {
- array[index] = source[index];
- }
- return array;
- }
- function copyObject(source, props, object, customizer) {
- var isNew = !object;
- object || (object = {});
- var index = -1, length = props.length;
- while (++index < length) {
- var key = props[index];
- var newValue = customizer ? customizer(object[key], source[key], key, object, source) : void 0;
- if (newValue === void 0) {
- newValue = source[key];
- }
- if (isNew) {
- baseAssignValue(object, key, newValue);
- } else {
- assignValue(object, key, newValue);
- }
- }
- return object;
- }
- function createAssigner(assigner) {
- return baseRest(function(object, sources) {
- var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : void 0, guard = length > 2 ? sources[2] : void 0;
- customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : void 0;
- if (guard && isIterateeCall(sources[0], sources[1], guard)) {
- customizer = length < 3 ? void 0 : customizer;
- length = 1;
- }
- object = Object(object);
- while (++index < length) {
- var source = sources[index];
- if (source) {
- assigner(object, source, index, customizer);
- }
- }
- return object;
- });
- }
- function createBaseFor(fromRight) {
- return function(object, iteratee, keysFunc) {
- var index = -1, iterable = Object(object), props = keysFunc(object), length = props.length;
- while (length--) {
- var key = props[fromRight ? length : ++index];
- if (iteratee(iterable[key], key, iterable) === false) {
- break;
- }
- }
- return object;
- };
- }
- function getMapData(map, key) {
- var data = map.__data__;
- return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
- }
- function getNative(object, key) {
- var value = getValue(object, key);
- return baseIsNative(value) ? value : void 0;
- }
- function getRawTag(value) {
- var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];
- try {
- value[symToStringTag] = void 0;
- var unmasked = true;
- } catch (e) {
- }
- var result = nativeObjectToString.call(value);
- if (unmasked) {
- if (isOwn) {
- value[symToStringTag] = tag;
- } else {
- delete value[symToStringTag];
- }
- }
- return result;
- }
- function initCloneObject(object) {
- return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};
- }
- function isIndex(value, length) {
- var type = typeof value;
- length = length == null ? MAX_SAFE_INTEGER : length;
- return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);
- }
- function isIterateeCall(value, index, object) {
- if (!isObject(object)) {
- return false;
- }
- var type = typeof index;
- if (type == "number" ? isArrayLike(object) && isIndex(index, object.length) : type == "string" && index in object) {
- return eq(object[index], value);
- }
- return false;
- }
- function isKeyable(value) {
- var type = typeof value;
- return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null;
- }
- function isMasked(func) {
- return !!maskSrcKey && maskSrcKey in func;
- }
- function isPrototype(value) {
- var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto;
- return value === proto;
- }
- function nativeKeysIn(object) {
- var result = [];
- if (object != null) {
- for (var key in Object(object)) {
- result.push(key);
- }
- }
- return result;
- }
- function objectToString(value) {
- return nativeObjectToString.call(value);
- }
- function overRest(func, start, transform) {
- start = nativeMax(start === void 0 ? func.length - 1 : start, 0);
- return function() {
- var args = arguments, index = -1, length = nativeMax(args.length - start, 0), array = Array(length);
- while (++index < length) {
- array[index] = args[start + index];
- }
- index = -1;
- var otherArgs = Array(start + 1);
- while (++index < start) {
- otherArgs[index] = args[index];
- }
- otherArgs[start] = transform(array);
- return apply(func, this, otherArgs);
- };
- }
- function safeGet(object, key) {
- if (key === "constructor" && typeof object[key] === "function") {
- return;
- }
- if (key == "__proto__") {
- return;
- }
- return object[key];
- }
- var setToString = shortOut(baseSetToString);
- function shortOut(func) {
- var count = 0, lastCalled = 0;
- return function() {
- var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);
- lastCalled = stamp;
- if (remaining > 0) {
- if (++count >= HOT_COUNT) {
- return arguments[0];
- }
- } else {
- count = 0;
- }
- return func.apply(void 0, arguments);
- };
- }
- function toSource(func) {
- if (func != null) {
- try {
- return funcToString.call(func);
- } catch (e) {
- }
- try {
- return func + "";
- } catch (e) {
- }
- }
- return "";
- }
- function eq(value, other) {
- return value === other || value !== value && other !== other;
- }
- var isArguments = baseIsArguments(/* @__PURE__ */ (function() {
- return arguments;
- })()) ? baseIsArguments : function(value) {
- return isObjectLike(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee");
- };
- var isArray = Array.isArray;
- function isArrayLike(value) {
- return value != null && isLength(value.length) && !isFunction(value);
- }
- function isArrayLikeObject(value) {
- return isObjectLike(value) && isArrayLike(value);
- }
- var isBuffer = nativeIsBuffer || stubFalse;
- function isFunction(value) {
- if (!isObject(value)) {
- return false;
- }
- var tag = baseGetTag(value);
- return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
- }
- function isLength(value) {
- return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
- }
- function isObject(value) {
- var type = typeof value;
- return value != null && (type == "object" || type == "function");
- }
- function isObjectLike(value) {
- return value != null && typeof value == "object";
- }
- function isPlainObject(value) {
- if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
- return false;
- }
- var proto = getPrototype(value);
- if (proto === null) {
- return true;
- }
- var Ctor = hasOwnProperty.call(proto, "constructor") && proto.constructor;
- return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
- }
- var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
- function toPlainObject(value) {
- return copyObject(value, keysIn(value));
- }
- function keysIn(object) {
- return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
- }
- var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {
- baseMerge(object, source, srcIndex, customizer);
- });
- function constant(value) {
- return function() {
- return value;
- };
- }
- function identity(value) {
- return value;
- }
- function stubFalse() {
- return false;
- }
- module2.exports = mergeWith;
- }
- });
- // node_modules/swagger-jsdoc/src/utils.js
- var require_utils5 = __commonJS({
- "node_modules/swagger-jsdoc/src/utils.js"(exports2, module2) {
- var fs4 = require("fs");
- var path2 = require("path");
- var glob = require_glob();
- var mergeWith = require_lodash3();
- function convertGlobPaths(globs) {
- return globs.map((globString) => glob.sync(globString)).reduce((previous, current) => previous.concat(current), []);
- }
- function hasEmptyProperty(obj) {
- return Object.keys(obj).map((key) => obj[key]).every(
- (keyObject) => typeof keyObject === "object" && Object.keys(keyObject).every((key) => !(key in keyObject))
- );
- }
- function extractYamlFromJsDoc(jsDocComment) {
- const yamlParts = [];
- for (const tag of jsDocComment.tags) {
- if (tag.title === "swagger" || tag.title === "openapi") {
- yamlParts.push(tag.description);
- }
- }
- return yamlParts;
- }
- function extractAnnotations(filePath, encoding = "utf8") {
- const fileContent = fs4.readFileSync(filePath, { encoding });
- const ext = path2.extname(filePath);
- const jsDocRegex = /\/\*\*([\s\S]*?)\*\//gm;
- const csDocRegex = /###([\s\S]*?)###/gm;
- const yaml = [];
- const jsdoc = [];
- let regexResults = null;
- switch (ext) {
- case ".yml":
- case ".yaml":
- yaml.push(fileContent);
- break;
- case ".coffee":
- regexResults = fileContent.match(csDocRegex) || [];
- for (const result of regexResults) {
- let part = result.split("###");
- part[0] = `/**`;
- part[part.length - 1] = "*/";
- part = part.join("");
- jsdoc.push(part);
- }
- break;
- default: {
- regexResults = fileContent.match(jsDocRegex) || [];
- for (const result of regexResults) {
- jsdoc.push(result);
- }
- }
- }
- return { yaml, jsdoc };
- }
- function isTagPresentInTags(tag, tags) {
- const match = tags.find((targetTag) => tag.name === targetTag.name);
- if (match) return true;
- return false;
- }
- function loadDefinition(defPath, swaggerDefinition) {
- const resolvedPath = path2.resolve(defPath);
- const extName = path2.extname(resolvedPath);
- const loadCjs = () => require(resolvedPath);
- const loadJson = () => JSON.parse(swaggerDefinition);
- const loadYaml = () => require_yaml2().parse(swaggerDefinition);
- const LOADERS = {
- ".js": loadCjs,
- // on purpose, to allow throwing by nodejs and .cjs suggestion
- ".cjs": loadCjs,
- ".json": loadJson,
- ".yml": loadYaml,
- ".yaml": loadYaml
- };
- const loader = LOADERS[extName];
- if (loader === void 0) {
- throw new Error("Definition file should be .cjs, .json, .yml or .yaml");
- }
- return loader();
- }
- function mergeDeep(first, second) {
- return mergeWith({}, first, second, (a, b) => b === null ? a : void 0);
- }
- module2.exports.mergeDeep = mergeDeep;
- module2.exports.convertGlobPaths = convertGlobPaths;
- module2.exports.hasEmptyProperty = hasEmptyProperty;
- module2.exports.extractYamlFromJsDoc = extractYamlFromJsDoc;
- module2.exports.extractAnnotations = extractAnnotations;
- module2.exports.isTagPresentInTags = isTagPresentInTags;
- module2.exports.loadDefinition = loadDefinition;
- }
- });
- // node_modules/swagger-jsdoc/src/specification.js
- var require_specification = __commonJS({
- "node_modules/swagger-jsdoc/src/specification.js"(exports2, module2) {
- var doctrine = require_doctrine();
- var parser = require_swagger_parser();
- var YAML = require_yaml2();
- var {
- hasEmptyProperty,
- convertGlobPaths,
- extractAnnotations,
- mergeDeep,
- extractYamlFromJsDoc,
- isTagPresentInTags
- } = require_utils5();
- function prepare(definition) {
- const swaggerObject = JSON.parse(JSON.stringify(definition));
- const specificationTemplate = {
- v2: [
- "paths",
- "definitions",
- "responses",
- "parameters",
- "securityDefinitions"
- ],
- v3: [
- "paths",
- "definitions",
- "responses",
- "parameters",
- "securityDefinitions",
- "components"
- ],
- v4: ["components", "channels"]
- };
- const getVersion = () => {
- if (swaggerObject.asyncapi) {
- return "v4";
- }
- if (swaggerObject.openapi) {
- return "v3";
- }
- if (swaggerObject.swagger) {
- return "v2";
- }
- swaggerObject.swagger = "2.0";
- return "v2";
- };
- const version = getVersion();
- specificationTemplate[version].forEach((property) => {
- swaggerObject[property] = swaggerObject[property] || {};
- });
- swaggerObject.tags = swaggerObject.tags || [];
- return swaggerObject;
- }
- function format(swaggerObject, ext) {
- if (ext === ".yml" || ext === ".yaml") {
- return YAML.stringify(swaggerObject);
- }
- return swaggerObject;
- }
- function clean(swaggerObject) {
- for (const prop of [
- "definitions",
- "responses",
- "parameters",
- "securityDefinitions"
- ]) {
- if (hasEmptyProperty(swaggerObject[prop])) {
- delete swaggerObject[prop];
- }
- }
- return swaggerObject;
- }
- function finalize(swaggerObject, options) {
- let specification = swaggerObject;
- parser.parse(swaggerObject, (err, api) => {
- if (!err) {
- specification = api;
- }
- });
- if (specification.openapi) {
- specification = clean(specification);
- }
- return format(specification, options.format);
- }
- function organize(swaggerObject, annotation, property) {
- if (property === "x-webhooks") {
- swaggerObject[property] = mergeDeep(
- swaggerObject[property],
- annotation[property]
- );
- }
- if (property.startsWith("x-")) return;
- const commonProperties = [
- "components",
- "consumes",
- "produces",
- "paths",
- "schemas",
- "securityDefinitions",
- "responses",
- "parameters",
- "definitions",
- "channels"
- ];
- if (commonProperties.includes(property)) {
- for (const definition of Object.keys(annotation[property])) {
- swaggerObject[property][definition] = mergeDeep(
- swaggerObject[property][definition],
- annotation[property][definition]
- );
- }
- } else if (property === "tags") {
- const { tags } = annotation;
- if (Array.isArray(tags)) {
- for (const tag of tags) {
- if (!isTagPresentInTags(tag, swaggerObject.tags)) {
- swaggerObject.tags.push(tag);
- }
- }
- } else if (!isTagPresentInTags(tags, swaggerObject.tags)) {
- swaggerObject.tags.push(tags);
- }
- } else {
- swaggerObject.paths[property] = mergeDeep(
- swaggerObject.paths[property],
- annotation[property]
- );
- }
- }
- function build(options) {
- YAML.defaultOptions.keepCstNodes = true;
- const definition = options.swaggerDefinition || options.definition;
- const specification = prepare(definition);
- const yamlDocsAnchors = /* @__PURE__ */ new Map();
- const yamlDocsErrors = [];
- const yamlDocsReady = [];
- for (const filePath of convertGlobPaths(options.apis)) {
- const {
- yaml: yamlAnnotations,
- jsdoc: jsdocAnnotations
- } = extractAnnotations(filePath, options.encoding);
- if (yamlAnnotations.length) {
- for (const annotation of yamlAnnotations) {
- const parsed = Object.assign(YAML.parseDocument(annotation), {
- filePath
- });
- const anchors = parsed.anchors.getNames();
- if (anchors.length) {
- for (const anchor of anchors) {
- yamlDocsAnchors.set(anchor, parsed);
- }
- } else if (parsed.errors && parsed.errors.length) {
- parsed.errors.forEach((err) => {
- err.annotation = annotation;
- });
- yamlDocsErrors.push(parsed);
- } else {
- yamlDocsReady.push(parsed);
- }
- }
- }
- if (jsdocAnnotations.length) {
- for (const annotation of jsdocAnnotations) {
- const jsDocComment = doctrine.parse(annotation, { unwrap: true });
- for (const doc of extractYamlFromJsDoc(jsDocComment)) {
- const parsed = Object.assign(YAML.parseDocument(doc), { filePath });
- const anchors = parsed.anchors.getNames();
- if (anchors.length) {
- for (const anchor of anchors) {
- yamlDocsAnchors.set(anchor, parsed);
- }
- } else if (parsed.errors && parsed.errors.length) {
- parsed.errors.forEach((err) => {
- err.annotation = doc;
- });
- yamlDocsErrors.push(parsed);
- } else {
- yamlDocsReady.push(parsed);
- }
- }
- }
- }
- }
- if (yamlDocsErrors.length) {
- for (const docWithErr of yamlDocsErrors) {
- const errsToDelete = [];
- docWithErr.errors.forEach((error, index) => {
- if (error.name === "YAMLReferenceError") {
- const refErr = error.message.split("Aliased anchor not found: ").filter((a) => a).join("").split(" at line")[0];
- const anchor = yamlDocsAnchors.get(refErr);
- const anchorString = anchor.cstNode.toString();
- const originalString = docWithErr.cstNode.toString();
- const readyDocument = YAML.parseDocument(
- `${anchorString}
- ${originalString}`
- );
- yamlDocsReady.push(readyDocument);
- errsToDelete.push(index);
- }
- });
- errsToDelete.sort((a, b) => b - a);
- for (const errIndex of errsToDelete) {
- docWithErr.errors.splice(errIndex, 1);
- }
- }
- const errReport = yamlDocsErrors.filter((doc) => doc.errors.length).map(({ errors, filePath }) => {
- let str = `Error in ${filePath} :
- `;
- if (options.verbose) {
- str += errors.map(
- (e) => `${e.toString()}
- Imbedded within:
- \`\`\`
- ${e.annotation.replace(
- /\n/g,
- "\n "
- )}
- \`\`\``
- ).join("\n");
- } else {
- str += errors.map((e) => e.toString()).join("\n");
- }
- return str;
- }).filter((error) => !!error);
- if (errReport.length) {
- if (options.failOnErrors) {
- throw new Error(errReport);
- }
- console.info(
- "Not all input has been taken into account at your final specification."
- );
- console.error(`Here's the report:
- ${errReport}`);
- }
- }
- for (const document2 of yamlDocsReady) {
- const parsedDoc = document2.toJSON();
- for (const property in parsedDoc) {
- organize(specification, parsedDoc, property);
- }
- }
- return finalize(specification, options);
- }
- module2.exports = { prepare, build, organize, finalize, format };
- }
- });
- // node_modules/swagger-jsdoc/src/lib.js
- var require_lib7 = __commonJS({
- "node_modules/swagger-jsdoc/src/lib.js"(exports2, module2) {
- var { build } = require_specification();
- module2.exports = (options) => {
- if (!options) {
- throw new Error(`Missing or invalid input: 'options' is required`);
- }
- if (!options.swaggerDefinition && !options.definition) {
- throw new Error(
- `Missing or invalid input: 'options.swaggerDefinition' or 'options.definition' is required`
- );
- }
- if (!options.apis || !Array.isArray(options.apis)) {
- throw new Error(
- `Missing or invalid input: 'options.apis' is required and it should be an array.`
- );
- }
- return build(options);
- };
- }
- });
- // node_modules/swagger-jsdoc/index.js
- var require_swagger_jsdoc = __commonJS({
- "node_modules/swagger-jsdoc/index.js"(exports2, module2) {
- module2.exports = require_lib7();
- }
- });
- // lib/index.ts
- var index_exports = {};
- __export(index_exports, {
- $: () => $,
- Guid: () => Guid,
- HttpHandler: () => HttpHandler,
- HttpMethod: () => HttpMethod,
- IncorrectMethodException: () => IncorrectMethodException,
- InvalidMiddlewareException: () => InvalidMiddlewareException,
- InvalidRouteException: () => InvalidRouteException,
- Logger: () => Logger,
- Middleware: () => Middleware,
- Route: () => Route,
- RouteNotSetException: () => RouteNotSetException,
- Server: () => Server,
- ServerNotInitializedException: () => ServerNotInitializedException,
- StatusCodes: () => StatusCodes,
- SwaggerDoc: () => SwaggerDoc,
- SwaggerParameterIn: () => SwaggerParameterIn,
- WebSocketHandler: () => WebSocketHandler,
- i18nLoader: () => i18nLoader
- });
- module.exports = __toCommonJS(index_exports);
- // lib/server/Server.ts
- var import_fs2 = __toESM(require("fs"));
- var import_http11 = __toESM(require("http"));
- var import_express3 = __toESM(require_express2());
- // lib/base/http/HttpHandler.ts
- var HttpHandler = class {
- constructor(context) {
- this.context = context ?? null;
- }
- setContext(context) {
- this.context = context;
- return this;
- }
- getContext() {
- return this.context;
- }
- getRoute() {
- return this.route;
- }
- getAction() {
- return this.action;
- }
- };
- // lib/base/http/HttpMethod.ts
- var HttpMethod = /* @__PURE__ */ ((HttpMethod2) => {
- HttpMethod2[HttpMethod2["GET"] = 0] = "GET";
- HttpMethod2[HttpMethod2["POST"] = 1] = "POST";
- return HttpMethod2;
- })(HttpMethod || {});
- // lib/base/http/Middleware.ts
- var Middleware = class extends HttpHandler {
- getOrder() {
- return this.order;
- }
- };
- // lib/base/http/Route.ts
- var Route = class extends HttpHandler {
- get documentation() {
- return "";
- }
- getMethod() {
- return this.method;
- }
- getDocumentation() {
- return this.documentation;
- }
- };
- // lib/base/http/StatusCodes.ts
- var StatusCodes = /* @__PURE__ */ ((StatusCodes2) => {
- StatusCodes2[StatusCodes2["CONTINUE"] = 100] = "CONTINUE";
- StatusCodes2[StatusCodes2["SWITCHING_PROTOCOLS"] = 101] = "SWITCHING_PROTOCOLS";
- StatusCodes2[StatusCodes2["OK"] = 200] = "OK";
- StatusCodes2[StatusCodes2["CREATED"] = 201] = "CREATED";
- StatusCodes2[StatusCodes2["ACCEPTED"] = 202] = "ACCEPTED";
- StatusCodes2[StatusCodes2["NON_AUTHORITATIVE_INFORMATION"] = 203] = "NON_AUTHORITATIVE_INFORMATION";
- StatusCodes2[StatusCodes2["NO_CONTENT"] = 204] = "NO_CONTENT";
- StatusCodes2[StatusCodes2["RESET_CONTENT"] = 205] = "RESET_CONTENT";
- StatusCodes2[StatusCodes2["PARTIAL_CONTENT"] = 206] = "PARTIAL_CONTENT";
- StatusCodes2[StatusCodes2["MULTIPLE_CHOICES"] = 300] = "MULTIPLE_CHOICES";
- StatusCodes2[StatusCodes2["MOVED_PERMANENTLY"] = 301] = "MOVED_PERMANENTLY";
- StatusCodes2[StatusCodes2["MOVED_TEMPORARILY"] = 302] = "MOVED_TEMPORARILY";
- StatusCodes2[StatusCodes2["SEE_OTHER"] = 303] = "SEE_OTHER";
- StatusCodes2[StatusCodes2["NOT_MODIFIED"] = 304] = "NOT_MODIFIED";
- StatusCodes2[StatusCodes2["USE_PROXY"] = 305] = "USE_PROXY";
- StatusCodes2[StatusCodes2["TEMPORARY_REDIRECT"] = 307] = "TEMPORARY_REDIRECT";
- StatusCodes2[StatusCodes2["BAD_REQUEST"] = 400] = "BAD_REQUEST";
- StatusCodes2[StatusCodes2["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
- StatusCodes2[StatusCodes2["PAYMENT_REQUIRED"] = 402] = "PAYMENT_REQUIRED";
- StatusCodes2[StatusCodes2["FORBIDDEN"] = 403] = "FORBIDDEN";
- StatusCodes2[StatusCodes2["NOT_FOUND"] = 404] = "NOT_FOUND";
- StatusCodes2[StatusCodes2["METHOD_NOT_ALLOWED"] = 405] = "METHOD_NOT_ALLOWED";
- StatusCodes2[StatusCodes2["NOT_ACCEPTABLE"] = 406] = "NOT_ACCEPTABLE";
- StatusCodes2[StatusCodes2["PROXY_AUTHENTICATION_REQUIRED"] = 407] = "PROXY_AUTHENTICATION_REQUIRED";
- StatusCodes2[StatusCodes2["REQUEST_TIMEOUT"] = 408] = "REQUEST_TIMEOUT";
- StatusCodes2[StatusCodes2["CONFLICT"] = 409] = "CONFLICT";
- StatusCodes2[StatusCodes2["GONE"] = 410] = "GONE";
- StatusCodes2[StatusCodes2["LENGTH_REQUIRED"] = 411] = "LENGTH_REQUIRED";
- StatusCodes2[StatusCodes2["PRECONDITION_FAILED"] = 412] = "PRECONDITION_FAILED";
- StatusCodes2[StatusCodes2["REQUEST_ENTITY_TOO_LARGE"] = 413] = "REQUEST_ENTITY_TOO_LARGE";
- StatusCodes2[StatusCodes2["REQUEST_URI_TOO_LONG"] = 414] = "REQUEST_URI_TOO_LONG";
- StatusCodes2[StatusCodes2["UNSUPPORTED_MEDIA_TYPE"] = 415] = "UNSUPPORTED_MEDIA_TYPE";
- StatusCodes2[StatusCodes2["REQUESTED_RANGE_NOT_SATISFIABLE"] = 416] = "REQUESTED_RANGE_NOT_SATISFIABLE";
- StatusCodes2[StatusCodes2["EXPECTATION_FAILED"] = 417] = "EXPECTATION_FAILED";
- StatusCodes2[StatusCodes2["INTERNAL_SERVER_ERROR"] = 500] = "INTERNAL_SERVER_ERROR";
- StatusCodes2[StatusCodes2["NOT_IMPLEMENTED"] = 501] = "NOT_IMPLEMENTED";
- StatusCodes2[StatusCodes2["BAD_GATEWAY"] = 502] = "BAD_GATEWAY";
- StatusCodes2[StatusCodes2["SERVICE_UNAVAILABLE"] = 503] = "SERVICE_UNAVAILABLE";
- StatusCodes2[StatusCodes2["GATEWAY_TIMEOUT"] = 504] = "GATEWAY_TIMEOUT";
- StatusCodes2[StatusCodes2["HTTP_VERSION_NOT_SUPPORTED"] = 505] = "HTTP_VERSION_NOT_SUPPORTED";
- return StatusCodes2;
- })(StatusCodes || {});
- // lib/base/exceptions/IncorrectMethodException.ts
- var IncorrectMethodException = class extends Error {
- constructor() {
- super("Incorrect method");
- this.name = "IncorrectMethod";
- }
- };
- // lib/base/exceptions/InvalidMiddlewareException.ts
- var InvalidMiddlewareException = class extends Error {
- constructor(file) {
- super(`Invalid middleware: ${file}`);
- this.name = "InvalidMiddleware";
- }
- };
- // lib/base/exceptions/InvalidRouteException.ts
- var InvalidRouteException = class extends Error {
- constructor(file) {
- super(`Invalid route: ${file}`);
- this.name = "InvalidRoute";
- }
- };
- // lib/base/exceptions/RouteNotSetException.ts
- var RouteNotSetException = class extends Error {
- constructor() {
- super("Route was not set.");
- this.name = "RouteNotSet";
- }
- };
- // lib/base/exceptions/ServerNotInitializedException.ts
- var ServerNotInitializedException = class extends Error {
- constructor() {
- super("Server not initialized");
- this.name = "ServerNotInitialized";
- }
- };
- // lib/base/logger/Logger.ts
- var Colors = {
- reset: "\x1B[0m",
- green: "\x1B[32m",
- red: "\x1B[31m",
- yellow: "\x1B[33m",
- cyan: "\x1B[36m"
- };
- var Logger = class {
- getTime() {
- return (/* @__PURE__ */ new Date()).toISOString();
- }
- log(level, message) {
- const time = this.getTime();
- let levelColor = "";
- switch (level) {
- case "INFO" /* INFO */:
- levelColor = Colors.green;
- break;
- case "ERROR" /* ERROR */:
- levelColor = Colors.red;
- break;
- case "WARN" /* WARN */:
- levelColor = Colors.yellow;
- break;
- }
- console.log(`[${time}] ${levelColor}${level}${Colors.reset} ${Colors.cyan}${message}${Colors.reset}`);
- }
- info(message) {
- this.log("INFO" /* INFO */, message);
- }
- error(message) {
- this.log("ERROR" /* ERROR */, message);
- }
- warn(message) {
- this.log("WARN" /* WARN */, message);
- }
- };
- // lib/base/i18n/i18n.ts
- var import_fs = __toESM(require("fs"));
- var i18nLoader = class _i18nLoader {
- static {
- this.defaultLocale = "en_US";
- }
- constructor(locale) {
- this.locale = locale;
- this.map = {
- "en_US": {
- "org.crazydoctor.extress.start": "Extress server started on port {port}",
- "org.crazydoctor.extress.httpError.500": "Internal server error",
- "org.crazydoctor.extress.httpError.404": "Page {url} not found",
- "org.crazydoctor.extress.swagger.registered": "Swagger documentation is available on {path}",
- "org.crazydoctor.extress.swagger.routeGenerated": "Swagger documentation for route '{route}' generated"
- }
- };
- }
- static getInstance(locale) {
- if (!_i18nLoader.instance)
- _i18nLoader.instance = new _i18nLoader(locale ?? _i18nLoader.defaultLocale);
- return _i18nLoader.instance;
- }
- setLocale(locale) {
- this.locale = locale;
- return this;
- }
- load(...paths) {
- for (const p of paths) {
- try {
- const data = import_fs.default.readFileSync(p).toString("utf8");
- try {
- this.loadJson(JSON.parse(data));
- } catch (err) {
- console.error("JSON parsing error:", err);
- }
- } catch (error) {
- console.error(`i18n file '${p}' not found.`, error);
- }
- }
- return this;
- }
- loadJson(obj) {
- for (const locale of Object.keys(obj)) {
- if (!this.map[locale]) this.map[locale] = {};
- for (const key of Object.keys(obj[locale]))
- this.map[locale][key] = obj[locale][key];
- }
- return this;
- }
- get(key) {
- let value;
- if (!this.map[this.locale] && !this.map[_i18nLoader.defaultLocale])
- return key;
- if (this.map[_i18nLoader.defaultLocale])
- value = this.map[_i18nLoader.defaultLocale][key];
- if (this.map[this.locale])
- value = this.map[this.locale][key] ?? value;
- return value ?? key;
- }
- };
- var $ = (key, params) => {
- let text = i18nLoader.getInstance().get(key);
- if (params) {
- for (const param of Object.keys(params)) {
- const regex = new RegExp(`{${param}}`, "g");
- text = text.replace(regex, params[param]);
- }
- }
- return text;
- };
- // node_modules/ws/wrapper.mjs
- var import_stream = __toESM(require_stream(), 1);
- var import_extension = __toESM(require_extension(), 1);
- var import_permessage_deflate = __toESM(require_permessage_deflate(), 1);
- var import_receiver = __toESM(require_receiver(), 1);
- var import_sender = __toESM(require_sender(), 1);
- var import_subprotocol = __toESM(require_subprotocol(), 1);
- var import_websocket = __toESM(require_websocket(), 1);
- var import_websocket_server = __toESM(require_websocket_server(), 1);
- // lib/base/websocket/WebSocketHandler.ts
- var WebSocketHandler = class {
- static {
- this.Event = {
- CONNECTION: "connection",
- MESSAGE: "message",
- CLOSE: "close",
- ERROR: "error"
- };
- }
- };
- // lib/base/util/Guid.ts
- var crypto = __toESM(require("crypto"));
- var Guid = class {
- static new() {
- return crypto.randomUUID();
- }
- };
- // lib/base/registry/Registry.ts
- var Registry = class _Registry {
- constructor() {
- this.server = null;
- }
- static {
- this.httpHandlers = {};
- }
- async registerHttpHandlers() {
- await this.registerRoutes();
- await this.registerMiddlewares();
- return this;
- }
- registerHttpHandler(handler) {
- let id = Guid.new();
- while (_Registry.httpHandlers[id] != null)
- id = Guid.new();
- _Registry.httpHandlers[id] = handler;
- return this;
- }
- setServer(server) {
- if (this.server != null)
- return this;
- return this.server = server, this;
- }
- getServer() {
- return this.server;
- }
- static getHttpHandlers() {
- const handlers = [];
- const middlewareOrders = [];
- for (const key in _Registry.httpHandlers) {
- const handler = _Registry.httpHandlers[key];
- if (handler instanceof Middleware) {
- const order = handler.getOrder();
- if (middlewareOrders.includes(order))
- throw `Invalid middleware order number: ${handler.constructor.name}`;
- middlewareOrders.push(order);
- }
- handlers.push(_Registry.httpHandlers[key]);
- }
- return handlers.sort((a, b) => a instanceof Middleware && b instanceof Middleware && a.getOrder() - b.getOrder() || (a instanceof Middleware && -1 || (b instanceof Middleware && 1 || 0)));
- }
- };
- var Registry_default = Registry;
- // lib/middlewares/ExpressJsonMiddleware.ts
- var import_express = __toESM(require_express2());
- var ExpressJsonMiddleware = class extends Middleware {
- constructor() {
- super(...arguments);
- this.order = -100 /* ExpressJsonMiddleware */;
- this.route = null;
- this.action = import_express.default.json();
- }
- };
- // lib/middlewares/ExpressUrlencodedMiddleware.ts
- var import_express2 = __toESM(require_express2());
- var ExpressUrlencodedMiddleware = class extends Middleware {
- constructor() {
- super(...arguments);
- this.order = -99 /* ExpressUrlencodedMiddleware */;
- this.route = null;
- this.action = import_express2.default.urlencoded({ extended: false });
- }
- };
- // lib/middlewares/InternalServerErrorHandler.ts
- var InternalServerErrorHandler = class extends Middleware {
- constructor() {
- super(...arguments);
- this.order = 1e4 /* InternalServerErrorHandler */;
- this.route = null;
- this.action = (err, req, res, next) => {
- this.context.logError(`${err.message}: ${err.stack}`);
- res.status(500 /* INTERNAL_SERVER_ERROR */).send($("org.crazydoctor.extress.httpError.500"));
- };
- }
- };
- // lib/middlewares/NotFoundErrorHandler.ts
- var NotFoundErrorHandler = class extends Middleware {
- constructor() {
- super(...arguments);
- this.order = 9999 /* NotFoundErrorHandler */;
- this.route = null;
- this.action = (req, res, next) => {
- res.status(404 /* NOT_FOUND */).send($("org.crazydoctor.extress.httpError.404", { url: req.url }));
- };
- }
- };
- // lib/middlewares/PoweredByHeaderMiddleware.ts
- var PoweredByHeaderMiddleware = class extends Middleware {
- constructor() {
- super(...arguments);
- this.action = (req, res, next) => {
- res.setHeader("X-Powered-By", "Extress");
- next();
- };
- this.order = -101 /* PoweredByHeaderMiddleware */;
- this.route = null;
- }
- };
- // lib/middlewares/SessionMiddleware.ts
- var import_express_session = __toESM(require_express_session());
- var SessionMiddleware = class extends Middleware {
- constructor() {
- super(...arguments);
- this.order = -98 /* SessionMiddleware */;
- this.route = null;
- this.action = (0, import_express_session.default)({ secret: this.context.options?.sessionSecret || Guid.new(), resave: this.context.options?.sessionResave || false, saveUninitialized: this.context.options?.sessionSaveUninitialized || false, cookie: { maxAge: this.context.options?.sessionMaxAge || 36e5 } });
- }
- };
- // lib/middlewares/SwaggerUiServeMiddleware.ts
- var import_swagger_ui_express = __toESM(require_swagger_ui_express());
- var SwaggerUiServeMiddleware = class extends Middleware {
- constructor() {
- super(...arguments);
- this.order = -96 /* SwaggerUiServeMiddleware */;
- this.route = this.context.swaggerRoute;
- this.action = import_swagger_ui_express.default.serve;
- }
- };
- // lib/middlewares/SwaggerUiSetupMiddleware.ts
- var import_swagger_jsdoc = __toESM(require_swagger_jsdoc());
- var import_swagger_ui_express2 = __toESM(require_swagger_ui_express());
- var SwaggerUiSetupMiddleware = class extends Middleware {
- constructor() {
- super(...arguments);
- this.order = -95 /* SwaggerUiSetupMiddleware */;
- this.route = this.context.swaggerRoute;
- this.action = this.getSetup();
- }
- getSetup() {
- if (!this.context.swaggerDocsPath)
- return (req, res, next) => {
- next();
- };
- const swaggerOptions = {
- swaggerDefinition: {
- openapi: "3.0.1",
- info: {
- title: this.context.swaggerTitle,
- version: this.context.swaggerApiVersion,
- description: this.context.swaggerDescription
- },
- servers: [
- { url: this.context.host }
- ]
- },
- apis: [this.context.swaggerDocsPath]
- };
- if (this.context.swaggerComponents)
- swaggerOptions.swaggerDefinition.components = this.context.swaggerComponents;
- if (this.context.swaggerSecurity)
- swaggerOptions.swaggerDefinition.security = this.context.swaggerSecurity;
- const swaggerDocs = (0, import_swagger_jsdoc.default)(swaggerOptions);
- this.context.logInfo($("org.crazydoctor.extress.swagger.registered", { path: this.context.swaggerRoute }));
- return import_swagger_ui_express2.default.setup(swaggerDocs);
- }
- };
- // lib/base/registry/SystemRegistry.ts
- var SystemRegistry = class extends Registry_default {
- constructor(config) {
- super();
- this.json = config.json;
- this.urlencoded = config.urlencoded;
- this.sessions = config.sessions;
- this.swagger = config.swagger;
- return this;
- }
- async registerRoutes() {
- return this;
- }
- async registerMiddlewares() {
- const json = this.json, urlencoded = this.urlencoded, swagger = this.swagger, sessions = this.sessions, server = this.getServer();
- json && this.registerHttpHandler(new ExpressJsonMiddleware(server));
- urlencoded && this.registerHttpHandler(new ExpressUrlencodedMiddleware(server));
- sessions && this.registerHttpHandler(new SessionMiddleware(server));
- swagger && this.registerHttpHandler(new SwaggerUiServeMiddleware(server));
- swagger && this.registerHttpHandler(new SwaggerUiSetupMiddleware(server));
- this.registerHttpHandler(new InternalServerErrorHandler(server));
- this.registerHttpHandler(new NotFoundErrorHandler(server));
- this.registerHttpHandler(new PoweredByHeaderMiddleware(server));
- return this;
- }
- };
- var SystemRegistry_default = SystemRegistry;
- // lib/base/registry/DynamicRegistry.ts
- var import_url = require("url");
- var path = __toESM(require("path"));
- var fs2 = __toESM(require("fs"));
- var DynamicRegistry = class extends Registry_default {
- constructor(routesDir, middlewaresDir) {
- super();
- this.routesDir = routesDir;
- this.middlewaresDir = middlewaresDir;
- }
- async registerRoutes() {
- if (this.routesDir == null)
- return this;
- const routesDir = this.routesDir;
- const files = fs2.readdirSync(routesDir, { recursive: true, encoding: "utf8" });
- for (const file of files) {
- if (/\.js$/.test(file)) {
- const fileUrl = (0, import_url.pathToFileURL)(path.join(routesDir, file)).toString();
- const RouteClass = await import(fileUrl).then((mod) => mod.default?.default ?? mod.default ?? mod);
- if (RouteClass.prototype instanceof Route) {
- this.registerHttpHandler(new RouteClass(this.getServer()));
- } else throw new InvalidRouteException(fileUrl);
- }
- }
- return this;
- }
- async registerMiddlewares() {
- if (this.middlewaresDir == null)
- return this;
- const middlewaresDir = this.middlewaresDir;
- const files = fs2.readdirSync(middlewaresDir, { recursive: true, encoding: "utf8" });
- for (const file of files) {
- if (/\.js$/.test(file)) {
- const fileUrl = (0, import_url.pathToFileURL)(path.join(middlewaresDir, file)).toString();
- const MiddlewareClass = await import(fileUrl).then((mod) => mod.default?.default ?? mod.default ?? mod);
- if (MiddlewareClass.prototype instanceof Middleware) {
- this.registerHttpHandler(new MiddlewareClass(this.getServer()));
- } else throw new InvalidMiddlewareException(fileUrl);
- }
- }
- return this;
- }
- };
- var DynamicRegistry_default = DynamicRegistry;
- // lib/server/Server.ts
- var Server = class _Server {
- constructor(properties) {
- this.instance = (0, import_express3.default)();
- this.httpServer = import_http11.default.createServer(this.instance);
- this.port = properties.port;
- this.host = properties.host || `http://localhost:${this.port}`;
- this.i18n = i18nLoader.getInstance();
- if (properties.locale)
- this.i18n.setLocale(properties.locale);
- this.logger = new Logger();
- this.wsHandlers = properties.wsHandlers || {};
- this.wsServers = {};
- this.i18nPath = properties.i18nPath;
- this.middlewaresPath = properties.middlewaresPath;
- this.routesPath = properties.routesPath;
- this.viewEngine = properties.viewEngine;
- this.viewsPath = properties.viewsPath;
- this.options = properties.options;
- if (properties.swagger) {
- this.swaggerDocsPath = properties.swagger?.docsPath;
- this.swaggerTitle = properties.swagger?.title || "API Documentation";
- this.swaggerDescription = properties.swagger?.description || "API Documentation";
- this.swaggerApiVersion = properties.swagger?.version || "1.0.0";
- this.swaggerRoute = properties.swagger?.route || "/api-docs";
- this.swaggerComponents = properties.swagger?.components;
- this.swaggerSecurity = properties.swagger?.security;
- }
- this.systemRegistry = new SystemRegistry_default({
- json: properties.json || false,
- urlencoded: properties.urlencoded || false,
- sessions: properties.sessions || false,
- swagger: properties.swagger != null
- }).setServer(this);
- _Server.registry = _Server.registry == null ? new DynamicRegistry_default(this.routesPath, this.middlewaresPath) : _Server.registry;
- _Server.registry.setServer(this);
- this.initialized = false;
- }
- async init() {
- if (this.viewEngine)
- this.instance.set("view engine", this.viewEngine);
- if (this.viewsPath)
- this.instance.set("views", this.viewsPath);
- await this.systemRegistry.registerHttpHandlers();
- await this.postInit();
- this.initialized = true;
- return this;
- }
- async postInit() {
- if (this.i18nPath)
- this.i18n.load(this.i18nPath);
- await _Server.registry.registerHttpHandlers();
- if (this.swaggerDocsPath)
- import_fs2.default.writeFileSync(this.swaggerDocsPath, "");
- if (Object.keys(this.wsHandlers).length > 0) {
- this.registerWsServers();
- this.applyWsHandlers();
- }
- }
- processHttpHandlers() {
- for (const handler of Registry_default.getHttpHandlers()) {
- if (handler instanceof Middleware)
- this.addMiddleware(handler);
- else if (handler instanceof Route)
- this.addRoute(handler);
- }
- }
- addMiddleware(middleware) {
- if (middleware.getRoute() != null)
- this.instance.use(middleware.getRoute(), middleware.getAction());
- else
- this.instance.use(middleware.getAction());
- return this;
- }
- addRoute(route) {
- if (route.getRoute() == null)
- throw new RouteNotSetException();
- switch (route.getMethod()) {
- case 0 /* GET */:
- return this.get(route);
- case 1 /* POST */:
- return this.post(route);
- default:
- throw new IncorrectMethodException();
- }
- }
- registerRoutesDocumentation() {
- if (!this.swaggerDocsPath)
- return this;
- for (const route of Registry_default.getHttpHandlers()) {
- if (!(route instanceof Route))
- continue;
- if (route.getRoute() == null)
- throw new RouteNotSetException();
- if (![0 /* GET */, 1 /* POST */].includes(route.getMethod()))
- throw new IncorrectMethodException();
- const docs = route.getDocumentation();
- if (docs.length > 0) {
- import_fs2.default.appendFileSync(this.swaggerDocsPath, `${docs}
- `);
- this.logInfo($("org.crazydoctor.extress.swagger.routeGenerated", { route: route.getRoute() }));
- }
- }
- return this;
- }
- registerWsServers() {
- for (const url of Object.keys(this.wsHandlers)) {
- const wsServer = this.wsServers[url] = new import_websocket_server.default({ noServer: true });
- const wsHandler = this.wsHandlers[url];
- wsServer.on(WebSocketHandler.Event.CONNECTION, (ws) => {
- wsHandler.onConnect(ws);
- ws.on(WebSocketHandler.Event.MESSAGE, wsHandler.onMessage);
- ws.on(WebSocketHandler.Event.ERROR, wsHandler.onError);
- ws.on(WebSocketHandler.Event.CLOSE, wsHandler.onClose);
- });
- }
- return this;
- }
- applyWsHandlers() {
- this.httpServer.on("upgrade", (request, socket, head) => {
- const url = request.url?.split("?")[0];
- if (url && this.wsHandlers[url] && this.wsServers[url]) {
- const wsServer = this.wsServers[url];
- wsServer.handleUpgrade(request, socket, head, (ws) => {
- wsServer.emit(WebSocketHandler.Event.CONNECTION, ws, request);
- });
- } else {
- socket.destroy();
- }
- });
- return this;
- }
- getWsConnections(url) {
- const wsServer = this.wsServers[url];
- return wsServer ? wsServer.clients : null;
- }
- logInfo(message) {
- this.logger.info(message);
- }
- logError(message) {
- this.logger.error(message);
- }
- logWarn(message) {
- this.logger.warn(message);
- }
- log(message) {
- switch (message.type) {
- case "warn":
- return this.logWarn(message.text);
- case "error":
- return this.logError(message.text);
- default:
- return this.logInfo(message.text);
- }
- }
- get(route) {
- this.instance.get(route.getRoute(), route.getAction());
- return this;
- }
- post(route) {
- this.instance.post(route.getRoute(), route.getAction());
- return this;
- }
- getLogger() {
- return this.logger;
- }
- i18nLoad(path2) {
- this.i18n.load(path2);
- return this;
- }
- getHost() {
- return this.host;
- }
- getOption(key) {
- return this.options ? this.options[key] || null : null;
- }
- async start(callback) {
- return this.init().then((server) => {
- if (!this.initialized)
- throw new ServerNotInitializedException();
- this.registerRoutesDocumentation();
- this.processHttpHandlers();
- const cb = () => {
- this.logInfo($("org.crazydoctor.extress.start", { "port": this.port }));
- if (callback) callback();
- };
- this.httpServer.listen(this.port, cb);
- return server;
- });
- }
- };
- // lib/base/swagger/SwaggerDoc.ts
- var SwaggerDoc = class _SwaggerDoc {
- constructor(method) {
- this.parameters = [];
- this.responses = [];
- this.security = [];
- this.method = method;
- }
- static get(route) {
- return new _SwaggerDoc(0 /* GET */).setRoute(route);
- }
- static post(route) {
- return new _SwaggerDoc(1 /* POST */).setRoute(route);
- }
- setRoute(route) {
- this.route = route;
- return this;
- }
- setSummary(summary) {
- this.summary = summary;
- return this;
- }
- setDescription(description) {
- this.description = description;
- return this;
- }
- setRequestBody(requestBody) {
- this.requestBody = requestBody;
- return this;
- }
- addParameter(param) {
- this.parameters.push(param);
- return this;
- }
- addResponse(res) {
- this.responses.push(res);
- return this;
- }
- addSecurityScheme(scheme) {
- this.security.push(scheme);
- return this;
- }
- toAnnotation() {
- let annotation = "/**\n";
- annotation += " * @swagger\n";
- annotation += ` * ${this.route}:
- `;
- annotation += ` * ${this.getMethod()}:
- `;
- if (this.summary)
- annotation += ` * summary: ${this.summary}
- `;
- if (this.description)
- annotation += ` * description: ${this.description}
- `;
- if (this.security.length > 0) {
- annotation += " * security:\n";
- for (const scheme of this.security) {
- annotation += ` * - ${scheme}: []
- `;
- }
- }
- if (this.parameters.length > 0) {
- annotation += " * parameters:\n";
- for (const param of this.parameters) {
- annotation += ` * - in: ${param.in}
- `;
- annotation += ` * name: ${param.name}
- `;
- annotation += ` * required: ${param.required}
- `;
- annotation += ` * description: ${param.description}
- `;
- if (param.schema) {
- annotation += " * schema:\n";
- annotation += this.deserializeSchema(param.schema, 4);
- }
- }
- }
- if (this.requestBody) {
- annotation += " * requestBody:\n";
- annotation += ` * required: ${this.requestBody.required}
- `;
- annotation += ` * description: ${this.requestBody.description}
- `;
- annotation += " * content:\n";
- annotation += ` * ${this.requestBody.content.mediaType}:
- `;
- annotation += " * schema:\n";
- annotation += this.deserializeSchema(this.requestBody.content.schema, 6);
- }
- if (this.responses.length > 0) {
- annotation += " * responses:\n";
- for (const res of this.responses) {
- annotation += ` * ${res.code}:
- `;
- annotation += ` * description: ${res.description}
- `;
- if (res.content) {
- annotation += " * content:\n";
- annotation += ` * ${res.content.mediaType}:
- `;
- annotation += " * schema:\n";
- annotation += this.deserializeSchema(res.content.schema, 7);
- }
- }
- }
- annotation += " */\n";
- return annotation.replace(/\t/g, " ");
- }
- getMethod() {
- switch (this.method) {
- case 0 /* GET */:
- return "get";
- case 1 /* POST */:
- return "post";
- default:
- return "undefined";
- }
- }
- deserializeSchema(schema, level) {
- let res = "";
- const indent = " *" + this.repeatStr(" ", level + 1);
- res += indent + `type: ${schema.type}
- `;
- if (schema.description)
- res += indent + `description: ${schema.description}
- `;
- if (schema.example)
- res += indent + `example: ${schema.example}
- `;
- if (schema.items && schema.items.length > 0) {
- res += indent + "items:\n";
- for (const item of schema.items) {
- res += this.deserializeSchema(item, level + 2);
- }
- }
- if (schema.properties && Object.keys(schema.properties).length > 0) {
- res += indent + "properties:\n";
- for (const key of Object.keys(schema.properties)) {
- res += indent + ` ${key}:
- `;
- res += this.deserializeSchema(schema.properties[key], level + 3);
- }
- }
- return res;
- }
- repeatStr(str, n) {
- let res = "";
- for (let i = 0; i < n; i++)
- res += str;
- return res;
- }
- };
- // lib/base/swagger/SwaggerParameterInType.ts
- var SwaggerParameterIn = /* @__PURE__ */ ((SwaggerParameterIn2) => {
- SwaggerParameterIn2["PATH"] = "path";
- SwaggerParameterIn2["QUERY"] = "query";
- SwaggerParameterIn2["HEADER"] = "header";
- SwaggerParameterIn2["COOKIE"] = "cookie";
- SwaggerParameterIn2["BODY"] = "body";
- SwaggerParameterIn2["REQUEST_BODY"] = "requestBody";
- return SwaggerParameterIn2;
- })(SwaggerParameterIn || {});
- // Annotate the CommonJS export names for ESM import in node:
- 0 && (module.exports = {
- $,
- Guid,
- HttpHandler,
- HttpMethod,
- IncorrectMethodException,
- InvalidMiddlewareException,
- InvalidRouteException,
- Logger,
- Middleware,
- Route,
- RouteNotSetException,
- Server,
- ServerNotInitializedException,
- StatusCodes,
- SwaggerDoc,
- SwaggerParameterIn,
- WebSocketHandler,
- i18nLoader
- });
- /*! Bundled license information:
- depd/index.js:
- (*!
- * depd
- * Copyright(c) 2014-2018 Douglas Christopher Wilson
- * MIT Licensed
- *)
- statuses/index.js:
- (*!
- * statuses
- * Copyright(c) 2014 Jonathan Ong
- * Copyright(c) 2016 Douglas Christopher Wilson
- * MIT Licensed
- *)
- toidentifier/index.js:
- (*!
- * toidentifier
- * Copyright(c) 2016 Douglas Christopher Wilson
- * MIT Licensed
- *)
- http-errors/index.js:
- (*!
- * http-errors
- * Copyright(c) 2014 Jonathan Ong
- * Copyright(c) 2016 Douglas Christopher Wilson
- * MIT Licensed
- *)
- bytes/index.js:
- (*!
- * bytes
- * Copyright(c) 2012-2014 TJ Holowaychuk
- * Copyright(c) 2015 Jed Watson
- * MIT Licensed
- *)
- unpipe/index.js:
- (*!
- * unpipe
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- *)
- raw-body/index.js:
- (*!
- * raw-body
- * Copyright(c) 2013-2014 Jonathan Ong
- * Copyright(c) 2014-2022 Douglas Christopher Wilson
- * MIT Licensed
- *)
- ee-first/index.js:
- (*!
- * ee-first
- * Copyright(c) 2014 Jonathan Ong
- * MIT Licensed
- *)
- on-finished/index.js:
- (*!
- * on-finished
- * Copyright(c) 2013 Jonathan Ong
- * Copyright(c) 2014 Douglas Christopher Wilson
- * MIT Licensed
- *)
- content-type/index.js:
- (*!
- * content-type
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- *)
- mime-db/index.js:
- (*!
- * mime-db
- * Copyright(c) 2014 Jonathan Ong
- * Copyright(c) 2015-2022 Douglas Christopher Wilson
- * MIT Licensed
- *)
- mime-types/index.js:
- (*!
- * mime-types
- * Copyright(c) 2014 Jonathan Ong
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- *)
- media-typer/index.js:
- (*!
- * media-typer
- * Copyright(c) 2014-2017 Douglas Christopher Wilson
- * MIT Licensed
- *)
- type-is/index.js:
- (*!
- * type-is
- * Copyright(c) 2014 Jonathan Ong
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
- * MIT Licensed
- *)
- body-parser/lib/read.js:
- body-parser/lib/types/raw.js:
- body-parser/lib/types/text.js:
- body-parser/index.js:
- (*!
- * body-parser
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
- * MIT Licensed
- *)
- body-parser/lib/types/json.js:
- body-parser/lib/types/urlencoded.js:
- (*!
- * body-parser
- * Copyright(c) 2014 Jonathan Ong
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
- * MIT Licensed
- *)
- encodeurl/index.js:
- (*!
- * encodeurl
- * Copyright(c) 2016 Douglas Christopher Wilson
- * MIT Licensed
- *)
- escape-html/index.js:
- (*!
- * escape-html
- * Copyright(c) 2012-2013 TJ Holowaychuk
- * Copyright(c) 2015 Andreas Lubbe
- * Copyright(c) 2015 Tiancheng "Timothy" Gu
- * MIT Licensed
- *)
- parseurl/index.js:
- (*!
- * parseurl
- * Copyright(c) 2014 Jonathan Ong
- * Copyright(c) 2014-2017 Douglas Christopher Wilson
- * MIT Licensed
- *)
- finalhandler/index.js:
- (*!
- * finalhandler
- * Copyright(c) 2014-2022 Douglas Christopher Wilson
- * MIT Licensed
- *)
- express/lib/view.js:
- express/lib/application.js:
- express/lib/request.js:
- express/lib/express.js:
- express/index.js:
- (*!
- * express
- * Copyright(c) 2009-2013 TJ Holowaychuk
- * Copyright(c) 2013 Roman Shtylman
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
- * MIT Licensed
- *)
- etag/index.js:
- (*!
- * etag
- * Copyright(c) 2014-2016 Douglas Christopher Wilson
- * MIT Licensed
- *)
- forwarded/index.js:
- (*!
- * forwarded
- * Copyright(c) 2014-2017 Douglas Christopher Wilson
- * MIT Licensed
- *)
- proxy-addr/index.js:
- (*!
- * proxy-addr
- * Copyright(c) 2014-2016 Douglas Christopher Wilson
- * MIT Licensed
- *)
- express/lib/utils.js:
- express/lib/response.js:
- (*!
- * express
- * Copyright(c) 2009-2013 TJ Holowaychuk
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
- * MIT Licensed
- *)
- router/lib/layer.js:
- router/lib/route.js:
- router/index.js:
- (*!
- * router
- * Copyright(c) 2013 Roman Shtylman
- * Copyright(c) 2014-2022 Douglas Christopher Wilson
- * MIT Licensed
- *)
- negotiator/index.js:
- (*!
- * negotiator
- * Copyright(c) 2012 Federico Romero
- * Copyright(c) 2012-2014 Isaac Z. Schlueter
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- *)
- accepts/index.js:
- (*!
- * accepts
- * Copyright(c) 2014 Jonathan Ong
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- *)
- fresh/index.js:
- (*!
- * fresh
- * Copyright(c) 2012 TJ Holowaychuk
- * Copyright(c) 2016-2017 Douglas Christopher Wilson
- * MIT Licensed
- *)
- range-parser/index.js:
- (*!
- * range-parser
- * Copyright(c) 2012-2014 TJ Holowaychuk
- * Copyright(c) 2015-2016 Douglas Christopher Wilson
- * MIT Licensed
- *)
- content-disposition/index.js:
- (*!
- * content-disposition
- * Copyright(c) 2014-2017 Douglas Christopher Wilson
- * MIT Licensed
- *)
- cookie/index.js:
- (*!
- * cookie
- * Copyright(c) 2012-2014 Roman Shtylman
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- *)
- send/index.js:
- (*!
- * send
- * Copyright(c) 2012 TJ Holowaychuk
- * Copyright(c) 2014-2022 Douglas Christopher Wilson
- * MIT Licensed
- *)
- vary/index.js:
- (*!
- * vary
- * Copyright(c) 2014-2017 Douglas Christopher Wilson
- * MIT Licensed
- *)
- serve-static/index.js:
- (*!
- * serve-static
- * Copyright(c) 2010 Sencha Inc.
- * Copyright(c) 2011 TJ Holowaychuk
- * Copyright(c) 2014-2016 Douglas Christopher Wilson
- * MIT Licensed
- *)
- safe-buffer/index.js:
- (*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
- on-headers/index.js:
- (*!
- * on-headers
- * Copyright(c) 2014 Douglas Christopher Wilson
- * MIT Licensed
- *)
- random-bytes/index.js:
- (*!
- * random-bytes
- * Copyright(c) 2016 Douglas Christopher Wilson
- * MIT Licensed
- *)
- uid-safe/index.js:
- (*!
- * uid-safe
- * Copyright(c) 2014 Jonathan Ong
- * Copyright(c) 2015-2017 Douglas Christopher Wilson
- * MIT Licensed
- *)
- express-session/session/cookie.js:
- (*!
- * Connect - session - Cookie
- * Copyright(c) 2010 Sencha Inc.
- * Copyright(c) 2011 TJ Holowaychuk
- * MIT Licensed
- *)
- (*!
- * Prototype.
- *)
- express-session/session/session.js:
- (*!
- * Connect - session - Session
- * Copyright(c) 2010 Sencha Inc.
- * Copyright(c) 2011 TJ Holowaychuk
- * MIT Licensed
- *)
- express-session/session/store.js:
- (*!
- * Connect - session - Store
- * Copyright(c) 2010 Sencha Inc.
- * Copyright(c) 2011 TJ Holowaychuk
- * MIT Licensed
- *)
- express-session/session/memory.js:
- (*!
- * express-session
- * Copyright(c) 2010 Sencha Inc.
- * Copyright(c) 2011 TJ Holowaychuk
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- *)
- express-session/index.js:
- (*!
- * express-session
- * Copyright(c) 2010 Sencha Inc.
- * Copyright(c) 2011 TJ Holowaychuk
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
- * MIT Licensed
- *)
- */
|