Skip to content

Instantly share code, notes, and snippets.

@betaveros
Created December 4, 2015 00:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save betaveros/90d8b5a1d097cea47f6c to your computer and use it in GitHub Desktop.
Save betaveros/90d8b5a1d097cea47f6c to your computer and use it in GitHub Desktop.
sketchy sketchy digraphs
#!/usr/bin/env python
# nontrivial parts come from
# http://paste.pound-python.org/raw/6aCbTG3lKgCWdrRygkBG/
# tmux magic incantation:
# bind-key v command-prompt -p "Enter digraph:" "set-buffer \"%%\"; save-buffer /tmp/tmux-digraph-input; delete-buffer; if-shell 'digraph.py < /tmp/tmux-digraph-input > /tmp/tmux-digraph-output' 'load-buffer /tmp/tmux-digraph-output; paste-buffer -d; run-shell \"rm /tmp/tmux-digraph-output /tmp/tmux-digraph-input\"' 'display-message \"Error in digraph lookup\"'"
import logging
import os.path
import sys
import unicodedata
logfile = os.path.join(os.path.dirname(__file__), 'digraph.exceptions.log')
logging.basicConfig(filename=logfile)
maps = {
'NU': 0x0000,
'SH': 0x0001,
'SX': 0x0002,
'EX': 0x0003,
'ET': 0x0004,
'EQ': 0x0005,
'AK': 0x0006,
'BL': 0x0007,
'BS': 0x0008,
'HT': 0x0009,
'LF': 0x000a,
'VT': 0x000b,
'FF': 0x000c,
'CR': 0x000d,
'SO': 0x000e,
'SI': 0x000f,
'DL': 0x0010,
'D1': 0x0011,
'D2': 0x0012,
'D3': 0x0013,
'D4': 0x0014,
'NK': 0x0015,
'SY': 0x0016,
'EB': 0x0017,
'CN': 0x0018,
'EM': 0x0019,
'SB': 0x001a,
'EC': 0x001b,
'FS': 0x001c,
'GS': 0x001d,
'RS': 0x001e,
'US': 0x001f,
'SP': 0x0020,
'Nb': 0x0023,
'DO': 0x0024,
'At': 0x0040,
'<(': 0x005b,
'//': 0x005c,
')>': 0x005d,
'\'>': 0x005e,
'\'!': 0x0060,
'(!': 0x007b,
'!!': 0x007c,
'!)': 0x007d,
'\'?': 0x007e,
'DT': 0x007f,
'PA': 0x0080,
'HO': 0x0081,
'BH': 0x0082,
'NH': 0x0083,
'IN': 0x0084,
'NL': 0x0085,
'SA': 0x0086,
'ES': 0x0087,
'HS': 0x0088,
'HJ': 0x0089,
'VS': 0x008a,
'PD': 0x008b,
'PU': 0x008c,
'RI': 0x008d,
'S2': 0x008e,
'S3': 0x008f,
'DC': 0x0090,
'P1': 0x0091,
'P2': 0x0092,
'TS': 0x0093,
'CC': 0x0094,
'MW': 0x0095,
'SG': 0x0096,
'EG': 0x0097,
'SS': 0x0098,
'GC': 0x0099,
'SC': 0x009a,
'CI': 0x009b,
'ST': 0x009c,
'OC': 0x009d,
'PM': 0x009e,
'AC': 0x009f,
'NS': 0x00a0,
'!I': 0x00a1,
'Ct': 0x00a2,
'Pd': 0x00a3,
'Cu': 0x00a4,
'Ye': 0x00a5,
'BB': 0x00a6,
'SE': 0x00a7,
'\':': 0x00a8,
'Co': 0x00a9,
'-a': 0x00aa,
'<<': 0x00ab,
'NO': 0x00ac,
'--': 0x00ad,
'Rg': 0x00ae,
'\'m': 0x00af,
'DG': 0x00b0,
'+-': 0x00b1,
'2S': 0x00b2,
'3S': 0x00b3,
'\'\'': 0x00b4,
'My': 0x00b5,
'PI': 0x00b6,
'.M': 0x00b7,
'\',': 0x00b8,
'1S': 0x00b9,
'-o': 0x00ba,
'>>': 0x00bb,
'14': 0x00bc,
'12': 0x00bd,
'34': 0x00be,
'?I': 0x00bf,
'A!': 0x00c0,
'A\'': 0x00c1,
'A>': 0x00c2,
'A?': 0x00c3,
'A:': 0x00c4,
'AA': 0x00c5,
'AE': 0x00c6,
'C,': 0x00c7,
'E!': 0x00c8,
'E\'': 0x00c9,
'E>': 0x00ca,
'E:': 0x00cb,
'I!': 0x00cc,
'I\'': 0x00cd,
'I>': 0x00ce,
'I:': 0x00cf,
'D-': 0x00d0,
'N?': 0x00d1,
'O!': 0x00d2,
'O\'': 0x00d3,
'O>': 0x00d4,
'O?': 0x00d5,
'O:': 0x00d6,
'*X': 0x00d7,
'O/': 0x00d8,
'U!': 0x00d9,
'U\'': 0x00da,
'U>': 0x00db,
'U:': 0x00dc,
'Y\'': 0x00dd,
'TH': 0x00de,
'ss': 0x00df,
'a!': 0x00e0,
'a\'': 0x00e1,
'a>': 0x00e2,
'a?': 0x00e3,
'a:': 0x00e4,
'aa': 0x00e5,
'ae': 0x00e6,
'c,': 0x00e7,
'e!': 0x00e8,
'e\'': 0x00e9,
'e>': 0x00ea,
'e:': 0x00eb,
'i!': 0x00ec,
'i\'': 0x00ed,
'i>': 0x00ee,
'i:': 0x00ef,
'd-': 0x00f0,
'n?': 0x00f1,
'o!': 0x00f2,
'o\'': 0x00f3,
'o>': 0x00f4,
'o?': 0x00f5,
'o:': 0x00f6,
'-:': 0x00f7,
'o/': 0x00f8,
'u!': 0x00f9,
'u\'': 0x00fa,
'u>': 0x00fb,
'u:': 0x00fc,
'y\'': 0x00fd,
'th': 0x00fe,
'y:': 0x00ff,
'A-': 0x0100,
'a-': 0x0101,
'A(': 0x0102,
'a(': 0x0103,
'A;': 0x0104,
'a;': 0x0105,
'C\'': 0x0106,
'c\'': 0x0107,
'C>': 0x0108,
'c>': 0x0109,
'C.': 0x010A,
'c.': 0x010B,
'C<': 0x010C,
'c<': 0x010D,
'D<': 0x010E,
'd<': 0x010F,
'D/': 0x0110,
'd/': 0x0111,
'E-': 0x0112,
'e-': 0x0113,
'E(': 0x0114,
'e(': 0x0115,
'E.': 0x0116,
'e.': 0x0117,
'E;': 0x0118,
'e;': 0x0119,
'E<': 0x011A,
'e<': 0x011B,
'G>': 0x011C,
'g>': 0x011D,
'G(': 0x011E,
'g(': 0x011F,
'G.': 0x0120,
'g.': 0x0121,
'G,': 0x0122,
'g,': 0x0123,
'H>': 0x0124,
'h>': 0x0125,
'H/': 0x0126,
'h/': 0x0127,
'I?': 0x0128,
'i?': 0x0129,
'I-': 0x012A,
'i-': 0x012B,
'I(': 0x012C,
'i(': 0x012D,
'I;': 0x012E,
'i;': 0x012F,
'I.': 0x0130,
'i.': 0x0131,
'IJ': 0x0132,
'ij': 0x0133,
'J>': 0x0134,
'j>': 0x0135,
'K,': 0x0136,
'k,': 0x0137,
'kk': 0x0138,
'L\'': 0x0139,
'l\'': 0x013A,
'L,': 0x013B,
'l,': 0x013C,
'L<': 0x013D,
'l<': 0x013E,
'L.': 0x013F,
'l.': 0x0140,
'L/': 0x0141,
'l/': 0x0142,
'N\'': 0x0143,
'n\'': 0x0144,
'N,': 0x0145,
'n,': 0x0146,
'N<': 0x0147,
'n<': 0x0148,
'\'n': 0x0149,
'NG': 0x014A,
'ng': 0x014B,
'O-': 0x014C,
'o-': 0x014D,
'O(': 0x014E,
'o(': 0x014F,
'O"': 0x0150,
'o"': 0x0151,
'OE': 0x0152,
'oe': 0x0153,
'R\'': 0x0154,
'r\'': 0x0155,
'R,': 0x0156,
'r,': 0x0157,
'R<': 0x0158,
'r<': 0x0159,
'S\'': 0x015A,
's\'': 0x015B,
'S>': 0x015C,
's>': 0x015D,
'S,': 0x015E,
's,': 0x015F,
'S<': 0x0160,
's<': 0x0161,
'T,': 0x0162,
't,': 0x0163,
'T<': 0x0164,
't<': 0x0165,
'T/': 0x0166,
't/': 0x0167,
'U?': 0x0168,
'u?': 0x0169,
'U-': 0x016A,
'u-': 0x016B,
'U(': 0x016C,
'u(': 0x016D,
'U0': 0x016E,
'u0': 0x016F,
'U"': 0x0170,
'u"': 0x0171,
'U;': 0x0172,
'u;': 0x0173,
'W>': 0x0174,
'w>': 0x0175,
'Y>': 0x0176,
'y>': 0x0177,
'Y:': 0x0178,
'Z\'': 0x0179,
'z\'': 0x017A,
'Z.': 0x017B,
'z.': 0x017C,
'Z<': 0x017D,
'z<': 0x017E,
'O9': 0x01A0,
'o9': 0x01A1,
'OI': 0x01A2,
'oi': 0x01A3,
'yr': 0x01A6,
'U9': 0x01AF,
'u9': 0x01B0,
'Z/': 0x01B5,
'z/': 0x01B6,
'ED': 0x01B7,
'A<': 0x01CD,
'a<': 0x01CE,
'I<': 0x01CF,
'i<': 0x01D0,
'O<': 0x01D1,
'o<': 0x01D2,
'U<': 0x01D3,
'u<': 0x01D4,
'A1': 0x01DE,
'a1': 0x01DF,
'A7': 0x01E0,
'a7': 0x01E1,
'A3': 0x01E2,
'a3': 0x01E3,
'G/': 0x01E4,
'g/': 0x01E5,
'G<': 0x01E6,
'g<': 0x01E7,
'K<': 0x01E8,
'k<': 0x01E9,
'O;': 0x01EA,
'o;': 0x01EB,
'O1': 0x01EC,
'o1': 0x01ED,
'EZ': 0x01EE,
'ez': 0x01EF,
'j<': 0x01F0,
'G\'': 0x01F4,
'g\'': 0x01F5,
';S': 0x02BF,
'\'<': 0x02C7,
'\'(': 0x02D8,
'\'.': 0x02D9,
'\'0': 0x02DA,
'\';': 0x02DB,
'\'"': 0x02DD,
'A%': 0x0386,
'E%': 0x0388,
'Y%': 0x0389,
'I%': 0x038A,
'O%': 0x038C,
'U%': 0x038E,
'W%': 0x038F,
'i3': 0x0390,
'A*': 0x0391,
'B*': 0x0392,
'G*': 0x0393,
'D*': 0x0394,
'E*': 0x0395,
'Z*': 0x0396,
'Y*': 0x0397,
'H*': 0x0398,
'I*': 0x0399,
'K*': 0x039A,
'L*': 0x039B,
'M*': 0x039C,
'N*': 0x039D,
'C*': 0x039E,
'O*': 0x039F,
'P*': 0x03A0,
'R*': 0x03A1,
'S*': 0x03A3,
'T*': 0x03A4,
'U*': 0x03A5,
'F*': 0x03A6,
'X*': 0x03A7,
'Q*': 0x03A8,
'W*': 0x03A9,
'J*': 0x03AA,
'V*': 0x03AB,
'a%': 0x03AC,
'e%': 0x03AD,
'y%': 0x03AE,
'i%': 0x03AF,
'u3': 0x03B0,
'a*': 0x03B1,
'b*': 0x03B2,
'g*': 0x03B3,
'd*': 0x03B4,
'e*': 0x03B5,
'z*': 0x03B6,
'y*': 0x03B7,
'h*': 0x03B8,
'i*': 0x03B9,
'k*': 0x03BA,
'l*': 0x03BB,
'm*': 0x03BC,
'n*': 0x03BD,
'c*': 0x03BE,
'o*': 0x03BF,
'p*': 0x03C0,
'r*': 0x03C1,
'*s': 0x03C2,
's*': 0x03C3,
't*': 0x03C4,
'u*': 0x03C5,
'f*': 0x03C6,
'x*': 0x03C7,
'q*': 0x03C8,
'w*': 0x03C9,
'j*': 0x03CA,
'v*': 0x03CB,
'o%': 0x03CC,
'u%': 0x03CD,
'w%': 0x03CE,
'\'G': 0x03D8,
',G': 0x03D9,
'T3': 0x03DA,
't3': 0x03DB,
'M3': 0x03DC,
'm3': 0x03DD,
'K3': 0x03DE,
'k3': 0x03DF,
'P3': 0x03E0,
'p3': 0x03E1,
'\'%': 0x03F4,
'j3': 0x03F5,
'IO': 0x0401,
'D%': 0x0402,
'G%': 0x0403,
'IE': 0x0404,
'DS': 0x0405,
'II': 0x0406,
'YI': 0x0407,
'J%': 0x0408,
'LJ': 0x0409,
'NJ': 0x040A,
'Ts': 0x040B,
'KJ': 0x040C,
'V%': 0x040E,
'DZ': 0x040F,
'A=': 0x0410,
'B=': 0x0411,
'V=': 0x0412,
'G=': 0x0413,
'D=': 0x0414,
'E=': 0x0415,
'Z%': 0x0416,
'Z=': 0x0417,
'I=': 0x0418,
'J=': 0x0419,
'K=': 0x041A,
'L=': 0x041B,
'M=': 0x041C,
'N=': 0x041D,
'O=': 0x041E,
'P=': 0x041F,
'R=': 0x0420,
'S=': 0x0421,
'T=': 0x0422,
'U=': 0x0423,
'F=': 0x0424,
'H=': 0x0425,
'C=': 0x0426,
'C%': 0x0427,
'S%': 0x0428,
'Sc': 0x0429,
'="': 0x042A,
'Y=': 0x042B,
'%"': 0x042C,
'JE': 0x042D,
'JU': 0x042E,
'JA': 0x042F,
'a=': 0x0430,
'b=': 0x0431,
'v=': 0x0432,
'g=': 0x0433,
'd=': 0x0434,
'e=': 0x0435,
'z%': 0x0436,
'z=': 0x0437,
'i=': 0x0438,
'j=': 0x0439,
'k=': 0x043A,
'l=': 0x043B,
'm=': 0x043C,
'n=': 0x043D,
'o=': 0x043E,
'p=': 0x043F,
'r=': 0x0440,
's=': 0x0441,
't=': 0x0442,
'u=': 0x0443,
'f=': 0x0444,
'h=': 0x0445,
'c=': 0x0446,
'c%': 0x0447,
's%': 0x0448,
'sc': 0x0449,
'=\'': 0x044A,
'y=': 0x044B,
'%\'': 0x044C,
'je': 0x044D,
'ju': 0x044E,
'ja': 0x044F,
'io': 0x0451,
'd%': 0x0452,
'g%': 0x0453,
'ie': 0x0454,
'ds': 0x0455,
'ii': 0x0456,
'yi': 0x0457,
'j%': 0x0458,
'lj': 0x0459,
'nj': 0x045A,
'ts': 0x045B,
'kj': 0x045C,
'v%': 0x045E,
'dz': 0x045F,
'Y3': 0x0462,
'y3': 0x0463,
'O3': 0x046A,
'o3': 0x046B,
'F3': 0x0472,
'f3': 0x0473,
'V3': 0x0474,
'v3': 0x0475,
'C3': 0x0480,
'c3': 0x0481,
'G3': 0x0490,
'g3': 0x0491,
'A+': 0x05D0,
'B+': 0x05D1,
'G+': 0x05D2,
'D+': 0x05D3,
'H+': 0x05D4,
'W+': 0x05D5,
'Z+': 0x05D6,
'X+': 0x05D7,
'Tj': 0x05D8,
'J+': 0x05D9,
'K%': 0x05DA,
'K+': 0x05DB,
'L+': 0x05DC,
'M%': 0x05DD,
'M+': 0x05DE,
'N%': 0x05DF,
'N+': 0x05E0,
'S+': 0x05E1,
'E+': 0x05E2,
'P%': 0x05E3,
'P+': 0x05E4,
'Zj': 0x05E5,
'ZJ': 0x05E6,
'Q+': 0x05E7,
'R+': 0x05E8,
'Sh': 0x05E9,
'T+': 0x05EA,
',+': 0x060C,
';+': 0x061B,
'?+': 0x061F,
'H\'': 0x0621,
'aM': 0x0622,
'aH': 0x0623,
'wH': 0x0624,
'ah': 0x0625,
'yH': 0x0626,
'a+': 0x0627,
'b+': 0x0628,
'tm': 0x0629,
't+': 0x062A,
'tk': 0x062B,
'g+': 0x062C,
'hk': 0x062D,
'x+': 0x062E,
'd+': 0x062F,
'dk': 0x0630,
'r+': 0x0631,
'z+': 0x0632,
's+': 0x0633,
'sn': 0x0634,
'c+': 0x0635,
'dd': 0x0636,
'tj': 0x0637,
'zH': 0x0638,
'e+': 0x0639,
'i+': 0x063A,
'++': 0x0640,
'f+': 0x0641,
'q+': 0x0642,
'k+': 0x0643,
'l+': 0x0644,
'm+': 0x0645,
'n+': 0x0646,
'h+': 0x0647,
'w+': 0x0648,
'j+': 0x0649,
'y+': 0x064A,
':+': 0x064B,
'"+': 0x064C,
'=+': 0x064D,
'/+': 0x064E,
'\'+': 0x064F,
'1+': 0x0650,
'3+': 0x0651,
'0+': 0x0652,
'aS': 0x0670,
'p+': 0x067E,
'v+': 0x06A4,
'gf': 0x06AF,
'0a': 0x06F0,
'1a': 0x06F1,
'2a': 0x06F2,
'3a': 0x06F3,
'4a': 0x06F4,
'5a': 0x06F5,
'6a': 0x06F6,
'7a': 0x06F7,
'8a': 0x06F8,
'9a': 0x06F9,
'B.': 0x1E02,
'b.': 0x1E03,
'B_': 0x1E06,
'b_': 0x1E07,
'D.': 0x1E0A,
'd.': 0x1E0B,
'D_': 0x1E0E,
'd_': 0x1E0F,
'D,': 0x1E10,
'd,': 0x1E11,
'F.': 0x1E1E,
'f.': 0x1E1F,
'G-': 0x1E20,
'g-': 0x1E21,
'H.': 0x1E22,
'h.': 0x1E23,
'H:': 0x1E26,
'h:': 0x1E27,
'H,': 0x1E28,
'h,': 0x1E29,
'K\'': 0x1E30,
'k\'': 0x1E31,
'K_': 0x1E34,
'k_': 0x1E35,
'L_': 0x1E3A,
'l_': 0x1E3B,
'M\'': 0x1E3E,
'm\'': 0x1E3F,
'M.': 0x1E40,
'm.': 0x1E41,
'N.': 0x1E44,
'n.': 0x1E45,
'N_': 0x1E48,
'n_': 0x1E49,
'P\'': 0x1E54,
'p\'': 0x1E55,
'P.': 0x1E56,
'p.': 0x1E57,
'R.': 0x1E58,
'r.': 0x1E59,
'R_': 0x1E5E,
'r_': 0x1E5F,
'S.': 0x1E60,
's.': 0x1E61,
'T.': 0x1E6A,
't.': 0x1E6B,
'T_': 0x1E6E,
't_': 0x1E6F,
'V?': 0x1E7C,
'v?': 0x1E7D,
'W!': 0x1E80,
'w!': 0x1E81,
'W\'': 0x1E82,
'w\'': 0x1E83,
'W:': 0x1E84,
'w:': 0x1E85,
'W.': 0x1E86,
'w.': 0x1E87,
'X.': 0x1E8A,
'x.': 0x1E8B,
'X:': 0x1E8C,
'x:': 0x1E8D,
'Y.': 0x1E8E,
'y.': 0x1E8F,
'Z>': 0x1E90,
'z>': 0x1E91,
'Z_': 0x1E94,
'z_': 0x1E95,
'h_': 0x1E96,
't:': 0x1E97,
'w0': 0x1E98,
'y0': 0x1E99,
'A2': 0x1EA2,
'a2': 0x1EA3,
'E2': 0x1EBA,
'e2': 0x1EBB,
'E?': 0x1EBC,
'e?': 0x1EBD,
'I2': 0x1EC8,
'i2': 0x1EC9,
'O2': 0x1ECE,
'o2': 0x1ECF,
'U2': 0x1EE6,
'u2': 0x1EE7,
'Y!': 0x1EF2,
'y!': 0x1EF3,
'Y2': 0x1EF6,
'y2': 0x1EF7,
'Y?': 0x1EF8,
'y?': 0x1EF9,
';\'': 0x1F00,
',\'': 0x1F01,
';!': 0x1F02,
',!': 0x1F03,
'?;': 0x1F04,
'?,': 0x1F05,
'!:': 0x1F06,
'?:': 0x1F07,
'1N': 0x2002,
'1M': 0x2003,
'3M': 0x2004,
'4M': 0x2005,
'6M': 0x2006,
'1T': 0x2009,
'1H': 0x200A,
'-1': 0x2010,
'-N': 0x2013,
'-M': 0x2014,
'-3': 0x2015,
'!2': 0x2016,
'=2': 0x2017,
'\'6': 0x2018,
'\'9': 0x2019,
'.9': 0x201A,
'9\'': 0x201B,
'"6': 0x201C,
'"9': 0x201D,
':9': 0x201E,
'9"': 0x201F,
'/-': 0x2020,
'/=': 0x2021,
'..': 0x2025,
'%0': 0x2030,
'1\'': 0x2032,
'2\'': 0x2033,
'3\'': 0x2034,
'1"': 0x2035,
'2"': 0x2036,
'3"': 0x2037,
'Ca': 0x2038,
'<1': 0x2039,
'>1': 0x203A,
':X': 0x203B,
'\'-': 0x203E,
'/f': 0x2044,
'0S': 0x2070,
'4S': 0x2074,
'5S': 0x2075,
'6S': 0x2076,
'7S': 0x2077,
'8S': 0x2078,
'9S': 0x2079,
'+S': 0x207A,
'-S': 0x207B,
'=S': 0x207C,
'(S': 0x207D,
')S': 0x207E,
'nS': 0x207F,
'0s': 0x2080,
'1s': 0x2081,
'2s': 0x2082,
'3s': 0x2083,
'4s': 0x2084,
'5s': 0x2085,
'6s': 0x2086,
'7s': 0x2087,
'8s': 0x2088,
'9s': 0x2089,
'+s': 0x208A,
'-s': 0x208B,
'=s': 0x208C,
'(s': 0x208D,
')s': 0x208E,
'Li': 0x20A4,
'Pt': 0x20A7,
'W=': 0x20A9,
'Eu': 0x20AC,
'=R': 0x20BD,
'=P': 0x20BD,
'oC': 0x2103,
'co': 0x2105,
'oF': 0x2109,
'N0': 0x2116,
'PO': 0x2117,
'Rx': 0x211E,
'SM': 0x2120,
'TM': 0x2122,
'Om': 0x2126,
'AO': 0x212B,
'13': 0x2153,
'23': 0x2154,
'15': 0x2155,
'25': 0x2156,
'35': 0x2157,
'45': 0x2158,
'16': 0x2159,
'56': 0x215A,
'18': 0x215B,
'38': 0x215C,
'58': 0x215D,
'78': 0x215E,
'1R': 0x2160,
'2R': 0x2161,
'3R': 0x2162,
'4R': 0x2163,
'5R': 0x2164,
'6R': 0x2165,
'7R': 0x2166,
'8R': 0x2167,
'9R': 0x2168,
'aR': 0x2169,
'bR': 0x216A,
'cR': 0x216B,
'1r': 0x2170,
'2r': 0x2171,
'3r': 0x2172,
'4r': 0x2173,
'5r': 0x2174,
'6r': 0x2175,
'7r': 0x2176,
'8r': 0x2177,
'9r': 0x2178,
'ar': 0x2179,
'br': 0x217A,
'cr': 0x217B,
'<-': 0x2190,
'-!': 0x2191,
'->': 0x2192,
'-v': 0x2193,
'<>': 0x2194,
'UD': 0x2195,
'<=': 0x21D0,
': ': 0x21D2,
'==': 0x21D4,
'FA': 0x2200,
'dP': 0x2202,
'TE': 0x2203,
'/0': 0x2205,
'DE': 0x2206,
'NB': 0x2207,
'(-': 0x2208,
'-)': 0x220B,
'*P': 0x220F,
'+Z': 0x2211,
'-2': 0x2212,
'-+': 0x2213,
'*-': 0x2217,
'Ob': 0x2218,
'Sb': 0x2219,
'RT': 0x221A,
'0(': 0x221D,
'00': 0x221E,
'-L': 0x221F,
'-V': 0x2220,
'PP': 0x2225,
'AN': 0x2227,
'OR': 0x2228,
'(U': 0x2229,
')U': 0x222A,
'In': 0x222B,
'DI': 0x222C,
'Io': 0x222E,
'.:': 0x2234,
':.': 0x2235,
':R': 0x2236,
'::': 0x2237,
'?1': 0x223C,
'CG': 0x223E,
'?-': 0x2243,
'?=': 0x2245,
'?2': 0x2248,
'=?': 0x224C,
'HI': 0x2253,
'!=': 0x2260,
'=3': 0x2261,
'=<': 0x2264,
'>=': 0x2265,
'<*': 0x226A,
'*>': 0x226B,
'!<': 0x226E,
'!>': 0x226F,
'(C': 0x2282,
')C': 0x2283,
'(_': 0x2286,
')_': 0x2287,
'0.': 0x2299,
'02': 0x229A,
'-T': 0x22A5,
'.P': 0x22C5,
':3': 0x22EE,
'.3': 0x22EF,
'Eh': 0x2302,
'<7': 0x2308,
'>7': 0x2309,
'7<': 0x230A,
'7>': 0x230B,
'NI': 0x2310,
'(A': 0x2312,
'TR': 0x2315,
'Iu': 0x2320,
'Il': 0x2321,
'</': 0x2329,
'/>': 0x232A,
'Vs': 0x2423,
'1h': 0x2440,
'3h': 0x2441,
'2h': 0x2442,
'4h': 0x2443,
'1j': 0x2446,
'2j': 0x2447,
'3j': 0x2448,
'4j': 0x2449,
'1.': 0x2488,
'2.': 0x2489,
'3.': 0x248A,
'4.': 0x248B,
'5.': 0x248C,
'6.': 0x248D,
'7.': 0x248E,
'8.': 0x248F,
'9.': 0x2490,
'hh': 0x2500,
'HH': 0x2501,
'vv': 0x2502,
'VV': 0x2503,
'3-': 0x2504,
'3_': 0x2505,
'3!': 0x2506,
'3/': 0x2507,
'4-': 0x2508,
'4_': 0x2509,
'4!': 0x250A,
'4/': 0x250B,
'dr': 0x250C,
'dR': 0x250D,
'Dr': 0x250E,
'DR': 0x250F,
'dl': 0x2510,
'dL': 0x2511,
'Dl': 0x2512,
'LD': 0x2513,
'ur': 0x2514,
'uR': 0x2515,
'Ur': 0x2516,
'UR': 0x2517,
'ul': 0x2518,
'uL': 0x2519,
'Ul': 0x251A,
'UL': 0x251B,
'vr': 0x251C,
'vR': 0x251D,
'Vr': 0x2520,
'VR': 0x2523,
'vl': 0x2524,
'vL': 0x2525,
'Vl': 0x2528,
'VL': 0x252B,
'dh': 0x252C,
'dH': 0x252F,
'Dh': 0x2530,
'DH': 0x2533,
'uh': 0x2534,
'uH': 0x2537,
'Uh': 0x2538,
'UH': 0x253B,
'vh': 0x253C,
'vH': 0x253F,
'Vh': 0x2542,
'VH': 0x254B,
'FD': 0x2571,
'BD': 0x2572,
'TB': 0x2580,
'LB': 0x2584,
'FB': 0x2588,
'lB': 0x258C,
'RB': 0x2590,
'.S': 0x2591,
':S': 0x2592,
'?S': 0x2593,
'fS': 0x25A0,
'OS': 0x25A1,
'RO': 0x25A2,
'Rr': 0x25A3,
'RF': 0x25A4,
'RY': 0x25A5,
'RH': 0x25A6,
'RZ': 0x25A7,
'RK': 0x25A8,
'RX': 0x25A9,
'sB': 0x25AA,
'SR': 0x25AC,
'Or': 0x25AD,
'UT': 0x25B2,
'uT': 0x25B3,
'PR': 0x25B6,
'Tr': 0x25B7,
'Dt': 0x25BC,
'dT': 0x25BD,
'PL': 0x25C0,
'Tl': 0x25C1,
'Db': 0x25C6,
'Dw': 0x25C7,
'LZ': 0x25CA,
'0m': 0x25CB,
'0o': 0x25CE,
'0M': 0x25CF,
'0L': 0x25D0,
'0R': 0x25D1,
'Sn': 0x25D8,
'Ic': 0x25D9,
'Fd': 0x25E2,
'Bd': 0x25E3,
'*2': 0x2605,
'*1': 0x2606,
'<H': 0x261C,
'>H': 0x261E,
'0u': 0x263A,
'0U': 0x263B,
'SU': 0x263C,
'Fm': 0x2640,
'Ml': 0x2642,
'cS': 0x2660,
'cH': 0x2661,
'cD': 0x2662,
'cC': 0x2663,
'Md': 0x2669,
'M8': 0x266A,
'M2': 0x266B,
'Mb': 0x266D,
'Mx': 0x266E,
'MX': 0x266F,
'OK': 0x2713,
'XX': 0x2717,
'-X': 0x2720,
'IS': 0x3000,
',_': 0x3001,
'._': 0x3002,
'+"': 0x3003,
'+_': 0x3004,
'*_': 0x3005,
';_': 0x3006,
'0_': 0x3007,
'<+': 0x300A,
'>+': 0x300B,
'<\'': 0x300C,
'>\'': 0x300D,
'<"': 0x300E,
'>"': 0x300F,
'("': 0x3010,
')"': 0x3011,
'=T': 0x3012,
'=_': 0x3013,
'(\'': 0x3014,
')\'': 0x3015,
'(I': 0x3016,
')I': 0x3017,
'-?': 0x301C,
'A5': 0x3041,
'a5': 0x3042,
'I5': 0x3043,
'i5': 0x3044,
'U5': 0x3045,
'u5': 0x3046,
'E5': 0x3047,
'e5': 0x3048,
'O5': 0x3049,
'o5': 0x304A,
'ka': 0x304B,
'ga': 0x304C,
'ki': 0x304D,
'gi': 0x304E,
'ku': 0x304F,
'gu': 0x3050,
'ke': 0x3051,
'ge': 0x3052,
'ko': 0x3053,
'go': 0x3054,
'sa': 0x3055,
'za': 0x3056,
'si': 0x3057,
'zi': 0x3058,
'su': 0x3059,
'zu': 0x305A,
'se': 0x305B,
'ze': 0x305C,
'so': 0x305D,
'zo': 0x305E,
'ta': 0x305F,
'da': 0x3060,
'ti': 0x3061,
'di': 0x3062,
'tU': 0x3063,
'tu': 0x3064,
'du': 0x3065,
'te': 0x3066,
'de': 0x3067,
'to': 0x3068,
'do': 0x3069,
'na': 0x306A,
'ni': 0x306B,
'nu': 0x306C,
'ne': 0x306D,
'no': 0x306E,
'ha': 0x306F,
'ba': 0x3070,
'pa': 0x3071,
'hi': 0x3072,
'bi': 0x3073,
'pi': 0x3074,
'hu': 0x3075,
'bu': 0x3076,
'pu': 0x3077,
'he': 0x3078,
'be': 0x3079,
'pe': 0x307A,
'ho': 0x307B,
'bo': 0x307C,
'po': 0x307D,
'ma': 0x307E,
'mi': 0x307F,
'mu': 0x3080,
'me': 0x3081,
'mo': 0x3082,
'yA': 0x3083,
'ya': 0x3084,
'yU': 0x3085,
'yu': 0x3086,
'yO': 0x3087,
'yo': 0x3088,
'ra': 0x3089,
'ri': 0x308A,
'ru': 0x308B,
're': 0x308C,
'ro': 0x308D,
'wA': 0x308E,
'wa': 0x308F,
'wi': 0x3090,
'we': 0x3091,
'wo': 0x3092,
'n5': 0x3093,
'vu': 0x3094,
'"5': 0x309B,
'05': 0x309C,
'*5': 0x309D,
'+5': 0x309E,
'a6': 0x30A1,
'A6': 0x30A2,
'i6': 0x30A3,
'I6': 0x30A4,
'u6': 0x30A5,
'U6': 0x30A6,
'e6': 0x30A7,
'E6': 0x30A8,
'o6': 0x30A9,
'O6': 0x30AA,
'Ka': 0x30AB,
'Ga': 0x30AC,
'Ki': 0x30AD,
'Gi': 0x30AE,
'Ku': 0x30AF,
'Gu': 0x30B0,
'Ke': 0x30B1,
'Ge': 0x30B2,
'Ko': 0x30B3,
'Go': 0x30B4,
'Sa': 0x30B5,
'Za': 0x30B6,
'Si': 0x30B7,
'Zi': 0x30B8,
'Su': 0x30B9,
'Zu': 0x30BA,
'Se': 0x30BB,
'Ze': 0x30BC,
'So': 0x30BD,
'Zo': 0x30BE,
'Ta': 0x30BF,
'Da': 0x30C0,
'Ti': 0x30C1,
'Di': 0x30C2,
'TU': 0x30C3,
'Tu': 0x30C4,
'Du': 0x30C5,
'Te': 0x30C6,
'De': 0x30C7,
'To': 0x30C8,
'Do': 0x30C9,
'Na': 0x30CA,
'Ni': 0x30CB,
'Nu': 0x30CC,
'Ne': 0x30CD,
'No': 0x30CE,
'Ha': 0x30CF,
'Ba': 0x30D0,
'Pa': 0x30D1,
'Hi': 0x30D2,
'Bi': 0x30D3,
'Pi': 0x30D4,
'Hu': 0x30D5,
'Bu': 0x30D6,
'Pu': 0x30D7,
'He': 0x30D8,
'Be': 0x30D9,
'Pe': 0x30DA,
'Ho': 0x30DB,
'Bo': 0x30DC,
'Po': 0x30DD,
'Ma': 0x30DE,
'Mi': 0x30DF,
'Mu': 0x30E0,
'Me': 0x30E1,
'Mo': 0x30E2,
'YA': 0x30E3,
'Ya': 0x30E4,
'YU': 0x30E5,
'Yu': 0x30E6,
'YO': 0x30E7,
'Yo': 0x30E8,
'Ra': 0x30E9,
'Ri': 0x30EA,
'Ru': 0x30EB,
'Re': 0x30EC,
'Ro': 0x30ED,
'WA': 0x30EE,
'Wa': 0x30EF,
'Wi': 0x30F0,
'We': 0x30F1,
'Wo': 0x30F2,
'N6': 0x30F3,
'Vu': 0x30F4,
'KA': 0x30F5,
'KE': 0x30F6,
'Va': 0x30F7,
'Vi': 0x30F8,
'Ve': 0x30F9,
'Vo': 0x30FA,
'.6': 0x30FB,
'-6': 0x30FC,
'*6': 0x30FD,
'+6': 0x30FE,
'b4': 0x3105,
'p4': 0x3106,
'm4': 0x3107,
'f4': 0x3108,
'd4': 0x3109,
't4': 0x310A,
'n4': 0x310B,
'l4': 0x310C,
'g4': 0x310D,
'k4': 0x310E,
'h4': 0x310F,
'j4': 0x3110,
'q4': 0x3111,
'x4': 0x3112,
'zh': 0x3113,
'ch': 0x3114,
'sh': 0x3115,
'r4': 0x3116,
'z4': 0x3117,
'c4': 0x3118,
's4': 0x3119,
'a4': 0x311A,
'o4': 0x311B,
'e4': 0x311C,
'ai': 0x311E,
'ei': 0x311F,
'au': 0x3120,
'ou': 0x3121,
'an': 0x3122,
'en': 0x3123,
'aN': 0x3124,
'eN': 0x3125,
'er': 0x3126,
'i4': 0x3127,
'u4': 0x3128,
'iu': 0x3129,
'v4': 0x312A,
'nG': 0x312B,
'gn': 0x312C,
'1c': 0x3220,
'2c': 0x3221,
'3c': 0x3222,
'4c': 0x3223,
'5c': 0x3224,
'6c': 0x3225,
'7c': 0x3226,
'8c': 0x3227,
'9c': 0x3228,
'ff': 0xFB00,
'fi': 0xFB01,
'fl': 0xFB02,
'ft': 0xFB05,
'st': 0xFB06,
'!#': 8802,
'(+': 8713,
'+)': 8716,
'(/': 8836,
'/)': 8837,
'@+': 8853,
'@-': 8854,
'@x': 8855,
'@/': 8856,
'@.': 8857,
'@o': 8858,
'@*': 8859,
'@=': 8860,
'@|': 10678,
'3<': 8920,
'3>': 8921,
'NN': 8469,
'QQ': 8474,
'RR': 8477,
'ZZ': 8484,
'CC': 8450,
'FF': 120125,
'KK': 120130,
'^_': 9651,
'|>': 9655,
'_v': 9661,
'<|': 9665,
'oo': 3232,
'__': 9251,
'uu': 8995,
'ee': 601,
'll': 8467,
'!!': 8252,
'??': 8263,
'?!': 8264,
'!?': 8265,
'?|': 8253,
'<3': 9829,
',3': 8230,
'RE': 8476,
'IM': 8465,
'wp': 8472,
'^?': 65533,
'O.': 664,
'ao': 12576,
}
def main(value):
if value.startswith('U+'):
value = value[2:]
sys.stdout.write(unichr(int(value, 16)).encode('utf8'))
return
if value in maps:
sys.stdout.write(unichr(maps[value]).encode('utf8'))
return
if value[::-1] in maps:
sys.stdout.write(unichr(maps[value[::-1]]).encode('utf8'))
return
raise Exception('invalid input: ' + repr(value))
if __name__ == '__main__':
try:
main(sys.stdin.read().strip())
except Exception, e:
logging.exception('digraph.py')
raise
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment