unicode.c 233 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357
  1. /**********************************************************************
  2. unicode.c - Oniguruma (regular expression library)
  3. **********************************************************************/
  4. /*-
  5. * Copyright (c) 2002-2008 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
  6. * All rights reserved.
  7. *
  8. * Redistribution and use in source and binary forms, with or without
  9. * modification, are permitted provided that the following conditions
  10. * are met:
  11. * 1. Redistributions of source code must retain the above copyright
  12. * notice, this list of conditions and the following disclaimer.
  13. * 2. Redistributions in binary form must reproduce the above copyright
  14. * notice, this list of conditions and the following disclaimer in the
  15. * documentation and/or other materials provided with the distribution.
  16. *
  17. * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  18. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  19. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  20. * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  21. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  22. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  23. * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  24. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  25. * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  26. * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  27. * SUCH DAMAGE.
  28. */
  29. #include "regint.h"
  30. #define ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code,ctype) \
  31. ((EncUNICODE_ISO_8859_1_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0)
  32. #if 0
  33. #define ONIGENC_IS_UNICODE_ISO_8859_1_BIT_CTYPE(code,cbit) \
  34. ((EncUNICODE_ISO_8859_1_CtypeTable[code] & (cbit)) != 0)
  35. #endif
  36. static const unsigned short EncUNICODE_ISO_8859_1_CtypeTable[256] = {
  37. 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,
  38. 0x4008, 0x428c, 0x4289, 0x4288, 0x4288, 0x4288, 0x4008, 0x4008,
  39. 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,
  40. 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,
  41. 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,
  42. 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,
  43. 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,
  44. 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,
  45. 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,
  46. 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,
  47. 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,
  48. 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,
  49. 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,
  50. 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,
  51. 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,
  52. 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,
  53. 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0288, 0x0008, 0x0008,
  54. 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,
  55. 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,
  56. 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,
  57. 0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0,
  58. 0x00a0, 0x00a0, 0x30e2, 0x01a0, 0x00a0, 0x00a8, 0x00a0, 0x00a0,
  59. 0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x00a0, 0x01a0,
  60. 0x00a0, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0,
  61. 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,
  62. 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,
  63. 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0,
  64. 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2,
  65. 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,
  66. 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,
  67. 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0,
  68. 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2
  69. };
  70. /* 'NEWLINE' */
  71. static const OnigCodePoint CR_NEWLINE[] = {
  72. 1,
  73. 0x000a, 0x000a
  74. }; /* CR_NEWLINE */
  75. /* 'Alpha': [[:Alpha:]] */
  76. static const OnigCodePoint CR_Alpha[] = {
  77. 418,
  78. 0x0041, 0x005a,
  79. 0x0061, 0x007a,
  80. 0x00aa, 0x00aa,
  81. 0x00b5, 0x00b5,
  82. 0x00ba, 0x00ba,
  83. 0x00c0, 0x00d6,
  84. 0x00d8, 0x00f6,
  85. 0x00f8, 0x0241,
  86. 0x0250, 0x02c1,
  87. 0x02c6, 0x02d1,
  88. 0x02e0, 0x02e4,
  89. 0x02ee, 0x02ee,
  90. 0x0300, 0x036f,
  91. 0x037a, 0x037a,
  92. 0x0386, 0x0386,
  93. 0x0388, 0x038a,
  94. 0x038c, 0x038c,
  95. 0x038e, 0x03a1,
  96. 0x03a3, 0x03ce,
  97. 0x03d0, 0x03f5,
  98. 0x03f7, 0x0481,
  99. 0x0483, 0x0486,
  100. 0x0488, 0x04ce,
  101. 0x04d0, 0x04f9,
  102. 0x0500, 0x050f,
  103. 0x0531, 0x0556,
  104. 0x0559, 0x0559,
  105. 0x0561, 0x0587,
  106. 0x0591, 0x05b9,
  107. 0x05bb, 0x05bd,
  108. 0x05bf, 0x05bf,
  109. 0x05c1, 0x05c2,
  110. 0x05c4, 0x05c5,
  111. 0x05c7, 0x05c7,
  112. 0x05d0, 0x05ea,
  113. 0x05f0, 0x05f2,
  114. 0x0610, 0x0615,
  115. 0x0621, 0x063a,
  116. 0x0640, 0x065e,
  117. 0x066e, 0x06d3,
  118. 0x06d5, 0x06dc,
  119. 0x06de, 0x06e8,
  120. 0x06ea, 0x06ef,
  121. 0x06fa, 0x06fc,
  122. 0x06ff, 0x06ff,
  123. 0x0710, 0x074a,
  124. 0x074d, 0x076d,
  125. 0x0780, 0x07b1,
  126. 0x0901, 0x0939,
  127. 0x093c, 0x094d,
  128. 0x0950, 0x0954,
  129. 0x0958, 0x0963,
  130. 0x097d, 0x097d,
  131. 0x0981, 0x0983,
  132. 0x0985, 0x098c,
  133. 0x098f, 0x0990,
  134. 0x0993, 0x09a8,
  135. 0x09aa, 0x09b0,
  136. 0x09b2, 0x09b2,
  137. 0x09b6, 0x09b9,
  138. 0x09bc, 0x09c4,
  139. 0x09c7, 0x09c8,
  140. 0x09cb, 0x09ce,
  141. 0x09d7, 0x09d7,
  142. 0x09dc, 0x09dd,
  143. 0x09df, 0x09e3,
  144. 0x09f0, 0x09f1,
  145. 0x0a01, 0x0a03,
  146. 0x0a05, 0x0a0a,
  147. 0x0a0f, 0x0a10,
  148. 0x0a13, 0x0a28,
  149. 0x0a2a, 0x0a30,
  150. 0x0a32, 0x0a33,
  151. 0x0a35, 0x0a36,
  152. 0x0a38, 0x0a39,
  153. 0x0a3c, 0x0a3c,
  154. 0x0a3e, 0x0a42,
  155. 0x0a47, 0x0a48,
  156. 0x0a4b, 0x0a4d,
  157. 0x0a59, 0x0a5c,
  158. 0x0a5e, 0x0a5e,
  159. 0x0a70, 0x0a74,
  160. 0x0a81, 0x0a83,
  161. 0x0a85, 0x0a8d,
  162. 0x0a8f, 0x0a91,
  163. 0x0a93, 0x0aa8,
  164. 0x0aaa, 0x0ab0,
  165. 0x0ab2, 0x0ab3,
  166. 0x0ab5, 0x0ab9,
  167. 0x0abc, 0x0ac5,
  168. 0x0ac7, 0x0ac9,
  169. 0x0acb, 0x0acd,
  170. 0x0ad0, 0x0ad0,
  171. 0x0ae0, 0x0ae3,
  172. 0x0b01, 0x0b03,
  173. 0x0b05, 0x0b0c,
  174. 0x0b0f, 0x0b10,
  175. 0x0b13, 0x0b28,
  176. 0x0b2a, 0x0b30,
  177. 0x0b32, 0x0b33,
  178. 0x0b35, 0x0b39,
  179. 0x0b3c, 0x0b43,
  180. 0x0b47, 0x0b48,
  181. 0x0b4b, 0x0b4d,
  182. 0x0b56, 0x0b57,
  183. 0x0b5c, 0x0b5d,
  184. 0x0b5f, 0x0b61,
  185. 0x0b71, 0x0b71,
  186. 0x0b82, 0x0b83,
  187. 0x0b85, 0x0b8a,
  188. 0x0b8e, 0x0b90,
  189. 0x0b92, 0x0b95,
  190. 0x0b99, 0x0b9a,
  191. 0x0b9c, 0x0b9c,
  192. 0x0b9e, 0x0b9f,
  193. 0x0ba3, 0x0ba4,
  194. 0x0ba8, 0x0baa,
  195. 0x0bae, 0x0bb9,
  196. 0x0bbe, 0x0bc2,
  197. 0x0bc6, 0x0bc8,
  198. 0x0bca, 0x0bcd,
  199. 0x0bd7, 0x0bd7,
  200. 0x0c01, 0x0c03,
  201. 0x0c05, 0x0c0c,
  202. 0x0c0e, 0x0c10,
  203. 0x0c12, 0x0c28,
  204. 0x0c2a, 0x0c33,
  205. 0x0c35, 0x0c39,
  206. 0x0c3e, 0x0c44,
  207. 0x0c46, 0x0c48,
  208. 0x0c4a, 0x0c4d,
  209. 0x0c55, 0x0c56,
  210. 0x0c60, 0x0c61,
  211. 0x0c82, 0x0c83,
  212. 0x0c85, 0x0c8c,
  213. 0x0c8e, 0x0c90,
  214. 0x0c92, 0x0ca8,
  215. 0x0caa, 0x0cb3,
  216. 0x0cb5, 0x0cb9,
  217. 0x0cbc, 0x0cc4,
  218. 0x0cc6, 0x0cc8,
  219. 0x0cca, 0x0ccd,
  220. 0x0cd5, 0x0cd6,
  221. 0x0cde, 0x0cde,
  222. 0x0ce0, 0x0ce1,
  223. 0x0d02, 0x0d03,
  224. 0x0d05, 0x0d0c,
  225. 0x0d0e, 0x0d10,
  226. 0x0d12, 0x0d28,
  227. 0x0d2a, 0x0d39,
  228. 0x0d3e, 0x0d43,
  229. 0x0d46, 0x0d48,
  230. 0x0d4a, 0x0d4d,
  231. 0x0d57, 0x0d57,
  232. 0x0d60, 0x0d61,
  233. 0x0d82, 0x0d83,
  234. 0x0d85, 0x0d96,
  235. 0x0d9a, 0x0db1,
  236. 0x0db3, 0x0dbb,
  237. 0x0dbd, 0x0dbd,
  238. 0x0dc0, 0x0dc6,
  239. 0x0dca, 0x0dca,
  240. 0x0dcf, 0x0dd4,
  241. 0x0dd6, 0x0dd6,
  242. 0x0dd8, 0x0ddf,
  243. 0x0df2, 0x0df3,
  244. 0x0e01, 0x0e3a,
  245. 0x0e40, 0x0e4e,
  246. 0x0e81, 0x0e82,
  247. 0x0e84, 0x0e84,
  248. 0x0e87, 0x0e88,
  249. 0x0e8a, 0x0e8a,
  250. 0x0e8d, 0x0e8d,
  251. 0x0e94, 0x0e97,
  252. 0x0e99, 0x0e9f,
  253. 0x0ea1, 0x0ea3,
  254. 0x0ea5, 0x0ea5,
  255. 0x0ea7, 0x0ea7,
  256. 0x0eaa, 0x0eab,
  257. 0x0ead, 0x0eb9,
  258. 0x0ebb, 0x0ebd,
  259. 0x0ec0, 0x0ec4,
  260. 0x0ec6, 0x0ec6,
  261. 0x0ec8, 0x0ecd,
  262. 0x0edc, 0x0edd,
  263. 0x0f00, 0x0f00,
  264. 0x0f18, 0x0f19,
  265. 0x0f35, 0x0f35,
  266. 0x0f37, 0x0f37,
  267. 0x0f39, 0x0f39,
  268. 0x0f3e, 0x0f47,
  269. 0x0f49, 0x0f6a,
  270. 0x0f71, 0x0f84,
  271. 0x0f86, 0x0f8b,
  272. 0x0f90, 0x0f97,
  273. 0x0f99, 0x0fbc,
  274. 0x0fc6, 0x0fc6,
  275. 0x1000, 0x1021,
  276. 0x1023, 0x1027,
  277. 0x1029, 0x102a,
  278. 0x102c, 0x1032,
  279. 0x1036, 0x1039,
  280. 0x1050, 0x1059,
  281. 0x10a0, 0x10c5,
  282. 0x10d0, 0x10fa,
  283. 0x10fc, 0x10fc,
  284. 0x1100, 0x1159,
  285. 0x115f, 0x11a2,
  286. 0x11a8, 0x11f9,
  287. 0x1200, 0x1248,
  288. 0x124a, 0x124d,
  289. 0x1250, 0x1256,
  290. 0x1258, 0x1258,
  291. 0x125a, 0x125d,
  292. 0x1260, 0x1288,
  293. 0x128a, 0x128d,
  294. 0x1290, 0x12b0,
  295. 0x12b2, 0x12b5,
  296. 0x12b8, 0x12be,
  297. 0x12c0, 0x12c0,
  298. 0x12c2, 0x12c5,
  299. 0x12c8, 0x12d6,
  300. 0x12d8, 0x1310,
  301. 0x1312, 0x1315,
  302. 0x1318, 0x135a,
  303. 0x135f, 0x135f,
  304. 0x1380, 0x138f,
  305. 0x13a0, 0x13f4,
  306. 0x1401, 0x166c,
  307. 0x166f, 0x1676,
  308. 0x1681, 0x169a,
  309. 0x16a0, 0x16ea,
  310. 0x1700, 0x170c,
  311. 0x170e, 0x1714,
  312. 0x1720, 0x1734,
  313. 0x1740, 0x1753,
  314. 0x1760, 0x176c,
  315. 0x176e, 0x1770,
  316. 0x1772, 0x1773,
  317. 0x1780, 0x17b3,
  318. 0x17b6, 0x17d3,
  319. 0x17d7, 0x17d7,
  320. 0x17dc, 0x17dd,
  321. 0x180b, 0x180d,
  322. 0x1820, 0x1877,
  323. 0x1880, 0x18a9,
  324. 0x1900, 0x191c,
  325. 0x1920, 0x192b,
  326. 0x1930, 0x193b,
  327. 0x1950, 0x196d,
  328. 0x1970, 0x1974,
  329. 0x1980, 0x19a9,
  330. 0x19b0, 0x19c9,
  331. 0x1a00, 0x1a1b,
  332. 0x1d00, 0x1dc3,
  333. 0x1e00, 0x1e9b,
  334. 0x1ea0, 0x1ef9,
  335. 0x1f00, 0x1f15,
  336. 0x1f18, 0x1f1d,
  337. 0x1f20, 0x1f45,
  338. 0x1f48, 0x1f4d,
  339. 0x1f50, 0x1f57,
  340. 0x1f59, 0x1f59,
  341. 0x1f5b, 0x1f5b,
  342. 0x1f5d, 0x1f5d,
  343. 0x1f5f, 0x1f7d,
  344. 0x1f80, 0x1fb4,
  345. 0x1fb6, 0x1fbc,
  346. 0x1fbe, 0x1fbe,
  347. 0x1fc2, 0x1fc4,
  348. 0x1fc6, 0x1fcc,
  349. 0x1fd0, 0x1fd3,
  350. 0x1fd6, 0x1fdb,
  351. 0x1fe0, 0x1fec,
  352. 0x1ff2, 0x1ff4,
  353. 0x1ff6, 0x1ffc,
  354. 0x2071, 0x2071,
  355. 0x207f, 0x207f,
  356. 0x2090, 0x2094,
  357. 0x20d0, 0x20eb,
  358. 0x2102, 0x2102,
  359. 0x2107, 0x2107,
  360. 0x210a, 0x2113,
  361. 0x2115, 0x2115,
  362. 0x2119, 0x211d,
  363. 0x2124, 0x2124,
  364. 0x2126, 0x2126,
  365. 0x2128, 0x2128,
  366. 0x212a, 0x212d,
  367. 0x212f, 0x2131,
  368. 0x2133, 0x2139,
  369. 0x213c, 0x213f,
  370. 0x2145, 0x2149,
  371. 0x2c00, 0x2c2e,
  372. 0x2c30, 0x2c5e,
  373. 0x2c80, 0x2ce4,
  374. 0x2d00, 0x2d25,
  375. 0x2d30, 0x2d65,
  376. 0x2d6f, 0x2d6f,
  377. 0x2d80, 0x2d96,
  378. 0x2da0, 0x2da6,
  379. 0x2da8, 0x2dae,
  380. 0x2db0, 0x2db6,
  381. 0x2db8, 0x2dbe,
  382. 0x2dc0, 0x2dc6,
  383. 0x2dc8, 0x2dce,
  384. 0x2dd0, 0x2dd6,
  385. 0x2dd8, 0x2dde,
  386. 0x3005, 0x3006,
  387. 0x302a, 0x302f,
  388. 0x3031, 0x3035,
  389. 0x303b, 0x303c,
  390. 0x3041, 0x3096,
  391. 0x3099, 0x309a,
  392. 0x309d, 0x309f,
  393. 0x30a1, 0x30fa,
  394. 0x30fc, 0x30ff,
  395. 0x3105, 0x312c,
  396. 0x3131, 0x318e,
  397. 0x31a0, 0x31b7,
  398. 0x31f0, 0x31ff,
  399. 0x3400, 0x4db5,
  400. 0x4e00, 0x9fbb,
  401. 0xa000, 0xa48c,
  402. 0xa800, 0xa827,
  403. 0xac00, 0xd7a3,
  404. 0xf900, 0xfa2d,
  405. 0xfa30, 0xfa6a,
  406. 0xfa70, 0xfad9,
  407. 0xfb00, 0xfb06,
  408. 0xfb13, 0xfb17,
  409. 0xfb1d, 0xfb28,
  410. 0xfb2a, 0xfb36,
  411. 0xfb38, 0xfb3c,
  412. 0xfb3e, 0xfb3e,
  413. 0xfb40, 0xfb41,
  414. 0xfb43, 0xfb44,
  415. 0xfb46, 0xfbb1,
  416. 0xfbd3, 0xfd3d,
  417. 0xfd50, 0xfd8f,
  418. 0xfd92, 0xfdc7,
  419. 0xfdf0, 0xfdfb,
  420. 0xfe00, 0xfe0f,
  421. 0xfe20, 0xfe23,
  422. 0xfe70, 0xfe74,
  423. 0xfe76, 0xfefc,
  424. 0xff21, 0xff3a,
  425. 0xff41, 0xff5a,
  426. 0xff66, 0xffbe,
  427. 0xffc2, 0xffc7,
  428. 0xffca, 0xffcf,
  429. 0xffd2, 0xffd7,
  430. 0xffda, 0xffdc,
  431. 0x10000, 0x1000b,
  432. 0x1000d, 0x10026,
  433. 0x10028, 0x1003a,
  434. 0x1003c, 0x1003d,
  435. 0x1003f, 0x1004d,
  436. 0x10050, 0x1005d,
  437. 0x10080, 0x100fa,
  438. 0x10300, 0x1031e,
  439. 0x10330, 0x10349,
  440. 0x10380, 0x1039d,
  441. 0x103a0, 0x103c3,
  442. 0x103c8, 0x103cf,
  443. 0x10400, 0x1049d,
  444. 0x10800, 0x10805,
  445. 0x10808, 0x10808,
  446. 0x1080a, 0x10835,
  447. 0x10837, 0x10838,
  448. 0x1083c, 0x1083c,
  449. 0x1083f, 0x1083f,
  450. 0x10a00, 0x10a03,
  451. 0x10a05, 0x10a06,
  452. 0x10a0c, 0x10a13,
  453. 0x10a15, 0x10a17,
  454. 0x10a19, 0x10a33,
  455. 0x10a38, 0x10a3a,
  456. 0x10a3f, 0x10a3f,
  457. 0x1d165, 0x1d169,
  458. 0x1d16d, 0x1d172,
  459. 0x1d17b, 0x1d182,
  460. 0x1d185, 0x1d18b,
  461. 0x1d1aa, 0x1d1ad,
  462. 0x1d242, 0x1d244,
  463. 0x1d400, 0x1d454,
  464. 0x1d456, 0x1d49c,
  465. 0x1d49e, 0x1d49f,
  466. 0x1d4a2, 0x1d4a2,
  467. 0x1d4a5, 0x1d4a6,
  468. 0x1d4a9, 0x1d4ac,
  469. 0x1d4ae, 0x1d4b9,
  470. 0x1d4bb, 0x1d4bb,
  471. 0x1d4bd, 0x1d4c3,
  472. 0x1d4c5, 0x1d505,
  473. 0x1d507, 0x1d50a,
  474. 0x1d50d, 0x1d514,
  475. 0x1d516, 0x1d51c,
  476. 0x1d51e, 0x1d539,
  477. 0x1d53b, 0x1d53e,
  478. 0x1d540, 0x1d544,
  479. 0x1d546, 0x1d546,
  480. 0x1d54a, 0x1d550,
  481. 0x1d552, 0x1d6a5,
  482. 0x1d6a8, 0x1d6c0,
  483. 0x1d6c2, 0x1d6da,
  484. 0x1d6dc, 0x1d6fa,
  485. 0x1d6fc, 0x1d714,
  486. 0x1d716, 0x1d734,
  487. 0x1d736, 0x1d74e,
  488. 0x1d750, 0x1d76e,
  489. 0x1d770, 0x1d788,
  490. 0x1d78a, 0x1d7a8,
  491. 0x1d7aa, 0x1d7c2,
  492. 0x1d7c4, 0x1d7c9,
  493. 0x20000, 0x2a6d6,
  494. 0x2f800, 0x2fa1d,
  495. 0xe0100, 0xe01ef
  496. }; /* CR_Alpha */
  497. /* 'Blank': [[:Blank:]] */
  498. static const OnigCodePoint CR_Blank[] = {
  499. 9,
  500. 0x0009, 0x0009,
  501. 0x0020, 0x0020,
  502. 0x00a0, 0x00a0,
  503. 0x1680, 0x1680,
  504. 0x180e, 0x180e,
  505. 0x2000, 0x200a,
  506. 0x202f, 0x202f,
  507. 0x205f, 0x205f,
  508. 0x3000, 0x3000
  509. }; /* CR_Blank */
  510. /* 'Cntrl': [[:Cntrl:]] */
  511. static const OnigCodePoint CR_Cntrl[] = {
  512. 19,
  513. 0x0000, 0x001f,
  514. 0x007f, 0x009f,
  515. 0x00ad, 0x00ad,
  516. 0x0600, 0x0603,
  517. 0x06dd, 0x06dd,
  518. 0x070f, 0x070f,
  519. 0x17b4, 0x17b5,
  520. 0x200b, 0x200f,
  521. 0x202a, 0x202e,
  522. 0x2060, 0x2063,
  523. 0x206a, 0x206f,
  524. 0xd800, 0xf8ff,
  525. 0xfeff, 0xfeff,
  526. 0xfff9, 0xfffb,
  527. 0x1d173, 0x1d17a,
  528. 0xe0001, 0xe0001,
  529. 0xe0020, 0xe007f,
  530. 0xf0000, 0xffffd,
  531. 0x100000, 0x10fffd
  532. }; /* CR_Cntrl */
  533. /* 'Digit': [[:Digit:]] */
  534. static const OnigCodePoint CR_Digit[] = {
  535. 23,
  536. 0x0030, 0x0039,
  537. 0x0660, 0x0669,
  538. 0x06f0, 0x06f9,
  539. 0x0966, 0x096f,
  540. 0x09e6, 0x09ef,
  541. 0x0a66, 0x0a6f,
  542. 0x0ae6, 0x0aef,
  543. 0x0b66, 0x0b6f,
  544. 0x0be6, 0x0bef,
  545. 0x0c66, 0x0c6f,
  546. 0x0ce6, 0x0cef,
  547. 0x0d66, 0x0d6f,
  548. 0x0e50, 0x0e59,
  549. 0x0ed0, 0x0ed9,
  550. 0x0f20, 0x0f29,
  551. 0x1040, 0x1049,
  552. 0x17e0, 0x17e9,
  553. 0x1810, 0x1819,
  554. 0x1946, 0x194f,
  555. 0x19d0, 0x19d9,
  556. 0xff10, 0xff19,
  557. 0x104a0, 0x104a9,
  558. 0x1d7ce, 0x1d7ff
  559. }; /* CR_Digit */
  560. /* 'Graph': [[:Graph:]] */
  561. static const OnigCodePoint CR_Graph[] = {
  562. 424,
  563. 0x0021, 0x007e,
  564. 0x00a1, 0x0241,
  565. 0x0250, 0x036f,
  566. 0x0374, 0x0375,
  567. 0x037a, 0x037a,
  568. 0x037e, 0x037e,
  569. 0x0384, 0x038a,
  570. 0x038c, 0x038c,
  571. 0x038e, 0x03a1,
  572. 0x03a3, 0x03ce,
  573. 0x03d0, 0x0486,
  574. 0x0488, 0x04ce,
  575. 0x04d0, 0x04f9,
  576. 0x0500, 0x050f,
  577. 0x0531, 0x0556,
  578. 0x0559, 0x055f,
  579. 0x0561, 0x0587,
  580. 0x0589, 0x058a,
  581. 0x0591, 0x05b9,
  582. 0x05bb, 0x05c7,
  583. 0x05d0, 0x05ea,
  584. 0x05f0, 0x05f4,
  585. 0x0600, 0x0603,
  586. 0x060b, 0x0615,
  587. 0x061b, 0x061b,
  588. 0x061e, 0x061f,
  589. 0x0621, 0x063a,
  590. 0x0640, 0x065e,
  591. 0x0660, 0x070d,
  592. 0x070f, 0x074a,
  593. 0x074d, 0x076d,
  594. 0x0780, 0x07b1,
  595. 0x0901, 0x0939,
  596. 0x093c, 0x094d,
  597. 0x0950, 0x0954,
  598. 0x0958, 0x0970,
  599. 0x097d, 0x097d,
  600. 0x0981, 0x0983,
  601. 0x0985, 0x098c,
  602. 0x098f, 0x0990,
  603. 0x0993, 0x09a8,
  604. 0x09aa, 0x09b0,
  605. 0x09b2, 0x09b2,
  606. 0x09b6, 0x09b9,
  607. 0x09bc, 0x09c4,
  608. 0x09c7, 0x09c8,
  609. 0x09cb, 0x09ce,
  610. 0x09d7, 0x09d7,
  611. 0x09dc, 0x09dd,
  612. 0x09df, 0x09e3,
  613. 0x09e6, 0x09fa,
  614. 0x0a01, 0x0a03,
  615. 0x0a05, 0x0a0a,
  616. 0x0a0f, 0x0a10,
  617. 0x0a13, 0x0a28,
  618. 0x0a2a, 0x0a30,
  619. 0x0a32, 0x0a33,
  620. 0x0a35, 0x0a36,
  621. 0x0a38, 0x0a39,
  622. 0x0a3c, 0x0a3c,
  623. 0x0a3e, 0x0a42,
  624. 0x0a47, 0x0a48,
  625. 0x0a4b, 0x0a4d,
  626. 0x0a59, 0x0a5c,
  627. 0x0a5e, 0x0a5e,
  628. 0x0a66, 0x0a74,
  629. 0x0a81, 0x0a83,
  630. 0x0a85, 0x0a8d,
  631. 0x0a8f, 0x0a91,
  632. 0x0a93, 0x0aa8,
  633. 0x0aaa, 0x0ab0,
  634. 0x0ab2, 0x0ab3,
  635. 0x0ab5, 0x0ab9,
  636. 0x0abc, 0x0ac5,
  637. 0x0ac7, 0x0ac9,
  638. 0x0acb, 0x0acd,
  639. 0x0ad0, 0x0ad0,
  640. 0x0ae0, 0x0ae3,
  641. 0x0ae6, 0x0aef,
  642. 0x0af1, 0x0af1,
  643. 0x0b01, 0x0b03,
  644. 0x0b05, 0x0b0c,
  645. 0x0b0f, 0x0b10,
  646. 0x0b13, 0x0b28,
  647. 0x0b2a, 0x0b30,
  648. 0x0b32, 0x0b33,
  649. 0x0b35, 0x0b39,
  650. 0x0b3c, 0x0b43,
  651. 0x0b47, 0x0b48,
  652. 0x0b4b, 0x0b4d,
  653. 0x0b56, 0x0b57,
  654. 0x0b5c, 0x0b5d,
  655. 0x0b5f, 0x0b61,
  656. 0x0b66, 0x0b71,
  657. 0x0b82, 0x0b83,
  658. 0x0b85, 0x0b8a,
  659. 0x0b8e, 0x0b90,
  660. 0x0b92, 0x0b95,
  661. 0x0b99, 0x0b9a,
  662. 0x0b9c, 0x0b9c,
  663. 0x0b9e, 0x0b9f,
  664. 0x0ba3, 0x0ba4,
  665. 0x0ba8, 0x0baa,
  666. 0x0bae, 0x0bb9,
  667. 0x0bbe, 0x0bc2,
  668. 0x0bc6, 0x0bc8,
  669. 0x0bca, 0x0bcd,
  670. 0x0bd7, 0x0bd7,
  671. 0x0be6, 0x0bfa,
  672. 0x0c01, 0x0c03,
  673. 0x0c05, 0x0c0c,
  674. 0x0c0e, 0x0c10,
  675. 0x0c12, 0x0c28,
  676. 0x0c2a, 0x0c33,
  677. 0x0c35, 0x0c39,
  678. 0x0c3e, 0x0c44,
  679. 0x0c46, 0x0c48,
  680. 0x0c4a, 0x0c4d,
  681. 0x0c55, 0x0c56,
  682. 0x0c60, 0x0c61,
  683. 0x0c66, 0x0c6f,
  684. 0x0c82, 0x0c83,
  685. 0x0c85, 0x0c8c,
  686. 0x0c8e, 0x0c90,
  687. 0x0c92, 0x0ca8,
  688. 0x0caa, 0x0cb3,
  689. 0x0cb5, 0x0cb9,
  690. 0x0cbc, 0x0cc4,
  691. 0x0cc6, 0x0cc8,
  692. 0x0cca, 0x0ccd,
  693. 0x0cd5, 0x0cd6,
  694. 0x0cde, 0x0cde,
  695. 0x0ce0, 0x0ce1,
  696. 0x0ce6, 0x0cef,
  697. 0x0d02, 0x0d03,
  698. 0x0d05, 0x0d0c,
  699. 0x0d0e, 0x0d10,
  700. 0x0d12, 0x0d28,
  701. 0x0d2a, 0x0d39,
  702. 0x0d3e, 0x0d43,
  703. 0x0d46, 0x0d48,
  704. 0x0d4a, 0x0d4d,
  705. 0x0d57, 0x0d57,
  706. 0x0d60, 0x0d61,
  707. 0x0d66, 0x0d6f,
  708. 0x0d82, 0x0d83,
  709. 0x0d85, 0x0d96,
  710. 0x0d9a, 0x0db1,
  711. 0x0db3, 0x0dbb,
  712. 0x0dbd, 0x0dbd,
  713. 0x0dc0, 0x0dc6,
  714. 0x0dca, 0x0dca,
  715. 0x0dcf, 0x0dd4,
  716. 0x0dd6, 0x0dd6,
  717. 0x0dd8, 0x0ddf,
  718. 0x0df2, 0x0df4,
  719. 0x0e01, 0x0e3a,
  720. 0x0e3f, 0x0e5b,
  721. 0x0e81, 0x0e82,
  722. 0x0e84, 0x0e84,
  723. 0x0e87, 0x0e88,
  724. 0x0e8a, 0x0e8a,
  725. 0x0e8d, 0x0e8d,
  726. 0x0e94, 0x0e97,
  727. 0x0e99, 0x0e9f,
  728. 0x0ea1, 0x0ea3,
  729. 0x0ea5, 0x0ea5,
  730. 0x0ea7, 0x0ea7,
  731. 0x0eaa, 0x0eab,
  732. 0x0ead, 0x0eb9,
  733. 0x0ebb, 0x0ebd,
  734. 0x0ec0, 0x0ec4,
  735. 0x0ec6, 0x0ec6,
  736. 0x0ec8, 0x0ecd,
  737. 0x0ed0, 0x0ed9,
  738. 0x0edc, 0x0edd,
  739. 0x0f00, 0x0f47,
  740. 0x0f49, 0x0f6a,
  741. 0x0f71, 0x0f8b,
  742. 0x0f90, 0x0f97,
  743. 0x0f99, 0x0fbc,
  744. 0x0fbe, 0x0fcc,
  745. 0x0fcf, 0x0fd1,
  746. 0x1000, 0x1021,
  747. 0x1023, 0x1027,
  748. 0x1029, 0x102a,
  749. 0x102c, 0x1032,
  750. 0x1036, 0x1039,
  751. 0x1040, 0x1059,
  752. 0x10a0, 0x10c5,
  753. 0x10d0, 0x10fc,
  754. 0x1100, 0x1159,
  755. 0x115f, 0x11a2,
  756. 0x11a8, 0x11f9,
  757. 0x1200, 0x1248,
  758. 0x124a, 0x124d,
  759. 0x1250, 0x1256,
  760. 0x1258, 0x1258,
  761. 0x125a, 0x125d,
  762. 0x1260, 0x1288,
  763. 0x128a, 0x128d,
  764. 0x1290, 0x12b0,
  765. 0x12b2, 0x12b5,
  766. 0x12b8, 0x12be,
  767. 0x12c0, 0x12c0,
  768. 0x12c2, 0x12c5,
  769. 0x12c8, 0x12d6,
  770. 0x12d8, 0x1310,
  771. 0x1312, 0x1315,
  772. 0x1318, 0x135a,
  773. 0x135f, 0x137c,
  774. 0x1380, 0x1399,
  775. 0x13a0, 0x13f4,
  776. 0x1401, 0x1676,
  777. 0x1681, 0x169c,
  778. 0x16a0, 0x16f0,
  779. 0x1700, 0x170c,
  780. 0x170e, 0x1714,
  781. 0x1720, 0x1736,
  782. 0x1740, 0x1753,
  783. 0x1760, 0x176c,
  784. 0x176e, 0x1770,
  785. 0x1772, 0x1773,
  786. 0x1780, 0x17dd,
  787. 0x17e0, 0x17e9,
  788. 0x17f0, 0x17f9,
  789. 0x1800, 0x180d,
  790. 0x1810, 0x1819,
  791. 0x1820, 0x1877,
  792. 0x1880, 0x18a9,
  793. 0x1900, 0x191c,
  794. 0x1920, 0x192b,
  795. 0x1930, 0x193b,
  796. 0x1940, 0x1940,
  797. 0x1944, 0x196d,
  798. 0x1970, 0x1974,
  799. 0x1980, 0x19a9,
  800. 0x19b0, 0x19c9,
  801. 0x19d0, 0x19d9,
  802. 0x19de, 0x1a1b,
  803. 0x1a1e, 0x1a1f,
  804. 0x1d00, 0x1dc3,
  805. 0x1e00, 0x1e9b,
  806. 0x1ea0, 0x1ef9,
  807. 0x1f00, 0x1f15,
  808. 0x1f18, 0x1f1d,
  809. 0x1f20, 0x1f45,
  810. 0x1f48, 0x1f4d,
  811. 0x1f50, 0x1f57,
  812. 0x1f59, 0x1f59,
  813. 0x1f5b, 0x1f5b,
  814. 0x1f5d, 0x1f5d,
  815. 0x1f5f, 0x1f7d,
  816. 0x1f80, 0x1fb4,
  817. 0x1fb6, 0x1fc4,
  818. 0x1fc6, 0x1fd3,
  819. 0x1fd6, 0x1fdb,
  820. 0x1fdd, 0x1fef,
  821. 0x1ff2, 0x1ff4,
  822. 0x1ff6, 0x1ffe,
  823. 0x200b, 0x2027,
  824. 0x202a, 0x202e,
  825. 0x2030, 0x205e,
  826. 0x2060, 0x2063,
  827. 0x206a, 0x2071,
  828. 0x2074, 0x208e,
  829. 0x2090, 0x2094,
  830. 0x20a0, 0x20b5,
  831. 0x20d0, 0x20eb,
  832. 0x2100, 0x214c,
  833. 0x2153, 0x2183,
  834. 0x2190, 0x23db,
  835. 0x2400, 0x2426,
  836. 0x2440, 0x244a,
  837. 0x2460, 0x269c,
  838. 0x26a0, 0x26b1,
  839. 0x2701, 0x2704,
  840. 0x2706, 0x2709,
  841. 0x270c, 0x2727,
  842. 0x2729, 0x274b,
  843. 0x274d, 0x274d,
  844. 0x274f, 0x2752,
  845. 0x2756, 0x2756,
  846. 0x2758, 0x275e,
  847. 0x2761, 0x2794,
  848. 0x2798, 0x27af,
  849. 0x27b1, 0x27be,
  850. 0x27c0, 0x27c6,
  851. 0x27d0, 0x27eb,
  852. 0x27f0, 0x2b13,
  853. 0x2c00, 0x2c2e,
  854. 0x2c30, 0x2c5e,
  855. 0x2c80, 0x2cea,
  856. 0x2cf9, 0x2d25,
  857. 0x2d30, 0x2d65,
  858. 0x2d6f, 0x2d6f,
  859. 0x2d80, 0x2d96,
  860. 0x2da0, 0x2da6,
  861. 0x2da8, 0x2dae,
  862. 0x2db0, 0x2db6,
  863. 0x2db8, 0x2dbe,
  864. 0x2dc0, 0x2dc6,
  865. 0x2dc8, 0x2dce,
  866. 0x2dd0, 0x2dd6,
  867. 0x2dd8, 0x2dde,
  868. 0x2e00, 0x2e17,
  869. 0x2e1c, 0x2e1d,
  870. 0x2e80, 0x2e99,
  871. 0x2e9b, 0x2ef3,
  872. 0x2f00, 0x2fd5,
  873. 0x2ff0, 0x2ffb,
  874. 0x3001, 0x303f,
  875. 0x3041, 0x3096,
  876. 0x3099, 0x30ff,
  877. 0x3105, 0x312c,
  878. 0x3131, 0x318e,
  879. 0x3190, 0x31b7,
  880. 0x31c0, 0x31cf,
  881. 0x31f0, 0x321e,
  882. 0x3220, 0x3243,
  883. 0x3250, 0x32fe,
  884. 0x3300, 0x4db5,
  885. 0x4dc0, 0x9fbb,
  886. 0xa000, 0xa48c,
  887. 0xa490, 0xa4c6,
  888. 0xa700, 0xa716,
  889. 0xa800, 0xa82b,
  890. 0xac00, 0xd7a3,
  891. 0xe000, 0xfa2d,
  892. 0xfa30, 0xfa6a,
  893. 0xfa70, 0xfad9,
  894. 0xfb00, 0xfb06,
  895. 0xfb13, 0xfb17,
  896. 0xfb1d, 0xfb36,
  897. 0xfb38, 0xfb3c,
  898. 0xfb3e, 0xfb3e,
  899. 0xfb40, 0xfb41,
  900. 0xfb43, 0xfb44,
  901. 0xfb46, 0xfbb1,
  902. 0xfbd3, 0xfd3f,
  903. 0xfd50, 0xfd8f,
  904. 0xfd92, 0xfdc7,
  905. 0xfdf0, 0xfdfd,
  906. 0xfe00, 0xfe19,
  907. 0xfe20, 0xfe23,
  908. 0xfe30, 0xfe52,
  909. 0xfe54, 0xfe66,
  910. 0xfe68, 0xfe6b,
  911. 0xfe70, 0xfe74,
  912. 0xfe76, 0xfefc,
  913. 0xfeff, 0xfeff,
  914. 0xff01, 0xffbe,
  915. 0xffc2, 0xffc7,
  916. 0xffca, 0xffcf,
  917. 0xffd2, 0xffd7,
  918. 0xffda, 0xffdc,
  919. 0xffe0, 0xffe6,
  920. 0xffe8, 0xffee,
  921. 0xfff9, 0xfffd,
  922. 0x10000, 0x1000b,
  923. 0x1000d, 0x10026,
  924. 0x10028, 0x1003a,
  925. 0x1003c, 0x1003d,
  926. 0x1003f, 0x1004d,
  927. 0x10050, 0x1005d,
  928. 0x10080, 0x100fa,
  929. 0x10100, 0x10102,
  930. 0x10107, 0x10133,
  931. 0x10137, 0x1018a,
  932. 0x10300, 0x1031e,
  933. 0x10320, 0x10323,
  934. 0x10330, 0x1034a,
  935. 0x10380, 0x1039d,
  936. 0x1039f, 0x103c3,
  937. 0x103c8, 0x103d5,
  938. 0x10400, 0x1049d,
  939. 0x104a0, 0x104a9,
  940. 0x10800, 0x10805,
  941. 0x10808, 0x10808,
  942. 0x1080a, 0x10835,
  943. 0x10837, 0x10838,
  944. 0x1083c, 0x1083c,
  945. 0x1083f, 0x1083f,
  946. 0x10a00, 0x10a03,
  947. 0x10a05, 0x10a06,
  948. 0x10a0c, 0x10a13,
  949. 0x10a15, 0x10a17,
  950. 0x10a19, 0x10a33,
  951. 0x10a38, 0x10a3a,
  952. 0x10a3f, 0x10a47,
  953. 0x10a50, 0x10a58,
  954. 0x1d000, 0x1d0f5,
  955. 0x1d100, 0x1d126,
  956. 0x1d12a, 0x1d1dd,
  957. 0x1d200, 0x1d245,
  958. 0x1d300, 0x1d356,
  959. 0x1d400, 0x1d454,
  960. 0x1d456, 0x1d49c,
  961. 0x1d49e, 0x1d49f,
  962. 0x1d4a2, 0x1d4a2,
  963. 0x1d4a5, 0x1d4a6,
  964. 0x1d4a9, 0x1d4ac,
  965. 0x1d4ae, 0x1d4b9,
  966. 0x1d4bb, 0x1d4bb,
  967. 0x1d4bd, 0x1d4c3,
  968. 0x1d4c5, 0x1d505,
  969. 0x1d507, 0x1d50a,
  970. 0x1d50d, 0x1d514,
  971. 0x1d516, 0x1d51c,
  972. 0x1d51e, 0x1d539,
  973. 0x1d53b, 0x1d53e,
  974. 0x1d540, 0x1d544,
  975. 0x1d546, 0x1d546,
  976. 0x1d54a, 0x1d550,
  977. 0x1d552, 0x1d6a5,
  978. 0x1d6a8, 0x1d7c9,
  979. 0x1d7ce, 0x1d7ff,
  980. 0x20000, 0x2a6d6,
  981. 0x2f800, 0x2fa1d,
  982. 0xe0001, 0xe0001,
  983. 0xe0020, 0xe007f,
  984. 0xe0100, 0xe01ef,
  985. 0xf0000, 0xffffd,
  986. 0x100000, 0x10fffd
  987. }; /* CR_Graph */
  988. /* 'Lower': [[:Lower:]] */
  989. static const OnigCodePoint CR_Lower[] = {
  990. 480,
  991. 0x0061, 0x007a,
  992. 0x00aa, 0x00aa,
  993. 0x00b5, 0x00b5,
  994. 0x00ba, 0x00ba,
  995. 0x00df, 0x00f6,
  996. 0x00f8, 0x00ff,
  997. 0x0101, 0x0101,
  998. 0x0103, 0x0103,
  999. 0x0105, 0x0105,
  1000. 0x0107, 0x0107,
  1001. 0x0109, 0x0109,
  1002. 0x010b, 0x010b,
  1003. 0x010d, 0x010d,
  1004. 0x010f, 0x010f,
  1005. 0x0111, 0x0111,
  1006. 0x0113, 0x0113,
  1007. 0x0115, 0x0115,
  1008. 0x0117, 0x0117,
  1009. 0x0119, 0x0119,
  1010. 0x011b, 0x011b,
  1011. 0x011d, 0x011d,
  1012. 0x011f, 0x011f,
  1013. 0x0121, 0x0121,
  1014. 0x0123, 0x0123,
  1015. 0x0125, 0x0125,
  1016. 0x0127, 0x0127,
  1017. 0x0129, 0x0129,
  1018. 0x012b, 0x012b,
  1019. 0x012d, 0x012d,
  1020. 0x012f, 0x012f,
  1021. 0x0131, 0x0131,
  1022. 0x0133, 0x0133,
  1023. 0x0135, 0x0135,
  1024. 0x0137, 0x0138,
  1025. 0x013a, 0x013a,
  1026. 0x013c, 0x013c,
  1027. 0x013e, 0x013e,
  1028. 0x0140, 0x0140,
  1029. 0x0142, 0x0142,
  1030. 0x0144, 0x0144,
  1031. 0x0146, 0x0146,
  1032. 0x0148, 0x0149,
  1033. 0x014b, 0x014b,
  1034. 0x014d, 0x014d,
  1035. 0x014f, 0x014f,
  1036. 0x0151, 0x0151,
  1037. 0x0153, 0x0153,
  1038. 0x0155, 0x0155,
  1039. 0x0157, 0x0157,
  1040. 0x0159, 0x0159,
  1041. 0x015b, 0x015b,
  1042. 0x015d, 0x015d,
  1043. 0x015f, 0x015f,
  1044. 0x0161, 0x0161,
  1045. 0x0163, 0x0163,
  1046. 0x0165, 0x0165,
  1047. 0x0167, 0x0167,
  1048. 0x0169, 0x0169,
  1049. 0x016b, 0x016b,
  1050. 0x016d, 0x016d,
  1051. 0x016f, 0x016f,
  1052. 0x0171, 0x0171,
  1053. 0x0173, 0x0173,
  1054. 0x0175, 0x0175,
  1055. 0x0177, 0x0177,
  1056. 0x017a, 0x017a,
  1057. 0x017c, 0x017c,
  1058. 0x017e, 0x0180,
  1059. 0x0183, 0x0183,
  1060. 0x0185, 0x0185,
  1061. 0x0188, 0x0188,
  1062. 0x018c, 0x018d,
  1063. 0x0192, 0x0192,
  1064. 0x0195, 0x0195,
  1065. 0x0199, 0x019b,
  1066. 0x019e, 0x019e,
  1067. 0x01a1, 0x01a1,
  1068. 0x01a3, 0x01a3,
  1069. 0x01a5, 0x01a5,
  1070. 0x01a8, 0x01a8,
  1071. 0x01aa, 0x01ab,
  1072. 0x01ad, 0x01ad,
  1073. 0x01b0, 0x01b0,
  1074. 0x01b4, 0x01b4,
  1075. 0x01b6, 0x01b6,
  1076. 0x01b9, 0x01ba,
  1077. 0x01bd, 0x01bf,
  1078. 0x01c6, 0x01c6,
  1079. 0x01c9, 0x01c9,
  1080. 0x01cc, 0x01cc,
  1081. 0x01ce, 0x01ce,
  1082. 0x01d0, 0x01d0,
  1083. 0x01d2, 0x01d2,
  1084. 0x01d4, 0x01d4,
  1085. 0x01d6, 0x01d6,
  1086. 0x01d8, 0x01d8,
  1087. 0x01da, 0x01da,
  1088. 0x01dc, 0x01dd,
  1089. 0x01df, 0x01df,
  1090. 0x01e1, 0x01e1,
  1091. 0x01e3, 0x01e3,
  1092. 0x01e5, 0x01e5,
  1093. 0x01e7, 0x01e7,
  1094. 0x01e9, 0x01e9,
  1095. 0x01eb, 0x01eb,
  1096. 0x01ed, 0x01ed,
  1097. 0x01ef, 0x01f0,
  1098. 0x01f3, 0x01f3,
  1099. 0x01f5, 0x01f5,
  1100. 0x01f9, 0x01f9,
  1101. 0x01fb, 0x01fb,
  1102. 0x01fd, 0x01fd,
  1103. 0x01ff, 0x01ff,
  1104. 0x0201, 0x0201,
  1105. 0x0203, 0x0203,
  1106. 0x0205, 0x0205,
  1107. 0x0207, 0x0207,
  1108. 0x0209, 0x0209,
  1109. 0x020b, 0x020b,
  1110. 0x020d, 0x020d,
  1111. 0x020f, 0x020f,
  1112. 0x0211, 0x0211,
  1113. 0x0213, 0x0213,
  1114. 0x0215, 0x0215,
  1115. 0x0217, 0x0217,
  1116. 0x0219, 0x0219,
  1117. 0x021b, 0x021b,
  1118. 0x021d, 0x021d,
  1119. 0x021f, 0x021f,
  1120. 0x0221, 0x0221,
  1121. 0x0223, 0x0223,
  1122. 0x0225, 0x0225,
  1123. 0x0227, 0x0227,
  1124. 0x0229, 0x0229,
  1125. 0x022b, 0x022b,
  1126. 0x022d, 0x022d,
  1127. 0x022f, 0x022f,
  1128. 0x0231, 0x0231,
  1129. 0x0233, 0x0239,
  1130. 0x023c, 0x023c,
  1131. 0x023f, 0x0240,
  1132. 0x0250, 0x02af,
  1133. 0x0390, 0x0390,
  1134. 0x03ac, 0x03ce,
  1135. 0x03d0, 0x03d1,
  1136. 0x03d5, 0x03d7,
  1137. 0x03d9, 0x03d9,
  1138. 0x03db, 0x03db,
  1139. 0x03dd, 0x03dd,
  1140. 0x03df, 0x03df,
  1141. 0x03e1, 0x03e1,
  1142. 0x03e3, 0x03e3,
  1143. 0x03e5, 0x03e5,
  1144. 0x03e7, 0x03e7,
  1145. 0x03e9, 0x03e9,
  1146. 0x03eb, 0x03eb,
  1147. 0x03ed, 0x03ed,
  1148. 0x03ef, 0x03f3,
  1149. 0x03f5, 0x03f5,
  1150. 0x03f8, 0x03f8,
  1151. 0x03fb, 0x03fc,
  1152. 0x0430, 0x045f,
  1153. 0x0461, 0x0461,
  1154. 0x0463, 0x0463,
  1155. 0x0465, 0x0465,
  1156. 0x0467, 0x0467,
  1157. 0x0469, 0x0469,
  1158. 0x046b, 0x046b,
  1159. 0x046d, 0x046d,
  1160. 0x046f, 0x046f,
  1161. 0x0471, 0x0471,
  1162. 0x0473, 0x0473,
  1163. 0x0475, 0x0475,
  1164. 0x0477, 0x0477,
  1165. 0x0479, 0x0479,
  1166. 0x047b, 0x047b,
  1167. 0x047d, 0x047d,
  1168. 0x047f, 0x047f,
  1169. 0x0481, 0x0481,
  1170. 0x048b, 0x048b,
  1171. 0x048d, 0x048d,
  1172. 0x048f, 0x048f,
  1173. 0x0491, 0x0491,
  1174. 0x0493, 0x0493,
  1175. 0x0495, 0x0495,
  1176. 0x0497, 0x0497,
  1177. 0x0499, 0x0499,
  1178. 0x049b, 0x049b,
  1179. 0x049d, 0x049d,
  1180. 0x049f, 0x049f,
  1181. 0x04a1, 0x04a1,
  1182. 0x04a3, 0x04a3,
  1183. 0x04a5, 0x04a5,
  1184. 0x04a7, 0x04a7,
  1185. 0x04a9, 0x04a9,
  1186. 0x04ab, 0x04ab,
  1187. 0x04ad, 0x04ad,
  1188. 0x04af, 0x04af,
  1189. 0x04b1, 0x04b1,
  1190. 0x04b3, 0x04b3,
  1191. 0x04b5, 0x04b5,
  1192. 0x04b7, 0x04b7,
  1193. 0x04b9, 0x04b9,
  1194. 0x04bb, 0x04bb,
  1195. 0x04bd, 0x04bd,
  1196. 0x04bf, 0x04bf,
  1197. 0x04c2, 0x04c2,
  1198. 0x04c4, 0x04c4,
  1199. 0x04c6, 0x04c6,
  1200. 0x04c8, 0x04c8,
  1201. 0x04ca, 0x04ca,
  1202. 0x04cc, 0x04cc,
  1203. 0x04ce, 0x04ce,
  1204. 0x04d1, 0x04d1,
  1205. 0x04d3, 0x04d3,
  1206. 0x04d5, 0x04d5,
  1207. 0x04d7, 0x04d7,
  1208. 0x04d9, 0x04d9,
  1209. 0x04db, 0x04db,
  1210. 0x04dd, 0x04dd,
  1211. 0x04df, 0x04df,
  1212. 0x04e1, 0x04e1,
  1213. 0x04e3, 0x04e3,
  1214. 0x04e5, 0x04e5,
  1215. 0x04e7, 0x04e7,
  1216. 0x04e9, 0x04e9,
  1217. 0x04eb, 0x04eb,
  1218. 0x04ed, 0x04ed,
  1219. 0x04ef, 0x04ef,
  1220. 0x04f1, 0x04f1,
  1221. 0x04f3, 0x04f3,
  1222. 0x04f5, 0x04f5,
  1223. 0x04f7, 0x04f7,
  1224. 0x04f9, 0x04f9,
  1225. 0x0501, 0x0501,
  1226. 0x0503, 0x0503,
  1227. 0x0505, 0x0505,
  1228. 0x0507, 0x0507,
  1229. 0x0509, 0x0509,
  1230. 0x050b, 0x050b,
  1231. 0x050d, 0x050d,
  1232. 0x050f, 0x050f,
  1233. 0x0561, 0x0587,
  1234. 0x1d00, 0x1d2b,
  1235. 0x1d62, 0x1d77,
  1236. 0x1d79, 0x1d9a,
  1237. 0x1e01, 0x1e01,
  1238. 0x1e03, 0x1e03,
  1239. 0x1e05, 0x1e05,
  1240. 0x1e07, 0x1e07,
  1241. 0x1e09, 0x1e09,
  1242. 0x1e0b, 0x1e0b,
  1243. 0x1e0d, 0x1e0d,
  1244. 0x1e0f, 0x1e0f,
  1245. 0x1e11, 0x1e11,
  1246. 0x1e13, 0x1e13,
  1247. 0x1e15, 0x1e15,
  1248. 0x1e17, 0x1e17,
  1249. 0x1e19, 0x1e19,
  1250. 0x1e1b, 0x1e1b,
  1251. 0x1e1d, 0x1e1d,
  1252. 0x1e1f, 0x1e1f,
  1253. 0x1e21, 0x1e21,
  1254. 0x1e23, 0x1e23,
  1255. 0x1e25, 0x1e25,
  1256. 0x1e27, 0x1e27,
  1257. 0x1e29, 0x1e29,
  1258. 0x1e2b, 0x1e2b,
  1259. 0x1e2d, 0x1e2d,
  1260. 0x1e2f, 0x1e2f,
  1261. 0x1e31, 0x1e31,
  1262. 0x1e33, 0x1e33,
  1263. 0x1e35, 0x1e35,
  1264. 0x1e37, 0x1e37,
  1265. 0x1e39, 0x1e39,
  1266. 0x1e3b, 0x1e3b,
  1267. 0x1e3d, 0x1e3d,
  1268. 0x1e3f, 0x1e3f,
  1269. 0x1e41, 0x1e41,
  1270. 0x1e43, 0x1e43,
  1271. 0x1e45, 0x1e45,
  1272. 0x1e47, 0x1e47,
  1273. 0x1e49, 0x1e49,
  1274. 0x1e4b, 0x1e4b,
  1275. 0x1e4d, 0x1e4d,
  1276. 0x1e4f, 0x1e4f,
  1277. 0x1e51, 0x1e51,
  1278. 0x1e53, 0x1e53,
  1279. 0x1e55, 0x1e55,
  1280. 0x1e57, 0x1e57,
  1281. 0x1e59, 0x1e59,
  1282. 0x1e5b, 0x1e5b,
  1283. 0x1e5d, 0x1e5d,
  1284. 0x1e5f, 0x1e5f,
  1285. 0x1e61, 0x1e61,
  1286. 0x1e63, 0x1e63,
  1287. 0x1e65, 0x1e65,
  1288. 0x1e67, 0x1e67,
  1289. 0x1e69, 0x1e69,
  1290. 0x1e6b, 0x1e6b,
  1291. 0x1e6d, 0x1e6d,
  1292. 0x1e6f, 0x1e6f,
  1293. 0x1e71, 0x1e71,
  1294. 0x1e73, 0x1e73,
  1295. 0x1e75, 0x1e75,
  1296. 0x1e77, 0x1e77,
  1297. 0x1e79, 0x1e79,
  1298. 0x1e7b, 0x1e7b,
  1299. 0x1e7d, 0x1e7d,
  1300. 0x1e7f, 0x1e7f,
  1301. 0x1e81, 0x1e81,
  1302. 0x1e83, 0x1e83,
  1303. 0x1e85, 0x1e85,
  1304. 0x1e87, 0x1e87,
  1305. 0x1e89, 0x1e89,
  1306. 0x1e8b, 0x1e8b,
  1307. 0x1e8d, 0x1e8d,
  1308. 0x1e8f, 0x1e8f,
  1309. 0x1e91, 0x1e91,
  1310. 0x1e93, 0x1e93,
  1311. 0x1e95, 0x1e9b,
  1312. 0x1ea1, 0x1ea1,
  1313. 0x1ea3, 0x1ea3,
  1314. 0x1ea5, 0x1ea5,
  1315. 0x1ea7, 0x1ea7,
  1316. 0x1ea9, 0x1ea9,
  1317. 0x1eab, 0x1eab,
  1318. 0x1ead, 0x1ead,
  1319. 0x1eaf, 0x1eaf,
  1320. 0x1eb1, 0x1eb1,
  1321. 0x1eb3, 0x1eb3,
  1322. 0x1eb5, 0x1eb5,
  1323. 0x1eb7, 0x1eb7,
  1324. 0x1eb9, 0x1eb9,
  1325. 0x1ebb, 0x1ebb,
  1326. 0x1ebd, 0x1ebd,
  1327. 0x1ebf, 0x1ebf,
  1328. 0x1ec1, 0x1ec1,
  1329. 0x1ec3, 0x1ec3,
  1330. 0x1ec5, 0x1ec5,
  1331. 0x1ec7, 0x1ec7,
  1332. 0x1ec9, 0x1ec9,
  1333. 0x1ecb, 0x1ecb,
  1334. 0x1ecd, 0x1ecd,
  1335. 0x1ecf, 0x1ecf,
  1336. 0x1ed1, 0x1ed1,
  1337. 0x1ed3, 0x1ed3,
  1338. 0x1ed5, 0x1ed5,
  1339. 0x1ed7, 0x1ed7,
  1340. 0x1ed9, 0x1ed9,
  1341. 0x1edb, 0x1edb,
  1342. 0x1edd, 0x1edd,
  1343. 0x1edf, 0x1edf,
  1344. 0x1ee1, 0x1ee1,
  1345. 0x1ee3, 0x1ee3,
  1346. 0x1ee5, 0x1ee5,
  1347. 0x1ee7, 0x1ee7,
  1348. 0x1ee9, 0x1ee9,
  1349. 0x1eeb, 0x1eeb,
  1350. 0x1eed, 0x1eed,
  1351. 0x1eef, 0x1eef,
  1352. 0x1ef1, 0x1ef1,
  1353. 0x1ef3, 0x1ef3,
  1354. 0x1ef5, 0x1ef5,
  1355. 0x1ef7, 0x1ef7,
  1356. 0x1ef9, 0x1ef9,
  1357. 0x1f00, 0x1f07,
  1358. 0x1f10, 0x1f15,
  1359. 0x1f20, 0x1f27,
  1360. 0x1f30, 0x1f37,
  1361. 0x1f40, 0x1f45,
  1362. 0x1f50, 0x1f57,
  1363. 0x1f60, 0x1f67,
  1364. 0x1f70, 0x1f7d,
  1365. 0x1f80, 0x1f87,
  1366. 0x1f90, 0x1f97,
  1367. 0x1fa0, 0x1fa7,
  1368. 0x1fb0, 0x1fb4,
  1369. 0x1fb6, 0x1fb7,
  1370. 0x1fbe, 0x1fbe,
  1371. 0x1fc2, 0x1fc4,
  1372. 0x1fc6, 0x1fc7,
  1373. 0x1fd0, 0x1fd3,
  1374. 0x1fd6, 0x1fd7,
  1375. 0x1fe0, 0x1fe7,
  1376. 0x1ff2, 0x1ff4,
  1377. 0x1ff6, 0x1ff7,
  1378. 0x2071, 0x2071,
  1379. 0x207f, 0x207f,
  1380. 0x210a, 0x210a,
  1381. 0x210e, 0x210f,
  1382. 0x2113, 0x2113,
  1383. 0x212f, 0x212f,
  1384. 0x2134, 0x2134,
  1385. 0x2139, 0x2139,
  1386. 0x213c, 0x213d,
  1387. 0x2146, 0x2149,
  1388. 0x2c30, 0x2c5e,
  1389. 0x2c81, 0x2c81,
  1390. 0x2c83, 0x2c83,
  1391. 0x2c85, 0x2c85,
  1392. 0x2c87, 0x2c87,
  1393. 0x2c89, 0x2c89,
  1394. 0x2c8b, 0x2c8b,
  1395. 0x2c8d, 0x2c8d,
  1396. 0x2c8f, 0x2c8f,
  1397. 0x2c91, 0x2c91,
  1398. 0x2c93, 0x2c93,
  1399. 0x2c95, 0x2c95,
  1400. 0x2c97, 0x2c97,
  1401. 0x2c99, 0x2c99,
  1402. 0x2c9b, 0x2c9b,
  1403. 0x2c9d, 0x2c9d,
  1404. 0x2c9f, 0x2c9f,
  1405. 0x2ca1, 0x2ca1,
  1406. 0x2ca3, 0x2ca3,
  1407. 0x2ca5, 0x2ca5,
  1408. 0x2ca7, 0x2ca7,
  1409. 0x2ca9, 0x2ca9,
  1410. 0x2cab, 0x2cab,
  1411. 0x2cad, 0x2cad,
  1412. 0x2caf, 0x2caf,
  1413. 0x2cb1, 0x2cb1,
  1414. 0x2cb3, 0x2cb3,
  1415. 0x2cb5, 0x2cb5,
  1416. 0x2cb7, 0x2cb7,
  1417. 0x2cb9, 0x2cb9,
  1418. 0x2cbb, 0x2cbb,
  1419. 0x2cbd, 0x2cbd,
  1420. 0x2cbf, 0x2cbf,
  1421. 0x2cc1, 0x2cc1,
  1422. 0x2cc3, 0x2cc3,
  1423. 0x2cc5, 0x2cc5,
  1424. 0x2cc7, 0x2cc7,
  1425. 0x2cc9, 0x2cc9,
  1426. 0x2ccb, 0x2ccb,
  1427. 0x2ccd, 0x2ccd,
  1428. 0x2ccf, 0x2ccf,
  1429. 0x2cd1, 0x2cd1,
  1430. 0x2cd3, 0x2cd3,
  1431. 0x2cd5, 0x2cd5,
  1432. 0x2cd7, 0x2cd7,
  1433. 0x2cd9, 0x2cd9,
  1434. 0x2cdb, 0x2cdb,
  1435. 0x2cdd, 0x2cdd,
  1436. 0x2cdf, 0x2cdf,
  1437. 0x2ce1, 0x2ce1,
  1438. 0x2ce3, 0x2ce4,
  1439. 0x2d00, 0x2d25,
  1440. 0xfb00, 0xfb06,
  1441. 0xfb13, 0xfb17,
  1442. 0xff41, 0xff5a,
  1443. 0x10428, 0x1044f,
  1444. 0x1d41a, 0x1d433,
  1445. 0x1d44e, 0x1d454,
  1446. 0x1d456, 0x1d467,
  1447. 0x1d482, 0x1d49b,
  1448. 0x1d4b6, 0x1d4b9,
  1449. 0x1d4bb, 0x1d4bb,
  1450. 0x1d4bd, 0x1d4c3,
  1451. 0x1d4c5, 0x1d4cf,
  1452. 0x1d4ea, 0x1d503,
  1453. 0x1d51e, 0x1d537,
  1454. 0x1d552, 0x1d56b,
  1455. 0x1d586, 0x1d59f,
  1456. 0x1d5ba, 0x1d5d3,
  1457. 0x1d5ee, 0x1d607,
  1458. 0x1d622, 0x1d63b,
  1459. 0x1d656, 0x1d66f,
  1460. 0x1d68a, 0x1d6a5,
  1461. 0x1d6c2, 0x1d6da,
  1462. 0x1d6dc, 0x1d6e1,
  1463. 0x1d6fc, 0x1d714,
  1464. 0x1d716, 0x1d71b,
  1465. 0x1d736, 0x1d74e,
  1466. 0x1d750, 0x1d755,
  1467. 0x1d770, 0x1d788,
  1468. 0x1d78a, 0x1d78f,
  1469. 0x1d7aa, 0x1d7c2,
  1470. 0x1d7c4, 0x1d7c9
  1471. }; /* CR_Lower */
  1472. /* 'Print': [[:Print:]] */
  1473. static const OnigCodePoint CR_Print[] = {
  1474. 423,
  1475. 0x0009, 0x000d,
  1476. 0x0020, 0x007e,
  1477. 0x0085, 0x0085,
  1478. 0x00a0, 0x0241,
  1479. 0x0250, 0x036f,
  1480. 0x0374, 0x0375,
  1481. 0x037a, 0x037a,
  1482. 0x037e, 0x037e,
  1483. 0x0384, 0x038a,
  1484. 0x038c, 0x038c,
  1485. 0x038e, 0x03a1,
  1486. 0x03a3, 0x03ce,
  1487. 0x03d0, 0x0486,
  1488. 0x0488, 0x04ce,
  1489. 0x04d0, 0x04f9,
  1490. 0x0500, 0x050f,
  1491. 0x0531, 0x0556,
  1492. 0x0559, 0x055f,
  1493. 0x0561, 0x0587,
  1494. 0x0589, 0x058a,
  1495. 0x0591, 0x05b9,
  1496. 0x05bb, 0x05c7,
  1497. 0x05d0, 0x05ea,
  1498. 0x05f0, 0x05f4,
  1499. 0x0600, 0x0603,
  1500. 0x060b, 0x0615,
  1501. 0x061b, 0x061b,
  1502. 0x061e, 0x061f,
  1503. 0x0621, 0x063a,
  1504. 0x0640, 0x065e,
  1505. 0x0660, 0x070d,
  1506. 0x070f, 0x074a,
  1507. 0x074d, 0x076d,
  1508. 0x0780, 0x07b1,
  1509. 0x0901, 0x0939,
  1510. 0x093c, 0x094d,
  1511. 0x0950, 0x0954,
  1512. 0x0958, 0x0970,
  1513. 0x097d, 0x097d,
  1514. 0x0981, 0x0983,
  1515. 0x0985, 0x098c,
  1516. 0x098f, 0x0990,
  1517. 0x0993, 0x09a8,
  1518. 0x09aa, 0x09b0,
  1519. 0x09b2, 0x09b2,
  1520. 0x09b6, 0x09b9,
  1521. 0x09bc, 0x09c4,
  1522. 0x09c7, 0x09c8,
  1523. 0x09cb, 0x09ce,
  1524. 0x09d7, 0x09d7,
  1525. 0x09dc, 0x09dd,
  1526. 0x09df, 0x09e3,
  1527. 0x09e6, 0x09fa,
  1528. 0x0a01, 0x0a03,
  1529. 0x0a05, 0x0a0a,
  1530. 0x0a0f, 0x0a10,
  1531. 0x0a13, 0x0a28,
  1532. 0x0a2a, 0x0a30,
  1533. 0x0a32, 0x0a33,
  1534. 0x0a35, 0x0a36,
  1535. 0x0a38, 0x0a39,
  1536. 0x0a3c, 0x0a3c,
  1537. 0x0a3e, 0x0a42,
  1538. 0x0a47, 0x0a48,
  1539. 0x0a4b, 0x0a4d,
  1540. 0x0a59, 0x0a5c,
  1541. 0x0a5e, 0x0a5e,
  1542. 0x0a66, 0x0a74,
  1543. 0x0a81, 0x0a83,
  1544. 0x0a85, 0x0a8d,
  1545. 0x0a8f, 0x0a91,
  1546. 0x0a93, 0x0aa8,
  1547. 0x0aaa, 0x0ab0,
  1548. 0x0ab2, 0x0ab3,
  1549. 0x0ab5, 0x0ab9,
  1550. 0x0abc, 0x0ac5,
  1551. 0x0ac7, 0x0ac9,
  1552. 0x0acb, 0x0acd,
  1553. 0x0ad0, 0x0ad0,
  1554. 0x0ae0, 0x0ae3,
  1555. 0x0ae6, 0x0aef,
  1556. 0x0af1, 0x0af1,
  1557. 0x0b01, 0x0b03,
  1558. 0x0b05, 0x0b0c,
  1559. 0x0b0f, 0x0b10,
  1560. 0x0b13, 0x0b28,
  1561. 0x0b2a, 0x0b30,
  1562. 0x0b32, 0x0b33,
  1563. 0x0b35, 0x0b39,
  1564. 0x0b3c, 0x0b43,
  1565. 0x0b47, 0x0b48,
  1566. 0x0b4b, 0x0b4d,
  1567. 0x0b56, 0x0b57,
  1568. 0x0b5c, 0x0b5d,
  1569. 0x0b5f, 0x0b61,
  1570. 0x0b66, 0x0b71,
  1571. 0x0b82, 0x0b83,
  1572. 0x0b85, 0x0b8a,
  1573. 0x0b8e, 0x0b90,
  1574. 0x0b92, 0x0b95,
  1575. 0x0b99, 0x0b9a,
  1576. 0x0b9c, 0x0b9c,
  1577. 0x0b9e, 0x0b9f,
  1578. 0x0ba3, 0x0ba4,
  1579. 0x0ba8, 0x0baa,
  1580. 0x0bae, 0x0bb9,
  1581. 0x0bbe, 0x0bc2,
  1582. 0x0bc6, 0x0bc8,
  1583. 0x0bca, 0x0bcd,
  1584. 0x0bd7, 0x0bd7,
  1585. 0x0be6, 0x0bfa,
  1586. 0x0c01, 0x0c03,
  1587. 0x0c05, 0x0c0c,
  1588. 0x0c0e, 0x0c10,
  1589. 0x0c12, 0x0c28,
  1590. 0x0c2a, 0x0c33,
  1591. 0x0c35, 0x0c39,
  1592. 0x0c3e, 0x0c44,
  1593. 0x0c46, 0x0c48,
  1594. 0x0c4a, 0x0c4d,
  1595. 0x0c55, 0x0c56,
  1596. 0x0c60, 0x0c61,
  1597. 0x0c66, 0x0c6f,
  1598. 0x0c82, 0x0c83,
  1599. 0x0c85, 0x0c8c,
  1600. 0x0c8e, 0x0c90,
  1601. 0x0c92, 0x0ca8,
  1602. 0x0caa, 0x0cb3,
  1603. 0x0cb5, 0x0cb9,
  1604. 0x0cbc, 0x0cc4,
  1605. 0x0cc6, 0x0cc8,
  1606. 0x0cca, 0x0ccd,
  1607. 0x0cd5, 0x0cd6,
  1608. 0x0cde, 0x0cde,
  1609. 0x0ce0, 0x0ce1,
  1610. 0x0ce6, 0x0cef,
  1611. 0x0d02, 0x0d03,
  1612. 0x0d05, 0x0d0c,
  1613. 0x0d0e, 0x0d10,
  1614. 0x0d12, 0x0d28,
  1615. 0x0d2a, 0x0d39,
  1616. 0x0d3e, 0x0d43,
  1617. 0x0d46, 0x0d48,
  1618. 0x0d4a, 0x0d4d,
  1619. 0x0d57, 0x0d57,
  1620. 0x0d60, 0x0d61,
  1621. 0x0d66, 0x0d6f,
  1622. 0x0d82, 0x0d83,
  1623. 0x0d85, 0x0d96,
  1624. 0x0d9a, 0x0db1,
  1625. 0x0db3, 0x0dbb,
  1626. 0x0dbd, 0x0dbd,
  1627. 0x0dc0, 0x0dc6,
  1628. 0x0dca, 0x0dca,
  1629. 0x0dcf, 0x0dd4,
  1630. 0x0dd6, 0x0dd6,
  1631. 0x0dd8, 0x0ddf,
  1632. 0x0df2, 0x0df4,
  1633. 0x0e01, 0x0e3a,
  1634. 0x0e3f, 0x0e5b,
  1635. 0x0e81, 0x0e82,
  1636. 0x0e84, 0x0e84,
  1637. 0x0e87, 0x0e88,
  1638. 0x0e8a, 0x0e8a,
  1639. 0x0e8d, 0x0e8d,
  1640. 0x0e94, 0x0e97,
  1641. 0x0e99, 0x0e9f,
  1642. 0x0ea1, 0x0ea3,
  1643. 0x0ea5, 0x0ea5,
  1644. 0x0ea7, 0x0ea7,
  1645. 0x0eaa, 0x0eab,
  1646. 0x0ead, 0x0eb9,
  1647. 0x0ebb, 0x0ebd,
  1648. 0x0ec0, 0x0ec4,
  1649. 0x0ec6, 0x0ec6,
  1650. 0x0ec8, 0x0ecd,
  1651. 0x0ed0, 0x0ed9,
  1652. 0x0edc, 0x0edd,
  1653. 0x0f00, 0x0f47,
  1654. 0x0f49, 0x0f6a,
  1655. 0x0f71, 0x0f8b,
  1656. 0x0f90, 0x0f97,
  1657. 0x0f99, 0x0fbc,
  1658. 0x0fbe, 0x0fcc,
  1659. 0x0fcf, 0x0fd1,
  1660. 0x1000, 0x1021,
  1661. 0x1023, 0x1027,
  1662. 0x1029, 0x102a,
  1663. 0x102c, 0x1032,
  1664. 0x1036, 0x1039,
  1665. 0x1040, 0x1059,
  1666. 0x10a0, 0x10c5,
  1667. 0x10d0, 0x10fc,
  1668. 0x1100, 0x1159,
  1669. 0x115f, 0x11a2,
  1670. 0x11a8, 0x11f9,
  1671. 0x1200, 0x1248,
  1672. 0x124a, 0x124d,
  1673. 0x1250, 0x1256,
  1674. 0x1258, 0x1258,
  1675. 0x125a, 0x125d,
  1676. 0x1260, 0x1288,
  1677. 0x128a, 0x128d,
  1678. 0x1290, 0x12b0,
  1679. 0x12b2, 0x12b5,
  1680. 0x12b8, 0x12be,
  1681. 0x12c0, 0x12c0,
  1682. 0x12c2, 0x12c5,
  1683. 0x12c8, 0x12d6,
  1684. 0x12d8, 0x1310,
  1685. 0x1312, 0x1315,
  1686. 0x1318, 0x135a,
  1687. 0x135f, 0x137c,
  1688. 0x1380, 0x1399,
  1689. 0x13a0, 0x13f4,
  1690. 0x1401, 0x1676,
  1691. 0x1680, 0x169c,
  1692. 0x16a0, 0x16f0,
  1693. 0x1700, 0x170c,
  1694. 0x170e, 0x1714,
  1695. 0x1720, 0x1736,
  1696. 0x1740, 0x1753,
  1697. 0x1760, 0x176c,
  1698. 0x176e, 0x1770,
  1699. 0x1772, 0x1773,
  1700. 0x1780, 0x17dd,
  1701. 0x17e0, 0x17e9,
  1702. 0x17f0, 0x17f9,
  1703. 0x1800, 0x180e,
  1704. 0x1810, 0x1819,
  1705. 0x1820, 0x1877,
  1706. 0x1880, 0x18a9,
  1707. 0x1900, 0x191c,
  1708. 0x1920, 0x192b,
  1709. 0x1930, 0x193b,
  1710. 0x1940, 0x1940,
  1711. 0x1944, 0x196d,
  1712. 0x1970, 0x1974,
  1713. 0x1980, 0x19a9,
  1714. 0x19b0, 0x19c9,
  1715. 0x19d0, 0x19d9,
  1716. 0x19de, 0x1a1b,
  1717. 0x1a1e, 0x1a1f,
  1718. 0x1d00, 0x1dc3,
  1719. 0x1e00, 0x1e9b,
  1720. 0x1ea0, 0x1ef9,
  1721. 0x1f00, 0x1f15,
  1722. 0x1f18, 0x1f1d,
  1723. 0x1f20, 0x1f45,
  1724. 0x1f48, 0x1f4d,
  1725. 0x1f50, 0x1f57,
  1726. 0x1f59, 0x1f59,
  1727. 0x1f5b, 0x1f5b,
  1728. 0x1f5d, 0x1f5d,
  1729. 0x1f5f, 0x1f7d,
  1730. 0x1f80, 0x1fb4,
  1731. 0x1fb6, 0x1fc4,
  1732. 0x1fc6, 0x1fd3,
  1733. 0x1fd6, 0x1fdb,
  1734. 0x1fdd, 0x1fef,
  1735. 0x1ff2, 0x1ff4,
  1736. 0x1ff6, 0x1ffe,
  1737. 0x2000, 0x2063,
  1738. 0x206a, 0x2071,
  1739. 0x2074, 0x208e,
  1740. 0x2090, 0x2094,
  1741. 0x20a0, 0x20b5,
  1742. 0x20d0, 0x20eb,
  1743. 0x2100, 0x214c,
  1744. 0x2153, 0x2183,
  1745. 0x2190, 0x23db,
  1746. 0x2400, 0x2426,
  1747. 0x2440, 0x244a,
  1748. 0x2460, 0x269c,
  1749. 0x26a0, 0x26b1,
  1750. 0x2701, 0x2704,
  1751. 0x2706, 0x2709,
  1752. 0x270c, 0x2727,
  1753. 0x2729, 0x274b,
  1754. 0x274d, 0x274d,
  1755. 0x274f, 0x2752,
  1756. 0x2756, 0x2756,
  1757. 0x2758, 0x275e,
  1758. 0x2761, 0x2794,
  1759. 0x2798, 0x27af,
  1760. 0x27b1, 0x27be,
  1761. 0x27c0, 0x27c6,
  1762. 0x27d0, 0x27eb,
  1763. 0x27f0, 0x2b13,
  1764. 0x2c00, 0x2c2e,
  1765. 0x2c30, 0x2c5e,
  1766. 0x2c80, 0x2cea,
  1767. 0x2cf9, 0x2d25,
  1768. 0x2d30, 0x2d65,
  1769. 0x2d6f, 0x2d6f,
  1770. 0x2d80, 0x2d96,
  1771. 0x2da0, 0x2da6,
  1772. 0x2da8, 0x2dae,
  1773. 0x2db0, 0x2db6,
  1774. 0x2db8, 0x2dbe,
  1775. 0x2dc0, 0x2dc6,
  1776. 0x2dc8, 0x2dce,
  1777. 0x2dd0, 0x2dd6,
  1778. 0x2dd8, 0x2dde,
  1779. 0x2e00, 0x2e17,
  1780. 0x2e1c, 0x2e1d,
  1781. 0x2e80, 0x2e99,
  1782. 0x2e9b, 0x2ef3,
  1783. 0x2f00, 0x2fd5,
  1784. 0x2ff0, 0x2ffb,
  1785. 0x3000, 0x303f,
  1786. 0x3041, 0x3096,
  1787. 0x3099, 0x30ff,
  1788. 0x3105, 0x312c,
  1789. 0x3131, 0x318e,
  1790. 0x3190, 0x31b7,
  1791. 0x31c0, 0x31cf,
  1792. 0x31f0, 0x321e,
  1793. 0x3220, 0x3243,
  1794. 0x3250, 0x32fe,
  1795. 0x3300, 0x4db5,
  1796. 0x4dc0, 0x9fbb,
  1797. 0xa000, 0xa48c,
  1798. 0xa490, 0xa4c6,
  1799. 0xa700, 0xa716,
  1800. 0xa800, 0xa82b,
  1801. 0xac00, 0xd7a3,
  1802. 0xe000, 0xfa2d,
  1803. 0xfa30, 0xfa6a,
  1804. 0xfa70, 0xfad9,
  1805. 0xfb00, 0xfb06,
  1806. 0xfb13, 0xfb17,
  1807. 0xfb1d, 0xfb36,
  1808. 0xfb38, 0xfb3c,
  1809. 0xfb3e, 0xfb3e,
  1810. 0xfb40, 0xfb41,
  1811. 0xfb43, 0xfb44,
  1812. 0xfb46, 0xfbb1,
  1813. 0xfbd3, 0xfd3f,
  1814. 0xfd50, 0xfd8f,
  1815. 0xfd92, 0xfdc7,
  1816. 0xfdf0, 0xfdfd,
  1817. 0xfe00, 0xfe19,
  1818. 0xfe20, 0xfe23,
  1819. 0xfe30, 0xfe52,
  1820. 0xfe54, 0xfe66,
  1821. 0xfe68, 0xfe6b,
  1822. 0xfe70, 0xfe74,
  1823. 0xfe76, 0xfefc,
  1824. 0xfeff, 0xfeff,
  1825. 0xff01, 0xffbe,
  1826. 0xffc2, 0xffc7,
  1827. 0xffca, 0xffcf,
  1828. 0xffd2, 0xffd7,
  1829. 0xffda, 0xffdc,
  1830. 0xffe0, 0xffe6,
  1831. 0xffe8, 0xffee,
  1832. 0xfff9, 0xfffd,
  1833. 0x10000, 0x1000b,
  1834. 0x1000d, 0x10026,
  1835. 0x10028, 0x1003a,
  1836. 0x1003c, 0x1003d,
  1837. 0x1003f, 0x1004d,
  1838. 0x10050, 0x1005d,
  1839. 0x10080, 0x100fa,
  1840. 0x10100, 0x10102,
  1841. 0x10107, 0x10133,
  1842. 0x10137, 0x1018a,
  1843. 0x10300, 0x1031e,
  1844. 0x10320, 0x10323,
  1845. 0x10330, 0x1034a,
  1846. 0x10380, 0x1039d,
  1847. 0x1039f, 0x103c3,
  1848. 0x103c8, 0x103d5,
  1849. 0x10400, 0x1049d,
  1850. 0x104a0, 0x104a9,
  1851. 0x10800, 0x10805,
  1852. 0x10808, 0x10808,
  1853. 0x1080a, 0x10835,
  1854. 0x10837, 0x10838,
  1855. 0x1083c, 0x1083c,
  1856. 0x1083f, 0x1083f,
  1857. 0x10a00, 0x10a03,
  1858. 0x10a05, 0x10a06,
  1859. 0x10a0c, 0x10a13,
  1860. 0x10a15, 0x10a17,
  1861. 0x10a19, 0x10a33,
  1862. 0x10a38, 0x10a3a,
  1863. 0x10a3f, 0x10a47,
  1864. 0x10a50, 0x10a58,
  1865. 0x1d000, 0x1d0f5,
  1866. 0x1d100, 0x1d126,
  1867. 0x1d12a, 0x1d1dd,
  1868. 0x1d200, 0x1d245,
  1869. 0x1d300, 0x1d356,
  1870. 0x1d400, 0x1d454,
  1871. 0x1d456, 0x1d49c,
  1872. 0x1d49e, 0x1d49f,
  1873. 0x1d4a2, 0x1d4a2,
  1874. 0x1d4a5, 0x1d4a6,
  1875. 0x1d4a9, 0x1d4ac,
  1876. 0x1d4ae, 0x1d4b9,
  1877. 0x1d4bb, 0x1d4bb,
  1878. 0x1d4bd, 0x1d4c3,
  1879. 0x1d4c5, 0x1d505,
  1880. 0x1d507, 0x1d50a,
  1881. 0x1d50d, 0x1d514,
  1882. 0x1d516, 0x1d51c,
  1883. 0x1d51e, 0x1d539,
  1884. 0x1d53b, 0x1d53e,
  1885. 0x1d540, 0x1d544,
  1886. 0x1d546, 0x1d546,
  1887. 0x1d54a, 0x1d550,
  1888. 0x1d552, 0x1d6a5,
  1889. 0x1d6a8, 0x1d7c9,
  1890. 0x1d7ce, 0x1d7ff,
  1891. 0x20000, 0x2a6d6,
  1892. 0x2f800, 0x2fa1d,
  1893. 0xe0001, 0xe0001,
  1894. 0xe0020, 0xe007f,
  1895. 0xe0100, 0xe01ef,
  1896. 0xf0000, 0xffffd,
  1897. 0x100000, 0x10fffd
  1898. }; /* CR_Print */
  1899. /* 'Punct': [[:Punct:]] */
  1900. static const OnigCodePoint CR_Punct[] = {
  1901. 96,
  1902. 0x0021, 0x0023,
  1903. 0x0025, 0x002a,
  1904. 0x002c, 0x002f,
  1905. 0x003a, 0x003b,
  1906. 0x003f, 0x0040,
  1907. 0x005b, 0x005d,
  1908. 0x005f, 0x005f,
  1909. 0x007b, 0x007b,
  1910. 0x007d, 0x007d,
  1911. 0x00a1, 0x00a1,
  1912. 0x00ab, 0x00ab,
  1913. 0x00b7, 0x00b7,
  1914. 0x00bb, 0x00bb,
  1915. 0x00bf, 0x00bf,
  1916. 0x037e, 0x037e,
  1917. 0x0387, 0x0387,
  1918. 0x055a, 0x055f,
  1919. 0x0589, 0x058a,
  1920. 0x05be, 0x05be,
  1921. 0x05c0, 0x05c0,
  1922. 0x05c3, 0x05c3,
  1923. 0x05c6, 0x05c6,
  1924. 0x05f3, 0x05f4,
  1925. 0x060c, 0x060d,
  1926. 0x061b, 0x061b,
  1927. 0x061e, 0x061f,
  1928. 0x066a, 0x066d,
  1929. 0x06d4, 0x06d4,
  1930. 0x0700, 0x070d,
  1931. 0x0964, 0x0965,
  1932. 0x0970, 0x0970,
  1933. 0x0df4, 0x0df4,
  1934. 0x0e4f, 0x0e4f,
  1935. 0x0e5a, 0x0e5b,
  1936. 0x0f04, 0x0f12,
  1937. 0x0f3a, 0x0f3d,
  1938. 0x0f85, 0x0f85,
  1939. 0x0fd0, 0x0fd1,
  1940. 0x104a, 0x104f,
  1941. 0x10fb, 0x10fb,
  1942. 0x1361, 0x1368,
  1943. 0x166d, 0x166e,
  1944. 0x169b, 0x169c,
  1945. 0x16eb, 0x16ed,
  1946. 0x1735, 0x1736,
  1947. 0x17d4, 0x17d6,
  1948. 0x17d8, 0x17da,
  1949. 0x1800, 0x180a,
  1950. 0x1944, 0x1945,
  1951. 0x19de, 0x19df,
  1952. 0x1a1e, 0x1a1f,
  1953. 0x2010, 0x2027,
  1954. 0x2030, 0x2043,
  1955. 0x2045, 0x2051,
  1956. 0x2053, 0x205e,
  1957. 0x207d, 0x207e,
  1958. 0x208d, 0x208e,
  1959. 0x2329, 0x232a,
  1960. 0x23b4, 0x23b6,
  1961. 0x2768, 0x2775,
  1962. 0x27c5, 0x27c6,
  1963. 0x27e6, 0x27eb,
  1964. 0x2983, 0x2998,
  1965. 0x29d8, 0x29db,
  1966. 0x29fc, 0x29fd,
  1967. 0x2cf9, 0x2cfc,
  1968. 0x2cfe, 0x2cff,
  1969. 0x2e00, 0x2e17,
  1970. 0x2e1c, 0x2e1d,
  1971. 0x3001, 0x3003,
  1972. 0x3008, 0x3011,
  1973. 0x3014, 0x301f,
  1974. 0x3030, 0x3030,
  1975. 0x303d, 0x303d,
  1976. 0x30a0, 0x30a0,
  1977. 0x30fb, 0x30fb,
  1978. 0xfd3e, 0xfd3f,
  1979. 0xfe10, 0xfe19,
  1980. 0xfe30, 0xfe52,
  1981. 0xfe54, 0xfe61,
  1982. 0xfe63, 0xfe63,
  1983. 0xfe68, 0xfe68,
  1984. 0xfe6a, 0xfe6b,
  1985. 0xff01, 0xff03,
  1986. 0xff05, 0xff0a,
  1987. 0xff0c, 0xff0f,
  1988. 0xff1a, 0xff1b,
  1989. 0xff1f, 0xff20,
  1990. 0xff3b, 0xff3d,
  1991. 0xff3f, 0xff3f,
  1992. 0xff5b, 0xff5b,
  1993. 0xff5d, 0xff5d,
  1994. 0xff5f, 0xff65,
  1995. 0x10100, 0x10101,
  1996. 0x1039f, 0x1039f,
  1997. 0x10a50, 0x10a58
  1998. }; /* CR_Punct */
  1999. /* 'Space': [[:Space:]] */
  2000. static const OnigCodePoint CR_Space[] = {
  2001. 11,
  2002. 0x0009, 0x000d,
  2003. 0x0020, 0x0020,
  2004. 0x0085, 0x0085,
  2005. 0x00a0, 0x00a0,
  2006. 0x1680, 0x1680,
  2007. 0x180e, 0x180e,
  2008. 0x2000, 0x200a,
  2009. 0x2028, 0x2029,
  2010. 0x202f, 0x202f,
  2011. 0x205f, 0x205f,
  2012. 0x3000, 0x3000
  2013. }; /* CR_Space */
  2014. /* 'Upper': [[:Upper:]] */
  2015. static const OnigCodePoint CR_Upper[] = {
  2016. 476,
  2017. 0x0041, 0x005a,
  2018. 0x00c0, 0x00d6,
  2019. 0x00d8, 0x00de,
  2020. 0x0100, 0x0100,
  2021. 0x0102, 0x0102,
  2022. 0x0104, 0x0104,
  2023. 0x0106, 0x0106,
  2024. 0x0108, 0x0108,
  2025. 0x010a, 0x010a,
  2026. 0x010c, 0x010c,
  2027. 0x010e, 0x010e,
  2028. 0x0110, 0x0110,
  2029. 0x0112, 0x0112,
  2030. 0x0114, 0x0114,
  2031. 0x0116, 0x0116,
  2032. 0x0118, 0x0118,
  2033. 0x011a, 0x011a,
  2034. 0x011c, 0x011c,
  2035. 0x011e, 0x011e,
  2036. 0x0120, 0x0120,
  2037. 0x0122, 0x0122,
  2038. 0x0124, 0x0124,
  2039. 0x0126, 0x0126,
  2040. 0x0128, 0x0128,
  2041. 0x012a, 0x012a,
  2042. 0x012c, 0x012c,
  2043. 0x012e, 0x012e,
  2044. 0x0130, 0x0130,
  2045. 0x0132, 0x0132,
  2046. 0x0134, 0x0134,
  2047. 0x0136, 0x0136,
  2048. 0x0139, 0x0139,
  2049. 0x013b, 0x013b,
  2050. 0x013d, 0x013d,
  2051. 0x013f, 0x013f,
  2052. 0x0141, 0x0141,
  2053. 0x0143, 0x0143,
  2054. 0x0145, 0x0145,
  2055. 0x0147, 0x0147,
  2056. 0x014a, 0x014a,
  2057. 0x014c, 0x014c,
  2058. 0x014e, 0x014e,
  2059. 0x0150, 0x0150,
  2060. 0x0152, 0x0152,
  2061. 0x0154, 0x0154,
  2062. 0x0156, 0x0156,
  2063. 0x0158, 0x0158,
  2064. 0x015a, 0x015a,
  2065. 0x015c, 0x015c,
  2066. 0x015e, 0x015e,
  2067. 0x0160, 0x0160,
  2068. 0x0162, 0x0162,
  2069. 0x0164, 0x0164,
  2070. 0x0166, 0x0166,
  2071. 0x0168, 0x0168,
  2072. 0x016a, 0x016a,
  2073. 0x016c, 0x016c,
  2074. 0x016e, 0x016e,
  2075. 0x0170, 0x0170,
  2076. 0x0172, 0x0172,
  2077. 0x0174, 0x0174,
  2078. 0x0176, 0x0176,
  2079. 0x0178, 0x0179,
  2080. 0x017b, 0x017b,
  2081. 0x017d, 0x017d,
  2082. 0x0181, 0x0182,
  2083. 0x0184, 0x0184,
  2084. 0x0186, 0x0187,
  2085. 0x0189, 0x018b,
  2086. 0x018e, 0x0191,
  2087. 0x0193, 0x0194,
  2088. 0x0196, 0x0198,
  2089. 0x019c, 0x019d,
  2090. 0x019f, 0x01a0,
  2091. 0x01a2, 0x01a2,
  2092. 0x01a4, 0x01a4,
  2093. 0x01a6, 0x01a7,
  2094. 0x01a9, 0x01a9,
  2095. 0x01ac, 0x01ac,
  2096. 0x01ae, 0x01af,
  2097. 0x01b1, 0x01b3,
  2098. 0x01b5, 0x01b5,
  2099. 0x01b7, 0x01b8,
  2100. 0x01bc, 0x01bc,
  2101. 0x01c4, 0x01c4,
  2102. 0x01c7, 0x01c7,
  2103. 0x01ca, 0x01ca,
  2104. 0x01cd, 0x01cd,
  2105. 0x01cf, 0x01cf,
  2106. 0x01d1, 0x01d1,
  2107. 0x01d3, 0x01d3,
  2108. 0x01d5, 0x01d5,
  2109. 0x01d7, 0x01d7,
  2110. 0x01d9, 0x01d9,
  2111. 0x01db, 0x01db,
  2112. 0x01de, 0x01de,
  2113. 0x01e0, 0x01e0,
  2114. 0x01e2, 0x01e2,
  2115. 0x01e4, 0x01e4,
  2116. 0x01e6, 0x01e6,
  2117. 0x01e8, 0x01e8,
  2118. 0x01ea, 0x01ea,
  2119. 0x01ec, 0x01ec,
  2120. 0x01ee, 0x01ee,
  2121. 0x01f1, 0x01f1,
  2122. 0x01f4, 0x01f4,
  2123. 0x01f6, 0x01f8,
  2124. 0x01fa, 0x01fa,
  2125. 0x01fc, 0x01fc,
  2126. 0x01fe, 0x01fe,
  2127. 0x0200, 0x0200,
  2128. 0x0202, 0x0202,
  2129. 0x0204, 0x0204,
  2130. 0x0206, 0x0206,
  2131. 0x0208, 0x0208,
  2132. 0x020a, 0x020a,
  2133. 0x020c, 0x020c,
  2134. 0x020e, 0x020e,
  2135. 0x0210, 0x0210,
  2136. 0x0212, 0x0212,
  2137. 0x0214, 0x0214,
  2138. 0x0216, 0x0216,
  2139. 0x0218, 0x0218,
  2140. 0x021a, 0x021a,
  2141. 0x021c, 0x021c,
  2142. 0x021e, 0x021e,
  2143. 0x0220, 0x0220,
  2144. 0x0222, 0x0222,
  2145. 0x0224, 0x0224,
  2146. 0x0226, 0x0226,
  2147. 0x0228, 0x0228,
  2148. 0x022a, 0x022a,
  2149. 0x022c, 0x022c,
  2150. 0x022e, 0x022e,
  2151. 0x0230, 0x0230,
  2152. 0x0232, 0x0232,
  2153. 0x023a, 0x023b,
  2154. 0x023d, 0x023e,
  2155. 0x0241, 0x0241,
  2156. 0x0386, 0x0386,
  2157. 0x0388, 0x038a,
  2158. 0x038c, 0x038c,
  2159. 0x038e, 0x038f,
  2160. 0x0391, 0x03a1,
  2161. 0x03a3, 0x03ab,
  2162. 0x03d2, 0x03d4,
  2163. 0x03d8, 0x03d8,
  2164. 0x03da, 0x03da,
  2165. 0x03dc, 0x03dc,
  2166. 0x03de, 0x03de,
  2167. 0x03e0, 0x03e0,
  2168. 0x03e2, 0x03e2,
  2169. 0x03e4, 0x03e4,
  2170. 0x03e6, 0x03e6,
  2171. 0x03e8, 0x03e8,
  2172. 0x03ea, 0x03ea,
  2173. 0x03ec, 0x03ec,
  2174. 0x03ee, 0x03ee,
  2175. 0x03f4, 0x03f4,
  2176. 0x03f7, 0x03f7,
  2177. 0x03f9, 0x03fa,
  2178. 0x03fd, 0x042f,
  2179. 0x0460, 0x0460,
  2180. 0x0462, 0x0462,
  2181. 0x0464, 0x0464,
  2182. 0x0466, 0x0466,
  2183. 0x0468, 0x0468,
  2184. 0x046a, 0x046a,
  2185. 0x046c, 0x046c,
  2186. 0x046e, 0x046e,
  2187. 0x0470, 0x0470,
  2188. 0x0472, 0x0472,
  2189. 0x0474, 0x0474,
  2190. 0x0476, 0x0476,
  2191. 0x0478, 0x0478,
  2192. 0x047a, 0x047a,
  2193. 0x047c, 0x047c,
  2194. 0x047e, 0x047e,
  2195. 0x0480, 0x0480,
  2196. 0x048a, 0x048a,
  2197. 0x048c, 0x048c,
  2198. 0x048e, 0x048e,
  2199. 0x0490, 0x0490,
  2200. 0x0492, 0x0492,
  2201. 0x0494, 0x0494,
  2202. 0x0496, 0x0496,
  2203. 0x0498, 0x0498,
  2204. 0x049a, 0x049a,
  2205. 0x049c, 0x049c,
  2206. 0x049e, 0x049e,
  2207. 0x04a0, 0x04a0,
  2208. 0x04a2, 0x04a2,
  2209. 0x04a4, 0x04a4,
  2210. 0x04a6, 0x04a6,
  2211. 0x04a8, 0x04a8,
  2212. 0x04aa, 0x04aa,
  2213. 0x04ac, 0x04ac,
  2214. 0x04ae, 0x04ae,
  2215. 0x04b0, 0x04b0,
  2216. 0x04b2, 0x04b2,
  2217. 0x04b4, 0x04b4,
  2218. 0x04b6, 0x04b6,
  2219. 0x04b8, 0x04b8,
  2220. 0x04ba, 0x04ba,
  2221. 0x04bc, 0x04bc,
  2222. 0x04be, 0x04be,
  2223. 0x04c0, 0x04c1,
  2224. 0x04c3, 0x04c3,
  2225. 0x04c5, 0x04c5,
  2226. 0x04c7, 0x04c7,
  2227. 0x04c9, 0x04c9,
  2228. 0x04cb, 0x04cb,
  2229. 0x04cd, 0x04cd,
  2230. 0x04d0, 0x04d0,
  2231. 0x04d2, 0x04d2,
  2232. 0x04d4, 0x04d4,
  2233. 0x04d6, 0x04d6,
  2234. 0x04d8, 0x04d8,
  2235. 0x04da, 0x04da,
  2236. 0x04dc, 0x04dc,
  2237. 0x04de, 0x04de,
  2238. 0x04e0, 0x04e0,
  2239. 0x04e2, 0x04e2,
  2240. 0x04e4, 0x04e4,
  2241. 0x04e6, 0x04e6,
  2242. 0x04e8, 0x04e8,
  2243. 0x04ea, 0x04ea,
  2244. 0x04ec, 0x04ec,
  2245. 0x04ee, 0x04ee,
  2246. 0x04f0, 0x04f0,
  2247. 0x04f2, 0x04f2,
  2248. 0x04f4, 0x04f4,
  2249. 0x04f6, 0x04f6,
  2250. 0x04f8, 0x04f8,
  2251. 0x0500, 0x0500,
  2252. 0x0502, 0x0502,
  2253. 0x0504, 0x0504,
  2254. 0x0506, 0x0506,
  2255. 0x0508, 0x0508,
  2256. 0x050a, 0x050a,
  2257. 0x050c, 0x050c,
  2258. 0x050e, 0x050e,
  2259. 0x0531, 0x0556,
  2260. 0x10a0, 0x10c5,
  2261. 0x1e00, 0x1e00,
  2262. 0x1e02, 0x1e02,
  2263. 0x1e04, 0x1e04,
  2264. 0x1e06, 0x1e06,
  2265. 0x1e08, 0x1e08,
  2266. 0x1e0a, 0x1e0a,
  2267. 0x1e0c, 0x1e0c,
  2268. 0x1e0e, 0x1e0e,
  2269. 0x1e10, 0x1e10,
  2270. 0x1e12, 0x1e12,
  2271. 0x1e14, 0x1e14,
  2272. 0x1e16, 0x1e16,
  2273. 0x1e18, 0x1e18,
  2274. 0x1e1a, 0x1e1a,
  2275. 0x1e1c, 0x1e1c,
  2276. 0x1e1e, 0x1e1e,
  2277. 0x1e20, 0x1e20,
  2278. 0x1e22, 0x1e22,
  2279. 0x1e24, 0x1e24,
  2280. 0x1e26, 0x1e26,
  2281. 0x1e28, 0x1e28,
  2282. 0x1e2a, 0x1e2a,
  2283. 0x1e2c, 0x1e2c,
  2284. 0x1e2e, 0x1e2e,
  2285. 0x1e30, 0x1e30,
  2286. 0x1e32, 0x1e32,
  2287. 0x1e34, 0x1e34,
  2288. 0x1e36, 0x1e36,
  2289. 0x1e38, 0x1e38,
  2290. 0x1e3a, 0x1e3a,
  2291. 0x1e3c, 0x1e3c,
  2292. 0x1e3e, 0x1e3e,
  2293. 0x1e40, 0x1e40,
  2294. 0x1e42, 0x1e42,
  2295. 0x1e44, 0x1e44,
  2296. 0x1e46, 0x1e46,
  2297. 0x1e48, 0x1e48,
  2298. 0x1e4a, 0x1e4a,
  2299. 0x1e4c, 0x1e4c,
  2300. 0x1e4e, 0x1e4e,
  2301. 0x1e50, 0x1e50,
  2302. 0x1e52, 0x1e52,
  2303. 0x1e54, 0x1e54,
  2304. 0x1e56, 0x1e56,
  2305. 0x1e58, 0x1e58,
  2306. 0x1e5a, 0x1e5a,
  2307. 0x1e5c, 0x1e5c,
  2308. 0x1e5e, 0x1e5e,
  2309. 0x1e60, 0x1e60,
  2310. 0x1e62, 0x1e62,
  2311. 0x1e64, 0x1e64,
  2312. 0x1e66, 0x1e66,
  2313. 0x1e68, 0x1e68,
  2314. 0x1e6a, 0x1e6a,
  2315. 0x1e6c, 0x1e6c,
  2316. 0x1e6e, 0x1e6e,
  2317. 0x1e70, 0x1e70,
  2318. 0x1e72, 0x1e72,
  2319. 0x1e74, 0x1e74,
  2320. 0x1e76, 0x1e76,
  2321. 0x1e78, 0x1e78,
  2322. 0x1e7a, 0x1e7a,
  2323. 0x1e7c, 0x1e7c,
  2324. 0x1e7e, 0x1e7e,
  2325. 0x1e80, 0x1e80,
  2326. 0x1e82, 0x1e82,
  2327. 0x1e84, 0x1e84,
  2328. 0x1e86, 0x1e86,
  2329. 0x1e88, 0x1e88,
  2330. 0x1e8a, 0x1e8a,
  2331. 0x1e8c, 0x1e8c,
  2332. 0x1e8e, 0x1e8e,
  2333. 0x1e90, 0x1e90,
  2334. 0x1e92, 0x1e92,
  2335. 0x1e94, 0x1e94,
  2336. 0x1ea0, 0x1ea0,
  2337. 0x1ea2, 0x1ea2,
  2338. 0x1ea4, 0x1ea4,
  2339. 0x1ea6, 0x1ea6,
  2340. 0x1ea8, 0x1ea8,
  2341. 0x1eaa, 0x1eaa,
  2342. 0x1eac, 0x1eac,
  2343. 0x1eae, 0x1eae,
  2344. 0x1eb0, 0x1eb0,
  2345. 0x1eb2, 0x1eb2,
  2346. 0x1eb4, 0x1eb4,
  2347. 0x1eb6, 0x1eb6,
  2348. 0x1eb8, 0x1eb8,
  2349. 0x1eba, 0x1eba,
  2350. 0x1ebc, 0x1ebc,
  2351. 0x1ebe, 0x1ebe,
  2352. 0x1ec0, 0x1ec0,
  2353. 0x1ec2, 0x1ec2,
  2354. 0x1ec4, 0x1ec4,
  2355. 0x1ec6, 0x1ec6,
  2356. 0x1ec8, 0x1ec8,
  2357. 0x1eca, 0x1eca,
  2358. 0x1ecc, 0x1ecc,
  2359. 0x1ece, 0x1ece,
  2360. 0x1ed0, 0x1ed0,
  2361. 0x1ed2, 0x1ed2,
  2362. 0x1ed4, 0x1ed4,
  2363. 0x1ed6, 0x1ed6,
  2364. 0x1ed8, 0x1ed8,
  2365. 0x1eda, 0x1eda,
  2366. 0x1edc, 0x1edc,
  2367. 0x1ede, 0x1ede,
  2368. 0x1ee0, 0x1ee0,
  2369. 0x1ee2, 0x1ee2,
  2370. 0x1ee4, 0x1ee4,
  2371. 0x1ee6, 0x1ee6,
  2372. 0x1ee8, 0x1ee8,
  2373. 0x1eea, 0x1eea,
  2374. 0x1eec, 0x1eec,
  2375. 0x1eee, 0x1eee,
  2376. 0x1ef0, 0x1ef0,
  2377. 0x1ef2, 0x1ef2,
  2378. 0x1ef4, 0x1ef4,
  2379. 0x1ef6, 0x1ef6,
  2380. 0x1ef8, 0x1ef8,
  2381. 0x1f08, 0x1f0f,
  2382. 0x1f18, 0x1f1d,
  2383. 0x1f28, 0x1f2f,
  2384. 0x1f38, 0x1f3f,
  2385. 0x1f48, 0x1f4d,
  2386. 0x1f59, 0x1f59,
  2387. 0x1f5b, 0x1f5b,
  2388. 0x1f5d, 0x1f5d,
  2389. 0x1f5f, 0x1f5f,
  2390. 0x1f68, 0x1f6f,
  2391. 0x1fb8, 0x1fbb,
  2392. 0x1fc8, 0x1fcb,
  2393. 0x1fd8, 0x1fdb,
  2394. 0x1fe8, 0x1fec,
  2395. 0x1ff8, 0x1ffb,
  2396. 0x2102, 0x2102,
  2397. 0x2107, 0x2107,
  2398. 0x210b, 0x210d,
  2399. 0x2110, 0x2112,
  2400. 0x2115, 0x2115,
  2401. 0x2119, 0x211d,
  2402. 0x2124, 0x2124,
  2403. 0x2126, 0x2126,
  2404. 0x2128, 0x2128,
  2405. 0x212a, 0x212d,
  2406. 0x2130, 0x2131,
  2407. 0x2133, 0x2133,
  2408. 0x213e, 0x213f,
  2409. 0x2145, 0x2145,
  2410. 0x2c00, 0x2c2e,
  2411. 0x2c80, 0x2c80,
  2412. 0x2c82, 0x2c82,
  2413. 0x2c84, 0x2c84,
  2414. 0x2c86, 0x2c86,
  2415. 0x2c88, 0x2c88,
  2416. 0x2c8a, 0x2c8a,
  2417. 0x2c8c, 0x2c8c,
  2418. 0x2c8e, 0x2c8e,
  2419. 0x2c90, 0x2c90,
  2420. 0x2c92, 0x2c92,
  2421. 0x2c94, 0x2c94,
  2422. 0x2c96, 0x2c96,
  2423. 0x2c98, 0x2c98,
  2424. 0x2c9a, 0x2c9a,
  2425. 0x2c9c, 0x2c9c,
  2426. 0x2c9e, 0x2c9e,
  2427. 0x2ca0, 0x2ca0,
  2428. 0x2ca2, 0x2ca2,
  2429. 0x2ca4, 0x2ca4,
  2430. 0x2ca6, 0x2ca6,
  2431. 0x2ca8, 0x2ca8,
  2432. 0x2caa, 0x2caa,
  2433. 0x2cac, 0x2cac,
  2434. 0x2cae, 0x2cae,
  2435. 0x2cb0, 0x2cb0,
  2436. 0x2cb2, 0x2cb2,
  2437. 0x2cb4, 0x2cb4,
  2438. 0x2cb6, 0x2cb6,
  2439. 0x2cb8, 0x2cb8,
  2440. 0x2cba, 0x2cba,
  2441. 0x2cbc, 0x2cbc,
  2442. 0x2cbe, 0x2cbe,
  2443. 0x2cc0, 0x2cc0,
  2444. 0x2cc2, 0x2cc2,
  2445. 0x2cc4, 0x2cc4,
  2446. 0x2cc6, 0x2cc6,
  2447. 0x2cc8, 0x2cc8,
  2448. 0x2cca, 0x2cca,
  2449. 0x2ccc, 0x2ccc,
  2450. 0x2cce, 0x2cce,
  2451. 0x2cd0, 0x2cd0,
  2452. 0x2cd2, 0x2cd2,
  2453. 0x2cd4, 0x2cd4,
  2454. 0x2cd6, 0x2cd6,
  2455. 0x2cd8, 0x2cd8,
  2456. 0x2cda, 0x2cda,
  2457. 0x2cdc, 0x2cdc,
  2458. 0x2cde, 0x2cde,
  2459. 0x2ce0, 0x2ce0,
  2460. 0x2ce2, 0x2ce2,
  2461. 0xff21, 0xff3a,
  2462. 0x10400, 0x10427,
  2463. 0x1d400, 0x1d419,
  2464. 0x1d434, 0x1d44d,
  2465. 0x1d468, 0x1d481,
  2466. 0x1d49c, 0x1d49c,
  2467. 0x1d49e, 0x1d49f,
  2468. 0x1d4a2, 0x1d4a2,
  2469. 0x1d4a5, 0x1d4a6,
  2470. 0x1d4a9, 0x1d4ac,
  2471. 0x1d4ae, 0x1d4b5,
  2472. 0x1d4d0, 0x1d4e9,
  2473. 0x1d504, 0x1d505,
  2474. 0x1d507, 0x1d50a,
  2475. 0x1d50d, 0x1d514,
  2476. 0x1d516, 0x1d51c,
  2477. 0x1d538, 0x1d539,
  2478. 0x1d53b, 0x1d53e,
  2479. 0x1d540, 0x1d544,
  2480. 0x1d546, 0x1d546,
  2481. 0x1d54a, 0x1d550,
  2482. 0x1d56c, 0x1d585,
  2483. 0x1d5a0, 0x1d5b9,
  2484. 0x1d5d4, 0x1d5ed,
  2485. 0x1d608, 0x1d621,
  2486. 0x1d63c, 0x1d655,
  2487. 0x1d670, 0x1d689,
  2488. 0x1d6a8, 0x1d6c0,
  2489. 0x1d6e2, 0x1d6fa,
  2490. 0x1d71c, 0x1d734,
  2491. 0x1d756, 0x1d76e,
  2492. 0x1d790, 0x1d7a8
  2493. }; /* CR_Upper */
  2494. /* 'XDigit': [[:XDigit:]] */
  2495. static const OnigCodePoint CR_XDigit[] = {
  2496. 3,
  2497. 0x0030, 0x0039,
  2498. 0x0041, 0x0046,
  2499. 0x0061, 0x0066
  2500. }; /* CR_XDigit */
  2501. /* 'Word': [[:Word:]] */
  2502. static const OnigCodePoint CR_Word[] = {
  2503. 464,
  2504. 0x0030, 0x0039,
  2505. 0x0041, 0x005a,
  2506. 0x005f, 0x005f,
  2507. 0x0061, 0x007a,
  2508. 0x00aa, 0x00aa,
  2509. 0x00b2, 0x00b3,
  2510. 0x00b5, 0x00b5,
  2511. 0x00b9, 0x00ba,
  2512. 0x00bc, 0x00be,
  2513. 0x00c0, 0x00d6,
  2514. 0x00d8, 0x00f6,
  2515. 0x00f8, 0x0241,
  2516. 0x0250, 0x02c1,
  2517. 0x02c6, 0x02d1,
  2518. 0x02e0, 0x02e4,
  2519. 0x02ee, 0x02ee,
  2520. 0x0300, 0x036f,
  2521. 0x037a, 0x037a,
  2522. 0x0386, 0x0386,
  2523. 0x0388, 0x038a,
  2524. 0x038c, 0x038c,
  2525. 0x038e, 0x03a1,
  2526. 0x03a3, 0x03ce,
  2527. 0x03d0, 0x03f5,
  2528. 0x03f7, 0x0481,
  2529. 0x0483, 0x0486,
  2530. 0x0488, 0x04ce,
  2531. 0x04d0, 0x04f9,
  2532. 0x0500, 0x050f,
  2533. 0x0531, 0x0556,
  2534. 0x0559, 0x0559,
  2535. 0x0561, 0x0587,
  2536. 0x0591, 0x05b9,
  2537. 0x05bb, 0x05bd,
  2538. 0x05bf, 0x05bf,
  2539. 0x05c1, 0x05c2,
  2540. 0x05c4, 0x05c5,
  2541. 0x05c7, 0x05c7,
  2542. 0x05d0, 0x05ea,
  2543. 0x05f0, 0x05f2,
  2544. 0x0610, 0x0615,
  2545. 0x0621, 0x063a,
  2546. 0x0640, 0x065e,
  2547. 0x0660, 0x0669,
  2548. 0x066e, 0x06d3,
  2549. 0x06d5, 0x06dc,
  2550. 0x06de, 0x06e8,
  2551. 0x06ea, 0x06fc,
  2552. 0x06ff, 0x06ff,
  2553. 0x0710, 0x074a,
  2554. 0x074d, 0x076d,
  2555. 0x0780, 0x07b1,
  2556. 0x0901, 0x0939,
  2557. 0x093c, 0x094d,
  2558. 0x0950, 0x0954,
  2559. 0x0958, 0x0963,
  2560. 0x0966, 0x096f,
  2561. 0x097d, 0x097d,
  2562. 0x0981, 0x0983,
  2563. 0x0985, 0x098c,
  2564. 0x098f, 0x0990,
  2565. 0x0993, 0x09a8,
  2566. 0x09aa, 0x09b0,
  2567. 0x09b2, 0x09b2,
  2568. 0x09b6, 0x09b9,
  2569. 0x09bc, 0x09c4,
  2570. 0x09c7, 0x09c8,
  2571. 0x09cb, 0x09ce,
  2572. 0x09d7, 0x09d7,
  2573. 0x09dc, 0x09dd,
  2574. 0x09df, 0x09e3,
  2575. 0x09e6, 0x09f1,
  2576. 0x09f4, 0x09f9,
  2577. 0x0a01, 0x0a03,
  2578. 0x0a05, 0x0a0a,
  2579. 0x0a0f, 0x0a10,
  2580. 0x0a13, 0x0a28,
  2581. 0x0a2a, 0x0a30,
  2582. 0x0a32, 0x0a33,
  2583. 0x0a35, 0x0a36,
  2584. 0x0a38, 0x0a39,
  2585. 0x0a3c, 0x0a3c,
  2586. 0x0a3e, 0x0a42,
  2587. 0x0a47, 0x0a48,
  2588. 0x0a4b, 0x0a4d,
  2589. 0x0a59, 0x0a5c,
  2590. 0x0a5e, 0x0a5e,
  2591. 0x0a66, 0x0a74,
  2592. 0x0a81, 0x0a83,
  2593. 0x0a85, 0x0a8d,
  2594. 0x0a8f, 0x0a91,
  2595. 0x0a93, 0x0aa8,
  2596. 0x0aaa, 0x0ab0,
  2597. 0x0ab2, 0x0ab3,
  2598. 0x0ab5, 0x0ab9,
  2599. 0x0abc, 0x0ac5,
  2600. 0x0ac7, 0x0ac9,
  2601. 0x0acb, 0x0acd,
  2602. 0x0ad0, 0x0ad0,
  2603. 0x0ae0, 0x0ae3,
  2604. 0x0ae6, 0x0aef,
  2605. 0x0b01, 0x0b03,
  2606. 0x0b05, 0x0b0c,
  2607. 0x0b0f, 0x0b10,
  2608. 0x0b13, 0x0b28,
  2609. 0x0b2a, 0x0b30,
  2610. 0x0b32, 0x0b33,
  2611. 0x0b35, 0x0b39,
  2612. 0x0b3c, 0x0b43,
  2613. 0x0b47, 0x0b48,
  2614. 0x0b4b, 0x0b4d,
  2615. 0x0b56, 0x0b57,
  2616. 0x0b5c, 0x0b5d,
  2617. 0x0b5f, 0x0b61,
  2618. 0x0b66, 0x0b6f,
  2619. 0x0b71, 0x0b71,
  2620. 0x0b82, 0x0b83,
  2621. 0x0b85, 0x0b8a,
  2622. 0x0b8e, 0x0b90,
  2623. 0x0b92, 0x0b95,
  2624. 0x0b99, 0x0b9a,
  2625. 0x0b9c, 0x0b9c,
  2626. 0x0b9e, 0x0b9f,
  2627. 0x0ba3, 0x0ba4,
  2628. 0x0ba8, 0x0baa,
  2629. 0x0bae, 0x0bb9,
  2630. 0x0bbe, 0x0bc2,
  2631. 0x0bc6, 0x0bc8,
  2632. 0x0bca, 0x0bcd,
  2633. 0x0bd7, 0x0bd7,
  2634. 0x0be6, 0x0bf2,
  2635. 0x0c01, 0x0c03,
  2636. 0x0c05, 0x0c0c,
  2637. 0x0c0e, 0x0c10,
  2638. 0x0c12, 0x0c28,
  2639. 0x0c2a, 0x0c33,
  2640. 0x0c35, 0x0c39,
  2641. 0x0c3e, 0x0c44,
  2642. 0x0c46, 0x0c48,
  2643. 0x0c4a, 0x0c4d,
  2644. 0x0c55, 0x0c56,
  2645. 0x0c60, 0x0c61,
  2646. 0x0c66, 0x0c6f,
  2647. 0x0c82, 0x0c83,
  2648. 0x0c85, 0x0c8c,
  2649. 0x0c8e, 0x0c90,
  2650. 0x0c92, 0x0ca8,
  2651. 0x0caa, 0x0cb3,
  2652. 0x0cb5, 0x0cb9,
  2653. 0x0cbc, 0x0cc4,
  2654. 0x0cc6, 0x0cc8,
  2655. 0x0cca, 0x0ccd,
  2656. 0x0cd5, 0x0cd6,
  2657. 0x0cde, 0x0cde,
  2658. 0x0ce0, 0x0ce1,
  2659. 0x0ce6, 0x0cef,
  2660. 0x0d02, 0x0d03,
  2661. 0x0d05, 0x0d0c,
  2662. 0x0d0e, 0x0d10,
  2663. 0x0d12, 0x0d28,
  2664. 0x0d2a, 0x0d39,
  2665. 0x0d3e, 0x0d43,
  2666. 0x0d46, 0x0d48,
  2667. 0x0d4a, 0x0d4d,
  2668. 0x0d57, 0x0d57,
  2669. 0x0d60, 0x0d61,
  2670. 0x0d66, 0x0d6f,
  2671. 0x0d82, 0x0d83,
  2672. 0x0d85, 0x0d96,
  2673. 0x0d9a, 0x0db1,
  2674. 0x0db3, 0x0dbb,
  2675. 0x0dbd, 0x0dbd,
  2676. 0x0dc0, 0x0dc6,
  2677. 0x0dca, 0x0dca,
  2678. 0x0dcf, 0x0dd4,
  2679. 0x0dd6, 0x0dd6,
  2680. 0x0dd8, 0x0ddf,
  2681. 0x0df2, 0x0df3,
  2682. 0x0e01, 0x0e3a,
  2683. 0x0e40, 0x0e4e,
  2684. 0x0e50, 0x0e59,
  2685. 0x0e81, 0x0e82,
  2686. 0x0e84, 0x0e84,
  2687. 0x0e87, 0x0e88,
  2688. 0x0e8a, 0x0e8a,
  2689. 0x0e8d, 0x0e8d,
  2690. 0x0e94, 0x0e97,
  2691. 0x0e99, 0x0e9f,
  2692. 0x0ea1, 0x0ea3,
  2693. 0x0ea5, 0x0ea5,
  2694. 0x0ea7, 0x0ea7,
  2695. 0x0eaa, 0x0eab,
  2696. 0x0ead, 0x0eb9,
  2697. 0x0ebb, 0x0ebd,
  2698. 0x0ec0, 0x0ec4,
  2699. 0x0ec6, 0x0ec6,
  2700. 0x0ec8, 0x0ecd,
  2701. 0x0ed0, 0x0ed9,
  2702. 0x0edc, 0x0edd,
  2703. 0x0f00, 0x0f00,
  2704. 0x0f18, 0x0f19,
  2705. 0x0f20, 0x0f33,
  2706. 0x0f35, 0x0f35,
  2707. 0x0f37, 0x0f37,
  2708. 0x0f39, 0x0f39,
  2709. 0x0f3e, 0x0f47,
  2710. 0x0f49, 0x0f6a,
  2711. 0x0f71, 0x0f84,
  2712. 0x0f86, 0x0f8b,
  2713. 0x0f90, 0x0f97,
  2714. 0x0f99, 0x0fbc,
  2715. 0x0fc6, 0x0fc6,
  2716. 0x1000, 0x1021,
  2717. 0x1023, 0x1027,
  2718. 0x1029, 0x102a,
  2719. 0x102c, 0x1032,
  2720. 0x1036, 0x1039,
  2721. 0x1040, 0x1049,
  2722. 0x1050, 0x1059,
  2723. 0x10a0, 0x10c5,
  2724. 0x10d0, 0x10fa,
  2725. 0x10fc, 0x10fc,
  2726. 0x1100, 0x1159,
  2727. 0x115f, 0x11a2,
  2728. 0x11a8, 0x11f9,
  2729. 0x1200, 0x1248,
  2730. 0x124a, 0x124d,
  2731. 0x1250, 0x1256,
  2732. 0x1258, 0x1258,
  2733. 0x125a, 0x125d,
  2734. 0x1260, 0x1288,
  2735. 0x128a, 0x128d,
  2736. 0x1290, 0x12b0,
  2737. 0x12b2, 0x12b5,
  2738. 0x12b8, 0x12be,
  2739. 0x12c0, 0x12c0,
  2740. 0x12c2, 0x12c5,
  2741. 0x12c8, 0x12d6,
  2742. 0x12d8, 0x1310,
  2743. 0x1312, 0x1315,
  2744. 0x1318, 0x135a,
  2745. 0x135f, 0x135f,
  2746. 0x1369, 0x137c,
  2747. 0x1380, 0x138f,
  2748. 0x13a0, 0x13f4,
  2749. 0x1401, 0x166c,
  2750. 0x166f, 0x1676,
  2751. 0x1681, 0x169a,
  2752. 0x16a0, 0x16ea,
  2753. 0x16ee, 0x16f0,
  2754. 0x1700, 0x170c,
  2755. 0x170e, 0x1714,
  2756. 0x1720, 0x1734,
  2757. 0x1740, 0x1753,
  2758. 0x1760, 0x176c,
  2759. 0x176e, 0x1770,
  2760. 0x1772, 0x1773,
  2761. 0x1780, 0x17b3,
  2762. 0x17b6, 0x17d3,
  2763. 0x17d7, 0x17d7,
  2764. 0x17dc, 0x17dd,
  2765. 0x17e0, 0x17e9,
  2766. 0x17f0, 0x17f9,
  2767. 0x180b, 0x180d,
  2768. 0x1810, 0x1819,
  2769. 0x1820, 0x1877,
  2770. 0x1880, 0x18a9,
  2771. 0x1900, 0x191c,
  2772. 0x1920, 0x192b,
  2773. 0x1930, 0x193b,
  2774. 0x1946, 0x196d,
  2775. 0x1970, 0x1974,
  2776. 0x1980, 0x19a9,
  2777. 0x19b0, 0x19c9,
  2778. 0x19d0, 0x19d9,
  2779. 0x1a00, 0x1a1b,
  2780. 0x1d00, 0x1dc3,
  2781. 0x1e00, 0x1e9b,
  2782. 0x1ea0, 0x1ef9,
  2783. 0x1f00, 0x1f15,
  2784. 0x1f18, 0x1f1d,
  2785. 0x1f20, 0x1f45,
  2786. 0x1f48, 0x1f4d,
  2787. 0x1f50, 0x1f57,
  2788. 0x1f59, 0x1f59,
  2789. 0x1f5b, 0x1f5b,
  2790. 0x1f5d, 0x1f5d,
  2791. 0x1f5f, 0x1f7d,
  2792. 0x1f80, 0x1fb4,
  2793. 0x1fb6, 0x1fbc,
  2794. 0x1fbe, 0x1fbe,
  2795. 0x1fc2, 0x1fc4,
  2796. 0x1fc6, 0x1fcc,
  2797. 0x1fd0, 0x1fd3,
  2798. 0x1fd6, 0x1fdb,
  2799. 0x1fe0, 0x1fec,
  2800. 0x1ff2, 0x1ff4,
  2801. 0x1ff6, 0x1ffc,
  2802. 0x203f, 0x2040,
  2803. 0x2054, 0x2054,
  2804. 0x2070, 0x2071,
  2805. 0x2074, 0x2079,
  2806. 0x207f, 0x2089,
  2807. 0x2090, 0x2094,
  2808. 0x20d0, 0x20eb,
  2809. 0x2102, 0x2102,
  2810. 0x2107, 0x2107,
  2811. 0x210a, 0x2113,
  2812. 0x2115, 0x2115,
  2813. 0x2119, 0x211d,
  2814. 0x2124, 0x2124,
  2815. 0x2126, 0x2126,
  2816. 0x2128, 0x2128,
  2817. 0x212a, 0x212d,
  2818. 0x212f, 0x2131,
  2819. 0x2133, 0x2139,
  2820. 0x213c, 0x213f,
  2821. 0x2145, 0x2149,
  2822. 0x2153, 0x2183,
  2823. 0x2460, 0x249b,
  2824. 0x24ea, 0x24ff,
  2825. 0x2776, 0x2793,
  2826. 0x2c00, 0x2c2e,
  2827. 0x2c30, 0x2c5e,
  2828. 0x2c80, 0x2ce4,
  2829. 0x2cfd, 0x2cfd,
  2830. 0x2d00, 0x2d25,
  2831. 0x2d30, 0x2d65,
  2832. 0x2d6f, 0x2d6f,
  2833. 0x2d80, 0x2d96,
  2834. 0x2da0, 0x2da6,
  2835. 0x2da8, 0x2dae,
  2836. 0x2db0, 0x2db6,
  2837. 0x2db8, 0x2dbe,
  2838. 0x2dc0, 0x2dc6,
  2839. 0x2dc8, 0x2dce,
  2840. 0x2dd0, 0x2dd6,
  2841. 0x2dd8, 0x2dde,
  2842. 0x3005, 0x3007,
  2843. 0x3021, 0x302f,
  2844. 0x3031, 0x3035,
  2845. 0x3038, 0x303c,
  2846. 0x3041, 0x3096,
  2847. 0x3099, 0x309a,
  2848. 0x309d, 0x309f,
  2849. 0x30a1, 0x30fa,
  2850. 0x30fc, 0x30ff,
  2851. 0x3105, 0x312c,
  2852. 0x3131, 0x318e,
  2853. 0x3192, 0x3195,
  2854. 0x31a0, 0x31b7,
  2855. 0x31f0, 0x31ff,
  2856. 0x3220, 0x3229,
  2857. 0x3251, 0x325f,
  2858. 0x3280, 0x3289,
  2859. 0x32b1, 0x32bf,
  2860. 0x3400, 0x4db5,
  2861. 0x4e00, 0x9fbb,
  2862. 0xa000, 0xa48c,
  2863. 0xa800, 0xa827,
  2864. 0xac00, 0xd7a3,
  2865. 0xf900, 0xfa2d,
  2866. 0xfa30, 0xfa6a,
  2867. 0xfa70, 0xfad9,
  2868. 0xfb00, 0xfb06,
  2869. 0xfb13, 0xfb17,
  2870. 0xfb1d, 0xfb28,
  2871. 0xfb2a, 0xfb36,
  2872. 0xfb38, 0xfb3c,
  2873. 0xfb3e, 0xfb3e,
  2874. 0xfb40, 0xfb41,
  2875. 0xfb43, 0xfb44,
  2876. 0xfb46, 0xfbb1,
  2877. 0xfbd3, 0xfd3d,
  2878. 0xfd50, 0xfd8f,
  2879. 0xfd92, 0xfdc7,
  2880. 0xfdf0, 0xfdfb,
  2881. 0xfe00, 0xfe0f,
  2882. 0xfe20, 0xfe23,
  2883. 0xfe33, 0xfe34,
  2884. 0xfe4d, 0xfe4f,
  2885. 0xfe70, 0xfe74,
  2886. 0xfe76, 0xfefc,
  2887. 0xff10, 0xff19,
  2888. 0xff21, 0xff3a,
  2889. 0xff3f, 0xff3f,
  2890. 0xff41, 0xff5a,
  2891. 0xff66, 0xffbe,
  2892. 0xffc2, 0xffc7,
  2893. 0xffca, 0xffcf,
  2894. 0xffd2, 0xffd7,
  2895. 0xffda, 0xffdc,
  2896. 0x10000, 0x1000b,
  2897. 0x1000d, 0x10026,
  2898. 0x10028, 0x1003a,
  2899. 0x1003c, 0x1003d,
  2900. 0x1003f, 0x1004d,
  2901. 0x10050, 0x1005d,
  2902. 0x10080, 0x100fa,
  2903. 0x10107, 0x10133,
  2904. 0x10140, 0x10178,
  2905. 0x1018a, 0x1018a,
  2906. 0x10300, 0x1031e,
  2907. 0x10320, 0x10323,
  2908. 0x10330, 0x1034a,
  2909. 0x10380, 0x1039d,
  2910. 0x103a0, 0x103c3,
  2911. 0x103c8, 0x103cf,
  2912. 0x103d1, 0x103d5,
  2913. 0x10400, 0x1049d,
  2914. 0x104a0, 0x104a9,
  2915. 0x10800, 0x10805,
  2916. 0x10808, 0x10808,
  2917. 0x1080a, 0x10835,
  2918. 0x10837, 0x10838,
  2919. 0x1083c, 0x1083c,
  2920. 0x1083f, 0x1083f,
  2921. 0x10a00, 0x10a03,
  2922. 0x10a05, 0x10a06,
  2923. 0x10a0c, 0x10a13,
  2924. 0x10a15, 0x10a17,
  2925. 0x10a19, 0x10a33,
  2926. 0x10a38, 0x10a3a,
  2927. 0x10a3f, 0x10a47,
  2928. 0x1d165, 0x1d169,
  2929. 0x1d16d, 0x1d172,
  2930. 0x1d17b, 0x1d182,
  2931. 0x1d185, 0x1d18b,
  2932. 0x1d1aa, 0x1d1ad,
  2933. 0x1d242, 0x1d244,
  2934. 0x1d400, 0x1d454,
  2935. 0x1d456, 0x1d49c,
  2936. 0x1d49e, 0x1d49f,
  2937. 0x1d4a2, 0x1d4a2,
  2938. 0x1d4a5, 0x1d4a6,
  2939. 0x1d4a9, 0x1d4ac,
  2940. 0x1d4ae, 0x1d4b9,
  2941. 0x1d4bb, 0x1d4bb,
  2942. 0x1d4bd, 0x1d4c3,
  2943. 0x1d4c5, 0x1d505,
  2944. 0x1d507, 0x1d50a,
  2945. 0x1d50d, 0x1d514,
  2946. 0x1d516, 0x1d51c,
  2947. 0x1d51e, 0x1d539,
  2948. 0x1d53b, 0x1d53e,
  2949. 0x1d540, 0x1d544,
  2950. 0x1d546, 0x1d546,
  2951. 0x1d54a, 0x1d550,
  2952. 0x1d552, 0x1d6a5,
  2953. 0x1d6a8, 0x1d6c0,
  2954. 0x1d6c2, 0x1d6da,
  2955. 0x1d6dc, 0x1d6fa,
  2956. 0x1d6fc, 0x1d714,
  2957. 0x1d716, 0x1d734,
  2958. 0x1d736, 0x1d74e,
  2959. 0x1d750, 0x1d76e,
  2960. 0x1d770, 0x1d788,
  2961. 0x1d78a, 0x1d7a8,
  2962. 0x1d7aa, 0x1d7c2,
  2963. 0x1d7c4, 0x1d7c9,
  2964. 0x1d7ce, 0x1d7ff,
  2965. 0x20000, 0x2a6d6,
  2966. 0x2f800, 0x2fa1d,
  2967. 0xe0100, 0xe01ef
  2968. }; /* CR_Word */
  2969. /* 'Alnum': [[:Alnum:]] */
  2970. static const OnigCodePoint CR_Alnum[] = {
  2971. 436,
  2972. 0x0030, 0x0039,
  2973. 0x0041, 0x005a,
  2974. 0x0061, 0x007a,
  2975. 0x00aa, 0x00aa,
  2976. 0x00b5, 0x00b5,
  2977. 0x00ba, 0x00ba,
  2978. 0x00c0, 0x00d6,
  2979. 0x00d8, 0x00f6,
  2980. 0x00f8, 0x0241,
  2981. 0x0250, 0x02c1,
  2982. 0x02c6, 0x02d1,
  2983. 0x02e0, 0x02e4,
  2984. 0x02ee, 0x02ee,
  2985. 0x0300, 0x036f,
  2986. 0x037a, 0x037a,
  2987. 0x0386, 0x0386,
  2988. 0x0388, 0x038a,
  2989. 0x038c, 0x038c,
  2990. 0x038e, 0x03a1,
  2991. 0x03a3, 0x03ce,
  2992. 0x03d0, 0x03f5,
  2993. 0x03f7, 0x0481,
  2994. 0x0483, 0x0486,
  2995. 0x0488, 0x04ce,
  2996. 0x04d0, 0x04f9,
  2997. 0x0500, 0x050f,
  2998. 0x0531, 0x0556,
  2999. 0x0559, 0x0559,
  3000. 0x0561, 0x0587,
  3001. 0x0591, 0x05b9,
  3002. 0x05bb, 0x05bd,
  3003. 0x05bf, 0x05bf,
  3004. 0x05c1, 0x05c2,
  3005. 0x05c4, 0x05c5,
  3006. 0x05c7, 0x05c7,
  3007. 0x05d0, 0x05ea,
  3008. 0x05f0, 0x05f2,
  3009. 0x0610, 0x0615,
  3010. 0x0621, 0x063a,
  3011. 0x0640, 0x065e,
  3012. 0x0660, 0x0669,
  3013. 0x066e, 0x06d3,
  3014. 0x06d5, 0x06dc,
  3015. 0x06de, 0x06e8,
  3016. 0x06ea, 0x06fc,
  3017. 0x06ff, 0x06ff,
  3018. 0x0710, 0x074a,
  3019. 0x074d, 0x076d,
  3020. 0x0780, 0x07b1,
  3021. 0x0901, 0x0939,
  3022. 0x093c, 0x094d,
  3023. 0x0950, 0x0954,
  3024. 0x0958, 0x0963,
  3025. 0x0966, 0x096f,
  3026. 0x097d, 0x097d,
  3027. 0x0981, 0x0983,
  3028. 0x0985, 0x098c,
  3029. 0x098f, 0x0990,
  3030. 0x0993, 0x09a8,
  3031. 0x09aa, 0x09b0,
  3032. 0x09b2, 0x09b2,
  3033. 0x09b6, 0x09b9,
  3034. 0x09bc, 0x09c4,
  3035. 0x09c7, 0x09c8,
  3036. 0x09cb, 0x09ce,
  3037. 0x09d7, 0x09d7,
  3038. 0x09dc, 0x09dd,
  3039. 0x09df, 0x09e3,
  3040. 0x09e6, 0x09f1,
  3041. 0x0a01, 0x0a03,
  3042. 0x0a05, 0x0a0a,
  3043. 0x0a0f, 0x0a10,
  3044. 0x0a13, 0x0a28,
  3045. 0x0a2a, 0x0a30,
  3046. 0x0a32, 0x0a33,
  3047. 0x0a35, 0x0a36,
  3048. 0x0a38, 0x0a39,
  3049. 0x0a3c, 0x0a3c,
  3050. 0x0a3e, 0x0a42,
  3051. 0x0a47, 0x0a48,
  3052. 0x0a4b, 0x0a4d,
  3053. 0x0a59, 0x0a5c,
  3054. 0x0a5e, 0x0a5e,
  3055. 0x0a66, 0x0a74,
  3056. 0x0a81, 0x0a83,
  3057. 0x0a85, 0x0a8d,
  3058. 0x0a8f, 0x0a91,
  3059. 0x0a93, 0x0aa8,
  3060. 0x0aaa, 0x0ab0,
  3061. 0x0ab2, 0x0ab3,
  3062. 0x0ab5, 0x0ab9,
  3063. 0x0abc, 0x0ac5,
  3064. 0x0ac7, 0x0ac9,
  3065. 0x0acb, 0x0acd,
  3066. 0x0ad0, 0x0ad0,
  3067. 0x0ae0, 0x0ae3,
  3068. 0x0ae6, 0x0aef,
  3069. 0x0b01, 0x0b03,
  3070. 0x0b05, 0x0b0c,
  3071. 0x0b0f, 0x0b10,
  3072. 0x0b13, 0x0b28,
  3073. 0x0b2a, 0x0b30,
  3074. 0x0b32, 0x0b33,
  3075. 0x0b35, 0x0b39,
  3076. 0x0b3c, 0x0b43,
  3077. 0x0b47, 0x0b48,
  3078. 0x0b4b, 0x0b4d,
  3079. 0x0b56, 0x0b57,
  3080. 0x0b5c, 0x0b5d,
  3081. 0x0b5f, 0x0b61,
  3082. 0x0b66, 0x0b6f,
  3083. 0x0b71, 0x0b71,
  3084. 0x0b82, 0x0b83,
  3085. 0x0b85, 0x0b8a,
  3086. 0x0b8e, 0x0b90,
  3087. 0x0b92, 0x0b95,
  3088. 0x0b99, 0x0b9a,
  3089. 0x0b9c, 0x0b9c,
  3090. 0x0b9e, 0x0b9f,
  3091. 0x0ba3, 0x0ba4,
  3092. 0x0ba8, 0x0baa,
  3093. 0x0bae, 0x0bb9,
  3094. 0x0bbe, 0x0bc2,
  3095. 0x0bc6, 0x0bc8,
  3096. 0x0bca, 0x0bcd,
  3097. 0x0bd7, 0x0bd7,
  3098. 0x0be6, 0x0bef,
  3099. 0x0c01, 0x0c03,
  3100. 0x0c05, 0x0c0c,
  3101. 0x0c0e, 0x0c10,
  3102. 0x0c12, 0x0c28,
  3103. 0x0c2a, 0x0c33,
  3104. 0x0c35, 0x0c39,
  3105. 0x0c3e, 0x0c44,
  3106. 0x0c46, 0x0c48,
  3107. 0x0c4a, 0x0c4d,
  3108. 0x0c55, 0x0c56,
  3109. 0x0c60, 0x0c61,
  3110. 0x0c66, 0x0c6f,
  3111. 0x0c82, 0x0c83,
  3112. 0x0c85, 0x0c8c,
  3113. 0x0c8e, 0x0c90,
  3114. 0x0c92, 0x0ca8,
  3115. 0x0caa, 0x0cb3,
  3116. 0x0cb5, 0x0cb9,
  3117. 0x0cbc, 0x0cc4,
  3118. 0x0cc6, 0x0cc8,
  3119. 0x0cca, 0x0ccd,
  3120. 0x0cd5, 0x0cd6,
  3121. 0x0cde, 0x0cde,
  3122. 0x0ce0, 0x0ce1,
  3123. 0x0ce6, 0x0cef,
  3124. 0x0d02, 0x0d03,
  3125. 0x0d05, 0x0d0c,
  3126. 0x0d0e, 0x0d10,
  3127. 0x0d12, 0x0d28,
  3128. 0x0d2a, 0x0d39,
  3129. 0x0d3e, 0x0d43,
  3130. 0x0d46, 0x0d48,
  3131. 0x0d4a, 0x0d4d,
  3132. 0x0d57, 0x0d57,
  3133. 0x0d60, 0x0d61,
  3134. 0x0d66, 0x0d6f,
  3135. 0x0d82, 0x0d83,
  3136. 0x0d85, 0x0d96,
  3137. 0x0d9a, 0x0db1,
  3138. 0x0db3, 0x0dbb,
  3139. 0x0dbd, 0x0dbd,
  3140. 0x0dc0, 0x0dc6,
  3141. 0x0dca, 0x0dca,
  3142. 0x0dcf, 0x0dd4,
  3143. 0x0dd6, 0x0dd6,
  3144. 0x0dd8, 0x0ddf,
  3145. 0x0df2, 0x0df3,
  3146. 0x0e01, 0x0e3a,
  3147. 0x0e40, 0x0e4e,
  3148. 0x0e50, 0x0e59,
  3149. 0x0e81, 0x0e82,
  3150. 0x0e84, 0x0e84,
  3151. 0x0e87, 0x0e88,
  3152. 0x0e8a, 0x0e8a,
  3153. 0x0e8d, 0x0e8d,
  3154. 0x0e94, 0x0e97,
  3155. 0x0e99, 0x0e9f,
  3156. 0x0ea1, 0x0ea3,
  3157. 0x0ea5, 0x0ea5,
  3158. 0x0ea7, 0x0ea7,
  3159. 0x0eaa, 0x0eab,
  3160. 0x0ead, 0x0eb9,
  3161. 0x0ebb, 0x0ebd,
  3162. 0x0ec0, 0x0ec4,
  3163. 0x0ec6, 0x0ec6,
  3164. 0x0ec8, 0x0ecd,
  3165. 0x0ed0, 0x0ed9,
  3166. 0x0edc, 0x0edd,
  3167. 0x0f00, 0x0f00,
  3168. 0x0f18, 0x0f19,
  3169. 0x0f20, 0x0f29,
  3170. 0x0f35, 0x0f35,
  3171. 0x0f37, 0x0f37,
  3172. 0x0f39, 0x0f39,
  3173. 0x0f3e, 0x0f47,
  3174. 0x0f49, 0x0f6a,
  3175. 0x0f71, 0x0f84,
  3176. 0x0f86, 0x0f8b,
  3177. 0x0f90, 0x0f97,
  3178. 0x0f99, 0x0fbc,
  3179. 0x0fc6, 0x0fc6,
  3180. 0x1000, 0x1021,
  3181. 0x1023, 0x1027,
  3182. 0x1029, 0x102a,
  3183. 0x102c, 0x1032,
  3184. 0x1036, 0x1039,
  3185. 0x1040, 0x1049,
  3186. 0x1050, 0x1059,
  3187. 0x10a0, 0x10c5,
  3188. 0x10d0, 0x10fa,
  3189. 0x10fc, 0x10fc,
  3190. 0x1100, 0x1159,
  3191. 0x115f, 0x11a2,
  3192. 0x11a8, 0x11f9,
  3193. 0x1200, 0x1248,
  3194. 0x124a, 0x124d,
  3195. 0x1250, 0x1256,
  3196. 0x1258, 0x1258,
  3197. 0x125a, 0x125d,
  3198. 0x1260, 0x1288,
  3199. 0x128a, 0x128d,
  3200. 0x1290, 0x12b0,
  3201. 0x12b2, 0x12b5,
  3202. 0x12b8, 0x12be,
  3203. 0x12c0, 0x12c0,
  3204. 0x12c2, 0x12c5,
  3205. 0x12c8, 0x12d6,
  3206. 0x12d8, 0x1310,
  3207. 0x1312, 0x1315,
  3208. 0x1318, 0x135a,
  3209. 0x135f, 0x135f,
  3210. 0x1380, 0x138f,
  3211. 0x13a0, 0x13f4,
  3212. 0x1401, 0x166c,
  3213. 0x166f, 0x1676,
  3214. 0x1681, 0x169a,
  3215. 0x16a0, 0x16ea,
  3216. 0x1700, 0x170c,
  3217. 0x170e, 0x1714,
  3218. 0x1720, 0x1734,
  3219. 0x1740, 0x1753,
  3220. 0x1760, 0x176c,
  3221. 0x176e, 0x1770,
  3222. 0x1772, 0x1773,
  3223. 0x1780, 0x17b3,
  3224. 0x17b6, 0x17d3,
  3225. 0x17d7, 0x17d7,
  3226. 0x17dc, 0x17dd,
  3227. 0x17e0, 0x17e9,
  3228. 0x180b, 0x180d,
  3229. 0x1810, 0x1819,
  3230. 0x1820, 0x1877,
  3231. 0x1880, 0x18a9,
  3232. 0x1900, 0x191c,
  3233. 0x1920, 0x192b,
  3234. 0x1930, 0x193b,
  3235. 0x1946, 0x196d,
  3236. 0x1970, 0x1974,
  3237. 0x1980, 0x19a9,
  3238. 0x19b0, 0x19c9,
  3239. 0x19d0, 0x19d9,
  3240. 0x1a00, 0x1a1b,
  3241. 0x1d00, 0x1dc3,
  3242. 0x1e00, 0x1e9b,
  3243. 0x1ea0, 0x1ef9,
  3244. 0x1f00, 0x1f15,
  3245. 0x1f18, 0x1f1d,
  3246. 0x1f20, 0x1f45,
  3247. 0x1f48, 0x1f4d,
  3248. 0x1f50, 0x1f57,
  3249. 0x1f59, 0x1f59,
  3250. 0x1f5b, 0x1f5b,
  3251. 0x1f5d, 0x1f5d,
  3252. 0x1f5f, 0x1f7d,
  3253. 0x1f80, 0x1fb4,
  3254. 0x1fb6, 0x1fbc,
  3255. 0x1fbe, 0x1fbe,
  3256. 0x1fc2, 0x1fc4,
  3257. 0x1fc6, 0x1fcc,
  3258. 0x1fd0, 0x1fd3,
  3259. 0x1fd6, 0x1fdb,
  3260. 0x1fe0, 0x1fec,
  3261. 0x1ff2, 0x1ff4,
  3262. 0x1ff6, 0x1ffc,
  3263. 0x2071, 0x2071,
  3264. 0x207f, 0x207f,
  3265. 0x2090, 0x2094,
  3266. 0x20d0, 0x20eb,
  3267. 0x2102, 0x2102,
  3268. 0x2107, 0x2107,
  3269. 0x210a, 0x2113,
  3270. 0x2115, 0x2115,
  3271. 0x2119, 0x211d,
  3272. 0x2124, 0x2124,
  3273. 0x2126, 0x2126,
  3274. 0x2128, 0x2128,
  3275. 0x212a, 0x212d,
  3276. 0x212f, 0x2131,
  3277. 0x2133, 0x2139,
  3278. 0x213c, 0x213f,
  3279. 0x2145, 0x2149,
  3280. 0x2c00, 0x2c2e,
  3281. 0x2c30, 0x2c5e,
  3282. 0x2c80, 0x2ce4,
  3283. 0x2d00, 0x2d25,
  3284. 0x2d30, 0x2d65,
  3285. 0x2d6f, 0x2d6f,
  3286. 0x2d80, 0x2d96,
  3287. 0x2da0, 0x2da6,
  3288. 0x2da8, 0x2dae,
  3289. 0x2db0, 0x2db6,
  3290. 0x2db8, 0x2dbe,
  3291. 0x2dc0, 0x2dc6,
  3292. 0x2dc8, 0x2dce,
  3293. 0x2dd0, 0x2dd6,
  3294. 0x2dd8, 0x2dde,
  3295. 0x3005, 0x3006,
  3296. 0x302a, 0x302f,
  3297. 0x3031, 0x3035,
  3298. 0x303b, 0x303c,
  3299. 0x3041, 0x3096,
  3300. 0x3099, 0x309a,
  3301. 0x309d, 0x309f,
  3302. 0x30a1, 0x30fa,
  3303. 0x30fc, 0x30ff,
  3304. 0x3105, 0x312c,
  3305. 0x3131, 0x318e,
  3306. 0x31a0, 0x31b7,
  3307. 0x31f0, 0x31ff,
  3308. 0x3400, 0x4db5,
  3309. 0x4e00, 0x9fbb,
  3310. 0xa000, 0xa48c,
  3311. 0xa800, 0xa827,
  3312. 0xac00, 0xd7a3,
  3313. 0xf900, 0xfa2d,
  3314. 0xfa30, 0xfa6a,
  3315. 0xfa70, 0xfad9,
  3316. 0xfb00, 0xfb06,
  3317. 0xfb13, 0xfb17,
  3318. 0xfb1d, 0xfb28,
  3319. 0xfb2a, 0xfb36,
  3320. 0xfb38, 0xfb3c,
  3321. 0xfb3e, 0xfb3e,
  3322. 0xfb40, 0xfb41,
  3323. 0xfb43, 0xfb44,
  3324. 0xfb46, 0xfbb1,
  3325. 0xfbd3, 0xfd3d,
  3326. 0xfd50, 0xfd8f,
  3327. 0xfd92, 0xfdc7,
  3328. 0xfdf0, 0xfdfb,
  3329. 0xfe00, 0xfe0f,
  3330. 0xfe20, 0xfe23,
  3331. 0xfe70, 0xfe74,
  3332. 0xfe76, 0xfefc,
  3333. 0xff10, 0xff19,
  3334. 0xff21, 0xff3a,
  3335. 0xff41, 0xff5a,
  3336. 0xff66, 0xffbe,
  3337. 0xffc2, 0xffc7,
  3338. 0xffca, 0xffcf,
  3339. 0xffd2, 0xffd7,
  3340. 0xffda, 0xffdc,
  3341. 0x10000, 0x1000b,
  3342. 0x1000d, 0x10026,
  3343. 0x10028, 0x1003a,
  3344. 0x1003c, 0x1003d,
  3345. 0x1003f, 0x1004d,
  3346. 0x10050, 0x1005d,
  3347. 0x10080, 0x100fa,
  3348. 0x10300, 0x1031e,
  3349. 0x10330, 0x10349,
  3350. 0x10380, 0x1039d,
  3351. 0x103a0, 0x103c3,
  3352. 0x103c8, 0x103cf,
  3353. 0x10400, 0x1049d,
  3354. 0x104a0, 0x104a9,
  3355. 0x10800, 0x10805,
  3356. 0x10808, 0x10808,
  3357. 0x1080a, 0x10835,
  3358. 0x10837, 0x10838,
  3359. 0x1083c, 0x1083c,
  3360. 0x1083f, 0x1083f,
  3361. 0x10a00, 0x10a03,
  3362. 0x10a05, 0x10a06,
  3363. 0x10a0c, 0x10a13,
  3364. 0x10a15, 0x10a17,
  3365. 0x10a19, 0x10a33,
  3366. 0x10a38, 0x10a3a,
  3367. 0x10a3f, 0x10a3f,
  3368. 0x1d165, 0x1d169,
  3369. 0x1d16d, 0x1d172,
  3370. 0x1d17b, 0x1d182,
  3371. 0x1d185, 0x1d18b,
  3372. 0x1d1aa, 0x1d1ad,
  3373. 0x1d242, 0x1d244,
  3374. 0x1d400, 0x1d454,
  3375. 0x1d456, 0x1d49c,
  3376. 0x1d49e, 0x1d49f,
  3377. 0x1d4a2, 0x1d4a2,
  3378. 0x1d4a5, 0x1d4a6,
  3379. 0x1d4a9, 0x1d4ac,
  3380. 0x1d4ae, 0x1d4b9,
  3381. 0x1d4bb, 0x1d4bb,
  3382. 0x1d4bd, 0x1d4c3,
  3383. 0x1d4c5, 0x1d505,
  3384. 0x1d507, 0x1d50a,
  3385. 0x1d50d, 0x1d514,
  3386. 0x1d516, 0x1d51c,
  3387. 0x1d51e, 0x1d539,
  3388. 0x1d53b, 0x1d53e,
  3389. 0x1d540, 0x1d544,
  3390. 0x1d546, 0x1d546,
  3391. 0x1d54a, 0x1d550,
  3392. 0x1d552, 0x1d6a5,
  3393. 0x1d6a8, 0x1d6c0,
  3394. 0x1d6c2, 0x1d6da,
  3395. 0x1d6dc, 0x1d6fa,
  3396. 0x1d6fc, 0x1d714,
  3397. 0x1d716, 0x1d734,
  3398. 0x1d736, 0x1d74e,
  3399. 0x1d750, 0x1d76e,
  3400. 0x1d770, 0x1d788,
  3401. 0x1d78a, 0x1d7a8,
  3402. 0x1d7aa, 0x1d7c2,
  3403. 0x1d7c4, 0x1d7c9,
  3404. 0x1d7ce, 0x1d7ff,
  3405. 0x20000, 0x2a6d6,
  3406. 0x2f800, 0x2fa1d,
  3407. 0xe0100, 0xe01ef
  3408. }; /* CR_Alnum */
  3409. /* 'ASCII': [[:ASCII:]] */
  3410. static const OnigCodePoint CR_ASCII[] = {
  3411. 1,
  3412. 0x0000, 0x007f
  3413. }; /* CR_ASCII */
  3414. #ifdef USE_UNICODE_PROPERTIES
  3415. /* 'Any': - */
  3416. static const OnigCodePoint CR_Any[] = {
  3417. 1,
  3418. 0x0000, 0x10ffff
  3419. }; /* CR_Any */
  3420. /* 'Assigned': - */
  3421. static const OnigCodePoint CR_Assigned[] = {
  3422. 420,
  3423. 0x0000, 0x0241,
  3424. 0x0250, 0x036f,
  3425. 0x0374, 0x0375,
  3426. 0x037a, 0x037a,
  3427. 0x037e, 0x037e,
  3428. 0x0384, 0x038a,
  3429. 0x038c, 0x038c,
  3430. 0x038e, 0x03a1,
  3431. 0x03a3, 0x03ce,
  3432. 0x03d0, 0x0486,
  3433. 0x0488, 0x04ce,
  3434. 0x04d0, 0x04f9,
  3435. 0x0500, 0x050f,
  3436. 0x0531, 0x0556,
  3437. 0x0559, 0x055f,
  3438. 0x0561, 0x0587,
  3439. 0x0589, 0x058a,
  3440. 0x0591, 0x05b9,
  3441. 0x05bb, 0x05c7,
  3442. 0x05d0, 0x05ea,
  3443. 0x05f0, 0x05f4,
  3444. 0x0600, 0x0603,
  3445. 0x060b, 0x0615,
  3446. 0x061b, 0x061b,
  3447. 0x061e, 0x061f,
  3448. 0x0621, 0x063a,
  3449. 0x0640, 0x065e,
  3450. 0x0660, 0x070d,
  3451. 0x070f, 0x074a,
  3452. 0x074d, 0x076d,
  3453. 0x0780, 0x07b1,
  3454. 0x0901, 0x0939,
  3455. 0x093c, 0x094d,
  3456. 0x0950, 0x0954,
  3457. 0x0958, 0x0970,
  3458. 0x097d, 0x097d,
  3459. 0x0981, 0x0983,
  3460. 0x0985, 0x098c,
  3461. 0x098f, 0x0990,
  3462. 0x0993, 0x09a8,
  3463. 0x09aa, 0x09b0,
  3464. 0x09b2, 0x09b2,
  3465. 0x09b6, 0x09b9,
  3466. 0x09bc, 0x09c4,
  3467. 0x09c7, 0x09c8,
  3468. 0x09cb, 0x09ce,
  3469. 0x09d7, 0x09d7,
  3470. 0x09dc, 0x09dd,
  3471. 0x09df, 0x09e3,
  3472. 0x09e6, 0x09fa,
  3473. 0x0a01, 0x0a03,
  3474. 0x0a05, 0x0a0a,
  3475. 0x0a0f, 0x0a10,
  3476. 0x0a13, 0x0a28,
  3477. 0x0a2a, 0x0a30,
  3478. 0x0a32, 0x0a33,
  3479. 0x0a35, 0x0a36,
  3480. 0x0a38, 0x0a39,
  3481. 0x0a3c, 0x0a3c,
  3482. 0x0a3e, 0x0a42,
  3483. 0x0a47, 0x0a48,
  3484. 0x0a4b, 0x0a4d,
  3485. 0x0a59, 0x0a5c,
  3486. 0x0a5e, 0x0a5e,
  3487. 0x0a66, 0x0a74,
  3488. 0x0a81, 0x0a83,
  3489. 0x0a85, 0x0a8d,
  3490. 0x0a8f, 0x0a91,
  3491. 0x0a93, 0x0aa8,
  3492. 0x0aaa, 0x0ab0,
  3493. 0x0ab2, 0x0ab3,
  3494. 0x0ab5, 0x0ab9,
  3495. 0x0abc, 0x0ac5,
  3496. 0x0ac7, 0x0ac9,
  3497. 0x0acb, 0x0acd,
  3498. 0x0ad0, 0x0ad0,
  3499. 0x0ae0, 0x0ae3,
  3500. 0x0ae6, 0x0aef,
  3501. 0x0af1, 0x0af1,
  3502. 0x0b01, 0x0b03,
  3503. 0x0b05, 0x0b0c,
  3504. 0x0b0f, 0x0b10,
  3505. 0x0b13, 0x0b28,
  3506. 0x0b2a, 0x0b30,
  3507. 0x0b32, 0x0b33,
  3508. 0x0b35, 0x0b39,
  3509. 0x0b3c, 0x0b43,
  3510. 0x0b47, 0x0b48,
  3511. 0x0b4b, 0x0b4d,
  3512. 0x0b56, 0x0b57,
  3513. 0x0b5c, 0x0b5d,
  3514. 0x0b5f, 0x0b61,
  3515. 0x0b66, 0x0b71,
  3516. 0x0b82, 0x0b83,
  3517. 0x0b85, 0x0b8a,
  3518. 0x0b8e, 0x0b90,
  3519. 0x0b92, 0x0b95,
  3520. 0x0b99, 0x0b9a,
  3521. 0x0b9c, 0x0b9c,
  3522. 0x0b9e, 0x0b9f,
  3523. 0x0ba3, 0x0ba4,
  3524. 0x0ba8, 0x0baa,
  3525. 0x0bae, 0x0bb9,
  3526. 0x0bbe, 0x0bc2,
  3527. 0x0bc6, 0x0bc8,
  3528. 0x0bca, 0x0bcd,
  3529. 0x0bd7, 0x0bd7,
  3530. 0x0be6, 0x0bfa,
  3531. 0x0c01, 0x0c03,
  3532. 0x0c05, 0x0c0c,
  3533. 0x0c0e, 0x0c10,
  3534. 0x0c12, 0x0c28,
  3535. 0x0c2a, 0x0c33,
  3536. 0x0c35, 0x0c39,
  3537. 0x0c3e, 0x0c44,
  3538. 0x0c46, 0x0c48,
  3539. 0x0c4a, 0x0c4d,
  3540. 0x0c55, 0x0c56,
  3541. 0x0c60, 0x0c61,
  3542. 0x0c66, 0x0c6f,
  3543. 0x0c82, 0x0c83,
  3544. 0x0c85, 0x0c8c,
  3545. 0x0c8e, 0x0c90,
  3546. 0x0c92, 0x0ca8,
  3547. 0x0caa, 0x0cb3,
  3548. 0x0cb5, 0x0cb9,
  3549. 0x0cbc, 0x0cc4,
  3550. 0x0cc6, 0x0cc8,
  3551. 0x0cca, 0x0ccd,
  3552. 0x0cd5, 0x0cd6,
  3553. 0x0cde, 0x0cde,
  3554. 0x0ce0, 0x0ce1,
  3555. 0x0ce6, 0x0cef,
  3556. 0x0d02, 0x0d03,
  3557. 0x0d05, 0x0d0c,
  3558. 0x0d0e, 0x0d10,
  3559. 0x0d12, 0x0d28,
  3560. 0x0d2a, 0x0d39,
  3561. 0x0d3e, 0x0d43,
  3562. 0x0d46, 0x0d48,
  3563. 0x0d4a, 0x0d4d,
  3564. 0x0d57, 0x0d57,
  3565. 0x0d60, 0x0d61,
  3566. 0x0d66, 0x0d6f,
  3567. 0x0d82, 0x0d83,
  3568. 0x0d85, 0x0d96,
  3569. 0x0d9a, 0x0db1,
  3570. 0x0db3, 0x0dbb,
  3571. 0x0dbd, 0x0dbd,
  3572. 0x0dc0, 0x0dc6,
  3573. 0x0dca, 0x0dca,
  3574. 0x0dcf, 0x0dd4,
  3575. 0x0dd6, 0x0dd6,
  3576. 0x0dd8, 0x0ddf,
  3577. 0x0df2, 0x0df4,
  3578. 0x0e01, 0x0e3a,
  3579. 0x0e3f, 0x0e5b,
  3580. 0x0e81, 0x0e82,
  3581. 0x0e84, 0x0e84,
  3582. 0x0e87, 0x0e88,
  3583. 0x0e8a, 0x0e8a,
  3584. 0x0e8d, 0x0e8d,
  3585. 0x0e94, 0x0e97,
  3586. 0x0e99, 0x0e9f,
  3587. 0x0ea1, 0x0ea3,
  3588. 0x0ea5, 0x0ea5,
  3589. 0x0ea7, 0x0ea7,
  3590. 0x0eaa, 0x0eab,
  3591. 0x0ead, 0x0eb9,
  3592. 0x0ebb, 0x0ebd,
  3593. 0x0ec0, 0x0ec4,
  3594. 0x0ec6, 0x0ec6,
  3595. 0x0ec8, 0x0ecd,
  3596. 0x0ed0, 0x0ed9,
  3597. 0x0edc, 0x0edd,
  3598. 0x0f00, 0x0f47,
  3599. 0x0f49, 0x0f6a,
  3600. 0x0f71, 0x0f8b,
  3601. 0x0f90, 0x0f97,
  3602. 0x0f99, 0x0fbc,
  3603. 0x0fbe, 0x0fcc,
  3604. 0x0fcf, 0x0fd1,
  3605. 0x1000, 0x1021,
  3606. 0x1023, 0x1027,
  3607. 0x1029, 0x102a,
  3608. 0x102c, 0x1032,
  3609. 0x1036, 0x1039,
  3610. 0x1040, 0x1059,
  3611. 0x10a0, 0x10c5,
  3612. 0x10d0, 0x10fc,
  3613. 0x1100, 0x1159,
  3614. 0x115f, 0x11a2,
  3615. 0x11a8, 0x11f9,
  3616. 0x1200, 0x1248,
  3617. 0x124a, 0x124d,
  3618. 0x1250, 0x1256,
  3619. 0x1258, 0x1258,
  3620. 0x125a, 0x125d,
  3621. 0x1260, 0x1288,
  3622. 0x128a, 0x128d,
  3623. 0x1290, 0x12b0,
  3624. 0x12b2, 0x12b5,
  3625. 0x12b8, 0x12be,
  3626. 0x12c0, 0x12c0,
  3627. 0x12c2, 0x12c5,
  3628. 0x12c8, 0x12d6,
  3629. 0x12d8, 0x1310,
  3630. 0x1312, 0x1315,
  3631. 0x1318, 0x135a,
  3632. 0x135f, 0x137c,
  3633. 0x1380, 0x1399,
  3634. 0x13a0, 0x13f4,
  3635. 0x1401, 0x1676,
  3636. 0x1680, 0x169c,
  3637. 0x16a0, 0x16f0,
  3638. 0x1700, 0x170c,
  3639. 0x170e, 0x1714,
  3640. 0x1720, 0x1736,
  3641. 0x1740, 0x1753,
  3642. 0x1760, 0x176c,
  3643. 0x176e, 0x1770,
  3644. 0x1772, 0x1773,
  3645. 0x1780, 0x17dd,
  3646. 0x17e0, 0x17e9,
  3647. 0x17f0, 0x17f9,
  3648. 0x1800, 0x180e,
  3649. 0x1810, 0x1819,
  3650. 0x1820, 0x1877,
  3651. 0x1880, 0x18a9,
  3652. 0x1900, 0x191c,
  3653. 0x1920, 0x192b,
  3654. 0x1930, 0x193b,
  3655. 0x1940, 0x1940,
  3656. 0x1944, 0x196d,
  3657. 0x1970, 0x1974,
  3658. 0x1980, 0x19a9,
  3659. 0x19b0, 0x19c9,
  3660. 0x19d0, 0x19d9,
  3661. 0x19de, 0x1a1b,
  3662. 0x1a1e, 0x1a1f,
  3663. 0x1d00, 0x1dc3,
  3664. 0x1e00, 0x1e9b,
  3665. 0x1ea0, 0x1ef9,
  3666. 0x1f00, 0x1f15,
  3667. 0x1f18, 0x1f1d,
  3668. 0x1f20, 0x1f45,
  3669. 0x1f48, 0x1f4d,
  3670. 0x1f50, 0x1f57,
  3671. 0x1f59, 0x1f59,
  3672. 0x1f5b, 0x1f5b,
  3673. 0x1f5d, 0x1f5d,
  3674. 0x1f5f, 0x1f7d,
  3675. 0x1f80, 0x1fb4,
  3676. 0x1fb6, 0x1fc4,
  3677. 0x1fc6, 0x1fd3,
  3678. 0x1fd6, 0x1fdb,
  3679. 0x1fdd, 0x1fef,
  3680. 0x1ff2, 0x1ff4,
  3681. 0x1ff6, 0x1ffe,
  3682. 0x2000, 0x2063,
  3683. 0x206a, 0x2071,
  3684. 0x2074, 0x208e,
  3685. 0x2090, 0x2094,
  3686. 0x20a0, 0x20b5,
  3687. 0x20d0, 0x20eb,
  3688. 0x2100, 0x214c,
  3689. 0x2153, 0x2183,
  3690. 0x2190, 0x23db,
  3691. 0x2400, 0x2426,
  3692. 0x2440, 0x244a,
  3693. 0x2460, 0x269c,
  3694. 0x26a0, 0x26b1,
  3695. 0x2701, 0x2704,
  3696. 0x2706, 0x2709,
  3697. 0x270c, 0x2727,
  3698. 0x2729, 0x274b,
  3699. 0x274d, 0x274d,
  3700. 0x274f, 0x2752,
  3701. 0x2756, 0x2756,
  3702. 0x2758, 0x275e,
  3703. 0x2761, 0x2794,
  3704. 0x2798, 0x27af,
  3705. 0x27b1, 0x27be,
  3706. 0x27c0, 0x27c6,
  3707. 0x27d0, 0x27eb,
  3708. 0x27f0, 0x2b13,
  3709. 0x2c00, 0x2c2e,
  3710. 0x2c30, 0x2c5e,
  3711. 0x2c80, 0x2cea,
  3712. 0x2cf9, 0x2d25,
  3713. 0x2d30, 0x2d65,
  3714. 0x2d6f, 0x2d6f,
  3715. 0x2d80, 0x2d96,
  3716. 0x2da0, 0x2da6,
  3717. 0x2da8, 0x2dae,
  3718. 0x2db0, 0x2db6,
  3719. 0x2db8, 0x2dbe,
  3720. 0x2dc0, 0x2dc6,
  3721. 0x2dc8, 0x2dce,
  3722. 0x2dd0, 0x2dd6,
  3723. 0x2dd8, 0x2dde,
  3724. 0x2e00, 0x2e17,
  3725. 0x2e1c, 0x2e1d,
  3726. 0x2e80, 0x2e99,
  3727. 0x2e9b, 0x2ef3,
  3728. 0x2f00, 0x2fd5,
  3729. 0x2ff0, 0x2ffb,
  3730. 0x3000, 0x303f,
  3731. 0x3041, 0x3096,
  3732. 0x3099, 0x30ff,
  3733. 0x3105, 0x312c,
  3734. 0x3131, 0x318e,
  3735. 0x3190, 0x31b7,
  3736. 0x31c0, 0x31cf,
  3737. 0x31f0, 0x321e,
  3738. 0x3220, 0x3243,
  3739. 0x3250, 0x32fe,
  3740. 0x3300, 0x4db5,
  3741. 0x4dc0, 0x9fbb,
  3742. 0xa000, 0xa48c,
  3743. 0xa490, 0xa4c6,
  3744. 0xa700, 0xa716,
  3745. 0xa800, 0xa82b,
  3746. 0xac00, 0xd7a3,
  3747. 0xd800, 0xfa2d,
  3748. 0xfa30, 0xfa6a,
  3749. 0xfa70, 0xfad9,
  3750. 0xfb00, 0xfb06,
  3751. 0xfb13, 0xfb17,
  3752. 0xfb1d, 0xfb36,
  3753. 0xfb38, 0xfb3c,
  3754. 0xfb3e, 0xfb3e,
  3755. 0xfb40, 0xfb41,
  3756. 0xfb43, 0xfb44,
  3757. 0xfb46, 0xfbb1,
  3758. 0xfbd3, 0xfd3f,
  3759. 0xfd50, 0xfd8f,
  3760. 0xfd92, 0xfdc7,
  3761. 0xfdf0, 0xfdfd,
  3762. 0xfe00, 0xfe19,
  3763. 0xfe20, 0xfe23,
  3764. 0xfe30, 0xfe52,
  3765. 0xfe54, 0xfe66,
  3766. 0xfe68, 0xfe6b,
  3767. 0xfe70, 0xfe74,
  3768. 0xfe76, 0xfefc,
  3769. 0xfeff, 0xfeff,
  3770. 0xff01, 0xffbe,
  3771. 0xffc2, 0xffc7,
  3772. 0xffca, 0xffcf,
  3773. 0xffd2, 0xffd7,
  3774. 0xffda, 0xffdc,
  3775. 0xffe0, 0xffe6,
  3776. 0xffe8, 0xffee,
  3777. 0xfff9, 0xfffd,
  3778. 0x10000, 0x1000b,
  3779. 0x1000d, 0x10026,
  3780. 0x10028, 0x1003a,
  3781. 0x1003c, 0x1003d,
  3782. 0x1003f, 0x1004d,
  3783. 0x10050, 0x1005d,
  3784. 0x10080, 0x100fa,
  3785. 0x10100, 0x10102,
  3786. 0x10107, 0x10133,
  3787. 0x10137, 0x1018a,
  3788. 0x10300, 0x1031e,
  3789. 0x10320, 0x10323,
  3790. 0x10330, 0x1034a,
  3791. 0x10380, 0x1039d,
  3792. 0x1039f, 0x103c3,
  3793. 0x103c8, 0x103d5,
  3794. 0x10400, 0x1049d,
  3795. 0x104a0, 0x104a9,
  3796. 0x10800, 0x10805,
  3797. 0x10808, 0x10808,
  3798. 0x1080a, 0x10835,
  3799. 0x10837, 0x10838,
  3800. 0x1083c, 0x1083c,
  3801. 0x1083f, 0x1083f,
  3802. 0x10a00, 0x10a03,
  3803. 0x10a05, 0x10a06,
  3804. 0x10a0c, 0x10a13,
  3805. 0x10a15, 0x10a17,
  3806. 0x10a19, 0x10a33,
  3807. 0x10a38, 0x10a3a,
  3808. 0x10a3f, 0x10a47,
  3809. 0x10a50, 0x10a58,
  3810. 0x1d000, 0x1d0f5,
  3811. 0x1d100, 0x1d126,
  3812. 0x1d12a, 0x1d1dd,
  3813. 0x1d200, 0x1d245,
  3814. 0x1d300, 0x1d356,
  3815. 0x1d400, 0x1d454,
  3816. 0x1d456, 0x1d49c,
  3817. 0x1d49e, 0x1d49f,
  3818. 0x1d4a2, 0x1d4a2,
  3819. 0x1d4a5, 0x1d4a6,
  3820. 0x1d4a9, 0x1d4ac,
  3821. 0x1d4ae, 0x1d4b9,
  3822. 0x1d4bb, 0x1d4bb,
  3823. 0x1d4bd, 0x1d4c3,
  3824. 0x1d4c5, 0x1d505,
  3825. 0x1d507, 0x1d50a,
  3826. 0x1d50d, 0x1d514,
  3827. 0x1d516, 0x1d51c,
  3828. 0x1d51e, 0x1d539,
  3829. 0x1d53b, 0x1d53e,
  3830. 0x1d540, 0x1d544,
  3831. 0x1d546, 0x1d546,
  3832. 0x1d54a, 0x1d550,
  3833. 0x1d552, 0x1d6a5,
  3834. 0x1d6a8, 0x1d7c9,
  3835. 0x1d7ce, 0x1d7ff,
  3836. 0x20000, 0x2a6d6,
  3837. 0x2f800, 0x2fa1d,
  3838. 0xe0001, 0xe0001,
  3839. 0xe0020, 0xe007f,
  3840. 0xe0100, 0xe01ef,
  3841. 0xf0000, 0xffffd,
  3842. 0x100000, 0x10fffd
  3843. }; /* CR_Assigned */
  3844. /* 'C': Major Category */
  3845. static const OnigCodePoint CR_C[] = {
  3846. 422,
  3847. 0x0000, 0x001f,
  3848. 0x007f, 0x009f,
  3849. 0x00ad, 0x00ad,
  3850. 0x0242, 0x024f,
  3851. 0x0370, 0x0373,
  3852. 0x0376, 0x0379,
  3853. 0x037b, 0x037d,
  3854. 0x037f, 0x0383,
  3855. 0x038b, 0x038b,
  3856. 0x038d, 0x038d,
  3857. 0x03a2, 0x03a2,
  3858. 0x03cf, 0x03cf,
  3859. 0x0487, 0x0487,
  3860. 0x04cf, 0x04cf,
  3861. 0x04fa, 0x04ff,
  3862. 0x0510, 0x0530,
  3863. 0x0557, 0x0558,
  3864. 0x0560, 0x0560,
  3865. 0x0588, 0x0588,
  3866. 0x058b, 0x0590,
  3867. 0x05ba, 0x05ba,
  3868. 0x05c8, 0x05cf,
  3869. 0x05eb, 0x05ef,
  3870. 0x05f5, 0x060a,
  3871. 0x0616, 0x061a,
  3872. 0x061c, 0x061d,
  3873. 0x0620, 0x0620,
  3874. 0x063b, 0x063f,
  3875. 0x065f, 0x065f,
  3876. 0x06dd, 0x06dd,
  3877. 0x070e, 0x070f,
  3878. 0x074b, 0x074c,
  3879. 0x076e, 0x077f,
  3880. 0x07b2, 0x0900,
  3881. 0x093a, 0x093b,
  3882. 0x094e, 0x094f,
  3883. 0x0955, 0x0957,
  3884. 0x0971, 0x097c,
  3885. 0x097e, 0x0980,
  3886. 0x0984, 0x0984,
  3887. 0x098d, 0x098e,
  3888. 0x0991, 0x0992,
  3889. 0x09a9, 0x09a9,
  3890. 0x09b1, 0x09b1,
  3891. 0x09b3, 0x09b5,
  3892. 0x09ba, 0x09bb,
  3893. 0x09c5, 0x09c6,
  3894. 0x09c9, 0x09ca,
  3895. 0x09cf, 0x09d6,
  3896. 0x09d8, 0x09db,
  3897. 0x09de, 0x09de,
  3898. 0x09e4, 0x09e5,
  3899. 0x09fb, 0x0a00,
  3900. 0x0a04, 0x0a04,
  3901. 0x0a0b, 0x0a0e,
  3902. 0x0a11, 0x0a12,
  3903. 0x0a29, 0x0a29,
  3904. 0x0a31, 0x0a31,
  3905. 0x0a34, 0x0a34,
  3906. 0x0a37, 0x0a37,
  3907. 0x0a3a, 0x0a3b,
  3908. 0x0a3d, 0x0a3d,
  3909. 0x0a43, 0x0a46,
  3910. 0x0a49, 0x0a4a,
  3911. 0x0a4e, 0x0a58,
  3912. 0x0a5d, 0x0a5d,
  3913. 0x0a5f, 0x0a65,
  3914. 0x0a75, 0x0a80,
  3915. 0x0a84, 0x0a84,
  3916. 0x0a8e, 0x0a8e,
  3917. 0x0a92, 0x0a92,
  3918. 0x0aa9, 0x0aa9,
  3919. 0x0ab1, 0x0ab1,
  3920. 0x0ab4, 0x0ab4,
  3921. 0x0aba, 0x0abb,
  3922. 0x0ac6, 0x0ac6,
  3923. 0x0aca, 0x0aca,
  3924. 0x0ace, 0x0acf,
  3925. 0x0ad1, 0x0adf,
  3926. 0x0ae4, 0x0ae5,
  3927. 0x0af0, 0x0af0,
  3928. 0x0af2, 0x0b00,
  3929. 0x0b04, 0x0b04,
  3930. 0x0b0d, 0x0b0e,
  3931. 0x0b11, 0x0b12,
  3932. 0x0b29, 0x0b29,
  3933. 0x0b31, 0x0b31,
  3934. 0x0b34, 0x0b34,
  3935. 0x0b3a, 0x0b3b,
  3936. 0x0b44, 0x0b46,
  3937. 0x0b49, 0x0b4a,
  3938. 0x0b4e, 0x0b55,
  3939. 0x0b58, 0x0b5b,
  3940. 0x0b5e, 0x0b5e,
  3941. 0x0b62, 0x0b65,
  3942. 0x0b72, 0x0b81,
  3943. 0x0b84, 0x0b84,
  3944. 0x0b8b, 0x0b8d,
  3945. 0x0b91, 0x0b91,
  3946. 0x0b96, 0x0b98,
  3947. 0x0b9b, 0x0b9b,
  3948. 0x0b9d, 0x0b9d,
  3949. 0x0ba0, 0x0ba2,
  3950. 0x0ba5, 0x0ba7,
  3951. 0x0bab, 0x0bad,
  3952. 0x0bba, 0x0bbd,
  3953. 0x0bc3, 0x0bc5,
  3954. 0x0bc9, 0x0bc9,
  3955. 0x0bce, 0x0bd6,
  3956. 0x0bd8, 0x0be5,
  3957. 0x0bfb, 0x0c00,
  3958. 0x0c04, 0x0c04,
  3959. 0x0c0d, 0x0c0d,
  3960. 0x0c11, 0x0c11,
  3961. 0x0c29, 0x0c29,
  3962. 0x0c34, 0x0c34,
  3963. 0x0c3a, 0x0c3d,
  3964. 0x0c45, 0x0c45,
  3965. 0x0c49, 0x0c49,
  3966. 0x0c4e, 0x0c54,
  3967. 0x0c57, 0x0c5f,
  3968. 0x0c62, 0x0c65,
  3969. 0x0c70, 0x0c81,
  3970. 0x0c84, 0x0c84,
  3971. 0x0c8d, 0x0c8d,
  3972. 0x0c91, 0x0c91,
  3973. 0x0ca9, 0x0ca9,
  3974. 0x0cb4, 0x0cb4,
  3975. 0x0cba, 0x0cbb,
  3976. 0x0cc5, 0x0cc5,
  3977. 0x0cc9, 0x0cc9,
  3978. 0x0cce, 0x0cd4,
  3979. 0x0cd7, 0x0cdd,
  3980. 0x0cdf, 0x0cdf,
  3981. 0x0ce2, 0x0ce5,
  3982. 0x0cf0, 0x0d01,
  3983. 0x0d04, 0x0d04,
  3984. 0x0d0d, 0x0d0d,
  3985. 0x0d11, 0x0d11,
  3986. 0x0d29, 0x0d29,
  3987. 0x0d3a, 0x0d3d,
  3988. 0x0d44, 0x0d45,
  3989. 0x0d49, 0x0d49,
  3990. 0x0d4e, 0x0d56,
  3991. 0x0d58, 0x0d5f,
  3992. 0x0d62, 0x0d65,
  3993. 0x0d70, 0x0d81,
  3994. 0x0d84, 0x0d84,
  3995. 0x0d97, 0x0d99,
  3996. 0x0db2, 0x0db2,
  3997. 0x0dbc, 0x0dbc,
  3998. 0x0dbe, 0x0dbf,
  3999. 0x0dc7, 0x0dc9,
  4000. 0x0dcb, 0x0dce,
  4001. 0x0dd5, 0x0dd5,
  4002. 0x0dd7, 0x0dd7,
  4003. 0x0de0, 0x0df1,
  4004. 0x0df5, 0x0e00,
  4005. 0x0e3b, 0x0e3e,
  4006. 0x0e5c, 0x0e80,
  4007. 0x0e83, 0x0e83,
  4008. 0x0e85, 0x0e86,
  4009. 0x0e89, 0x0e89,
  4010. 0x0e8b, 0x0e8c,
  4011. 0x0e8e, 0x0e93,
  4012. 0x0e98, 0x0e98,
  4013. 0x0ea0, 0x0ea0,
  4014. 0x0ea4, 0x0ea4,
  4015. 0x0ea6, 0x0ea6,
  4016. 0x0ea8, 0x0ea9,
  4017. 0x0eac, 0x0eac,
  4018. 0x0eba, 0x0eba,
  4019. 0x0ebe, 0x0ebf,
  4020. 0x0ec5, 0x0ec5,
  4021. 0x0ec7, 0x0ec7,
  4022. 0x0ece, 0x0ecf,
  4023. 0x0eda, 0x0edb,
  4024. 0x0ede, 0x0eff,
  4025. 0x0f48, 0x0f48,
  4026. 0x0f6b, 0x0f70,
  4027. 0x0f8c, 0x0f8f,
  4028. 0x0f98, 0x0f98,
  4029. 0x0fbd, 0x0fbd,
  4030. 0x0fcd, 0x0fce,
  4031. 0x0fd2, 0x0fff,
  4032. 0x1022, 0x1022,
  4033. 0x1028, 0x1028,
  4034. 0x102b, 0x102b,
  4035. 0x1033, 0x1035,
  4036. 0x103a, 0x103f,
  4037. 0x105a, 0x109f,
  4038. 0x10c6, 0x10cf,
  4039. 0x10fd, 0x10ff,
  4040. 0x115a, 0x115e,
  4041. 0x11a3, 0x11a7,
  4042. 0x11fa, 0x11ff,
  4043. 0x1249, 0x1249,
  4044. 0x124e, 0x124f,
  4045. 0x1257, 0x1257,
  4046. 0x1259, 0x1259,
  4047. 0x125e, 0x125f,
  4048. 0x1289, 0x1289,
  4049. 0x128e, 0x128f,
  4050. 0x12b1, 0x12b1,
  4051. 0x12b6, 0x12b7,
  4052. 0x12bf, 0x12bf,
  4053. 0x12c1, 0x12c1,
  4054. 0x12c6, 0x12c7,
  4055. 0x12d7, 0x12d7,
  4056. 0x1311, 0x1311,
  4057. 0x1316, 0x1317,
  4058. 0x135b, 0x135e,
  4059. 0x137d, 0x137f,
  4060. 0x139a, 0x139f,
  4061. 0x13f5, 0x1400,
  4062. 0x1677, 0x167f,
  4063. 0x169d, 0x169f,
  4064. 0x16f1, 0x16ff,
  4065. 0x170d, 0x170d,
  4066. 0x1715, 0x171f,
  4067. 0x1737, 0x173f,
  4068. 0x1754, 0x175f,
  4069. 0x176d, 0x176d,
  4070. 0x1771, 0x1771,
  4071. 0x1774, 0x177f,
  4072. 0x17b4, 0x17b5,
  4073. 0x17de, 0x17df,
  4074. 0x17ea, 0x17ef,
  4075. 0x17fa, 0x17ff,
  4076. 0x180f, 0x180f,
  4077. 0x181a, 0x181f,
  4078. 0x1878, 0x187f,
  4079. 0x18aa, 0x18ff,
  4080. 0x191d, 0x191f,
  4081. 0x192c, 0x192f,
  4082. 0x193c, 0x193f,
  4083. 0x1941, 0x1943,
  4084. 0x196e, 0x196f,
  4085. 0x1975, 0x197f,
  4086. 0x19aa, 0x19af,
  4087. 0x19ca, 0x19cf,
  4088. 0x19da, 0x19dd,
  4089. 0x1a1c, 0x1a1d,
  4090. 0x1a20, 0x1cff,
  4091. 0x1dc4, 0x1dff,
  4092. 0x1e9c, 0x1e9f,
  4093. 0x1efa, 0x1eff,
  4094. 0x1f16, 0x1f17,
  4095. 0x1f1e, 0x1f1f,
  4096. 0x1f46, 0x1f47,
  4097. 0x1f4e, 0x1f4f,
  4098. 0x1f58, 0x1f58,
  4099. 0x1f5a, 0x1f5a,
  4100. 0x1f5c, 0x1f5c,
  4101. 0x1f5e, 0x1f5e,
  4102. 0x1f7e, 0x1f7f,
  4103. 0x1fb5, 0x1fb5,
  4104. 0x1fc5, 0x1fc5,
  4105. 0x1fd4, 0x1fd5,
  4106. 0x1fdc, 0x1fdc,
  4107. 0x1ff0, 0x1ff1,
  4108. 0x1ff5, 0x1ff5,
  4109. 0x1fff, 0x1fff,
  4110. 0x200b, 0x200f,
  4111. 0x202a, 0x202e,
  4112. 0x2060, 0x206f,
  4113. 0x2072, 0x2073,
  4114. 0x208f, 0x208f,
  4115. 0x2095, 0x209f,
  4116. 0x20b6, 0x20cf,
  4117. 0x20ec, 0x20ff,
  4118. 0x214d, 0x2152,
  4119. 0x2184, 0x218f,
  4120. 0x23dc, 0x23ff,
  4121. 0x2427, 0x243f,
  4122. 0x244b, 0x245f,
  4123. 0x269d, 0x269f,
  4124. 0x26b2, 0x2700,
  4125. 0x2705, 0x2705,
  4126. 0x270a, 0x270b,
  4127. 0x2728, 0x2728,
  4128. 0x274c, 0x274c,
  4129. 0x274e, 0x274e,
  4130. 0x2753, 0x2755,
  4131. 0x2757, 0x2757,
  4132. 0x275f, 0x2760,
  4133. 0x2795, 0x2797,
  4134. 0x27b0, 0x27b0,
  4135. 0x27bf, 0x27bf,
  4136. 0x27c7, 0x27cf,
  4137. 0x27ec, 0x27ef,
  4138. 0x2b14, 0x2bff,
  4139. 0x2c2f, 0x2c2f,
  4140. 0x2c5f, 0x2c7f,
  4141. 0x2ceb, 0x2cf8,
  4142. 0x2d26, 0x2d2f,
  4143. 0x2d66, 0x2d6e,
  4144. 0x2d70, 0x2d7f,
  4145. 0x2d97, 0x2d9f,
  4146. 0x2da7, 0x2da7,
  4147. 0x2daf, 0x2daf,
  4148. 0x2db7, 0x2db7,
  4149. 0x2dbf, 0x2dbf,
  4150. 0x2dc7, 0x2dc7,
  4151. 0x2dcf, 0x2dcf,
  4152. 0x2dd7, 0x2dd7,
  4153. 0x2ddf, 0x2dff,
  4154. 0x2e18, 0x2e1b,
  4155. 0x2e1e, 0x2e7f,
  4156. 0x2e9a, 0x2e9a,
  4157. 0x2ef4, 0x2eff,
  4158. 0x2fd6, 0x2fef,
  4159. 0x2ffc, 0x2fff,
  4160. 0x3040, 0x3040,
  4161. 0x3097, 0x3098,
  4162. 0x3100, 0x3104,
  4163. 0x312d, 0x3130,
  4164. 0x318f, 0x318f,
  4165. 0x31b8, 0x31bf,
  4166. 0x31d0, 0x31ef,
  4167. 0x321f, 0x321f,
  4168. 0x3244, 0x324f,
  4169. 0x32ff, 0x32ff,
  4170. 0x4db6, 0x4dbf,
  4171. 0x9fbc, 0x9fff,
  4172. 0xa48d, 0xa48f,
  4173. 0xa4c7, 0xa6ff,
  4174. 0xa717, 0xa7ff,
  4175. 0xa82c, 0xabff,
  4176. 0xd7a4, 0xf8ff,
  4177. 0xfa2e, 0xfa2f,
  4178. 0xfa6b, 0xfa6f,
  4179. 0xfada, 0xfaff,
  4180. 0xfb07, 0xfb12,
  4181. 0xfb18, 0xfb1c,
  4182. 0xfb37, 0xfb37,
  4183. 0xfb3d, 0xfb3d,
  4184. 0xfb3f, 0xfb3f,
  4185. 0xfb42, 0xfb42,
  4186. 0xfb45, 0xfb45,
  4187. 0xfbb2, 0xfbd2,
  4188. 0xfd40, 0xfd4f,
  4189. 0xfd90, 0xfd91,
  4190. 0xfdc8, 0xfdef,
  4191. 0xfdfe, 0xfdff,
  4192. 0xfe1a, 0xfe1f,
  4193. 0xfe24, 0xfe2f,
  4194. 0xfe53, 0xfe53,
  4195. 0xfe67, 0xfe67,
  4196. 0xfe6c, 0xfe6f,
  4197. 0xfe75, 0xfe75,
  4198. 0xfefd, 0xff00,
  4199. 0xffbf, 0xffc1,
  4200. 0xffc8, 0xffc9,
  4201. 0xffd0, 0xffd1,
  4202. 0xffd8, 0xffd9,
  4203. 0xffdd, 0xffdf,
  4204. 0xffe7, 0xffe7,
  4205. 0xffef, 0xfffb,
  4206. 0xfffe, 0xffff,
  4207. 0x1000c, 0x1000c,
  4208. 0x10027, 0x10027,
  4209. 0x1003b, 0x1003b,
  4210. 0x1003e, 0x1003e,
  4211. 0x1004e, 0x1004f,
  4212. 0x1005e, 0x1007f,
  4213. 0x100fb, 0x100ff,
  4214. 0x10103, 0x10106,
  4215. 0x10134, 0x10136,
  4216. 0x1018b, 0x102ff,
  4217. 0x1031f, 0x1031f,
  4218. 0x10324, 0x1032f,
  4219. 0x1034b, 0x1037f,
  4220. 0x1039e, 0x1039e,
  4221. 0x103c4, 0x103c7,
  4222. 0x103d6, 0x103ff,
  4223. 0x1049e, 0x1049f,
  4224. 0x104aa, 0x107ff,
  4225. 0x10806, 0x10807,
  4226. 0x10809, 0x10809,
  4227. 0x10836, 0x10836,
  4228. 0x10839, 0x1083b,
  4229. 0x1083d, 0x1083e,
  4230. 0x10840, 0x109ff,
  4231. 0x10a04, 0x10a04,
  4232. 0x10a07, 0x10a0b,
  4233. 0x10a14, 0x10a14,
  4234. 0x10a18, 0x10a18,
  4235. 0x10a34, 0x10a37,
  4236. 0x10a3b, 0x10a3e,
  4237. 0x10a48, 0x10a4f,
  4238. 0x10a59, 0x1cfff,
  4239. 0x1d0f6, 0x1d0ff,
  4240. 0x1d127, 0x1d129,
  4241. 0x1d173, 0x1d17a,
  4242. 0x1d1de, 0x1d1ff,
  4243. 0x1d246, 0x1d2ff,
  4244. 0x1d357, 0x1d3ff,
  4245. 0x1d455, 0x1d455,
  4246. 0x1d49d, 0x1d49d,
  4247. 0x1d4a0, 0x1d4a1,
  4248. 0x1d4a3, 0x1d4a4,
  4249. 0x1d4a7, 0x1d4a8,
  4250. 0x1d4ad, 0x1d4ad,
  4251. 0x1d4ba, 0x1d4ba,
  4252. 0x1d4bc, 0x1d4bc,
  4253. 0x1d4c4, 0x1d4c4,
  4254. 0x1d506, 0x1d506,
  4255. 0x1d50b, 0x1d50c,
  4256. 0x1d515, 0x1d515,
  4257. 0x1d51d, 0x1d51d,
  4258. 0x1d53a, 0x1d53a,
  4259. 0x1d53f, 0x1d53f,
  4260. 0x1d545, 0x1d545,
  4261. 0x1d547, 0x1d549,
  4262. 0x1d551, 0x1d551,
  4263. 0x1d6a6, 0x1d6a7,
  4264. 0x1d7ca, 0x1d7cd,
  4265. 0x1d800, 0x1ffff,
  4266. 0x2a6d7, 0x2f7ff,
  4267. 0x2fa1e, 0xe00ff,
  4268. 0xe01f0, 0x10ffff
  4269. }; /* CR_C */
  4270. /* 'Cc': General Category */
  4271. static const OnigCodePoint CR_Cc[] = {
  4272. 2,
  4273. 0x0000, 0x001f,
  4274. 0x007f, 0x009f
  4275. }; /* CR_Cc */
  4276. /* 'Cf': General Category */
  4277. static const OnigCodePoint CR_Cf[] = {
  4278. 14,
  4279. 0x00ad, 0x00ad,
  4280. 0x0600, 0x0603,
  4281. 0x06dd, 0x06dd,
  4282. 0x070f, 0x070f,
  4283. 0x17b4, 0x17b5,
  4284. 0x200b, 0x200f,
  4285. 0x202a, 0x202e,
  4286. 0x2060, 0x2063,
  4287. 0x206a, 0x206f,
  4288. 0xfeff, 0xfeff,
  4289. 0xfff9, 0xfffb,
  4290. 0x1d173, 0x1d17a,
  4291. 0xe0001, 0xe0001,
  4292. 0xe0020, 0xe007f
  4293. }; /* CR_Cf */
  4294. /* 'Cn': General Category */
  4295. static const OnigCodePoint CR_Cn[] = {
  4296. 420,
  4297. 0x0242, 0x024f,
  4298. 0x0370, 0x0373,
  4299. 0x0376, 0x0379,
  4300. 0x037b, 0x037d,
  4301. 0x037f, 0x0383,
  4302. 0x038b, 0x038b,
  4303. 0x038d, 0x038d,
  4304. 0x03a2, 0x03a2,
  4305. 0x03cf, 0x03cf,
  4306. 0x0487, 0x0487,
  4307. 0x04cf, 0x04cf,
  4308. 0x04fa, 0x04ff,
  4309. 0x0510, 0x0530,
  4310. 0x0557, 0x0558,
  4311. 0x0560, 0x0560,
  4312. 0x0588, 0x0588,
  4313. 0x058b, 0x0590,
  4314. 0x05ba, 0x05ba,
  4315. 0x05c8, 0x05cf,
  4316. 0x05eb, 0x05ef,
  4317. 0x05f5, 0x05ff,
  4318. 0x0604, 0x060a,
  4319. 0x0616, 0x061a,
  4320. 0x061c, 0x061d,
  4321. 0x0620, 0x0620,
  4322. 0x063b, 0x063f,
  4323. 0x065f, 0x065f,
  4324. 0x070e, 0x070e,
  4325. 0x074b, 0x074c,
  4326. 0x076e, 0x077f,
  4327. 0x07b2, 0x0900,
  4328. 0x093a, 0x093b,
  4329. 0x094e, 0x094f,
  4330. 0x0955, 0x0957,
  4331. 0x0971, 0x097c,
  4332. 0x097e, 0x0980,
  4333. 0x0984, 0x0984,
  4334. 0x098d, 0x098e,
  4335. 0x0991, 0x0992,
  4336. 0x09a9, 0x09a9,
  4337. 0x09b1, 0x09b1,
  4338. 0x09b3, 0x09b5,
  4339. 0x09ba, 0x09bb,
  4340. 0x09c5, 0x09c6,
  4341. 0x09c9, 0x09ca,
  4342. 0x09cf, 0x09d6,
  4343. 0x09d8, 0x09db,
  4344. 0x09de, 0x09de,
  4345. 0x09e4, 0x09e5,
  4346. 0x09fb, 0x0a00,
  4347. 0x0a04, 0x0a04,
  4348. 0x0a0b, 0x0a0e,
  4349. 0x0a11, 0x0a12,
  4350. 0x0a29, 0x0a29,
  4351. 0x0a31, 0x0a31,
  4352. 0x0a34, 0x0a34,
  4353. 0x0a37, 0x0a37,
  4354. 0x0a3a, 0x0a3b,
  4355. 0x0a3d, 0x0a3d,
  4356. 0x0a43, 0x0a46,
  4357. 0x0a49, 0x0a4a,
  4358. 0x0a4e, 0x0a58,
  4359. 0x0a5d, 0x0a5d,
  4360. 0x0a5f, 0x0a65,
  4361. 0x0a75, 0x0a80,
  4362. 0x0a84, 0x0a84,
  4363. 0x0a8e, 0x0a8e,
  4364. 0x0a92, 0x0a92,
  4365. 0x0aa9, 0x0aa9,
  4366. 0x0ab1, 0x0ab1,
  4367. 0x0ab4, 0x0ab4,
  4368. 0x0aba, 0x0abb,
  4369. 0x0ac6, 0x0ac6,
  4370. 0x0aca, 0x0aca,
  4371. 0x0ace, 0x0acf,
  4372. 0x0ad1, 0x0adf,
  4373. 0x0ae4, 0x0ae5,
  4374. 0x0af0, 0x0af0,
  4375. 0x0af2, 0x0b00,
  4376. 0x0b04, 0x0b04,
  4377. 0x0b0d, 0x0b0e,
  4378. 0x0b11, 0x0b12,
  4379. 0x0b29, 0x0b29,
  4380. 0x0b31, 0x0b31,
  4381. 0x0b34, 0x0b34,
  4382. 0x0b3a, 0x0b3b,
  4383. 0x0b44, 0x0b46,
  4384. 0x0b49, 0x0b4a,
  4385. 0x0b4e, 0x0b55,
  4386. 0x0b58, 0x0b5b,
  4387. 0x0b5e, 0x0b5e,
  4388. 0x0b62, 0x0b65,
  4389. 0x0b72, 0x0b81,
  4390. 0x0b84, 0x0b84,
  4391. 0x0b8b, 0x0b8d,
  4392. 0x0b91, 0x0b91,
  4393. 0x0b96, 0x0b98,
  4394. 0x0b9b, 0x0b9b,
  4395. 0x0b9d, 0x0b9d,
  4396. 0x0ba0, 0x0ba2,
  4397. 0x0ba5, 0x0ba7,
  4398. 0x0bab, 0x0bad,
  4399. 0x0bba, 0x0bbd,
  4400. 0x0bc3, 0x0bc5,
  4401. 0x0bc9, 0x0bc9,
  4402. 0x0bce, 0x0bd6,
  4403. 0x0bd8, 0x0be5,
  4404. 0x0bfb, 0x0c00,
  4405. 0x0c04, 0x0c04,
  4406. 0x0c0d, 0x0c0d,
  4407. 0x0c11, 0x0c11,
  4408. 0x0c29, 0x0c29,
  4409. 0x0c34, 0x0c34,
  4410. 0x0c3a, 0x0c3d,
  4411. 0x0c45, 0x0c45,
  4412. 0x0c49, 0x0c49,
  4413. 0x0c4e, 0x0c54,
  4414. 0x0c57, 0x0c5f,
  4415. 0x0c62, 0x0c65,
  4416. 0x0c70, 0x0c81,
  4417. 0x0c84, 0x0c84,
  4418. 0x0c8d, 0x0c8d,
  4419. 0x0c91, 0x0c91,
  4420. 0x0ca9, 0x0ca9,
  4421. 0x0cb4, 0x0cb4,
  4422. 0x0cba, 0x0cbb,
  4423. 0x0cc5, 0x0cc5,
  4424. 0x0cc9, 0x0cc9,
  4425. 0x0cce, 0x0cd4,
  4426. 0x0cd7, 0x0cdd,
  4427. 0x0cdf, 0x0cdf,
  4428. 0x0ce2, 0x0ce5,
  4429. 0x0cf0, 0x0d01,
  4430. 0x0d04, 0x0d04,
  4431. 0x0d0d, 0x0d0d,
  4432. 0x0d11, 0x0d11,
  4433. 0x0d29, 0x0d29,
  4434. 0x0d3a, 0x0d3d,
  4435. 0x0d44, 0x0d45,
  4436. 0x0d49, 0x0d49,
  4437. 0x0d4e, 0x0d56,
  4438. 0x0d58, 0x0d5f,
  4439. 0x0d62, 0x0d65,
  4440. 0x0d70, 0x0d81,
  4441. 0x0d84, 0x0d84,
  4442. 0x0d97, 0x0d99,
  4443. 0x0db2, 0x0db2,
  4444. 0x0dbc, 0x0dbc,
  4445. 0x0dbe, 0x0dbf,
  4446. 0x0dc7, 0x0dc9,
  4447. 0x0dcb, 0x0dce,
  4448. 0x0dd5, 0x0dd5,
  4449. 0x0dd7, 0x0dd7,
  4450. 0x0de0, 0x0df1,
  4451. 0x0df5, 0x0e00,
  4452. 0x0e3b, 0x0e3e,
  4453. 0x0e5c, 0x0e80,
  4454. 0x0e83, 0x0e83,
  4455. 0x0e85, 0x0e86,
  4456. 0x0e89, 0x0e89,
  4457. 0x0e8b, 0x0e8c,
  4458. 0x0e8e, 0x0e93,
  4459. 0x0e98, 0x0e98,
  4460. 0x0ea0, 0x0ea0,
  4461. 0x0ea4, 0x0ea4,
  4462. 0x0ea6, 0x0ea6,
  4463. 0x0ea8, 0x0ea9,
  4464. 0x0eac, 0x0eac,
  4465. 0x0eba, 0x0eba,
  4466. 0x0ebe, 0x0ebf,
  4467. 0x0ec5, 0x0ec5,
  4468. 0x0ec7, 0x0ec7,
  4469. 0x0ece, 0x0ecf,
  4470. 0x0eda, 0x0edb,
  4471. 0x0ede, 0x0eff,
  4472. 0x0f48, 0x0f48,
  4473. 0x0f6b, 0x0f70,
  4474. 0x0f8c, 0x0f8f,
  4475. 0x0f98, 0x0f98,
  4476. 0x0fbd, 0x0fbd,
  4477. 0x0fcd, 0x0fce,
  4478. 0x0fd2, 0x0fff,
  4479. 0x1022, 0x1022,
  4480. 0x1028, 0x1028,
  4481. 0x102b, 0x102b,
  4482. 0x1033, 0x1035,
  4483. 0x103a, 0x103f,
  4484. 0x105a, 0x109f,
  4485. 0x10c6, 0x10cf,
  4486. 0x10fd, 0x10ff,
  4487. 0x115a, 0x115e,
  4488. 0x11a3, 0x11a7,
  4489. 0x11fa, 0x11ff,
  4490. 0x1249, 0x1249,
  4491. 0x124e, 0x124f,
  4492. 0x1257, 0x1257,
  4493. 0x1259, 0x1259,
  4494. 0x125e, 0x125f,
  4495. 0x1289, 0x1289,
  4496. 0x128e, 0x128f,
  4497. 0x12b1, 0x12b1,
  4498. 0x12b6, 0x12b7,
  4499. 0x12bf, 0x12bf,
  4500. 0x12c1, 0x12c1,
  4501. 0x12c6, 0x12c7,
  4502. 0x12d7, 0x12d7,
  4503. 0x1311, 0x1311,
  4504. 0x1316, 0x1317,
  4505. 0x135b, 0x135e,
  4506. 0x137d, 0x137f,
  4507. 0x139a, 0x139f,
  4508. 0x13f5, 0x1400,
  4509. 0x1677, 0x167f,
  4510. 0x169d, 0x169f,
  4511. 0x16f1, 0x16ff,
  4512. 0x170d, 0x170d,
  4513. 0x1715, 0x171f,
  4514. 0x1737, 0x173f,
  4515. 0x1754, 0x175f,
  4516. 0x176d, 0x176d,
  4517. 0x1771, 0x1771,
  4518. 0x1774, 0x177f,
  4519. 0x17de, 0x17df,
  4520. 0x17ea, 0x17ef,
  4521. 0x17fa, 0x17ff,
  4522. 0x180f, 0x180f,
  4523. 0x181a, 0x181f,
  4524. 0x1878, 0x187f,
  4525. 0x18aa, 0x18ff,
  4526. 0x191d, 0x191f,
  4527. 0x192c, 0x192f,
  4528. 0x193c, 0x193f,
  4529. 0x1941, 0x1943,
  4530. 0x196e, 0x196f,
  4531. 0x1975, 0x197f,
  4532. 0x19aa, 0x19af,
  4533. 0x19ca, 0x19cf,
  4534. 0x19da, 0x19dd,
  4535. 0x1a1c, 0x1a1d,
  4536. 0x1a20, 0x1cff,
  4537. 0x1dc4, 0x1dff,
  4538. 0x1e9c, 0x1e9f,
  4539. 0x1efa, 0x1eff,
  4540. 0x1f16, 0x1f17,
  4541. 0x1f1e, 0x1f1f,
  4542. 0x1f46, 0x1f47,
  4543. 0x1f4e, 0x1f4f,
  4544. 0x1f58, 0x1f58,
  4545. 0x1f5a, 0x1f5a,
  4546. 0x1f5c, 0x1f5c,
  4547. 0x1f5e, 0x1f5e,
  4548. 0x1f7e, 0x1f7f,
  4549. 0x1fb5, 0x1fb5,
  4550. 0x1fc5, 0x1fc5,
  4551. 0x1fd4, 0x1fd5,
  4552. 0x1fdc, 0x1fdc,
  4553. 0x1ff0, 0x1ff1,
  4554. 0x1ff5, 0x1ff5,
  4555. 0x1fff, 0x1fff,
  4556. 0x2064, 0x2069,
  4557. 0x2072, 0x2073,
  4558. 0x208f, 0x208f,
  4559. 0x2095, 0x209f,
  4560. 0x20b6, 0x20cf,
  4561. 0x20ec, 0x20ff,
  4562. 0x214d, 0x2152,
  4563. 0x2184, 0x218f,
  4564. 0x23dc, 0x23ff,
  4565. 0x2427, 0x243f,
  4566. 0x244b, 0x245f,
  4567. 0x269d, 0x269f,
  4568. 0x26b2, 0x2700,
  4569. 0x2705, 0x2705,
  4570. 0x270a, 0x270b,
  4571. 0x2728, 0x2728,
  4572. 0x274c, 0x274c,
  4573. 0x274e, 0x274e,
  4574. 0x2753, 0x2755,
  4575. 0x2757, 0x2757,
  4576. 0x275f, 0x2760,
  4577. 0x2795, 0x2797,
  4578. 0x27b0, 0x27b0,
  4579. 0x27bf, 0x27bf,
  4580. 0x27c7, 0x27cf,
  4581. 0x27ec, 0x27ef,
  4582. 0x2b14, 0x2bff,
  4583. 0x2c2f, 0x2c2f,
  4584. 0x2c5f, 0x2c7f,
  4585. 0x2ceb, 0x2cf8,
  4586. 0x2d26, 0x2d2f,
  4587. 0x2d66, 0x2d6e,
  4588. 0x2d70, 0x2d7f,
  4589. 0x2d97, 0x2d9f,
  4590. 0x2da7, 0x2da7,
  4591. 0x2daf, 0x2daf,
  4592. 0x2db7, 0x2db7,
  4593. 0x2dbf, 0x2dbf,
  4594. 0x2dc7, 0x2dc7,
  4595. 0x2dcf, 0x2dcf,
  4596. 0x2dd7, 0x2dd7,
  4597. 0x2ddf, 0x2dff,
  4598. 0x2e18, 0x2e1b,
  4599. 0x2e1e, 0x2e7f,
  4600. 0x2e9a, 0x2e9a,
  4601. 0x2ef4, 0x2eff,
  4602. 0x2fd6, 0x2fef,
  4603. 0x2ffc, 0x2fff,
  4604. 0x3040, 0x3040,
  4605. 0x3097, 0x3098,
  4606. 0x3100, 0x3104,
  4607. 0x312d, 0x3130,
  4608. 0x318f, 0x318f,
  4609. 0x31b8, 0x31bf,
  4610. 0x31d0, 0x31ef,
  4611. 0x321f, 0x321f,
  4612. 0x3244, 0x324f,
  4613. 0x32ff, 0x32ff,
  4614. 0x4db6, 0x4dbf,
  4615. 0x9fbc, 0x9fff,
  4616. 0xa48d, 0xa48f,
  4617. 0xa4c7, 0xa6ff,
  4618. 0xa717, 0xa7ff,
  4619. 0xa82c, 0xabff,
  4620. 0xd7a4, 0xd7ff,
  4621. 0xfa2e, 0xfa2f,
  4622. 0xfa6b, 0xfa6f,
  4623. 0xfada, 0xfaff,
  4624. 0xfb07, 0xfb12,
  4625. 0xfb18, 0xfb1c,
  4626. 0xfb37, 0xfb37,
  4627. 0xfb3d, 0xfb3d,
  4628. 0xfb3f, 0xfb3f,
  4629. 0xfb42, 0xfb42,
  4630. 0xfb45, 0xfb45,
  4631. 0xfbb2, 0xfbd2,
  4632. 0xfd40, 0xfd4f,
  4633. 0xfd90, 0xfd91,
  4634. 0xfdc8, 0xfdef,
  4635. 0xfdfe, 0xfdff,
  4636. 0xfe1a, 0xfe1f,
  4637. 0xfe24, 0xfe2f,
  4638. 0xfe53, 0xfe53,
  4639. 0xfe67, 0xfe67,
  4640. 0xfe6c, 0xfe6f,
  4641. 0xfe75, 0xfe75,
  4642. 0xfefd, 0xfefe,
  4643. 0xff00, 0xff00,
  4644. 0xffbf, 0xffc1,
  4645. 0xffc8, 0xffc9,
  4646. 0xffd0, 0xffd1,
  4647. 0xffd8, 0xffd9,
  4648. 0xffdd, 0xffdf,
  4649. 0xffe7, 0xffe7,
  4650. 0xffef, 0xfff8,
  4651. 0xfffe, 0xffff,
  4652. 0x1000c, 0x1000c,
  4653. 0x10027, 0x10027,
  4654. 0x1003b, 0x1003b,
  4655. 0x1003e, 0x1003e,
  4656. 0x1004e, 0x1004f,
  4657. 0x1005e, 0x1007f,
  4658. 0x100fb, 0x100ff,
  4659. 0x10103, 0x10106,
  4660. 0x10134, 0x10136,
  4661. 0x1018b, 0x102ff,
  4662. 0x1031f, 0x1031f,
  4663. 0x10324, 0x1032f,
  4664. 0x1034b, 0x1037f,
  4665. 0x1039e, 0x1039e,
  4666. 0x103c4, 0x103c7,
  4667. 0x103d6, 0x103ff,
  4668. 0x1049e, 0x1049f,
  4669. 0x104aa, 0x107ff,
  4670. 0x10806, 0x10807,
  4671. 0x10809, 0x10809,
  4672. 0x10836, 0x10836,
  4673. 0x10839, 0x1083b,
  4674. 0x1083d, 0x1083e,
  4675. 0x10840, 0x109ff,
  4676. 0x10a04, 0x10a04,
  4677. 0x10a07, 0x10a0b,
  4678. 0x10a14, 0x10a14,
  4679. 0x10a18, 0x10a18,
  4680. 0x10a34, 0x10a37,
  4681. 0x10a3b, 0x10a3e,
  4682. 0x10a48, 0x10a4f,
  4683. 0x10a59, 0x1cfff,
  4684. 0x1d0f6, 0x1d0ff,
  4685. 0x1d127, 0x1d129,
  4686. 0x1d1de, 0x1d1ff,
  4687. 0x1d246, 0x1d2ff,
  4688. 0x1d357, 0x1d3ff,
  4689. 0x1d455, 0x1d455,
  4690. 0x1d49d, 0x1d49d,
  4691. 0x1d4a0, 0x1d4a1,
  4692. 0x1d4a3, 0x1d4a4,
  4693. 0x1d4a7, 0x1d4a8,
  4694. 0x1d4ad, 0x1d4ad,
  4695. 0x1d4ba, 0x1d4ba,
  4696. 0x1d4bc, 0x1d4bc,
  4697. 0x1d4c4, 0x1d4c4,
  4698. 0x1d506, 0x1d506,
  4699. 0x1d50b, 0x1d50c,
  4700. 0x1d515, 0x1d515,
  4701. 0x1d51d, 0x1d51d,
  4702. 0x1d53a, 0x1d53a,
  4703. 0x1d53f, 0x1d53f,
  4704. 0x1d545, 0x1d545,
  4705. 0x1d547, 0x1d549,
  4706. 0x1d551, 0x1d551,
  4707. 0x1d6a6, 0x1d6a7,
  4708. 0x1d7ca, 0x1d7cd,
  4709. 0x1d800, 0x1ffff,
  4710. 0x2a6d7, 0x2f7ff,
  4711. 0x2fa1e, 0xe0000,
  4712. 0xe0002, 0xe001f,
  4713. 0xe0080, 0xe00ff,
  4714. 0xe01f0, 0xeffff,
  4715. 0xffffe, 0xfffff,
  4716. 0x10fffe, 0x10ffff
  4717. }; /* CR_Cn */
  4718. /* 'Co': General Category */
  4719. static const OnigCodePoint CR_Co[] = {
  4720. 3,
  4721. 0xe000, 0xf8ff,
  4722. 0xf0000, 0xffffd,
  4723. 0x100000, 0x10fffd
  4724. }; /* CR_Co */
  4725. /* 'Cs': General Category */
  4726. static const OnigCodePoint CR_Cs[] = {
  4727. 1,
  4728. 0xd800, 0xdfff
  4729. }; /* CR_Cs */
  4730. /* 'L': Major Category */
  4731. static const OnigCodePoint CR_L[] = {
  4732. 347,
  4733. 0x0041, 0x005a,
  4734. 0x0061, 0x007a,
  4735. 0x00aa, 0x00aa,
  4736. 0x00b5, 0x00b5,
  4737. 0x00ba, 0x00ba,
  4738. 0x00c0, 0x00d6,
  4739. 0x00d8, 0x00f6,
  4740. 0x00f8, 0x0241,
  4741. 0x0250, 0x02c1,
  4742. 0x02c6, 0x02d1,
  4743. 0x02e0, 0x02e4,
  4744. 0x02ee, 0x02ee,
  4745. 0x037a, 0x037a,
  4746. 0x0386, 0x0386,
  4747. 0x0388, 0x038a,
  4748. 0x038c, 0x038c,
  4749. 0x038e, 0x03a1,
  4750. 0x03a3, 0x03ce,
  4751. 0x03d0, 0x03f5,
  4752. 0x03f7, 0x0481,
  4753. 0x048a, 0x04ce,
  4754. 0x04d0, 0x04f9,
  4755. 0x0500, 0x050f,
  4756. 0x0531, 0x0556,
  4757. 0x0559, 0x0559,
  4758. 0x0561, 0x0587,
  4759. 0x05d0, 0x05ea,
  4760. 0x05f0, 0x05f2,
  4761. 0x0621, 0x063a,
  4762. 0x0640, 0x064a,
  4763. 0x066e, 0x066f,
  4764. 0x0671, 0x06d3,
  4765. 0x06d5, 0x06d5,
  4766. 0x06e5, 0x06e6,
  4767. 0x06ee, 0x06ef,
  4768. 0x06fa, 0x06fc,
  4769. 0x06ff, 0x06ff,
  4770. 0x0710, 0x0710,
  4771. 0x0712, 0x072f,
  4772. 0x074d, 0x076d,
  4773. 0x0780, 0x07a5,
  4774. 0x07b1, 0x07b1,
  4775. 0x0904, 0x0939,
  4776. 0x093d, 0x093d,
  4777. 0x0950, 0x0950,
  4778. 0x0958, 0x0961,
  4779. 0x097d, 0x097d,
  4780. 0x0985, 0x098c,
  4781. 0x098f, 0x0990,
  4782. 0x0993, 0x09a8,
  4783. 0x09aa, 0x09b0,
  4784. 0x09b2, 0x09b2,
  4785. 0x09b6, 0x09b9,
  4786. 0x09bd, 0x09bd,
  4787. 0x09ce, 0x09ce,
  4788. 0x09dc, 0x09dd,
  4789. 0x09df, 0x09e1,
  4790. 0x09f0, 0x09f1,
  4791. 0x0a05, 0x0a0a,
  4792. 0x0a0f, 0x0a10,
  4793. 0x0a13, 0x0a28,
  4794. 0x0a2a, 0x0a30,
  4795. 0x0a32, 0x0a33,
  4796. 0x0a35, 0x0a36,
  4797. 0x0a38, 0x0a39,
  4798. 0x0a59, 0x0a5c,
  4799. 0x0a5e, 0x0a5e,
  4800. 0x0a72, 0x0a74,
  4801. 0x0a85, 0x0a8d,
  4802. 0x0a8f, 0x0a91,
  4803. 0x0a93, 0x0aa8,
  4804. 0x0aaa, 0x0ab0,
  4805. 0x0ab2, 0x0ab3,
  4806. 0x0ab5, 0x0ab9,
  4807. 0x0abd, 0x0abd,
  4808. 0x0ad0, 0x0ad0,
  4809. 0x0ae0, 0x0ae1,
  4810. 0x0b05, 0x0b0c,
  4811. 0x0b0f, 0x0b10,
  4812. 0x0b13, 0x0b28,
  4813. 0x0b2a, 0x0b30,
  4814. 0x0b32, 0x0b33,
  4815. 0x0b35, 0x0b39,
  4816. 0x0b3d, 0x0b3d,
  4817. 0x0b5c, 0x0b5d,
  4818. 0x0b5f, 0x0b61,
  4819. 0x0b71, 0x0b71,
  4820. 0x0b83, 0x0b83,
  4821. 0x0b85, 0x0b8a,
  4822. 0x0b8e, 0x0b90,
  4823. 0x0b92, 0x0b95,
  4824. 0x0b99, 0x0b9a,
  4825. 0x0b9c, 0x0b9c,
  4826. 0x0b9e, 0x0b9f,
  4827. 0x0ba3, 0x0ba4,
  4828. 0x0ba8, 0x0baa,
  4829. 0x0bae, 0x0bb9,
  4830. 0x0c05, 0x0c0c,
  4831. 0x0c0e, 0x0c10,
  4832. 0x0c12, 0x0c28,
  4833. 0x0c2a, 0x0c33,
  4834. 0x0c35, 0x0c39,
  4835. 0x0c60, 0x0c61,
  4836. 0x0c85, 0x0c8c,
  4837. 0x0c8e, 0x0c90,
  4838. 0x0c92, 0x0ca8,
  4839. 0x0caa, 0x0cb3,
  4840. 0x0cb5, 0x0cb9,
  4841. 0x0cbd, 0x0cbd,
  4842. 0x0cde, 0x0cde,
  4843. 0x0ce0, 0x0ce1,
  4844. 0x0d05, 0x0d0c,
  4845. 0x0d0e, 0x0d10,
  4846. 0x0d12, 0x0d28,
  4847. 0x0d2a, 0x0d39,
  4848. 0x0d60, 0x0d61,
  4849. 0x0d85, 0x0d96,
  4850. 0x0d9a, 0x0db1,
  4851. 0x0db3, 0x0dbb,
  4852. 0x0dbd, 0x0dbd,
  4853. 0x0dc0, 0x0dc6,
  4854. 0x0e01, 0x0e30,
  4855. 0x0e32, 0x0e33,
  4856. 0x0e40, 0x0e46,
  4857. 0x0e81, 0x0e82,
  4858. 0x0e84, 0x0e84,
  4859. 0x0e87, 0x0e88,
  4860. 0x0e8a, 0x0e8a,
  4861. 0x0e8d, 0x0e8d,
  4862. 0x0e94, 0x0e97,
  4863. 0x0e99, 0x0e9f,
  4864. 0x0ea1, 0x0ea3,
  4865. 0x0ea5, 0x0ea5,
  4866. 0x0ea7, 0x0ea7,
  4867. 0x0eaa, 0x0eab,
  4868. 0x0ead, 0x0eb0,
  4869. 0x0eb2, 0x0eb3,
  4870. 0x0ebd, 0x0ebd,
  4871. 0x0ec0, 0x0ec4,
  4872. 0x0ec6, 0x0ec6,
  4873. 0x0edc, 0x0edd,
  4874. 0x0f00, 0x0f00,
  4875. 0x0f40, 0x0f47,
  4876. 0x0f49, 0x0f6a,
  4877. 0x0f88, 0x0f8b,
  4878. 0x1000, 0x1021,
  4879. 0x1023, 0x1027,
  4880. 0x1029, 0x102a,
  4881. 0x1050, 0x1055,
  4882. 0x10a0, 0x10c5,
  4883. 0x10d0, 0x10fa,
  4884. 0x10fc, 0x10fc,
  4885. 0x1100, 0x1159,
  4886. 0x115f, 0x11a2,
  4887. 0x11a8, 0x11f9,
  4888. 0x1200, 0x1248,
  4889. 0x124a, 0x124d,
  4890. 0x1250, 0x1256,
  4891. 0x1258, 0x1258,
  4892. 0x125a, 0x125d,
  4893. 0x1260, 0x1288,
  4894. 0x128a, 0x128d,
  4895. 0x1290, 0x12b0,
  4896. 0x12b2, 0x12b5,
  4897. 0x12b8, 0x12be,
  4898. 0x12c0, 0x12c0,
  4899. 0x12c2, 0x12c5,
  4900. 0x12c8, 0x12d6,
  4901. 0x12d8, 0x1310,
  4902. 0x1312, 0x1315,
  4903. 0x1318, 0x135a,
  4904. 0x1380, 0x138f,
  4905. 0x13a0, 0x13f4,
  4906. 0x1401, 0x166c,
  4907. 0x166f, 0x1676,
  4908. 0x1681, 0x169a,
  4909. 0x16a0, 0x16ea,
  4910. 0x1700, 0x170c,
  4911. 0x170e, 0x1711,
  4912. 0x1720, 0x1731,
  4913. 0x1740, 0x1751,
  4914. 0x1760, 0x176c,
  4915. 0x176e, 0x1770,
  4916. 0x1780, 0x17b3,
  4917. 0x17d7, 0x17d7,
  4918. 0x17dc, 0x17dc,
  4919. 0x1820, 0x1877,
  4920. 0x1880, 0x18a8,
  4921. 0x1900, 0x191c,
  4922. 0x1950, 0x196d,
  4923. 0x1970, 0x1974,
  4924. 0x1980, 0x19a9,
  4925. 0x19c1, 0x19c7,
  4926. 0x1a00, 0x1a16,
  4927. 0x1d00, 0x1dbf,
  4928. 0x1e00, 0x1e9b,
  4929. 0x1ea0, 0x1ef9,
  4930. 0x1f00, 0x1f15,
  4931. 0x1f18, 0x1f1d,
  4932. 0x1f20, 0x1f45,
  4933. 0x1f48, 0x1f4d,
  4934. 0x1f50, 0x1f57,
  4935. 0x1f59, 0x1f59,
  4936. 0x1f5b, 0x1f5b,
  4937. 0x1f5d, 0x1f5d,
  4938. 0x1f5f, 0x1f7d,
  4939. 0x1f80, 0x1fb4,
  4940. 0x1fb6, 0x1fbc,
  4941. 0x1fbe, 0x1fbe,
  4942. 0x1fc2, 0x1fc4,
  4943. 0x1fc6, 0x1fcc,
  4944. 0x1fd0, 0x1fd3,
  4945. 0x1fd6, 0x1fdb,
  4946. 0x1fe0, 0x1fec,
  4947. 0x1ff2, 0x1ff4,
  4948. 0x1ff6, 0x1ffc,
  4949. 0x2071, 0x2071,
  4950. 0x207f, 0x207f,
  4951. 0x2090, 0x2094,
  4952. 0x2102, 0x2102,
  4953. 0x2107, 0x2107,
  4954. 0x210a, 0x2113,
  4955. 0x2115, 0x2115,
  4956. 0x2119, 0x211d,
  4957. 0x2124, 0x2124,
  4958. 0x2126, 0x2126,
  4959. 0x2128, 0x2128,
  4960. 0x212a, 0x212d,
  4961. 0x212f, 0x2131,
  4962. 0x2133, 0x2139,
  4963. 0x213c, 0x213f,
  4964. 0x2145, 0x2149,
  4965. 0x2c00, 0x2c2e,
  4966. 0x2c30, 0x2c5e,
  4967. 0x2c80, 0x2ce4,
  4968. 0x2d00, 0x2d25,
  4969. 0x2d30, 0x2d65,
  4970. 0x2d6f, 0x2d6f,
  4971. 0x2d80, 0x2d96,
  4972. 0x2da0, 0x2da6,
  4973. 0x2da8, 0x2dae,
  4974. 0x2db0, 0x2db6,
  4975. 0x2db8, 0x2dbe,
  4976. 0x2dc0, 0x2dc6,
  4977. 0x2dc8, 0x2dce,
  4978. 0x2dd0, 0x2dd6,
  4979. 0x2dd8, 0x2dde,
  4980. 0x3005, 0x3006,
  4981. 0x3031, 0x3035,
  4982. 0x303b, 0x303c,
  4983. 0x3041, 0x3096,
  4984. 0x309d, 0x309f,
  4985. 0x30a1, 0x30fa,
  4986. 0x30fc, 0x30ff,
  4987. 0x3105, 0x312c,
  4988. 0x3131, 0x318e,
  4989. 0x31a0, 0x31b7,
  4990. 0x31f0, 0x31ff,
  4991. 0x3400, 0x4db5,
  4992. 0x4e00, 0x9fbb,
  4993. 0xa000, 0xa48c,
  4994. 0xa800, 0xa801,
  4995. 0xa803, 0xa805,
  4996. 0xa807, 0xa80a,
  4997. 0xa80c, 0xa822,
  4998. 0xac00, 0xd7a3,
  4999. 0xf900, 0xfa2d,
  5000. 0xfa30, 0xfa6a,
  5001. 0xfa70, 0xfad9,
  5002. 0xfb00, 0xfb06,
  5003. 0xfb13, 0xfb17,
  5004. 0xfb1d, 0xfb1d,
  5005. 0xfb1f, 0xfb28,
  5006. 0xfb2a, 0xfb36,
  5007. 0xfb38, 0xfb3c,
  5008. 0xfb3e, 0xfb3e,
  5009. 0xfb40, 0xfb41,
  5010. 0xfb43, 0xfb44,
  5011. 0xfb46, 0xfbb1,
  5012. 0xfbd3, 0xfd3d,
  5013. 0xfd50, 0xfd8f,
  5014. 0xfd92, 0xfdc7,
  5015. 0xfdf0, 0xfdfb,
  5016. 0xfe70, 0xfe74,
  5017. 0xfe76, 0xfefc,
  5018. 0xff21, 0xff3a,
  5019. 0xff41, 0xff5a,
  5020. 0xff66, 0xffbe,
  5021. 0xffc2, 0xffc7,
  5022. 0xffca, 0xffcf,
  5023. 0xffd2, 0xffd7,
  5024. 0xffda, 0xffdc,
  5025. 0x10000, 0x1000b,
  5026. 0x1000d, 0x10026,
  5027. 0x10028, 0x1003a,
  5028. 0x1003c, 0x1003d,
  5029. 0x1003f, 0x1004d,
  5030. 0x10050, 0x1005d,
  5031. 0x10080, 0x100fa,
  5032. 0x10300, 0x1031e,
  5033. 0x10330, 0x10349,
  5034. 0x10380, 0x1039d,
  5035. 0x103a0, 0x103c3,
  5036. 0x103c8, 0x103cf,
  5037. 0x10400, 0x1049d,
  5038. 0x10800, 0x10805,
  5039. 0x10808, 0x10808,
  5040. 0x1080a, 0x10835,
  5041. 0x10837, 0x10838,
  5042. 0x1083c, 0x1083c,
  5043. 0x1083f, 0x1083f,
  5044. 0x10a00, 0x10a00,
  5045. 0x10a10, 0x10a13,
  5046. 0x10a15, 0x10a17,
  5047. 0x10a19, 0x10a33,
  5048. 0x1d400, 0x1d454,
  5049. 0x1d456, 0x1d49c,
  5050. 0x1d49e, 0x1d49f,
  5051. 0x1d4a2, 0x1d4a2,
  5052. 0x1d4a5, 0x1d4a6,
  5053. 0x1d4a9, 0x1d4ac,
  5054. 0x1d4ae, 0x1d4b9,
  5055. 0x1d4bb, 0x1d4bb,
  5056. 0x1d4bd, 0x1d4c3,
  5057. 0x1d4c5, 0x1d505,
  5058. 0x1d507, 0x1d50a,
  5059. 0x1d50d, 0x1d514,
  5060. 0x1d516, 0x1d51c,
  5061. 0x1d51e, 0x1d539,
  5062. 0x1d53b, 0x1d53e,
  5063. 0x1d540, 0x1d544,
  5064. 0x1d546, 0x1d546,
  5065. 0x1d54a, 0x1d550,
  5066. 0x1d552, 0x1d6a5,
  5067. 0x1d6a8, 0x1d6c0,
  5068. 0x1d6c2, 0x1d6da,
  5069. 0x1d6dc, 0x1d6fa,
  5070. 0x1d6fc, 0x1d714,
  5071. 0x1d716, 0x1d734,
  5072. 0x1d736, 0x1d74e,
  5073. 0x1d750, 0x1d76e,
  5074. 0x1d770, 0x1d788,
  5075. 0x1d78a, 0x1d7a8,
  5076. 0x1d7aa, 0x1d7c2,
  5077. 0x1d7c4, 0x1d7c9,
  5078. 0x20000, 0x2a6d6,
  5079. 0x2f800, 0x2fa1d
  5080. }; /* CR_L */
  5081. /* 'Ll': General Category */
  5082. static const OnigCodePoint CR_Ll[] = {
  5083. 480,
  5084. 0x0061, 0x007a,
  5085. 0x00aa, 0x00aa,
  5086. 0x00b5, 0x00b5,
  5087. 0x00ba, 0x00ba,
  5088. 0x00df, 0x00f6,
  5089. 0x00f8, 0x00ff,
  5090. 0x0101, 0x0101,
  5091. 0x0103, 0x0103,
  5092. 0x0105, 0x0105,
  5093. 0x0107, 0x0107,
  5094. 0x0109, 0x0109,
  5095. 0x010b, 0x010b,
  5096. 0x010d, 0x010d,
  5097. 0x010f, 0x010f,
  5098. 0x0111, 0x0111,
  5099. 0x0113, 0x0113,
  5100. 0x0115, 0x0115,
  5101. 0x0117, 0x0117,
  5102. 0x0119, 0x0119,
  5103. 0x011b, 0x011b,
  5104. 0x011d, 0x011d,
  5105. 0x011f, 0x011f,
  5106. 0x0121, 0x0121,
  5107. 0x0123, 0x0123,
  5108. 0x0125, 0x0125,
  5109. 0x0127, 0x0127,
  5110. 0x0129, 0x0129,
  5111. 0x012b, 0x012b,
  5112. 0x012d, 0x012d,
  5113. 0x012f, 0x012f,
  5114. 0x0131, 0x0131,
  5115. 0x0133, 0x0133,
  5116. 0x0135, 0x0135,
  5117. 0x0137, 0x0138,
  5118. 0x013a, 0x013a,
  5119. 0x013c, 0x013c,
  5120. 0x013e, 0x013e,
  5121. 0x0140, 0x0140,
  5122. 0x0142, 0x0142,
  5123. 0x0144, 0x0144,
  5124. 0x0146, 0x0146,
  5125. 0x0148, 0x0149,
  5126. 0x014b, 0x014b,
  5127. 0x014d, 0x014d,
  5128. 0x014f, 0x014f,
  5129. 0x0151, 0x0151,
  5130. 0x0153, 0x0153,
  5131. 0x0155, 0x0155,
  5132. 0x0157, 0x0157,
  5133. 0x0159, 0x0159,
  5134. 0x015b, 0x015b,
  5135. 0x015d, 0x015d,
  5136. 0x015f, 0x015f,
  5137. 0x0161, 0x0161,
  5138. 0x0163, 0x0163,
  5139. 0x0165, 0x0165,
  5140. 0x0167, 0x0167,
  5141. 0x0169, 0x0169,
  5142. 0x016b, 0x016b,
  5143. 0x016d, 0x016d,
  5144. 0x016f, 0x016f,
  5145. 0x0171, 0x0171,
  5146. 0x0173, 0x0173,
  5147. 0x0175, 0x0175,
  5148. 0x0177, 0x0177,
  5149. 0x017a, 0x017a,
  5150. 0x017c, 0x017c,
  5151. 0x017e, 0x0180,
  5152. 0x0183, 0x0183,
  5153. 0x0185, 0x0185,
  5154. 0x0188, 0x0188,
  5155. 0x018c, 0x018d,
  5156. 0x0192, 0x0192,
  5157. 0x0195, 0x0195,
  5158. 0x0199, 0x019b,
  5159. 0x019e, 0x019e,
  5160. 0x01a1, 0x01a1,
  5161. 0x01a3, 0x01a3,
  5162. 0x01a5, 0x01a5,
  5163. 0x01a8, 0x01a8,
  5164. 0x01aa, 0x01ab,
  5165. 0x01ad, 0x01ad,
  5166. 0x01b0, 0x01b0,
  5167. 0x01b4, 0x01b4,
  5168. 0x01b6, 0x01b6,
  5169. 0x01b9, 0x01ba,
  5170. 0x01bd, 0x01bf,
  5171. 0x01c6, 0x01c6,
  5172. 0x01c9, 0x01c9,
  5173. 0x01cc, 0x01cc,
  5174. 0x01ce, 0x01ce,
  5175. 0x01d0, 0x01d0,
  5176. 0x01d2, 0x01d2,
  5177. 0x01d4, 0x01d4,
  5178. 0x01d6, 0x01d6,
  5179. 0x01d8, 0x01d8,
  5180. 0x01da, 0x01da,
  5181. 0x01dc, 0x01dd,
  5182. 0x01df, 0x01df,
  5183. 0x01e1, 0x01e1,
  5184. 0x01e3, 0x01e3,
  5185. 0x01e5, 0x01e5,
  5186. 0x01e7, 0x01e7,
  5187. 0x01e9, 0x01e9,
  5188. 0x01eb, 0x01eb,
  5189. 0x01ed, 0x01ed,
  5190. 0x01ef, 0x01f0,
  5191. 0x01f3, 0x01f3,
  5192. 0x01f5, 0x01f5,
  5193. 0x01f9, 0x01f9,
  5194. 0x01fb, 0x01fb,
  5195. 0x01fd, 0x01fd,
  5196. 0x01ff, 0x01ff,
  5197. 0x0201, 0x0201,
  5198. 0x0203, 0x0203,
  5199. 0x0205, 0x0205,
  5200. 0x0207, 0x0207,
  5201. 0x0209, 0x0209,
  5202. 0x020b, 0x020b,
  5203. 0x020d, 0x020d,
  5204. 0x020f, 0x020f,
  5205. 0x0211, 0x0211,
  5206. 0x0213, 0x0213,
  5207. 0x0215, 0x0215,
  5208. 0x0217, 0x0217,
  5209. 0x0219, 0x0219,
  5210. 0x021b, 0x021b,
  5211. 0x021d, 0x021d,
  5212. 0x021f, 0x021f,
  5213. 0x0221, 0x0221,
  5214. 0x0223, 0x0223,
  5215. 0x0225, 0x0225,
  5216. 0x0227, 0x0227,
  5217. 0x0229, 0x0229,
  5218. 0x022b, 0x022b,
  5219. 0x022d, 0x022d,
  5220. 0x022f, 0x022f,
  5221. 0x0231, 0x0231,
  5222. 0x0233, 0x0239,
  5223. 0x023c, 0x023c,
  5224. 0x023f, 0x0240,
  5225. 0x0250, 0x02af,
  5226. 0x0390, 0x0390,
  5227. 0x03ac, 0x03ce,
  5228. 0x03d0, 0x03d1,
  5229. 0x03d5, 0x03d7,
  5230. 0x03d9, 0x03d9,
  5231. 0x03db, 0x03db,
  5232. 0x03dd, 0x03dd,
  5233. 0x03df, 0x03df,
  5234. 0x03e1, 0x03e1,
  5235. 0x03e3, 0x03e3,
  5236. 0x03e5, 0x03e5,
  5237. 0x03e7, 0x03e7,
  5238. 0x03e9, 0x03e9,
  5239. 0x03eb, 0x03eb,
  5240. 0x03ed, 0x03ed,
  5241. 0x03ef, 0x03f3,
  5242. 0x03f5, 0x03f5,
  5243. 0x03f8, 0x03f8,
  5244. 0x03fb, 0x03fc,
  5245. 0x0430, 0x045f,
  5246. 0x0461, 0x0461,
  5247. 0x0463, 0x0463,
  5248. 0x0465, 0x0465,
  5249. 0x0467, 0x0467,
  5250. 0x0469, 0x0469,
  5251. 0x046b, 0x046b,
  5252. 0x046d, 0x046d,
  5253. 0x046f, 0x046f,
  5254. 0x0471, 0x0471,
  5255. 0x0473, 0x0473,
  5256. 0x0475, 0x0475,
  5257. 0x0477, 0x0477,
  5258. 0x0479, 0x0479,
  5259. 0x047b, 0x047b,
  5260. 0x047d, 0x047d,
  5261. 0x047f, 0x047f,
  5262. 0x0481, 0x0481,
  5263. 0x048b, 0x048b,
  5264. 0x048d, 0x048d,
  5265. 0x048f, 0x048f,
  5266. 0x0491, 0x0491,
  5267. 0x0493, 0x0493,
  5268. 0x0495, 0x0495,
  5269. 0x0497, 0x0497,
  5270. 0x0499, 0x0499,
  5271. 0x049b, 0x049b,
  5272. 0x049d, 0x049d,
  5273. 0x049f, 0x049f,
  5274. 0x04a1, 0x04a1,
  5275. 0x04a3, 0x04a3,
  5276. 0x04a5, 0x04a5,
  5277. 0x04a7, 0x04a7,
  5278. 0x04a9, 0x04a9,
  5279. 0x04ab, 0x04ab,
  5280. 0x04ad, 0x04ad,
  5281. 0x04af, 0x04af,
  5282. 0x04b1, 0x04b1,
  5283. 0x04b3, 0x04b3,
  5284. 0x04b5, 0x04b5,
  5285. 0x04b7, 0x04b7,
  5286. 0x04b9, 0x04b9,
  5287. 0x04bb, 0x04bb,
  5288. 0x04bd, 0x04bd,
  5289. 0x04bf, 0x04bf,
  5290. 0x04c2, 0x04c2,
  5291. 0x04c4, 0x04c4,
  5292. 0x04c6, 0x04c6,
  5293. 0x04c8, 0x04c8,
  5294. 0x04ca, 0x04ca,
  5295. 0x04cc, 0x04cc,
  5296. 0x04ce, 0x04ce,
  5297. 0x04d1, 0x04d1,
  5298. 0x04d3, 0x04d3,
  5299. 0x04d5, 0x04d5,
  5300. 0x04d7, 0x04d7,
  5301. 0x04d9, 0x04d9,
  5302. 0x04db, 0x04db,
  5303. 0x04dd, 0x04dd,
  5304. 0x04df, 0x04df,
  5305. 0x04e1, 0x04e1,
  5306. 0x04e3, 0x04e3,
  5307. 0x04e5, 0x04e5,
  5308. 0x04e7, 0x04e7,
  5309. 0x04e9, 0x04e9,
  5310. 0x04eb, 0x04eb,
  5311. 0x04ed, 0x04ed,
  5312. 0x04ef, 0x04ef,
  5313. 0x04f1, 0x04f1,
  5314. 0x04f3, 0x04f3,
  5315. 0x04f5, 0x04f5,
  5316. 0x04f7, 0x04f7,
  5317. 0x04f9, 0x04f9,
  5318. 0x0501, 0x0501,
  5319. 0x0503, 0x0503,
  5320. 0x0505, 0x0505,
  5321. 0x0507, 0x0507,
  5322. 0x0509, 0x0509,
  5323. 0x050b, 0x050b,
  5324. 0x050d, 0x050d,
  5325. 0x050f, 0x050f,
  5326. 0x0561, 0x0587,
  5327. 0x1d00, 0x1d2b,
  5328. 0x1d62, 0x1d77,
  5329. 0x1d79, 0x1d9a,
  5330. 0x1e01, 0x1e01,
  5331. 0x1e03, 0x1e03,
  5332. 0x1e05, 0x1e05,
  5333. 0x1e07, 0x1e07,
  5334. 0x1e09, 0x1e09,
  5335. 0x1e0b, 0x1e0b,
  5336. 0x1e0d, 0x1e0d,
  5337. 0x1e0f, 0x1e0f,
  5338. 0x1e11, 0x1e11,
  5339. 0x1e13, 0x1e13,
  5340. 0x1e15, 0x1e15,
  5341. 0x1e17, 0x1e17,
  5342. 0x1e19, 0x1e19,
  5343. 0x1e1b, 0x1e1b,
  5344. 0x1e1d, 0x1e1d,
  5345. 0x1e1f, 0x1e1f,
  5346. 0x1e21, 0x1e21,
  5347. 0x1e23, 0x1e23,
  5348. 0x1e25, 0x1e25,
  5349. 0x1e27, 0x1e27,
  5350. 0x1e29, 0x1e29,
  5351. 0x1e2b, 0x1e2b,
  5352. 0x1e2d, 0x1e2d,
  5353. 0x1e2f, 0x1e2f,
  5354. 0x1e31, 0x1e31,
  5355. 0x1e33, 0x1e33,
  5356. 0x1e35, 0x1e35,
  5357. 0x1e37, 0x1e37,
  5358. 0x1e39, 0x1e39,
  5359. 0x1e3b, 0x1e3b,
  5360. 0x1e3d, 0x1e3d,
  5361. 0x1e3f, 0x1e3f,
  5362. 0x1e41, 0x1e41,
  5363. 0x1e43, 0x1e43,
  5364. 0x1e45, 0x1e45,
  5365. 0x1e47, 0x1e47,
  5366. 0x1e49, 0x1e49,
  5367. 0x1e4b, 0x1e4b,
  5368. 0x1e4d, 0x1e4d,
  5369. 0x1e4f, 0x1e4f,
  5370. 0x1e51, 0x1e51,
  5371. 0x1e53, 0x1e53,
  5372. 0x1e55, 0x1e55,
  5373. 0x1e57, 0x1e57,
  5374. 0x1e59, 0x1e59,
  5375. 0x1e5b, 0x1e5b,
  5376. 0x1e5d, 0x1e5d,
  5377. 0x1e5f, 0x1e5f,
  5378. 0x1e61, 0x1e61,
  5379. 0x1e63, 0x1e63,
  5380. 0x1e65, 0x1e65,
  5381. 0x1e67, 0x1e67,
  5382. 0x1e69, 0x1e69,
  5383. 0x1e6b, 0x1e6b,
  5384. 0x1e6d, 0x1e6d,
  5385. 0x1e6f, 0x1e6f,
  5386. 0x1e71, 0x1e71,
  5387. 0x1e73, 0x1e73,
  5388. 0x1e75, 0x1e75,
  5389. 0x1e77, 0x1e77,
  5390. 0x1e79, 0x1e79,
  5391. 0x1e7b, 0x1e7b,
  5392. 0x1e7d, 0x1e7d,
  5393. 0x1e7f, 0x1e7f,
  5394. 0x1e81, 0x1e81,
  5395. 0x1e83, 0x1e83,
  5396. 0x1e85, 0x1e85,
  5397. 0x1e87, 0x1e87,
  5398. 0x1e89, 0x1e89,
  5399. 0x1e8b, 0x1e8b,
  5400. 0x1e8d, 0x1e8d,
  5401. 0x1e8f, 0x1e8f,
  5402. 0x1e91, 0x1e91,
  5403. 0x1e93, 0x1e93,
  5404. 0x1e95, 0x1e9b,
  5405. 0x1ea1, 0x1ea1,
  5406. 0x1ea3, 0x1ea3,
  5407. 0x1ea5, 0x1ea5,
  5408. 0x1ea7, 0x1ea7,
  5409. 0x1ea9, 0x1ea9,
  5410. 0x1eab, 0x1eab,
  5411. 0x1ead, 0x1ead,
  5412. 0x1eaf, 0x1eaf,
  5413. 0x1eb1, 0x1eb1,
  5414. 0x1eb3, 0x1eb3,
  5415. 0x1eb5, 0x1eb5,
  5416. 0x1eb7, 0x1eb7,
  5417. 0x1eb9, 0x1eb9,
  5418. 0x1ebb, 0x1ebb,
  5419. 0x1ebd, 0x1ebd,
  5420. 0x1ebf, 0x1ebf,
  5421. 0x1ec1, 0x1ec1,
  5422. 0x1ec3, 0x1ec3,
  5423. 0x1ec5, 0x1ec5,
  5424. 0x1ec7, 0x1ec7,
  5425. 0x1ec9, 0x1ec9,
  5426. 0x1ecb, 0x1ecb,
  5427. 0x1ecd, 0x1ecd,
  5428. 0x1ecf, 0x1ecf,
  5429. 0x1ed1, 0x1ed1,
  5430. 0x1ed3, 0x1ed3,
  5431. 0x1ed5, 0x1ed5,
  5432. 0x1ed7, 0x1ed7,
  5433. 0x1ed9, 0x1ed9,
  5434. 0x1edb, 0x1edb,
  5435. 0x1edd, 0x1edd,
  5436. 0x1edf, 0x1edf,
  5437. 0x1ee1, 0x1ee1,
  5438. 0x1ee3, 0x1ee3,
  5439. 0x1ee5, 0x1ee5,
  5440. 0x1ee7, 0x1ee7,
  5441. 0x1ee9, 0x1ee9,
  5442. 0x1eeb, 0x1eeb,
  5443. 0x1eed, 0x1eed,
  5444. 0x1eef, 0x1eef,
  5445. 0x1ef1, 0x1ef1,
  5446. 0x1ef3, 0x1ef3,
  5447. 0x1ef5, 0x1ef5,
  5448. 0x1ef7, 0x1ef7,
  5449. 0x1ef9, 0x1ef9,
  5450. 0x1f00, 0x1f07,
  5451. 0x1f10, 0x1f15,
  5452. 0x1f20, 0x1f27,
  5453. 0x1f30, 0x1f37,
  5454. 0x1f40, 0x1f45,
  5455. 0x1f50, 0x1f57,
  5456. 0x1f60, 0x1f67,
  5457. 0x1f70, 0x1f7d,
  5458. 0x1f80, 0x1f87,
  5459. 0x1f90, 0x1f97,
  5460. 0x1fa0, 0x1fa7,
  5461. 0x1fb0, 0x1fb4,
  5462. 0x1fb6, 0x1fb7,
  5463. 0x1fbe, 0x1fbe,
  5464. 0x1fc2, 0x1fc4,
  5465. 0x1fc6, 0x1fc7,
  5466. 0x1fd0, 0x1fd3,
  5467. 0x1fd6, 0x1fd7,
  5468. 0x1fe0, 0x1fe7,
  5469. 0x1ff2, 0x1ff4,
  5470. 0x1ff6, 0x1ff7,
  5471. 0x2071, 0x2071,
  5472. 0x207f, 0x207f,
  5473. 0x210a, 0x210a,
  5474. 0x210e, 0x210f,
  5475. 0x2113, 0x2113,
  5476. 0x212f, 0x212f,
  5477. 0x2134, 0x2134,
  5478. 0x2139, 0x2139,
  5479. 0x213c, 0x213d,
  5480. 0x2146, 0x2149,
  5481. 0x2c30, 0x2c5e,
  5482. 0x2c81, 0x2c81,
  5483. 0x2c83, 0x2c83,
  5484. 0x2c85, 0x2c85,
  5485. 0x2c87, 0x2c87,
  5486. 0x2c89, 0x2c89,
  5487. 0x2c8b, 0x2c8b,
  5488. 0x2c8d, 0x2c8d,
  5489. 0x2c8f, 0x2c8f,
  5490. 0x2c91, 0x2c91,
  5491. 0x2c93, 0x2c93,
  5492. 0x2c95, 0x2c95,
  5493. 0x2c97, 0x2c97,
  5494. 0x2c99, 0x2c99,
  5495. 0x2c9b, 0x2c9b,
  5496. 0x2c9d, 0x2c9d,
  5497. 0x2c9f, 0x2c9f,
  5498. 0x2ca1, 0x2ca1,
  5499. 0x2ca3, 0x2ca3,
  5500. 0x2ca5, 0x2ca5,
  5501. 0x2ca7, 0x2ca7,
  5502. 0x2ca9, 0x2ca9,
  5503. 0x2cab, 0x2cab,
  5504. 0x2cad, 0x2cad,
  5505. 0x2caf, 0x2caf,
  5506. 0x2cb1, 0x2cb1,
  5507. 0x2cb3, 0x2cb3,
  5508. 0x2cb5, 0x2cb5,
  5509. 0x2cb7, 0x2cb7,
  5510. 0x2cb9, 0x2cb9,
  5511. 0x2cbb, 0x2cbb,
  5512. 0x2cbd, 0x2cbd,
  5513. 0x2cbf, 0x2cbf,
  5514. 0x2cc1, 0x2cc1,
  5515. 0x2cc3, 0x2cc3,
  5516. 0x2cc5, 0x2cc5,
  5517. 0x2cc7, 0x2cc7,
  5518. 0x2cc9, 0x2cc9,
  5519. 0x2ccb, 0x2ccb,
  5520. 0x2ccd, 0x2ccd,
  5521. 0x2ccf, 0x2ccf,
  5522. 0x2cd1, 0x2cd1,
  5523. 0x2cd3, 0x2cd3,
  5524. 0x2cd5, 0x2cd5,
  5525. 0x2cd7, 0x2cd7,
  5526. 0x2cd9, 0x2cd9,
  5527. 0x2cdb, 0x2cdb,
  5528. 0x2cdd, 0x2cdd,
  5529. 0x2cdf, 0x2cdf,
  5530. 0x2ce1, 0x2ce1,
  5531. 0x2ce3, 0x2ce4,
  5532. 0x2d00, 0x2d25,
  5533. 0xfb00, 0xfb06,
  5534. 0xfb13, 0xfb17,
  5535. 0xff41, 0xff5a,
  5536. 0x10428, 0x1044f,
  5537. 0x1d41a, 0x1d433,
  5538. 0x1d44e, 0x1d454,
  5539. 0x1d456, 0x1d467,
  5540. 0x1d482, 0x1d49b,
  5541. 0x1d4b6, 0x1d4b9,
  5542. 0x1d4bb, 0x1d4bb,
  5543. 0x1d4bd, 0x1d4c3,
  5544. 0x1d4c5, 0x1d4cf,
  5545. 0x1d4ea, 0x1d503,
  5546. 0x1d51e, 0x1d537,
  5547. 0x1d552, 0x1d56b,
  5548. 0x1d586, 0x1d59f,
  5549. 0x1d5ba, 0x1d5d3,
  5550. 0x1d5ee, 0x1d607,
  5551. 0x1d622, 0x1d63b,
  5552. 0x1d656, 0x1d66f,
  5553. 0x1d68a, 0x1d6a5,
  5554. 0x1d6c2, 0x1d6da,
  5555. 0x1d6dc, 0x1d6e1,
  5556. 0x1d6fc, 0x1d714,
  5557. 0x1d716, 0x1d71b,
  5558. 0x1d736, 0x1d74e,
  5559. 0x1d750, 0x1d755,
  5560. 0x1d770, 0x1d788,
  5561. 0x1d78a, 0x1d78f,
  5562. 0x1d7aa, 0x1d7c2,
  5563. 0x1d7c4, 0x1d7c9
  5564. }; /* CR_Ll */
  5565. /* 'Lm': General Category */
  5566. static const OnigCodePoint CR_Lm[] = {
  5567. 26,
  5568. 0x02b0, 0x02c1,
  5569. 0x02c6, 0x02d1,
  5570. 0x02e0, 0x02e4,
  5571. 0x02ee, 0x02ee,
  5572. 0x037a, 0x037a,
  5573. 0x0559, 0x0559,
  5574. 0x0640, 0x0640,
  5575. 0x06e5, 0x06e6,
  5576. 0x0e46, 0x0e46,
  5577. 0x0ec6, 0x0ec6,
  5578. 0x10fc, 0x10fc,
  5579. 0x17d7, 0x17d7,
  5580. 0x1843, 0x1843,
  5581. 0x1d2c, 0x1d61,
  5582. 0x1d78, 0x1d78,
  5583. 0x1d9b, 0x1dbf,
  5584. 0x2090, 0x2094,
  5585. 0x2d6f, 0x2d6f,
  5586. 0x3005, 0x3005,
  5587. 0x3031, 0x3035,
  5588. 0x303b, 0x303b,
  5589. 0x309d, 0x309e,
  5590. 0x30fc, 0x30fe,
  5591. 0xa015, 0xa015,
  5592. 0xff70, 0xff70,
  5593. 0xff9e, 0xff9f
  5594. }; /* CR_Lm */
  5595. /* 'Lo': General Category */
  5596. static const OnigCodePoint CR_Lo[] = {
  5597. 245,
  5598. 0x01bb, 0x01bb,
  5599. 0x01c0, 0x01c3,
  5600. 0x05d0, 0x05ea,
  5601. 0x05f0, 0x05f2,
  5602. 0x0621, 0x063a,
  5603. 0x0641, 0x064a,
  5604. 0x066e, 0x066f,
  5605. 0x0671, 0x06d3,
  5606. 0x06d5, 0x06d5,
  5607. 0x06ee, 0x06ef,
  5608. 0x06fa, 0x06fc,
  5609. 0x06ff, 0x06ff,
  5610. 0x0710, 0x0710,
  5611. 0x0712, 0x072f,
  5612. 0x074d, 0x076d,
  5613. 0x0780, 0x07a5,
  5614. 0x07b1, 0x07b1,
  5615. 0x0904, 0x0939,
  5616. 0x093d, 0x093d,
  5617. 0x0950, 0x0950,
  5618. 0x0958, 0x0961,
  5619. 0x097d, 0x097d,
  5620. 0x0985, 0x098c,
  5621. 0x098f, 0x0990,
  5622. 0x0993, 0x09a8,
  5623. 0x09aa, 0x09b0,
  5624. 0x09b2, 0x09b2,
  5625. 0x09b6, 0x09b9,
  5626. 0x09bd, 0x09bd,
  5627. 0x09ce, 0x09ce,
  5628. 0x09dc, 0x09dd,
  5629. 0x09df, 0x09e1,
  5630. 0x09f0, 0x09f1,
  5631. 0x0a05, 0x0a0a,
  5632. 0x0a0f, 0x0a10,
  5633. 0x0a13, 0x0a28,
  5634. 0x0a2a, 0x0a30,
  5635. 0x0a32, 0x0a33,
  5636. 0x0a35, 0x0a36,
  5637. 0x0a38, 0x0a39,
  5638. 0x0a59, 0x0a5c,
  5639. 0x0a5e, 0x0a5e,
  5640. 0x0a72, 0x0a74,
  5641. 0x0a85, 0x0a8d,
  5642. 0x0a8f, 0x0a91,
  5643. 0x0a93, 0x0aa8,
  5644. 0x0aaa, 0x0ab0,
  5645. 0x0ab2, 0x0ab3,
  5646. 0x0ab5, 0x0ab9,
  5647. 0x0abd, 0x0abd,
  5648. 0x0ad0, 0x0ad0,
  5649. 0x0ae0, 0x0ae1,
  5650. 0x0b05, 0x0b0c,
  5651. 0x0b0f, 0x0b10,
  5652. 0x0b13, 0x0b28,
  5653. 0x0b2a, 0x0b30,
  5654. 0x0b32, 0x0b33,
  5655. 0x0b35, 0x0b39,
  5656. 0x0b3d, 0x0b3d,
  5657. 0x0b5c, 0x0b5d,
  5658. 0x0b5f, 0x0b61,
  5659. 0x0b71, 0x0b71,
  5660. 0x0b83, 0x0b83,
  5661. 0x0b85, 0x0b8a,
  5662. 0x0b8e, 0x0b90,
  5663. 0x0b92, 0x0b95,
  5664. 0x0b99, 0x0b9a,
  5665. 0x0b9c, 0x0b9c,
  5666. 0x0b9e, 0x0b9f,
  5667. 0x0ba3, 0x0ba4,
  5668. 0x0ba8, 0x0baa,
  5669. 0x0bae, 0x0bb9,
  5670. 0x0c05, 0x0c0c,
  5671. 0x0c0e, 0x0c10,
  5672. 0x0c12, 0x0c28,
  5673. 0x0c2a, 0x0c33,
  5674. 0x0c35, 0x0c39,
  5675. 0x0c60, 0x0c61,
  5676. 0x0c85, 0x0c8c,
  5677. 0x0c8e, 0x0c90,
  5678. 0x0c92, 0x0ca8,
  5679. 0x0caa, 0x0cb3,
  5680. 0x0cb5, 0x0cb9,
  5681. 0x0cbd, 0x0cbd,
  5682. 0x0cde, 0x0cde,
  5683. 0x0ce0, 0x0ce1,
  5684. 0x0d05, 0x0d0c,
  5685. 0x0d0e, 0x0d10,
  5686. 0x0d12, 0x0d28,
  5687. 0x0d2a, 0x0d39,
  5688. 0x0d60, 0x0d61,
  5689. 0x0d85, 0x0d96,
  5690. 0x0d9a, 0x0db1,
  5691. 0x0db3, 0x0dbb,
  5692. 0x0dbd, 0x0dbd,
  5693. 0x0dc0, 0x0dc6,
  5694. 0x0e01, 0x0e30,
  5695. 0x0e32, 0x0e33,
  5696. 0x0e40, 0x0e45,
  5697. 0x0e81, 0x0e82,
  5698. 0x0e84, 0x0e84,
  5699. 0x0e87, 0x0e88,
  5700. 0x0e8a, 0x0e8a,
  5701. 0x0e8d, 0x0e8d,
  5702. 0x0e94, 0x0e97,
  5703. 0x0e99, 0x0e9f,
  5704. 0x0ea1, 0x0ea3,
  5705. 0x0ea5, 0x0ea5,
  5706. 0x0ea7, 0x0ea7,
  5707. 0x0eaa, 0x0eab,
  5708. 0x0ead, 0x0eb0,
  5709. 0x0eb2, 0x0eb3,
  5710. 0x0ebd, 0x0ebd,
  5711. 0x0ec0, 0x0ec4,
  5712. 0x0edc, 0x0edd,
  5713. 0x0f00, 0x0f00,
  5714. 0x0f40, 0x0f47,
  5715. 0x0f49, 0x0f6a,
  5716. 0x0f88, 0x0f8b,
  5717. 0x1000, 0x1021,
  5718. 0x1023, 0x1027,
  5719. 0x1029, 0x102a,
  5720. 0x1050, 0x1055,
  5721. 0x10d0, 0x10fa,
  5722. 0x1100, 0x1159,
  5723. 0x115f, 0x11a2,
  5724. 0x11a8, 0x11f9,
  5725. 0x1200, 0x1248,
  5726. 0x124a, 0x124d,
  5727. 0x1250, 0x1256,
  5728. 0x1258, 0x1258,
  5729. 0x125a, 0x125d,
  5730. 0x1260, 0x1288,
  5731. 0x128a, 0x128d,
  5732. 0x1290, 0x12b0,
  5733. 0x12b2, 0x12b5,
  5734. 0x12b8, 0x12be,
  5735. 0x12c0, 0x12c0,
  5736. 0x12c2, 0x12c5,
  5737. 0x12c8, 0x12d6,
  5738. 0x12d8, 0x1310,
  5739. 0x1312, 0x1315,
  5740. 0x1318, 0x135a,
  5741. 0x1380, 0x138f,
  5742. 0x13a0, 0x13f4,
  5743. 0x1401, 0x166c,
  5744. 0x166f, 0x1676,
  5745. 0x1681, 0x169a,
  5746. 0x16a0, 0x16ea,
  5747. 0x1700, 0x170c,
  5748. 0x170e, 0x1711,
  5749. 0x1720, 0x1731,
  5750. 0x1740, 0x1751,
  5751. 0x1760, 0x176c,
  5752. 0x176e, 0x1770,
  5753. 0x1780, 0x17b3,
  5754. 0x17dc, 0x17dc,
  5755. 0x1820, 0x1842,
  5756. 0x1844, 0x1877,
  5757. 0x1880, 0x18a8,
  5758. 0x1900, 0x191c,
  5759. 0x1950, 0x196d,
  5760. 0x1970, 0x1974,
  5761. 0x1980, 0x19a9,
  5762. 0x19c1, 0x19c7,
  5763. 0x1a00, 0x1a16,
  5764. 0x2135, 0x2138,
  5765. 0x2d30, 0x2d65,
  5766. 0x2d80, 0x2d96,
  5767. 0x2da0, 0x2da6,
  5768. 0x2da8, 0x2dae,
  5769. 0x2db0, 0x2db6,
  5770. 0x2db8, 0x2dbe,
  5771. 0x2dc0, 0x2dc6,
  5772. 0x2dc8, 0x2dce,
  5773. 0x2dd0, 0x2dd6,
  5774. 0x2dd8, 0x2dde,
  5775. 0x3006, 0x3006,
  5776. 0x303c, 0x303c,
  5777. 0x3041, 0x3096,
  5778. 0x309f, 0x309f,
  5779. 0x30a1, 0x30fa,
  5780. 0x30ff, 0x30ff,
  5781. 0x3105, 0x312c,
  5782. 0x3131, 0x318e,
  5783. 0x31a0, 0x31b7,
  5784. 0x31f0, 0x31ff,
  5785. 0x3400, 0x4db5,
  5786. 0x4e00, 0x9fbb,
  5787. 0xa000, 0xa014,
  5788. 0xa016, 0xa48c,
  5789. 0xa800, 0xa801,
  5790. 0xa803, 0xa805,
  5791. 0xa807, 0xa80a,
  5792. 0xa80c, 0xa822,
  5793. 0xac00, 0xd7a3,
  5794. 0xf900, 0xfa2d,
  5795. 0xfa30, 0xfa6a,
  5796. 0xfa70, 0xfad9,
  5797. 0xfb1d, 0xfb1d,
  5798. 0xfb1f, 0xfb28,
  5799. 0xfb2a, 0xfb36,
  5800. 0xfb38, 0xfb3c,
  5801. 0xfb3e, 0xfb3e,
  5802. 0xfb40, 0xfb41,
  5803. 0xfb43, 0xfb44,
  5804. 0xfb46, 0xfbb1,
  5805. 0xfbd3, 0xfd3d,
  5806. 0xfd50, 0xfd8f,
  5807. 0xfd92, 0xfdc7,
  5808. 0xfdf0, 0xfdfb,
  5809. 0xfe70, 0xfe74,
  5810. 0xfe76, 0xfefc,
  5811. 0xff66, 0xff6f,
  5812. 0xff71, 0xff9d,
  5813. 0xffa0, 0xffbe,
  5814. 0xffc2, 0xffc7,
  5815. 0xffca, 0xffcf,
  5816. 0xffd2, 0xffd7,
  5817. 0xffda, 0xffdc,
  5818. 0x10000, 0x1000b,
  5819. 0x1000d, 0x10026,
  5820. 0x10028, 0x1003a,
  5821. 0x1003c, 0x1003d,
  5822. 0x1003f, 0x1004d,
  5823. 0x10050, 0x1005d,
  5824. 0x10080, 0x100fa,
  5825. 0x10300, 0x1031e,
  5826. 0x10330, 0x10349,
  5827. 0x10380, 0x1039d,
  5828. 0x103a0, 0x103c3,
  5829. 0x103c8, 0x103cf,
  5830. 0x10450, 0x1049d,
  5831. 0x10800, 0x10805,
  5832. 0x10808, 0x10808,
  5833. 0x1080a, 0x10835,
  5834. 0x10837, 0x10838,
  5835. 0x1083c, 0x1083c,
  5836. 0x1083f, 0x1083f,
  5837. 0x10a00, 0x10a00,
  5838. 0x10a10, 0x10a13,
  5839. 0x10a15, 0x10a17,
  5840. 0x10a19, 0x10a33,
  5841. 0x20000, 0x2a6d6,
  5842. 0x2f800, 0x2fa1d
  5843. }; /* CR_Lo */
  5844. /* 'Lt': General Category */
  5845. static const OnigCodePoint CR_Lt[] = {
  5846. 10,
  5847. 0x01c5, 0x01c5,
  5848. 0x01c8, 0x01c8,
  5849. 0x01cb, 0x01cb,
  5850. 0x01f2, 0x01f2,
  5851. 0x1f88, 0x1f8f,
  5852. 0x1f98, 0x1f9f,
  5853. 0x1fa8, 0x1faf,
  5854. 0x1fbc, 0x1fbc,
  5855. 0x1fcc, 0x1fcc,
  5856. 0x1ffc, 0x1ffc
  5857. }; /* CR_Lt */
  5858. /* 'Lu': General Category */
  5859. static const OnigCodePoint CR_Lu[] = {
  5860. 476,
  5861. 0x0041, 0x005a,
  5862. 0x00c0, 0x00d6,
  5863. 0x00d8, 0x00de,
  5864. 0x0100, 0x0100,
  5865. 0x0102, 0x0102,
  5866. 0x0104, 0x0104,
  5867. 0x0106, 0x0106,
  5868. 0x0108, 0x0108,
  5869. 0x010a, 0x010a,
  5870. 0x010c, 0x010c,
  5871. 0x010e, 0x010e,
  5872. 0x0110, 0x0110,
  5873. 0x0112, 0x0112,
  5874. 0x0114, 0x0114,
  5875. 0x0116, 0x0116,
  5876. 0x0118, 0x0118,
  5877. 0x011a, 0x011a,
  5878. 0x011c, 0x011c,
  5879. 0x011e, 0x011e,
  5880. 0x0120, 0x0120,
  5881. 0x0122, 0x0122,
  5882. 0x0124, 0x0124,
  5883. 0x0126, 0x0126,
  5884. 0x0128, 0x0128,
  5885. 0x012a, 0x012a,
  5886. 0x012c, 0x012c,
  5887. 0x012e, 0x012e,
  5888. 0x0130, 0x0130,
  5889. 0x0132, 0x0132,
  5890. 0x0134, 0x0134,
  5891. 0x0136, 0x0136,
  5892. 0x0139, 0x0139,
  5893. 0x013b, 0x013b,
  5894. 0x013d, 0x013d,
  5895. 0x013f, 0x013f,
  5896. 0x0141, 0x0141,
  5897. 0x0143, 0x0143,
  5898. 0x0145, 0x0145,
  5899. 0x0147, 0x0147,
  5900. 0x014a, 0x014a,
  5901. 0x014c, 0x014c,
  5902. 0x014e, 0x014e,
  5903. 0x0150, 0x0150,
  5904. 0x0152, 0x0152,
  5905. 0x0154, 0x0154,
  5906. 0x0156, 0x0156,
  5907. 0x0158, 0x0158,
  5908. 0x015a, 0x015a,
  5909. 0x015c, 0x015c,
  5910. 0x015e, 0x015e,
  5911. 0x0160, 0x0160,
  5912. 0x0162, 0x0162,
  5913. 0x0164, 0x0164,
  5914. 0x0166, 0x0166,
  5915. 0x0168, 0x0168,
  5916. 0x016a, 0x016a,
  5917. 0x016c, 0x016c,
  5918. 0x016e, 0x016e,
  5919. 0x0170, 0x0170,
  5920. 0x0172, 0x0172,
  5921. 0x0174, 0x0174,
  5922. 0x0176, 0x0176,
  5923. 0x0178, 0x0179,
  5924. 0x017b, 0x017b,
  5925. 0x017d, 0x017d,
  5926. 0x0181, 0x0182,
  5927. 0x0184, 0x0184,
  5928. 0x0186, 0x0187,
  5929. 0x0189, 0x018b,
  5930. 0x018e, 0x0191,
  5931. 0x0193, 0x0194,
  5932. 0x0196, 0x0198,
  5933. 0x019c, 0x019d,
  5934. 0x019f, 0x01a0,
  5935. 0x01a2, 0x01a2,
  5936. 0x01a4, 0x01a4,
  5937. 0x01a6, 0x01a7,
  5938. 0x01a9, 0x01a9,
  5939. 0x01ac, 0x01ac,
  5940. 0x01ae, 0x01af,
  5941. 0x01b1, 0x01b3,
  5942. 0x01b5, 0x01b5,
  5943. 0x01b7, 0x01b8,
  5944. 0x01bc, 0x01bc,
  5945. 0x01c4, 0x01c4,
  5946. 0x01c7, 0x01c7,
  5947. 0x01ca, 0x01ca,
  5948. 0x01cd, 0x01cd,
  5949. 0x01cf, 0x01cf,
  5950. 0x01d1, 0x01d1,
  5951. 0x01d3, 0x01d3,
  5952. 0x01d5, 0x01d5,
  5953. 0x01d7, 0x01d7,
  5954. 0x01d9, 0x01d9,
  5955. 0x01db, 0x01db,
  5956. 0x01de, 0x01de,
  5957. 0x01e0, 0x01e0,
  5958. 0x01e2, 0x01e2,
  5959. 0x01e4, 0x01e4,
  5960. 0x01e6, 0x01e6,
  5961. 0x01e8, 0x01e8,
  5962. 0x01ea, 0x01ea,
  5963. 0x01ec, 0x01ec,
  5964. 0x01ee, 0x01ee,
  5965. 0x01f1, 0x01f1,
  5966. 0x01f4, 0x01f4,
  5967. 0x01f6, 0x01f8,
  5968. 0x01fa, 0x01fa,
  5969. 0x01fc, 0x01fc,
  5970. 0x01fe, 0x01fe,
  5971. 0x0200, 0x0200,
  5972. 0x0202, 0x0202,
  5973. 0x0204, 0x0204,
  5974. 0x0206, 0x0206,
  5975. 0x0208, 0x0208,
  5976. 0x020a, 0x020a,
  5977. 0x020c, 0x020c,
  5978. 0x020e, 0x020e,
  5979. 0x0210, 0x0210,
  5980. 0x0212, 0x0212,
  5981. 0x0214, 0x0214,
  5982. 0x0216, 0x0216,
  5983. 0x0218, 0x0218,
  5984. 0x021a, 0x021a,
  5985. 0x021c, 0x021c,
  5986. 0x021e, 0x021e,
  5987. 0x0220, 0x0220,
  5988. 0x0222, 0x0222,
  5989. 0x0224, 0x0224,
  5990. 0x0226, 0x0226,
  5991. 0x0228, 0x0228,
  5992. 0x022a, 0x022a,
  5993. 0x022c, 0x022c,
  5994. 0x022e, 0x022e,
  5995. 0x0230, 0x0230,
  5996. 0x0232, 0x0232,
  5997. 0x023a, 0x023b,
  5998. 0x023d, 0x023e,
  5999. 0x0241, 0x0241,
  6000. 0x0386, 0x0386,
  6001. 0x0388, 0x038a,
  6002. 0x038c, 0x038c,
  6003. 0x038e, 0x038f,
  6004. 0x0391, 0x03a1,
  6005. 0x03a3, 0x03ab,
  6006. 0x03d2, 0x03d4,
  6007. 0x03d8, 0x03d8,
  6008. 0x03da, 0x03da,
  6009. 0x03dc, 0x03dc,
  6010. 0x03de, 0x03de,
  6011. 0x03e0, 0x03e0,
  6012. 0x03e2, 0x03e2,
  6013. 0x03e4, 0x03e4,
  6014. 0x03e6, 0x03e6,
  6015. 0x03e8, 0x03e8,
  6016. 0x03ea, 0x03ea,
  6017. 0x03ec, 0x03ec,
  6018. 0x03ee, 0x03ee,
  6019. 0x03f4, 0x03f4,
  6020. 0x03f7, 0x03f7,
  6021. 0x03f9, 0x03fa,
  6022. 0x03fd, 0x042f,
  6023. 0x0460, 0x0460,
  6024. 0x0462, 0x0462,
  6025. 0x0464, 0x0464,
  6026. 0x0466, 0x0466,
  6027. 0x0468, 0x0468,
  6028. 0x046a, 0x046a,
  6029. 0x046c, 0x046c,
  6030. 0x046e, 0x046e,
  6031. 0x0470, 0x0470,
  6032. 0x0472, 0x0472,
  6033. 0x0474, 0x0474,
  6034. 0x0476, 0x0476,
  6035. 0x0478, 0x0478,
  6036. 0x047a, 0x047a,
  6037. 0x047c, 0x047c,
  6038. 0x047e, 0x047e,
  6039. 0x0480, 0x0480,
  6040. 0x048a, 0x048a,
  6041. 0x048c, 0x048c,
  6042. 0x048e, 0x048e,
  6043. 0x0490, 0x0490,
  6044. 0x0492, 0x0492,
  6045. 0x0494, 0x0494,
  6046. 0x0496, 0x0496,
  6047. 0x0498, 0x0498,
  6048. 0x049a, 0x049a,
  6049. 0x049c, 0x049c,
  6050. 0x049e, 0x049e,
  6051. 0x04a0, 0x04a0,
  6052. 0x04a2, 0x04a2,
  6053. 0x04a4, 0x04a4,
  6054. 0x04a6, 0x04a6,
  6055. 0x04a8, 0x04a8,
  6056. 0x04aa, 0x04aa,
  6057. 0x04ac, 0x04ac,
  6058. 0x04ae, 0x04ae,
  6059. 0x04b0, 0x04b0,
  6060. 0x04b2, 0x04b2,
  6061. 0x04b4, 0x04b4,
  6062. 0x04b6, 0x04b6,
  6063. 0x04b8, 0x04b8,
  6064. 0x04ba, 0x04ba,
  6065. 0x04bc, 0x04bc,
  6066. 0x04be, 0x04be,
  6067. 0x04c0, 0x04c1,
  6068. 0x04c3, 0x04c3,
  6069. 0x04c5, 0x04c5,
  6070. 0x04c7, 0x04c7,
  6071. 0x04c9, 0x04c9,
  6072. 0x04cb, 0x04cb,
  6073. 0x04cd, 0x04cd,
  6074. 0x04d0, 0x04d0,
  6075. 0x04d2, 0x04d2,
  6076. 0x04d4, 0x04d4,
  6077. 0x04d6, 0x04d6,
  6078. 0x04d8, 0x04d8,
  6079. 0x04da, 0x04da,
  6080. 0x04dc, 0x04dc,
  6081. 0x04de, 0x04de,
  6082. 0x04e0, 0x04e0,
  6083. 0x04e2, 0x04e2,
  6084. 0x04e4, 0x04e4,
  6085. 0x04e6, 0x04e6,
  6086. 0x04e8, 0x04e8,
  6087. 0x04ea, 0x04ea,
  6088. 0x04ec, 0x04ec,
  6089. 0x04ee, 0x04ee,
  6090. 0x04f0, 0x04f0,
  6091. 0x04f2, 0x04f2,
  6092. 0x04f4, 0x04f4,
  6093. 0x04f6, 0x04f6,
  6094. 0x04f8, 0x04f8,
  6095. 0x0500, 0x0500,
  6096. 0x0502, 0x0502,
  6097. 0x0504, 0x0504,
  6098. 0x0506, 0x0506,
  6099. 0x0508, 0x0508,
  6100. 0x050a, 0x050a,
  6101. 0x050c, 0x050c,
  6102. 0x050e, 0x050e,
  6103. 0x0531, 0x0556,
  6104. 0x10a0, 0x10c5,
  6105. 0x1e00, 0x1e00,
  6106. 0x1e02, 0x1e02,
  6107. 0x1e04, 0x1e04,
  6108. 0x1e06, 0x1e06,
  6109. 0x1e08, 0x1e08,
  6110. 0x1e0a, 0x1e0a,
  6111. 0x1e0c, 0x1e0c,
  6112. 0x1e0e, 0x1e0e,
  6113. 0x1e10, 0x1e10,
  6114. 0x1e12, 0x1e12,
  6115. 0x1e14, 0x1e14,
  6116. 0x1e16, 0x1e16,
  6117. 0x1e18, 0x1e18,
  6118. 0x1e1a, 0x1e1a,
  6119. 0x1e1c, 0x1e1c,
  6120. 0x1e1e, 0x1e1e,
  6121. 0x1e20, 0x1e20,
  6122. 0x1e22, 0x1e22,
  6123. 0x1e24, 0x1e24,
  6124. 0x1e26, 0x1e26,
  6125. 0x1e28, 0x1e28,
  6126. 0x1e2a, 0x1e2a,
  6127. 0x1e2c, 0x1e2c,
  6128. 0x1e2e, 0x1e2e,
  6129. 0x1e30, 0x1e30,
  6130. 0x1e32, 0x1e32,
  6131. 0x1e34, 0x1e34,
  6132. 0x1e36, 0x1e36,
  6133. 0x1e38, 0x1e38,
  6134. 0x1e3a, 0x1e3a,
  6135. 0x1e3c, 0x1e3c,
  6136. 0x1e3e, 0x1e3e,
  6137. 0x1e40, 0x1e40,
  6138. 0x1e42, 0x1e42,
  6139. 0x1e44, 0x1e44,
  6140. 0x1e46, 0x1e46,
  6141. 0x1e48, 0x1e48,
  6142. 0x1e4a, 0x1e4a,
  6143. 0x1e4c, 0x1e4c,
  6144. 0x1e4e, 0x1e4e,
  6145. 0x1e50, 0x1e50,
  6146. 0x1e52, 0x1e52,
  6147. 0x1e54, 0x1e54,
  6148. 0x1e56, 0x1e56,
  6149. 0x1e58, 0x1e58,
  6150. 0x1e5a, 0x1e5a,
  6151. 0x1e5c, 0x1e5c,
  6152. 0x1e5e, 0x1e5e,
  6153. 0x1e60, 0x1e60,
  6154. 0x1e62, 0x1e62,
  6155. 0x1e64, 0x1e64,
  6156. 0x1e66, 0x1e66,
  6157. 0x1e68, 0x1e68,
  6158. 0x1e6a, 0x1e6a,
  6159. 0x1e6c, 0x1e6c,
  6160. 0x1e6e, 0x1e6e,
  6161. 0x1e70, 0x1e70,
  6162. 0x1e72, 0x1e72,
  6163. 0x1e74, 0x1e74,
  6164. 0x1e76, 0x1e76,
  6165. 0x1e78, 0x1e78,
  6166. 0x1e7a, 0x1e7a,
  6167. 0x1e7c, 0x1e7c,
  6168. 0x1e7e, 0x1e7e,
  6169. 0x1e80, 0x1e80,
  6170. 0x1e82, 0x1e82,
  6171. 0x1e84, 0x1e84,
  6172. 0x1e86, 0x1e86,
  6173. 0x1e88, 0x1e88,
  6174. 0x1e8a, 0x1e8a,
  6175. 0x1e8c, 0x1e8c,
  6176. 0x1e8e, 0x1e8e,
  6177. 0x1e90, 0x1e90,
  6178. 0x1e92, 0x1e92,
  6179. 0x1e94, 0x1e94,
  6180. 0x1ea0, 0x1ea0,
  6181. 0x1ea2, 0x1ea2,
  6182. 0x1ea4, 0x1ea4,
  6183. 0x1ea6, 0x1ea6,
  6184. 0x1ea8, 0x1ea8,
  6185. 0x1eaa, 0x1eaa,
  6186. 0x1eac, 0x1eac,
  6187. 0x1eae, 0x1eae,
  6188. 0x1eb0, 0x1eb0,
  6189. 0x1eb2, 0x1eb2,
  6190. 0x1eb4, 0x1eb4,
  6191. 0x1eb6, 0x1eb6,
  6192. 0x1eb8, 0x1eb8,
  6193. 0x1eba, 0x1eba,
  6194. 0x1ebc, 0x1ebc,
  6195. 0x1ebe, 0x1ebe,
  6196. 0x1ec0, 0x1ec0,
  6197. 0x1ec2, 0x1ec2,
  6198. 0x1ec4, 0x1ec4,
  6199. 0x1ec6, 0x1ec6,
  6200. 0x1ec8, 0x1ec8,
  6201. 0x1eca, 0x1eca,
  6202. 0x1ecc, 0x1ecc,
  6203. 0x1ece, 0x1ece,
  6204. 0x1ed0, 0x1ed0,
  6205. 0x1ed2, 0x1ed2,
  6206. 0x1ed4, 0x1ed4,
  6207. 0x1ed6, 0x1ed6,
  6208. 0x1ed8, 0x1ed8,
  6209. 0x1eda, 0x1eda,
  6210. 0x1edc, 0x1edc,
  6211. 0x1ede, 0x1ede,
  6212. 0x1ee0, 0x1ee0,
  6213. 0x1ee2, 0x1ee2,
  6214. 0x1ee4, 0x1ee4,
  6215. 0x1ee6, 0x1ee6,
  6216. 0x1ee8, 0x1ee8,
  6217. 0x1eea, 0x1eea,
  6218. 0x1eec, 0x1eec,
  6219. 0x1eee, 0x1eee,
  6220. 0x1ef0, 0x1ef0,
  6221. 0x1ef2, 0x1ef2,
  6222. 0x1ef4, 0x1ef4,
  6223. 0x1ef6, 0x1ef6,
  6224. 0x1ef8, 0x1ef8,
  6225. 0x1f08, 0x1f0f,
  6226. 0x1f18, 0x1f1d,
  6227. 0x1f28, 0x1f2f,
  6228. 0x1f38, 0x1f3f,
  6229. 0x1f48, 0x1f4d,
  6230. 0x1f59, 0x1f59,
  6231. 0x1f5b, 0x1f5b,
  6232. 0x1f5d, 0x1f5d,
  6233. 0x1f5f, 0x1f5f,
  6234. 0x1f68, 0x1f6f,
  6235. 0x1fb8, 0x1fbb,
  6236. 0x1fc8, 0x1fcb,
  6237. 0x1fd8, 0x1fdb,
  6238. 0x1fe8, 0x1fec,
  6239. 0x1ff8, 0x1ffb,
  6240. 0x2102, 0x2102,
  6241. 0x2107, 0x2107,
  6242. 0x210b, 0x210d,
  6243. 0x2110, 0x2112,
  6244. 0x2115, 0x2115,
  6245. 0x2119, 0x211d,
  6246. 0x2124, 0x2124,
  6247. 0x2126, 0x2126,
  6248. 0x2128, 0x2128,
  6249. 0x212a, 0x212d,
  6250. 0x2130, 0x2131,
  6251. 0x2133, 0x2133,
  6252. 0x213e, 0x213f,
  6253. 0x2145, 0x2145,
  6254. 0x2c00, 0x2c2e,
  6255. 0x2c80, 0x2c80,
  6256. 0x2c82, 0x2c82,
  6257. 0x2c84, 0x2c84,
  6258. 0x2c86, 0x2c86,
  6259. 0x2c88, 0x2c88,
  6260. 0x2c8a, 0x2c8a,
  6261. 0x2c8c, 0x2c8c,
  6262. 0x2c8e, 0x2c8e,
  6263. 0x2c90, 0x2c90,
  6264. 0x2c92, 0x2c92,
  6265. 0x2c94, 0x2c94,
  6266. 0x2c96, 0x2c96,
  6267. 0x2c98, 0x2c98,
  6268. 0x2c9a, 0x2c9a,
  6269. 0x2c9c, 0x2c9c,
  6270. 0x2c9e, 0x2c9e,
  6271. 0x2ca0, 0x2ca0,
  6272. 0x2ca2, 0x2ca2,
  6273. 0x2ca4, 0x2ca4,
  6274. 0x2ca6, 0x2ca6,
  6275. 0x2ca8, 0x2ca8,
  6276. 0x2caa, 0x2caa,
  6277. 0x2cac, 0x2cac,
  6278. 0x2cae, 0x2cae,
  6279. 0x2cb0, 0x2cb0,
  6280. 0x2cb2, 0x2cb2,
  6281. 0x2cb4, 0x2cb4,
  6282. 0x2cb6, 0x2cb6,
  6283. 0x2cb8, 0x2cb8,
  6284. 0x2cba, 0x2cba,
  6285. 0x2cbc, 0x2cbc,
  6286. 0x2cbe, 0x2cbe,
  6287. 0x2cc0, 0x2cc0,
  6288. 0x2cc2, 0x2cc2,
  6289. 0x2cc4, 0x2cc4,
  6290. 0x2cc6, 0x2cc6,
  6291. 0x2cc8, 0x2cc8,
  6292. 0x2cca, 0x2cca,
  6293. 0x2ccc, 0x2ccc,
  6294. 0x2cce, 0x2cce,
  6295. 0x2cd0, 0x2cd0,
  6296. 0x2cd2, 0x2cd2,
  6297. 0x2cd4, 0x2cd4,
  6298. 0x2cd6, 0x2cd6,
  6299. 0x2cd8, 0x2cd8,
  6300. 0x2cda, 0x2cda,
  6301. 0x2cdc, 0x2cdc,
  6302. 0x2cde, 0x2cde,
  6303. 0x2ce0, 0x2ce0,
  6304. 0x2ce2, 0x2ce2,
  6305. 0xff21, 0xff3a,
  6306. 0x10400, 0x10427,
  6307. 0x1d400, 0x1d419,
  6308. 0x1d434, 0x1d44d,
  6309. 0x1d468, 0x1d481,
  6310. 0x1d49c, 0x1d49c,
  6311. 0x1d49e, 0x1d49f,
  6312. 0x1d4a2, 0x1d4a2,
  6313. 0x1d4a5, 0x1d4a6,
  6314. 0x1d4a9, 0x1d4ac,
  6315. 0x1d4ae, 0x1d4b5,
  6316. 0x1d4d0, 0x1d4e9,
  6317. 0x1d504, 0x1d505,
  6318. 0x1d507, 0x1d50a,
  6319. 0x1d50d, 0x1d514,
  6320. 0x1d516, 0x1d51c,
  6321. 0x1d538, 0x1d539,
  6322. 0x1d53b, 0x1d53e,
  6323. 0x1d540, 0x1d544,
  6324. 0x1d546, 0x1d546,
  6325. 0x1d54a, 0x1d550,
  6326. 0x1d56c, 0x1d585,
  6327. 0x1d5a0, 0x1d5b9,
  6328. 0x1d5d4, 0x1d5ed,
  6329. 0x1d608, 0x1d621,
  6330. 0x1d63c, 0x1d655,
  6331. 0x1d670, 0x1d689,
  6332. 0x1d6a8, 0x1d6c0,
  6333. 0x1d6e2, 0x1d6fa,
  6334. 0x1d71c, 0x1d734,
  6335. 0x1d756, 0x1d76e,
  6336. 0x1d790, 0x1d7a8
  6337. }; /* CR_Lu */
  6338. /* 'M': Major Category */
  6339. static const OnigCodePoint CR_M[] = {
  6340. 133,
  6341. 0x0300, 0x036f,
  6342. 0x0483, 0x0486,
  6343. 0x0488, 0x0489,
  6344. 0x0591, 0x05b9,
  6345. 0x05bb, 0x05bd,
  6346. 0x05bf, 0x05bf,
  6347. 0x05c1, 0x05c2,
  6348. 0x05c4, 0x05c5,
  6349. 0x05c7, 0x05c7,
  6350. 0x0610, 0x0615,
  6351. 0x064b, 0x065e,
  6352. 0x0670, 0x0670,
  6353. 0x06d6, 0x06dc,
  6354. 0x06de, 0x06e4,
  6355. 0x06e7, 0x06e8,
  6356. 0x06ea, 0x06ed,
  6357. 0x0711, 0x0711,
  6358. 0x0730, 0x074a,
  6359. 0x07a6, 0x07b0,
  6360. 0x0901, 0x0903,
  6361. 0x093c, 0x093c,
  6362. 0x093e, 0x094d,
  6363. 0x0951, 0x0954,
  6364. 0x0962, 0x0963,
  6365. 0x0981, 0x0983,
  6366. 0x09bc, 0x09bc,
  6367. 0x09be, 0x09c4,
  6368. 0x09c7, 0x09c8,
  6369. 0x09cb, 0x09cd,
  6370. 0x09d7, 0x09d7,
  6371. 0x09e2, 0x09e3,
  6372. 0x0a01, 0x0a03,
  6373. 0x0a3c, 0x0a3c,
  6374. 0x0a3e, 0x0a42,
  6375. 0x0a47, 0x0a48,
  6376. 0x0a4b, 0x0a4d,
  6377. 0x0a70, 0x0a71,
  6378. 0x0a81, 0x0a83,
  6379. 0x0abc, 0x0abc,
  6380. 0x0abe, 0x0ac5,
  6381. 0x0ac7, 0x0ac9,
  6382. 0x0acb, 0x0acd,
  6383. 0x0ae2, 0x0ae3,
  6384. 0x0b01, 0x0b03,
  6385. 0x0b3c, 0x0b3c,
  6386. 0x0b3e, 0x0b43,
  6387. 0x0b47, 0x0b48,
  6388. 0x0b4b, 0x0b4d,
  6389. 0x0b56, 0x0b57,
  6390. 0x0b82, 0x0b82,
  6391. 0x0bbe, 0x0bc2,
  6392. 0x0bc6, 0x0bc8,
  6393. 0x0bca, 0x0bcd,
  6394. 0x0bd7, 0x0bd7,
  6395. 0x0c01, 0x0c03,
  6396. 0x0c3e, 0x0c44,
  6397. 0x0c46, 0x0c48,
  6398. 0x0c4a, 0x0c4d,
  6399. 0x0c55, 0x0c56,
  6400. 0x0c82, 0x0c83,
  6401. 0x0cbc, 0x0cbc,
  6402. 0x0cbe, 0x0cc4,
  6403. 0x0cc6, 0x0cc8,
  6404. 0x0cca, 0x0ccd,
  6405. 0x0cd5, 0x0cd6,
  6406. 0x0d02, 0x0d03,
  6407. 0x0d3e, 0x0d43,
  6408. 0x0d46, 0x0d48,
  6409. 0x0d4a, 0x0d4d,
  6410. 0x0d57, 0x0d57,
  6411. 0x0d82, 0x0d83,
  6412. 0x0dca, 0x0dca,
  6413. 0x0dcf, 0x0dd4,
  6414. 0x0dd6, 0x0dd6,
  6415. 0x0dd8, 0x0ddf,
  6416. 0x0df2, 0x0df3,
  6417. 0x0e31, 0x0e31,
  6418. 0x0e34, 0x0e3a,
  6419. 0x0e47, 0x0e4e,
  6420. 0x0eb1, 0x0eb1,
  6421. 0x0eb4, 0x0eb9,
  6422. 0x0ebb, 0x0ebc,
  6423. 0x0ec8, 0x0ecd,
  6424. 0x0f18, 0x0f19,
  6425. 0x0f35, 0x0f35,
  6426. 0x0f37, 0x0f37,
  6427. 0x0f39, 0x0f39,
  6428. 0x0f3e, 0x0f3f,
  6429. 0x0f71, 0x0f84,
  6430. 0x0f86, 0x0f87,
  6431. 0x0f90, 0x0f97,
  6432. 0x0f99, 0x0fbc,
  6433. 0x0fc6, 0x0fc6,
  6434. 0x102c, 0x1032,
  6435. 0x1036, 0x1039,
  6436. 0x1056, 0x1059,
  6437. 0x135f, 0x135f,
  6438. 0x1712, 0x1714,
  6439. 0x1732, 0x1734,
  6440. 0x1752, 0x1753,
  6441. 0x1772, 0x1773,
  6442. 0x17b6, 0x17d3,
  6443. 0x17dd, 0x17dd,
  6444. 0x180b, 0x180d,
  6445. 0x18a9, 0x18a9,
  6446. 0x1920, 0x192b,
  6447. 0x1930, 0x193b,
  6448. 0x19b0, 0x19c0,
  6449. 0x19c8, 0x19c9,
  6450. 0x1a17, 0x1a1b,
  6451. 0x1dc0, 0x1dc3,
  6452. 0x20d0, 0x20eb,
  6453. 0x302a, 0x302f,
  6454. 0x3099, 0x309a,
  6455. 0xa802, 0xa802,
  6456. 0xa806, 0xa806,
  6457. 0xa80b, 0xa80b,
  6458. 0xa823, 0xa827,
  6459. 0xfb1e, 0xfb1e,
  6460. 0xfe00, 0xfe0f,
  6461. 0xfe20, 0xfe23,
  6462. 0x10a01, 0x10a03,
  6463. 0x10a05, 0x10a06,
  6464. 0x10a0c, 0x10a0f,
  6465. 0x10a38, 0x10a3a,
  6466. 0x10a3f, 0x10a3f,
  6467. 0x1d165, 0x1d169,
  6468. 0x1d16d, 0x1d172,
  6469. 0x1d17b, 0x1d182,
  6470. 0x1d185, 0x1d18b,
  6471. 0x1d1aa, 0x1d1ad,
  6472. 0x1d242, 0x1d244,
  6473. 0xe0100, 0xe01ef
  6474. }; /* CR_M */
  6475. /* 'Mc': General Category */
  6476. static const OnigCodePoint CR_Mc[] = {
  6477. 63,
  6478. 0x0903, 0x0903,
  6479. 0x093e, 0x0940,
  6480. 0x0949, 0x094c,
  6481. 0x0982, 0x0983,
  6482. 0x09be, 0x09c0,
  6483. 0x09c7, 0x09c8,
  6484. 0x09cb, 0x09cc,
  6485. 0x09d7, 0x09d7,
  6486. 0x0a03, 0x0a03,
  6487. 0x0a3e, 0x0a40,
  6488. 0x0a83, 0x0a83,
  6489. 0x0abe, 0x0ac0,
  6490. 0x0ac9, 0x0ac9,
  6491. 0x0acb, 0x0acc,
  6492. 0x0b02, 0x0b03,
  6493. 0x0b3e, 0x0b3e,
  6494. 0x0b40, 0x0b40,
  6495. 0x0b47, 0x0b48,
  6496. 0x0b4b, 0x0b4c,
  6497. 0x0b57, 0x0b57,
  6498. 0x0bbe, 0x0bbf,
  6499. 0x0bc1, 0x0bc2,
  6500. 0x0bc6, 0x0bc8,
  6501. 0x0bca, 0x0bcc,
  6502. 0x0bd7, 0x0bd7,
  6503. 0x0c01, 0x0c03,
  6504. 0x0c41, 0x0c44,
  6505. 0x0c82, 0x0c83,
  6506. 0x0cbe, 0x0cbe,
  6507. 0x0cc0, 0x0cc4,
  6508. 0x0cc7, 0x0cc8,
  6509. 0x0cca, 0x0ccb,
  6510. 0x0cd5, 0x0cd6,
  6511. 0x0d02, 0x0d03,
  6512. 0x0d3e, 0x0d40,
  6513. 0x0d46, 0x0d48,
  6514. 0x0d4a, 0x0d4c,
  6515. 0x0d57, 0x0d57,
  6516. 0x0d82, 0x0d83,
  6517. 0x0dcf, 0x0dd1,
  6518. 0x0dd8, 0x0ddf,
  6519. 0x0df2, 0x0df3,
  6520. 0x0f3e, 0x0f3f,
  6521. 0x0f7f, 0x0f7f,
  6522. 0x102c, 0x102c,
  6523. 0x1031, 0x1031,
  6524. 0x1038, 0x1038,
  6525. 0x1056, 0x1057,
  6526. 0x17b6, 0x17b6,
  6527. 0x17be, 0x17c5,
  6528. 0x17c7, 0x17c8,
  6529. 0x1923, 0x1926,
  6530. 0x1929, 0x192b,
  6531. 0x1930, 0x1931,
  6532. 0x1933, 0x1938,
  6533. 0x19b0, 0x19c0,
  6534. 0x19c8, 0x19c9,
  6535. 0x1a19, 0x1a1b,
  6536. 0xa802, 0xa802,
  6537. 0xa823, 0xa824,
  6538. 0xa827, 0xa827,
  6539. 0x1d165, 0x1d166,
  6540. 0x1d16d, 0x1d172
  6541. }; /* CR_Mc */
  6542. /* 'Me': General Category */
  6543. static const OnigCodePoint CR_Me[] = {
  6544. 4,
  6545. 0x0488, 0x0489,
  6546. 0x06de, 0x06de,
  6547. 0x20dd, 0x20e0,
  6548. 0x20e2, 0x20e4
  6549. }; /* CR_Me */
  6550. /* 'Mn': General Category */
  6551. static const OnigCodePoint CR_Mn[] = {
  6552. 124,
  6553. 0x0300, 0x036f,
  6554. 0x0483, 0x0486,
  6555. 0x0591, 0x05b9,
  6556. 0x05bb, 0x05bd,
  6557. 0x05bf, 0x05bf,
  6558. 0x05c1, 0x05c2,
  6559. 0x05c4, 0x05c5,
  6560. 0x05c7, 0x05c7,
  6561. 0x0610, 0x0615,
  6562. 0x064b, 0x065e,
  6563. 0x0670, 0x0670,
  6564. 0x06d6, 0x06dc,
  6565. 0x06df, 0x06e4,
  6566. 0x06e7, 0x06e8,
  6567. 0x06ea, 0x06ed,
  6568. 0x0711, 0x0711,
  6569. 0x0730, 0x074a,
  6570. 0x07a6, 0x07b0,
  6571. 0x0901, 0x0902,
  6572. 0x093c, 0x093c,
  6573. 0x0941, 0x0948,
  6574. 0x094d, 0x094d,
  6575. 0x0951, 0x0954,
  6576. 0x0962, 0x0963,
  6577. 0x0981, 0x0981,
  6578. 0x09bc, 0x09bc,
  6579. 0x09c1, 0x09c4,
  6580. 0x09cd, 0x09cd,
  6581. 0x09e2, 0x09e3,
  6582. 0x0a01, 0x0a02,
  6583. 0x0a3c, 0x0a3c,
  6584. 0x0a41, 0x0a42,
  6585. 0x0a47, 0x0a48,
  6586. 0x0a4b, 0x0a4d,
  6587. 0x0a70, 0x0a71,
  6588. 0x0a81, 0x0a82,
  6589. 0x0abc, 0x0abc,
  6590. 0x0ac1, 0x0ac5,
  6591. 0x0ac7, 0x0ac8,
  6592. 0x0acd, 0x0acd,
  6593. 0x0ae2, 0x0ae3,
  6594. 0x0b01, 0x0b01,
  6595. 0x0b3c, 0x0b3c,
  6596. 0x0b3f, 0x0b3f,
  6597. 0x0b41, 0x0b43,
  6598. 0x0b4d, 0x0b4d,
  6599. 0x0b56, 0x0b56,
  6600. 0x0b82, 0x0b82,
  6601. 0x0bc0, 0x0bc0,
  6602. 0x0bcd, 0x0bcd,
  6603. 0x0c3e, 0x0c40,
  6604. 0x0c46, 0x0c48,
  6605. 0x0c4a, 0x0c4d,
  6606. 0x0c55, 0x0c56,
  6607. 0x0cbc, 0x0cbc,
  6608. 0x0cbf, 0x0cbf,
  6609. 0x0cc6, 0x0cc6,
  6610. 0x0ccc, 0x0ccd,
  6611. 0x0d41, 0x0d43,
  6612. 0x0d4d, 0x0d4d,
  6613. 0x0dca, 0x0dca,
  6614. 0x0dd2, 0x0dd4,
  6615. 0x0dd6, 0x0dd6,
  6616. 0x0e31, 0x0e31,
  6617. 0x0e34, 0x0e3a,
  6618. 0x0e47, 0x0e4e,
  6619. 0x0eb1, 0x0eb1,
  6620. 0x0eb4, 0x0eb9,
  6621. 0x0ebb, 0x0ebc,
  6622. 0x0ec8, 0x0ecd,
  6623. 0x0f18, 0x0f19,
  6624. 0x0f35, 0x0f35,
  6625. 0x0f37, 0x0f37,
  6626. 0x0f39, 0x0f39,
  6627. 0x0f71, 0x0f7e,
  6628. 0x0f80, 0x0f84,
  6629. 0x0f86, 0x0f87,
  6630. 0x0f90, 0x0f97,
  6631. 0x0f99, 0x0fbc,
  6632. 0x0fc6, 0x0fc6,
  6633. 0x102d, 0x1030,
  6634. 0x1032, 0x1032,
  6635. 0x1036, 0x1037,
  6636. 0x1039, 0x1039,
  6637. 0x1058, 0x1059,
  6638. 0x135f, 0x135f,
  6639. 0x1712, 0x1714,
  6640. 0x1732, 0x1734,
  6641. 0x1752, 0x1753,
  6642. 0x1772, 0x1773,
  6643. 0x17b7, 0x17bd,
  6644. 0x17c6, 0x17c6,
  6645. 0x17c9, 0x17d3,
  6646. 0x17dd, 0x17dd,
  6647. 0x180b, 0x180d,
  6648. 0x18a9, 0x18a9,
  6649. 0x1920, 0x1922,
  6650. 0x1927, 0x1928,
  6651. 0x1932, 0x1932,
  6652. 0x1939, 0x193b,
  6653. 0x1a17, 0x1a18,
  6654. 0x1dc0, 0x1dc3,
  6655. 0x20d0, 0x20dc,
  6656. 0x20e1, 0x20e1,
  6657. 0x20e5, 0x20eb,
  6658. 0x302a, 0x302f,
  6659. 0x3099, 0x309a,
  6660. 0xa806, 0xa806,
  6661. 0xa80b, 0xa80b,
  6662. 0xa825, 0xa826,
  6663. 0xfb1e, 0xfb1e,
  6664. 0xfe00, 0xfe0f,
  6665. 0xfe20, 0xfe23,
  6666. 0x10a01, 0x10a03,
  6667. 0x10a05, 0x10a06,
  6668. 0x10a0c, 0x10a0f,
  6669. 0x10a38, 0x10a3a,
  6670. 0x10a3f, 0x10a3f,
  6671. 0x1d167, 0x1d169,
  6672. 0x1d17b, 0x1d182,
  6673. 0x1d185, 0x1d18b,
  6674. 0x1d1aa, 0x1d1ad,
  6675. 0x1d242, 0x1d244,
  6676. 0xe0100, 0xe01ef
  6677. }; /* CR_Mn */
  6678. /* 'N': Major Category */
  6679. static const OnigCodePoint CR_N[] = {
  6680. 53,
  6681. 0x0030, 0x0039,
  6682. 0x00b2, 0x00b3,
  6683. 0x00b9, 0x00b9,
  6684. 0x00bc, 0x00be,
  6685. 0x0660, 0x0669,
  6686. 0x06f0, 0x06f9,
  6687. 0x0966, 0x096f,
  6688. 0x09e6, 0x09ef,
  6689. 0x09f4, 0x09f9,
  6690. 0x0a66, 0x0a6f,
  6691. 0x0ae6, 0x0aef,
  6692. 0x0b66, 0x0b6f,
  6693. 0x0be6, 0x0bf2,
  6694. 0x0c66, 0x0c6f,
  6695. 0x0ce6, 0x0cef,
  6696. 0x0d66, 0x0d6f,
  6697. 0x0e50, 0x0e59,
  6698. 0x0ed0, 0x0ed9,
  6699. 0x0f20, 0x0f33,
  6700. 0x1040, 0x1049,
  6701. 0x1369, 0x137c,
  6702. 0x16ee, 0x16f0,
  6703. 0x17e0, 0x17e9,
  6704. 0x17f0, 0x17f9,
  6705. 0x1810, 0x1819,
  6706. 0x1946, 0x194f,
  6707. 0x19d0, 0x19d9,
  6708. 0x2070, 0x2070,
  6709. 0x2074, 0x2079,
  6710. 0x2080, 0x2089,
  6711. 0x2153, 0x2183,
  6712. 0x2460, 0x249b,
  6713. 0x24ea, 0x24ff,
  6714. 0x2776, 0x2793,
  6715. 0x2cfd, 0x2cfd,
  6716. 0x3007, 0x3007,
  6717. 0x3021, 0x3029,
  6718. 0x3038, 0x303a,
  6719. 0x3192, 0x3195,
  6720. 0x3220, 0x3229,
  6721. 0x3251, 0x325f,
  6722. 0x3280, 0x3289,
  6723. 0x32b1, 0x32bf,
  6724. 0xff10, 0xff19,
  6725. 0x10107, 0x10133,
  6726. 0x10140, 0x10178,
  6727. 0x1018a, 0x1018a,
  6728. 0x10320, 0x10323,
  6729. 0x1034a, 0x1034a,
  6730. 0x103d1, 0x103d5,
  6731. 0x104a0, 0x104a9,
  6732. 0x10a40, 0x10a47,
  6733. 0x1d7ce, 0x1d7ff
  6734. }; /* CR_N */
  6735. /* 'Nd': General Category */
  6736. static const OnigCodePoint CR_Nd[] = {
  6737. 23,
  6738. 0x0030, 0x0039,
  6739. 0x0660, 0x0669,
  6740. 0x06f0, 0x06f9,
  6741. 0x0966, 0x096f,
  6742. 0x09e6, 0x09ef,
  6743. 0x0a66, 0x0a6f,
  6744. 0x0ae6, 0x0aef,
  6745. 0x0b66, 0x0b6f,
  6746. 0x0be6, 0x0bef,
  6747. 0x0c66, 0x0c6f,
  6748. 0x0ce6, 0x0cef,
  6749. 0x0d66, 0x0d6f,
  6750. 0x0e50, 0x0e59,
  6751. 0x0ed0, 0x0ed9,
  6752. 0x0f20, 0x0f29,
  6753. 0x1040, 0x1049,
  6754. 0x17e0, 0x17e9,
  6755. 0x1810, 0x1819,
  6756. 0x1946, 0x194f,
  6757. 0x19d0, 0x19d9,
  6758. 0xff10, 0xff19,
  6759. 0x104a0, 0x104a9,
  6760. 0x1d7ce, 0x1d7ff
  6761. }; /* CR_Nd */
  6762. /* 'Nl': General Category */
  6763. static const OnigCodePoint CR_Nl[] = {
  6764. 8,
  6765. 0x16ee, 0x16f0,
  6766. 0x2160, 0x2183,
  6767. 0x3007, 0x3007,
  6768. 0x3021, 0x3029,
  6769. 0x3038, 0x303a,
  6770. 0x10140, 0x10174,
  6771. 0x1034a, 0x1034a,
  6772. 0x103d1, 0x103d5
  6773. }; /* CR_Nl */
  6774. /* 'No': General Category */
  6775. static const OnigCodePoint CR_No[] = {
  6776. 26,
  6777. 0x00b2, 0x00b3,
  6778. 0x00b9, 0x00b9,
  6779. 0x00bc, 0x00be,
  6780. 0x09f4, 0x09f9,
  6781. 0x0bf0, 0x0bf2,
  6782. 0x0f2a, 0x0f33,
  6783. 0x1369, 0x137c,
  6784. 0x17f0, 0x17f9,
  6785. 0x2070, 0x2070,
  6786. 0x2074, 0x2079,
  6787. 0x2080, 0x2089,
  6788. 0x2153, 0x215f,
  6789. 0x2460, 0x249b,
  6790. 0x24ea, 0x24ff,
  6791. 0x2776, 0x2793,
  6792. 0x2cfd, 0x2cfd,
  6793. 0x3192, 0x3195,
  6794. 0x3220, 0x3229,
  6795. 0x3251, 0x325f,
  6796. 0x3280, 0x3289,
  6797. 0x32b1, 0x32bf,
  6798. 0x10107, 0x10133,
  6799. 0x10175, 0x10178,
  6800. 0x1018a, 0x1018a,
  6801. 0x10320, 0x10323,
  6802. 0x10a40, 0x10a47
  6803. }; /* CR_No */
  6804. /* 'P': Major Category */
  6805. static const OnigCodePoint CR_P[] = {
  6806. 96,
  6807. 0x0021, 0x0023,
  6808. 0x0025, 0x002a,
  6809. 0x002c, 0x002f,
  6810. 0x003a, 0x003b,
  6811. 0x003f, 0x0040,
  6812. 0x005b, 0x005d,
  6813. 0x005f, 0x005f,
  6814. 0x007b, 0x007b,
  6815. 0x007d, 0x007d,
  6816. 0x00a1, 0x00a1,
  6817. 0x00ab, 0x00ab,
  6818. 0x00b7, 0x00b7,
  6819. 0x00bb, 0x00bb,
  6820. 0x00bf, 0x00bf,
  6821. 0x037e, 0x037e,
  6822. 0x0387, 0x0387,
  6823. 0x055a, 0x055f,
  6824. 0x0589, 0x058a,
  6825. 0x05be, 0x05be,
  6826. 0x05c0, 0x05c0,
  6827. 0x05c3, 0x05c3,
  6828. 0x05c6, 0x05c6,
  6829. 0x05f3, 0x05f4,
  6830. 0x060c, 0x060d,
  6831. 0x061b, 0x061b,
  6832. 0x061e, 0x061f,
  6833. 0x066a, 0x066d,
  6834. 0x06d4, 0x06d4,
  6835. 0x0700, 0x070d,
  6836. 0x0964, 0x0965,
  6837. 0x0970, 0x0970,
  6838. 0x0df4, 0x0df4,
  6839. 0x0e4f, 0x0e4f,
  6840. 0x0e5a, 0x0e5b,
  6841. 0x0f04, 0x0f12,
  6842. 0x0f3a, 0x0f3d,
  6843. 0x0f85, 0x0f85,
  6844. 0x0fd0, 0x0fd1,
  6845. 0x104a, 0x104f,
  6846. 0x10fb, 0x10fb,
  6847. 0x1361, 0x1368,
  6848. 0x166d, 0x166e,
  6849. 0x169b, 0x169c,
  6850. 0x16eb, 0x16ed,
  6851. 0x1735, 0x1736,
  6852. 0x17d4, 0x17d6,
  6853. 0x17d8, 0x17da,
  6854. 0x1800, 0x180a,
  6855. 0x1944, 0x1945,
  6856. 0x19de, 0x19df,
  6857. 0x1a1e, 0x1a1f,
  6858. 0x2010, 0x2027,
  6859. 0x2030, 0x2043,
  6860. 0x2045, 0x2051,
  6861. 0x2053, 0x205e,
  6862. 0x207d, 0x207e,
  6863. 0x208d, 0x208e,
  6864. 0x2329, 0x232a,
  6865. 0x23b4, 0x23b6,
  6866. 0x2768, 0x2775,
  6867. 0x27c5, 0x27c6,
  6868. 0x27e6, 0x27eb,
  6869. 0x2983, 0x2998,
  6870. 0x29d8, 0x29db,
  6871. 0x29fc, 0x29fd,
  6872. 0x2cf9, 0x2cfc,
  6873. 0x2cfe, 0x2cff,
  6874. 0x2e00, 0x2e17,
  6875. 0x2e1c, 0x2e1d,
  6876. 0x3001, 0x3003,
  6877. 0x3008, 0x3011,
  6878. 0x3014, 0x301f,
  6879. 0x3030, 0x3030,
  6880. 0x303d, 0x303d,
  6881. 0x30a0, 0x30a0,
  6882. 0x30fb, 0x30fb,
  6883. 0xfd3e, 0xfd3f,
  6884. 0xfe10, 0xfe19,
  6885. 0xfe30, 0xfe52,
  6886. 0xfe54, 0xfe61,
  6887. 0xfe63, 0xfe63,
  6888. 0xfe68, 0xfe68,
  6889. 0xfe6a, 0xfe6b,
  6890. 0xff01, 0xff03,
  6891. 0xff05, 0xff0a,
  6892. 0xff0c, 0xff0f,
  6893. 0xff1a, 0xff1b,
  6894. 0xff1f, 0xff20,
  6895. 0xff3b, 0xff3d,
  6896. 0xff3f, 0xff3f,
  6897. 0xff5b, 0xff5b,
  6898. 0xff5d, 0xff5d,
  6899. 0xff5f, 0xff65,
  6900. 0x10100, 0x10101,
  6901. 0x1039f, 0x1039f,
  6902. 0x10a50, 0x10a58
  6903. }; /* CR_P */
  6904. /* 'Pc': General Category */
  6905. static const OnigCodePoint CR_Pc[] = {
  6906. 6,
  6907. 0x005f, 0x005f,
  6908. 0x203f, 0x2040,
  6909. 0x2054, 0x2054,
  6910. 0xfe33, 0xfe34,
  6911. 0xfe4d, 0xfe4f,
  6912. 0xff3f, 0xff3f
  6913. }; /* CR_Pc */
  6914. /* 'Pd': General Category */
  6915. static const OnigCodePoint CR_Pd[] = {
  6916. 12,
  6917. 0x002d, 0x002d,
  6918. 0x058a, 0x058a,
  6919. 0x1806, 0x1806,
  6920. 0x2010, 0x2015,
  6921. 0x2e17, 0x2e17,
  6922. 0x301c, 0x301c,
  6923. 0x3030, 0x3030,
  6924. 0x30a0, 0x30a0,
  6925. 0xfe31, 0xfe32,
  6926. 0xfe58, 0xfe58,
  6927. 0xfe63, 0xfe63,
  6928. 0xff0d, 0xff0d
  6929. }; /* CR_Pd */
  6930. /* 'Pe': General Category */
  6931. static const OnigCodePoint CR_Pe[] = {
  6932. 65,
  6933. 0x0029, 0x0029,
  6934. 0x005d, 0x005d,
  6935. 0x007d, 0x007d,
  6936. 0x0f3b, 0x0f3b,
  6937. 0x0f3d, 0x0f3d,
  6938. 0x169c, 0x169c,
  6939. 0x2046, 0x2046,
  6940. 0x207e, 0x207e,
  6941. 0x208e, 0x208e,
  6942. 0x232a, 0x232a,
  6943. 0x23b5, 0x23b5,
  6944. 0x2769, 0x2769,
  6945. 0x276b, 0x276b,
  6946. 0x276d, 0x276d,
  6947. 0x276f, 0x276f,
  6948. 0x2771, 0x2771,
  6949. 0x2773, 0x2773,
  6950. 0x2775, 0x2775,
  6951. 0x27c6, 0x27c6,
  6952. 0x27e7, 0x27e7,
  6953. 0x27e9, 0x27e9,
  6954. 0x27eb, 0x27eb,
  6955. 0x2984, 0x2984,
  6956. 0x2986, 0x2986,
  6957. 0x2988, 0x2988,
  6958. 0x298a, 0x298a,
  6959. 0x298c, 0x298c,
  6960. 0x298e, 0x298e,
  6961. 0x2990, 0x2990,
  6962. 0x2992, 0x2992,
  6963. 0x2994, 0x2994,
  6964. 0x2996, 0x2996,
  6965. 0x2998, 0x2998,
  6966. 0x29d9, 0x29d9,
  6967. 0x29db, 0x29db,
  6968. 0x29fd, 0x29fd,
  6969. 0x3009, 0x3009,
  6970. 0x300b, 0x300b,
  6971. 0x300d, 0x300d,
  6972. 0x300f, 0x300f,
  6973. 0x3011, 0x3011,
  6974. 0x3015, 0x3015,
  6975. 0x3017, 0x3017,
  6976. 0x3019, 0x3019,
  6977. 0x301b, 0x301b,
  6978. 0x301e, 0x301f,
  6979. 0xfd3f, 0xfd3f,
  6980. 0xfe18, 0xfe18,
  6981. 0xfe36, 0xfe36,
  6982. 0xfe38, 0xfe38,
  6983. 0xfe3a, 0xfe3a,
  6984. 0xfe3c, 0xfe3c,
  6985. 0xfe3e, 0xfe3e,
  6986. 0xfe40, 0xfe40,
  6987. 0xfe42, 0xfe42,
  6988. 0xfe44, 0xfe44,
  6989. 0xfe48, 0xfe48,
  6990. 0xfe5a, 0xfe5a,
  6991. 0xfe5c, 0xfe5c,
  6992. 0xfe5e, 0xfe5e,
  6993. 0xff09, 0xff09,
  6994. 0xff3d, 0xff3d,
  6995. 0xff5d, 0xff5d,
  6996. 0xff60, 0xff60,
  6997. 0xff63, 0xff63
  6998. }; /* CR_Pe */
  6999. /* 'Pf': General Category */
  7000. static const OnigCodePoint CR_Pf[] = {
  7001. 9,
  7002. 0x00bb, 0x00bb,
  7003. 0x2019, 0x2019,
  7004. 0x201d, 0x201d,
  7005. 0x203a, 0x203a,
  7006. 0x2e03, 0x2e03,
  7007. 0x2e05, 0x2e05,
  7008. 0x2e0a, 0x2e0a,
  7009. 0x2e0d, 0x2e0d,
  7010. 0x2e1d, 0x2e1d
  7011. }; /* CR_Pf */
  7012. /* 'Pi': General Category */
  7013. static const OnigCodePoint CR_Pi[] = {
  7014. 10,
  7015. 0x00ab, 0x00ab,
  7016. 0x2018, 0x2018,
  7017. 0x201b, 0x201c,
  7018. 0x201f, 0x201f,
  7019. 0x2039, 0x2039,
  7020. 0x2e02, 0x2e02,
  7021. 0x2e04, 0x2e04,
  7022. 0x2e09, 0x2e09,
  7023. 0x2e0c, 0x2e0c,
  7024. 0x2e1c, 0x2e1c
  7025. }; /* CR_Pi */
  7026. /* 'Po': General Category */
  7027. static const OnigCodePoint CR_Po[] = {
  7028. 88,
  7029. 0x0021, 0x0023,
  7030. 0x0025, 0x0027,
  7031. 0x002a, 0x002a,
  7032. 0x002c, 0x002c,
  7033. 0x002e, 0x002f,
  7034. 0x003a, 0x003b,
  7035. 0x003f, 0x0040,
  7036. 0x005c, 0x005c,
  7037. 0x00a1, 0x00a1,
  7038. 0x00b7, 0x00b7,
  7039. 0x00bf, 0x00bf,
  7040. 0x037e, 0x037e,
  7041. 0x0387, 0x0387,
  7042. 0x055a, 0x055f,
  7043. 0x0589, 0x0589,
  7044. 0x05be, 0x05be,
  7045. 0x05c0, 0x05c0,
  7046. 0x05c3, 0x05c3,
  7047. 0x05c6, 0x05c6,
  7048. 0x05f3, 0x05f4,
  7049. 0x060c, 0x060d,
  7050. 0x061b, 0x061b,
  7051. 0x061e, 0x061f,
  7052. 0x066a, 0x066d,
  7053. 0x06d4, 0x06d4,
  7054. 0x0700, 0x070d,
  7055. 0x0964, 0x0965,
  7056. 0x0970, 0x0970,
  7057. 0x0df4, 0x0df4,
  7058. 0x0e4f, 0x0e4f,
  7059. 0x0e5a, 0x0e5b,
  7060. 0x0f04, 0x0f12,
  7061. 0x0f85, 0x0f85,
  7062. 0x0fd0, 0x0fd1,
  7063. 0x104a, 0x104f,
  7064. 0x10fb, 0x10fb,
  7065. 0x1361, 0x1368,
  7066. 0x166d, 0x166e,
  7067. 0x16eb, 0x16ed,
  7068. 0x1735, 0x1736,
  7069. 0x17d4, 0x17d6,
  7070. 0x17d8, 0x17da,
  7071. 0x1800, 0x1805,
  7072. 0x1807, 0x180a,
  7073. 0x1944, 0x1945,
  7074. 0x19de, 0x19df,
  7075. 0x1a1e, 0x1a1f,
  7076. 0x2016, 0x2017,
  7077. 0x2020, 0x2027,
  7078. 0x2030, 0x2038,
  7079. 0x203b, 0x203e,
  7080. 0x2041, 0x2043,
  7081. 0x2047, 0x2051,
  7082. 0x2053, 0x2053,
  7083. 0x2055, 0x205e,
  7084. 0x23b6, 0x23b6,
  7085. 0x2cf9, 0x2cfc,
  7086. 0x2cfe, 0x2cff,
  7087. 0x2e00, 0x2e01,
  7088. 0x2e06, 0x2e08,
  7089. 0x2e0b, 0x2e0b,
  7090. 0x2e0e, 0x2e16,
  7091. 0x3001, 0x3003,
  7092. 0x303d, 0x303d,
  7093. 0x30fb, 0x30fb,
  7094. 0xfe10, 0xfe16,
  7095. 0xfe19, 0xfe19,
  7096. 0xfe30, 0xfe30,
  7097. 0xfe45, 0xfe46,
  7098. 0xfe49, 0xfe4c,
  7099. 0xfe50, 0xfe52,
  7100. 0xfe54, 0xfe57,
  7101. 0xfe5f, 0xfe61,
  7102. 0xfe68, 0xfe68,
  7103. 0xfe6a, 0xfe6b,
  7104. 0xff01, 0xff03,
  7105. 0xff05, 0xff07,
  7106. 0xff0a, 0xff0a,
  7107. 0xff0c, 0xff0c,
  7108. 0xff0e, 0xff0f,
  7109. 0xff1a, 0xff1b,
  7110. 0xff1f, 0xff20,
  7111. 0xff3c, 0xff3c,
  7112. 0xff61, 0xff61,
  7113. 0xff64, 0xff65,
  7114. 0x10100, 0x10101,
  7115. 0x1039f, 0x1039f,
  7116. 0x10a50, 0x10a58
  7117. }; /* CR_Po */
  7118. /* 'Ps': General Category */
  7119. static const OnigCodePoint CR_Ps[] = {
  7120. 67,
  7121. 0x0028, 0x0028,
  7122. 0x005b, 0x005b,
  7123. 0x007b, 0x007b,
  7124. 0x0f3a, 0x0f3a,
  7125. 0x0f3c, 0x0f3c,
  7126. 0x169b, 0x169b,
  7127. 0x201a, 0x201a,
  7128. 0x201e, 0x201e,
  7129. 0x2045, 0x2045,
  7130. 0x207d, 0x207d,
  7131. 0x208d, 0x208d,
  7132. 0x2329, 0x2329,
  7133. 0x23b4, 0x23b4,
  7134. 0x2768, 0x2768,
  7135. 0x276a, 0x276a,
  7136. 0x276c, 0x276c,
  7137. 0x276e, 0x276e,
  7138. 0x2770, 0x2770,
  7139. 0x2772, 0x2772,
  7140. 0x2774, 0x2774,
  7141. 0x27c5, 0x27c5,
  7142. 0x27e6, 0x27e6,
  7143. 0x27e8, 0x27e8,
  7144. 0x27ea, 0x27ea,
  7145. 0x2983, 0x2983,
  7146. 0x2985, 0x2985,
  7147. 0x2987, 0x2987,
  7148. 0x2989, 0x2989,
  7149. 0x298b, 0x298b,
  7150. 0x298d, 0x298d,
  7151. 0x298f, 0x298f,
  7152. 0x2991, 0x2991,
  7153. 0x2993, 0x2993,
  7154. 0x2995, 0x2995,
  7155. 0x2997, 0x2997,
  7156. 0x29d8, 0x29d8,
  7157. 0x29da, 0x29da,
  7158. 0x29fc, 0x29fc,
  7159. 0x3008, 0x3008,
  7160. 0x300a, 0x300a,
  7161. 0x300c, 0x300c,
  7162. 0x300e, 0x300e,
  7163. 0x3010, 0x3010,
  7164. 0x3014, 0x3014,
  7165. 0x3016, 0x3016,
  7166. 0x3018, 0x3018,
  7167. 0x301a, 0x301a,
  7168. 0x301d, 0x301d,
  7169. 0xfd3e, 0xfd3e,
  7170. 0xfe17, 0xfe17,
  7171. 0xfe35, 0xfe35,
  7172. 0xfe37, 0xfe37,
  7173. 0xfe39, 0xfe39,
  7174. 0xfe3b, 0xfe3b,
  7175. 0xfe3d, 0xfe3d,
  7176. 0xfe3f, 0xfe3f,
  7177. 0xfe41, 0xfe41,
  7178. 0xfe43, 0xfe43,
  7179. 0xfe47, 0xfe47,
  7180. 0xfe59, 0xfe59,
  7181. 0xfe5b, 0xfe5b,
  7182. 0xfe5d, 0xfe5d,
  7183. 0xff08, 0xff08,
  7184. 0xff3b, 0xff3b,
  7185. 0xff5b, 0xff5b,
  7186. 0xff5f, 0xff5f,
  7187. 0xff62, 0xff62
  7188. }; /* CR_Ps */
  7189. /* 'S': Major Category */
  7190. static const OnigCodePoint CR_S[] = {
  7191. 162,
  7192. 0x0024, 0x0024,
  7193. 0x002b, 0x002b,
  7194. 0x003c, 0x003e,
  7195. 0x005e, 0x005e,
  7196. 0x0060, 0x0060,
  7197. 0x007c, 0x007c,
  7198. 0x007e, 0x007e,
  7199. 0x00a2, 0x00a9,
  7200. 0x00ac, 0x00ac,
  7201. 0x00ae, 0x00b1,
  7202. 0x00b4, 0x00b4,
  7203. 0x00b6, 0x00b6,
  7204. 0x00b8, 0x00b8,
  7205. 0x00d7, 0x00d7,
  7206. 0x00f7, 0x00f7,
  7207. 0x02c2, 0x02c5,
  7208. 0x02d2, 0x02df,
  7209. 0x02e5, 0x02ed,
  7210. 0x02ef, 0x02ff,
  7211. 0x0374, 0x0375,
  7212. 0x0384, 0x0385,
  7213. 0x03f6, 0x03f6,
  7214. 0x0482, 0x0482,
  7215. 0x060b, 0x060b,
  7216. 0x060e, 0x060f,
  7217. 0x06e9, 0x06e9,
  7218. 0x06fd, 0x06fe,
  7219. 0x09f2, 0x09f3,
  7220. 0x09fa, 0x09fa,
  7221. 0x0af1, 0x0af1,
  7222. 0x0b70, 0x0b70,
  7223. 0x0bf3, 0x0bfa,
  7224. 0x0e3f, 0x0e3f,
  7225. 0x0f01, 0x0f03,
  7226. 0x0f13, 0x0f17,
  7227. 0x0f1a, 0x0f1f,
  7228. 0x0f34, 0x0f34,
  7229. 0x0f36, 0x0f36,
  7230. 0x0f38, 0x0f38,
  7231. 0x0fbe, 0x0fc5,
  7232. 0x0fc7, 0x0fcc,
  7233. 0x0fcf, 0x0fcf,
  7234. 0x1360, 0x1360,
  7235. 0x1390, 0x1399,
  7236. 0x17db, 0x17db,
  7237. 0x1940, 0x1940,
  7238. 0x19e0, 0x19ff,
  7239. 0x1fbd, 0x1fbd,
  7240. 0x1fbf, 0x1fc1,
  7241. 0x1fcd, 0x1fcf,
  7242. 0x1fdd, 0x1fdf,
  7243. 0x1fed, 0x1fef,
  7244. 0x1ffd, 0x1ffe,
  7245. 0x2044, 0x2044,
  7246. 0x2052, 0x2052,
  7247. 0x207a, 0x207c,
  7248. 0x208a, 0x208c,
  7249. 0x20a0, 0x20b5,
  7250. 0x2100, 0x2101,
  7251. 0x2103, 0x2106,
  7252. 0x2108, 0x2109,
  7253. 0x2114, 0x2114,
  7254. 0x2116, 0x2118,
  7255. 0x211e, 0x2123,
  7256. 0x2125, 0x2125,
  7257. 0x2127, 0x2127,
  7258. 0x2129, 0x2129,
  7259. 0x212e, 0x212e,
  7260. 0x2132, 0x2132,
  7261. 0x213a, 0x213b,
  7262. 0x2140, 0x2144,
  7263. 0x214a, 0x214c,
  7264. 0x2190, 0x2328,
  7265. 0x232b, 0x23b3,
  7266. 0x23b7, 0x23db,
  7267. 0x2400, 0x2426,
  7268. 0x2440, 0x244a,
  7269. 0x249c, 0x24e9,
  7270. 0x2500, 0x269c,
  7271. 0x26a0, 0x26b1,
  7272. 0x2701, 0x2704,
  7273. 0x2706, 0x2709,
  7274. 0x270c, 0x2727,
  7275. 0x2729, 0x274b,
  7276. 0x274d, 0x274d,
  7277. 0x274f, 0x2752,
  7278. 0x2756, 0x2756,
  7279. 0x2758, 0x275e,
  7280. 0x2761, 0x2767,
  7281. 0x2794, 0x2794,
  7282. 0x2798, 0x27af,
  7283. 0x27b1, 0x27be,
  7284. 0x27c0, 0x27c4,
  7285. 0x27d0, 0x27e5,
  7286. 0x27f0, 0x2982,
  7287. 0x2999, 0x29d7,
  7288. 0x29dc, 0x29fb,
  7289. 0x29fe, 0x2b13,
  7290. 0x2ce5, 0x2cea,
  7291. 0x2e80, 0x2e99,
  7292. 0x2e9b, 0x2ef3,
  7293. 0x2f00, 0x2fd5,
  7294. 0x2ff0, 0x2ffb,
  7295. 0x3004, 0x3004,
  7296. 0x3012, 0x3013,
  7297. 0x3020, 0x3020,
  7298. 0x3036, 0x3037,
  7299. 0x303e, 0x303f,
  7300. 0x309b, 0x309c,
  7301. 0x3190, 0x3191,
  7302. 0x3196, 0x319f,
  7303. 0x31c0, 0x31cf,
  7304. 0x3200, 0x321e,
  7305. 0x322a, 0x3243,
  7306. 0x3250, 0x3250,
  7307. 0x3260, 0x327f,
  7308. 0x328a, 0x32b0,
  7309. 0x32c0, 0x32fe,
  7310. 0x3300, 0x33ff,
  7311. 0x4dc0, 0x4dff,
  7312. 0xa490, 0xa4c6,
  7313. 0xa700, 0xa716,
  7314. 0xa828, 0xa82b,
  7315. 0xfb29, 0xfb29,
  7316. 0xfdfc, 0xfdfd,
  7317. 0xfe62, 0xfe62,
  7318. 0xfe64, 0xfe66,
  7319. 0xfe69, 0xfe69,
  7320. 0xff04, 0xff04,
  7321. 0xff0b, 0xff0b,
  7322. 0xff1c, 0xff1e,
  7323. 0xff3e, 0xff3e,
  7324. 0xff40, 0xff40,
  7325. 0xff5c, 0xff5c,
  7326. 0xff5e, 0xff5e,
  7327. 0xffe0, 0xffe6,
  7328. 0xffe8, 0xffee,
  7329. 0xfffc, 0xfffd,
  7330. 0x10102, 0x10102,
  7331. 0x10137, 0x1013f,
  7332. 0x10179, 0x10189,
  7333. 0x103d0, 0x103d0,
  7334. 0x1d000, 0x1d0f5,
  7335. 0x1d100, 0x1d126,
  7336. 0x1d12a, 0x1d164,
  7337. 0x1d16a, 0x1d16c,
  7338. 0x1d183, 0x1d184,
  7339. 0x1d18c, 0x1d1a9,
  7340. 0x1d1ae, 0x1d1dd,
  7341. 0x1d200, 0x1d241,
  7342. 0x1d245, 0x1d245,
  7343. 0x1d300, 0x1d356,
  7344. 0x1d6c1, 0x1d6c1,
  7345. 0x1d6db, 0x1d6db,
  7346. 0x1d6fb, 0x1d6fb,
  7347. 0x1d715, 0x1d715,
  7348. 0x1d735, 0x1d735,
  7349. 0x1d74f, 0x1d74f,
  7350. 0x1d76f, 0x1d76f,
  7351. 0x1d789, 0x1d789,
  7352. 0x1d7a9, 0x1d7a9,
  7353. 0x1d7c3, 0x1d7c3
  7354. }; /* CR_S */
  7355. /* 'Sc': General Category */
  7356. static const OnigCodePoint CR_Sc[] = {
  7357. 14,
  7358. 0x0024, 0x0024,
  7359. 0x00a2, 0x00a5,
  7360. 0x060b, 0x060b,
  7361. 0x09f2, 0x09f3,
  7362. 0x0af1, 0x0af1,
  7363. 0x0bf9, 0x0bf9,
  7364. 0x0e3f, 0x0e3f,
  7365. 0x17db, 0x17db,
  7366. 0x20a0, 0x20b5,
  7367. 0xfdfc, 0xfdfc,
  7368. 0xfe69, 0xfe69,
  7369. 0xff04, 0xff04,
  7370. 0xffe0, 0xffe1,
  7371. 0xffe5, 0xffe6
  7372. }; /* CR_Sc */
  7373. /* 'Sk': General Category */
  7374. static const OnigCodePoint CR_Sk[] = {
  7375. 23,
  7376. 0x005e, 0x005e,
  7377. 0x0060, 0x0060,
  7378. 0x00a8, 0x00a8,
  7379. 0x00af, 0x00af,
  7380. 0x00b4, 0x00b4,
  7381. 0x00b8, 0x00b8,
  7382. 0x02c2, 0x02c5,
  7383. 0x02d2, 0x02df,
  7384. 0x02e5, 0x02ed,
  7385. 0x02ef, 0x02ff,
  7386. 0x0374, 0x0375,
  7387. 0x0384, 0x0385,
  7388. 0x1fbd, 0x1fbd,
  7389. 0x1fbf, 0x1fc1,
  7390. 0x1fcd, 0x1fcf,
  7391. 0x1fdd, 0x1fdf,
  7392. 0x1fed, 0x1fef,
  7393. 0x1ffd, 0x1ffe,
  7394. 0x309b, 0x309c,
  7395. 0xa700, 0xa716,
  7396. 0xff3e, 0xff3e,
  7397. 0xff40, 0xff40,
  7398. 0xffe3, 0xffe3
  7399. }; /* CR_Sk */
  7400. /* 'Sm': General Category */
  7401. static const OnigCodePoint CR_Sm[] = {
  7402. 59,
  7403. 0x002b, 0x002b,
  7404. 0x003c, 0x003e,
  7405. 0x007c, 0x007c,
  7406. 0x007e, 0x007e,
  7407. 0x00ac, 0x00ac,
  7408. 0x00b1, 0x00b1,
  7409. 0x00d7, 0x00d7,
  7410. 0x00f7, 0x00f7,
  7411. 0x03f6, 0x03f6,
  7412. 0x2044, 0x2044,
  7413. 0x2052, 0x2052,
  7414. 0x207a, 0x207c,
  7415. 0x208a, 0x208c,
  7416. 0x2140, 0x2144,
  7417. 0x214b, 0x214b,
  7418. 0x2190, 0x2194,
  7419. 0x219a, 0x219b,
  7420. 0x21a0, 0x21a0,
  7421. 0x21a3, 0x21a3,
  7422. 0x21a6, 0x21a6,
  7423. 0x21ae, 0x21ae,
  7424. 0x21ce, 0x21cf,
  7425. 0x21d2, 0x21d2,
  7426. 0x21d4, 0x21d4,
  7427. 0x21f4, 0x22ff,
  7428. 0x2308, 0x230b,
  7429. 0x2320, 0x2321,
  7430. 0x237c, 0x237c,
  7431. 0x239b, 0x23b3,
  7432. 0x25b7, 0x25b7,
  7433. 0x25c1, 0x25c1,
  7434. 0x25f8, 0x25ff,
  7435. 0x266f, 0x266f,
  7436. 0x27c0, 0x27c4,
  7437. 0x27d0, 0x27e5,
  7438. 0x27f0, 0x27ff,
  7439. 0x2900, 0x2982,
  7440. 0x2999, 0x29d7,
  7441. 0x29dc, 0x29fb,
  7442. 0x29fe, 0x2aff,
  7443. 0xfb29, 0xfb29,
  7444. 0xfe62, 0xfe62,
  7445. 0xfe64, 0xfe66,
  7446. 0xff0b, 0xff0b,
  7447. 0xff1c, 0xff1e,
  7448. 0xff5c, 0xff5c,
  7449. 0xff5e, 0xff5e,
  7450. 0xffe2, 0xffe2,
  7451. 0xffe9, 0xffec,
  7452. 0x1d6c1, 0x1d6c1,
  7453. 0x1d6db, 0x1d6db,
  7454. 0x1d6fb, 0x1d6fb,
  7455. 0x1d715, 0x1d715,
  7456. 0x1d735, 0x1d735,
  7457. 0x1d74f, 0x1d74f,
  7458. 0x1d76f, 0x1d76f,
  7459. 0x1d789, 0x1d789,
  7460. 0x1d7a9, 0x1d7a9,
  7461. 0x1d7c3, 0x1d7c3
  7462. }; /* CR_Sm */
  7463. /* 'So': General Category */
  7464. static const OnigCodePoint CR_So[] = {
  7465. 120,
  7466. 0x00a6, 0x00a7,
  7467. 0x00a9, 0x00a9,
  7468. 0x00ae, 0x00ae,
  7469. 0x00b0, 0x00b0,
  7470. 0x00b6, 0x00b6,
  7471. 0x0482, 0x0482,
  7472. 0x060e, 0x060f,
  7473. 0x06e9, 0x06e9,
  7474. 0x06fd, 0x06fe,
  7475. 0x09fa, 0x09fa,
  7476. 0x0b70, 0x0b70,
  7477. 0x0bf3, 0x0bf8,
  7478. 0x0bfa, 0x0bfa,
  7479. 0x0f01, 0x0f03,
  7480. 0x0f13, 0x0f17,
  7481. 0x0f1a, 0x0f1f,
  7482. 0x0f34, 0x0f34,
  7483. 0x0f36, 0x0f36,
  7484. 0x0f38, 0x0f38,
  7485. 0x0fbe, 0x0fc5,
  7486. 0x0fc7, 0x0fcc,
  7487. 0x0fcf, 0x0fcf,
  7488. 0x1360, 0x1360,
  7489. 0x1390, 0x1399,
  7490. 0x1940, 0x1940,
  7491. 0x19e0, 0x19ff,
  7492. 0x2100, 0x2101,
  7493. 0x2103, 0x2106,
  7494. 0x2108, 0x2109,
  7495. 0x2114, 0x2114,
  7496. 0x2116, 0x2118,
  7497. 0x211e, 0x2123,
  7498. 0x2125, 0x2125,
  7499. 0x2127, 0x2127,
  7500. 0x2129, 0x2129,
  7501. 0x212e, 0x212e,
  7502. 0x2132, 0x2132,
  7503. 0x213a, 0x213b,
  7504. 0x214a, 0x214a,
  7505. 0x214c, 0x214c,
  7506. 0x2195, 0x2199,
  7507. 0x219c, 0x219f,
  7508. 0x21a1, 0x21a2,
  7509. 0x21a4, 0x21a5,
  7510. 0x21a7, 0x21ad,
  7511. 0x21af, 0x21cd,
  7512. 0x21d0, 0x21d1,
  7513. 0x21d3, 0x21d3,
  7514. 0x21d5, 0x21f3,
  7515. 0x2300, 0x2307,
  7516. 0x230c, 0x231f,
  7517. 0x2322, 0x2328,
  7518. 0x232b, 0x237b,
  7519. 0x237d, 0x239a,
  7520. 0x23b7, 0x23db,
  7521. 0x2400, 0x2426,
  7522. 0x2440, 0x244a,
  7523. 0x249c, 0x24e9,
  7524. 0x2500, 0x25b6,
  7525. 0x25b8, 0x25c0,
  7526. 0x25c2, 0x25f7,
  7527. 0x2600, 0x266e,
  7528. 0x2670, 0x269c,
  7529. 0x26a0, 0x26b1,
  7530. 0x2701, 0x2704,
  7531. 0x2706, 0x2709,
  7532. 0x270c, 0x2727,
  7533. 0x2729, 0x274b,
  7534. 0x274d, 0x274d,
  7535. 0x274f, 0x2752,
  7536. 0x2756, 0x2756,
  7537. 0x2758, 0x275e,
  7538. 0x2761, 0x2767,
  7539. 0x2794, 0x2794,
  7540. 0x2798, 0x27af,
  7541. 0x27b1, 0x27be,
  7542. 0x2800, 0x28ff,
  7543. 0x2b00, 0x2b13,
  7544. 0x2ce5, 0x2cea,
  7545. 0x2e80, 0x2e99,
  7546. 0x2e9b, 0x2ef3,
  7547. 0x2f00, 0x2fd5,
  7548. 0x2ff0, 0x2ffb,
  7549. 0x3004, 0x3004,
  7550. 0x3012, 0x3013,
  7551. 0x3020, 0x3020,
  7552. 0x3036, 0x3037,
  7553. 0x303e, 0x303f,
  7554. 0x3190, 0x3191,
  7555. 0x3196, 0x319f,
  7556. 0x31c0, 0x31cf,
  7557. 0x3200, 0x321e,
  7558. 0x322a, 0x3243,
  7559. 0x3250, 0x3250,
  7560. 0x3260, 0x327f,
  7561. 0x328a, 0x32b0,
  7562. 0x32c0, 0x32fe,
  7563. 0x3300, 0x33ff,
  7564. 0x4dc0, 0x4dff,
  7565. 0xa490, 0xa4c6,
  7566. 0xa828, 0xa82b,
  7567. 0xfdfd, 0xfdfd,
  7568. 0xffe4, 0xffe4,
  7569. 0xffe8, 0xffe8,
  7570. 0xffed, 0xffee,
  7571. 0xfffc, 0xfffd,
  7572. 0x10102, 0x10102,
  7573. 0x10137, 0x1013f,
  7574. 0x10179, 0x10189,
  7575. 0x103d0, 0x103d0,
  7576. 0x1d000, 0x1d0f5,
  7577. 0x1d100, 0x1d126,
  7578. 0x1d12a, 0x1d164,
  7579. 0x1d16a, 0x1d16c,
  7580. 0x1d183, 0x1d184,
  7581. 0x1d18c, 0x1d1a9,
  7582. 0x1d1ae, 0x1d1dd,
  7583. 0x1d200, 0x1d241,
  7584. 0x1d245, 0x1d245,
  7585. 0x1d300, 0x1d356
  7586. }; /* CR_So */
  7587. /* 'Z': Major Category */
  7588. static const OnigCodePoint CR_Z[] = {
  7589. 9,
  7590. 0x0020, 0x0020,
  7591. 0x00a0, 0x00a0,
  7592. 0x1680, 0x1680,
  7593. 0x180e, 0x180e,
  7594. 0x2000, 0x200a,
  7595. 0x2028, 0x2029,
  7596. 0x202f, 0x202f,
  7597. 0x205f, 0x205f,
  7598. 0x3000, 0x3000
  7599. }; /* CR_Z */
  7600. /* 'Zl': General Category */
  7601. static const OnigCodePoint CR_Zl[] = {
  7602. 1,
  7603. 0x2028, 0x2028
  7604. }; /* CR_Zl */
  7605. /* 'Zp': General Category */
  7606. static const OnigCodePoint CR_Zp[] = {
  7607. 1,
  7608. 0x2029, 0x2029
  7609. }; /* CR_Zp */
  7610. /* 'Zs': General Category */
  7611. static const OnigCodePoint CR_Zs[] = {
  7612. 8,
  7613. 0x0020, 0x0020,
  7614. 0x00a0, 0x00a0,
  7615. 0x1680, 0x1680,
  7616. 0x180e, 0x180e,
  7617. 0x2000, 0x200a,
  7618. 0x202f, 0x202f,
  7619. 0x205f, 0x205f,
  7620. 0x3000, 0x3000
  7621. }; /* CR_Zs */
  7622. /* 'Arabic': Script */
  7623. static const OnigCodePoint CR_Arabic[] = {
  7624. 17,
  7625. 0x060b, 0x060b,
  7626. 0x060d, 0x0615,
  7627. 0x061e, 0x061e,
  7628. 0x0621, 0x063a,
  7629. 0x0641, 0x064a,
  7630. 0x0656, 0x065e,
  7631. 0x066a, 0x066f,
  7632. 0x0671, 0x06dc,
  7633. 0x06de, 0x06ff,
  7634. 0x0750, 0x076d,
  7635. 0xfb50, 0xfbb1,
  7636. 0xfbd3, 0xfd3d,
  7637. 0xfd50, 0xfd8f,
  7638. 0xfd92, 0xfdc7,
  7639. 0xfdf0, 0xfdfc,
  7640. 0xfe70, 0xfe74,
  7641. 0xfe76, 0xfefc
  7642. }; /* CR_Arabic */
  7643. /* 'Armenian': Script */
  7644. static const OnigCodePoint CR_Armenian[] = {
  7645. 5,
  7646. 0x0531, 0x0556,
  7647. 0x0559, 0x055f,
  7648. 0x0561, 0x0587,
  7649. 0x058a, 0x058a,
  7650. 0xfb13, 0xfb17
  7651. }; /* CR_Armenian */
  7652. /* 'Bengali': Script */
  7653. static const OnigCodePoint CR_Bengali[] = {
  7654. 14,
  7655. 0x0981, 0x0983,
  7656. 0x0985, 0x098c,
  7657. 0x098f, 0x0990,
  7658. 0x0993, 0x09a8,
  7659. 0x09aa, 0x09b0,
  7660. 0x09b2, 0x09b2,
  7661. 0x09b6, 0x09b9,
  7662. 0x09bc, 0x09c4,
  7663. 0x09c7, 0x09c8,
  7664. 0x09cb, 0x09ce,
  7665. 0x09d7, 0x09d7,
  7666. 0x09dc, 0x09dd,
  7667. 0x09df, 0x09e3,
  7668. 0x09e6, 0x09fa
  7669. }; /* CR_Bengali */
  7670. /* 'Bopomofo': Script */
  7671. static const OnigCodePoint CR_Bopomofo[] = {
  7672. 2,
  7673. 0x3105, 0x312c,
  7674. 0x31a0, 0x31b7
  7675. }; /* CR_Bopomofo */
  7676. /* 'Braille': Script */
  7677. static const OnigCodePoint CR_Braille[] = {
  7678. 1,
  7679. 0x2800, 0x28ff
  7680. }; /* CR_Braille */
  7681. /* 'Buginese': Script */
  7682. static const OnigCodePoint CR_Buginese[] = {
  7683. 2,
  7684. 0x1a00, 0x1a1b,
  7685. 0x1a1e, 0x1a1f
  7686. }; /* CR_Buginese */
  7687. /* 'Buhid': Script */
  7688. static const OnigCodePoint CR_Buhid[] = {
  7689. 1,
  7690. 0x1740, 0x1753
  7691. }; /* CR_Buhid */
  7692. /* 'Canadian_Aboriginal': Script */
  7693. static const OnigCodePoint CR_Canadian_Aboriginal[] = {
  7694. 1,
  7695. 0x1401, 0x1676
  7696. }; /* CR_Canadian_Aboriginal */
  7697. /* 'Cherokee': Script */
  7698. static const OnigCodePoint CR_Cherokee[] = {
  7699. 1,
  7700. 0x13a0, 0x13f4
  7701. }; /* CR_Cherokee */
  7702. /* 'Common': Script */
  7703. static const OnigCodePoint CR_Common[] = {
  7704. 126,
  7705. 0x0000, 0x0040,
  7706. 0x005b, 0x0060,
  7707. 0x007b, 0x00a9,
  7708. 0x00ab, 0x00b9,
  7709. 0x00bb, 0x00bf,
  7710. 0x00d7, 0x00d7,
  7711. 0x00f7, 0x00f7,
  7712. 0x02b9, 0x02df,
  7713. 0x02e5, 0x02ff,
  7714. 0x037e, 0x037e,
  7715. 0x0387, 0x0387,
  7716. 0x0589, 0x0589,
  7717. 0x0600, 0x0603,
  7718. 0x060c, 0x060c,
  7719. 0x061b, 0x061b,
  7720. 0x061f, 0x061f,
  7721. 0x0640, 0x0640,
  7722. 0x0660, 0x0669,
  7723. 0x06dd, 0x06dd,
  7724. 0x0964, 0x0965,
  7725. 0x0970, 0x0970,
  7726. 0x0e3f, 0x0e3f,
  7727. 0x10fb, 0x10fb,
  7728. 0x16eb, 0x16ed,
  7729. 0x1735, 0x1736,
  7730. 0x2000, 0x200b,
  7731. 0x200e, 0x2063,
  7732. 0x206a, 0x2070,
  7733. 0x2074, 0x207e,
  7734. 0x2080, 0x208e,
  7735. 0x20a0, 0x20b5,
  7736. 0x2100, 0x2125,
  7737. 0x2127, 0x2129,
  7738. 0x212c, 0x214c,
  7739. 0x2153, 0x2183,
  7740. 0x2190, 0x23db,
  7741. 0x2400, 0x2426,
  7742. 0x2440, 0x244a,
  7743. 0x2460, 0x269c,
  7744. 0x26a0, 0x26b1,
  7745. 0x2701, 0x2704,
  7746. 0x2706, 0x2709,
  7747. 0x270c, 0x2727,
  7748. 0x2729, 0x274b,
  7749. 0x274d, 0x274d,
  7750. 0x274f, 0x2752,
  7751. 0x2756, 0x2756,
  7752. 0x2758, 0x275e,
  7753. 0x2761, 0x2794,
  7754. 0x2798, 0x27af,
  7755. 0x27b1, 0x27be,
  7756. 0x27c0, 0x27c6,
  7757. 0x27d0, 0x27eb,
  7758. 0x27f0, 0x27ff,
  7759. 0x2900, 0x2b13,
  7760. 0x2e00, 0x2e17,
  7761. 0x2e1c, 0x2e1d,
  7762. 0x2ff0, 0x2ffb,
  7763. 0x3000, 0x3004,
  7764. 0x3006, 0x3006,
  7765. 0x3008, 0x3020,
  7766. 0x3030, 0x3037,
  7767. 0x303c, 0x303f,
  7768. 0x309b, 0x309c,
  7769. 0x30a0, 0x30a0,
  7770. 0x30fb, 0x30fc,
  7771. 0x3190, 0x319f,
  7772. 0x31c0, 0x31cf,
  7773. 0x3220, 0x3243,
  7774. 0x3250, 0x325f,
  7775. 0x327e, 0x32fe,
  7776. 0x3300, 0x33ff,
  7777. 0x4dc0, 0x4dff,
  7778. 0xa700, 0xa716,
  7779. 0xe000, 0xf8ff,
  7780. 0xfd3e, 0xfd3f,
  7781. 0xfdfd, 0xfdfd,
  7782. 0xfe10, 0xfe19,
  7783. 0xfe30, 0xfe52,
  7784. 0xfe54, 0xfe66,
  7785. 0xfe68, 0xfe6b,
  7786. 0xfeff, 0xfeff,
  7787. 0xff01, 0xff20,
  7788. 0xff3b, 0xff40,
  7789. 0xff5b, 0xff65,
  7790. 0xff70, 0xff70,
  7791. 0xff9e, 0xff9f,
  7792. 0xffe0, 0xffe6,
  7793. 0xffe8, 0xffee,
  7794. 0xfff9, 0xfffd,
  7795. 0x10100, 0x10102,
  7796. 0x10107, 0x10133,
  7797. 0x10137, 0x1013f,
  7798. 0x1d000, 0x1d0f5,
  7799. 0x1d100, 0x1d126,
  7800. 0x1d12a, 0x1d166,
  7801. 0x1d16a, 0x1d17a,
  7802. 0x1d183, 0x1d184,
  7803. 0x1d18c, 0x1d1a9,
  7804. 0x1d1ae, 0x1d1dd,
  7805. 0x1d300, 0x1d356,
  7806. 0x1d400, 0x1d454,
  7807. 0x1d456, 0x1d49c,
  7808. 0x1d49e, 0x1d49f,
  7809. 0x1d4a2, 0x1d4a2,
  7810. 0x1d4a5, 0x1d4a6,
  7811. 0x1d4a9, 0x1d4ac,
  7812. 0x1d4ae, 0x1d4b9,
  7813. 0x1d4bb, 0x1d4bb,
  7814. 0x1d4bd, 0x1d4c3,
  7815. 0x1d4c5, 0x1d505,
  7816. 0x1d507, 0x1d50a,
  7817. 0x1d50d, 0x1d514,
  7818. 0x1d516, 0x1d51c,
  7819. 0x1d51e, 0x1d539,
  7820. 0x1d53b, 0x1d53e,
  7821. 0x1d540, 0x1d544,
  7822. 0x1d546, 0x1d546,
  7823. 0x1d54a, 0x1d550,
  7824. 0x1d552, 0x1d6a5,
  7825. 0x1d6a8, 0x1d7c9,
  7826. 0x1d7ce, 0x1d7ff,
  7827. 0xe0001, 0xe0001,
  7828. 0xe0020, 0xe007f,
  7829. 0xf0000, 0xffffd,
  7830. 0x100000, 0x10fffd
  7831. }; /* CR_Common */
  7832. /* 'Coptic': Script */
  7833. static const OnigCodePoint CR_Coptic[] = {
  7834. 3,
  7835. 0x03e2, 0x03ef,
  7836. 0x2c80, 0x2cea,
  7837. 0x2cf9, 0x2cff
  7838. }; /* CR_Coptic */
  7839. /* 'Cypriot': Script */
  7840. static const OnigCodePoint CR_Cypriot[] = {
  7841. 6,
  7842. 0x10800, 0x10805,
  7843. 0x10808, 0x10808,
  7844. 0x1080a, 0x10835,
  7845. 0x10837, 0x10838,
  7846. 0x1083c, 0x1083c,
  7847. 0x1083f, 0x1083f
  7848. }; /* CR_Cypriot */
  7849. /* 'Cyrillic': Script */
  7850. static const OnigCodePoint CR_Cyrillic[] = {
  7851. 6,
  7852. 0x0400, 0x0486,
  7853. 0x0488, 0x04ce,
  7854. 0x04d0, 0x04f9,
  7855. 0x0500, 0x050f,
  7856. 0x1d2b, 0x1d2b,
  7857. 0x1d78, 0x1d78
  7858. }; /* CR_Cyrillic */
  7859. /* 'Deseret': Script */
  7860. static const OnigCodePoint CR_Deseret[] = {
  7861. 1,
  7862. 0x10400, 0x1044f
  7863. }; /* CR_Deseret */
  7864. /* 'Devanagari': Script */
  7865. static const OnigCodePoint CR_Devanagari[] = {
  7866. 6,
  7867. 0x0901, 0x0939,
  7868. 0x093c, 0x094d,
  7869. 0x0950, 0x0954,
  7870. 0x0958, 0x0963,
  7871. 0x0966, 0x096f,
  7872. 0x097d, 0x097d
  7873. }; /* CR_Devanagari */
  7874. /* 'Ethiopic': Script */
  7875. static const OnigCodePoint CR_Ethiopic[] = {
  7876. 27,
  7877. 0x1200, 0x1248,
  7878. 0x124a, 0x124d,
  7879. 0x1250, 0x1256,
  7880. 0x1258, 0x1258,
  7881. 0x125a, 0x125d,
  7882. 0x1260, 0x1288,
  7883. 0x128a, 0x128d,
  7884. 0x1290, 0x12b0,
  7885. 0x12b2, 0x12b5,
  7886. 0x12b8, 0x12be,
  7887. 0x12c0, 0x12c0,
  7888. 0x12c2, 0x12c5,
  7889. 0x12c8, 0x12d6,
  7890. 0x12d8, 0x1310,
  7891. 0x1312, 0x1315,
  7892. 0x1318, 0x135a,
  7893. 0x135f, 0x137c,
  7894. 0x1380, 0x1399,
  7895. 0x2d80, 0x2d96,
  7896. 0x2da0, 0x2da6,
  7897. 0x2da8, 0x2dae,
  7898. 0x2db0, 0x2db6,
  7899. 0x2db8, 0x2dbe,
  7900. 0x2dc0, 0x2dc6,
  7901. 0x2dc8, 0x2dce,
  7902. 0x2dd0, 0x2dd6,
  7903. 0x2dd8, 0x2dde
  7904. }; /* CR_Ethiopic */
  7905. /* 'Georgian': Script */
  7906. static const OnigCodePoint CR_Georgian[] = {
  7907. 4,
  7908. 0x10a0, 0x10c5,
  7909. 0x10d0, 0x10fa,
  7910. 0x10fc, 0x10fc,
  7911. 0x2d00, 0x2d25
  7912. }; /* CR_Georgian */
  7913. /* 'Glagolitic': Script */
  7914. static const OnigCodePoint CR_Glagolitic[] = {
  7915. 2,
  7916. 0x2c00, 0x2c2e,
  7917. 0x2c30, 0x2c5e
  7918. }; /* CR_Glagolitic */
  7919. /* 'Gothic': Script */
  7920. static const OnigCodePoint CR_Gothic[] = {
  7921. 1,
  7922. 0x10330, 0x1034a
  7923. }; /* CR_Gothic */
  7924. /* 'Greek': Script */
  7925. static const OnigCodePoint CR_Greek[] = {
  7926. 31,
  7927. 0x0374, 0x0375,
  7928. 0x037a, 0x037a,
  7929. 0x0384, 0x0386,
  7930. 0x0388, 0x038a,
  7931. 0x038c, 0x038c,
  7932. 0x038e, 0x03a1,
  7933. 0x03a3, 0x03ce,
  7934. 0x03d0, 0x03e1,
  7935. 0x03f0, 0x03ff,
  7936. 0x1d26, 0x1d2a,
  7937. 0x1d5d, 0x1d61,
  7938. 0x1d66, 0x1d6a,
  7939. 0x1f00, 0x1f15,
  7940. 0x1f18, 0x1f1d,
  7941. 0x1f20, 0x1f45,
  7942. 0x1f48, 0x1f4d,
  7943. 0x1f50, 0x1f57,
  7944. 0x1f59, 0x1f59,
  7945. 0x1f5b, 0x1f5b,
  7946. 0x1f5d, 0x1f5d,
  7947. 0x1f5f, 0x1f7d,
  7948. 0x1f80, 0x1fb4,
  7949. 0x1fb6, 0x1fc4,
  7950. 0x1fc6, 0x1fd3,
  7951. 0x1fd6, 0x1fdb,
  7952. 0x1fdd, 0x1fef,
  7953. 0x1ff2, 0x1ff4,
  7954. 0x1ff6, 0x1ffe,
  7955. 0x2126, 0x2126,
  7956. 0x10140, 0x1018a,
  7957. 0x1d200, 0x1d245
  7958. }; /* CR_Greek */
  7959. /* 'Gujarati': Script */
  7960. static const OnigCodePoint CR_Gujarati[] = {
  7961. 14,
  7962. 0x0a81, 0x0a83,
  7963. 0x0a85, 0x0a8d,
  7964. 0x0a8f, 0x0a91,
  7965. 0x0a93, 0x0aa8,
  7966. 0x0aaa, 0x0ab0,
  7967. 0x0ab2, 0x0ab3,
  7968. 0x0ab5, 0x0ab9,
  7969. 0x0abc, 0x0ac5,
  7970. 0x0ac7, 0x0ac9,
  7971. 0x0acb, 0x0acd,
  7972. 0x0ad0, 0x0ad0,
  7973. 0x0ae0, 0x0ae3,
  7974. 0x0ae6, 0x0aef,
  7975. 0x0af1, 0x0af1
  7976. }; /* CR_Gujarati */
  7977. /* 'Gurmukhi': Script */
  7978. static const OnigCodePoint CR_Gurmukhi[] = {
  7979. 15,
  7980. 0x0a01, 0x0a03,
  7981. 0x0a05, 0x0a0a,
  7982. 0x0a0f, 0x0a10,
  7983. 0x0a13, 0x0a28,
  7984. 0x0a2a, 0x0a30,
  7985. 0x0a32, 0x0a33,
  7986. 0x0a35, 0x0a36,
  7987. 0x0a38, 0x0a39,
  7988. 0x0a3c, 0x0a3c,
  7989. 0x0a3e, 0x0a42,
  7990. 0x0a47, 0x0a48,
  7991. 0x0a4b, 0x0a4d,
  7992. 0x0a59, 0x0a5c,
  7993. 0x0a5e, 0x0a5e,
  7994. 0x0a66, 0x0a74
  7995. }; /* CR_Gurmukhi */
  7996. /* 'Han': Script */
  7997. static const OnigCodePoint CR_Han[] = {
  7998. 14,
  7999. 0x2e80, 0x2e99,
  8000. 0x2e9b, 0x2ef3,
  8001. 0x2f00, 0x2fd5,
  8002. 0x3005, 0x3005,
  8003. 0x3007, 0x3007,
  8004. 0x3021, 0x3029,
  8005. 0x3038, 0x303b,
  8006. 0x3400, 0x4db5,
  8007. 0x4e00, 0x9fbb,
  8008. 0xf900, 0xfa2d,
  8009. 0xfa30, 0xfa6a,
  8010. 0xfa70, 0xfad9,
  8011. 0x20000, 0x2a6d6,
  8012. 0x2f800, 0x2fa1d
  8013. }; /* CR_Han */
  8014. /* 'Hangul': Script */
  8015. static const OnigCodePoint CR_Hangul[] = {
  8016. 12,
  8017. 0x1100, 0x1159,
  8018. 0x115f, 0x11a2,
  8019. 0x11a8, 0x11f9,
  8020. 0x3131, 0x318e,
  8021. 0x3200, 0x321e,
  8022. 0x3260, 0x327d,
  8023. 0xac00, 0xd7a3,
  8024. 0xffa0, 0xffbe,
  8025. 0xffc2, 0xffc7,
  8026. 0xffca, 0xffcf,
  8027. 0xffd2, 0xffd7,
  8028. 0xffda, 0xffdc
  8029. }; /* CR_Hangul */
  8030. /* 'Hanunoo': Script */
  8031. static const OnigCodePoint CR_Hanunoo[] = {
  8032. 1,
  8033. 0x1720, 0x1734
  8034. }; /* CR_Hanunoo */
  8035. /* 'Hebrew': Script */
  8036. static const OnigCodePoint CR_Hebrew[] = {
  8037. 10,
  8038. 0x0591, 0x05b9,
  8039. 0x05bb, 0x05c7,
  8040. 0x05d0, 0x05ea,
  8041. 0x05f0, 0x05f4,
  8042. 0xfb1d, 0xfb36,
  8043. 0xfb38, 0xfb3c,
  8044. 0xfb3e, 0xfb3e,
  8045. 0xfb40, 0xfb41,
  8046. 0xfb43, 0xfb44,
  8047. 0xfb46, 0xfb4f
  8048. }; /* CR_Hebrew */
  8049. /* 'Hiragana': Script */
  8050. static const OnigCodePoint CR_Hiragana[] = {
  8051. 2,
  8052. 0x3041, 0x3096,
  8053. 0x309d, 0x309f
  8054. }; /* CR_Hiragana */
  8055. /* 'Inherited': Script */
  8056. static const OnigCodePoint CR_Inherited[] = {
  8057. 15,
  8058. 0x0300, 0x036f,
  8059. 0x064b, 0x0655,
  8060. 0x0670, 0x0670,
  8061. 0x1dc0, 0x1dc3,
  8062. 0x200c, 0x200d,
  8063. 0x20d0, 0x20eb,
  8064. 0x302a, 0x302f,
  8065. 0x3099, 0x309a,
  8066. 0xfe00, 0xfe0f,
  8067. 0xfe20, 0xfe23,
  8068. 0x1d167, 0x1d169,
  8069. 0x1d17b, 0x1d182,
  8070. 0x1d185, 0x1d18b,
  8071. 0x1d1aa, 0x1d1ad,
  8072. 0xe0100, 0xe01ef
  8073. }; /* CR_Inherited */
  8074. /* 'Kannada': Script */
  8075. static const OnigCodePoint CR_Kannada[] = {
  8076. 13,
  8077. 0x0c82, 0x0c83,
  8078. 0x0c85, 0x0c8c,
  8079. 0x0c8e, 0x0c90,
  8080. 0x0c92, 0x0ca8,
  8081. 0x0caa, 0x0cb3,
  8082. 0x0cb5, 0x0cb9,
  8083. 0x0cbc, 0x0cc4,
  8084. 0x0cc6, 0x0cc8,
  8085. 0x0cca, 0x0ccd,
  8086. 0x0cd5, 0x0cd6,
  8087. 0x0cde, 0x0cde,
  8088. 0x0ce0, 0x0ce1,
  8089. 0x0ce6, 0x0cef
  8090. }; /* CR_Kannada */
  8091. /* 'Katakana': Script */
  8092. static const OnigCodePoint CR_Katakana[] = {
  8093. 5,
  8094. 0x30a1, 0x30fa,
  8095. 0x30fd, 0x30ff,
  8096. 0x31f0, 0x31ff,
  8097. 0xff66, 0xff6f,
  8098. 0xff71, 0xff9d
  8099. }; /* CR_Katakana */
  8100. /* 'Kharoshthi': Script */
  8101. static const OnigCodePoint CR_Kharoshthi[] = {
  8102. 8,
  8103. 0x10a00, 0x10a03,
  8104. 0x10a05, 0x10a06,
  8105. 0x10a0c, 0x10a13,
  8106. 0x10a15, 0x10a17,
  8107. 0x10a19, 0x10a33,
  8108. 0x10a38, 0x10a3a,
  8109. 0x10a3f, 0x10a47,
  8110. 0x10a50, 0x10a58
  8111. }; /* CR_Kharoshthi */
  8112. /* 'Khmer': Script */
  8113. static const OnigCodePoint CR_Khmer[] = {
  8114. 4,
  8115. 0x1780, 0x17dd,
  8116. 0x17e0, 0x17e9,
  8117. 0x17f0, 0x17f9,
  8118. 0x19e0, 0x19ff
  8119. }; /* CR_Khmer */
  8120. /* 'Lao': Script */
  8121. static const OnigCodePoint CR_Lao[] = {
  8122. 18,
  8123. 0x0e81, 0x0e82,
  8124. 0x0e84, 0x0e84,
  8125. 0x0e87, 0x0e88,
  8126. 0x0e8a, 0x0e8a,
  8127. 0x0e8d, 0x0e8d,
  8128. 0x0e94, 0x0e97,
  8129. 0x0e99, 0x0e9f,
  8130. 0x0ea1, 0x0ea3,
  8131. 0x0ea5, 0x0ea5,
  8132. 0x0ea7, 0x0ea7,
  8133. 0x0eaa, 0x0eab,
  8134. 0x0ead, 0x0eb9,
  8135. 0x0ebb, 0x0ebd,
  8136. 0x0ec0, 0x0ec4,
  8137. 0x0ec6, 0x0ec6,
  8138. 0x0ec8, 0x0ecd,
  8139. 0x0ed0, 0x0ed9,
  8140. 0x0edc, 0x0edd
  8141. }; /* CR_Lao */
  8142. /* 'Latin': Script */
  8143. static const OnigCodePoint CR_Latin[] = {
  8144. 23,
  8145. 0x0041, 0x005a,
  8146. 0x0061, 0x007a,
  8147. 0x00aa, 0x00aa,
  8148. 0x00ba, 0x00ba,
  8149. 0x00c0, 0x00d6,
  8150. 0x00d8, 0x00f6,
  8151. 0x00f8, 0x0241,
  8152. 0x0250, 0x02b8,
  8153. 0x02e0, 0x02e4,
  8154. 0x1d00, 0x1d25,
  8155. 0x1d2c, 0x1d5c,
  8156. 0x1d62, 0x1d65,
  8157. 0x1d6b, 0x1d77,
  8158. 0x1d79, 0x1dbf,
  8159. 0x1e00, 0x1e9b,
  8160. 0x1ea0, 0x1ef9,
  8161. 0x2071, 0x2071,
  8162. 0x207f, 0x207f,
  8163. 0x2090, 0x2094,
  8164. 0x212a, 0x212b,
  8165. 0xfb00, 0xfb06,
  8166. 0xff21, 0xff3a,
  8167. 0xff41, 0xff5a
  8168. }; /* CR_Latin */
  8169. /* 'Limbu': Script */
  8170. static const OnigCodePoint CR_Limbu[] = {
  8171. 5,
  8172. 0x1900, 0x191c,
  8173. 0x1920, 0x192b,
  8174. 0x1930, 0x193b,
  8175. 0x1940, 0x1940,
  8176. 0x1944, 0x194f
  8177. }; /* CR_Limbu */
  8178. /* 'Linear_B': Script */
  8179. static const OnigCodePoint CR_Linear_B[] = {
  8180. 7,
  8181. 0x10000, 0x1000b,
  8182. 0x1000d, 0x10026,
  8183. 0x10028, 0x1003a,
  8184. 0x1003c, 0x1003d,
  8185. 0x1003f, 0x1004d,
  8186. 0x10050, 0x1005d,
  8187. 0x10080, 0x100fa
  8188. }; /* CR_Linear_B */
  8189. /* 'Malayalam': Script */
  8190. static const OnigCodePoint CR_Malayalam[] = {
  8191. 11,
  8192. 0x0d02, 0x0d03,
  8193. 0x0d05, 0x0d0c,
  8194. 0x0d0e, 0x0d10,
  8195. 0x0d12, 0x0d28,
  8196. 0x0d2a, 0x0d39,
  8197. 0x0d3e, 0x0d43,
  8198. 0x0d46, 0x0d48,
  8199. 0x0d4a, 0x0d4d,
  8200. 0x0d57, 0x0d57,
  8201. 0x0d60, 0x0d61,
  8202. 0x0d66, 0x0d6f
  8203. }; /* CR_Malayalam */
  8204. /* 'Mongolian': Script */
  8205. static const OnigCodePoint CR_Mongolian[] = {
  8206. 4,
  8207. 0x1800, 0x180e,
  8208. 0x1810, 0x1819,
  8209. 0x1820, 0x1877,
  8210. 0x1880, 0x18a9
  8211. }; /* CR_Mongolian */
  8212. /* 'Myanmar': Script */
  8213. static const OnigCodePoint CR_Myanmar[] = {
  8214. 6,
  8215. 0x1000, 0x1021,
  8216. 0x1023, 0x1027,
  8217. 0x1029, 0x102a,
  8218. 0x102c, 0x1032,
  8219. 0x1036, 0x1039,
  8220. 0x1040, 0x1059
  8221. }; /* CR_Myanmar */
  8222. /* 'New_Tai_Lue': Script */
  8223. static const OnigCodePoint CR_New_Tai_Lue[] = {
  8224. 4,
  8225. 0x1980, 0x19a9,
  8226. 0x19b0, 0x19c9,
  8227. 0x19d0, 0x19d9,
  8228. 0x19de, 0x19df
  8229. }; /* CR_New_Tai_Lue */
  8230. /* 'Ogham': Script */
  8231. static const OnigCodePoint CR_Ogham[] = {
  8232. 1,
  8233. 0x1680, 0x169c
  8234. }; /* CR_Ogham */
  8235. /* 'Old_Italic': Script */
  8236. static const OnigCodePoint CR_Old_Italic[] = {
  8237. 2,
  8238. 0x10300, 0x1031e,
  8239. 0x10320, 0x10323
  8240. }; /* CR_Old_Italic */
  8241. /* 'Old_Persian': Script */
  8242. static const OnigCodePoint CR_Old_Persian[] = {
  8243. 2,
  8244. 0x103a0, 0x103c3,
  8245. 0x103c8, 0x103d5
  8246. }; /* CR_Old_Persian */
  8247. /* 'Oriya': Script */
  8248. static const OnigCodePoint CR_Oriya[] = {
  8249. 14,
  8250. 0x0b01, 0x0b03,
  8251. 0x0b05, 0x0b0c,
  8252. 0x0b0f, 0x0b10,
  8253. 0x0b13, 0x0b28,
  8254. 0x0b2a, 0x0b30,
  8255. 0x0b32, 0x0b33,
  8256. 0x0b35, 0x0b39,
  8257. 0x0b3c, 0x0b43,
  8258. 0x0b47, 0x0b48,
  8259. 0x0b4b, 0x0b4d,
  8260. 0x0b56, 0x0b57,
  8261. 0x0b5c, 0x0b5d,
  8262. 0x0b5f, 0x0b61,
  8263. 0x0b66, 0x0b71
  8264. }; /* CR_Oriya */
  8265. /* 'Osmanya': Script */
  8266. static const OnigCodePoint CR_Osmanya[] = {
  8267. 2,
  8268. 0x10480, 0x1049d,
  8269. 0x104a0, 0x104a9
  8270. }; /* CR_Osmanya */
  8271. /* 'Runic': Script */
  8272. static const OnigCodePoint CR_Runic[] = {
  8273. 2,
  8274. 0x16a0, 0x16ea,
  8275. 0x16ee, 0x16f0
  8276. }; /* CR_Runic */
  8277. /* 'Shavian': Script */
  8278. static const OnigCodePoint CR_Shavian[] = {
  8279. 1,
  8280. 0x10450, 0x1047f
  8281. }; /* CR_Shavian */
  8282. /* 'Sinhala': Script */
  8283. static const OnigCodePoint CR_Sinhala[] = {
  8284. 11,
  8285. 0x0d82, 0x0d83,
  8286. 0x0d85, 0x0d96,
  8287. 0x0d9a, 0x0db1,
  8288. 0x0db3, 0x0dbb,
  8289. 0x0dbd, 0x0dbd,
  8290. 0x0dc0, 0x0dc6,
  8291. 0x0dca, 0x0dca,
  8292. 0x0dcf, 0x0dd4,
  8293. 0x0dd6, 0x0dd6,
  8294. 0x0dd8, 0x0ddf,
  8295. 0x0df2, 0x0df4
  8296. }; /* CR_Sinhala */
  8297. /* 'Syloti_Nagri': Script */
  8298. static const OnigCodePoint CR_Syloti_Nagri[] = {
  8299. 1,
  8300. 0xa800, 0xa82b
  8301. }; /* CR_Syloti_Nagri */
  8302. /* 'Syriac': Script */
  8303. static const OnigCodePoint CR_Syriac[] = {
  8304. 3,
  8305. 0x0700, 0x070d,
  8306. 0x070f, 0x074a,
  8307. 0x074d, 0x074f
  8308. }; /* CR_Syriac */
  8309. /* 'Tagalog': Script */
  8310. static const OnigCodePoint CR_Tagalog[] = {
  8311. 2,
  8312. 0x1700, 0x170c,
  8313. 0x170e, 0x1714
  8314. }; /* CR_Tagalog */
  8315. /* 'Tagbanwa': Script */
  8316. static const OnigCodePoint CR_Tagbanwa[] = {
  8317. 3,
  8318. 0x1760, 0x176c,
  8319. 0x176e, 0x1770,
  8320. 0x1772, 0x1773
  8321. }; /* CR_Tagbanwa */
  8322. /* 'Tai_Le': Script */
  8323. static const OnigCodePoint CR_Tai_Le[] = {
  8324. 2,
  8325. 0x1950, 0x196d,
  8326. 0x1970, 0x1974
  8327. }; /* CR_Tai_Le */
  8328. /* 'Tamil': Script */
  8329. static const OnigCodePoint CR_Tamil[] = {
  8330. 15,
  8331. 0x0b82, 0x0b83,
  8332. 0x0b85, 0x0b8a,
  8333. 0x0b8e, 0x0b90,
  8334. 0x0b92, 0x0b95,
  8335. 0x0b99, 0x0b9a,
  8336. 0x0b9c, 0x0b9c,
  8337. 0x0b9e, 0x0b9f,
  8338. 0x0ba3, 0x0ba4,
  8339. 0x0ba8, 0x0baa,
  8340. 0x0bae, 0x0bb9,
  8341. 0x0bbe, 0x0bc2,
  8342. 0x0bc6, 0x0bc8,
  8343. 0x0bca, 0x0bcd,
  8344. 0x0bd7, 0x0bd7,
  8345. 0x0be6, 0x0bfa
  8346. }; /* CR_Tamil */
  8347. /* 'Telugu': Script */
  8348. static const OnigCodePoint CR_Telugu[] = {
  8349. 12,
  8350. 0x0c01, 0x0c03,
  8351. 0x0c05, 0x0c0c,
  8352. 0x0c0e, 0x0c10,
  8353. 0x0c12, 0x0c28,
  8354. 0x0c2a, 0x0c33,
  8355. 0x0c35, 0x0c39,
  8356. 0x0c3e, 0x0c44,
  8357. 0x0c46, 0x0c48,
  8358. 0x0c4a, 0x0c4d,
  8359. 0x0c55, 0x0c56,
  8360. 0x0c60, 0x0c61,
  8361. 0x0c66, 0x0c6f
  8362. }; /* CR_Telugu */
  8363. /* 'Thaana': Script */
  8364. static const OnigCodePoint CR_Thaana[] = {
  8365. 1,
  8366. 0x0780, 0x07b1
  8367. }; /* CR_Thaana */
  8368. /* 'Thai': Script */
  8369. static const OnigCodePoint CR_Thai[] = {
  8370. 2,
  8371. 0x0e01, 0x0e3a,
  8372. 0x0e40, 0x0e5b
  8373. }; /* CR_Thai */
  8374. /* 'Tibetan': Script */
  8375. static const OnigCodePoint CR_Tibetan[] = {
  8376. 7,
  8377. 0x0f00, 0x0f47,
  8378. 0x0f49, 0x0f6a,
  8379. 0x0f71, 0x0f8b,
  8380. 0x0f90, 0x0f97,
  8381. 0x0f99, 0x0fbc,
  8382. 0x0fbe, 0x0fcc,
  8383. 0x0fcf, 0x0fd1
  8384. }; /* CR_Tibetan */
  8385. /* 'Tifinagh': Script */
  8386. static const OnigCodePoint CR_Tifinagh[] = {
  8387. 2,
  8388. 0x2d30, 0x2d65,
  8389. 0x2d6f, 0x2d6f
  8390. }; /* CR_Tifinagh */
  8391. /* 'Ugaritic': Script */
  8392. static const OnigCodePoint CR_Ugaritic[] = {
  8393. 2,
  8394. 0x10380, 0x1039d,
  8395. 0x1039f, 0x1039f
  8396. }; /* CR_Ugaritic */
  8397. /* 'Yi': Script */
  8398. static const OnigCodePoint CR_Yi[] = {
  8399. 2,
  8400. 0xa000, 0xa48c,
  8401. 0xa490, 0xa4c6
  8402. }; /* CR_Yi */
  8403. #endif /* USE_UNICODE_PROPERTIES */
  8404. typedef struct {
  8405. int n;
  8406. OnigCodePoint code[3];
  8407. } CodePointList3;
  8408. typedef struct {
  8409. OnigCodePoint from;
  8410. CodePointList3 to;
  8411. } CaseFold_11_Type;
  8412. typedef struct {
  8413. OnigCodePoint from;
  8414. CodePointList3 to;
  8415. } CaseUnfold_11_Type;
  8416. typedef struct {
  8417. int n;
  8418. OnigCodePoint code[2];
  8419. } CodePointList2;
  8420. typedef struct {
  8421. OnigCodePoint from[2];
  8422. CodePointList2 to;
  8423. } CaseUnfold_12_Type;
  8424. typedef struct {
  8425. OnigCodePoint from[3];
  8426. CodePointList2 to;
  8427. } CaseUnfold_13_Type;
  8428. static const CaseFold_11_Type CaseFold[] = {
  8429. { 0x0041, {1, {0x0061}}},
  8430. { 0x0042, {1, {0x0062}}},
  8431. { 0x0043, {1, {0x0063}}},
  8432. { 0x0044, {1, {0x0064}}},
  8433. { 0x0045, {1, {0x0065}}},
  8434. { 0x0046, {1, {0x0066}}},
  8435. { 0x0047, {1, {0x0067}}},
  8436. { 0x0048, {1, {0x0068}}},
  8437. { 0x004a, {1, {0x006a}}},
  8438. { 0x004b, {1, {0x006b}}},
  8439. { 0x004c, {1, {0x006c}}},
  8440. { 0x004d, {1, {0x006d}}},
  8441. { 0x004e, {1, {0x006e}}},
  8442. { 0x004f, {1, {0x006f}}},
  8443. { 0x0050, {1, {0x0070}}},
  8444. { 0x0051, {1, {0x0071}}},
  8445. { 0x0052, {1, {0x0072}}},
  8446. { 0x0053, {1, {0x0073}}},
  8447. { 0x0054, {1, {0x0074}}},
  8448. { 0x0055, {1, {0x0075}}},
  8449. { 0x0056, {1, {0x0076}}},
  8450. { 0x0057, {1, {0x0077}}},
  8451. { 0x0058, {1, {0x0078}}},
  8452. { 0x0059, {1, {0x0079}}},
  8453. { 0x005a, {1, {0x007a}}},
  8454. { 0x00b5, {1, {0x03bc}}},
  8455. { 0x00c0, {1, {0x00e0}}},
  8456. { 0x00c1, {1, {0x00e1}}},
  8457. { 0x00c2, {1, {0x00e2}}},
  8458. { 0x00c3, {1, {0x00e3}}},
  8459. { 0x00c4, {1, {0x00e4}}},
  8460. { 0x00c5, {1, {0x00e5}}},
  8461. { 0x00c6, {1, {0x00e6}}},
  8462. { 0x00c7, {1, {0x00e7}}},
  8463. { 0x00c8, {1, {0x00e8}}},
  8464. { 0x00c9, {1, {0x00e9}}},
  8465. { 0x00ca, {1, {0x00ea}}},
  8466. { 0x00cb, {1, {0x00eb}}},
  8467. { 0x00cc, {1, {0x00ec}}},
  8468. { 0x00cd, {1, {0x00ed}}},
  8469. { 0x00ce, {1, {0x00ee}}},
  8470. { 0x00cf, {1, {0x00ef}}},
  8471. { 0x00d0, {1, {0x00f0}}},
  8472. { 0x00d1, {1, {0x00f1}}},
  8473. { 0x00d2, {1, {0x00f2}}},
  8474. { 0x00d3, {1, {0x00f3}}},
  8475. { 0x00d4, {1, {0x00f4}}},
  8476. { 0x00d5, {1, {0x00f5}}},
  8477. { 0x00d6, {1, {0x00f6}}},
  8478. { 0x00d8, {1, {0x00f8}}},
  8479. { 0x00d9, {1, {0x00f9}}},
  8480. { 0x00da, {1, {0x00fa}}},
  8481. { 0x00db, {1, {0x00fb}}},
  8482. { 0x00dc, {1, {0x00fc}}},
  8483. { 0x00dd, {1, {0x00fd}}},
  8484. { 0x00de, {1, {0x00fe}}},
  8485. { 0x00df, {2, {0x0073, 0x0073}}},
  8486. { 0x0100, {1, {0x0101}}},
  8487. { 0x0102, {1, {0x0103}}},
  8488. { 0x0104, {1, {0x0105}}},
  8489. { 0x0106, {1, {0x0107}}},
  8490. { 0x0108, {1, {0x0109}}},
  8491. { 0x010a, {1, {0x010b}}},
  8492. { 0x010c, {1, {0x010d}}},
  8493. { 0x010e, {1, {0x010f}}},
  8494. { 0x0110, {1, {0x0111}}},
  8495. { 0x0112, {1, {0x0113}}},
  8496. { 0x0114, {1, {0x0115}}},
  8497. { 0x0116, {1, {0x0117}}},
  8498. { 0x0118, {1, {0x0119}}},
  8499. { 0x011a, {1, {0x011b}}},
  8500. { 0x011c, {1, {0x011d}}},
  8501. { 0x011e, {1, {0x011f}}},
  8502. { 0x0120, {1, {0x0121}}},
  8503. { 0x0122, {1, {0x0123}}},
  8504. { 0x0124, {1, {0x0125}}},
  8505. { 0x0126, {1, {0x0127}}},
  8506. { 0x0128, {1, {0x0129}}},
  8507. { 0x012a, {1, {0x012b}}},
  8508. { 0x012c, {1, {0x012d}}},
  8509. { 0x012e, {1, {0x012f}}},
  8510. { 0x0132, {1, {0x0133}}},
  8511. { 0x0134, {1, {0x0135}}},
  8512. { 0x0136, {1, {0x0137}}},
  8513. { 0x0139, {1, {0x013a}}},
  8514. { 0x013b, {1, {0x013c}}},
  8515. { 0x013d, {1, {0x013e}}},
  8516. { 0x013f, {1, {0x0140}}},
  8517. { 0x0141, {1, {0x0142}}},
  8518. { 0x0143, {1, {0x0144}}},
  8519. { 0x0145, {1, {0x0146}}},
  8520. { 0x0147, {1, {0x0148}}},
  8521. { 0x0149, {2, {0x02bc, 0x006e}}},
  8522. { 0x014a, {1, {0x014b}}},
  8523. { 0x014c, {1, {0x014d}}},
  8524. { 0x014e, {1, {0x014f}}},
  8525. { 0x0150, {1, {0x0151}}},
  8526. { 0x0152, {1, {0x0153}}},
  8527. { 0x0154, {1, {0x0155}}},
  8528. { 0x0156, {1, {0x0157}}},
  8529. { 0x0158, {1, {0x0159}}},
  8530. { 0x015a, {1, {0x015b}}},
  8531. { 0x015c, {1, {0x015d}}},
  8532. { 0x015e, {1, {0x015f}}},
  8533. { 0x0160, {1, {0x0161}}},
  8534. { 0x0162, {1, {0x0163}}},
  8535. { 0x0164, {1, {0x0165}}},
  8536. { 0x0166, {1, {0x0167}}},
  8537. { 0x0168, {1, {0x0169}}},
  8538. { 0x016a, {1, {0x016b}}},
  8539. { 0x016c, {1, {0x016d}}},
  8540. { 0x016e, {1, {0x016f}}},
  8541. { 0x0170, {1, {0x0171}}},
  8542. { 0x0172, {1, {0x0173}}},
  8543. { 0x0174, {1, {0x0175}}},
  8544. { 0x0176, {1, {0x0177}}},
  8545. { 0x0178, {1, {0x00ff}}},
  8546. { 0x0179, {1, {0x017a}}},
  8547. { 0x017b, {1, {0x017c}}},
  8548. { 0x017d, {1, {0x017e}}},
  8549. { 0x017f, {1, {0x0073}}},
  8550. { 0x0181, {1, {0x0253}}},
  8551. { 0x0182, {1, {0x0183}}},
  8552. { 0x0184, {1, {0x0185}}},
  8553. { 0x0186, {1, {0x0254}}},
  8554. { 0x0187, {1, {0x0188}}},
  8555. { 0x0189, {1, {0x0256}}},
  8556. { 0x018a, {1, {0x0257}}},
  8557. { 0x018b, {1, {0x018c}}},
  8558. { 0x018e, {1, {0x01dd}}},
  8559. { 0x018f, {1, {0x0259}}},
  8560. { 0x0190, {1, {0x025b}}},
  8561. { 0x0191, {1, {0x0192}}},
  8562. { 0x0193, {1, {0x0260}}},
  8563. { 0x0194, {1, {0x0263}}},
  8564. { 0x0196, {1, {0x0269}}},
  8565. { 0x0197, {1, {0x0268}}},
  8566. { 0x0198, {1, {0x0199}}},
  8567. { 0x019c, {1, {0x026f}}},
  8568. { 0x019d, {1, {0x0272}}},
  8569. { 0x019f, {1, {0x0275}}},
  8570. { 0x01a0, {1, {0x01a1}}},
  8571. { 0x01a2, {1, {0x01a3}}},
  8572. { 0x01a4, {1, {0x01a5}}},
  8573. { 0x01a6, {1, {0x0280}}},
  8574. { 0x01a7, {1, {0x01a8}}},
  8575. { 0x01a9, {1, {0x0283}}},
  8576. { 0x01ac, {1, {0x01ad}}},
  8577. { 0x01ae, {1, {0x0288}}},
  8578. { 0x01af, {1, {0x01b0}}},
  8579. { 0x01b1, {1, {0x028a}}},
  8580. { 0x01b2, {1, {0x028b}}},
  8581. { 0x01b3, {1, {0x01b4}}},
  8582. { 0x01b5, {1, {0x01b6}}},
  8583. { 0x01b7, {1, {0x0292}}},
  8584. { 0x01b8, {1, {0x01b9}}},
  8585. { 0x01bc, {1, {0x01bd}}},
  8586. { 0x01c4, {1, {0x01c6}}},
  8587. { 0x01c5, {1, {0x01c6}}},
  8588. { 0x01c7, {1, {0x01c9}}},
  8589. { 0x01c8, {1, {0x01c9}}},
  8590. { 0x01ca, {1, {0x01cc}}},
  8591. { 0x01cb, {1, {0x01cc}}},
  8592. { 0x01cd, {1, {0x01ce}}},
  8593. { 0x01cf, {1, {0x01d0}}},
  8594. { 0x01d1, {1, {0x01d2}}},
  8595. { 0x01d3, {1, {0x01d4}}},
  8596. { 0x01d5, {1, {0x01d6}}},
  8597. { 0x01d7, {1, {0x01d8}}},
  8598. { 0x01d9, {1, {0x01da}}},
  8599. { 0x01db, {1, {0x01dc}}},
  8600. { 0x01de, {1, {0x01df}}},
  8601. { 0x01e0, {1, {0x01e1}}},
  8602. { 0x01e2, {1, {0x01e3}}},
  8603. { 0x01e4, {1, {0x01e5}}},
  8604. { 0x01e6, {1, {0x01e7}}},
  8605. { 0x01e8, {1, {0x01e9}}},
  8606. { 0x01ea, {1, {0x01eb}}},
  8607. { 0x01ec, {1, {0x01ed}}},
  8608. { 0x01ee, {1, {0x01ef}}},
  8609. { 0x01f0, {2, {0x006a, 0x030c}}},
  8610. { 0x01f1, {1, {0x01f3}}},
  8611. { 0x01f2, {1, {0x01f3}}},
  8612. { 0x01f4, {1, {0x01f5}}},
  8613. { 0x01f6, {1, {0x0195}}},
  8614. { 0x01f7, {1, {0x01bf}}},
  8615. { 0x01f8, {1, {0x01f9}}},
  8616. { 0x01fa, {1, {0x01fb}}},
  8617. { 0x01fc, {1, {0x01fd}}},
  8618. { 0x01fe, {1, {0x01ff}}},
  8619. { 0x0200, {1, {0x0201}}},
  8620. { 0x0202, {1, {0x0203}}},
  8621. { 0x0204, {1, {0x0205}}},
  8622. { 0x0206, {1, {0x0207}}},
  8623. { 0x0208, {1, {0x0209}}},
  8624. { 0x020a, {1, {0x020b}}},
  8625. { 0x020c, {1, {0x020d}}},
  8626. { 0x020e, {1, {0x020f}}},
  8627. { 0x0210, {1, {0x0211}}},
  8628. { 0x0212, {1, {0x0213}}},
  8629. { 0x0214, {1, {0x0215}}},
  8630. { 0x0216, {1, {0x0217}}},
  8631. { 0x0218, {1, {0x0219}}},
  8632. { 0x021a, {1, {0x021b}}},
  8633. { 0x021c, {1, {0x021d}}},
  8634. { 0x021e, {1, {0x021f}}},
  8635. { 0x0220, {1, {0x019e}}},
  8636. { 0x0222, {1, {0x0223}}},
  8637. { 0x0224, {1, {0x0225}}},
  8638. { 0x0226, {1, {0x0227}}},
  8639. { 0x0228, {1, {0x0229}}},
  8640. { 0x022a, {1, {0x022b}}},
  8641. { 0x022c, {1, {0x022d}}},
  8642. { 0x022e, {1, {0x022f}}},
  8643. { 0x0230, {1, {0x0231}}},
  8644. { 0x0232, {1, {0x0233}}},
  8645. { 0x023b, {1, {0x023c}}},
  8646. { 0x023d, {1, {0x019a}}},
  8647. { 0x0241, {1, {0x0294}}},
  8648. { 0x0345, {1, {0x03b9}}},
  8649. { 0x0386, {1, {0x03ac}}},
  8650. { 0x0388, {1, {0x03ad}}},
  8651. { 0x0389, {1, {0x03ae}}},
  8652. { 0x038a, {1, {0x03af}}},
  8653. { 0x038c, {1, {0x03cc}}},
  8654. { 0x038e, {1, {0x03cd}}},
  8655. { 0x038f, {1, {0x03ce}}},
  8656. { 0x0390, {3, {0x03b9, 0x0308, 0x0301}}},
  8657. { 0x0391, {1, {0x03b1}}},
  8658. { 0x0392, {1, {0x03b2}}},
  8659. { 0x0393, {1, {0x03b3}}},
  8660. { 0x0394, {1, {0x03b4}}},
  8661. { 0x0395, {1, {0x03b5}}},
  8662. { 0x0396, {1, {0x03b6}}},
  8663. { 0x0397, {1, {0x03b7}}},
  8664. { 0x0398, {1, {0x03b8}}},
  8665. { 0x0399, {1, {0x03b9}}},
  8666. { 0x039a, {1, {0x03ba}}},
  8667. { 0x039b, {1, {0x03bb}}},
  8668. { 0x039c, {1, {0x03bc}}},
  8669. { 0x039d, {1, {0x03bd}}},
  8670. { 0x039e, {1, {0x03be}}},
  8671. { 0x039f, {1, {0x03bf}}},
  8672. { 0x03a0, {1, {0x03c0}}},
  8673. { 0x03a1, {1, {0x03c1}}},
  8674. { 0x03a3, {1, {0x03c3}}},
  8675. { 0x03a4, {1, {0x03c4}}},
  8676. { 0x03a5, {1, {0x03c5}}},
  8677. { 0x03a6, {1, {0x03c6}}},
  8678. { 0x03a7, {1, {0x03c7}}},
  8679. { 0x03a8, {1, {0x03c8}}},
  8680. { 0x03a9, {1, {0x03c9}}},
  8681. { 0x03aa, {1, {0x03ca}}},
  8682. { 0x03ab, {1, {0x03cb}}},
  8683. { 0x03b0, {3, {0x03c5, 0x0308, 0x0301}}},
  8684. { 0x03c2, {1, {0x03c3}}},
  8685. { 0x03d0, {1, {0x03b2}}},
  8686. { 0x03d1, {1, {0x03b8}}},
  8687. { 0x03d5, {1, {0x03c6}}},
  8688. { 0x03d6, {1, {0x03c0}}},
  8689. { 0x03d8, {1, {0x03d9}}},
  8690. { 0x03da, {1, {0x03db}}},
  8691. { 0x03dc, {1, {0x03dd}}},
  8692. { 0x03de, {1, {0x03df}}},
  8693. { 0x03e0, {1, {0x03e1}}},
  8694. { 0x03e2, {1, {0x03e3}}},
  8695. { 0x03e4, {1, {0x03e5}}},
  8696. { 0x03e6, {1, {0x03e7}}},
  8697. { 0x03e8, {1, {0x03e9}}},
  8698. { 0x03ea, {1, {0x03eb}}},
  8699. { 0x03ec, {1, {0x03ed}}},
  8700. { 0x03ee, {1, {0x03ef}}},
  8701. { 0x03f0, {1, {0x03ba}}},
  8702. { 0x03f1, {1, {0x03c1}}},
  8703. { 0x03f4, {1, {0x03b8}}},
  8704. { 0x03f5, {1, {0x03b5}}},
  8705. { 0x03f7, {1, {0x03f8}}},
  8706. { 0x03f9, {1, {0x03f2}}},
  8707. { 0x03fa, {1, {0x03fb}}},
  8708. { 0x0400, {1, {0x0450}}},
  8709. { 0x0401, {1, {0x0451}}},
  8710. { 0x0402, {1, {0x0452}}},
  8711. { 0x0403, {1, {0x0453}}},
  8712. { 0x0404, {1, {0x0454}}},
  8713. { 0x0405, {1, {0x0455}}},
  8714. { 0x0406, {1, {0x0456}}},
  8715. { 0x0407, {1, {0x0457}}},
  8716. { 0x0408, {1, {0x0458}}},
  8717. { 0x0409, {1, {0x0459}}},
  8718. { 0x040a, {1, {0x045a}}},
  8719. { 0x040b, {1, {0x045b}}},
  8720. { 0x040c, {1, {0x045c}}},
  8721. { 0x040d, {1, {0x045d}}},
  8722. { 0x040e, {1, {0x045e}}},
  8723. { 0x040f, {1, {0x045f}}},
  8724. { 0x0410, {1, {0x0430}}},
  8725. { 0x0411, {1, {0x0431}}},
  8726. { 0x0412, {1, {0x0432}}},
  8727. { 0x0413, {1, {0x0433}}},
  8728. { 0x0414, {1, {0x0434}}},
  8729. { 0x0415, {1, {0x0435}}},
  8730. { 0x0416, {1, {0x0436}}},
  8731. { 0x0417, {1, {0x0437}}},
  8732. { 0x0418, {1, {0x0438}}},
  8733. { 0x0419, {1, {0x0439}}},
  8734. { 0x041a, {1, {0x043a}}},
  8735. { 0x041b, {1, {0x043b}}},
  8736. { 0x041c, {1, {0x043c}}},
  8737. { 0x041d, {1, {0x043d}}},
  8738. { 0x041e, {1, {0x043e}}},
  8739. { 0x041f, {1, {0x043f}}},
  8740. { 0x0420, {1, {0x0440}}},
  8741. { 0x0421, {1, {0x0441}}},
  8742. { 0x0422, {1, {0x0442}}},
  8743. { 0x0423, {1, {0x0443}}},
  8744. { 0x0424, {1, {0x0444}}},
  8745. { 0x0425, {1, {0x0445}}},
  8746. { 0x0426, {1, {0x0446}}},
  8747. { 0x0427, {1, {0x0447}}},
  8748. { 0x0428, {1, {0x0448}}},
  8749. { 0x0429, {1, {0x0449}}},
  8750. { 0x042a, {1, {0x044a}}},
  8751. { 0x042b, {1, {0x044b}}},
  8752. { 0x042c, {1, {0x044c}}},
  8753. { 0x042d, {1, {0x044d}}},
  8754. { 0x042e, {1, {0x044e}}},
  8755. { 0x042f, {1, {0x044f}}},
  8756. { 0x0460, {1, {0x0461}}},
  8757. { 0x0462, {1, {0x0463}}},
  8758. { 0x0464, {1, {0x0465}}},
  8759. { 0x0466, {1, {0x0467}}},
  8760. { 0x0468, {1, {0x0469}}},
  8761. { 0x046a, {1, {0x046b}}},
  8762. { 0x046c, {1, {0x046d}}},
  8763. { 0x046e, {1, {0x046f}}},
  8764. { 0x0470, {1, {0x0471}}},
  8765. { 0x0472, {1, {0x0473}}},
  8766. { 0x0474, {1, {0x0475}}},
  8767. { 0x0476, {1, {0x0477}}},
  8768. { 0x0478, {1, {0x0479}}},
  8769. { 0x047a, {1, {0x047b}}},
  8770. { 0x047c, {1, {0x047d}}},
  8771. { 0x047e, {1, {0x047f}}},
  8772. { 0x0480, {1, {0x0481}}},
  8773. { 0x048a, {1, {0x048b}}},
  8774. { 0x048c, {1, {0x048d}}},
  8775. { 0x048e, {1, {0x048f}}},
  8776. { 0x0490, {1, {0x0491}}},
  8777. { 0x0492, {1, {0x0493}}},
  8778. { 0x0494, {1, {0x0495}}},
  8779. { 0x0496, {1, {0x0497}}},
  8780. { 0x0498, {1, {0x0499}}},
  8781. { 0x049a, {1, {0x049b}}},
  8782. { 0x049c, {1, {0x049d}}},
  8783. { 0x049e, {1, {0x049f}}},
  8784. { 0x04a0, {1, {0x04a1}}},
  8785. { 0x04a2, {1, {0x04a3}}},
  8786. { 0x04a4, {1, {0x04a5}}},
  8787. { 0x04a6, {1, {0x04a7}}},
  8788. { 0x04a8, {1, {0x04a9}}},
  8789. { 0x04aa, {1, {0x04ab}}},
  8790. { 0x04ac, {1, {0x04ad}}},
  8791. { 0x04ae, {1, {0x04af}}},
  8792. { 0x04b0, {1, {0x04b1}}},
  8793. { 0x04b2, {1, {0x04b3}}},
  8794. { 0x04b4, {1, {0x04b5}}},
  8795. { 0x04b6, {1, {0x04b7}}},
  8796. { 0x04b8, {1, {0x04b9}}},
  8797. { 0x04ba, {1, {0x04bb}}},
  8798. { 0x04bc, {1, {0x04bd}}},
  8799. { 0x04be, {1, {0x04bf}}},
  8800. { 0x04c1, {1, {0x04c2}}},
  8801. { 0x04c3, {1, {0x04c4}}},
  8802. { 0x04c5, {1, {0x04c6}}},
  8803. { 0x04c7, {1, {0x04c8}}},
  8804. { 0x04c9, {1, {0x04ca}}},
  8805. { 0x04cb, {1, {0x04cc}}},
  8806. { 0x04cd, {1, {0x04ce}}},
  8807. { 0x04d0, {1, {0x04d1}}},
  8808. { 0x04d2, {1, {0x04d3}}},
  8809. { 0x04d4, {1, {0x04d5}}},
  8810. { 0x04d6, {1, {0x04d7}}},
  8811. { 0x04d8, {1, {0x04d9}}},
  8812. { 0x04da, {1, {0x04db}}},
  8813. { 0x04dc, {1, {0x04dd}}},
  8814. { 0x04de, {1, {0x04df}}},
  8815. { 0x04e0, {1, {0x04e1}}},
  8816. { 0x04e2, {1, {0x04e3}}},
  8817. { 0x04e4, {1, {0x04e5}}},
  8818. { 0x04e6, {1, {0x04e7}}},
  8819. { 0x04e8, {1, {0x04e9}}},
  8820. { 0x04ea, {1, {0x04eb}}},
  8821. { 0x04ec, {1, {0x04ed}}},
  8822. { 0x04ee, {1, {0x04ef}}},
  8823. { 0x04f0, {1, {0x04f1}}},
  8824. { 0x04f2, {1, {0x04f3}}},
  8825. { 0x04f4, {1, {0x04f5}}},
  8826. { 0x04f6, {1, {0x04f7}}},
  8827. { 0x04f8, {1, {0x04f9}}},
  8828. { 0x0500, {1, {0x0501}}},
  8829. { 0x0502, {1, {0x0503}}},
  8830. { 0x0504, {1, {0x0505}}},
  8831. { 0x0506, {1, {0x0507}}},
  8832. { 0x0508, {1, {0x0509}}},
  8833. { 0x050a, {1, {0x050b}}},
  8834. { 0x050c, {1, {0x050d}}},
  8835. { 0x050e, {1, {0x050f}}},
  8836. { 0x0531, {1, {0x0561}}},
  8837. { 0x0532, {1, {0x0562}}},
  8838. { 0x0533, {1, {0x0563}}},
  8839. { 0x0534, {1, {0x0564}}},
  8840. { 0x0535, {1, {0x0565}}},
  8841. { 0x0536, {1, {0x0566}}},
  8842. { 0x0537, {1, {0x0567}}},
  8843. { 0x0538, {1, {0x0568}}},
  8844. { 0x0539, {1, {0x0569}}},
  8845. { 0x053a, {1, {0x056a}}},
  8846. { 0x053b, {1, {0x056b}}},
  8847. { 0x053c, {1, {0x056c}}},
  8848. { 0x053d, {1, {0x056d}}},
  8849. { 0x053e, {1, {0x056e}}},
  8850. { 0x053f, {1, {0x056f}}},
  8851. { 0x0540, {1, {0x0570}}},
  8852. { 0x0541, {1, {0x0571}}},
  8853. { 0x0542, {1, {0x0572}}},
  8854. { 0x0543, {1, {0x0573}}},
  8855. { 0x0544, {1, {0x0574}}},
  8856. { 0x0545, {1, {0x0575}}},
  8857. { 0x0546, {1, {0x0576}}},
  8858. { 0x0547, {1, {0x0577}}},
  8859. { 0x0548, {1, {0x0578}}},
  8860. { 0x0549, {1, {0x0579}}},
  8861. { 0x054a, {1, {0x057a}}},
  8862. { 0x054b, {1, {0x057b}}},
  8863. { 0x054c, {1, {0x057c}}},
  8864. { 0x054d, {1, {0x057d}}},
  8865. { 0x054e, {1, {0x057e}}},
  8866. { 0x054f, {1, {0x057f}}},
  8867. { 0x0550, {1, {0x0580}}},
  8868. { 0x0551, {1, {0x0581}}},
  8869. { 0x0552, {1, {0x0582}}},
  8870. { 0x0553, {1, {0x0583}}},
  8871. { 0x0554, {1, {0x0584}}},
  8872. { 0x0555, {1, {0x0585}}},
  8873. { 0x0556, {1, {0x0586}}},
  8874. { 0x0587, {2, {0x0565, 0x0582}}},
  8875. { 0x10a0, {1, {0x2d00}}},
  8876. { 0x10a1, {1, {0x2d01}}},
  8877. { 0x10a2, {1, {0x2d02}}},
  8878. { 0x10a3, {1, {0x2d03}}},
  8879. { 0x10a4, {1, {0x2d04}}},
  8880. { 0x10a5, {1, {0x2d05}}},
  8881. { 0x10a6, {1, {0x2d06}}},
  8882. { 0x10a7, {1, {0x2d07}}},
  8883. { 0x10a8, {1, {0x2d08}}},
  8884. { 0x10a9, {1, {0x2d09}}},
  8885. { 0x10aa, {1, {0x2d0a}}},
  8886. { 0x10ab, {1, {0x2d0b}}},
  8887. { 0x10ac, {1, {0x2d0c}}},
  8888. { 0x10ad, {1, {0x2d0d}}},
  8889. { 0x10ae, {1, {0x2d0e}}},
  8890. { 0x10af, {1, {0x2d0f}}},
  8891. { 0x10b0, {1, {0x2d10}}},
  8892. { 0x10b1, {1, {0x2d11}}},
  8893. { 0x10b2, {1, {0x2d12}}},
  8894. { 0x10b3, {1, {0x2d13}}},
  8895. { 0x10b4, {1, {0x2d14}}},
  8896. { 0x10b5, {1, {0x2d15}}},
  8897. { 0x10b6, {1, {0x2d16}}},
  8898. { 0x10b7, {1, {0x2d17}}},
  8899. { 0x10b8, {1, {0x2d18}}},
  8900. { 0x10b9, {1, {0x2d19}}},
  8901. { 0x10ba, {1, {0x2d1a}}},
  8902. { 0x10bb, {1, {0x2d1b}}},
  8903. { 0x10bc, {1, {0x2d1c}}},
  8904. { 0x10bd, {1, {0x2d1d}}},
  8905. { 0x10be, {1, {0x2d1e}}},
  8906. { 0x10bf, {1, {0x2d1f}}},
  8907. { 0x10c0, {1, {0x2d20}}},
  8908. { 0x10c1, {1, {0x2d21}}},
  8909. { 0x10c2, {1, {0x2d22}}},
  8910. { 0x10c3, {1, {0x2d23}}},
  8911. { 0x10c4, {1, {0x2d24}}},
  8912. { 0x10c5, {1, {0x2d25}}},
  8913. { 0x1e00, {1, {0x1e01}}},
  8914. { 0x1e02, {1, {0x1e03}}},
  8915. { 0x1e04, {1, {0x1e05}}},
  8916. { 0x1e06, {1, {0x1e07}}},
  8917. { 0x1e08, {1, {0x1e09}}},
  8918. { 0x1e0a, {1, {0x1e0b}}},
  8919. { 0x1e0c, {1, {0x1e0d}}},
  8920. { 0x1e0e, {1, {0x1e0f}}},
  8921. { 0x1e10, {1, {0x1e11}}},
  8922. { 0x1e12, {1, {0x1e13}}},
  8923. { 0x1e14, {1, {0x1e15}}},
  8924. { 0x1e16, {1, {0x1e17}}},
  8925. { 0x1e18, {1, {0x1e19}}},
  8926. { 0x1e1a, {1, {0x1e1b}}},
  8927. { 0x1e1c, {1, {0x1e1d}}},
  8928. { 0x1e1e, {1, {0x1e1f}}},
  8929. { 0x1e20, {1, {0x1e21}}},
  8930. { 0x1e22, {1, {0x1e23}}},
  8931. { 0x1e24, {1, {0x1e25}}},
  8932. { 0x1e26, {1, {0x1e27}}},
  8933. { 0x1e28, {1, {0x1e29}}},
  8934. { 0x1e2a, {1, {0x1e2b}}},
  8935. { 0x1e2c, {1, {0x1e2d}}},
  8936. { 0x1e2e, {1, {0x1e2f}}},
  8937. { 0x1e30, {1, {0x1e31}}},
  8938. { 0x1e32, {1, {0x1e33}}},
  8939. { 0x1e34, {1, {0x1e35}}},
  8940. { 0x1e36, {1, {0x1e37}}},
  8941. { 0x1e38, {1, {0x1e39}}},
  8942. { 0x1e3a, {1, {0x1e3b}}},
  8943. { 0x1e3c, {1, {0x1e3d}}},
  8944. { 0x1e3e, {1, {0x1e3f}}},
  8945. { 0x1e40, {1, {0x1e41}}},
  8946. { 0x1e42, {1, {0x1e43}}},
  8947. { 0x1e44, {1, {0x1e45}}},
  8948. { 0x1e46, {1, {0x1e47}}},
  8949. { 0x1e48, {1, {0x1e49}}},
  8950. { 0x1e4a, {1, {0x1e4b}}},
  8951. { 0x1e4c, {1, {0x1e4d}}},
  8952. { 0x1e4e, {1, {0x1e4f}}},
  8953. { 0x1e50, {1, {0x1e51}}},
  8954. { 0x1e52, {1, {0x1e53}}},
  8955. { 0x1e54, {1, {0x1e55}}},
  8956. { 0x1e56, {1, {0x1e57}}},
  8957. { 0x1e58, {1, {0x1e59}}},
  8958. { 0x1e5a, {1, {0x1e5b}}},
  8959. { 0x1e5c, {1, {0x1e5d}}},
  8960. { 0x1e5e, {1, {0x1e5f}}},
  8961. { 0x1e60, {1, {0x1e61}}},
  8962. { 0x1e62, {1, {0x1e63}}},
  8963. { 0x1e64, {1, {0x1e65}}},
  8964. { 0x1e66, {1, {0x1e67}}},
  8965. { 0x1e68, {1, {0x1e69}}},
  8966. { 0x1e6a, {1, {0x1e6b}}},
  8967. { 0x1e6c, {1, {0x1e6d}}},
  8968. { 0x1e6e, {1, {0x1e6f}}},
  8969. { 0x1e70, {1, {0x1e71}}},
  8970. { 0x1e72, {1, {0x1e73}}},
  8971. { 0x1e74, {1, {0x1e75}}},
  8972. { 0x1e76, {1, {0x1e77}}},
  8973. { 0x1e78, {1, {0x1e79}}},
  8974. { 0x1e7a, {1, {0x1e7b}}},
  8975. { 0x1e7c, {1, {0x1e7d}}},
  8976. { 0x1e7e, {1, {0x1e7f}}},
  8977. { 0x1e80, {1, {0x1e81}}},
  8978. { 0x1e82, {1, {0x1e83}}},
  8979. { 0x1e84, {1, {0x1e85}}},
  8980. { 0x1e86, {1, {0x1e87}}},
  8981. { 0x1e88, {1, {0x1e89}}},
  8982. { 0x1e8a, {1, {0x1e8b}}},
  8983. { 0x1e8c, {1, {0x1e8d}}},
  8984. { 0x1e8e, {1, {0x1e8f}}},
  8985. { 0x1e90, {1, {0x1e91}}},
  8986. { 0x1e92, {1, {0x1e93}}},
  8987. { 0x1e94, {1, {0x1e95}}},
  8988. { 0x1e96, {2, {0x0068, 0x0331}}},
  8989. { 0x1e97, {2, {0x0074, 0x0308}}},
  8990. { 0x1e98, {2, {0x0077, 0x030a}}},
  8991. { 0x1e99, {2, {0x0079, 0x030a}}},
  8992. { 0x1e9a, {2, {0x0061, 0x02be}}},
  8993. { 0x1e9b, {1, {0x1e61}}},
  8994. { 0x1ea0, {1, {0x1ea1}}},
  8995. { 0x1ea2, {1, {0x1ea3}}},
  8996. { 0x1ea4, {1, {0x1ea5}}},
  8997. { 0x1ea6, {1, {0x1ea7}}},
  8998. { 0x1ea8, {1, {0x1ea9}}},
  8999. { 0x1eaa, {1, {0x1eab}}},
  9000. { 0x1eac, {1, {0x1ead}}},
  9001. { 0x1eae, {1, {0x1eaf}}},
  9002. { 0x1eb0, {1, {0x1eb1}}},
  9003. { 0x1eb2, {1, {0x1eb3}}},
  9004. { 0x1eb4, {1, {0x1eb5}}},
  9005. { 0x1eb6, {1, {0x1eb7}}},
  9006. { 0x1eb8, {1, {0x1eb9}}},
  9007. { 0x1eba, {1, {0x1ebb}}},
  9008. { 0x1ebc, {1, {0x1ebd}}},
  9009. { 0x1ebe, {1, {0x1ebf}}},
  9010. { 0x1ec0, {1, {0x1ec1}}},
  9011. { 0x1ec2, {1, {0x1ec3}}},
  9012. { 0x1ec4, {1, {0x1ec5}}},
  9013. { 0x1ec6, {1, {0x1ec7}}},
  9014. { 0x1ec8, {1, {0x1ec9}}},
  9015. { 0x1eca, {1, {0x1ecb}}},
  9016. { 0x1ecc, {1, {0x1ecd}}},
  9017. { 0x1ece, {1, {0x1ecf}}},
  9018. { 0x1ed0, {1, {0x1ed1}}},
  9019. { 0x1ed2, {1, {0x1ed3}}},
  9020. { 0x1ed4, {1, {0x1ed5}}},
  9021. { 0x1ed6, {1, {0x1ed7}}},
  9022. { 0x1ed8, {1, {0x1ed9}}},
  9023. { 0x1eda, {1, {0x1edb}}},
  9024. { 0x1edc, {1, {0x1edd}}},
  9025. { 0x1ede, {1, {0x1edf}}},
  9026. { 0x1ee0, {1, {0x1ee1}}},
  9027. { 0x1ee2, {1, {0x1ee3}}},
  9028. { 0x1ee4, {1, {0x1ee5}}},
  9029. { 0x1ee6, {1, {0x1ee7}}},
  9030. { 0x1ee8, {1, {0x1ee9}}},
  9031. { 0x1eea, {1, {0x1eeb}}},
  9032. { 0x1eec, {1, {0x1eed}}},
  9033. { 0x1eee, {1, {0x1eef}}},
  9034. { 0x1ef0, {1, {0x1ef1}}},
  9035. { 0x1ef2, {1, {0x1ef3}}},
  9036. { 0x1ef4, {1, {0x1ef5}}},
  9037. { 0x1ef6, {1, {0x1ef7}}},
  9038. { 0x1ef8, {1, {0x1ef9}}},
  9039. { 0x1f08, {1, {0x1f00}}},
  9040. { 0x1f09, {1, {0x1f01}}},
  9041. { 0x1f0a, {1, {0x1f02}}},
  9042. { 0x1f0b, {1, {0x1f03}}},
  9043. { 0x1f0c, {1, {0x1f04}}},
  9044. { 0x1f0d, {1, {0x1f05}}},
  9045. { 0x1f0e, {1, {0x1f06}}},
  9046. { 0x1f0f, {1, {0x1f07}}},
  9047. { 0x1f18, {1, {0x1f10}}},
  9048. { 0x1f19, {1, {0x1f11}}},
  9049. { 0x1f1a, {1, {0x1f12}}},
  9050. { 0x1f1b, {1, {0x1f13}}},
  9051. { 0x1f1c, {1, {0x1f14}}},
  9052. { 0x1f1d, {1, {0x1f15}}},
  9053. { 0x1f28, {1, {0x1f20}}},
  9054. { 0x1f29, {1, {0x1f21}}},
  9055. { 0x1f2a, {1, {0x1f22}}},
  9056. { 0x1f2b, {1, {0x1f23}}},
  9057. { 0x1f2c, {1, {0x1f24}}},
  9058. { 0x1f2d, {1, {0x1f25}}},
  9059. { 0x1f2e, {1, {0x1f26}}},
  9060. { 0x1f2f, {1, {0x1f27}}},
  9061. { 0x1f38, {1, {0x1f30}}},
  9062. { 0x1f39, {1, {0x1f31}}},
  9063. { 0x1f3a, {1, {0x1f32}}},
  9064. { 0x1f3b, {1, {0x1f33}}},
  9065. { 0x1f3c, {1, {0x1f34}}},
  9066. { 0x1f3d, {1, {0x1f35}}},
  9067. { 0x1f3e, {1, {0x1f36}}},
  9068. { 0x1f3f, {1, {0x1f37}}},
  9069. { 0x1f48, {1, {0x1f40}}},
  9070. { 0x1f49, {1, {0x1f41}}},
  9071. { 0x1f4a, {1, {0x1f42}}},
  9072. { 0x1f4b, {1, {0x1f43}}},
  9073. { 0x1f4c, {1, {0x1f44}}},
  9074. { 0x1f4d, {1, {0x1f45}}},
  9075. { 0x1f50, {2, {0x03c5, 0x0313}}},
  9076. { 0x1f52, {3, {0x03c5, 0x0313, 0x0300}}},
  9077. { 0x1f54, {3, {0x03c5, 0x0313, 0x0301}}},
  9078. { 0x1f56, {3, {0x03c5, 0x0313, 0x0342}}},
  9079. { 0x1f59, {1, {0x1f51}}},
  9080. { 0x1f5b, {1, {0x1f53}}},
  9081. { 0x1f5d, {1, {0x1f55}}},
  9082. { 0x1f5f, {1, {0x1f57}}},
  9083. { 0x1f68, {1, {0x1f60}}},
  9084. { 0x1f69, {1, {0x1f61}}},
  9085. { 0x1f6a, {1, {0x1f62}}},
  9086. { 0x1f6b, {1, {0x1f63}}},
  9087. { 0x1f6c, {1, {0x1f64}}},
  9088. { 0x1f6d, {1, {0x1f65}}},
  9089. { 0x1f6e, {1, {0x1f66}}},
  9090. { 0x1f6f, {1, {0x1f67}}},
  9091. { 0x1f80, {2, {0x1f00, 0x03b9}}},
  9092. { 0x1f81, {2, {0x1f01, 0x03b9}}},
  9093. { 0x1f82, {2, {0x1f02, 0x03b9}}},
  9094. { 0x1f83, {2, {0x1f03, 0x03b9}}},
  9095. { 0x1f84, {2, {0x1f04, 0x03b9}}},
  9096. { 0x1f85, {2, {0x1f05, 0x03b9}}},
  9097. { 0x1f86, {2, {0x1f06, 0x03b9}}},
  9098. { 0x1f87, {2, {0x1f07, 0x03b9}}},
  9099. { 0x1f88, {2, {0x1f00, 0x03b9}}},
  9100. { 0x1f89, {2, {0x1f01, 0x03b9}}},
  9101. { 0x1f8a, {2, {0x1f02, 0x03b9}}},
  9102. { 0x1f8b, {2, {0x1f03, 0x03b9}}},
  9103. { 0x1f8c, {2, {0x1f04, 0x03b9}}},
  9104. { 0x1f8d, {2, {0x1f05, 0x03b9}}},
  9105. { 0x1f8e, {2, {0x1f06, 0x03b9}}},
  9106. { 0x1f8f, {2, {0x1f07, 0x03b9}}},
  9107. { 0x1f90, {2, {0x1f20, 0x03b9}}},
  9108. { 0x1f91, {2, {0x1f21, 0x03b9}}},
  9109. { 0x1f92, {2, {0x1f22, 0x03b9}}},
  9110. { 0x1f93, {2, {0x1f23, 0x03b9}}},
  9111. { 0x1f94, {2, {0x1f24, 0x03b9}}},
  9112. { 0x1f95, {2, {0x1f25, 0x03b9}}},
  9113. { 0x1f96, {2, {0x1f26, 0x03b9}}},
  9114. { 0x1f97, {2, {0x1f27, 0x03b9}}},
  9115. { 0x1f98, {2, {0x1f20, 0x03b9}}},
  9116. { 0x1f99, {2, {0x1f21, 0x03b9}}},
  9117. { 0x1f9a, {2, {0x1f22, 0x03b9}}},
  9118. { 0x1f9b, {2, {0x1f23, 0x03b9}}},
  9119. { 0x1f9c, {2, {0x1f24, 0x03b9}}},
  9120. { 0x1f9d, {2, {0x1f25, 0x03b9}}},
  9121. { 0x1f9e, {2, {0x1f26, 0x03b9}}},
  9122. { 0x1f9f, {2, {0x1f27, 0x03b9}}},
  9123. { 0x1fa0, {2, {0x1f60, 0x03b9}}},
  9124. { 0x1fa1, {2, {0x1f61, 0x03b9}}},
  9125. { 0x1fa2, {2, {0x1f62, 0x03b9}}},
  9126. { 0x1fa3, {2, {0x1f63, 0x03b9}}},
  9127. { 0x1fa4, {2, {0x1f64, 0x03b9}}},
  9128. { 0x1fa5, {2, {0x1f65, 0x03b9}}},
  9129. { 0x1fa6, {2, {0x1f66, 0x03b9}}},
  9130. { 0x1fa7, {2, {0x1f67, 0x03b9}}},
  9131. { 0x1fa8, {2, {0x1f60, 0x03b9}}},
  9132. { 0x1fa9, {2, {0x1f61, 0x03b9}}},
  9133. { 0x1faa, {2, {0x1f62, 0x03b9}}},
  9134. { 0x1fab, {2, {0x1f63, 0x03b9}}},
  9135. { 0x1fac, {2, {0x1f64, 0x03b9}}},
  9136. { 0x1fad, {2, {0x1f65, 0x03b9}}},
  9137. { 0x1fae, {2, {0x1f66, 0x03b9}}},
  9138. { 0x1faf, {2, {0x1f67, 0x03b9}}},
  9139. { 0x1fb2, {2, {0x1f70, 0x03b9}}},
  9140. { 0x1fb3, {2, {0x03b1, 0x03b9}}},
  9141. { 0x1fb4, {2, {0x03ac, 0x03b9}}},
  9142. { 0x1fb6, {2, {0x03b1, 0x0342}}},
  9143. { 0x1fb7, {3, {0x03b1, 0x0342, 0x03b9}}},
  9144. { 0x1fb8, {1, {0x1fb0}}},
  9145. { 0x1fb9, {1, {0x1fb1}}},
  9146. { 0x1fba, {1, {0x1f70}}},
  9147. { 0x1fbb, {1, {0x1f71}}},
  9148. { 0x1fbc, {2, {0x03b1, 0x03b9}}},
  9149. { 0x1fbe, {1, {0x03b9}}},
  9150. { 0x1fc2, {2, {0x1f74, 0x03b9}}},
  9151. { 0x1fc3, {2, {0x03b7, 0x03b9}}},
  9152. { 0x1fc4, {2, {0x03ae, 0x03b9}}},
  9153. { 0x1fc6, {2, {0x03b7, 0x0342}}},
  9154. { 0x1fc7, {3, {0x03b7, 0x0342, 0x03b9}}},
  9155. { 0x1fc8, {1, {0x1f72}}},
  9156. { 0x1fc9, {1, {0x1f73}}},
  9157. { 0x1fca, {1, {0x1f74}}},
  9158. { 0x1fcb, {1, {0x1f75}}},
  9159. { 0x1fcc, {2, {0x03b7, 0x03b9}}},
  9160. { 0x1fd2, {3, {0x03b9, 0x0308, 0x0300}}},
  9161. { 0x1fd3, {3, {0x03b9, 0x0308, 0x0301}}},
  9162. { 0x1fd6, {2, {0x03b9, 0x0342}}},
  9163. { 0x1fd7, {3, {0x03b9, 0x0308, 0x0342}}},
  9164. { 0x1fd8, {1, {0x1fd0}}},
  9165. { 0x1fd9, {1, {0x1fd1}}},
  9166. { 0x1fda, {1, {0x1f76}}},
  9167. { 0x1fdb, {1, {0x1f77}}},
  9168. { 0x1fe2, {3, {0x03c5, 0x0308, 0x0300}}},
  9169. { 0x1fe3, {3, {0x03c5, 0x0308, 0x0301}}},
  9170. { 0x1fe4, {2, {0x03c1, 0x0313}}},
  9171. { 0x1fe6, {2, {0x03c5, 0x0342}}},
  9172. { 0x1fe7, {3, {0x03c5, 0x0308, 0x0342}}},
  9173. { 0x1fe8, {1, {0x1fe0}}},
  9174. { 0x1fe9, {1, {0x1fe1}}},
  9175. { 0x1fea, {1, {0x1f7a}}},
  9176. { 0x1feb, {1, {0x1f7b}}},
  9177. { 0x1fec, {1, {0x1fe5}}},
  9178. { 0x1ff2, {2, {0x1f7c, 0x03b9}}},
  9179. { 0x1ff3, {2, {0x03c9, 0x03b9}}},
  9180. { 0x1ff4, {2, {0x03ce, 0x03b9}}},
  9181. { 0x1ff6, {2, {0x03c9, 0x0342}}},
  9182. { 0x1ff7, {3, {0x03c9, 0x0342, 0x03b9}}},
  9183. { 0x1ff8, {1, {0x1f78}}},
  9184. { 0x1ff9, {1, {0x1f79}}},
  9185. { 0x1ffa, {1, {0x1f7c}}},
  9186. { 0x1ffb, {1, {0x1f7d}}},
  9187. { 0x1ffc, {2, {0x03c9, 0x03b9}}},
  9188. { 0x2126, {1, {0x03c9}}},
  9189. { 0x212a, {1, {0x006b}}},
  9190. { 0x212b, {1, {0x00e5}}},
  9191. { 0x2160, {1, {0x2170}}},
  9192. { 0x2161, {1, {0x2171}}},
  9193. { 0x2162, {1, {0x2172}}},
  9194. { 0x2163, {1, {0x2173}}},
  9195. { 0x2164, {1, {0x2174}}},
  9196. { 0x2165, {1, {0x2175}}},
  9197. { 0x2166, {1, {0x2176}}},
  9198. { 0x2167, {1, {0x2177}}},
  9199. { 0x2168, {1, {0x2178}}},
  9200. { 0x2169, {1, {0x2179}}},
  9201. { 0x216a, {1, {0x217a}}},
  9202. { 0x216b, {1, {0x217b}}},
  9203. { 0x216c, {1, {0x217c}}},
  9204. { 0x216d, {1, {0x217d}}},
  9205. { 0x216e, {1, {0x217e}}},
  9206. { 0x216f, {1, {0x217f}}},
  9207. { 0x24b6, {1, {0x24d0}}},
  9208. { 0x24b7, {1, {0x24d1}}},
  9209. { 0x24b8, {1, {0x24d2}}},
  9210. { 0x24b9, {1, {0x24d3}}},
  9211. { 0x24ba, {1, {0x24d4}}},
  9212. { 0x24bb, {1, {0x24d5}}},
  9213. { 0x24bc, {1, {0x24d6}}},
  9214. { 0x24bd, {1, {0x24d7}}},
  9215. { 0x24be, {1, {0x24d8}}},
  9216. { 0x24bf, {1, {0x24d9}}},
  9217. { 0x24c0, {1, {0x24da}}},
  9218. { 0x24c1, {1, {0x24db}}},
  9219. { 0x24c2, {1, {0x24dc}}},
  9220. { 0x24c3, {1, {0x24dd}}},
  9221. { 0x24c4, {1, {0x24de}}},
  9222. { 0x24c5, {1, {0x24df}}},
  9223. { 0x24c6, {1, {0x24e0}}},
  9224. { 0x24c7, {1, {0x24e1}}},
  9225. { 0x24c8, {1, {0x24e2}}},
  9226. { 0x24c9, {1, {0x24e3}}},
  9227. { 0x24ca, {1, {0x24e4}}},
  9228. { 0x24cb, {1, {0x24e5}}},
  9229. { 0x24cc, {1, {0x24e6}}},
  9230. { 0x24cd, {1, {0x24e7}}},
  9231. { 0x24ce, {1, {0x24e8}}},
  9232. { 0x24cf, {1, {0x24e9}}},
  9233. { 0x2c00, {1, {0x2c30}}},
  9234. { 0x2c01, {1, {0x2c31}}},
  9235. { 0x2c02, {1, {0x2c32}}},
  9236. { 0x2c03, {1, {0x2c33}}},
  9237. { 0x2c04, {1, {0x2c34}}},
  9238. { 0x2c05, {1, {0x2c35}}},
  9239. { 0x2c06, {1, {0x2c36}}},
  9240. { 0x2c07, {1, {0x2c37}}},
  9241. { 0x2c08, {1, {0x2c38}}},
  9242. { 0x2c09, {1, {0x2c39}}},
  9243. { 0x2c0a, {1, {0x2c3a}}},
  9244. { 0x2c0b, {1, {0x2c3b}}},
  9245. { 0x2c0c, {1, {0x2c3c}}},
  9246. { 0x2c0d, {1, {0x2c3d}}},
  9247. { 0x2c0e, {1, {0x2c3e}}},
  9248. { 0x2c0f, {1, {0x2c3f}}},
  9249. { 0x2c10, {1, {0x2c40}}},
  9250. { 0x2c11, {1, {0x2c41}}},
  9251. { 0x2c12, {1, {0x2c42}}},
  9252. { 0x2c13, {1, {0x2c43}}},
  9253. { 0x2c14, {1, {0x2c44}}},
  9254. { 0x2c15, {1, {0x2c45}}},
  9255. { 0x2c16, {1, {0x2c46}}},
  9256. { 0x2c17, {1, {0x2c47}}},
  9257. { 0x2c18, {1, {0x2c48}}},
  9258. { 0x2c19, {1, {0x2c49}}},
  9259. { 0x2c1a, {1, {0x2c4a}}},
  9260. { 0x2c1b, {1, {0x2c4b}}},
  9261. { 0x2c1c, {1, {0x2c4c}}},
  9262. { 0x2c1d, {1, {0x2c4d}}},
  9263. { 0x2c1e, {1, {0x2c4e}}},
  9264. { 0x2c1f, {1, {0x2c4f}}},
  9265. { 0x2c20, {1, {0x2c50}}},
  9266. { 0x2c21, {1, {0x2c51}}},
  9267. { 0x2c22, {1, {0x2c52}}},
  9268. { 0x2c23, {1, {0x2c53}}},
  9269. { 0x2c24, {1, {0x2c54}}},
  9270. { 0x2c25, {1, {0x2c55}}},
  9271. { 0x2c26, {1, {0x2c56}}},
  9272. { 0x2c27, {1, {0x2c57}}},
  9273. { 0x2c28, {1, {0x2c58}}},
  9274. { 0x2c29, {1, {0x2c59}}},
  9275. { 0x2c2a, {1, {0x2c5a}}},
  9276. { 0x2c2b, {1, {0x2c5b}}},
  9277. { 0x2c2c, {1, {0x2c5c}}},
  9278. { 0x2c2d, {1, {0x2c5d}}},
  9279. { 0x2c2e, {1, {0x2c5e}}},
  9280. { 0x2c80, {1, {0x2c81}}},
  9281. { 0x2c82, {1, {0x2c83}}},
  9282. { 0x2c84, {1, {0x2c85}}},
  9283. { 0x2c86, {1, {0x2c87}}},
  9284. { 0x2c88, {1, {0x2c89}}},
  9285. { 0x2c8a, {1, {0x2c8b}}},
  9286. { 0x2c8c, {1, {0x2c8d}}},
  9287. { 0x2c8e, {1, {0x2c8f}}},
  9288. { 0x2c90, {1, {0x2c91}}},
  9289. { 0x2c92, {1, {0x2c93}}},
  9290. { 0x2c94, {1, {0x2c95}}},
  9291. { 0x2c96, {1, {0x2c97}}},
  9292. { 0x2c98, {1, {0x2c99}}},
  9293. { 0x2c9a, {1, {0x2c9b}}},
  9294. { 0x2c9c, {1, {0x2c9d}}},
  9295. { 0x2c9e, {1, {0x2c9f}}},
  9296. { 0x2ca0, {1, {0x2ca1}}},
  9297. { 0x2ca2, {1, {0x2ca3}}},
  9298. { 0x2ca4, {1, {0x2ca5}}},
  9299. { 0x2ca6, {1, {0x2ca7}}},
  9300. { 0x2ca8, {1, {0x2ca9}}},
  9301. { 0x2caa, {1, {0x2cab}}},
  9302. { 0x2cac, {1, {0x2cad}}},
  9303. { 0x2cae, {1, {0x2caf}}},
  9304. { 0x2cb0, {1, {0x2cb1}}},
  9305. { 0x2cb2, {1, {0x2cb3}}},
  9306. { 0x2cb4, {1, {0x2cb5}}},
  9307. { 0x2cb6, {1, {0x2cb7}}},
  9308. { 0x2cb8, {1, {0x2cb9}}},
  9309. { 0x2cba, {1, {0x2cbb}}},
  9310. { 0x2cbc, {1, {0x2cbd}}},
  9311. { 0x2cbe, {1, {0x2cbf}}},
  9312. { 0x2cc0, {1, {0x2cc1}}},
  9313. { 0x2cc2, {1, {0x2cc3}}},
  9314. { 0x2cc4, {1, {0x2cc5}}},
  9315. { 0x2cc6, {1, {0x2cc7}}},
  9316. { 0x2cc8, {1, {0x2cc9}}},
  9317. { 0x2cca, {1, {0x2ccb}}},
  9318. { 0x2ccc, {1, {0x2ccd}}},
  9319. { 0x2cce, {1, {0x2ccf}}},
  9320. { 0x2cd0, {1, {0x2cd1}}},
  9321. { 0x2cd2, {1, {0x2cd3}}},
  9322. { 0x2cd4, {1, {0x2cd5}}},
  9323. { 0x2cd6, {1, {0x2cd7}}},
  9324. { 0x2cd8, {1, {0x2cd9}}},
  9325. { 0x2cda, {1, {0x2cdb}}},
  9326. { 0x2cdc, {1, {0x2cdd}}},
  9327. { 0x2cde, {1, {0x2cdf}}},
  9328. { 0x2ce0, {1, {0x2ce1}}},
  9329. { 0x2ce2, {1, {0x2ce3}}},
  9330. { 0xfb00, {2, {0x0066, 0x0066}}},
  9331. { 0xfb01, {2, {0x0066, 0x0069}}},
  9332. { 0xfb02, {2, {0x0066, 0x006c}}},
  9333. { 0xfb03, {3, {0x0066, 0x0066, 0x0069}}},
  9334. { 0xfb04, {3, {0x0066, 0x0066, 0x006c}}},
  9335. { 0xfb05, {2, {0x0073, 0x0074}}},
  9336. { 0xfb06, {2, {0x0073, 0x0074}}},
  9337. { 0xfb13, {2, {0x0574, 0x0576}}},
  9338. { 0xfb14, {2, {0x0574, 0x0565}}},
  9339. { 0xfb15, {2, {0x0574, 0x056b}}},
  9340. { 0xfb16, {2, {0x057e, 0x0576}}},
  9341. { 0xfb17, {2, {0x0574, 0x056d}}},
  9342. { 0xff21, {1, {0xff41}}},
  9343. { 0xff22, {1, {0xff42}}},
  9344. { 0xff23, {1, {0xff43}}},
  9345. { 0xff24, {1, {0xff44}}},
  9346. { 0xff25, {1, {0xff45}}},
  9347. { 0xff26, {1, {0xff46}}},
  9348. { 0xff27, {1, {0xff47}}},
  9349. { 0xff28, {1, {0xff48}}},
  9350. { 0xff29, {1, {0xff49}}},
  9351. { 0xff2a, {1, {0xff4a}}},
  9352. { 0xff2b, {1, {0xff4b}}},
  9353. { 0xff2c, {1, {0xff4c}}},
  9354. { 0xff2d, {1, {0xff4d}}},
  9355. { 0xff2e, {1, {0xff4e}}},
  9356. { 0xff2f, {1, {0xff4f}}},
  9357. { 0xff30, {1, {0xff50}}},
  9358. { 0xff31, {1, {0xff51}}},
  9359. { 0xff32, {1, {0xff52}}},
  9360. { 0xff33, {1, {0xff53}}},
  9361. { 0xff34, {1, {0xff54}}},
  9362. { 0xff35, {1, {0xff55}}},
  9363. { 0xff36, {1, {0xff56}}},
  9364. { 0xff37, {1, {0xff57}}},
  9365. { 0xff38, {1, {0xff58}}},
  9366. { 0xff39, {1, {0xff59}}},
  9367. { 0xff3a, {1, {0xff5a}}},
  9368. { 0x10400, {1, {0x10428}}},
  9369. { 0x10401, {1, {0x10429}}},
  9370. { 0x10402, {1, {0x1042a}}},
  9371. { 0x10403, {1, {0x1042b}}},
  9372. { 0x10404, {1, {0x1042c}}},
  9373. { 0x10405, {1, {0x1042d}}},
  9374. { 0x10406, {1, {0x1042e}}},
  9375. { 0x10407, {1, {0x1042f}}},
  9376. { 0x10408, {1, {0x10430}}},
  9377. { 0x10409, {1, {0x10431}}},
  9378. { 0x1040a, {1, {0x10432}}},
  9379. { 0x1040b, {1, {0x10433}}},
  9380. { 0x1040c, {1, {0x10434}}},
  9381. { 0x1040d, {1, {0x10435}}},
  9382. { 0x1040e, {1, {0x10436}}},
  9383. { 0x1040f, {1, {0x10437}}},
  9384. { 0x10410, {1, {0x10438}}},
  9385. { 0x10411, {1, {0x10439}}},
  9386. { 0x10412, {1, {0x1043a}}},
  9387. { 0x10413, {1, {0x1043b}}},
  9388. { 0x10414, {1, {0x1043c}}},
  9389. { 0x10415, {1, {0x1043d}}},
  9390. { 0x10416, {1, {0x1043e}}},
  9391. { 0x10417, {1, {0x1043f}}},
  9392. { 0x10418, {1, {0x10440}}},
  9393. { 0x10419, {1, {0x10441}}},
  9394. { 0x1041a, {1, {0x10442}}},
  9395. { 0x1041b, {1, {0x10443}}},
  9396. { 0x1041c, {1, {0x10444}}},
  9397. { 0x1041d, {1, {0x10445}}},
  9398. { 0x1041e, {1, {0x10446}}},
  9399. { 0x1041f, {1, {0x10447}}},
  9400. { 0x10420, {1, {0x10448}}},
  9401. { 0x10421, {1, {0x10449}}},
  9402. { 0x10422, {1, {0x1044a}}},
  9403. { 0x10423, {1, {0x1044b}}},
  9404. { 0x10424, {1, {0x1044c}}},
  9405. { 0x10425, {1, {0x1044d}}},
  9406. { 0x10426, {1, {0x1044e}}},
  9407. { 0x10427, {1, {0x1044f}}}
  9408. };
  9409. static const CaseFold_11_Type CaseFold_Locale[] = {
  9410. { 0x0049, {1, {0x0069}}},
  9411. { 0x0130, {2, {0x0069, 0x0307}}}
  9412. };
  9413. static const CaseUnfold_11_Type CaseUnfold_11[] = {
  9414. { 0x0061, {1, {0x0041 }}},
  9415. { 0x0062, {1, {0x0042 }}},
  9416. { 0x0063, {1, {0x0043 }}},
  9417. { 0x0064, {1, {0x0044 }}},
  9418. { 0x0065, {1, {0x0045 }}},
  9419. { 0x0066, {1, {0x0046 }}},
  9420. { 0x0067, {1, {0x0047 }}},
  9421. { 0x0068, {1, {0x0048 }}},
  9422. { 0x006a, {1, {0x004a }}},
  9423. { 0x006b, {2, {0x212a, 0x004b }}},
  9424. { 0x006c, {1, {0x004c }}},
  9425. { 0x006d, {1, {0x004d }}},
  9426. { 0x006e, {1, {0x004e }}},
  9427. { 0x006f, {1, {0x004f }}},
  9428. { 0x0070, {1, {0x0050 }}},
  9429. { 0x0071, {1, {0x0051 }}},
  9430. { 0x0072, {1, {0x0052 }}},
  9431. { 0x0073, {2, {0x0053, 0x017f }}},
  9432. { 0x0074, {1, {0x0054 }}},
  9433. { 0x0075, {1, {0x0055 }}},
  9434. { 0x0076, {1, {0x0056 }}},
  9435. { 0x0077, {1, {0x0057 }}},
  9436. { 0x0078, {1, {0x0058 }}},
  9437. { 0x0079, {1, {0x0059 }}},
  9438. { 0x007a, {1, {0x005a }}},
  9439. { 0x00e0, {1, {0x00c0 }}},
  9440. { 0x00e1, {1, {0x00c1 }}},
  9441. { 0x00e2, {1, {0x00c2 }}},
  9442. { 0x00e3, {1, {0x00c3 }}},
  9443. { 0x00e4, {1, {0x00c4 }}},
  9444. { 0x00e5, {2, {0x212b, 0x00c5 }}},
  9445. { 0x00e6, {1, {0x00c6 }}},
  9446. { 0x00e7, {1, {0x00c7 }}},
  9447. { 0x00e8, {1, {0x00c8 }}},
  9448. { 0x00e9, {1, {0x00c9 }}},
  9449. { 0x00ea, {1, {0x00ca }}},
  9450. { 0x00eb, {1, {0x00cb }}},
  9451. { 0x00ec, {1, {0x00cc }}},
  9452. { 0x00ed, {1, {0x00cd }}},
  9453. { 0x00ee, {1, {0x00ce }}},
  9454. { 0x00ef, {1, {0x00cf }}},
  9455. { 0x00f0, {1, {0x00d0 }}},
  9456. { 0x00f1, {1, {0x00d1 }}},
  9457. { 0x00f2, {1, {0x00d2 }}},
  9458. { 0x00f3, {1, {0x00d3 }}},
  9459. { 0x00f4, {1, {0x00d4 }}},
  9460. { 0x00f5, {1, {0x00d5 }}},
  9461. { 0x00f6, {1, {0x00d6 }}},
  9462. { 0x00f8, {1, {0x00d8 }}},
  9463. { 0x00f9, {1, {0x00d9 }}},
  9464. { 0x00fa, {1, {0x00da }}},
  9465. { 0x00fb, {1, {0x00db }}},
  9466. { 0x00fc, {1, {0x00dc }}},
  9467. { 0x00fd, {1, {0x00dd }}},
  9468. { 0x00fe, {1, {0x00de }}},
  9469. { 0x00ff, {1, {0x0178 }}},
  9470. { 0x0101, {1, {0x0100 }}},
  9471. { 0x0103, {1, {0x0102 }}},
  9472. { 0x0105, {1, {0x0104 }}},
  9473. { 0x0107, {1, {0x0106 }}},
  9474. { 0x0109, {1, {0x0108 }}},
  9475. { 0x010b, {1, {0x010a }}},
  9476. { 0x010d, {1, {0x010c }}},
  9477. { 0x010f, {1, {0x010e }}},
  9478. { 0x0111, {1, {0x0110 }}},
  9479. { 0x0113, {1, {0x0112 }}},
  9480. { 0x0115, {1, {0x0114 }}},
  9481. { 0x0117, {1, {0x0116 }}},
  9482. { 0x0119, {1, {0x0118 }}},
  9483. { 0x011b, {1, {0x011a }}},
  9484. { 0x011d, {1, {0x011c }}},
  9485. { 0x011f, {1, {0x011e }}},
  9486. { 0x0121, {1, {0x0120 }}},
  9487. { 0x0123, {1, {0x0122 }}},
  9488. { 0x0125, {1, {0x0124 }}},
  9489. { 0x0127, {1, {0x0126 }}},
  9490. { 0x0129, {1, {0x0128 }}},
  9491. { 0x012b, {1, {0x012a }}},
  9492. { 0x012d, {1, {0x012c }}},
  9493. { 0x012f, {1, {0x012e }}},
  9494. { 0x0133, {1, {0x0132 }}},
  9495. { 0x0135, {1, {0x0134 }}},
  9496. { 0x0137, {1, {0x0136 }}},
  9497. { 0x013a, {1, {0x0139 }}},
  9498. { 0x013c, {1, {0x013b }}},
  9499. { 0x013e, {1, {0x013d }}},
  9500. { 0x0140, {1, {0x013f }}},
  9501. { 0x0142, {1, {0x0141 }}},
  9502. { 0x0144, {1, {0x0143 }}},
  9503. { 0x0146, {1, {0x0145 }}},
  9504. { 0x0148, {1, {0x0147 }}},
  9505. { 0x014b, {1, {0x014a }}},
  9506. { 0x014d, {1, {0x014c }}},
  9507. { 0x014f, {1, {0x014e }}},
  9508. { 0x0151, {1, {0x0150 }}},
  9509. { 0x0153, {1, {0x0152 }}},
  9510. { 0x0155, {1, {0x0154 }}},
  9511. { 0x0157, {1, {0x0156 }}},
  9512. { 0x0159, {1, {0x0158 }}},
  9513. { 0x015b, {1, {0x015a }}},
  9514. { 0x015d, {1, {0x015c }}},
  9515. { 0x015f, {1, {0x015e }}},
  9516. { 0x0161, {1, {0x0160 }}},
  9517. { 0x0163, {1, {0x0162 }}},
  9518. { 0x0165, {1, {0x0164 }}},
  9519. { 0x0167, {1, {0x0166 }}},
  9520. { 0x0169, {1, {0x0168 }}},
  9521. { 0x016b, {1, {0x016a }}},
  9522. { 0x016d, {1, {0x016c }}},
  9523. { 0x016f, {1, {0x016e }}},
  9524. { 0x0171, {1, {0x0170 }}},
  9525. { 0x0173, {1, {0x0172 }}},
  9526. { 0x0175, {1, {0x0174 }}},
  9527. { 0x0177, {1, {0x0176 }}},
  9528. { 0x017a, {1, {0x0179 }}},
  9529. { 0x017c, {1, {0x017b }}},
  9530. { 0x017e, {1, {0x017d }}},
  9531. { 0x0183, {1, {0x0182 }}},
  9532. { 0x0185, {1, {0x0184 }}},
  9533. { 0x0188, {1, {0x0187 }}},
  9534. { 0x018c, {1, {0x018b }}},
  9535. { 0x0192, {1, {0x0191 }}},
  9536. { 0x0195, {1, {0x01f6 }}},
  9537. { 0x0199, {1, {0x0198 }}},
  9538. { 0x019a, {1, {0x023d }}},
  9539. { 0x019e, {1, {0x0220 }}},
  9540. { 0x01a1, {1, {0x01a0 }}},
  9541. { 0x01a3, {1, {0x01a2 }}},
  9542. { 0x01a5, {1, {0x01a4 }}},
  9543. { 0x01a8, {1, {0x01a7 }}},
  9544. { 0x01ad, {1, {0x01ac }}},
  9545. { 0x01b0, {1, {0x01af }}},
  9546. { 0x01b4, {1, {0x01b3 }}},
  9547. { 0x01b6, {1, {0x01b5 }}},
  9548. { 0x01b9, {1, {0x01b8 }}},
  9549. { 0x01bd, {1, {0x01bc }}},
  9550. { 0x01bf, {1, {0x01f7 }}},
  9551. { 0x01c6, {2, {0x01c4, 0x01c5 }}},
  9552. { 0x01c9, {2, {0x01c7, 0x01c8 }}},
  9553. { 0x01cc, {2, {0x01ca, 0x01cb }}},
  9554. { 0x01ce, {1, {0x01cd }}},
  9555. { 0x01d0, {1, {0x01cf }}},
  9556. { 0x01d2, {1, {0x01d1 }}},
  9557. { 0x01d4, {1, {0x01d3 }}},
  9558. { 0x01d6, {1, {0x01d5 }}},
  9559. { 0x01d8, {1, {0x01d7 }}},
  9560. { 0x01da, {1, {0x01d9 }}},
  9561. { 0x01dc, {1, {0x01db }}},
  9562. { 0x01dd, {1, {0x018e }}},
  9563. { 0x01df, {1, {0x01de }}},
  9564. { 0x01e1, {1, {0x01e0 }}},
  9565. { 0x01e3, {1, {0x01e2 }}},
  9566. { 0x01e5, {1, {0x01e4 }}},
  9567. { 0x01e7, {1, {0x01e6 }}},
  9568. { 0x01e9, {1, {0x01e8 }}},
  9569. { 0x01eb, {1, {0x01ea }}},
  9570. { 0x01ed, {1, {0x01ec }}},
  9571. { 0x01ef, {1, {0x01ee }}},
  9572. { 0x01f3, {2, {0x01f1, 0x01f2 }}},
  9573. { 0x01f5, {1, {0x01f4 }}},
  9574. { 0x01f9, {1, {0x01f8 }}},
  9575. { 0x01fb, {1, {0x01fa }}},
  9576. { 0x01fd, {1, {0x01fc }}},
  9577. { 0x01ff, {1, {0x01fe }}},
  9578. { 0x0201, {1, {0x0200 }}},
  9579. { 0x0203, {1, {0x0202 }}},
  9580. { 0x0205, {1, {0x0204 }}},
  9581. { 0x0207, {1, {0x0206 }}},
  9582. { 0x0209, {1, {0x0208 }}},
  9583. { 0x020b, {1, {0x020a }}},
  9584. { 0x020d, {1, {0x020c }}},
  9585. { 0x020f, {1, {0x020e }}},
  9586. { 0x0211, {1, {0x0210 }}},
  9587. { 0x0213, {1, {0x0212 }}},
  9588. { 0x0215, {1, {0x0214 }}},
  9589. { 0x0217, {1, {0x0216 }}},
  9590. { 0x0219, {1, {0x0218 }}},
  9591. { 0x021b, {1, {0x021a }}},
  9592. { 0x021d, {1, {0x021c }}},
  9593. { 0x021f, {1, {0x021e }}},
  9594. { 0x0223, {1, {0x0222 }}},
  9595. { 0x0225, {1, {0x0224 }}},
  9596. { 0x0227, {1, {0x0226 }}},
  9597. { 0x0229, {1, {0x0228 }}},
  9598. { 0x022b, {1, {0x022a }}},
  9599. { 0x022d, {1, {0x022c }}},
  9600. { 0x022f, {1, {0x022e }}},
  9601. { 0x0231, {1, {0x0230 }}},
  9602. { 0x0233, {1, {0x0232 }}},
  9603. { 0x023c, {1, {0x023b }}},
  9604. { 0x0253, {1, {0x0181 }}},
  9605. { 0x0254, {1, {0x0186 }}},
  9606. { 0x0256, {1, {0x0189 }}},
  9607. { 0x0257, {1, {0x018a }}},
  9608. { 0x0259, {1, {0x018f }}},
  9609. { 0x025b, {1, {0x0190 }}},
  9610. { 0x0260, {1, {0x0193 }}},
  9611. { 0x0263, {1, {0x0194 }}},
  9612. { 0x0268, {1, {0x0197 }}},
  9613. { 0x0269, {1, {0x0196 }}},
  9614. { 0x026f, {1, {0x019c }}},
  9615. { 0x0272, {1, {0x019d }}},
  9616. { 0x0275, {1, {0x019f }}},
  9617. { 0x0280, {1, {0x01a6 }}},
  9618. { 0x0283, {1, {0x01a9 }}},
  9619. { 0x0288, {1, {0x01ae }}},
  9620. { 0x028a, {1, {0x01b1 }}},
  9621. { 0x028b, {1, {0x01b2 }}},
  9622. { 0x0292, {1, {0x01b7 }}},
  9623. { 0x0294, {1, {0x0241 }}},
  9624. { 0x03ac, {1, {0x0386 }}},
  9625. { 0x03ad, {1, {0x0388 }}},
  9626. { 0x03ae, {1, {0x0389 }}},
  9627. { 0x03af, {1, {0x038a }}},
  9628. { 0x03b1, {1, {0x0391 }}},
  9629. { 0x03b2, {2, {0x0392, 0x03d0 }}},
  9630. { 0x03b3, {1, {0x0393 }}},
  9631. { 0x03b4, {1, {0x0394 }}},
  9632. { 0x03b5, {2, {0x03f5, 0x0395 }}},
  9633. { 0x03b6, {1, {0x0396 }}},
  9634. { 0x03b7, {1, {0x0397 }}},
  9635. { 0x03b8, {3, {0x03f4, 0x0398, 0x03d1 }}},
  9636. { 0x03b9, {3, {0x1fbe, 0x0399, 0x0345 }}},
  9637. { 0x03ba, {2, {0x03f0, 0x039a }}},
  9638. { 0x03bb, {1, {0x039b }}},
  9639. { 0x03bc, {2, {0x00b5, 0x039c }}},
  9640. { 0x03bd, {1, {0x039d }}},
  9641. { 0x03be, {1, {0x039e }}},
  9642. { 0x03bf, {1, {0x039f }}},
  9643. { 0x03c0, {2, {0x03a0, 0x03d6 }}},
  9644. { 0x03c1, {2, {0x03f1, 0x03a1 }}},
  9645. { 0x03c3, {2, {0x03a3, 0x03c2 }}},
  9646. { 0x03c4, {1, {0x03a4 }}},
  9647. { 0x03c5, {1, {0x03a5 }}},
  9648. { 0x03c6, {2, {0x03a6, 0x03d5 }}},
  9649. { 0x03c7, {1, {0x03a7 }}},
  9650. { 0x03c8, {1, {0x03a8 }}},
  9651. { 0x03c9, {2, {0x03a9, 0x2126 }}},
  9652. { 0x03ca, {1, {0x03aa }}},
  9653. { 0x03cb, {1, {0x03ab }}},
  9654. { 0x03cc, {1, {0x038c }}},
  9655. { 0x03cd, {1, {0x038e }}},
  9656. { 0x03ce, {1, {0x038f }}},
  9657. { 0x03d9, {1, {0x03d8 }}},
  9658. { 0x03db, {1, {0x03da }}},
  9659. { 0x03dd, {1, {0x03dc }}},
  9660. { 0x03df, {1, {0x03de }}},
  9661. { 0x03e1, {1, {0x03e0 }}},
  9662. { 0x03e3, {1, {0x03e2 }}},
  9663. { 0x03e5, {1, {0x03e4 }}},
  9664. { 0x03e7, {1, {0x03e6 }}},
  9665. { 0x03e9, {1, {0x03e8 }}},
  9666. { 0x03eb, {1, {0x03ea }}},
  9667. { 0x03ed, {1, {0x03ec }}},
  9668. { 0x03ef, {1, {0x03ee }}},
  9669. { 0x03f2, {1, {0x03f9 }}},
  9670. { 0x03f8, {1, {0x03f7 }}},
  9671. { 0x03fb, {1, {0x03fa }}},
  9672. { 0x0430, {1, {0x0410 }}},
  9673. { 0x0431, {1, {0x0411 }}},
  9674. { 0x0432, {1, {0x0412 }}},
  9675. { 0x0433, {1, {0x0413 }}},
  9676. { 0x0434, {1, {0x0414 }}},
  9677. { 0x0435, {1, {0x0415 }}},
  9678. { 0x0436, {1, {0x0416 }}},
  9679. { 0x0437, {1, {0x0417 }}},
  9680. { 0x0438, {1, {0x0418 }}},
  9681. { 0x0439, {1, {0x0419 }}},
  9682. { 0x043a, {1, {0x041a }}},
  9683. { 0x043b, {1, {0x041b }}},
  9684. { 0x043c, {1, {0x041c }}},
  9685. { 0x043d, {1, {0x041d }}},
  9686. { 0x043e, {1, {0x041e }}},
  9687. { 0x043f, {1, {0x041f }}},
  9688. { 0x0440, {1, {0x0420 }}},
  9689. { 0x0441, {1, {0x0421 }}},
  9690. { 0x0442, {1, {0x0422 }}},
  9691. { 0x0443, {1, {0x0423 }}},
  9692. { 0x0444, {1, {0x0424 }}},
  9693. { 0x0445, {1, {0x0425 }}},
  9694. { 0x0446, {1, {0x0426 }}},
  9695. { 0x0447, {1, {0x0427 }}},
  9696. { 0x0448, {1, {0x0428 }}},
  9697. { 0x0449, {1, {0x0429 }}},
  9698. { 0x044a, {1, {0x042a }}},
  9699. { 0x044b, {1, {0x042b }}},
  9700. { 0x044c, {1, {0x042c }}},
  9701. { 0x044d, {1, {0x042d }}},
  9702. { 0x044e, {1, {0x042e }}},
  9703. { 0x044f, {1, {0x042f }}},
  9704. { 0x0450, {1, {0x0400 }}},
  9705. { 0x0451, {1, {0x0401 }}},
  9706. { 0x0452, {1, {0x0402 }}},
  9707. { 0x0453, {1, {0x0403 }}},
  9708. { 0x0454, {1, {0x0404 }}},
  9709. { 0x0455, {1, {0x0405 }}},
  9710. { 0x0456, {1, {0x0406 }}},
  9711. { 0x0457, {1, {0x0407 }}},
  9712. { 0x0458, {1, {0x0408 }}},
  9713. { 0x0459, {1, {0x0409 }}},
  9714. { 0x045a, {1, {0x040a }}},
  9715. { 0x045b, {1, {0x040b }}},
  9716. { 0x045c, {1, {0x040c }}},
  9717. { 0x045d, {1, {0x040d }}},
  9718. { 0x045e, {1, {0x040e }}},
  9719. { 0x045f, {1, {0x040f }}},
  9720. { 0x0461, {1, {0x0460 }}},
  9721. { 0x0463, {1, {0x0462 }}},
  9722. { 0x0465, {1, {0x0464 }}},
  9723. { 0x0467, {1, {0x0466 }}},
  9724. { 0x0469, {1, {0x0468 }}},
  9725. { 0x046b, {1, {0x046a }}},
  9726. { 0x046d, {1, {0x046c }}},
  9727. { 0x046f, {1, {0x046e }}},
  9728. { 0x0471, {1, {0x0470 }}},
  9729. { 0x0473, {1, {0x0472 }}},
  9730. { 0x0475, {1, {0x0474 }}},
  9731. { 0x0477, {1, {0x0476 }}},
  9732. { 0x0479, {1, {0x0478 }}},
  9733. { 0x047b, {1, {0x047a }}},
  9734. { 0x047d, {1, {0x047c }}},
  9735. { 0x047f, {1, {0x047e }}},
  9736. { 0x0481, {1, {0x0480 }}},
  9737. { 0x048b, {1, {0x048a }}},
  9738. { 0x048d, {1, {0x048c }}},
  9739. { 0x048f, {1, {0x048e }}},
  9740. { 0x0491, {1, {0x0490 }}},
  9741. { 0x0493, {1, {0x0492 }}},
  9742. { 0x0495, {1, {0x0494 }}},
  9743. { 0x0497, {1, {0x0496 }}},
  9744. { 0x0499, {1, {0x0498 }}},
  9745. { 0x049b, {1, {0x049a }}},
  9746. { 0x049d, {1, {0x049c }}},
  9747. { 0x049f, {1, {0x049e }}},
  9748. { 0x04a1, {1, {0x04a0 }}},
  9749. { 0x04a3, {1, {0x04a2 }}},
  9750. { 0x04a5, {1, {0x04a4 }}},
  9751. { 0x04a7, {1, {0x04a6 }}},
  9752. { 0x04a9, {1, {0x04a8 }}},
  9753. { 0x04ab, {1, {0x04aa }}},
  9754. { 0x04ad, {1, {0x04ac }}},
  9755. { 0x04af, {1, {0x04ae }}},
  9756. { 0x04b1, {1, {0x04b0 }}},
  9757. { 0x04b3, {1, {0x04b2 }}},
  9758. { 0x04b5, {1, {0x04b4 }}},
  9759. { 0x04b7, {1, {0x04b6 }}},
  9760. { 0x04b9, {1, {0x04b8 }}},
  9761. { 0x04bb, {1, {0x04ba }}},
  9762. { 0x04bd, {1, {0x04bc }}},
  9763. { 0x04bf, {1, {0x04be }}},
  9764. { 0x04c2, {1, {0x04c1 }}},
  9765. { 0x04c4, {1, {0x04c3 }}},
  9766. { 0x04c6, {1, {0x04c5 }}},
  9767. { 0x04c8, {1, {0x04c7 }}},
  9768. { 0x04ca, {1, {0x04c9 }}},
  9769. { 0x04cc, {1, {0x04cb }}},
  9770. { 0x04ce, {1, {0x04cd }}},
  9771. { 0x04d1, {1, {0x04d0 }}},
  9772. { 0x04d3, {1, {0x04d2 }}},
  9773. { 0x04d5, {1, {0x04d4 }}},
  9774. { 0x04d7, {1, {0x04d6 }}},
  9775. { 0x04d9, {1, {0x04d8 }}},
  9776. { 0x04db, {1, {0x04da }}},
  9777. { 0x04dd, {1, {0x04dc }}},
  9778. { 0x04df, {1, {0x04de }}},
  9779. { 0x04e1, {1, {0x04e0 }}},
  9780. { 0x04e3, {1, {0x04e2 }}},
  9781. { 0x04e5, {1, {0x04e4 }}},
  9782. { 0x04e7, {1, {0x04e6 }}},
  9783. { 0x04e9, {1, {0x04e8 }}},
  9784. { 0x04eb, {1, {0x04ea }}},
  9785. { 0x04ed, {1, {0x04ec }}},
  9786. { 0x04ef, {1, {0x04ee }}},
  9787. { 0x04f1, {1, {0x04f0 }}},
  9788. { 0x04f3, {1, {0x04f2 }}},
  9789. { 0x04f5, {1, {0x04f4 }}},
  9790. { 0x04f7, {1, {0x04f6 }}},
  9791. { 0x04f9, {1, {0x04f8 }}},
  9792. { 0x0501, {1, {0x0500 }}},
  9793. { 0x0503, {1, {0x0502 }}},
  9794. { 0x0505, {1, {0x0504 }}},
  9795. { 0x0507, {1, {0x0506 }}},
  9796. { 0x0509, {1, {0x0508 }}},
  9797. { 0x050b, {1, {0x050a }}},
  9798. { 0x050d, {1, {0x050c }}},
  9799. { 0x050f, {1, {0x050e }}},
  9800. { 0x0561, {1, {0x0531 }}},
  9801. { 0x0562, {1, {0x0532 }}},
  9802. { 0x0563, {1, {0x0533 }}},
  9803. { 0x0564, {1, {0x0534 }}},
  9804. { 0x0565, {1, {0x0535 }}},
  9805. { 0x0566, {1, {0x0536 }}},
  9806. { 0x0567, {1, {0x0537 }}},
  9807. { 0x0568, {1, {0x0538 }}},
  9808. { 0x0569, {1, {0x0539 }}},
  9809. { 0x056a, {1, {0x053a }}},
  9810. { 0x056b, {1, {0x053b }}},
  9811. { 0x056c, {1, {0x053c }}},
  9812. { 0x056d, {1, {0x053d }}},
  9813. { 0x056e, {1, {0x053e }}},
  9814. { 0x056f, {1, {0x053f }}},
  9815. { 0x0570, {1, {0x0540 }}},
  9816. { 0x0571, {1, {0x0541 }}},
  9817. { 0x0572, {1, {0x0542 }}},
  9818. { 0x0573, {1, {0x0543 }}},
  9819. { 0x0574, {1, {0x0544 }}},
  9820. { 0x0575, {1, {0x0545 }}},
  9821. { 0x0576, {1, {0x0546 }}},
  9822. { 0x0577, {1, {0x0547 }}},
  9823. { 0x0578, {1, {0x0548 }}},
  9824. { 0x0579, {1, {0x0549 }}},
  9825. { 0x057a, {1, {0x054a }}},
  9826. { 0x057b, {1, {0x054b }}},
  9827. { 0x057c, {1, {0x054c }}},
  9828. { 0x057d, {1, {0x054d }}},
  9829. { 0x057e, {1, {0x054e }}},
  9830. { 0x057f, {1, {0x054f }}},
  9831. { 0x0580, {1, {0x0550 }}},
  9832. { 0x0581, {1, {0x0551 }}},
  9833. { 0x0582, {1, {0x0552 }}},
  9834. { 0x0583, {1, {0x0553 }}},
  9835. { 0x0584, {1, {0x0554 }}},
  9836. { 0x0585, {1, {0x0555 }}},
  9837. { 0x0586, {1, {0x0556 }}},
  9838. { 0x1e01, {1, {0x1e00 }}},
  9839. { 0x1e03, {1, {0x1e02 }}},
  9840. { 0x1e05, {1, {0x1e04 }}},
  9841. { 0x1e07, {1, {0x1e06 }}},
  9842. { 0x1e09, {1, {0x1e08 }}},
  9843. { 0x1e0b, {1, {0x1e0a }}},
  9844. { 0x1e0d, {1, {0x1e0c }}},
  9845. { 0x1e0f, {1, {0x1e0e }}},
  9846. { 0x1e11, {1, {0x1e10 }}},
  9847. { 0x1e13, {1, {0x1e12 }}},
  9848. { 0x1e15, {1, {0x1e14 }}},
  9849. { 0x1e17, {1, {0x1e16 }}},
  9850. { 0x1e19, {1, {0x1e18 }}},
  9851. { 0x1e1b, {1, {0x1e1a }}},
  9852. { 0x1e1d, {1, {0x1e1c }}},
  9853. { 0x1e1f, {1, {0x1e1e }}},
  9854. { 0x1e21, {1, {0x1e20 }}},
  9855. { 0x1e23, {1, {0x1e22 }}},
  9856. { 0x1e25, {1, {0x1e24 }}},
  9857. { 0x1e27, {1, {0x1e26 }}},
  9858. { 0x1e29, {1, {0x1e28 }}},
  9859. { 0x1e2b, {1, {0x1e2a }}},
  9860. { 0x1e2d, {1, {0x1e2c }}},
  9861. { 0x1e2f, {1, {0x1e2e }}},
  9862. { 0x1e31, {1, {0x1e30 }}},
  9863. { 0x1e33, {1, {0x1e32 }}},
  9864. { 0x1e35, {1, {0x1e34 }}},
  9865. { 0x1e37, {1, {0x1e36 }}},
  9866. { 0x1e39, {1, {0x1e38 }}},
  9867. { 0x1e3b, {1, {0x1e3a }}},
  9868. { 0x1e3d, {1, {0x1e3c }}},
  9869. { 0x1e3f, {1, {0x1e3e }}},
  9870. { 0x1e41, {1, {0x1e40 }}},
  9871. { 0x1e43, {1, {0x1e42 }}},
  9872. { 0x1e45, {1, {0x1e44 }}},
  9873. { 0x1e47, {1, {0x1e46 }}},
  9874. { 0x1e49, {1, {0x1e48 }}},
  9875. { 0x1e4b, {1, {0x1e4a }}},
  9876. { 0x1e4d, {1, {0x1e4c }}},
  9877. { 0x1e4f, {1, {0x1e4e }}},
  9878. { 0x1e51, {1, {0x1e50 }}},
  9879. { 0x1e53, {1, {0x1e52 }}},
  9880. { 0x1e55, {1, {0x1e54 }}},
  9881. { 0x1e57, {1, {0x1e56 }}},
  9882. { 0x1e59, {1, {0x1e58 }}},
  9883. { 0x1e5b, {1, {0x1e5a }}},
  9884. { 0x1e5d, {1, {0x1e5c }}},
  9885. { 0x1e5f, {1, {0x1e5e }}},
  9886. { 0x1e61, {2, {0x1e9b, 0x1e60 }}},
  9887. { 0x1e63, {1, {0x1e62 }}},
  9888. { 0x1e65, {1, {0x1e64 }}},
  9889. { 0x1e67, {1, {0x1e66 }}},
  9890. { 0x1e69, {1, {0x1e68 }}},
  9891. { 0x1e6b, {1, {0x1e6a }}},
  9892. { 0x1e6d, {1, {0x1e6c }}},
  9893. { 0x1e6f, {1, {0x1e6e }}},
  9894. { 0x1e71, {1, {0x1e70 }}},
  9895. { 0x1e73, {1, {0x1e72 }}},
  9896. { 0x1e75, {1, {0x1e74 }}},
  9897. { 0x1e77, {1, {0x1e76 }}},
  9898. { 0x1e79, {1, {0x1e78 }}},
  9899. { 0x1e7b, {1, {0x1e7a }}},
  9900. { 0x1e7d, {1, {0x1e7c }}},
  9901. { 0x1e7f, {1, {0x1e7e }}},
  9902. { 0x1e81, {1, {0x1e80 }}},
  9903. { 0x1e83, {1, {0x1e82 }}},
  9904. { 0x1e85, {1, {0x1e84 }}},
  9905. { 0x1e87, {1, {0x1e86 }}},
  9906. { 0x1e89, {1, {0x1e88 }}},
  9907. { 0x1e8b, {1, {0x1e8a }}},
  9908. { 0x1e8d, {1, {0x1e8c }}},
  9909. { 0x1e8f, {1, {0x1e8e }}},
  9910. { 0x1e91, {1, {0x1e90 }}},
  9911. { 0x1e93, {1, {0x1e92 }}},
  9912. { 0x1e95, {1, {0x1e94 }}},
  9913. { 0x1ea1, {1, {0x1ea0 }}},
  9914. { 0x1ea3, {1, {0x1ea2 }}},
  9915. { 0x1ea5, {1, {0x1ea4 }}},
  9916. { 0x1ea7, {1, {0x1ea6 }}},
  9917. { 0x1ea9, {1, {0x1ea8 }}},
  9918. { 0x1eab, {1, {0x1eaa }}},
  9919. { 0x1ead, {1, {0x1eac }}},
  9920. { 0x1eaf, {1, {0x1eae }}},
  9921. { 0x1eb1, {1, {0x1eb0 }}},
  9922. { 0x1eb3, {1, {0x1eb2 }}},
  9923. { 0x1eb5, {1, {0x1eb4 }}},
  9924. { 0x1eb7, {1, {0x1eb6 }}},
  9925. { 0x1eb9, {1, {0x1eb8 }}},
  9926. { 0x1ebb, {1, {0x1eba }}},
  9927. { 0x1ebd, {1, {0x1ebc }}},
  9928. { 0x1ebf, {1, {0x1ebe }}},
  9929. { 0x1ec1, {1, {0x1ec0 }}},
  9930. { 0x1ec3, {1, {0x1ec2 }}},
  9931. { 0x1ec5, {1, {0x1ec4 }}},
  9932. { 0x1ec7, {1, {0x1ec6 }}},
  9933. { 0x1ec9, {1, {0x1ec8 }}},
  9934. { 0x1ecb, {1, {0x1eca }}},
  9935. { 0x1ecd, {1, {0x1ecc }}},
  9936. { 0x1ecf, {1, {0x1ece }}},
  9937. { 0x1ed1, {1, {0x1ed0 }}},
  9938. { 0x1ed3, {1, {0x1ed2 }}},
  9939. { 0x1ed5, {1, {0x1ed4 }}},
  9940. { 0x1ed7, {1, {0x1ed6 }}},
  9941. { 0x1ed9, {1, {0x1ed8 }}},
  9942. { 0x1edb, {1, {0x1eda }}},
  9943. { 0x1edd, {1, {0x1edc }}},
  9944. { 0x1edf, {1, {0x1ede }}},
  9945. { 0x1ee1, {1, {0x1ee0 }}},
  9946. { 0x1ee3, {1, {0x1ee2 }}},
  9947. { 0x1ee5, {1, {0x1ee4 }}},
  9948. { 0x1ee7, {1, {0x1ee6 }}},
  9949. { 0x1ee9, {1, {0x1ee8 }}},
  9950. { 0x1eeb, {1, {0x1eea }}},
  9951. { 0x1eed, {1, {0x1eec }}},
  9952. { 0x1eef, {1, {0x1eee }}},
  9953. { 0x1ef1, {1, {0x1ef0 }}},
  9954. { 0x1ef3, {1, {0x1ef2 }}},
  9955. { 0x1ef5, {1, {0x1ef4 }}},
  9956. { 0x1ef7, {1, {0x1ef6 }}},
  9957. { 0x1ef9, {1, {0x1ef8 }}},
  9958. { 0x1f00, {1, {0x1f08 }}},
  9959. { 0x1f01, {1, {0x1f09 }}},
  9960. { 0x1f02, {1, {0x1f0a }}},
  9961. { 0x1f03, {1, {0x1f0b }}},
  9962. { 0x1f04, {1, {0x1f0c }}},
  9963. { 0x1f05, {1, {0x1f0d }}},
  9964. { 0x1f06, {1, {0x1f0e }}},
  9965. { 0x1f07, {1, {0x1f0f }}},
  9966. { 0x1f10, {1, {0x1f18 }}},
  9967. { 0x1f11, {1, {0x1f19 }}},
  9968. { 0x1f12, {1, {0x1f1a }}},
  9969. { 0x1f13, {1, {0x1f1b }}},
  9970. { 0x1f14, {1, {0x1f1c }}},
  9971. { 0x1f15, {1, {0x1f1d }}},
  9972. { 0x1f20, {1, {0x1f28 }}},
  9973. { 0x1f21, {1, {0x1f29 }}},
  9974. { 0x1f22, {1, {0x1f2a }}},
  9975. { 0x1f23, {1, {0x1f2b }}},
  9976. { 0x1f24, {1, {0x1f2c }}},
  9977. { 0x1f25, {1, {0x1f2d }}},
  9978. { 0x1f26, {1, {0x1f2e }}},
  9979. { 0x1f27, {1, {0x1f2f }}},
  9980. { 0x1f30, {1, {0x1f38 }}},
  9981. { 0x1f31, {1, {0x1f39 }}},
  9982. { 0x1f32, {1, {0x1f3a }}},
  9983. { 0x1f33, {1, {0x1f3b }}},
  9984. { 0x1f34, {1, {0x1f3c }}},
  9985. { 0x1f35, {1, {0x1f3d }}},
  9986. { 0x1f36, {1, {0x1f3e }}},
  9987. { 0x1f37, {1, {0x1f3f }}},
  9988. { 0x1f40, {1, {0x1f48 }}},
  9989. { 0x1f41, {1, {0x1f49 }}},
  9990. { 0x1f42, {1, {0x1f4a }}},
  9991. { 0x1f43, {1, {0x1f4b }}},
  9992. { 0x1f44, {1, {0x1f4c }}},
  9993. { 0x1f45, {1, {0x1f4d }}},
  9994. { 0x1f51, {1, {0x1f59 }}},
  9995. { 0x1f53, {1, {0x1f5b }}},
  9996. { 0x1f55, {1, {0x1f5d }}},
  9997. { 0x1f57, {1, {0x1f5f }}},
  9998. { 0x1f60, {1, {0x1f68 }}},
  9999. { 0x1f61, {1, {0x1f69 }}},
  10000. { 0x1f62, {1, {0x1f6a }}},
  10001. { 0x1f63, {1, {0x1f6b }}},
  10002. { 0x1f64, {1, {0x1f6c }}},
  10003. { 0x1f65, {1, {0x1f6d }}},
  10004. { 0x1f66, {1, {0x1f6e }}},
  10005. { 0x1f67, {1, {0x1f6f }}},
  10006. { 0x1f70, {1, {0x1fba }}},
  10007. { 0x1f71, {1, {0x1fbb }}},
  10008. { 0x1f72, {1, {0x1fc8 }}},
  10009. { 0x1f73, {1, {0x1fc9 }}},
  10010. { 0x1f74, {1, {0x1fca }}},
  10011. { 0x1f75, {1, {0x1fcb }}},
  10012. { 0x1f76, {1, {0x1fda }}},
  10013. { 0x1f77, {1, {0x1fdb }}},
  10014. { 0x1f78, {1, {0x1ff8 }}},
  10015. { 0x1f79, {1, {0x1ff9 }}},
  10016. { 0x1f7a, {1, {0x1fea }}},
  10017. { 0x1f7b, {1, {0x1feb }}},
  10018. { 0x1f7c, {1, {0x1ffa }}},
  10019. { 0x1f7d, {1, {0x1ffb }}},
  10020. { 0x1fb0, {1, {0x1fb8 }}},
  10021. { 0x1fb1, {1, {0x1fb9 }}},
  10022. { 0x1fd0, {1, {0x1fd8 }}},
  10023. { 0x1fd1, {1, {0x1fd9 }}},
  10024. { 0x1fe0, {1, {0x1fe8 }}},
  10025. { 0x1fe1, {1, {0x1fe9 }}},
  10026. { 0x1fe5, {1, {0x1fec }}},
  10027. { 0x2170, {1, {0x2160 }}},
  10028. { 0x2171, {1, {0x2161 }}},
  10029. { 0x2172, {1, {0x2162 }}},
  10030. { 0x2173, {1, {0x2163 }}},
  10031. { 0x2174, {1, {0x2164 }}},
  10032. { 0x2175, {1, {0x2165 }}},
  10033. { 0x2176, {1, {0x2166 }}},
  10034. { 0x2177, {1, {0x2167 }}},
  10035. { 0x2178, {1, {0x2168 }}},
  10036. { 0x2179, {1, {0x2169 }}},
  10037. { 0x217a, {1, {0x216a }}},
  10038. { 0x217b, {1, {0x216b }}},
  10039. { 0x217c, {1, {0x216c }}},
  10040. { 0x217d, {1, {0x216d }}},
  10041. { 0x217e, {1, {0x216e }}},
  10042. { 0x217f, {1, {0x216f }}},
  10043. { 0x24d0, {1, {0x24b6 }}},
  10044. { 0x24d1, {1, {0x24b7 }}},
  10045. { 0x24d2, {1, {0x24b8 }}},
  10046. { 0x24d3, {1, {0x24b9 }}},
  10047. { 0x24d4, {1, {0x24ba }}},
  10048. { 0x24d5, {1, {0x24bb }}},
  10049. { 0x24d6, {1, {0x24bc }}},
  10050. { 0x24d7, {1, {0x24bd }}},
  10051. { 0x24d8, {1, {0x24be }}},
  10052. { 0x24d9, {1, {0x24bf }}},
  10053. { 0x24da, {1, {0x24c0 }}},
  10054. { 0x24db, {1, {0x24c1 }}},
  10055. { 0x24dc, {1, {0x24c2 }}},
  10056. { 0x24dd, {1, {0x24c3 }}},
  10057. { 0x24de, {1, {0x24c4 }}},
  10058. { 0x24df, {1, {0x24c5 }}},
  10059. { 0x24e0, {1, {0x24c6 }}},
  10060. { 0x24e1, {1, {0x24c7 }}},
  10061. { 0x24e2, {1, {0x24c8 }}},
  10062. { 0x24e3, {1, {0x24c9 }}},
  10063. { 0x24e4, {1, {0x24ca }}},
  10064. { 0x24e5, {1, {0x24cb }}},
  10065. { 0x24e6, {1, {0x24cc }}},
  10066. { 0x24e7, {1, {0x24cd }}},
  10067. { 0x24e8, {1, {0x24ce }}},
  10068. { 0x24e9, {1, {0x24cf }}},
  10069. { 0x2c30, {1, {0x2c00 }}},
  10070. { 0x2c31, {1, {0x2c01 }}},
  10071. { 0x2c32, {1, {0x2c02 }}},
  10072. { 0x2c33, {1, {0x2c03 }}},
  10073. { 0x2c34, {1, {0x2c04 }}},
  10074. { 0x2c35, {1, {0x2c05 }}},
  10075. { 0x2c36, {1, {0x2c06 }}},
  10076. { 0x2c37, {1, {0x2c07 }}},
  10077. { 0x2c38, {1, {0x2c08 }}},
  10078. { 0x2c39, {1, {0x2c09 }}},
  10079. { 0x2c3a, {1, {0x2c0a }}},
  10080. { 0x2c3b, {1, {0x2c0b }}},
  10081. { 0x2c3c, {1, {0x2c0c }}},
  10082. { 0x2c3d, {1, {0x2c0d }}},
  10083. { 0x2c3e, {1, {0x2c0e }}},
  10084. { 0x2c3f, {1, {0x2c0f }}},
  10085. { 0x2c40, {1, {0x2c10 }}},
  10086. { 0x2c41, {1, {0x2c11 }}},
  10087. { 0x2c42, {1, {0x2c12 }}},
  10088. { 0x2c43, {1, {0x2c13 }}},
  10089. { 0x2c44, {1, {0x2c14 }}},
  10090. { 0x2c45, {1, {0x2c15 }}},
  10091. { 0x2c46, {1, {0x2c16 }}},
  10092. { 0x2c47, {1, {0x2c17 }}},
  10093. { 0x2c48, {1, {0x2c18 }}},
  10094. { 0x2c49, {1, {0x2c19 }}},
  10095. { 0x2c4a, {1, {0x2c1a }}},
  10096. { 0x2c4b, {1, {0x2c1b }}},
  10097. { 0x2c4c, {1, {0x2c1c }}},
  10098. { 0x2c4d, {1, {0x2c1d }}},
  10099. { 0x2c4e, {1, {0x2c1e }}},
  10100. { 0x2c4f, {1, {0x2c1f }}},
  10101. { 0x2c50, {1, {0x2c20 }}},
  10102. { 0x2c51, {1, {0x2c21 }}},
  10103. { 0x2c52, {1, {0x2c22 }}},
  10104. { 0x2c53, {1, {0x2c23 }}},
  10105. { 0x2c54, {1, {0x2c24 }}},
  10106. { 0x2c55, {1, {0x2c25 }}},
  10107. { 0x2c56, {1, {0x2c26 }}},
  10108. { 0x2c57, {1, {0x2c27 }}},
  10109. { 0x2c58, {1, {0x2c28 }}},
  10110. { 0x2c59, {1, {0x2c29 }}},
  10111. { 0x2c5a, {1, {0x2c2a }}},
  10112. { 0x2c5b, {1, {0x2c2b }}},
  10113. { 0x2c5c, {1, {0x2c2c }}},
  10114. { 0x2c5d, {1, {0x2c2d }}},
  10115. { 0x2c5e, {1, {0x2c2e }}},
  10116. { 0x2c81, {1, {0x2c80 }}},
  10117. { 0x2c83, {1, {0x2c82 }}},
  10118. { 0x2c85, {1, {0x2c84 }}},
  10119. { 0x2c87, {1, {0x2c86 }}},
  10120. { 0x2c89, {1, {0x2c88 }}},
  10121. { 0x2c8b, {1, {0x2c8a }}},
  10122. { 0x2c8d, {1, {0x2c8c }}},
  10123. { 0x2c8f, {1, {0x2c8e }}},
  10124. { 0x2c91, {1, {0x2c90 }}},
  10125. { 0x2c93, {1, {0x2c92 }}},
  10126. { 0x2c95, {1, {0x2c94 }}},
  10127. { 0x2c97, {1, {0x2c96 }}},
  10128. { 0x2c99, {1, {0x2c98 }}},
  10129. { 0x2c9b, {1, {0x2c9a }}},
  10130. { 0x2c9d, {1, {0x2c9c }}},
  10131. { 0x2c9f, {1, {0x2c9e }}},
  10132. { 0x2ca1, {1, {0x2ca0 }}},
  10133. { 0x2ca3, {1, {0x2ca2 }}},
  10134. { 0x2ca5, {1, {0x2ca4 }}},
  10135. { 0x2ca7, {1, {0x2ca6 }}},
  10136. { 0x2ca9, {1, {0x2ca8 }}},
  10137. { 0x2cab, {1, {0x2caa }}},
  10138. { 0x2cad, {1, {0x2cac }}},
  10139. { 0x2caf, {1, {0x2cae }}},
  10140. { 0x2cb1, {1, {0x2cb0 }}},
  10141. { 0x2cb3, {1, {0x2cb2 }}},
  10142. { 0x2cb5, {1, {0x2cb4 }}},
  10143. { 0x2cb7, {1, {0x2cb6 }}},
  10144. { 0x2cb9, {1, {0x2cb8 }}},
  10145. { 0x2cbb, {1, {0x2cba }}},
  10146. { 0x2cbd, {1, {0x2cbc }}},
  10147. { 0x2cbf, {1, {0x2cbe }}},
  10148. { 0x2cc1, {1, {0x2cc0 }}},
  10149. { 0x2cc3, {1, {0x2cc2 }}},
  10150. { 0x2cc5, {1, {0x2cc4 }}},
  10151. { 0x2cc7, {1, {0x2cc6 }}},
  10152. { 0x2cc9, {1, {0x2cc8 }}},
  10153. { 0x2ccb, {1, {0x2cca }}},
  10154. { 0x2ccd, {1, {0x2ccc }}},
  10155. { 0x2ccf, {1, {0x2cce }}},
  10156. { 0x2cd1, {1, {0x2cd0 }}},
  10157. { 0x2cd3, {1, {0x2cd2 }}},
  10158. { 0x2cd5, {1, {0x2cd4 }}},
  10159. { 0x2cd7, {1, {0x2cd6 }}},
  10160. { 0x2cd9, {1, {0x2cd8 }}},
  10161. { 0x2cdb, {1, {0x2cda }}},
  10162. { 0x2cdd, {1, {0x2cdc }}},
  10163. { 0x2cdf, {1, {0x2cde }}},
  10164. { 0x2ce1, {1, {0x2ce0 }}},
  10165. { 0x2ce3, {1, {0x2ce2 }}},
  10166. { 0x2d00, {1, {0x10a0 }}},
  10167. { 0x2d01, {1, {0x10a1 }}},
  10168. { 0x2d02, {1, {0x10a2 }}},
  10169. { 0x2d03, {1, {0x10a3 }}},
  10170. { 0x2d04, {1, {0x10a4 }}},
  10171. { 0x2d05, {1, {0x10a5 }}},
  10172. { 0x2d06, {1, {0x10a6 }}},
  10173. { 0x2d07, {1, {0x10a7 }}},
  10174. { 0x2d08, {1, {0x10a8 }}},
  10175. { 0x2d09, {1, {0x10a9 }}},
  10176. { 0x2d0a, {1, {0x10aa }}},
  10177. { 0x2d0b, {1, {0x10ab }}},
  10178. { 0x2d0c, {1, {0x10ac }}},
  10179. { 0x2d0d, {1, {0x10ad }}},
  10180. { 0x2d0e, {1, {0x10ae }}},
  10181. { 0x2d0f, {1, {0x10af }}},
  10182. { 0x2d10, {1, {0x10b0 }}},
  10183. { 0x2d11, {1, {0x10b1 }}},
  10184. { 0x2d12, {1, {0x10b2 }}},
  10185. { 0x2d13, {1, {0x10b3 }}},
  10186. { 0x2d14, {1, {0x10b4 }}},
  10187. { 0x2d15, {1, {0x10b5 }}},
  10188. { 0x2d16, {1, {0x10b6 }}},
  10189. { 0x2d17, {1, {0x10b7 }}},
  10190. { 0x2d18, {1, {0x10b8 }}},
  10191. { 0x2d19, {1, {0x10b9 }}},
  10192. { 0x2d1a, {1, {0x10ba }}},
  10193. { 0x2d1b, {1, {0x10bb }}},
  10194. { 0x2d1c, {1, {0x10bc }}},
  10195. { 0x2d1d, {1, {0x10bd }}},
  10196. { 0x2d1e, {1, {0x10be }}},
  10197. { 0x2d1f, {1, {0x10bf }}},
  10198. { 0x2d20, {1, {0x10c0 }}},
  10199. { 0x2d21, {1, {0x10c1 }}},
  10200. { 0x2d22, {1, {0x10c2 }}},
  10201. { 0x2d23, {1, {0x10c3 }}},
  10202. { 0x2d24, {1, {0x10c4 }}},
  10203. { 0x2d25, {1, {0x10c5 }}},
  10204. { 0xff41, {1, {0xff21 }}},
  10205. { 0xff42, {1, {0xff22 }}},
  10206. { 0xff43, {1, {0xff23 }}},
  10207. { 0xff44, {1, {0xff24 }}},
  10208. { 0xff45, {1, {0xff25 }}},
  10209. { 0xff46, {1, {0xff26 }}},
  10210. { 0xff47, {1, {0xff27 }}},
  10211. { 0xff48, {1, {0xff28 }}},
  10212. { 0xff49, {1, {0xff29 }}},
  10213. { 0xff4a, {1, {0xff2a }}},
  10214. { 0xff4b, {1, {0xff2b }}},
  10215. { 0xff4c, {1, {0xff2c }}},
  10216. { 0xff4d, {1, {0xff2d }}},
  10217. { 0xff4e, {1, {0xff2e }}},
  10218. { 0xff4f, {1, {0xff2f }}},
  10219. { 0xff50, {1, {0xff30 }}},
  10220. { 0xff51, {1, {0xff31 }}},
  10221. { 0xff52, {1, {0xff32 }}},
  10222. { 0xff53, {1, {0xff33 }}},
  10223. { 0xff54, {1, {0xff34 }}},
  10224. { 0xff55, {1, {0xff35 }}},
  10225. { 0xff56, {1, {0xff36 }}},
  10226. { 0xff57, {1, {0xff37 }}},
  10227. { 0xff58, {1, {0xff38 }}},
  10228. { 0xff59, {1, {0xff39 }}},
  10229. { 0xff5a, {1, {0xff3a }}},
  10230. { 0x10428, {1, {0x10400 }}},
  10231. { 0x10429, {1, {0x10401 }}},
  10232. { 0x1042a, {1, {0x10402 }}},
  10233. { 0x1042b, {1, {0x10403 }}},
  10234. { 0x1042c, {1, {0x10404 }}},
  10235. { 0x1042d, {1, {0x10405 }}},
  10236. { 0x1042e, {1, {0x10406 }}},
  10237. { 0x1042f, {1, {0x10407 }}},
  10238. { 0x10430, {1, {0x10408 }}},
  10239. { 0x10431, {1, {0x10409 }}},
  10240. { 0x10432, {1, {0x1040a }}},
  10241. { 0x10433, {1, {0x1040b }}},
  10242. { 0x10434, {1, {0x1040c }}},
  10243. { 0x10435, {1, {0x1040d }}},
  10244. { 0x10436, {1, {0x1040e }}},
  10245. { 0x10437, {1, {0x1040f }}},
  10246. { 0x10438, {1, {0x10410 }}},
  10247. { 0x10439, {1, {0x10411 }}},
  10248. { 0x1043a, {1, {0x10412 }}},
  10249. { 0x1043b, {1, {0x10413 }}},
  10250. { 0x1043c, {1, {0x10414 }}},
  10251. { 0x1043d, {1, {0x10415 }}},
  10252. { 0x1043e, {1, {0x10416 }}},
  10253. { 0x1043f, {1, {0x10417 }}},
  10254. { 0x10440, {1, {0x10418 }}},
  10255. { 0x10441, {1, {0x10419 }}},
  10256. { 0x10442, {1, {0x1041a }}},
  10257. { 0x10443, {1, {0x1041b }}},
  10258. { 0x10444, {1, {0x1041c }}},
  10259. { 0x10445, {1, {0x1041d }}},
  10260. { 0x10446, {1, {0x1041e }}},
  10261. { 0x10447, {1, {0x1041f }}},
  10262. { 0x10448, {1, {0x10420 }}},
  10263. { 0x10449, {1, {0x10421 }}},
  10264. { 0x1044a, {1, {0x10422 }}},
  10265. { 0x1044b, {1, {0x10423 }}},
  10266. { 0x1044c, {1, {0x10424 }}},
  10267. { 0x1044d, {1, {0x10425 }}},
  10268. { 0x1044e, {1, {0x10426 }}},
  10269. { 0x1044f, {1, {0x10427 }}}
  10270. };
  10271. static const CaseUnfold_11_Type CaseUnfold_11_Locale[] = {
  10272. { 0x0069, {1, {0x0049 }}}
  10273. };
  10274. static const CaseUnfold_12_Type CaseUnfold_12[] = {
  10275. { {0x0061, 0x02be}, {1, {0x1e9a }}},
  10276. { {0x0066, 0x0066}, {1, {0xfb00 }}},
  10277. { {0x0066, 0x0069}, {1, {0xfb01 }}},
  10278. { {0x0066, 0x006c}, {1, {0xfb02 }}},
  10279. { {0x0068, 0x0331}, {1, {0x1e96 }}},
  10280. { {0x006a, 0x030c}, {1, {0x01f0 }}},
  10281. { {0x0073, 0x0073}, {1, {0x00df }}},
  10282. { {0x0073, 0x0074}, {2, {0xfb05, 0xfb06 }}},
  10283. { {0x0074, 0x0308}, {1, {0x1e97 }}},
  10284. { {0x0077, 0x030a}, {1, {0x1e98 }}},
  10285. { {0x0079, 0x030a}, {1, {0x1e99 }}},
  10286. { {0x02bc, 0x006e}, {1, {0x0149 }}},
  10287. { {0x03ac, 0x03b9}, {1, {0x1fb4 }}},
  10288. { {0x03ae, 0x03b9}, {1, {0x1fc4 }}},
  10289. { {0x03b1, 0x0342}, {1, {0x1fb6 }}},
  10290. { {0x03b1, 0x03b9}, {2, {0x1fb3, 0x1fbc }}},
  10291. { {0x03b7, 0x0342}, {1, {0x1fc6 }}},
  10292. { {0x03b7, 0x03b9}, {2, {0x1fc3, 0x1fcc }}},
  10293. { {0x03b9, 0x0342}, {1, {0x1fd6 }}},
  10294. { {0x03c1, 0x0313}, {1, {0x1fe4 }}},
  10295. { {0x03c5, 0x0313}, {1, {0x1f50 }}},
  10296. { {0x03c5, 0x0342}, {1, {0x1fe6 }}},
  10297. { {0x03c9, 0x0342}, {1, {0x1ff6 }}},
  10298. { {0x03c9, 0x03b9}, {2, {0x1ff3, 0x1ffc }}},
  10299. { {0x03ce, 0x03b9}, {1, {0x1ff4 }}},
  10300. { {0x0565, 0x0582}, {1, {0x0587 }}},
  10301. { {0x0574, 0x0565}, {1, {0xfb14 }}},
  10302. { {0x0574, 0x056b}, {1, {0xfb15 }}},
  10303. { {0x0574, 0x056d}, {1, {0xfb17 }}},
  10304. { {0x0574, 0x0576}, {1, {0xfb13 }}},
  10305. { {0x057e, 0x0576}, {1, {0xfb16 }}},
  10306. { {0x1f00, 0x03b9}, {2, {0x1f88, 0x1f80 }}},
  10307. { {0x1f01, 0x03b9}, {2, {0x1f81, 0x1f89 }}},
  10308. { {0x1f02, 0x03b9}, {2, {0x1f82, 0x1f8a }}},
  10309. { {0x1f03, 0x03b9}, {2, {0x1f83, 0x1f8b }}},
  10310. { {0x1f04, 0x03b9}, {2, {0x1f84, 0x1f8c }}},
  10311. { {0x1f05, 0x03b9}, {2, {0x1f85, 0x1f8d }}},
  10312. { {0x1f06, 0x03b9}, {2, {0x1f86, 0x1f8e }}},
  10313. { {0x1f07, 0x03b9}, {2, {0x1f87, 0x1f8f }}},
  10314. { {0x1f20, 0x03b9}, {2, {0x1f90, 0x1f98 }}},
  10315. { {0x1f21, 0x03b9}, {2, {0x1f91, 0x1f99 }}},
  10316. { {0x1f22, 0x03b9}, {2, {0x1f92, 0x1f9a }}},
  10317. { {0x1f23, 0x03b9}, {2, {0x1f93, 0x1f9b }}},
  10318. { {0x1f24, 0x03b9}, {2, {0x1f94, 0x1f9c }}},
  10319. { {0x1f25, 0x03b9}, {2, {0x1f95, 0x1f9d }}},
  10320. { {0x1f26, 0x03b9}, {2, {0x1f96, 0x1f9e }}},
  10321. { {0x1f27, 0x03b9}, {2, {0x1f97, 0x1f9f }}},
  10322. { {0x1f60, 0x03b9}, {2, {0x1fa0, 0x1fa8 }}},
  10323. { {0x1f61, 0x03b9}, {2, {0x1fa1, 0x1fa9 }}},
  10324. { {0x1f62, 0x03b9}, {2, {0x1fa2, 0x1faa }}},
  10325. { {0x1f63, 0x03b9}, {2, {0x1fa3, 0x1fab }}},
  10326. { {0x1f64, 0x03b9}, {2, {0x1fa4, 0x1fac }}},
  10327. { {0x1f65, 0x03b9}, {2, {0x1fa5, 0x1fad }}},
  10328. { {0x1f66, 0x03b9}, {2, {0x1fa6, 0x1fae }}},
  10329. { {0x1f67, 0x03b9}, {2, {0x1fa7, 0x1faf }}},
  10330. { {0x1f70, 0x03b9}, {1, {0x1fb2 }}},
  10331. { {0x1f74, 0x03b9}, {1, {0x1fc2 }}},
  10332. { {0x1f7c, 0x03b9}, {1, {0x1ff2 }}}
  10333. };
  10334. static const CaseUnfold_12_Type CaseUnfold_12_Locale[] = {
  10335. { {0x0069, 0x0307}, {1, {0x0130 }}}
  10336. };
  10337. static const CaseUnfold_13_Type CaseUnfold_13[] = {
  10338. { {0x0066, 0x0066, 0x0069}, {1, {0xfb03 }}},
  10339. { {0x0066, 0x0066, 0x006c}, {1, {0xfb04 }}},
  10340. { {0x03b1, 0x0342, 0x03b9}, {1, {0x1fb7 }}},
  10341. { {0x03b7, 0x0342, 0x03b9}, {1, {0x1fc7 }}},
  10342. { {0x03b9, 0x0308, 0x0300}, {1, {0x1fd2 }}},
  10343. { {0x03b9, 0x0308, 0x0301}, {2, {0x0390, 0x1fd3 }}},
  10344. { {0x03b9, 0x0308, 0x0342}, {1, {0x1fd7 }}},
  10345. { {0x03c5, 0x0308, 0x0300}, {1, {0x1fe2 }}},
  10346. { {0x03c5, 0x0308, 0x0301}, {2, {0x03b0, 0x1fe3 }}},
  10347. { {0x03c5, 0x0308, 0x0342}, {1, {0x1fe7 }}},
  10348. { {0x03c5, 0x0313, 0x0300}, {1, {0x1f52 }}},
  10349. { {0x03c5, 0x0313, 0x0301}, {1, {0x1f54 }}},
  10350. { {0x03c5, 0x0313, 0x0342}, {1, {0x1f56 }}},
  10351. { {0x03c9, 0x0342, 0x03b9}, {1, {0x1ff7 }}}
  10352. };
  10353. static PosixBracketEntryType HashEntryData[] = {
  10354. { (UChar* )"NEWLINE", 0, 7 },
  10355. { (UChar* )"Alpha", 1, 5 },
  10356. { (UChar* )"Blank", 2, 5 },
  10357. { (UChar* )"Cntrl", 3, 5 },
  10358. { (UChar* )"Digit", 4, 5 },
  10359. { (UChar* )"Graph", 5, 5 },
  10360. { (UChar* )"Lower", 6, 5 },
  10361. { (UChar* )"Print", 7, 5 },
  10362. { (UChar* )"Punct", 8, 5 },
  10363. { (UChar* )"Space", 9, 5 },
  10364. { (UChar* )"Upper", 10, 5 },
  10365. { (UChar* )"XDigit", 11, 6 },
  10366. { (UChar* )"Word", 12, 4 },
  10367. { (UChar* )"Alnum", 13, 5 },
  10368. { (UChar* )"ASCII", 14, 5 },
  10369. #ifdef USE_UNICODE_PROPERTIES
  10370. { (UChar* )"Any", 15, 3 },
  10371. { (UChar* )"Assigned", 16, 8 },
  10372. { (UChar* )"C", 17, 1 },
  10373. { (UChar* )"Cc", 18, 2 },
  10374. { (UChar* )"Cf", 19, 2 },
  10375. { (UChar* )"Cn", 20, 2 },
  10376. { (UChar* )"Co", 21, 2 },
  10377. { (UChar* )"Cs", 22, 2 },
  10378. { (UChar* )"L", 23, 1 },
  10379. { (UChar* )"Ll", 24, 2 },
  10380. { (UChar* )"Lm", 25, 2 },
  10381. { (UChar* )"Lo", 26, 2 },
  10382. { (UChar* )"Lt", 27, 2 },
  10383. { (UChar* )"Lu", 28, 2 },
  10384. { (UChar* )"M", 29, 1 },
  10385. { (UChar* )"Mc", 30, 2 },
  10386. { (UChar* )"Me", 31, 2 },
  10387. { (UChar* )"Mn", 32, 2 },
  10388. { (UChar* )"N", 33, 1 },
  10389. { (UChar* )"Nd", 34, 2 },
  10390. { (UChar* )"Nl", 35, 2 },
  10391. { (UChar* )"No", 36, 2 },
  10392. { (UChar* )"P", 37, 1 },
  10393. { (UChar* )"Pc", 38, 2 },
  10394. { (UChar* )"Pd", 39, 2 },
  10395. { (UChar* )"Pe", 40, 2 },
  10396. { (UChar* )"Pf", 41, 2 },
  10397. { (UChar* )"Pi", 42, 2 },
  10398. { (UChar* )"Po", 43, 2 },
  10399. { (UChar* )"Ps", 44, 2 },
  10400. { (UChar* )"S", 45, 1 },
  10401. { (UChar* )"Sc", 46, 2 },
  10402. { (UChar* )"Sk", 47, 2 },
  10403. { (UChar* )"Sm", 48, 2 },
  10404. { (UChar* )"So", 49, 2 },
  10405. { (UChar* )"Z", 50, 1 },
  10406. { (UChar* )"Zl", 51, 2 },
  10407. { (UChar* )"Zp", 52, 2 },
  10408. { (UChar* )"Zs", 53, 2 },
  10409. { (UChar* )"Arabic", 54, 6 },
  10410. { (UChar* )"Armenian", 55, 8 },
  10411. { (UChar* )"Bengali", 56, 7 },
  10412. { (UChar* )"Bopomofo", 57, 8 },
  10413. { (UChar* )"Braille", 58, 7 },
  10414. { (UChar* )"Buginese", 59, 8 },
  10415. { (UChar* )"Buhid", 60, 5 },
  10416. { (UChar* )"Canadian_Aboriginal", 61, 19 },
  10417. { (UChar* )"Cherokee", 62, 8 },
  10418. { (UChar* )"Common", 63, 6 },
  10419. { (UChar* )"Coptic", 64, 6 },
  10420. { (UChar* )"Cypriot", 65, 7 },
  10421. { (UChar* )"Cyrillic", 66, 8 },
  10422. { (UChar* )"Deseret", 67, 7 },
  10423. { (UChar* )"Devanagari", 68, 10 },
  10424. { (UChar* )"Ethiopic", 69, 8 },
  10425. { (UChar* )"Georgian", 70, 8 },
  10426. { (UChar* )"Glagolitic", 71, 10 },
  10427. { (UChar* )"Gothic", 72, 6 },
  10428. { (UChar* )"Greek", 73, 5 },
  10429. { (UChar* )"Gujarati", 74, 8 },
  10430. { (UChar* )"Gurmukhi", 75, 8 },
  10431. { (UChar* )"Han", 76, 3 },
  10432. { (UChar* )"Hangul", 77, 6 },
  10433. { (UChar* )"Hanunoo", 78, 7 },
  10434. { (UChar* )"Hebrew", 79, 6 },
  10435. { (UChar* )"Hiragana", 80, 8 },
  10436. { (UChar* )"Inherited", 81, 9 },
  10437. { (UChar* )"Kannada", 82, 7 },
  10438. { (UChar* )"Katakana", 83, 8 },
  10439. { (UChar* )"Kharoshthi", 84, 10 },
  10440. { (UChar* )"Khmer", 85, 5 },
  10441. { (UChar* )"Lao", 86, 3 },
  10442. { (UChar* )"Latin", 87, 5 },
  10443. { (UChar* )"Limbu", 88, 5 },
  10444. { (UChar* )"Linear_B", 89, 8 },
  10445. { (UChar* )"Malayalam", 90, 9 },
  10446. { (UChar* )"Mongolian", 91, 9 },
  10447. { (UChar* )"Myanmar", 92, 7 },
  10448. { (UChar* )"New_Tai_Lue", 93, 11 },
  10449. { (UChar* )"Ogham", 94, 5 },
  10450. { (UChar* )"Old_Italic", 95, 10 },
  10451. { (UChar* )"Old_Persian", 96, 11 },
  10452. { (UChar* )"Oriya", 97, 5 },
  10453. { (UChar* )"Osmanya", 98, 7 },
  10454. { (UChar* )"Runic", 99, 5 },
  10455. { (UChar* )"Shavian", 100, 7 },
  10456. { (UChar* )"Sinhala", 101, 7 },
  10457. { (UChar* )"Syloti_Nagri", 102, 12 },
  10458. { (UChar* )"Syriac", 103, 6 },
  10459. { (UChar* )"Tagalog", 104, 7 },
  10460. { (UChar* )"Tagbanwa", 105, 8 },
  10461. { (UChar* )"Tai_Le", 106, 6 },
  10462. { (UChar* )"Tamil", 107, 5 },
  10463. { (UChar* )"Telugu", 108, 6 },
  10464. { (UChar* )"Thaana", 109, 6 },
  10465. { (UChar* )"Thai", 110, 4 },
  10466. { (UChar* )"Tibetan", 111, 7 },
  10467. { (UChar* )"Tifinagh", 112, 8 },
  10468. { (UChar* )"Ugaritic", 113, 8 },
  10469. { (UChar* )"Yi", 114, 2 },
  10470. #endif /* USE_UNICODE_PROPERTIES */
  10471. { (UChar* )NULL, -1, 0 }
  10472. };
  10473. #ifdef USE_UNICODE_PROPERTIES
  10474. #define CODE_RANGES_NUM 115
  10475. #else
  10476. #define CODE_RANGES_NUM 15
  10477. #endif
  10478. static const OnigCodePoint* CodeRanges[CODE_RANGES_NUM];
  10479. static int CodeRangeTableInited = 0;
  10480. static void init_code_range_array(void) {
  10481. THREAD_ATOMIC_START;
  10482. CodeRanges[0] = CR_NEWLINE;
  10483. CodeRanges[1] = CR_Alpha;
  10484. CodeRanges[2] = CR_Blank;
  10485. CodeRanges[3] = CR_Cntrl;
  10486. CodeRanges[4] = CR_Digit;
  10487. CodeRanges[5] = CR_Graph;
  10488. CodeRanges[6] = CR_Lower;
  10489. CodeRanges[7] = CR_Print;
  10490. CodeRanges[8] = CR_Punct;
  10491. CodeRanges[9] = CR_Space;
  10492. CodeRanges[10] = CR_Upper;
  10493. CodeRanges[11] = CR_XDigit;
  10494. CodeRanges[12] = CR_Word;
  10495. CodeRanges[13] = CR_Alnum;
  10496. CodeRanges[14] = CR_ASCII;
  10497. #ifdef USE_UNICODE_PROPERTIES
  10498. CodeRanges[15] = CR_Any;
  10499. CodeRanges[16] = CR_Assigned;
  10500. CodeRanges[17] = CR_C;
  10501. CodeRanges[18] = CR_Cc;
  10502. CodeRanges[19] = CR_Cf;
  10503. CodeRanges[20] = CR_Cn;
  10504. CodeRanges[21] = CR_Co;
  10505. CodeRanges[22] = CR_Cs;
  10506. CodeRanges[23] = CR_L;
  10507. CodeRanges[24] = CR_Ll;
  10508. CodeRanges[25] = CR_Lm;
  10509. CodeRanges[26] = CR_Lo;
  10510. CodeRanges[27] = CR_Lt;
  10511. CodeRanges[28] = CR_Lu;
  10512. CodeRanges[29] = CR_M;
  10513. CodeRanges[30] = CR_Mc;
  10514. CodeRanges[31] = CR_Me;
  10515. CodeRanges[32] = CR_Mn;
  10516. CodeRanges[33] = CR_N;
  10517. CodeRanges[34] = CR_Nd;
  10518. CodeRanges[35] = CR_Nl;
  10519. CodeRanges[36] = CR_No;
  10520. CodeRanges[37] = CR_P;
  10521. CodeRanges[38] = CR_Pc;
  10522. CodeRanges[39] = CR_Pd;
  10523. CodeRanges[40] = CR_Pe;
  10524. CodeRanges[41] = CR_Pf;
  10525. CodeRanges[42] = CR_Pi;
  10526. CodeRanges[43] = CR_Po;
  10527. CodeRanges[44] = CR_Ps;
  10528. CodeRanges[45] = CR_S;
  10529. CodeRanges[46] = CR_Sc;
  10530. CodeRanges[47] = CR_Sk;
  10531. CodeRanges[48] = CR_Sm;
  10532. CodeRanges[49] = CR_So;
  10533. CodeRanges[50] = CR_Z;
  10534. CodeRanges[51] = CR_Zl;
  10535. CodeRanges[52] = CR_Zp;
  10536. CodeRanges[53] = CR_Zs;
  10537. CodeRanges[54] = CR_Arabic;
  10538. CodeRanges[55] = CR_Armenian;
  10539. CodeRanges[56] = CR_Bengali;
  10540. CodeRanges[57] = CR_Bopomofo;
  10541. CodeRanges[58] = CR_Braille;
  10542. CodeRanges[59] = CR_Buginese;
  10543. CodeRanges[60] = CR_Buhid;
  10544. CodeRanges[61] = CR_Canadian_Aboriginal;
  10545. CodeRanges[62] = CR_Cherokee;
  10546. CodeRanges[63] = CR_Common;
  10547. CodeRanges[64] = CR_Coptic;
  10548. CodeRanges[65] = CR_Cypriot;
  10549. CodeRanges[66] = CR_Cyrillic;
  10550. CodeRanges[67] = CR_Deseret;
  10551. CodeRanges[68] = CR_Devanagari;
  10552. CodeRanges[69] = CR_Ethiopic;
  10553. CodeRanges[70] = CR_Georgian;
  10554. CodeRanges[71] = CR_Glagolitic;
  10555. CodeRanges[72] = CR_Gothic;
  10556. CodeRanges[73] = CR_Greek;
  10557. CodeRanges[74] = CR_Gujarati;
  10558. CodeRanges[75] = CR_Gurmukhi;
  10559. CodeRanges[76] = CR_Han;
  10560. CodeRanges[77] = CR_Hangul;
  10561. CodeRanges[78] = CR_Hanunoo;
  10562. CodeRanges[79] = CR_Hebrew;
  10563. CodeRanges[80] = CR_Hiragana;
  10564. CodeRanges[81] = CR_Inherited;
  10565. CodeRanges[82] = CR_Kannada;
  10566. CodeRanges[83] = CR_Katakana;
  10567. CodeRanges[84] = CR_Kharoshthi;
  10568. CodeRanges[85] = CR_Khmer;
  10569. CodeRanges[86] = CR_Lao;
  10570. CodeRanges[87] = CR_Latin;
  10571. CodeRanges[88] = CR_Limbu;
  10572. CodeRanges[89] = CR_Linear_B;
  10573. CodeRanges[90] = CR_Malayalam;
  10574. CodeRanges[91] = CR_Mongolian;
  10575. CodeRanges[92] = CR_Myanmar;
  10576. CodeRanges[93] = CR_New_Tai_Lue;
  10577. CodeRanges[94] = CR_Ogham;
  10578. CodeRanges[95] = CR_Old_Italic;
  10579. CodeRanges[96] = CR_Old_Persian;
  10580. CodeRanges[97] = CR_Oriya;
  10581. CodeRanges[98] = CR_Osmanya;
  10582. CodeRanges[99] = CR_Runic;
  10583. CodeRanges[100] = CR_Shavian;
  10584. CodeRanges[101] = CR_Sinhala;
  10585. CodeRanges[102] = CR_Syloti_Nagri;
  10586. CodeRanges[103] = CR_Syriac;
  10587. CodeRanges[104] = CR_Tagalog;
  10588. CodeRanges[105] = CR_Tagbanwa;
  10589. CodeRanges[106] = CR_Tai_Le;
  10590. CodeRanges[107] = CR_Tamil;
  10591. CodeRanges[108] = CR_Telugu;
  10592. CodeRanges[109] = CR_Thaana;
  10593. CodeRanges[110] = CR_Thai;
  10594. CodeRanges[111] = CR_Tibetan;
  10595. CodeRanges[112] = CR_Tifinagh;
  10596. CodeRanges[113] = CR_Ugaritic;
  10597. CodeRanges[114] = CR_Yi;
  10598. #endif /* USE_UNICODE_PROPERTIES */
  10599. CodeRangeTableInited = 1;
  10600. THREAD_ATOMIC_END;
  10601. }
  10602. extern int
  10603. onigenc_unicode_is_code_ctype(OnigCodePoint code, unsigned int ctype)
  10604. {
  10605. if (
  10606. #ifdef USE_UNICODE_PROPERTIES
  10607. ctype <= ONIGENC_MAX_STD_CTYPE &&
  10608. #endif
  10609. code < 256) {
  10610. return ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code, ctype);
  10611. }
  10612. if (ctype >= CODE_RANGES_NUM) {
  10613. return ONIGERR_TYPE_BUG;
  10614. }
  10615. if (CodeRangeTableInited == 0) init_code_range_array();
  10616. return onig_is_in_code_range((UChar* )CodeRanges[ctype], code);
  10617. }
  10618. extern int
  10619. onigenc_unicode_ctype_code_range(int ctype, const OnigCodePoint* ranges[])
  10620. {
  10621. if (ctype >= CODE_RANGES_NUM) {
  10622. return ONIGERR_TYPE_BUG;
  10623. }
  10624. if (CodeRangeTableInited == 0) init_code_range_array();
  10625. *ranges = CodeRanges[ctype];
  10626. return 0;
  10627. }
  10628. extern int
  10629. onigenc_utf16_32_get_ctype_code_range(OnigCtype ctype, OnigCodePoint* sb_out,
  10630. const OnigCodePoint* ranges[])
  10631. {
  10632. *sb_out = 0x00;
  10633. return onigenc_unicode_ctype_code_range(ctype, ranges);
  10634. }
  10635. #include "st.h"
  10636. #define PROPERTY_NAME_MAX_SIZE 20
  10637. static st_table* NameCtypeTable;
  10638. static int NameTableInited = 0;
  10639. static int init_name_ctype_table(void)
  10640. {
  10641. PosixBracketEntryType *pb;
  10642. THREAD_ATOMIC_START;
  10643. NameCtypeTable = onig_st_init_strend_table_with_size(100);
  10644. if (ONIG_IS_NULL(NameCtypeTable)) return ONIGERR_MEMORY;
  10645. for (pb = HashEntryData; ONIG_IS_NOT_NULL(pb->name); pb++) {
  10646. onig_st_insert_strend(NameCtypeTable, pb->name, pb->name + pb->len,
  10647. (st_data_t )pb->ctype);
  10648. }
  10649. NameTableInited = 1;
  10650. THREAD_ATOMIC_END;
  10651. return 0;
  10652. }
  10653. extern int
  10654. onigenc_unicode_property_name_to_ctype(OnigEncoding enc, UChar* name, UChar* end)
  10655. {
  10656. int len;
  10657. hash_data_type ctype;
  10658. UChar buf[PROPERTY_NAME_MAX_SIZE];
  10659. UChar *p;
  10660. OnigCodePoint code;
  10661. p = name;
  10662. len = 0;
  10663. while (p < end) {
  10664. code = ONIGENC_MBC_TO_CODE(enc, p, end);
  10665. if (code >= 0x80)
  10666. return ONIGERR_INVALID_CHAR_PROPERTY_NAME;
  10667. buf[len++] = (UChar )code;
  10668. if (len >= PROPERTY_NAME_MAX_SIZE)
  10669. return ONIGERR_INVALID_CHAR_PROPERTY_NAME;
  10670. p += enclen(enc, p);
  10671. }
  10672. buf[len] = 0;
  10673. if (NameTableInited == 0) init_name_ctype_table();
  10674. if (onig_st_lookup_strend(NameCtypeTable, buf, buf + len, &ctype) == 0) {
  10675. return ONIGERR_INVALID_CHAR_PROPERTY_NAME;
  10676. }
  10677. return (int )ctype;
  10678. }
  10679. static int
  10680. code2_cmp(OnigCodePoint* x, OnigCodePoint* y)
  10681. {
  10682. if (x[0] == y[0] && x[1] == y[1]) return 0;
  10683. return 1;
  10684. }
  10685. static int
  10686. code2_hash(OnigCodePoint* x)
  10687. {
  10688. return (int )(x[0] + x[1]);
  10689. }
  10690. static struct st_hash_type type_code2_hash = {
  10691. code2_cmp,
  10692. code2_hash,
  10693. };
  10694. static int
  10695. code3_cmp(OnigCodePoint* x, OnigCodePoint* y)
  10696. {
  10697. if (x[0] == y[0] && x[1] == y[1] && x[2] == y[2]) return 0;
  10698. return 1;
  10699. }
  10700. static int
  10701. code3_hash(OnigCodePoint* x)
  10702. {
  10703. return (int )(x[0] + x[1] + x[2]);
  10704. }
  10705. static struct st_hash_type type_code3_hash = {
  10706. code3_cmp,
  10707. code3_hash,
  10708. };
  10709. static st_table* FoldTable; /* fold-1, fold-2, fold-3 */
  10710. static st_table* Unfold1Table;
  10711. static st_table* Unfold2Table;
  10712. static st_table* Unfold3Table;
  10713. static int CaseFoldInited = 0;
  10714. static int init_case_fold_table(void)
  10715. {
  10716. const CaseFold_11_Type *p;
  10717. const CaseUnfold_11_Type *p1;
  10718. const CaseUnfold_12_Type *p2;
  10719. const CaseUnfold_13_Type *p3;
  10720. int i;
  10721. THREAD_ATOMIC_START;
  10722. FoldTable = st_init_numtable_with_size(1200);
  10723. if (ONIG_IS_NULL(FoldTable)) return ONIGERR_MEMORY;
  10724. for (i = 0; i < (int )(sizeof(CaseFold)/sizeof(CaseFold_11_Type)); i++) {
  10725. p = &CaseFold[i];
  10726. st_add_direct(FoldTable, (st_data_t )p->from, (st_data_t )&(p->to));
  10727. }
  10728. for (i = 0; i < (int )(sizeof(CaseFold_Locale)/sizeof(CaseFold_11_Type));
  10729. i++) {
  10730. p = &CaseFold_Locale[i];
  10731. st_add_direct(FoldTable, (st_data_t )p->from, (st_data_t )&(p->to));
  10732. }
  10733. Unfold1Table = st_init_numtable_with_size(1000);
  10734. if (ONIG_IS_NULL(Unfold1Table)) return ONIGERR_MEMORY;
  10735. for (i = 0; i < (int )(sizeof(CaseUnfold_11)/sizeof(CaseUnfold_11_Type));
  10736. i++) {
  10737. p1 = &CaseUnfold_11[i];
  10738. st_add_direct(Unfold1Table, (st_data_t )p1->from, (st_data_t )&(p1->to));
  10739. }
  10740. for (i = 0;
  10741. i < (int )(sizeof(CaseUnfold_11_Locale)/sizeof(CaseUnfold_11_Type));
  10742. i++) {
  10743. p1 = &CaseUnfold_11_Locale[i];
  10744. st_add_direct(Unfold1Table, (st_data_t )p1->from, (st_data_t )&(p1->to));
  10745. }
  10746. Unfold2Table = st_init_table_with_size(&type_code2_hash, 200);
  10747. if (ONIG_IS_NULL(Unfold2Table)) return ONIGERR_MEMORY;
  10748. for (i = 0; i < (int )(sizeof(CaseUnfold_12)/sizeof(CaseUnfold_12_Type));
  10749. i++) {
  10750. p2 = &CaseUnfold_12[i];
  10751. st_add_direct(Unfold2Table, (st_data_t )p2->from, (st_data_t )(&p2->to));
  10752. }
  10753. for (i = 0;
  10754. i < (int )(sizeof(CaseUnfold_12_Locale)/sizeof(CaseUnfold_12_Type));
  10755. i++) {
  10756. p2 = &CaseUnfold_12_Locale[i];
  10757. st_add_direct(Unfold2Table, (st_data_t )p2->from, (st_data_t )(&p2->to));
  10758. }
  10759. Unfold3Table = st_init_table_with_size(&type_code3_hash, 30);
  10760. if (ONIG_IS_NULL(Unfold3Table)) return ONIGERR_MEMORY;
  10761. for (i = 0; i < (int )(sizeof(CaseUnfold_13)/sizeof(CaseUnfold_13_Type));
  10762. i++) {
  10763. p3 = &CaseUnfold_13[i];
  10764. st_add_direct(Unfold3Table, (st_data_t )p3->from, (st_data_t )(&p3->to));
  10765. }
  10766. CaseFoldInited = 1;
  10767. THREAD_ATOMIC_END;
  10768. return 0;
  10769. }
  10770. extern int
  10771. onigenc_unicode_mbc_case_fold(OnigEncoding enc,
  10772. OnigCaseFoldType flag ARG_UNUSED, const UChar** pp, const UChar* end,
  10773. UChar* fold)
  10774. {
  10775. CodePointList3 *to;
  10776. OnigCodePoint code;
  10777. int i, len, rlen;
  10778. const UChar *p = *pp;
  10779. if (CaseFoldInited == 0) init_case_fold_table();
  10780. code = ONIGENC_MBC_TO_CODE(enc, p, end);
  10781. len = enclen(enc, p);
  10782. if (*pp + len > end) len = end - *pp;
  10783. *pp += len;
  10784. #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
  10785. if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) {
  10786. if (code == 0x0049) {
  10787. return ONIGENC_CODE_TO_MBC(enc, 0x0131, fold);
  10788. }
  10789. else if (code == 0x0130) {
  10790. return ONIGENC_CODE_TO_MBC(enc, 0x0069, fold);
  10791. }
  10792. }
  10793. #endif
  10794. if (onig_st_lookup(FoldTable, (st_data_t )code, (void* )&to) != 0) {
  10795. if (to->n == 1) {
  10796. return ONIGENC_CODE_TO_MBC(enc, to->code[0], fold);
  10797. }
  10798. #if 0
  10799. /* NO NEEDS TO CHECK */
  10800. else if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {
  10801. #else
  10802. else {
  10803. #endif
  10804. rlen = 0;
  10805. for (i = 0; i < to->n; i++) {
  10806. len = ONIGENC_CODE_TO_MBC(enc, to->code[i], fold);
  10807. fold += len;
  10808. rlen += len;
  10809. }
  10810. return rlen;
  10811. }
  10812. }
  10813. for (i = 0; i < len; i++) {
  10814. *fold++ = *p++;
  10815. }
  10816. return len;
  10817. }
  10818. extern int
  10819. onigenc_unicode_apply_all_case_fold(OnigCaseFoldType flag,
  10820. OnigApplyAllCaseFoldFunc f, void* arg)
  10821. {
  10822. const CaseUnfold_11_Type* p11;
  10823. OnigCodePoint code;
  10824. int i, j, k, r;
  10825. /* if (CaseFoldInited == 0) init_case_fold_table(); */
  10826. for (i = 0; i < (int )(sizeof(CaseUnfold_11)/sizeof(CaseUnfold_11_Type));
  10827. i++) {
  10828. p11 = &CaseUnfold_11[i];
  10829. for (j = 0; j < p11->to.n; j++) {
  10830. code = p11->from;
  10831. r = (*f)(p11->to.code[j], &code, 1, arg);
  10832. if (r != 0) return r;
  10833. code = p11->to.code[j];
  10834. r = (*f)(p11->from, &code, 1, arg);
  10835. if (r != 0) return r;
  10836. for (k = 0; k < j; k++) {
  10837. r = (*f)(p11->to.code[j], (OnigCodePoint* )(&p11->to.code[k]), 1, arg);
  10838. if (r != 0) return r;
  10839. r = (*f)(p11->to.code[k], (OnigCodePoint* )(&p11->to.code[j]), 1, arg);
  10840. if (r != 0) return r;
  10841. }
  10842. }
  10843. }
  10844. #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
  10845. if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) {
  10846. code = 0x0131;
  10847. r = (*f)(0x0049, &code, 1, arg);
  10848. if (r != 0) return r;
  10849. code = 0x0049;
  10850. r = (*f)(0x0131, &code, 1, arg);
  10851. if (r != 0) return r;
  10852. code = 0x0130;
  10853. r = (*f)(0x0069, &code, 1, arg);
  10854. if (r != 0) return r;
  10855. code = 0x0069;
  10856. r = (*f)(0x0130, &code, 1, arg);
  10857. if (r != 0) return r;
  10858. }
  10859. else {
  10860. #endif
  10861. for (i = 0;
  10862. i < (int )(sizeof(CaseUnfold_11_Locale)/sizeof(CaseUnfold_11_Type));
  10863. i++) {
  10864. p11 = &CaseUnfold_11_Locale[i];
  10865. for (j = 0; j < p11->to.n; j++) {
  10866. code = p11->from;
  10867. r = (*f)(p11->to.code[j], &code, 1, arg);
  10868. if (r != 0) return r;
  10869. code = p11->to.code[j];
  10870. r = (*f)(p11->from, &code, 1, arg);
  10871. if (r != 0) return r;
  10872. for (k = 0; k < j; k++) {
  10873. r = (*f)(p11->to.code[j], (OnigCodePoint* )(&p11->to.code[k]),
  10874. 1, arg);
  10875. if (r != 0) return r;
  10876. r = (*f)(p11->to.code[k], (OnigCodePoint* )(&p11->to.code[j]),
  10877. 1, arg);
  10878. if (r != 0) return r;
  10879. }
  10880. }
  10881. }
  10882. #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
  10883. }
  10884. #endif
  10885. if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {
  10886. for (i = 0; i < (int )(sizeof(CaseUnfold_12)/sizeof(CaseUnfold_12_Type));
  10887. i++) {
  10888. for (j = 0; j < CaseUnfold_12[i].to.n; j++) {
  10889. r = (*f)(CaseUnfold_12[i].to.code[j],
  10890. (OnigCodePoint* )CaseUnfold_12[i].from, 2, arg);
  10891. if (r != 0) return r;
  10892. for (k = 0; k < CaseUnfold_12[i].to.n; k++) {
  10893. if (k == j) continue;
  10894. r = (*f)(CaseUnfold_12[i].to.code[j],
  10895. (OnigCodePoint* )(&CaseUnfold_12[i].to.code[k]), 1, arg);
  10896. if (r != 0) return r;
  10897. }
  10898. }
  10899. }
  10900. #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
  10901. if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) == 0) {
  10902. #endif
  10903. for (i = 0;
  10904. i < (int )(sizeof(CaseUnfold_12_Locale)/sizeof(CaseUnfold_12_Type));
  10905. i++) {
  10906. for (j = 0; j < CaseUnfold_12_Locale[i].to.n; j++) {
  10907. r = (*f)(CaseUnfold_12_Locale[i].to.code[j],
  10908. (OnigCodePoint* )CaseUnfold_12_Locale[i].from, 2, arg);
  10909. if (r != 0) return r;
  10910. for (k = 0; k < CaseUnfold_12_Locale[i].to.n; k++) {
  10911. if (k == j) continue;
  10912. r = (*f)(CaseUnfold_12_Locale[i].to.code[j],
  10913. (OnigCodePoint* )(&CaseUnfold_12_Locale[i].to.code[k]),
  10914. 1, arg);
  10915. if (r != 0) return r;
  10916. }
  10917. }
  10918. }
  10919. #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
  10920. }
  10921. #endif
  10922. for (i = 0; i < (int )(sizeof(CaseUnfold_13)/sizeof(CaseUnfold_13_Type));
  10923. i++) {
  10924. for (j = 0; j < CaseUnfold_13[i].to.n; j++) {
  10925. r = (*f)(CaseUnfold_13[i].to.code[j],
  10926. (OnigCodePoint* )CaseUnfold_13[i].from, 3, arg);
  10927. if (r != 0) return r;
  10928. for (k = 0; k < CaseUnfold_13[i].to.n; k++) {
  10929. if (k == j) continue;
  10930. r = (*f)(CaseUnfold_13[i].to.code[j],
  10931. (OnigCodePoint* )(&CaseUnfold_13[i].to.code[k]), 1, arg);
  10932. if (r != 0) return r;
  10933. }
  10934. }
  10935. }
  10936. }
  10937. return 0;
  10938. }
  10939. extern int
  10940. onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc,
  10941. OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end,
  10942. OnigCaseFoldCodeItem items[])
  10943. {
  10944. int n, i, j, k, len;
  10945. OnigCodePoint code, codes[3];
  10946. CodePointList3 *to, *z3;
  10947. CodePointList2 *z2;
  10948. if (CaseFoldInited == 0) init_case_fold_table();
  10949. n = 0;
  10950. code = ONIGENC_MBC_TO_CODE(enc, p, end);
  10951. len = enclen(enc, p);
  10952. #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
  10953. if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) {
  10954. if (code == 0x0049) {
  10955. items[0].byte_len = len;
  10956. items[0].code_len = 1;
  10957. items[0].code[0] = 0x0131;
  10958. return 1;
  10959. }
  10960. else if (code == 0x0130) {
  10961. items[0].byte_len = len;
  10962. items[0].code_len = 1;
  10963. items[0].code[0] = 0x0069;
  10964. return 1;
  10965. }
  10966. else if (code == 0x0131) {
  10967. items[0].byte_len = len;
  10968. items[0].code_len = 1;
  10969. items[0].code[0] = 0x0049;
  10970. return 1;
  10971. }
  10972. else if (code == 0x0069) {
  10973. items[0].byte_len = len;
  10974. items[0].code_len = 1;
  10975. items[0].code[0] = 0x0130;
  10976. return 1;
  10977. }
  10978. }
  10979. #endif
  10980. if (onig_st_lookup(FoldTable, (st_data_t )code, (void* )&to) != 0) {
  10981. if (to->n == 1) {
  10982. OnigCodePoint orig_code = code;
  10983. items[0].byte_len = len;
  10984. items[0].code_len = 1;
  10985. items[0].code[0] = to->code[0];
  10986. n++;
  10987. code = to->code[0];
  10988. if (onig_st_lookup(Unfold1Table, (st_data_t )code, (void* )&to) != 0) {
  10989. for (i = 0; i < to->n; i++) {
  10990. if (to->code[i] != orig_code) {
  10991. items[n].byte_len = len;
  10992. items[n].code_len = 1;
  10993. items[n].code[0] = to->code[i];
  10994. n++;
  10995. }
  10996. }
  10997. }
  10998. }
  10999. else if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {
  11000. OnigCodePoint cs[3][4];
  11001. int fn, ncs[3];
  11002. for (fn = 0; fn < to->n; fn++) {
  11003. cs[fn][0] = to->code[fn];
  11004. if (onig_st_lookup(Unfold1Table, (st_data_t )cs[fn][0],
  11005. (void* )&z3) != 0) {
  11006. for (i = 0; i < z3->n; i++) {
  11007. cs[fn][i+1] = z3->code[i];
  11008. }
  11009. ncs[fn] = z3->n + 1;
  11010. }
  11011. else
  11012. ncs[fn] = 1;
  11013. }
  11014. if (fn == 2) {
  11015. for (i = 0; i < ncs[0]; i++) {
  11016. for (j = 0; j < ncs[1]; j++) {
  11017. items[n].byte_len = len;
  11018. items[n].code_len = 2;
  11019. items[n].code[0] = cs[0][i];
  11020. items[n].code[1] = cs[1][j];
  11021. n++;
  11022. }
  11023. }
  11024. if (onig_st_lookup(Unfold2Table, (st_data_t )to->code,
  11025. (void* )&z2) != 0) {
  11026. for (i = 0; i < z2->n; i++) {
  11027. if (z2->code[i] == code) continue;
  11028. items[n].byte_len = len;
  11029. items[n].code_len = 1;
  11030. items[n].code[0] = z2->code[i];
  11031. n++;
  11032. }
  11033. }
  11034. }
  11035. else {
  11036. for (i = 0; i < ncs[0]; i++) {
  11037. for (j = 0; j < ncs[1]; j++) {
  11038. for (k = 0; k < ncs[2]; k++) {
  11039. items[n].byte_len = len;
  11040. items[n].code_len = 3;
  11041. items[n].code[0] = cs[0][i];
  11042. items[n].code[1] = cs[1][j];
  11043. items[n].code[2] = cs[2][k];
  11044. n++;
  11045. }
  11046. }
  11047. }
  11048. if (onig_st_lookup(Unfold3Table, (st_data_t )to->code,
  11049. (void* )&z2) != 0) {
  11050. for (i = 0; i < z2->n; i++) {
  11051. if (z2->code[i] == code) continue;
  11052. items[n].byte_len = len;
  11053. items[n].code_len = 1;
  11054. items[n].code[0] = z2->code[i];
  11055. n++;
  11056. }
  11057. }
  11058. }
  11059. /* multi char folded code is not head of another folded multi char */
  11060. flag = 0; /* DISABLE_CASE_FOLD_MULTI_CHAR(flag); */
  11061. }
  11062. }
  11063. else {
  11064. if (onig_st_lookup(Unfold1Table, (st_data_t )code, (void* )&to) != 0) {
  11065. for (i = 0; i < to->n; i++) {
  11066. items[n].byte_len = len;
  11067. items[n].code_len = 1;
  11068. items[n].code[0] = to->code[i];
  11069. n++;
  11070. }
  11071. }
  11072. }
  11073. if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {
  11074. p += len;
  11075. if (p < end) {
  11076. int clen;
  11077. codes[0] = code;
  11078. code = ONIGENC_MBC_TO_CODE(enc, p, end);
  11079. if (onig_st_lookup(FoldTable, (st_data_t )code, (void* )&to) != 0
  11080. && to->n == 1) {
  11081. codes[1] = to->code[0];
  11082. }
  11083. else
  11084. codes[1] = code;
  11085. clen = enclen(enc, p);
  11086. len += clen;
  11087. if (onig_st_lookup(Unfold2Table, (st_data_t )codes, (void* )&z2) != 0) {
  11088. for (i = 0; i < z2->n; i++) {
  11089. items[n].byte_len = len;
  11090. items[n].code_len = 1;
  11091. items[n].code[0] = z2->code[i];
  11092. n++;
  11093. }
  11094. }
  11095. p += clen;
  11096. if (p < end) {
  11097. code = ONIGENC_MBC_TO_CODE(enc, p, end);
  11098. if (onig_st_lookup(FoldTable, (st_data_t )code, (void* )&to) != 0
  11099. && to->n == 1) {
  11100. codes[2] = to->code[0];
  11101. }
  11102. else
  11103. codes[2] = code;
  11104. clen = enclen(enc, p);
  11105. len += clen;
  11106. if (onig_st_lookup(Unfold3Table, (st_data_t )codes,
  11107. (void* )&z2) != 0) {
  11108. for (i = 0; i < z2->n; i++) {
  11109. items[n].byte_len = len;
  11110. items[n].code_len = 1;
  11111. items[n].code[0] = z2->code[i];
  11112. n++;
  11113. }
  11114. }
  11115. }
  11116. }
  11117. }
  11118. return n;
  11119. }