Skip to content

Instantly share code, notes, and snippets.

@duairc
Created January 10, 2014 03:59
Show Gist options
  • Save duairc/8346783 to your computer and use it in GitHub Desktop.
Save duairc/8346783 to your computer and use it in GitHub Desktop.
Fast IDNA implementation in Haskell using attoparsec.
{-# LANGUAGE BangPatterns #-}
module Text.IDNA
( toASCII
, toUnicode
)
where
-- attoparsec ----------------------------------------------------------------
import Data.Attoparsec.Text
( anyChar
, endOfInput
, inClass
, notInClass
, parseOnly
)
-- base ----------------------------------------------------------------------
import Control.Applicative ((<|>), empty)
import Control.Monad (guard)
import Data.List (foldl')
import Data.Monoid (mappend, mconcat, mempty)
-- containers ----------------------------------------------------------------
import Data.IntMap (fromAscList)
import qualified Data.IntMap as I (lookup)
-- text ----------------------------------------------------------------------
import Data.Text (Text, breakOnEnd, isPrefixOf, pack, singleton)
import qualified Data.Text as T
( all
, any
, concatMap
, drop
, filter
, foldr
, head
, init
, last
, length
, null
, splitAt
)
import Data.Text.Lazy (toStrict)
import Data.Text.Lazy.Builder (fromText, toLazyText)
import qualified Data.Text.Lazy.Builder as T (singleton)
-- text-icu ------------------------------------------------------------------
import Data.Text.ICU.Normalize (NormalizationMode (NFKC), normalize)
------------------------------------------------------------------------------
toASCII :: Text -> Maybe Text
toASCII text = do
prepped <- if T.any (> '\127') text then namePrep text else return text
guard $ T.all (\c -> c > '\127' || inClass "-0-9A-Za-z" c) prepped
guard $ T.null prepped || T.head prepped /= '-' && T.last prepped /= '-'
asciid <- if T.all (<= '\127') prepped then return prepped else do
guard $ not $ isPrefixOf acePrefix prepped
return $ mappend acePrefix (encode prepped)
guard $ T.length asciid < 64
return asciid
------------------------------------------------------------------------------
toUnicode :: Text -> Text
toUnicode t = either id id $ do
t' <- if T.all (<= '\127') t then return t else
maybe (Left t) return (namePrep t)
t'' <- if isPrefixOf acePrefix t' then return t' else Left t'
t''' <- maybe (Left t'') return (decode (T.drop 4 t''))
return $ maybe t'' (\x -> if x == t'' then t''' else t'') (toASCII t''')
------------------------------------------------------------------------------
acePrefix :: Text
acePrefix = pack "xn--"
------------------------------------------------------------------------------
encode :: Text -> Text
encode text = toStrict . toLazyText $ do
let basic = T.filter (< '\128') text
let basicSize = T.length basic
let input = T.foldr ((.) . (:) . fromEnum) id text []
let inputSize = T.length text
let go builder !n !delta !bias !h = if h >= inputSize then builder else do
let m = minimum $ filter (>= n) input
let f (builder_, !delta_, !bias_, !h_) !c = do
let delta_' = if c < m then delta_ + 1 else delta_
if c /= m then (builder_, delta_', bias_, h_) else do
let inner !q !k builder__ = do
let t = let t' = k - bias_ in case () of
_ | t' <= 1 -> 1
| t' >= 26 -> 26
_ -> t'
if q < t then mappend builder__ (digit q) else do
let (q', r) = (q - t) `divMod` (36 - t)
let k' = k + 36
let builder__' = mappend builder__ (digit (t + r))
inner q' k' builder__'
let builder_' = inner delta_' 36 builder_
let delta_'' = adapt delta_' (h_ + 1) (h_ == basicSize)
(builder_', 0, delta_'', h_ + 1)
let delta_ = delta + (m - n) * (h + 1)
let (builder', delta', bias', h') =
foldl' f (builder, delta_, bias, h) input
go builder' (m + 1) (delta' + 1) bias' h'
let builder = mappend (fromText basic) $
if basicSize > 0 then T.singleton '-' else mempty
go builder 128 0 72 basicSize
where
digit i = T.singleton . toEnum . (i+) $ if i < 26 then 97 else 22
------------------------------------------------------------------------------
decode :: Text -> Maybe Text
decode input = do
let (b, after) = breakOnEnd (singleton '-') input
let before = if T.null b then b else T.init b
guard $ not $ T.null before && b == singleton '-'
guard $ T.all (<= '\128') before
let go !n !_i !bias output = (endOfInput >> return output) <|> do
let inner !k !w !i = do
digit <- anyChar >>= fromDigit
let t = let t' = k - bias in case () of
_ | t' <= 1 -> 1
| t' >= 26 -> 26
_ -> t'
let w' = w * (36 - t)
let i' = i + digit * w
if digit < t then return i' else inner (k + 36) w' i'
i <- inner 36 1 _i
let (i', n') = let (q, r) = i `divMod` (T.length output + 1) in
(r, n + q)
output' <- insert output n' i'
let bias' = adapt (i - _i) (T.length output + 1) (_i == 0)
go n' (i' + 1) bias' output'
either (const Nothing) Just $ parseOnly (go 128 0 72 before) after
where
insert t n i = do
guard $ i <= T.length t
guard $ n >= 0 && n <= fromEnum (maxBound :: Char)
let (beginning, end) = T.splitAt i t
return $ mconcat [beginning, singleton (toEnum n), end]
fromDigit c
| c >= 'a' && c <= 'z' = return $ fromEnum c - 97
| c >= 'A' && c <= 'Z' = return $ fromEnum c - 65
| c >= '0' && c <= '9' = return $ fromEnum c - 22
| otherwise = empty
------------------------------------------------------------------------------
adapt :: Int -> Int -> Bool -> Int
adapt delta points first = do
let delta_ = delta `div` if first then 700 else 2
go 0 (delta_ + (delta_ `div` points))
where
go k delta'
| delta' > ((36 - 1) * 26) `div` 2 =
go (k + 36) $ delta' `div` (36 - 1)
| otherwise = k + (((36 - 1 + 1) * delta') `div` (delta' + 38))
------------------------------------------------------------------------------
namePrep :: Text -> Maybe Text
namePrep t = do
let t' = normalise (downcase t)
guard $ checkBidirectional t'
guard $ T.all allowed t'
return t'
where
downcase = T.concatMap $ \c ->
maybe (singleton c) id $ I.lookup (fromEnum c) mapping
normalise = normalize NFKC
checkBidirectional t' = not (T.any randl t')
|| not (T.any l t') && randl (T.head t') && randl (T.last t')
allowed = notInClass $ concat
[ "\128-\160\545\564-\591\686\687\751-\767\832\833\848-\863\880-\883"
, "\886-\889\891-\893\895-\899\907\909\930\975\1015-\1023\1159\1231"
, "\1270\1271\1274-\1279\1296-\1328\1367\1368\1376\1416\1419-\1424"
, "\1442\1466\1477-\1487\1515-\1519\1525-\1547\1549-\1562\1564-\1566"
, "\1568\1595-\1599\1622-\1631\1757\1774\1775\1791\1806\1807"
, "\1837-\1839\1867-\1919\1970-\2304\2308\2362\2363\2382\2383"
, "\2389-\2391\2417-\2432\2436\2445\2446\2449\2450\2473\2481"
, "\2483-\2485\2490\2491\2493\2501\2502\2505\2506\2510-\2518"
, "\2520-\2523\2526\2532\2533\2555-\2561\2563\2564\2571-\2574\2577"
, "\2578\2601\2609\2612\2615\2618\2619\2621\2627-\2630\2633\2634"
, "\2638-\2648\2653\2655-\2661\2677-\2688\2692\2700\2702\2706\2729"
, "\2737\2740\2746\2747\2758\2762\2766\2767\2769-\2783\2785-\2789"
, "\2800-\2816\2820\2829\2830\2833\2834\2857\2865\2868\2869\2874\2875"
, "\2884-\2886\2889\2890\2894-\2901\2904-\2907\2910\2914-\2917"
, "\2929-\2945\2948\2955-\2957\2961\2966-\2968\2971\2973\2976-\2978"
, "\2981-\2983\2987-\2989\2998\3002-\3005\3011-\3013\3017\3022-\3030"
, "\3032-\3046\3059-\3072\3076\3085\3089\3113\3124\3130-\3133\3141"
, "\3145\3150-\3156\3159-\3167\3170-\3173\3184-\3201\3204\3213\3217"
, "\3241\3252\3258-\3261\3269\3273\3278-\3284\3287-\3293\3295"
, "\3298-\3301\3312-\3329\3332\3341\3345\3369\3386-\3389\3396\3397"
, "\3401\3406-\3414\3416-\3423\3426-\3429\3440-\3457\3460\3479-\3481"
, "\3506\3516\3518\3519\3527-\3529\3531-\3534\3541\3543\3552-\3569"
, "\3573-\3584\3643-\3646\3676-\3712\3715\3717\3718\3721\3723\3724"
, "\3726-\3731\3736\3744\3748\3750\3752\3753\3756\3770\3774\3775\3781"
, "\3783\3790\3791\3802\3803\3806-\3839\3912\3947-\3952\3980-\3983"
, "\3992\4029\4045\4046\4048-\4095\4130\4136\4139\4147-\4149"
, "\4154-\4159\4186-\4255\4294-\4303\4345\4346\4348-\4351\4442-\4446"
, "\4515-\4519\4602-\4607\4615\4679\4681\4686\4687\4695\4697\4702"
, "\4703\4743\4745\4750\4751\4783\4785\4790\4791\4799\4801\4806\4807"
, "\4815\4823\4847\4879\4881\4886\4887\4895\4935\4955-\4960"
, "\4989-\5023\5109-\5120\5751-\5760\5789-\5791\5873-\5887\5901"
, "\5909-\5919\5943-\5951\5972-\5983\5997\6001\6004-\6015\6109-\6111"
, "\6122-\6143\6158\6159\6170-\6175\6264-\6271\6314-\7679\7836-\7839"
, "\7930-\7935\7958\7959\7966\7967\8006\8007\8014\8015\8024\8026\8028"
, "\8030\8062\8063\8117\8133\8148\8149\8156\8176\8177\8181\8191-\8207"
, "\8232-\8239\8275-\8278\8280-\8298\8298\8299\8299\8300\8300\8301"
, "\8301\8302\8302\8303\8303\8306\8307\8335-\8351\8370-\8399"
, "\8427-\8447\8507\8508\8524-\8530\8580-\8591\9167-\9215\9255-\9279"
, "\9291-\9311\9471\9748\9749\9752\9854\9855\9866-\9984\9989\9994"
, "\9995\10024\10060\10062\10067-\10069\10071\10079\10080"
, "\10133-\10135\10160\10175-\10191\10220-\10223\11008-\11903\11930"
, "\12020-\12031\12246-\12288\12352\12439\12440\12544-\12548"
, "\12589-\12592\12687\12728-\12783\12829-\12831\12868-\12880"
, "\12924-\12926\13004-\13007\13055\13175-\13178\13278\13279\13311"
, "\19894-\19967\40870-\40959\42125-\42127\42183-\44031\55204-\63743"
, "\64046\64047\64107-\64255\64263-\64274\64280-\64284\64311\64317"
, "\64319\64322\64325\64434-\64466\64832-\64847\64912\64913"
, "\64968-\65007\65021-\65023\65040-\65055\65060-\65071\65095\65096"
, "\65107\65127\65132-\65135\65141\65277-\65280\65471-\65473\65480"
, "\65481\65488\65489\65496\65497\65501-\65503\65511\65519-\65529"
, "\65529\65530\65530\65531\65531\65532\65532-\66303\66335"
, "\66340-\66351\66379-\66559\66598\66599\66638-\118783"
, "\119030-\119039\119079-\119081\119155-\119162\119262-\119807"
, "\119893\119965\119968\119969\119971\119972\119975\119976\119981"
, "\119994\119996\120001\120004\120070\120075\120076\120085\120093"
, "\120122\120127\120133\120135-\120137\120145\120484-\120487"
, "\120778-\120781\120832-\131071\173783-\194559\195102-\1114111"
]
randl = inClass $ concat
[ "\1470\1472\1475\1488-\1514\1520-\1524\1563\1567\1569-\1594"
, "\1600-\1610\1645-\1647\1649-\1749\1757\1765\1766\1786-\1790"
, "\1792-\1805\1808\1810-\1836\1920-\1957\1969\8207\64285"
, "\64287-\64296\64298-\64310\64312-\64316\64318\64320\64321\64323"
, "\64324\64326-\64433\64467-\64829\64848-\64911\64914-\64967"
, "\65008-\65020\65136-\65140\65142-\65276"
]
l = inClass $ concat
[ "A-Za-z\170\181\186\192-\214\216-\246\248-\544\546-\563\592-\685"
, "\688-\696\699-\705\720\721\736-\740\750\890\902\904-\906\908"
, "\910-\929\931-\974\976-\1013\1024-\1154\1162-\1230\1232-\1269\1272"
, "\1273\1280-\1295\1329-\1366\1369-\1375\1377-\1415\1417\2307"
, "\2309-\2361\2365-\2368\2377-\2380\2384\2392-\2401\2404-\2416\2434"
, "\2435\2437-\2444\2447\2448\2451-\2472\2474-\2480\2482\2486-\2489"
, "\2494-\2496\2503\2504\2507\2508\2519\2524\2525\2527-\2529"
, "\2534-\2545\2548-\2554\2565-\2570\2575\2576\2579-\2600\2602-\2608"
, "\2610\2611\2613\2614\2616\2617\2622-\2624\2649-\2652\2654"
, "\2662-\2671\2674-\2676\2691\2693-\2699\2701\2703-\2705\2707-\2728"
, "\2730-\2736\2738\2739\2741-\2745\2749-\2752\2761\2763\2764\2768"
, "\2784\2790-\2799\2818\2819\2821-\2828\2831\2832\2835-\2856"
, "\2858-\2864\2866\2867\2870-\2873\2877\2878\2880\2887\2888\2891"
, "\2892\2903\2908\2909\2911-\2913\2918-\2928\2947\2949-\2954"
, "\2958-\2960\2962-\2965\2969\2970\2972\2974\2975\2979\2980"
, "\2984-\2986\2990-\2997\2999-\3001\3006\3007\3009\3010\3014-\3016"
, "\3018-\3020\3031\3047-\3058\3073-\3075\3077-\3084\3086-\3088"
, "\3090-\3112\3114-\3123\3125-\3129\3137-\3140\3168\3169\3174-\3183"
, "\3202\3203\3205-\3212\3214-\3216\3218-\3240\3242-\3251\3253-\3257"
, "\3262\3264-\3268\3271\3272\3274\3275\3285\3286\3294\3296\3297"
, "\3302-\3311\3330\3331\3333-\3340\3342-\3344\3346-\3368\3370-\3385"
, "\3390-\3392\3398-\3400\3402-\3404\3415\3424\3425\3430-\3439\3458"
, "\3459\3461-\3478\3482-\3505\3507-\3515\3517\3520-\3526\3535-\3537"
, "\3544-\3551\3570-\3572\3585-\3632\3634\3635\3648-\3654\3663-\3675"
, "\3713\3714\3716\3719\3720\3722\3725\3732-\3735\3737-\3743"
, "\3745-\3747\3749\3751\3754\3755\3757-\3760\3762\3763\3773"
, "\3776-\3780\3782\3792-\3801\3804\3805\3840-\3863\3866-\3892\3894"
, "\3896\3902-\3911\3913-\3946\3967\3973\3976-\3979\4030-\4037"
, "\4039-\4044\4047\4096-\4129\4131-\4135\4137\4138\4140\4145\4152"
, "\4160-\4183\4256-\4293\4304-\4344\4347\4352-\4441\4447-\4514"
, "\4520-\4601\4608-\4614\4616-\4678\4680\4682-\4685\4688-\4694\4696"
, "\4698-\4701\4704-\4742\4744\4746-\4749\4752-\4782\4784\4786-\4789"
, "\4792-\4798\4800\4802-\4805\4808-\4814\4816-\4822\4824-\4846"
, "\4848-\4878\4880\4882-\4885\4888-\4894\4896-\4934\4936-\4954"
, "\4961-\4988\5024-\5108\5121-\5750\5761-\5786\5792-\5872"
, "\5888-\5900\5902-\5905\5920-\5937\5941\5942\5952-\5969\5984-\5996"
, "\5998-\6000\6016-\6070\6078-\6085\6087\6088\6100-\6106\6108"
, "\6112-\6121\6160-\6169\6176-\6263\6272-\6312\7680-\7835\7840-\7929"
, "\7936-\7957\7960-\7965\7968-\8005\8008-\8013\8016-\8023\8025\8027"
, "\8029\8031-\8061\8064-\8116\8118-\8124\8126\8130-\8132\8134-\8140"
, "\8144-\8147\8150-\8155\8160-\8172\8178-\8180\8182-\8188\8206\8305"
, "\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488"
, "\8490-\8493\8495-\8497\8499-\8505\8509-\8511\8517-\8521\8544-\8579"
, "\9014-\9082\9109\9372-\9449\12293-\12295\12321-\12329\12337-\12341"
, "\12344-\12348\12353-\12438\12445-\12447\12449-\12538\12540-\12543"
, "\12549-\12588\12593-\12686\12688-\12727\12784-\12828\12832-\12867"
, "\12896-\12923\12927-\12976\12992-\13003\13008-\13054\13056-\13174"
, "\13179-\13277\13280-\13310\13312-\19893\19968-\40869\40960-\42124"
, "\44032-\55203\55296-\64045\64048-\64106\64256-\64262\64275-\64279"
, "\65313-\65338\65345-\65370\65382-\65470\65474-\65479\65482-\65487"
, "\65490-\65495\65498-\65500\66304-\66334\66336-\66339\66352-\66378"
, "\66560-\66597\66600-\66637\118784-\119029\119040-\119078"
, "\119082-\119142\119146-\119154\119171\119172\119180-\119209"
, "\119214-\119261\119808-\119892\119894-\119964\119966\119967\119970"
, "\119973\119974\119977-\119980\119982-\119993\119995\119997-\120000"
, "\120002\120003\120005-\120069\120071-\120074\120077-\120084"
, "\120086-\120092\120094-\120121\120123-\120126\120128-\120132"
, "\120134\120138-\120144\120146-\120483\120488-\120777"
, "\131072-\173782\194560-\195101\983040-\1048573\1048576-\1114109"
]
mapping = fromAscList . map (\(k, v) -> (fromEnum k, pack v)) $
[ ('\x0041', "\x0061")
, ('\x0042', "\x0062")
, ('\x0043', "\x0063")
, ('\x0044', "\x0064")
, ('\x0045', "\x0065")
, ('\x0046', "\x0066")
, ('\x0047', "\x0067")
, ('\x0048', "\x0068")
, ('\x0049', "\x0069")
, ('\x004A', "\x006A")
, ('\x004B', "\x006B")
, ('\x004C', "\x006C")
, ('\x004D', "\x006D")
, ('\x004E', "\x006E")
, ('\x004F', "\x006F")
, ('\x0050', "\x0070")
, ('\x0051', "\x0071")
, ('\x0052', "\x0072")
, ('\x0053', "\x0073")
, ('\x0054', "\x0074")
, ('\x0055', "\x0075")
, ('\x0056', "\x0076")
, ('\x0057', "\x0077")
, ('\x0058', "\x0078")
, ('\x0059', "\x0079")
, ('\x005A', "\x007A")
, ('\x00AD', "")
, ('\x00B5', "\x03BC")
, ('\x00C0', "\x00E0")
, ('\x00C1', "\x00E1")
, ('\x00C2', "\x00E2")
, ('\x00C3', "\x00E3")
, ('\x00C4', "\x00E4")
, ('\x00C5', "\x00E5")
, ('\x00C6', "\x00E6")
, ('\x00C7', "\x00E7")
, ('\x00C8', "\x00E8")
, ('\x00C9', "\x00E9")
, ('\x00CA', "\x00EA")
, ('\x00CB', "\x00EB")
, ('\x00CC', "\x00EC")
, ('\x00CD', "\x00ED")
, ('\x00CE', "\x00EE")
, ('\x00CF', "\x00EF")
, ('\x00D0', "\x00F0")
, ('\x00D1', "\x00F1")
, ('\x00D2', "\x00F2")
, ('\x00D3', "\x00F3")
, ('\x00D4', "\x00F4")
, ('\x00D5', "\x00F5")
, ('\x00D6', "\x00F6")
, ('\x00D8', "\x00F8")
, ('\x00D9', "\x00F9")
, ('\x00DA', "\x00FA")
, ('\x00DB', "\x00FB")
, ('\x00DC', "\x00FC")
, ('\x00DD', "\x00FD")
, ('\x00DE', "\x00FE")
, ('\x00DF', "\x0073\x0073")
, ('\x0100', "\x0101")
, ('\x0102', "\x0103")
, ('\x0104', "\x0105")
, ('\x0106', "\x0107")
, ('\x0108', "\x0109")
, ('\x010A', "\x010B")
, ('\x010C', "\x010D")
, ('\x010E', "\x010F")
, ('\x0110', "\x0111")
, ('\x0112', "\x0113")
, ('\x0114', "\x0115")
, ('\x0116', "\x0117")
, ('\x0118', "\x0119")
, ('\x011A', "\x011B")
, ('\x011C', "\x011D")
, ('\x011E', "\x011F")
, ('\x0120', "\x0121")
, ('\x0122', "\x0123")
, ('\x0124', "\x0125")
, ('\x0126', "\x0127")
, ('\x0128', "\x0129")
, ('\x012A', "\x012B")
, ('\x012C', "\x012D")
, ('\x012E', "\x012F")
, ('\x0130', "\x0069\x0307")
, ('\x0132', "\x0133")
, ('\x0134', "\x0135")
, ('\x0136', "\x0137")
, ('\x0139', "\x013A")
, ('\x013B', "\x013C")
, ('\x013D', "\x013E")
, ('\x013F', "\x0140")
, ('\x0141', "\x0142")
, ('\x0143', "\x0144")
, ('\x0145', "\x0146")
, ('\x0147', "\x0148")
, ('\x0149', "\x02BC\x006E")
, ('\x014A', "\x014B")
, ('\x014C', "\x014D")
, ('\x014E', "\x014F")
, ('\x0150', "\x0151")
, ('\x0152', "\x0153")
, ('\x0154', "\x0155")
, ('\x0156', "\x0157")
, ('\x0158', "\x0159")
, ('\x015A', "\x015B")
, ('\x015C', "\x015D")
, ('\x015E', "\x015F")
, ('\x0160', "\x0161")
, ('\x0162', "\x0163")
, ('\x0164', "\x0165")
, ('\x0166', "\x0167")
, ('\x0168', "\x0169")
, ('\x016A', "\x016B")
, ('\x016C', "\x016D")
, ('\x016E', "\x016F")
, ('\x0170', "\x0171")
, ('\x0172', "\x0173")
, ('\x0174', "\x0175")
, ('\x0176', "\x0177")
, ('\x0178', "\x00FF")
, ('\x0179', "\x017A")
, ('\x017B', "\x017C")
, ('\x017D', "\x017E")
, ('\x017F', "\x0073")
, ('\x0181', "\x0253")
, ('\x0182', "\x0183")
, ('\x0184', "\x0185")
, ('\x0186', "\x0254")
, ('\x0187', "\x0188")
, ('\x0189', "\x0256")
, ('\x018A', "\x0257")
, ('\x018B', "\x018C")
, ('\x018E', "\x01DD")
, ('\x018F', "\x0259")
, ('\x0190', "\x025B")
, ('\x0191', "\x0192")
, ('\x0193', "\x0260")
, ('\x0194', "\x0263")
, ('\x0196', "\x0269")
, ('\x0197', "\x0268")
, ('\x0198', "\x0199")
, ('\x019C', "\x026F")
, ('\x019D', "\x0272")
, ('\x019F', "\x0275")
, ('\x01A0', "\x01A1")
, ('\x01A2', "\x01A3")
, ('\x01A4', "\x01A5")
, ('\x01A6', "\x0280")
, ('\x01A7', "\x01A8")
, ('\x01A9', "\x0283")
, ('\x01AC', "\x01AD")
, ('\x01AE', "\x0288")
, ('\x01AF', "\x01B0")
, ('\x01B1', "\x028A")
, ('\x01B2', "\x028B")
, ('\x01B3', "\x01B4")
, ('\x01B5', "\x01B6")
, ('\x01B7', "\x0292")
, ('\x01B8', "\x01B9")
, ('\x01BC', "\x01BD")
, ('\x01C4', "\x01C6")
, ('\x01C5', "\x01C6")
, ('\x01C7', "\x01C9")
, ('\x01C8', "\x01C9")
, ('\x01CA', "\x01CC")
, ('\x01CB', "\x01CC")
, ('\x01CD', "\x01CE")
, ('\x01CF', "\x01D0")
, ('\x01D1', "\x01D2")
, ('\x01D3', "\x01D4")
, ('\x01D5', "\x01D6")
, ('\x01D7', "\x01D8")
, ('\x01D9', "\x01DA")
, ('\x01DB', "\x01DC")
, ('\x01DE', "\x01DF")
, ('\x01E0', "\x01E1")
, ('\x01E2', "\x01E3")
, ('\x01E4', "\x01E5")
, ('\x01E6', "\x01E7")
, ('\x01E8', "\x01E9")
, ('\x01EA', "\x01EB")
, ('\x01EC', "\x01ED")
, ('\x01EE', "\x01EF")
, ('\x01F0', "\x006A\x030C")
, ('\x01F1', "\x01F3")
, ('\x01F2', "\x01F3")
, ('\x01F4', "\x01F5")
, ('\x01F6', "\x0195")
, ('\x01F7', "\x01BF")
, ('\x01F8', "\x01F9")
, ('\x01FA', "\x01FB")
, ('\x01FC', "\x01FD")
, ('\x01FE', "\x01FF")
, ('\x0200', "\x0201")
, ('\x0202', "\x0203")
, ('\x0204', "\x0205")
, ('\x0206', "\x0207")
, ('\x0208', "\x0209")
, ('\x020A', "\x020B")
, ('\x020C', "\x020D")
, ('\x020E', "\x020F")
, ('\x0210', "\x0211")
, ('\x0212', "\x0213")
, ('\x0214', "\x0215")
, ('\x0216', "\x0217")
, ('\x0218', "\x0219")
, ('\x021A', "\x021B")
, ('\x021C', "\x021D")
, ('\x021E', "\x021F")
, ('\x0220', "\x019E")
, ('\x0222', "\x0223")
, ('\x0224', "\x0225")
, ('\x0226', "\x0227")
, ('\x0228', "\x0229")
, ('\x022A', "\x022B")
, ('\x022C', "\x022D")
, ('\x022E', "\x022F")
, ('\x0230', "\x0231")
, ('\x0232', "\x0233")
, ('\x0345', "\x03B9")
, ('\x034F', "")
, ('\x037A', "\x0020\x03B9")
, ('\x0386', "\x03AC")
, ('\x0388', "\x03AD")
, ('\x0389', "\x03AE")
, ('\x038A', "\x03AF")
, ('\x038C', "\x03CC")
, ('\x038E', "\x03CD")
, ('\x038F', "\x03CE")
, ('\x0390', "\x03B9\x0308\x0301")
, ('\x0391', "\x03B1")
, ('\x0392', "\x03B2")
, ('\x0393', "\x03B3")
, ('\x0394', "\x03B4")
, ('\x0395', "\x03B5")
, ('\x0396', "\x03B6")
, ('\x0397', "\x03B7")
, ('\x0398', "\x03B8")
, ('\x0399', "\x03B9")
, ('\x039A', "\x03BA")
, ('\x039B', "\x03BB")
, ('\x039C', "\x03BC")
, ('\x039D', "\x03BD")
, ('\x039E', "\x03BE")
, ('\x039F', "\x03BF")
, ('\x03A0', "\x03C0")
, ('\x03A1', "\x03C1")
, ('\x03A3', "\x03C3")
, ('\x03A4', "\x03C4")
, ('\x03A5', "\x03C5")
, ('\x03A6', "\x03C6")
, ('\x03A7', "\x03C7")
, ('\x03A8', "\x03C8")
, ('\x03A9', "\x03C9")
, ('\x03AA', "\x03CA")
, ('\x03AB', "\x03CB")
, ('\x03B0', "\x03C5\x0308\x0301")
, ('\x03C2', "\x03C3")
, ('\x03D0', "\x03B2")
, ('\x03D1', "\x03B8")
, ('\x03D2', "\x03C5")
, ('\x03D3', "\x03CD")
, ('\x03D4', "\x03CB")
, ('\x03D5', "\x03C6")
, ('\x03D6', "\x03C0")
, ('\x03D8', "\x03D9")
, ('\x03DA', "\x03DB")
, ('\x03DC', "\x03DD")
, ('\x03DE', "\x03DF")
, ('\x03E0', "\x03E1")
, ('\x03E2', "\x03E3")
, ('\x03E4', "\x03E5")
, ('\x03E6', "\x03E7")
, ('\x03E8', "\x03E9")
, ('\x03EA', "\x03EB")
, ('\x03EC', "\x03ED")
, ('\x03EE', "\x03EF")
, ('\x03F0', "\x03BA")
, ('\x03F1', "\x03C1")
, ('\x03F2', "\x03C3")
, ('\x03F4', "\x03B8")
, ('\x03F5', "\x03B5")
, ('\x0400', "\x0450")
, ('\x0401', "\x0451")
, ('\x0402', "\x0452")
, ('\x0403', "\x0453")
, ('\x0404', "\x0454")
, ('\x0405', "\x0455")
, ('\x0406', "\x0456")
, ('\x0407', "\x0457")
, ('\x0408', "\x0458")
, ('\x0409', "\x0459")
, ('\x040A', "\x045A")
, ('\x040B', "\x045B")
, ('\x040C', "\x045C")
, ('\x040D', "\x045D")
, ('\x040E', "\x045E")
, ('\x040F', "\x045F")
, ('\x0410', "\x0430")
, ('\x0411', "\x0431")
, ('\x0412', "\x0432")
, ('\x0413', "\x0433")
, ('\x0414', "\x0434")
, ('\x0415', "\x0435")
, ('\x0416', "\x0436")
, ('\x0417', "\x0437")
, ('\x0418', "\x0438")
, ('\x0419', "\x0439")
, ('\x041A', "\x043A")
, ('\x041B', "\x043B")
, ('\x041C', "\x043C")
, ('\x041D', "\x043D")
, ('\x041E', "\x043E")
, ('\x041F', "\x043F")
, ('\x0420', "\x0440")
, ('\x0421', "\x0441")
, ('\x0422', "\x0442")
, ('\x0423', "\x0443")
, ('\x0424', "\x0444")
, ('\x0425', "\x0445")
, ('\x0426', "\x0446")
, ('\x0427', "\x0447")
, ('\x0428', "\x0448")
, ('\x0429', "\x0449")
, ('\x042A', "\x044A")
, ('\x042B', "\x044B")
, ('\x042C', "\x044C")
, ('\x042D', "\x044D")
, ('\x042E', "\x044E")
, ('\x042F', "\x044F")
, ('\x0460', "\x0461")
, ('\x0462', "\x0463")
, ('\x0464', "\x0465")
, ('\x0466', "\x0467")
, ('\x0468', "\x0469")
, ('\x046A', "\x046B")
, ('\x046C', "\x046D")
, ('\x046E', "\x046F")
, ('\x0470', "\x0471")
, ('\x0472', "\x0473")
, ('\x0474', "\x0475")
, ('\x0476', "\x0477")
, ('\x0478', "\x0479")
, ('\x047A', "\x047B")
, ('\x047C', "\x047D")
, ('\x047E', "\x047F")
, ('\x0480', "\x0481")
, ('\x048A', "\x048B")
, ('\x048C', "\x048D")
, ('\x048E', "\x048F")
, ('\x0490', "\x0491")
, ('\x0492', "\x0493")
, ('\x0494', "\x0495")
, ('\x0496', "\x0497")
, ('\x0498', "\x0499")
, ('\x049A', "\x049B")
, ('\x049C', "\x049D")
, ('\x049E', "\x049F")
, ('\x04A0', "\x04A1")
, ('\x04A2', "\x04A3")
, ('\x04A4', "\x04A5")
, ('\x04A6', "\x04A7")
, ('\x04A8', "\x04A9")
, ('\x04AA', "\x04AB")
, ('\x04AC', "\x04AD")
, ('\x04AE', "\x04AF")
, ('\x04B0', "\x04B1")
, ('\x04B2', "\x04B3")
, ('\x04B4', "\x04B5")
, ('\x04B6', "\x04B7")
, ('\x04B8', "\x04B9")
, ('\x04BA', "\x04BB")
, ('\x04BC', "\x04BD")
, ('\x04BE', "\x04BF")
, ('\x04C1', "\x04C2")
, ('\x04C3', "\x04C4")
, ('\x04C5', "\x04C6")
, ('\x04C7', "\x04C8")
, ('\x04C9', "\x04CA")
, ('\x04CB', "\x04CC")
, ('\x04CD', "\x04CE")
, ('\x04D0', "\x04D1")
, ('\x04D2', "\x04D3")
, ('\x04D4', "\x04D5")
, ('\x04D6', "\x04D7")
, ('\x04D8', "\x04D9")
, ('\x04DA', "\x04DB")
, ('\x04DC', "\x04DD")
, ('\x04DE', "\x04DF")
, ('\x04E0', "\x04E1")
, ('\x04E2', "\x04E3")
, ('\x04E4', "\x04E5")
, ('\x04E6', "\x04E7")
, ('\x04E8', "\x04E9")
, ('\x04EA', "\x04EB")
, ('\x04EC', "\x04ED")
, ('\x04EE', "\x04EF")
, ('\x04F0', "\x04F1")
, ('\x04F2', "\x04F3")
, ('\x04F4', "\x04F5")
, ('\x04F8', "\x04F9")
, ('\x0500', "\x0501")
, ('\x0502', "\x0503")
, ('\x0504', "\x0505")
, ('\x0506', "\x0507")
, ('\x0508', "\x0509")
, ('\x050A', "\x050B")
, ('\x050C', "\x050D")
, ('\x050E', "\x050F")
, ('\x0531', "\x0561")
, ('\x0532', "\x0562")
, ('\x0533', "\x0563")
, ('\x0534', "\x0564")
, ('\x0535', "\x0565")
, ('\x0536', "\x0566")
, ('\x0537', "\x0567")
, ('\x0538', "\x0568")
, ('\x0539', "\x0569")
, ('\x053A', "\x056A")
, ('\x053B', "\x056B")
, ('\x053C', "\x056C")
, ('\x053D', "\x056D")
, ('\x053E', "\x056E")
, ('\x053F', "\x056F")
, ('\x0540', "\x0570")
, ('\x0541', "\x0571")
, ('\x0542', "\x0572")
, ('\x0543', "\x0573")
, ('\x0544', "\x0574")
, ('\x0545', "\x0575")
, ('\x0546', "\x0576")
, ('\x0547', "\x0577")
, ('\x0548', "\x0578")
, ('\x0549', "\x0579")
, ('\x054A', "\x057A")
, ('\x054B', "\x057B")
, ('\x054C', "\x057C")
, ('\x054D', "\x057D")
, ('\x054E', "\x057E")
, ('\x054F', "\x057F")
, ('\x0550', "\x0580")
, ('\x0551', "\x0581")
, ('\x0552', "\x0582")
, ('\x0553', "\x0583")
, ('\x0554', "\x0584")
, ('\x0555', "\x0585")
, ('\x0556', "\x0586")
, ('\x0587', "\x0565\x0582")
, ('\x1806', "")
, ('\x180B', "")
, ('\x180C', "")
, ('\x180D', "")
, ('\x1E00', "\x1E01")
, ('\x1E02', "\x1E03")
, ('\x1E04', "\x1E05")
, ('\x1E06', "\x1E07")
, ('\x1E08', "\x1E09")
, ('\x1E0A', "\x1E0B")
, ('\x1E0C', "\x1E0D")
, ('\x1E0E', "\x1E0F")
, ('\x1E10', "\x1E11")
, ('\x1E12', "\x1E13")
, ('\x1E14', "\x1E15")
, ('\x1E16', "\x1E17")
, ('\x1E18', "\x1E19")
, ('\x1E1A', "\x1E1B")
, ('\x1E1C', "\x1E1D")
, ('\x1E1E', "\x1E1F")
, ('\x1E20', "\x1E21")
, ('\x1E22', "\x1E23")
, ('\x1E24', "\x1E25")
, ('\x1E26', "\x1E27")
, ('\x1E28', "\x1E29")
, ('\x1E2A', "\x1E2B")
, ('\x1E2C', "\x1E2D")
, ('\x1E2E', "\x1E2F")
, ('\x1E30', "\x1E31")
, ('\x1E32', "\x1E33")
, ('\x1E34', "\x1E35")
, ('\x1E36', "\x1E37")
, ('\x1E38', "\x1E39")
, ('\x1E3A', "\x1E3B")
, ('\x1E3C', "\x1E3D")
, ('\x1E3E', "\x1E3F")
, ('\x1E40', "\x1E41")
, ('\x1E42', "\x1E43")
, ('\x1E44', "\x1E45")
, ('\x1E46', "\x1E47")
, ('\x1E48', "\x1E49")
, ('\x1E4A', "\x1E4B")
, ('\x1E4C', "\x1E4D")
, ('\x1E4E', "\x1E4F")
, ('\x1E50', "\x1E51")
, ('\x1E52', "\x1E53")
, ('\x1E54', "\x1E55")
, ('\x1E56', "\x1E57")
, ('\x1E58', "\x1E59")
, ('\x1E5A', "\x1E5B")
, ('\x1E5C', "\x1E5D")
, ('\x1E5E', "\x1E5F")
, ('\x1E60', "\x1E61")
, ('\x1E62', "\x1E63")
, ('\x1E64', "\x1E65")
, ('\x1E66', "\x1E67")
, ('\x1E68', "\x1E69")
, ('\x1E6A', "\x1E6B")
, ('\x1E6C', "\x1E6D")
, ('\x1E6E', "\x1E6F")
, ('\x1E70', "\x1E71")
, ('\x1E72', "\x1E73")
, ('\x1E74', "\x1E75")
, ('\x1E76', "\x1E77")
, ('\x1E78', "\x1E79")
, ('\x1E7A', "\x1E7B")
, ('\x1E7C', "\x1E7D")
, ('\x1E7E', "\x1E7F")
, ('\x1E80', "\x1E81")
, ('\x1E82', "\x1E83")
, ('\x1E84', "\x1E85")
, ('\x1E86', "\x1E87")
, ('\x1E88', "\x1E89")
, ('\x1E8A', "\x1E8B")
, ('\x1E8C', "\x1E8D")
, ('\x1E8E', "\x1E8F")
, ('\x1E90', "\x1E91")
, ('\x1E92', "\x1E93")
, ('\x1E94', "\x1E95")
, ('\x1E96', "\x0068\x0331")
, ('\x1E97', "\x0074\x0308")
, ('\x1E98', "\x0077\x030A")
, ('\x1E99', "\x0079\x030A")
, ('\x1E9A', "\x0061\x02BE")
, ('\x1E9B', "\x1E61")
, ('\x1EA0', "\x1EA1")
, ('\x1EA2', "\x1EA3")
, ('\x1EA4', "\x1EA5")
, ('\x1EA6', "\x1EA7")
, ('\x1EA8', "\x1EA9")
, ('\x1EAA', "\x1EAB")
, ('\x1EAC', "\x1EAD")
, ('\x1EAE', "\x1EAF")
, ('\x1EB0', "\x1EB1")
, ('\x1EB2', "\x1EB3")
, ('\x1EB4', "\x1EB5")
, ('\x1EB6', "\x1EB7")
, ('\x1EB8', "\x1EB9")
, ('\x1EBA', "\x1EBB")
, ('\x1EBC', "\x1EBD")
, ('\x1EBE', "\x1EBF")
, ('\x1EC0', "\x1EC1")
, ('\x1EC2', "\x1EC3")
, ('\x1EC4', "\x1EC5")
, ('\x1EC6', "\x1EC7")
, ('\x1EC8', "\x1EC9")
, ('\x1ECA', "\x1ECB")
, ('\x1ECC', "\x1ECD")
, ('\x1ECE', "\x1ECF")
, ('\x1ED0', "\x1ED1")
, ('\x1ED2', "\x1ED3")
, ('\x1ED4', "\x1ED5")
, ('\x1ED6', "\x1ED7")
, ('\x1ED8', "\x1ED9")
, ('\x1EDA', "\x1EDB")
, ('\x1EDC', "\x1EDD")
, ('\x1EDE', "\x1EDF")
, ('\x1EE0', "\x1EE1")
, ('\x1EE2', "\x1EE3")
, ('\x1EE4', "\x1EE5")
, ('\x1EE6', "\x1EE7")
, ('\x1EE8', "\x1EE9")
, ('\x1EEA', "\x1EEB")
, ('\x1EEC', "\x1EED")
, ('\x1EEE', "\x1EEF")
, ('\x1EF0', "\x1EF1")
, ('\x1EF2', "\x1EF3")
, ('\x1EF4', "\x1EF5")
, ('\x1EF6', "\x1EF7")
, ('\x1EF8', "\x1EF9")
, ('\x1F08', "\x1F00")
, ('\x1F09', "\x1F01")
, ('\x1F0A', "\x1F02")
, ('\x1F0B', "\x1F03")
, ('\x1F0C', "\x1F04")
, ('\x1F0D', "\x1F05")
, ('\x1F0E', "\x1F06")
, ('\x1F0F', "\x1F07")
, ('\x1F18', "\x1F10")
, ('\x1F19', "\x1F11")
, ('\x1F1A', "\x1F12")
, ('\x1F1B', "\x1F13")
, ('\x1F1C', "\x1F14")
, ('\x1F1D', "\x1F15")
, ('\x1F28', "\x1F20")
, ('\x1F29', "\x1F21")
, ('\x1F2A', "\x1F22")
, ('\x1F2B', "\x1F23")
, ('\x1F2C', "\x1F24")
, ('\x1F2D', "\x1F25")
, ('\x1F2E', "\x1F26")
, ('\x1F2F', "\x1F27")
, ('\x1F38', "\x1F30")
, ('\x1F39', "\x1F31")
, ('\x1F3A', "\x1F32")
, ('\x1F3B', "\x1F33")
, ('\x1F3C', "\x1F34")
, ('\x1F3D', "\x1F35")
, ('\x1F3E', "\x1F36")
, ('\x1F3F', "\x1F37")
, ('\x1F48', "\x1F40")
, ('\x1F49', "\x1F41")
, ('\x1F4A', "\x1F42")
, ('\x1F4B', "\x1F43")
, ('\x1F4C', "\x1F44")
, ('\x1F4D', "\x1F45")
, ('\x1F50', "\x03C5\x0313")
, ('\x1F52', "\x03C5\x0313\x0300")
, ('\x1F54', "\x03C5\x0313\x0301")
, ('\x1F56', "\x03C5\x0313\x0342")
, ('\x1F59', "\x1F51")
, ('\x1F5B', "\x1F53")
, ('\x1F5D', "\x1F55")
, ('\x1F5F', "\x1F57")
, ('\x1F68', "\x1F60")
, ('\x1F69', "\x1F61")
, ('\x1F6A', "\x1F62")
, ('\x1F6B', "\x1F63")
, ('\x1F6C', "\x1F64")
, ('\x1F6D', "\x1F65")
, ('\x1F6E', "\x1F66")
, ('\x1F6F', "\x1F67")
, ('\x1F80', "\x1F00\x03B9")
, ('\x1F81', "\x1F01\x03B9")
, ('\x1F82', "\x1F02\x03B9")
, ('\x1F83', "\x1F03\x03B9")
, ('\x1F84', "\x1F04\x03B9")
, ('\x1F85', "\x1F05\x03B9")
, ('\x1F86', "\x1F06\x03B9")
, ('\x1F87', "\x1F07\x03B9")
, ('\x1F88', "\x1F00\x03B9")
, ('\x1F89', "\x1F01\x03B9")
, ('\x1F8A', "\x1F02\x03B9")
, ('\x1F8B', "\x1F03\x03B9")
, ('\x1F8C', "\x1F04\x03B9")
, ('\x1F8D', "\x1F05\x03B9")
, ('\x1F8E', "\x1F06\x03B9")
, ('\x1F8F', "\x1F07\x03B9")
, ('\x1F90', "\x1F20\x03B9")
, ('\x1F91', "\x1F21\x03B9")
, ('\x1F92', "\x1F22\x03B9")
, ('\x1F93', "\x1F23\x03B9")
, ('\x1F94', "\x1F24\x03B9")
, ('\x1F95', "\x1F25\x03B9")
, ('\x1F96', "\x1F26\x03B9")
, ('\x1F97', "\x1F27\x03B9")
, ('\x1F98', "\x1F20\x03B9")
, ('\x1F99', "\x1F21\x03B9")
, ('\x1F9A', "\x1F22\x03B9")
, ('\x1F9B', "\x1F23\x03B9")
, ('\x1F9C', "\x1F24\x03B9")
, ('\x1F9D', "\x1F25\x03B9")
, ('\x1F9E', "\x1F26\x03B9")
, ('\x1F9F', "\x1F27\x03B9")
, ('\x1FA0', "\x1F60\x03B9")
, ('\x1FA1', "\x1F61\x03B9")
, ('\x1FA2', "\x1F62\x03B9")
, ('\x1FA3', "\x1F63\x03B9")
, ('\x1FA4', "\x1F64\x03B9")
, ('\x1FA5', "\x1F65\x03B9")
, ('\x1FA6', "\x1F66\x03B9")
, ('\x1FA7', "\x1F67\x03B9")
, ('\x1FA8', "\x1F60\x03B9")
, ('\x1FA9', "\x1F61\x03B9")
, ('\x1FAA', "\x1F62\x03B9")
, ('\x1FAB', "\x1F63\x03B9")
, ('\x1FAC', "\x1F64\x03B9")
, ('\x1FAD', "\x1F65\x03B9")
, ('\x1FAE', "\x1F66\x03B9")
, ('\x1FAF', "\x1F67\x03B9")
, ('\x1FB2', "\x1F70\x03B9")
, ('\x1FB3', "\x03B1\x03B9")
, ('\x1FB4', "\x03AC\x03B9")
, ('\x1FB6', "\x03B1\x0342")
, ('\x1FB7', "\x03B1\x0342\x03B9")
, ('\x1FB8', "\x1FB0")
, ('\x1FB9', "\x1FB1")
, ('\x1FBA', "\x1F70")
, ('\x1FBB', "\x1F71")
, ('\x1FBC', "\x03B1\x03B9")
, ('\x1FBE', "\x03B9")
, ('\x1FC2', "\x1F74\x03B9")
, ('\x1FC3', "\x03B7\x03B9")
, ('\x1FC4', "\x03AE\x03B9")
, ('\x1FC6', "\x03B7\x0342")
, ('\x1FC7', "\x03B7\x0342\x03B9")
, ('\x1FC8', "\x1F72")
, ('\x1FC9', "\x1F73")
, ('\x1FCA', "\x1F74")
, ('\x1FCB', "\x1F75")
, ('\x1FCC', "\x03B7\x03B9")
, ('\x1FD2', "\x03B9\x0308\x0300")
, ('\x1FD3', "\x03B9\x0308\x0301")
, ('\x1FD6', "\x03B9\x0342")
, ('\x1FD7', "\x03B9\x0308\x0342")
, ('\x1FD8', "\x1FD0")
, ('\x1FD9', "\x1FD1")
, ('\x1FDA', "\x1F76")
, ('\x1FDB', "\x1F77")
, ('\x1FE2', "\x03C5\x0308\x0300")
, ('\x1FE3', "\x03C5\x0308\x0301")
, ('\x1FE4', "\x03C1\x0313")
, ('\x1FE6', "\x03C5\x0342")
, ('\x1FE7', "\x03C5\x0308\x0342")
, ('\x1FE8', "\x1FE0")
, ('\x1FE9', "\x1FE1")
, ('\x1FEA', "\x1F7A")
, ('\x1FEB', "\x1F7B")
, ('\x1FEC', "\x1FE5")
, ('\x1FF2', "\x1F7C\x03B9")
, ('\x1FF3', "\x03C9\x03B9")
, ('\x1FF4', "\x03CE\x03B9")
, ('\x1FF6', "\x03C9\x0342")
, ('\x1FF7', "\x03C9\x0342\x03B9")
, ('\x1FF8', "\x1F78")
, ('\x1FF9', "\x1F79")
, ('\x1FFA', "\x1F7C")
, ('\x1FFB', "\x1F7D")
, ('\x1FFC', "\x03C9\x03B9")
, ('\x200B', "")
, ('\x200C', "")
, ('\x200D', "")
, ('\x2060', "")
, ('\x20A8', "\x0072\x0073")
, ('\x2102', "\x0063")
, ('\x2103', "\x00B0\x0063")
, ('\x2107', "\x025B")
, ('\x2109', "\x00B0\x0066")
, ('\x210B', "\x0068")
, ('\x210C', "\x0068")
, ('\x210D', "\x0068")
, ('\x2110', "\x0069")
, ('\x2111', "\x0069")
, ('\x2112', "\x006C")
, ('\x2115', "\x006E")
, ('\x2116', "\x006E\x006F")
, ('\x2119', "\x0070")
, ('\x211A', "\x0071")
, ('\x211B', "\x0072")
, ('\x211C', "\x0072")
, ('\x211D', "\x0072")
, ('\x2120', "\x0073\x006D")
, ('\x2121', "\x0074\x0065\x006C")
, ('\x2122', "\x0074\x006D")
, ('\x2124', "\x007A")
, ('\x2126', "\x03C9")
, ('\x2128', "\x007A")
, ('\x212A', "\x006B")
, ('\x212B', "\x00E5")
, ('\x212C', "\x0062")
, ('\x212D', "\x0063")
, ('\x2130', "\x0065")
, ('\x2131', "\x0066")
, ('\x2133', "\x006D")
, ('\x213E', "\x03B3")
, ('\x213F', "\x03C0")
, ('\x2145', "\x0064")
, ('\x2160', "\x2170")
, ('\x2161', "\x2171")
, ('\x2162', "\x2172")
, ('\x2163', "\x2173")
, ('\x2164', "\x2174")
, ('\x2165', "\x2175")
, ('\x2166', "\x2176")
, ('\x2167', "\x2177")
, ('\x2168', "\x2178")
, ('\x2169', "\x2179")
, ('\x216A', "\x217A")
, ('\x216B', "\x217B")
, ('\x216C', "\x217C")
, ('\x216D', "\x217D")
, ('\x216E', "\x217E")
, ('\x216F', "\x217F")
, ('\x24B6', "\x24D0")
, ('\x24B7', "\x24D1")
, ('\x24B8', "\x24D2")
, ('\x24B9', "\x24D3")
, ('\x24BA', "\x24D4")
, ('\x24BB', "\x24D5")
, ('\x24BC', "\x24D6")
, ('\x24BD', "\x24D7")
, ('\x24BE', "\x24D8")
, ('\x24BF', "\x24D9")
, ('\x24C0', "\x24DA")
, ('\x24C1', "\x24DB")
, ('\x24C2', "\x24DC")
, ('\x24C3', "\x24DD")
, ('\x24C4', "\x24DE")
, ('\x24C5', "\x24DF")
, ('\x24C6', "\x24E0")
, ('\x24C7', "\x24E1")
, ('\x24C8', "\x24E2")
, ('\x24C9', "\x24E3")
, ('\x24CA', "\x24E4")
, ('\x24CB', "\x24E5")
, ('\x24CC', "\x24E6")
, ('\x24CD', "\x24E7")
, ('\x24CE', "\x24E8")
, ('\x24CF', "\x24E9")
, ('\x3371', "\x0068\x0070\x0061")
, ('\x3373', "\x0061\x0075")
, ('\x3375', "\x006F\x0076")
, ('\x3380', "\x0070\x0061")
, ('\x3381', "\x006E\x0061")
, ('\x3382', "\x03BC\x0061")
, ('\x3383', "\x006D\x0061")
, ('\x3384', "\x006B\x0061")
, ('\x3385', "\x006B\x0062")
, ('\x3386', "\x006D\x0062")
, ('\x3387', "\x0067\x0062")
, ('\x338A', "\x0070\x0066")
, ('\x338B', "\x006E\x0066")
, ('\x338C', "\x03BC\x0066")
, ('\x3390', "\x0068\x007A")
, ('\x3391', "\x006B\x0068\x007A")
, ('\x3392', "\x006D\x0068\x007A")
, ('\x3393', "\x0067\x0068\x007A")
, ('\x3394', "\x0074\x0068\x007A")
, ('\x33A9', "\x0070\x0061")
, ('\x33AA', "\x006B\x0070\x0061")
, ('\x33AB', "\x006D\x0070\x0061")
, ('\x33AC', "\x0067\x0070\x0061")
, ('\x33B4', "\x0070\x0076")
, ('\x33B5', "\x006E\x0076")
, ('\x33B6', "\x03BC\x0076")
, ('\x33B7', "\x006D\x0076")
, ('\x33B8', "\x006B\x0076")
, ('\x33B9', "\x006D\x0076")
, ('\x33BA', "\x0070\x0077")
, ('\x33BB', "\x006E\x0077")
, ('\x33BC', "\x03BC\x0077")
, ('\x33BD', "\x006D\x0077")
, ('\x33BE', "\x006B\x0077")
, ('\x33BF', "\x006D\x0077")
, ('\x33C0', "\x006B\x03C9")
, ('\x33C1', "\x006D\x03C9")
, ('\x33C3', "\x0062\x0071")
, ('\x33C6', "\x0063\x2215\x006B\x0067")
, ('\x33C7', "\x0063\x006F\x002E")
, ('\x33C8', "\x0064\x0062")
, ('\x33C9', "\x0067\x0079")
, ('\x33CB', "\x0068\x0070")
, ('\x33CD', "\x006B\x006B")
, ('\x33CE', "\x006B\x006D")
, ('\x33D7', "\x0070\x0068")
, ('\x33D9', "\x0070\x0070\x006D")
, ('\x33DA', "\x0070\x0072")
, ('\x33DC', "\x0073\x0076")
, ('\x33DD', "\x0077\x0062")
, ('\xFB00', "\x0066\x0066")
, ('\xFB01', "\x0066\x0069")
, ('\xFB02', "\x0066\x006C")
, ('\xFB03', "\x0066\x0066\x0069")
, ('\xFB04', "\x0066\x0066\x006C")
, ('\xFB05', "\x0073\x0074")
, ('\xFB06', "\x0073\x0074")
, ('\xFB13', "\x0574\x0576")
, ('\xFB14', "\x0574\x0565")
, ('\xFB15', "\x0574\x056B")
, ('\xFB16', "\x057E\x0576")
, ('\xFB17', "\x0574\x056D")
, ('\xFE00', "")
, ('\xFE01', "")
, ('\xFE02', "")
, ('\xFE03', "")
, ('\xFE04', "")
, ('\xFE05', "")
, ('\xFE06', "")
, ('\xFE07', "")
, ('\xFE08', "")
, ('\xFE09', "")
, ('\xFE0A', "")
, ('\xFE0B', "")
, ('\xFE0C', "")
, ('\xFE0D', "")
, ('\xFE0E', "")
, ('\xFE0F', "")
, ('\xFEFF', "")
, ('\xFF21', "\xFF41")
, ('\xFF22', "\xFF42")
, ('\xFF23', "\xFF43")
, ('\xFF24', "\xFF44")
, ('\xFF25', "\xFF45")
, ('\xFF26', "\xFF46")
, ('\xFF27', "\xFF47")
, ('\xFF28', "\xFF48")
, ('\xFF29', "\xFF49")
, ('\xFF2A', "\xFF4A")
, ('\xFF2B', "\xFF4B")
, ('\xFF2C', "\xFF4C")
, ('\xFF2D', "\xFF4D")
, ('\xFF2E', "\xFF4E")
, ('\xFF2F', "\xFF4F")
, ('\xFF30', "\xFF50")
, ('\xFF31', "\xFF51")
, ('\xFF32', "\xFF52")
, ('\xFF33', "\xFF53")
, ('\xFF34', "\xFF54")
, ('\xFF35', "\xFF55")
, ('\xFF36', "\xFF56")
, ('\xFF37', "\xFF57")
, ('\xFF38', "\xFF58")
, ('\xFF39', "\xFF59")
, ('\xFF3A', "\xFF5A")
, ('\x10400', "\x10428")
, ('\x10401', "\x10429")
, ('\x10402', "\x1042A")
, ('\x10403', "\x1042B")
, ('\x10404', "\x1042C")
, ('\x10405', "\x1042D")
, ('\x10406', "\x1042E")
, ('\x10407', "\x1042F")
, ('\x10408', "\x10430")
, ('\x10409', "\x10431")
, ('\x1040A', "\x10432")
, ('\x1040B', "\x10433")
, ('\x1040C', "\x10434")
, ('\x1040D', "\x10435")
, ('\x1040E', "\x10436")
, ('\x1040F', "\x10437")
, ('\x10410', "\x10438")
, ('\x10411', "\x10439")
, ('\x10412', "\x1043A")
, ('\x10413', "\x1043B")
, ('\x10414', "\x1043C")
, ('\x10415', "\x1043D")
, ('\x10416', "\x1043E")
, ('\x10417', "\x1043F")
, ('\x10418', "\x10440")
, ('\x10419', "\x10441")
, ('\x1041A', "\x10442")
, ('\x1041B', "\x10443")
, ('\x1041C', "\x10444")
, ('\x1041D', "\x10445")
, ('\x1041E', "\x10446")
, ('\x1041F', "\x10447")
, ('\x10420', "\x10448")
, ('\x10421', "\x10449")
, ('\x10422', "\x1044A")
, ('\x10423', "\x1044B")
, ('\x10424', "\x1044C")
, ('\x10425', "\x1044D")
, ('\x1D400', "\x0061")
, ('\x1D401', "\x0062")
, ('\x1D402', "\x0063")
, ('\x1D403', "\x0064")
, ('\x1D404', "\x0065")
, ('\x1D405', "\x0066")
, ('\x1D406', "\x0067")
, ('\x1D407', "\x0068")
, ('\x1D408', "\x0069")
, ('\x1D409', "\x006A")
, ('\x1D40A', "\x006B")
, ('\x1D40B', "\x006C")
, ('\x1D40C', "\x006D")
, ('\x1D40D', "\x006E")
, ('\x1D40E', "\x006F")
, ('\x1D40F', "\x0070")
, ('\x1D410', "\x0071")
, ('\x1D411', "\x0072")
, ('\x1D412', "\x0073")
, ('\x1D413', "\x0074")
, ('\x1D414', "\x0075")
, ('\x1D415', "\x0076")
, ('\x1D416', "\x0077")
, ('\x1D417', "\x0078")
, ('\x1D418', "\x0079")
, ('\x1D419', "\x007A")
, ('\x1D434', "\x0061")
, ('\x1D435', "\x0062")
, ('\x1D436', "\x0063")
, ('\x1D437', "\x0064")
, ('\x1D438', "\x0065")
, ('\x1D439', "\x0066")
, ('\x1D43A', "\x0067")
, ('\x1D43B', "\x0068")
, ('\x1D43C', "\x0069")
, ('\x1D43D', "\x006A")
, ('\x1D43E', "\x006B")
, ('\x1D43F', "\x006C")
, ('\x1D440', "\x006D")
, ('\x1D441', "\x006E")
, ('\x1D442', "\x006F")
, ('\x1D443', "\x0070")
, ('\x1D444', "\x0071")
, ('\x1D445', "\x0072")
, ('\x1D446', "\x0073")
, ('\x1D447', "\x0074")
, ('\x1D448', "\x0075")
, ('\x1D449', "\x0076")
, ('\x1D44A', "\x0077")
, ('\x1D44B', "\x0078")
, ('\x1D44C', "\x0079")
, ('\x1D44D', "\x007A")
, ('\x1D468', "\x0061")
, ('\x1D469', "\x0062")
, ('\x1D46A', "\x0063")
, ('\x1D46B', "\x0064")
, ('\x1D46C', "\x0065")
, ('\x1D46D', "\x0066")
, ('\x1D46E', "\x0067")
, ('\x1D46F', "\x0068")
, ('\x1D470', "\x0069")
, ('\x1D471', "\x006A")
, ('\x1D472', "\x006B")
, ('\x1D473', "\x006C")
, ('\x1D474', "\x006D")
, ('\x1D475', "\x006E")
, ('\x1D476', "\x006F")
, ('\x1D477', "\x0070")
, ('\x1D478', "\x0071")
, ('\x1D479', "\x0072")
, ('\x1D47A', "\x0073")
, ('\x1D47B', "\x0074")
, ('\x1D47C', "\x0075")
, ('\x1D47D', "\x0076")
, ('\x1D47E', "\x0077")
, ('\x1D47F', "\x0078")
, ('\x1D480', "\x0079")
, ('\x1D481', "\x007A")
, ('\x1D49C', "\x0061")
, ('\x1D49E', "\x0063")
, ('\x1D49F', "\x0064")
, ('\x1D4A2', "\x0067")
, ('\x1D4A5', "\x006A")
, ('\x1D4A6', "\x006B")
, ('\x1D4A9', "\x006E")
, ('\x1D4AA', "\x006F")
, ('\x1D4AB', "\x0070")
, ('\x1D4AC', "\x0071")
, ('\x1D4AE', "\x0073")
, ('\x1D4AF', "\x0074")
, ('\x1D4B0', "\x0075")
, ('\x1D4B1', "\x0076")
, ('\x1D4B2', "\x0077")
, ('\x1D4B3', "\x0078")
, ('\x1D4B4', "\x0079")
, ('\x1D4B5', "\x007A")
, ('\x1D4D0', "\x0061")
, ('\x1D4D1', "\x0062")
, ('\x1D4D2', "\x0063")
, ('\x1D4D3', "\x0064")
, ('\x1D4D4', "\x0065")
, ('\x1D4D5', "\x0066")
, ('\x1D4D6', "\x0067")
, ('\x1D4D7', "\x0068")
, ('\x1D4D8', "\x0069")
, ('\x1D4D9', "\x006A")
, ('\x1D4DA', "\x006B")
, ('\x1D4DB', "\x006C")
, ('\x1D4DC', "\x006D")
, ('\x1D4DD', "\x006E")
, ('\x1D4DE', "\x006F")
, ('\x1D4DF', "\x0070")
, ('\x1D4E0', "\x0071")
, ('\x1D4E1', "\x0072")
, ('\x1D4E2', "\x0073")
, ('\x1D4E3', "\x0074")
, ('\x1D4E4', "\x0075")
, ('\x1D4E5', "\x0076")
, ('\x1D4E6', "\x0077")
, ('\x1D4E7', "\x0078")
, ('\x1D4E8', "\x0079")
, ('\x1D4E9', "\x007A")
, ('\x1D504', "\x0061")
, ('\x1D505', "\x0062")
, ('\x1D507', "\x0064")
, ('\x1D508', "\x0065")
, ('\x1D509', "\x0066")
, ('\x1D50A', "\x0067")
, ('\x1D50D', "\x006A")
, ('\x1D50E', "\x006B")
, ('\x1D50F', "\x006C")
, ('\x1D510', "\x006D")
, ('\x1D511', "\x006E")
, ('\x1D512', "\x006F")
, ('\x1D513', "\x0070")
, ('\x1D514', "\x0071")
, ('\x1D516', "\x0073")
, ('\x1D517', "\x0074")
, ('\x1D518', "\x0075")
, ('\x1D519', "\x0076")
, ('\x1D51A', "\x0077")
, ('\x1D51B', "\x0078")
, ('\x1D51C', "\x0079")
, ('\x1D538', "\x0061")
, ('\x1D539', "\x0062")
, ('\x1D53B', "\x0064")
, ('\x1D53C', "\x0065")
, ('\x1D53D', "\x0066")
, ('\x1D53E', "\x0067")
, ('\x1D540', "\x0069")
, ('\x1D541', "\x006A")
, ('\x1D542', "\x006B")
, ('\x1D543', "\x006C")
, ('\x1D544', "\x006D")
, ('\x1D546', "\x006F")
, ('\x1D54A', "\x0073")
, ('\x1D54B', "\x0074")
, ('\x1D54C', "\x0075")
, ('\x1D54D', "\x0076")
, ('\x1D54E', "\x0077")
, ('\x1D54F', "\x0078")
, ('\x1D550', "\x0079")
, ('\x1D56C', "\x0061")
, ('\x1D56D', "\x0062")
, ('\x1D56E', "\x0063")
, ('\x1D56F', "\x0064")
, ('\x1D570', "\x0065")
, ('\x1D571', "\x0066")
, ('\x1D572', "\x0067")
, ('\x1D573', "\x0068")
, ('\x1D574', "\x0069")
, ('\x1D575', "\x006A")
, ('\x1D576', "\x006B")
, ('\x1D577', "\x006C")
, ('\x1D578', "\x006D")
, ('\x1D579', "\x006E")
, ('\x1D57A', "\x006F")
, ('\x1D57B', "\x0070")
, ('\x1D57C', "\x0071")
, ('\x1D57D', "\x0072")
, ('\x1D57E', "\x0073")
, ('\x1D57F', "\x0074")
, ('\x1D580', "\x0075")
, ('\x1D581', "\x0076")
, ('\x1D582', "\x0077")
, ('\x1D583', "\x0078")
, ('\x1D584', "\x0079")
, ('\x1D585', "\x007A")
, ('\x1D5A0', "\x0061")
, ('\x1D5A1', "\x0062")
, ('\x1D5A2', "\x0063")
, ('\x1D5A3', "\x0064")
, ('\x1D5A4', "\x0065")
, ('\x1D5A5', "\x0066")
, ('\x1D5A6', "\x0067")
, ('\x1D5A7', "\x0068")
, ('\x1D5A8', "\x0069")
, ('\x1D5A9', "\x006A")
, ('\x1D5AA', "\x006B")
, ('\x1D5AB', "\x006C")
, ('\x1D5AC', "\x006D")
, ('\x1D5AD', "\x006E")
, ('\x1D5AE', "\x006F")
, ('\x1D5AF', "\x0070")
, ('\x1D5B0', "\x0071")
, ('\x1D5B1', "\x0072")
, ('\x1D5B2', "\x0073")
, ('\x1D5B3', "\x0074")
, ('\x1D5B4', "\x0075")
, ('\x1D5B5', "\x0076")
, ('\x1D5B6', "\x0077")
, ('\x1D5B7', "\x0078")
, ('\x1D5B8', "\x0079")
, ('\x1D5B9', "\x007A")
, ('\x1D5D4', "\x0061")
, ('\x1D5D5', "\x0062")
, ('\x1D5D6', "\x0063")
, ('\x1D5D7', "\x0064")
, ('\x1D5D8', "\x0065")
, ('\x1D5D9', "\x0066")
, ('\x1D5DA', "\x0067")
, ('\x1D5DB', "\x0068")
, ('\x1D5DC', "\x0069")
, ('\x1D5DD', "\x006A")
, ('\x1D5DE', "\x006B")
, ('\x1D5DF', "\x006C")
, ('\x1D5E0', "\x006D")
, ('\x1D5E1', "\x006E")
, ('\x1D5E2', "\x006F")
, ('\x1D5E3', "\x0070")
, ('\x1D5E4', "\x0071")
, ('\x1D5E5', "\x0072")
, ('\x1D5E6', "\x0073")
, ('\x1D5E7', "\x0074")
, ('\x1D5E8', "\x0075")
, ('\x1D5E9', "\x0076")
, ('\x1D5EA', "\x0077")
, ('\x1D5EB', "\x0078")
, ('\x1D5EC', "\x0079")
, ('\x1D5ED', "\x007A")
, ('\x1D608', "\x0061")
, ('\x1D609', "\x0062")
, ('\x1D60A', "\x0063")
, ('\x1D60B', "\x0064")
, ('\x1D60C', "\x0065")
, ('\x1D60D', "\x0066")
, ('\x1D60E', "\x0067")
, ('\x1D60F', "\x0068")
, ('\x1D610', "\x0069")
, ('\x1D611', "\x006A")
, ('\x1D612', "\x006B")
, ('\x1D613', "\x006C")
, ('\x1D614', "\x006D")
, ('\x1D615', "\x006E")
, ('\x1D616', "\x006F")
, ('\x1D617', "\x0070")
, ('\x1D618', "\x0071")
, ('\x1D619', "\x0072")
, ('\x1D61A', "\x0073")
, ('\x1D61B', "\x0074")
, ('\x1D61C', "\x0075")
, ('\x1D61D', "\x0076")
, ('\x1D61E', "\x0077")
, ('\x1D61F', "\x0078")
, ('\x1D620', "\x0079")
, ('\x1D621', "\x007A")
, ('\x1D63C', "\x0061")
, ('\x1D63D', "\x0062")
, ('\x1D63E', "\x0063")
, ('\x1D63F', "\x0064")
, ('\x1D640', "\x0065")
, ('\x1D641', "\x0066")
, ('\x1D642', "\x0067")
, ('\x1D643', "\x0068")
, ('\x1D644', "\x0069")
, ('\x1D645', "\x006A")
, ('\x1D646', "\x006B")
, ('\x1D647', "\x006C")
, ('\x1D648', "\x006D")
, ('\x1D649', "\x006E")
, ('\x1D64A', "\x006F")
, ('\x1D64B', "\x0070")
, ('\x1D64C', "\x0071")
, ('\x1D64D', "\x0072")
, ('\x1D64E', "\x0073")
, ('\x1D64F', "\x0074")
, ('\x1D650', "\x0075")
, ('\x1D651', "\x0076")
, ('\x1D652', "\x0077")
, ('\x1D653', "\x0078")
, ('\x1D654', "\x0079")
, ('\x1D655', "\x007A")
, ('\x1D670', "\x0061")
, ('\x1D671', "\x0062")
, ('\x1D672', "\x0063")
, ('\x1D673', "\x0064")
, ('\x1D674', "\x0065")
, ('\x1D675', "\x0066")
, ('\x1D676', "\x0067")
, ('\x1D677', "\x0068")
, ('\x1D678', "\x0069")
, ('\x1D679', "\x006A")
, ('\x1D67A', "\x006B")
, ('\x1D67B', "\x006C")
, ('\x1D67C', "\x006D")
, ('\x1D67D', "\x006E")
, ('\x1D67E', "\x006F")
, ('\x1D67F', "\x0070")
, ('\x1D680', "\x0071")
, ('\x1D681', "\x0072")
, ('\x1D682', "\x0073")
, ('\x1D683', "\x0074")
, ('\x1D684', "\x0075")
, ('\x1D685', "\x0076")
, ('\x1D686', "\x0077")
, ('\x1D687', "\x0078")
, ('\x1D688', "\x0079")
, ('\x1D689', "\x007A")
, ('\x1D6A8', "\x03B1")
, ('\x1D6A9', "\x03B2")
, ('\x1D6AA', "\x03B3")
, ('\x1D6AB', "\x03B4")
, ('\x1D6AC', "\x03B5")
, ('\x1D6AD', "\x03B6")
, ('\x1D6AE', "\x03B7")
, ('\x1D6AF', "\x03B8")
, ('\x1D6B0', "\x03B9")
, ('\x1D6B1', "\x03BA")
, ('\x1D6B2', "\x03BB")
, ('\x1D6B3', "\x03BC")
, ('\x1D6B4', "\x03BD")
, ('\x1D6B5', "\x03BE")
, ('\x1D6B6', "\x03BF")
, ('\x1D6B7', "\x03C0")
, ('\x1D6B8', "\x03C1")
, ('\x1D6B9', "\x03B8")
, ('\x1D6BA', "\x03C3")
, ('\x1D6BB', "\x03C4")
, ('\x1D6BC', "\x03C5")
, ('\x1D6BD', "\x03C6")
, ('\x1D6BE', "\x03C7")
, ('\x1D6BF', "\x03C8")
, ('\x1D6C0', "\x03C9")
, ('\x1D6D3', "\x03C3")
, ('\x1D6E2', "\x03B1")
, ('\x1D6E3', "\x03B2")
, ('\x1D6E4', "\x03B3")
, ('\x1D6E5', "\x03B4")
, ('\x1D6E6', "\x03B5")
, ('\x1D6E7', "\x03B6")
, ('\x1D6E8', "\x03B7")
, ('\x1D6E9', "\x03B8")
, ('\x1D6EA', "\x03B9")
, ('\x1D6EB', "\x03BA")
, ('\x1D6EC', "\x03BB")
, ('\x1D6ED', "\x03BC")
, ('\x1D6EE', "\x03BD")
, ('\x1D6EF', "\x03BE")
, ('\x1D6F0', "\x03BF")
, ('\x1D6F1', "\x03C0")
, ('\x1D6F2', "\x03C1")
, ('\x1D6F3', "\x03B8")
, ('\x1D6F4', "\x03C3")
, ('\x1D6F5', "\x03C4")
, ('\x1D6F6', "\x03C5")
, ('\x1D6F7', "\x03C6")
, ('\x1D6F8', "\x03C7")
, ('\x1D6F9', "\x03C8")
, ('\x1D6FA', "\x03C9")
, ('\x1D70D', "\x03C3")
, ('\x1D71C', "\x03B1")
, ('\x1D71D', "\x03B2")
, ('\x1D71E', "\x03B3")
, ('\x1D71F', "\x03B4")
, ('\x1D720', "\x03B5")
, ('\x1D721', "\x03B6")
, ('\x1D722', "\x03B7")
, ('\x1D723', "\x03B8")
, ('\x1D724', "\x03B9")
, ('\x1D725', "\x03BA")
, ('\x1D726', "\x03BB")
, ('\x1D727', "\x03BC")
, ('\x1D728', "\x03BD")
, ('\x1D729', "\x03BE")
, ('\x1D72A', "\x03BF")
, ('\x1D72B', "\x03C0")
, ('\x1D72C', "\x03C1")
, ('\x1D72D', "\x03B8")
, ('\x1D72E', "\x03C3")
, ('\x1D72F', "\x03C4")
, ('\x1D730', "\x03C5")
, ('\x1D731', "\x03C6")
, ('\x1D732', "\x03C7")
, ('\x1D733', "\x03C8")
, ('\x1D734', "\x03C9")
, ('\x1D747', "\x03C3")
, ('\x1D756', "\x03B1")
, ('\x1D757', "\x03B2")
, ('\x1D758', "\x03B3")
, ('\x1D759', "\x03B4")
, ('\x1D75A', "\x03B5")
, ('\x1D75B', "\x03B6")
, ('\x1D75C', "\x03B7")
, ('\x1D75D', "\x03B8")
, ('\x1D75E', "\x03B9")
, ('\x1D75F', "\x03BA")
, ('\x1D760', "\x03BB")
, ('\x1D761', "\x03BC")
, ('\x1D762', "\x03BD")
, ('\x1D763', "\x03BE")
, ('\x1D764', "\x03BF")
, ('\x1D765', "\x03C0")
, ('\x1D766', "\x03C1")
, ('\x1D767', "\x03B8")
, ('\x1D768', "\x03C3")
, ('\x1D769', "\x03C4")
, ('\x1D76A', "\x03C5")
, ('\x1D76B', "\x03C6")
, ('\x1D76C', "\x03C7")
, ('\x1D76D', "\x03C8")
, ('\x1D76E', "\x03C9")
, ('\x1D781', "\x03C3")
, ('\x1D790', "\x03B1")
, ('\x1D791', "\x03B2")
, ('\x1D792', "\x03B3")
, ('\x1D793', "\x03B4")
, ('\x1D794', "\x03B5")
, ('\x1D795', "\x03B6")
, ('\x1D796', "\x03B7")
, ('\x1D797', "\x03B8")
, ('\x1D798', "\x03B9")
, ('\x1D799', "\x03BA")
, ('\x1D79A', "\x03BB")
, ('\x1D79B', "\x03BC")
, ('\x1D79C', "\x03BD")
, ('\x1D79D', "\x03BE")
, ('\x1D79E', "\x03BF")
, ('\x1D79F', "\x03C0")
, ('\x1D7A0', "\x03C1")
, ('\x1D7A1', "\x03B8")
, ('\x1D7A2', "\x03C3")
, ('\x1D7A3', "\x03C4")
, ('\x1D7A4', "\x03C5")
, ('\x1D7A5', "\x03C6")
, ('\x1D7A6', "\x03C7")
, ('\x1D7A7', "\x03C8")
, ('\x1D7A8', "\x03C9")
, ('\x1D7BB', "\x03C3")
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment