github.com/dolthub/go-mysql-server@v0.18.0/sql/encodings/latin7.go (about)

     1  // Copyright 2023 Dolthub, Inc.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  package encodings
    16  
    17  // Latin7 represents the `latin7` character set encoding.
    18  var Latin7 Encoder = &RangeMap{
    19  	inputEntries: [][]rangeMapEntry{
    20  		{
    21  			{
    22  				inputRange:  rangeBounds{{0, 127}},
    23  				outputRange: rangeBounds{{0, 127}},
    24  				inputMults:  []int{1},
    25  				outputMults: []int{1},
    26  			},
    27  			{
    28  				inputRange:  rangeBounds{{128, 160}},
    29  				outputRange: rangeBounds{{194, 194}, {128, 160}},
    30  				inputMults:  []int{1},
    31  				outputMults: []int{33, 1},
    32  			},
    33  			{
    34  				inputRange:  rangeBounds{{161, 161}},
    35  				outputRange: rangeBounds{{226, 226}, {128, 128}, {157, 157}},
    36  				inputMults:  []int{1},
    37  				outputMults: []int{1, 1, 1},
    38  			},
    39  			{
    40  				inputRange:  rangeBounds{{162, 164}},
    41  				outputRange: rangeBounds{{194, 194}, {162, 164}},
    42  				inputMults:  []int{1},
    43  				outputMults: []int{3, 1},
    44  			},
    45  			{
    46  				inputRange:  rangeBounds{{165, 165}},
    47  				outputRange: rangeBounds{{226, 226}, {128, 128}, {158, 158}},
    48  				inputMults:  []int{1},
    49  				outputMults: []int{1, 1, 1},
    50  			},
    51  			{
    52  				inputRange:  rangeBounds{{166, 167}},
    53  				outputRange: rangeBounds{{194, 194}, {166, 167}},
    54  				inputMults:  []int{1},
    55  				outputMults: []int{2, 1},
    56  			},
    57  			{
    58  				inputRange:  rangeBounds{{168, 168}},
    59  				outputRange: rangeBounds{{195, 195}, {152, 152}},
    60  				inputMults:  []int{1},
    61  				outputMults: []int{1, 1},
    62  			},
    63  			{
    64  				inputRange:  rangeBounds{{169, 169}},
    65  				outputRange: rangeBounds{{194, 194}, {169, 169}},
    66  				inputMults:  []int{1},
    67  				outputMults: []int{1, 1},
    68  			},
    69  			{
    70  				inputRange:  rangeBounds{{170, 170}},
    71  				outputRange: rangeBounds{{197, 197}, {150, 150}},
    72  				inputMults:  []int{1},
    73  				outputMults: []int{1, 1},
    74  			},
    75  			{
    76  				inputRange:  rangeBounds{{171, 174}},
    77  				outputRange: rangeBounds{{194, 194}, {171, 174}},
    78  				inputMults:  []int{1},
    79  				outputMults: []int{4, 1},
    80  			},
    81  			{
    82  				inputRange:  rangeBounds{{175, 175}},
    83  				outputRange: rangeBounds{{195, 195}, {134, 134}},
    84  				inputMults:  []int{1},
    85  				outputMults: []int{1, 1},
    86  			},
    87  			{
    88  				inputRange:  rangeBounds{{176, 179}},
    89  				outputRange: rangeBounds{{194, 194}, {176, 179}},
    90  				inputMults:  []int{1},
    91  				outputMults: []int{4, 1},
    92  			},
    93  			{
    94  				inputRange:  rangeBounds{{180, 180}},
    95  				outputRange: rangeBounds{{226, 226}, {128, 128}, {156, 156}},
    96  				inputMults:  []int{1},
    97  				outputMults: []int{1, 1, 1},
    98  			},
    99  			{
   100  				inputRange:  rangeBounds{{181, 183}},
   101  				outputRange: rangeBounds{{194, 194}, {181, 183}},
   102  				inputMults:  []int{1},
   103  				outputMults: []int{3, 1},
   104  			},
   105  			{
   106  				inputRange:  rangeBounds{{184, 184}},
   107  				outputRange: rangeBounds{{195, 195}, {184, 184}},
   108  				inputMults:  []int{1},
   109  				outputMults: []int{1, 1},
   110  			},
   111  			{
   112  				inputRange:  rangeBounds{{185, 185}},
   113  				outputRange: rangeBounds{{194, 194}, {185, 185}},
   114  				inputMults:  []int{1},
   115  				outputMults: []int{1, 1},
   116  			},
   117  			{
   118  				inputRange:  rangeBounds{{186, 186}},
   119  				outputRange: rangeBounds{{197, 197}, {151, 151}},
   120  				inputMults:  []int{1},
   121  				outputMults: []int{1, 1},
   122  			},
   123  			{
   124  				inputRange:  rangeBounds{{187, 190}},
   125  				outputRange: rangeBounds{{194, 194}, {187, 190}},
   126  				inputMults:  []int{1},
   127  				outputMults: []int{4, 1},
   128  			},
   129  			{
   130  				inputRange:  rangeBounds{{191, 191}},
   131  				outputRange: rangeBounds{{195, 195}, {166, 166}},
   132  				inputMults:  []int{1},
   133  				outputMults: []int{1, 1},
   134  			},
   135  			{
   136  				inputRange:  rangeBounds{{192, 192}},
   137  				outputRange: rangeBounds{{196, 196}, {132, 132}},
   138  				inputMults:  []int{1},
   139  				outputMults: []int{1, 1},
   140  			},
   141  			{
   142  				inputRange:  rangeBounds{{193, 193}},
   143  				outputRange: rangeBounds{{196, 196}, {174, 174}},
   144  				inputMults:  []int{1},
   145  				outputMults: []int{1, 1},
   146  			},
   147  			{
   148  				inputRange:  rangeBounds{{194, 194}},
   149  				outputRange: rangeBounds{{196, 196}, {128, 128}},
   150  				inputMults:  []int{1},
   151  				outputMults: []int{1, 1},
   152  			},
   153  			{
   154  				inputRange:  rangeBounds{{195, 195}},
   155  				outputRange: rangeBounds{{196, 196}, {134, 134}},
   156  				inputMults:  []int{1},
   157  				outputMults: []int{1, 1},
   158  			},
   159  			{
   160  				inputRange:  rangeBounds{{196, 197}},
   161  				outputRange: rangeBounds{{195, 195}, {132, 133}},
   162  				inputMults:  []int{1},
   163  				outputMults: []int{2, 1},
   164  			},
   165  			{
   166  				inputRange:  rangeBounds{{198, 198}},
   167  				outputRange: rangeBounds{{196, 196}, {152, 152}},
   168  				inputMults:  []int{1},
   169  				outputMults: []int{1, 1},
   170  			},
   171  			{
   172  				inputRange:  rangeBounds{{199, 199}},
   173  				outputRange: rangeBounds{{196, 196}, {146, 146}},
   174  				inputMults:  []int{1},
   175  				outputMults: []int{1, 1},
   176  			},
   177  			{
   178  				inputRange:  rangeBounds{{200, 200}},
   179  				outputRange: rangeBounds{{196, 196}, {140, 140}},
   180  				inputMults:  []int{1},
   181  				outputMults: []int{1, 1},
   182  			},
   183  			{
   184  				inputRange:  rangeBounds{{201, 201}},
   185  				outputRange: rangeBounds{{195, 195}, {137, 137}},
   186  				inputMults:  []int{1},
   187  				outputMults: []int{1, 1},
   188  			},
   189  			{
   190  				inputRange:  rangeBounds{{202, 202}},
   191  				outputRange: rangeBounds{{197, 197}, {185, 185}},
   192  				inputMults:  []int{1},
   193  				outputMults: []int{1, 1},
   194  			},
   195  			{
   196  				inputRange:  rangeBounds{{203, 203}},
   197  				outputRange: rangeBounds{{196, 196}, {150, 150}},
   198  				inputMults:  []int{1},
   199  				outputMults: []int{1, 1},
   200  			},
   201  			{
   202  				inputRange:  rangeBounds{{204, 204}},
   203  				outputRange: rangeBounds{{196, 196}, {162, 162}},
   204  				inputMults:  []int{1},
   205  				outputMults: []int{1, 1},
   206  			},
   207  			{
   208  				inputRange:  rangeBounds{{205, 205}},
   209  				outputRange: rangeBounds{{196, 196}, {182, 182}},
   210  				inputMults:  []int{1},
   211  				outputMults: []int{1, 1},
   212  			},
   213  			{
   214  				inputRange:  rangeBounds{{206, 206}},
   215  				outputRange: rangeBounds{{196, 196}, {170, 170}},
   216  				inputMults:  []int{1},
   217  				outputMults: []int{1, 1},
   218  			},
   219  			{
   220  				inputRange:  rangeBounds{{207, 207}},
   221  				outputRange: rangeBounds{{196, 196}, {187, 187}},
   222  				inputMults:  []int{1},
   223  				outputMults: []int{1, 1},
   224  			},
   225  			{
   226  				inputRange:  rangeBounds{{208, 208}},
   227  				outputRange: rangeBounds{{197, 197}, {160, 160}},
   228  				inputMults:  []int{1},
   229  				outputMults: []int{1, 1},
   230  			},
   231  			{
   232  				inputRange:  rangeBounds{{209, 209}},
   233  				outputRange: rangeBounds{{197, 197}, {131, 131}},
   234  				inputMults:  []int{1},
   235  				outputMults: []int{1, 1},
   236  			},
   237  			{
   238  				inputRange:  rangeBounds{{210, 210}},
   239  				outputRange: rangeBounds{{197, 197}, {133, 133}},
   240  				inputMults:  []int{1},
   241  				outputMults: []int{1, 1},
   242  			},
   243  			{
   244  				inputRange:  rangeBounds{{211, 211}},
   245  				outputRange: rangeBounds{{195, 195}, {147, 147}},
   246  				inputMults:  []int{1},
   247  				outputMults: []int{1, 1},
   248  			},
   249  			{
   250  				inputRange:  rangeBounds{{212, 212}},
   251  				outputRange: rangeBounds{{197, 197}, {140, 140}},
   252  				inputMults:  []int{1},
   253  				outputMults: []int{1, 1},
   254  			},
   255  			{
   256  				inputRange:  rangeBounds{{213, 215}},
   257  				outputRange: rangeBounds{{195, 195}, {149, 151}},
   258  				inputMults:  []int{1},
   259  				outputMults: []int{3, 1},
   260  			},
   261  			{
   262  				inputRange:  rangeBounds{{216, 216}},
   263  				outputRange: rangeBounds{{197, 197}, {178, 178}},
   264  				inputMults:  []int{1},
   265  				outputMults: []int{1, 1},
   266  			},
   267  			{
   268  				inputRange:  rangeBounds{{217, 217}},
   269  				outputRange: rangeBounds{{197, 197}, {129, 129}},
   270  				inputMults:  []int{1},
   271  				outputMults: []int{1, 1},
   272  			},
   273  			{
   274  				inputRange:  rangeBounds{{218, 218}},
   275  				outputRange: rangeBounds{{197, 197}, {154, 154}},
   276  				inputMults:  []int{1},
   277  				outputMults: []int{1, 1},
   278  			},
   279  			{
   280  				inputRange:  rangeBounds{{219, 219}},
   281  				outputRange: rangeBounds{{197, 197}, {170, 170}},
   282  				inputMults:  []int{1},
   283  				outputMults: []int{1, 1},
   284  			},
   285  			{
   286  				inputRange:  rangeBounds{{220, 220}},
   287  				outputRange: rangeBounds{{195, 195}, {156, 156}},
   288  				inputMults:  []int{1},
   289  				outputMults: []int{1, 1},
   290  			},
   291  			{
   292  				inputRange:  rangeBounds{{221, 221}},
   293  				outputRange: rangeBounds{{197, 197}, {187, 187}},
   294  				inputMults:  []int{1},
   295  				outputMults: []int{1, 1},
   296  			},
   297  			{
   298  				inputRange:  rangeBounds{{222, 222}},
   299  				outputRange: rangeBounds{{197, 197}, {189, 189}},
   300  				inputMults:  []int{1},
   301  				outputMults: []int{1, 1},
   302  			},
   303  			{
   304  				inputRange:  rangeBounds{{223, 223}},
   305  				outputRange: rangeBounds{{195, 195}, {159, 159}},
   306  				inputMults:  []int{1},
   307  				outputMults: []int{1, 1},
   308  			},
   309  			{
   310  				inputRange:  rangeBounds{{224, 224}},
   311  				outputRange: rangeBounds{{196, 196}, {133, 133}},
   312  				inputMults:  []int{1},
   313  				outputMults: []int{1, 1},
   314  			},
   315  			{
   316  				inputRange:  rangeBounds{{225, 225}},
   317  				outputRange: rangeBounds{{196, 196}, {175, 175}},
   318  				inputMults:  []int{1},
   319  				outputMults: []int{1, 1},
   320  			},
   321  			{
   322  				inputRange:  rangeBounds{{226, 226}},
   323  				outputRange: rangeBounds{{196, 196}, {129, 129}},
   324  				inputMults:  []int{1},
   325  				outputMults: []int{1, 1},
   326  			},
   327  			{
   328  				inputRange:  rangeBounds{{227, 227}},
   329  				outputRange: rangeBounds{{196, 196}, {135, 135}},
   330  				inputMults:  []int{1},
   331  				outputMults: []int{1, 1},
   332  			},
   333  			{
   334  				inputRange:  rangeBounds{{228, 229}},
   335  				outputRange: rangeBounds{{195, 195}, {164, 165}},
   336  				inputMults:  []int{1},
   337  				outputMults: []int{2, 1},
   338  			},
   339  			{
   340  				inputRange:  rangeBounds{{230, 230}},
   341  				outputRange: rangeBounds{{196, 196}, {153, 153}},
   342  				inputMults:  []int{1},
   343  				outputMults: []int{1, 1},
   344  			},
   345  			{
   346  				inputRange:  rangeBounds{{231, 231}},
   347  				outputRange: rangeBounds{{196, 196}, {147, 147}},
   348  				inputMults:  []int{1},
   349  				outputMults: []int{1, 1},
   350  			},
   351  			{
   352  				inputRange:  rangeBounds{{232, 232}},
   353  				outputRange: rangeBounds{{196, 196}, {141, 141}},
   354  				inputMults:  []int{1},
   355  				outputMults: []int{1, 1},
   356  			},
   357  			{
   358  				inputRange:  rangeBounds{{233, 233}},
   359  				outputRange: rangeBounds{{195, 195}, {169, 169}},
   360  				inputMults:  []int{1},
   361  				outputMults: []int{1, 1},
   362  			},
   363  			{
   364  				inputRange:  rangeBounds{{234, 234}},
   365  				outputRange: rangeBounds{{197, 197}, {186, 186}},
   366  				inputMults:  []int{1},
   367  				outputMults: []int{1, 1},
   368  			},
   369  			{
   370  				inputRange:  rangeBounds{{235, 235}},
   371  				outputRange: rangeBounds{{196, 196}, {151, 151}},
   372  				inputMults:  []int{1},
   373  				outputMults: []int{1, 1},
   374  			},
   375  			{
   376  				inputRange:  rangeBounds{{236, 236}},
   377  				outputRange: rangeBounds{{196, 196}, {163, 163}},
   378  				inputMults:  []int{1},
   379  				outputMults: []int{1, 1},
   380  			},
   381  			{
   382  				inputRange:  rangeBounds{{237, 237}},
   383  				outputRange: rangeBounds{{196, 196}, {183, 183}},
   384  				inputMults:  []int{1},
   385  				outputMults: []int{1, 1},
   386  			},
   387  			{
   388  				inputRange:  rangeBounds{{238, 238}},
   389  				outputRange: rangeBounds{{196, 196}, {171, 171}},
   390  				inputMults:  []int{1},
   391  				outputMults: []int{1, 1},
   392  			},
   393  			{
   394  				inputRange:  rangeBounds{{239, 239}},
   395  				outputRange: rangeBounds{{196, 196}, {188, 188}},
   396  				inputMults:  []int{1},
   397  				outputMults: []int{1, 1},
   398  			},
   399  			{
   400  				inputRange:  rangeBounds{{240, 240}},
   401  				outputRange: rangeBounds{{197, 197}, {161, 161}},
   402  				inputMults:  []int{1},
   403  				outputMults: []int{1, 1},
   404  			},
   405  			{
   406  				inputRange:  rangeBounds{{241, 241}},
   407  				outputRange: rangeBounds{{197, 197}, {132, 132}},
   408  				inputMults:  []int{1},
   409  				outputMults: []int{1, 1},
   410  			},
   411  			{
   412  				inputRange:  rangeBounds{{242, 242}},
   413  				outputRange: rangeBounds{{197, 197}, {134, 134}},
   414  				inputMults:  []int{1},
   415  				outputMults: []int{1, 1},
   416  			},
   417  			{
   418  				inputRange:  rangeBounds{{243, 243}},
   419  				outputRange: rangeBounds{{195, 195}, {179, 179}},
   420  				inputMults:  []int{1},
   421  				outputMults: []int{1, 1},
   422  			},
   423  			{
   424  				inputRange:  rangeBounds{{244, 244}},
   425  				outputRange: rangeBounds{{197, 197}, {141, 141}},
   426  				inputMults:  []int{1},
   427  				outputMults: []int{1, 1},
   428  			},
   429  			{
   430  				inputRange:  rangeBounds{{245, 247}},
   431  				outputRange: rangeBounds{{195, 195}, {181, 183}},
   432  				inputMults:  []int{1},
   433  				outputMults: []int{3, 1},
   434  			},
   435  			{
   436  				inputRange:  rangeBounds{{248, 248}},
   437  				outputRange: rangeBounds{{197, 197}, {179, 179}},
   438  				inputMults:  []int{1},
   439  				outputMults: []int{1, 1},
   440  			},
   441  			{
   442  				inputRange:  rangeBounds{{249, 249}},
   443  				outputRange: rangeBounds{{197, 197}, {130, 130}},
   444  				inputMults:  []int{1},
   445  				outputMults: []int{1, 1},
   446  			},
   447  			{
   448  				inputRange:  rangeBounds{{250, 250}},
   449  				outputRange: rangeBounds{{197, 197}, {155, 155}},
   450  				inputMults:  []int{1},
   451  				outputMults: []int{1, 1},
   452  			},
   453  			{
   454  				inputRange:  rangeBounds{{251, 251}},
   455  				outputRange: rangeBounds{{197, 197}, {171, 171}},
   456  				inputMults:  []int{1},
   457  				outputMults: []int{1, 1},
   458  			},
   459  			{
   460  				inputRange:  rangeBounds{{252, 252}},
   461  				outputRange: rangeBounds{{195, 195}, {188, 188}},
   462  				inputMults:  []int{1},
   463  				outputMults: []int{1, 1},
   464  			},
   465  			{
   466  				inputRange:  rangeBounds{{253, 253}},
   467  				outputRange: rangeBounds{{197, 197}, {188, 188}},
   468  				inputMults:  []int{1},
   469  				outputMults: []int{1, 1},
   470  			},
   471  			{
   472  				inputRange:  rangeBounds{{254, 254}},
   473  				outputRange: rangeBounds{{197, 197}, {190, 190}},
   474  				inputMults:  []int{1},
   475  				outputMults: []int{1, 1},
   476  			},
   477  			{
   478  				inputRange:  rangeBounds{{255, 255}},
   479  				outputRange: rangeBounds{{226, 226}, {128, 128}, {153, 153}},
   480  				inputMults:  []int{1},
   481  				outputMults: []int{1, 1, 1},
   482  			},
   483  		},
   484  		nil,
   485  		nil,
   486  		nil,
   487  	},
   488  	outputEntries: [][]rangeMapEntry{
   489  		{
   490  			{
   491  				inputRange:  rangeBounds{{0, 127}},
   492  				outputRange: rangeBounds{{0, 127}},
   493  				inputMults:  []int{1},
   494  				outputMults: []int{1},
   495  			},
   496  		},
   497  		{
   498  			{
   499  				inputRange:  rangeBounds{{128, 160}},
   500  				outputRange: rangeBounds{{194, 194}, {128, 160}},
   501  				inputMults:  []int{1},
   502  				outputMults: []int{33, 1},
   503  			},
   504  			{
   505  				inputRange:  rangeBounds{{162, 164}},
   506  				outputRange: rangeBounds{{194, 194}, {162, 164}},
   507  				inputMults:  []int{1},
   508  				outputMults: []int{3, 1},
   509  			},
   510  			{
   511  				inputRange:  rangeBounds{{166, 167}},
   512  				outputRange: rangeBounds{{194, 194}, {166, 167}},
   513  				inputMults:  []int{1},
   514  				outputMults: []int{2, 1},
   515  			},
   516  			{
   517  				inputRange:  rangeBounds{{168, 168}},
   518  				outputRange: rangeBounds{{195, 195}, {152, 152}},
   519  				inputMults:  []int{1},
   520  				outputMults: []int{1, 1},
   521  			},
   522  			{
   523  				inputRange:  rangeBounds{{169, 169}},
   524  				outputRange: rangeBounds{{194, 194}, {169, 169}},
   525  				inputMults:  []int{1},
   526  				outputMults: []int{1, 1},
   527  			},
   528  			{
   529  				inputRange:  rangeBounds{{170, 170}},
   530  				outputRange: rangeBounds{{197, 197}, {150, 150}},
   531  				inputMults:  []int{1},
   532  				outputMults: []int{1, 1},
   533  			},
   534  			{
   535  				inputRange:  rangeBounds{{171, 174}},
   536  				outputRange: rangeBounds{{194, 194}, {171, 174}},
   537  				inputMults:  []int{1},
   538  				outputMults: []int{4, 1},
   539  			},
   540  			{
   541  				inputRange:  rangeBounds{{175, 175}},
   542  				outputRange: rangeBounds{{195, 195}, {134, 134}},
   543  				inputMults:  []int{1},
   544  				outputMults: []int{1, 1},
   545  			},
   546  			{
   547  				inputRange:  rangeBounds{{176, 179}},
   548  				outputRange: rangeBounds{{194, 194}, {176, 179}},
   549  				inputMults:  []int{1},
   550  				outputMults: []int{4, 1},
   551  			},
   552  			{
   553  				inputRange:  rangeBounds{{181, 183}},
   554  				outputRange: rangeBounds{{194, 194}, {181, 183}},
   555  				inputMults:  []int{1},
   556  				outputMults: []int{3, 1},
   557  			},
   558  			{
   559  				inputRange:  rangeBounds{{184, 184}},
   560  				outputRange: rangeBounds{{195, 195}, {184, 184}},
   561  				inputMults:  []int{1},
   562  				outputMults: []int{1, 1},
   563  			},
   564  			{
   565  				inputRange:  rangeBounds{{185, 185}},
   566  				outputRange: rangeBounds{{194, 194}, {185, 185}},
   567  				inputMults:  []int{1},
   568  				outputMults: []int{1, 1},
   569  			},
   570  			{
   571  				inputRange:  rangeBounds{{186, 186}},
   572  				outputRange: rangeBounds{{197, 197}, {151, 151}},
   573  				inputMults:  []int{1},
   574  				outputMults: []int{1, 1},
   575  			},
   576  			{
   577  				inputRange:  rangeBounds{{187, 190}},
   578  				outputRange: rangeBounds{{194, 194}, {187, 190}},
   579  				inputMults:  []int{1},
   580  				outputMults: []int{4, 1},
   581  			},
   582  			{
   583  				inputRange:  rangeBounds{{191, 191}},
   584  				outputRange: rangeBounds{{195, 195}, {166, 166}},
   585  				inputMults:  []int{1},
   586  				outputMults: []int{1, 1},
   587  			},
   588  			{
   589  				inputRange:  rangeBounds{{192, 192}},
   590  				outputRange: rangeBounds{{196, 196}, {132, 132}},
   591  				inputMults:  []int{1},
   592  				outputMults: []int{1, 1},
   593  			},
   594  			{
   595  				inputRange:  rangeBounds{{193, 193}},
   596  				outputRange: rangeBounds{{196, 196}, {174, 174}},
   597  				inputMults:  []int{1},
   598  				outputMults: []int{1, 1},
   599  			},
   600  			{
   601  				inputRange:  rangeBounds{{194, 194}},
   602  				outputRange: rangeBounds{{196, 196}, {128, 128}},
   603  				inputMults:  []int{1},
   604  				outputMults: []int{1, 1},
   605  			},
   606  			{
   607  				inputRange:  rangeBounds{{195, 195}},
   608  				outputRange: rangeBounds{{196, 196}, {134, 134}},
   609  				inputMults:  []int{1},
   610  				outputMults: []int{1, 1},
   611  			},
   612  			{
   613  				inputRange:  rangeBounds{{196, 197}},
   614  				outputRange: rangeBounds{{195, 195}, {132, 133}},
   615  				inputMults:  []int{1},
   616  				outputMults: []int{2, 1},
   617  			},
   618  			{
   619  				inputRange:  rangeBounds{{198, 198}},
   620  				outputRange: rangeBounds{{196, 196}, {152, 152}},
   621  				inputMults:  []int{1},
   622  				outputMults: []int{1, 1},
   623  			},
   624  			{
   625  				inputRange:  rangeBounds{{199, 199}},
   626  				outputRange: rangeBounds{{196, 196}, {146, 146}},
   627  				inputMults:  []int{1},
   628  				outputMults: []int{1, 1},
   629  			},
   630  			{
   631  				inputRange:  rangeBounds{{200, 200}},
   632  				outputRange: rangeBounds{{196, 196}, {140, 140}},
   633  				inputMults:  []int{1},
   634  				outputMults: []int{1, 1},
   635  			},
   636  			{
   637  				inputRange:  rangeBounds{{201, 201}},
   638  				outputRange: rangeBounds{{195, 195}, {137, 137}},
   639  				inputMults:  []int{1},
   640  				outputMults: []int{1, 1},
   641  			},
   642  			{
   643  				inputRange:  rangeBounds{{202, 202}},
   644  				outputRange: rangeBounds{{197, 197}, {185, 185}},
   645  				inputMults:  []int{1},
   646  				outputMults: []int{1, 1},
   647  			},
   648  			{
   649  				inputRange:  rangeBounds{{203, 203}},
   650  				outputRange: rangeBounds{{196, 196}, {150, 150}},
   651  				inputMults:  []int{1},
   652  				outputMults: []int{1, 1},
   653  			},
   654  			{
   655  				inputRange:  rangeBounds{{204, 204}},
   656  				outputRange: rangeBounds{{196, 196}, {162, 162}},
   657  				inputMults:  []int{1},
   658  				outputMults: []int{1, 1},
   659  			},
   660  			{
   661  				inputRange:  rangeBounds{{205, 205}},
   662  				outputRange: rangeBounds{{196, 196}, {182, 182}},
   663  				inputMults:  []int{1},
   664  				outputMults: []int{1, 1},
   665  			},
   666  			{
   667  				inputRange:  rangeBounds{{206, 206}},
   668  				outputRange: rangeBounds{{196, 196}, {170, 170}},
   669  				inputMults:  []int{1},
   670  				outputMults: []int{1, 1},
   671  			},
   672  			{
   673  				inputRange:  rangeBounds{{207, 207}},
   674  				outputRange: rangeBounds{{196, 196}, {187, 187}},
   675  				inputMults:  []int{1},
   676  				outputMults: []int{1, 1},
   677  			},
   678  			{
   679  				inputRange:  rangeBounds{{208, 208}},
   680  				outputRange: rangeBounds{{197, 197}, {160, 160}},
   681  				inputMults:  []int{1},
   682  				outputMults: []int{1, 1},
   683  			},
   684  			{
   685  				inputRange:  rangeBounds{{209, 209}},
   686  				outputRange: rangeBounds{{197, 197}, {131, 131}},
   687  				inputMults:  []int{1},
   688  				outputMults: []int{1, 1},
   689  			},
   690  			{
   691  				inputRange:  rangeBounds{{210, 210}},
   692  				outputRange: rangeBounds{{197, 197}, {133, 133}},
   693  				inputMults:  []int{1},
   694  				outputMults: []int{1, 1},
   695  			},
   696  			{
   697  				inputRange:  rangeBounds{{211, 211}},
   698  				outputRange: rangeBounds{{195, 195}, {147, 147}},
   699  				inputMults:  []int{1},
   700  				outputMults: []int{1, 1},
   701  			},
   702  			{
   703  				inputRange:  rangeBounds{{212, 212}},
   704  				outputRange: rangeBounds{{197, 197}, {140, 140}},
   705  				inputMults:  []int{1},
   706  				outputMults: []int{1, 1},
   707  			},
   708  			{
   709  				inputRange:  rangeBounds{{213, 215}},
   710  				outputRange: rangeBounds{{195, 195}, {149, 151}},
   711  				inputMults:  []int{1},
   712  				outputMults: []int{3, 1},
   713  			},
   714  			{
   715  				inputRange:  rangeBounds{{216, 216}},
   716  				outputRange: rangeBounds{{197, 197}, {178, 178}},
   717  				inputMults:  []int{1},
   718  				outputMults: []int{1, 1},
   719  			},
   720  			{
   721  				inputRange:  rangeBounds{{217, 217}},
   722  				outputRange: rangeBounds{{197, 197}, {129, 129}},
   723  				inputMults:  []int{1},
   724  				outputMults: []int{1, 1},
   725  			},
   726  			{
   727  				inputRange:  rangeBounds{{218, 218}},
   728  				outputRange: rangeBounds{{197, 197}, {154, 154}},
   729  				inputMults:  []int{1},
   730  				outputMults: []int{1, 1},
   731  			},
   732  			{
   733  				inputRange:  rangeBounds{{219, 219}},
   734  				outputRange: rangeBounds{{197, 197}, {170, 170}},
   735  				inputMults:  []int{1},
   736  				outputMults: []int{1, 1},
   737  			},
   738  			{
   739  				inputRange:  rangeBounds{{220, 220}},
   740  				outputRange: rangeBounds{{195, 195}, {156, 156}},
   741  				inputMults:  []int{1},
   742  				outputMults: []int{1, 1},
   743  			},
   744  			{
   745  				inputRange:  rangeBounds{{221, 221}},
   746  				outputRange: rangeBounds{{197, 197}, {187, 187}},
   747  				inputMults:  []int{1},
   748  				outputMults: []int{1, 1},
   749  			},
   750  			{
   751  				inputRange:  rangeBounds{{222, 222}},
   752  				outputRange: rangeBounds{{197, 197}, {189, 189}},
   753  				inputMults:  []int{1},
   754  				outputMults: []int{1, 1},
   755  			},
   756  			{
   757  				inputRange:  rangeBounds{{223, 223}},
   758  				outputRange: rangeBounds{{195, 195}, {159, 159}},
   759  				inputMults:  []int{1},
   760  				outputMults: []int{1, 1},
   761  			},
   762  			{
   763  				inputRange:  rangeBounds{{224, 224}},
   764  				outputRange: rangeBounds{{196, 196}, {133, 133}},
   765  				inputMults:  []int{1},
   766  				outputMults: []int{1, 1},
   767  			},
   768  			{
   769  				inputRange:  rangeBounds{{225, 225}},
   770  				outputRange: rangeBounds{{196, 196}, {175, 175}},
   771  				inputMults:  []int{1},
   772  				outputMults: []int{1, 1},
   773  			},
   774  			{
   775  				inputRange:  rangeBounds{{226, 226}},
   776  				outputRange: rangeBounds{{196, 196}, {129, 129}},
   777  				inputMults:  []int{1},
   778  				outputMults: []int{1, 1},
   779  			},
   780  			{
   781  				inputRange:  rangeBounds{{227, 227}},
   782  				outputRange: rangeBounds{{196, 196}, {135, 135}},
   783  				inputMults:  []int{1},
   784  				outputMults: []int{1, 1},
   785  			},
   786  			{
   787  				inputRange:  rangeBounds{{228, 229}},
   788  				outputRange: rangeBounds{{195, 195}, {164, 165}},
   789  				inputMults:  []int{1},
   790  				outputMults: []int{2, 1},
   791  			},
   792  			{
   793  				inputRange:  rangeBounds{{230, 230}},
   794  				outputRange: rangeBounds{{196, 196}, {153, 153}},
   795  				inputMults:  []int{1},
   796  				outputMults: []int{1, 1},
   797  			},
   798  			{
   799  				inputRange:  rangeBounds{{231, 231}},
   800  				outputRange: rangeBounds{{196, 196}, {147, 147}},
   801  				inputMults:  []int{1},
   802  				outputMults: []int{1, 1},
   803  			},
   804  			{
   805  				inputRange:  rangeBounds{{232, 232}},
   806  				outputRange: rangeBounds{{196, 196}, {141, 141}},
   807  				inputMults:  []int{1},
   808  				outputMults: []int{1, 1},
   809  			},
   810  			{
   811  				inputRange:  rangeBounds{{233, 233}},
   812  				outputRange: rangeBounds{{195, 195}, {169, 169}},
   813  				inputMults:  []int{1},
   814  				outputMults: []int{1, 1},
   815  			},
   816  			{
   817  				inputRange:  rangeBounds{{234, 234}},
   818  				outputRange: rangeBounds{{197, 197}, {186, 186}},
   819  				inputMults:  []int{1},
   820  				outputMults: []int{1, 1},
   821  			},
   822  			{
   823  				inputRange:  rangeBounds{{235, 235}},
   824  				outputRange: rangeBounds{{196, 196}, {151, 151}},
   825  				inputMults:  []int{1},
   826  				outputMults: []int{1, 1},
   827  			},
   828  			{
   829  				inputRange:  rangeBounds{{236, 236}},
   830  				outputRange: rangeBounds{{196, 196}, {163, 163}},
   831  				inputMults:  []int{1},
   832  				outputMults: []int{1, 1},
   833  			},
   834  			{
   835  				inputRange:  rangeBounds{{237, 237}},
   836  				outputRange: rangeBounds{{196, 196}, {183, 183}},
   837  				inputMults:  []int{1},
   838  				outputMults: []int{1, 1},
   839  			},
   840  			{
   841  				inputRange:  rangeBounds{{238, 238}},
   842  				outputRange: rangeBounds{{196, 196}, {171, 171}},
   843  				inputMults:  []int{1},
   844  				outputMults: []int{1, 1},
   845  			},
   846  			{
   847  				inputRange:  rangeBounds{{239, 239}},
   848  				outputRange: rangeBounds{{196, 196}, {188, 188}},
   849  				inputMults:  []int{1},
   850  				outputMults: []int{1, 1},
   851  			},
   852  			{
   853  				inputRange:  rangeBounds{{240, 240}},
   854  				outputRange: rangeBounds{{197, 197}, {161, 161}},
   855  				inputMults:  []int{1},
   856  				outputMults: []int{1, 1},
   857  			},
   858  			{
   859  				inputRange:  rangeBounds{{241, 241}},
   860  				outputRange: rangeBounds{{197, 197}, {132, 132}},
   861  				inputMults:  []int{1},
   862  				outputMults: []int{1, 1},
   863  			},
   864  			{
   865  				inputRange:  rangeBounds{{242, 242}},
   866  				outputRange: rangeBounds{{197, 197}, {134, 134}},
   867  				inputMults:  []int{1},
   868  				outputMults: []int{1, 1},
   869  			},
   870  			{
   871  				inputRange:  rangeBounds{{243, 243}},
   872  				outputRange: rangeBounds{{195, 195}, {179, 179}},
   873  				inputMults:  []int{1},
   874  				outputMults: []int{1, 1},
   875  			},
   876  			{
   877  				inputRange:  rangeBounds{{244, 244}},
   878  				outputRange: rangeBounds{{197, 197}, {141, 141}},
   879  				inputMults:  []int{1},
   880  				outputMults: []int{1, 1},
   881  			},
   882  			{
   883  				inputRange:  rangeBounds{{245, 247}},
   884  				outputRange: rangeBounds{{195, 195}, {181, 183}},
   885  				inputMults:  []int{1},
   886  				outputMults: []int{3, 1},
   887  			},
   888  			{
   889  				inputRange:  rangeBounds{{248, 248}},
   890  				outputRange: rangeBounds{{197, 197}, {179, 179}},
   891  				inputMults:  []int{1},
   892  				outputMults: []int{1, 1},
   893  			},
   894  			{
   895  				inputRange:  rangeBounds{{249, 249}},
   896  				outputRange: rangeBounds{{197, 197}, {130, 130}},
   897  				inputMults:  []int{1},
   898  				outputMults: []int{1, 1},
   899  			},
   900  			{
   901  				inputRange:  rangeBounds{{250, 250}},
   902  				outputRange: rangeBounds{{197, 197}, {155, 155}},
   903  				inputMults:  []int{1},
   904  				outputMults: []int{1, 1},
   905  			},
   906  			{
   907  				inputRange:  rangeBounds{{251, 251}},
   908  				outputRange: rangeBounds{{197, 197}, {171, 171}},
   909  				inputMults:  []int{1},
   910  				outputMults: []int{1, 1},
   911  			},
   912  			{
   913  				inputRange:  rangeBounds{{252, 252}},
   914  				outputRange: rangeBounds{{195, 195}, {188, 188}},
   915  				inputMults:  []int{1},
   916  				outputMults: []int{1, 1},
   917  			},
   918  			{
   919  				inputRange:  rangeBounds{{253, 253}},
   920  				outputRange: rangeBounds{{197, 197}, {188, 188}},
   921  				inputMults:  []int{1},
   922  				outputMults: []int{1, 1},
   923  			},
   924  			{
   925  				inputRange:  rangeBounds{{254, 254}},
   926  				outputRange: rangeBounds{{197, 197}, {190, 190}},
   927  				inputMults:  []int{1},
   928  				outputMults: []int{1, 1},
   929  			},
   930  		},
   931  		{
   932  			{
   933  				inputRange:  rangeBounds{{161, 161}},
   934  				outputRange: rangeBounds{{226, 226}, {128, 128}, {157, 157}},
   935  				inputMults:  []int{1},
   936  				outputMults: []int{1, 1, 1},
   937  			},
   938  			{
   939  				inputRange:  rangeBounds{{165, 165}},
   940  				outputRange: rangeBounds{{226, 226}, {128, 128}, {158, 158}},
   941  				inputMults:  []int{1},
   942  				outputMults: []int{1, 1, 1},
   943  			},
   944  			{
   945  				inputRange:  rangeBounds{{180, 180}},
   946  				outputRange: rangeBounds{{226, 226}, {128, 128}, {156, 156}},
   947  				inputMults:  []int{1},
   948  				outputMults: []int{1, 1, 1},
   949  			},
   950  			{
   951  				inputRange:  rangeBounds{{255, 255}},
   952  				outputRange: rangeBounds{{226, 226}, {128, 128}, {153, 153}},
   953  				inputMults:  []int{1},
   954  				outputMults: []int{1, 1, 1},
   955  			},
   956  		},
   957  		nil,
   958  	},
   959  	toUpper: map[rune]rune{
   960  		97:  65,
   961  		98:  66,
   962  		99:  67,
   963  		100: 68,
   964  		101: 69,
   965  		102: 70,
   966  		103: 71,
   967  		104: 72,
   968  		105: 73,
   969  		106: 74,
   970  		107: 75,
   971  		108: 76,
   972  		109: 77,
   973  		110: 78,
   974  		111: 79,
   975  		112: 80,
   976  		113: 81,
   977  		114: 82,
   978  		115: 83,
   979  		116: 84,
   980  		117: 85,
   981  		118: 86,
   982  		119: 87,
   983  		120: 88,
   984  		121: 89,
   985  		122: 90,
   986  		228: 196,
   987  		229: 197,
   988  		230: 198,
   989  		233: 201,
   990  		243: 211,
   991  		245: 213,
   992  		246: 214,
   993  		248: 216,
   994  		252: 220,
   995  		257: 256,
   996  		261: 260,
   997  		263: 262,
   998  		269: 268,
   999  		275: 274,
  1000  		279: 278,
  1001  		281: 280,
  1002  		291: 290,
  1003  		299: 298,
  1004  		303: 302,
  1005  		311: 310,
  1006  		316: 315,
  1007  		322: 321,
  1008  		324: 323,
  1009  		326: 325,
  1010  		333: 332,
  1011  		343: 342,
  1012  		347: 346,
  1013  		353: 352,
  1014  		363: 362,
  1015  		371: 370,
  1016  		378: 377,
  1017  		380: 379,
  1018  		382: 381,
  1019  	},
  1020  	toLower: map[rune]rune{
  1021  		65:  97,
  1022  		66:  98,
  1023  		67:  99,
  1024  		68:  100,
  1025  		69:  101,
  1026  		70:  102,
  1027  		71:  103,
  1028  		72:  104,
  1029  		73:  105,
  1030  		74:  106,
  1031  		75:  107,
  1032  		76:  108,
  1033  		77:  109,
  1034  		78:  110,
  1035  		79:  111,
  1036  		80:  112,
  1037  		81:  113,
  1038  		82:  114,
  1039  		83:  115,
  1040  		84:  116,
  1041  		85:  117,
  1042  		86:  118,
  1043  		87:  119,
  1044  		88:  120,
  1045  		89:  121,
  1046  		90:  122,
  1047  		196: 228,
  1048  		197: 229,
  1049  		198: 230,
  1050  		201: 233,
  1051  		211: 243,
  1052  		213: 245,
  1053  		214: 246,
  1054  		216: 248,
  1055  		220: 252,
  1056  		256: 257,
  1057  		260: 261,
  1058  		262: 263,
  1059  		268: 269,
  1060  		274: 275,
  1061  		278: 279,
  1062  		280: 281,
  1063  		290: 291,
  1064  		298: 299,
  1065  		302: 303,
  1066  		310: 311,
  1067  		315: 316,
  1068  		321: 322,
  1069  		323: 324,
  1070  		325: 326,
  1071  		332: 333,
  1072  		342: 343,
  1073  		346: 347,
  1074  		352: 353,
  1075  		362: 363,
  1076  		370: 371,
  1077  		377: 378,
  1078  		379: 380,
  1079  		381: 382,
  1080  	},
  1081  }