Skip to main content

GetRecompositionFromCodePoints

Short summary

This function looks for a recomposition of two given code points. If no recomposition is possible, the method returns FALSE. This method finds only canonical recompositions used for NFC normalization. It does not provide compatible recompositions used for NFKC form.

  • Return type: BOOL

Parameters

NameTypeCommentKind
codePointBasePOINTER TO UnicodeCodePointbase codepoint (starter) ), // base codepoint, , ( combining codepointinput
codePointCombPOINTER TO UnicodeCodePointbase codepoint// combination mark codepoint, , // combination mark codepointinput
resultUnicodeCodePointcomposed codepointoutput

Code

Declaration

FUNCTION INTERNAL GetRecompositionFromCodePoints : BOOL
VAR_INPUT
(* base codepoint (starter) *)
codePointBase: POINTER TO UnicodeCodePoint; // base codepoint
(* combining codepoint *)
codePointComb: POINTER TO UnicodeCodePoint; // combination mark codepoint
END_VAR
VAR_OUTPUT
(* composed codepoint *)
result: UnicodeCodePoint;
END_VAR

Implementation

result := 16#00; // control sign, cannot be a recomposed code point
CASE codePointBase^ OF
16#41:
CASE codePointComb^ OF
16#300:
result := 16#C0;
16#301:
result := 16#C1;
16#302:
result := 16#C2;
16#303:
result := 16#C3;
16#308:
result := 16#C4;
16#30A:
result := 16#C5;
16#304:
result := 16#100;
16#306:
result := 16#102;
16#328:
result := 16#104;
16#30C:
result := 16#1CD;
16#30F:
result := 16#200;
16#311:
result := 16#202;
16#307:
result := 16#226;
16#325:
result := 16#1E00;
16#323:
result := 16#1EA0;
16#309:
result := 16#1EA2;
END_CASE
16#43:
CASE codePointComb^ OF
16#327:
result := 16#C7;
16#301:
result := 16#106;
16#302:
result := 16#108;
16#307:
result := 16#10A;
16#30C:
result := 16#10C;
END_CASE
16#45:
CASE codePointComb^ OF
16#300:
result := 16#C8;
16#301:
result := 16#C9;
16#302:
result := 16#CA;
16#308:
result := 16#CB;
16#304:
result := 16#112;
16#306:
result := 16#114;
16#307:
result := 16#116;
16#328:
result := 16#118;
16#30C:
result := 16#11A;
16#30F:
result := 16#204;
16#311:
result := 16#206;
16#327:
result := 16#228;
16#32D:
result := 16#1E18;
16#330:
result := 16#1E1A;
16#323:
result := 16#1EB8;
16#309:
result := 16#1EBA;
16#303:
result := 16#1EBC;
END_CASE
16#49:
CASE codePointComb^ OF
16#300:
result := 16#CC;
16#301:
result := 16#CD;
16#302:
result := 16#CE;
16#308:
result := 16#CF;
16#303:
result := 16#128;
16#304:
result := 16#12A;
16#306:
result := 16#12C;
16#328:
result := 16#12E;
16#307:
result := 16#130;
16#30C:
result := 16#1CF;
16#30F:
result := 16#208;
16#311:
result := 16#20A;
16#330:
result := 16#1E2C;
16#309:
result := 16#1EC8;
16#323:
result := 16#1ECA;
END_CASE
16#4E:
CASE codePointComb^ OF
16#303:
result := 16#D1;
16#301:
result := 16#143;
16#327:
result := 16#145;
16#30C:
result := 16#147;
16#300:
result := 16#1F8;
16#307:
result := 16#1E44;
16#323:
result := 16#1E46;
16#331:
result := 16#1E48;
16#32D:
result := 16#1E4A;
END_CASE
16#4F:
CASE codePointComb^ OF
16#300:
result := 16#D2;
16#301:
result := 16#D3;
16#302:
result := 16#D4;
16#303:
result := 16#D5;
16#308:
result := 16#D6;
16#304:
result := 16#14C;
16#306:
result := 16#14E;
16#30B:
result := 16#150;
16#31B:
result := 16#1A0;
16#30C:
result := 16#1D1;
16#328:
result := 16#1EA;
16#30F:
result := 16#20C;
16#311:
result := 16#20E;
16#307:
result := 16#22E;
16#323:
result := 16#1ECC;
16#309:
result := 16#1ECE;
END_CASE
16#55:
CASE codePointComb^ OF
16#300:
result := 16#D9;
16#301:
result := 16#DA;
16#302:
result := 16#DB;
16#308:
result := 16#DC;
16#303:
result := 16#168;
16#304:
result := 16#16A;
16#306:
result := 16#16C;
16#30A:
result := 16#16E;
16#30B:
result := 16#170;
16#328:
result := 16#172;
16#31B:
result := 16#1AF;
16#30C:
result := 16#1D3;
16#30F:
result := 16#214;
16#311:
result := 16#216;
16#324:
result := 16#1E72;
16#330:
result := 16#1E74;
16#32D:
result := 16#1E76;
16#323:
result := 16#1EE4;
16#309:
result := 16#1EE6;
END_CASE
16#59:
CASE codePointComb^ OF
16#301:
result := 16#DD;
16#302:
result := 16#176;
16#308:
result := 16#178;
16#304:
result := 16#232;
16#307:
result := 16#1E8E;
16#300:
result := 16#1EF2;
16#323:
result := 16#1EF4;
16#309:
result := 16#1EF6;
16#303:
result := 16#1EF8;
END_CASE
16#61:
CASE codePointComb^ OF
16#300:
result := 16#E0;
16#301:
result := 16#E1;
16#302:
result := 16#E2;
16#303:
result := 16#E3;
16#308:
result := 16#E4;
16#30A:
result := 16#E5;
16#304:
result := 16#101;
16#306:
result := 16#103;
16#328:
result := 16#105;
16#30C:
result := 16#1CE;
16#30F:
result := 16#201;
16#311:
result := 16#203;
16#307:
result := 16#227;
16#325:
result := 16#1E01;
16#323:
result := 16#1EA1;
16#309:
result := 16#1EA3;
END_CASE
16#63:
CASE codePointComb^ OF
16#327:
result := 16#E7;
16#301:
result := 16#107;
16#302:
result := 16#109;
16#307:
result := 16#10B;
16#30C:
result := 16#10D;
END_CASE
16#65:
CASE codePointComb^ OF
16#300:
result := 16#E8;
16#301:
result := 16#E9;
16#302:
result := 16#EA;
16#308:
result := 16#EB;
16#304:
result := 16#113;
16#306:
result := 16#115;
16#307:
result := 16#117;
16#328:
result := 16#119;
16#30C:
result := 16#11B;
16#30F:
result := 16#205;
16#311:
result := 16#207;
16#327:
result := 16#229;
16#32D:
result := 16#1E19;
16#330:
result := 16#1E1B;
16#323:
result := 16#1EB9;
16#309:
result := 16#1EBB;
16#303:
result := 16#1EBD;
END_CASE
16#69:
CASE codePointComb^ OF
16#300:
result := 16#EC;
16#301:
result := 16#ED;
16#302:
result := 16#EE;
16#308:
result := 16#EF;
16#303:
result := 16#129;
16#304:
result := 16#12B;
16#306:
result := 16#12D;
16#328:
result := 16#12F;
16#30C:
result := 16#1D0;
16#30F:
result := 16#209;
16#311:
result := 16#20B;
16#330:
result := 16#1E2D;
16#309:
result := 16#1EC9;
16#323:
result := 16#1ECB;
END_CASE
16#6E:
CASE codePointComb^ OF
16#303:
result := 16#F1;
16#301:
result := 16#144;
16#327:
result := 16#146;
16#30C:
result := 16#148;
16#300:
result := 16#1F9;
16#307:
result := 16#1E45;
16#323:
result := 16#1E47;
16#331:
result := 16#1E49;
16#32D:
result := 16#1E4B;
END_CASE
16#6F:
CASE codePointComb^ OF
16#300:
result := 16#F2;
16#301:
result := 16#F3;
16#302:
result := 16#F4;
16#303:
result := 16#F5;
16#308:
result := 16#F6;
16#304:
result := 16#14D;
16#306:
result := 16#14F;
16#30B:
result := 16#151;
16#31B:
result := 16#1A1;
16#30C:
result := 16#1D2;
16#328:
result := 16#1EB;
16#30F:
result := 16#20D;
16#311:
result := 16#20F;
16#307:
result := 16#22F;
16#323:
result := 16#1ECD;
16#309:
result := 16#1ECF;
END_CASE
16#75:
CASE codePointComb^ OF
16#300:
result := 16#F9;
16#301:
result := 16#FA;
16#302:
result := 16#FB;
16#308:
result := 16#FC;
16#303:
result := 16#169;
16#304:
result := 16#16B;
16#306:
result := 16#16D;
16#30A:
result := 16#16F;
16#30B:
result := 16#171;
16#328:
result := 16#173;
16#31B:
result := 16#1B0;
16#30C:
result := 16#1D4;
16#30F:
result := 16#215;
16#311:
result := 16#217;
16#324:
result := 16#1E73;
16#330:
result := 16#1E75;
16#32D:
result := 16#1E77;
16#323:
result := 16#1EE5;
16#309:
result := 16#1EE7;
END_CASE
16#79:
CASE codePointComb^ OF
16#301:
result := 16#FD;
16#308:
result := 16#FF;
16#302:
result := 16#177;
16#304:
result := 16#233;
16#307:
result := 16#1E8F;
16#30A:
result := 16#1E99;
16#300:
result := 16#1EF3;
16#323:
result := 16#1EF5;
16#309:
result := 16#1EF7;
16#303:
result := 16#1EF9;
END_CASE
16#44:
CASE codePointComb^ OF
16#30C:
result := 16#10E;
16#307:
result := 16#1E0A;
16#323:
result := 16#1E0C;
16#331:
result := 16#1E0E;
16#327:
result := 16#1E10;
16#32D:
result := 16#1E12;
END_CASE
16#64:
CASE codePointComb^ OF
16#30C:
result := 16#10F;
16#307:
result := 16#1E0B;
16#323:
result := 16#1E0D;
16#331:
result := 16#1E0F;
16#327:
result := 16#1E11;
16#32D:
result := 16#1E13;
END_CASE
16#47:
CASE codePointComb^ OF
16#302:
result := 16#11C;
16#306:
result := 16#11E;
16#307:
result := 16#120;
16#327:
result := 16#122;
16#30C:
result := 16#1E6;
16#301:
result := 16#1F4;
16#304:
result := 16#1E20;
END_CASE
16#67:
CASE codePointComb^ OF
16#302:
result := 16#11D;
16#306:
result := 16#11F;
16#307:
result := 16#121;
16#327:
result := 16#123;
16#30C:
result := 16#1E7;
16#301:
result := 16#1F5;
16#304:
result := 16#1E21;
END_CASE
16#48:
CASE codePointComb^ OF
16#302:
result := 16#124;
16#30C:
result := 16#21E;
16#307:
result := 16#1E22;
16#323:
result := 16#1E24;
16#308:
result := 16#1E26;
16#327:
result := 16#1E28;
16#32E:
result := 16#1E2A;
END_CASE
16#68:
CASE codePointComb^ OF
16#302:
result := 16#125;
16#30C:
result := 16#21F;
16#307:
result := 16#1E23;
16#323:
result := 16#1E25;
16#308:
result := 16#1E27;
16#327:
result := 16#1E29;
16#32E:
result := 16#1E2B;
16#331:
result := 16#1E96;
END_CASE
16#4A:
CASE codePointComb^ OF
16#302:
result := 16#134;
END_CASE
16#6A:
CASE codePointComb^ OF
16#302:
result := 16#135;
16#30C:
result := 16#1F0;
END_CASE
16#4B:
CASE codePointComb^ OF
16#327:
result := 16#136;
16#30C:
result := 16#1E8;
16#301:
result := 16#1E30;
16#323:
result := 16#1E32;
16#331:
result := 16#1E34;
END_CASE
16#6B:
CASE codePointComb^ OF
16#327:
result := 16#137;
16#30C:
result := 16#1E9;
16#301:
result := 16#1E31;
16#323:
result := 16#1E33;
16#331:
result := 16#1E35;
END_CASE
16#4C:
CASE codePointComb^ OF
16#301:
result := 16#139;
16#327:
result := 16#13B;
16#30C:
result := 16#13D;
16#323:
result := 16#1E36;
16#331:
result := 16#1E3A;
16#32D:
result := 16#1E3C;
END_CASE
16#6C:
CASE codePointComb^ OF
16#301:
result := 16#13A;
16#327:
result := 16#13C;
16#30C:
result := 16#13E;
16#323:
result := 16#1E37;
16#331:
result := 16#1E3B;
16#32D:
result := 16#1E3D;
END_CASE
16#52:
CASE codePointComb^ OF
16#301:
result := 16#154;
16#327:
result := 16#156;
16#30C:
result := 16#158;
16#30F:
result := 16#210;
16#311:
result := 16#212;
16#307:
result := 16#1E58;
16#323:
result := 16#1E5A;
16#331:
result := 16#1E5E;
END_CASE
16#72:
CASE codePointComb^ OF
16#301:
result := 16#155;
16#327:
result := 16#157;
16#30C:
result := 16#159;
16#30F:
result := 16#211;
16#311:
result := 16#213;
16#307:
result := 16#1E59;
16#323:
result := 16#1E5B;
16#331:
result := 16#1E5F;
END_CASE
16#53:
CASE codePointComb^ OF
16#301:
result := 16#15A;
16#302:
result := 16#15C;
16#327:
result := 16#15E;
16#30C:
result := 16#160;
16#326:
result := 16#218;
16#307:
result := 16#1E60;
16#323:
result := 16#1E62;
END_CASE
16#73:
CASE codePointComb^ OF
16#301:
result := 16#15B;
16#302:
result := 16#15D;
16#327:
result := 16#15F;
16#30C:
result := 16#161;
16#326:
result := 16#219;
16#307:
result := 16#1E61;
16#323:
result := 16#1E63;
END_CASE
16#54:
CASE codePointComb^ OF
16#327:
result := 16#162;
16#30C:
result := 16#164;
16#326:
result := 16#21A;
16#307:
result := 16#1E6A;
16#323:
result := 16#1E6C;
16#331:
result := 16#1E6E;
16#32D:
result := 16#1E70;
END_CASE
16#74:
CASE codePointComb^ OF
16#327:
result := 16#163;
16#30C:
result := 16#165;
16#326:
result := 16#21B;
16#307:
result := 16#1E6B;
16#323:
result := 16#1E6D;
16#331:
result := 16#1E6F;
16#32D:
result := 16#1E71;
16#308:
result := 16#1E97;
END_CASE
16#57:
CASE codePointComb^ OF
16#302:
result := 16#174;
16#300:
result := 16#1E80;
16#301:
result := 16#1E82;
16#308:
result := 16#1E84;
16#307:
result := 16#1E86;
16#323:
result := 16#1E88;
END_CASE
16#77:
CASE codePointComb^ OF
16#302:
result := 16#175;
16#300:
result := 16#1E81;
16#301:
result := 16#1E83;
16#308:
result := 16#1E85;
16#307:
result := 16#1E87;
16#323:
result := 16#1E89;
16#30A:
result := 16#1E98;
END_CASE
16#5A:
CASE codePointComb^ OF
16#301:
result := 16#179;
16#307:
result := 16#17B;
16#30C:
result := 16#17D;
16#302:
result := 16#1E90;
16#323:
result := 16#1E92;
16#331:
result := 16#1E94;
END_CASE
16#7A:
CASE codePointComb^ OF
16#301:
result := 16#17A;
16#307:
result := 16#17C;
16#30C:
result := 16#17E;
16#302:
result := 16#1E91;
16#323:
result := 16#1E93;
16#331:
result := 16#1E95;
END_CASE
16#DC:
CASE codePointComb^ OF
16#304:
result := 16#1D5;
16#301:
result := 16#1D7;
16#30C:
result := 16#1D9;
16#300:
result := 16#1DB;
END_CASE
16#FC:
CASE codePointComb^ OF
16#304:
result := 16#1D6;
16#301:
result := 16#1D8;
16#30C:
result := 16#1DA;
16#300:
result := 16#1DC;
END_CASE
16#C4:
CASE codePointComb^ OF
16#304:
result := 16#1DE;
END_CASE
16#E4:
CASE codePointComb^ OF
16#304:
result := 16#1DF;
END_CASE
16#226:
CASE codePointComb^ OF
16#304:
result := 16#1E0;
END_CASE
16#227:
CASE codePointComb^ OF
16#304:
result := 16#1E1;
END_CASE
16#C6:
CASE codePointComb^ OF
16#304:
result := 16#1E2;
16#301:
result := 16#1FC;
END_CASE
16#E6:
CASE codePointComb^ OF
16#304:
result := 16#1E3;
16#301:
result := 16#1FD;
END_CASE
16#1EA:
CASE codePointComb^ OF
16#304:
result := 16#1EC;
END_CASE
16#1EB:
CASE codePointComb^ OF
16#304:
result := 16#1ED;
END_CASE
16#1B7:
CASE codePointComb^ OF
16#30C:
result := 16#1EE;
END_CASE
16#292:
CASE codePointComb^ OF
16#30C:
result := 16#1EF;
END_CASE
16#C5:
CASE codePointComb^ OF
16#301:
result := 16#1FA;
END_CASE
16#E5:
CASE codePointComb^ OF
16#301:
result := 16#1FB;
END_CASE
16#D8:
CASE codePointComb^ OF
16#301:
result := 16#1FE;
END_CASE
16#F8:
CASE codePointComb^ OF
16#301:
result := 16#1FF;
END_CASE
16#D6:
CASE codePointComb^ OF
16#304:
result := 16#22A;
END_CASE
16#F6:
CASE codePointComb^ OF
16#304:
result := 16#22B;
END_CASE
16#D5:
CASE codePointComb^ OF
16#304:
result := 16#22C;
16#301:
result := 16#1E4C;
16#308:
result := 16#1E4E;
END_CASE
16#F5:
CASE codePointComb^ OF
16#304:
result := 16#22D;
16#301:
result := 16#1E4D;
16#308:
result := 16#1E4F;
END_CASE
16#22E:
CASE codePointComb^ OF
16#304:
result := 16#230;
END_CASE
16#22F:
CASE codePointComb^ OF
16#304:
result := 16#231;
END_CASE
16#308:
CASE codePointComb^ OF
16#301:
result := 16#344;
END_CASE
16#A8:
CASE codePointComb^ OF
16#301:
result := 16#385;
16#342:
result := 16#1FC1;
16#300:
result := 16#1FED;
END_CASE
16#391:
CASE codePointComb^ OF
16#301:
result := 16#386;
16#313:
result := 16#1F08;
16#314:
result := 16#1F09;
16#306:
result := 16#1FB8;
16#304:
result := 16#1FB9;
16#300:
result := 16#1FBA;
16#345:
result := 16#1FBC;
END_CASE
16#395:
CASE codePointComb^ OF
16#301:
result := 16#388;
16#313:
result := 16#1F18;
16#314:
result := 16#1F19;
16#300:
result := 16#1FC8;
END_CASE
16#397:
CASE codePointComb^ OF
16#301:
result := 16#389;
16#313:
result := 16#1F28;
16#314:
result := 16#1F29;
16#300:
result := 16#1FCA;
16#345:
result := 16#1FCC;
END_CASE
16#399:
CASE codePointComb^ OF
16#301:
result := 16#38A;
16#308:
result := 16#3AA;
16#313:
result := 16#1F38;
16#314:
result := 16#1F39;
16#306:
result := 16#1FD8;
16#304:
result := 16#1FD9;
16#300:
result := 16#1FDA;
END_CASE
16#39F:
CASE codePointComb^ OF
16#301:
result := 16#38C;
16#313:
result := 16#1F48;
16#314:
result := 16#1F49;
16#300:
result := 16#1FF8;
END_CASE
16#3A5:
CASE codePointComb^ OF
16#301:
result := 16#38E;
16#308:
result := 16#3AB;
16#314:
result := 16#1F59;
16#306:
result := 16#1FE8;
16#304:
result := 16#1FE9;
16#300:
result := 16#1FEA;
END_CASE
16#3A9:
CASE codePointComb^ OF
16#301:
result := 16#38F;
16#313:
result := 16#1F68;
16#314:
result := 16#1F69;
16#300:
result := 16#1FFA;
16#345:
result := 16#1FFC;
END_CASE
16#3CA:
CASE codePointComb^ OF
16#301:
result := 16#390;
16#300:
result := 16#1FD2;
16#342:
result := 16#1FD7;
END_CASE
16#3B1:
CASE codePointComb^ OF
16#301:
result := 16#3AC;
16#313:
result := 16#1F00;
16#314:
result := 16#1F01;
16#300:
result := 16#1F70;
16#306:
result := 16#1FB0;
16#304:
result := 16#1FB1;
16#345:
result := 16#1FB3;
16#342:
result := 16#1FB6;
END_CASE
16#3B5:
CASE codePointComb^ OF
16#301:
result := 16#3AD;
16#313:
result := 16#1F10;
16#314:
result := 16#1F11;
16#300:
result := 16#1F72;
END_CASE
16#3B7:
CASE codePointComb^ OF
16#301:
result := 16#3AE;
16#313:
result := 16#1F20;
16#314:
result := 16#1F21;
16#300:
result := 16#1F74;
16#345:
result := 16#1FC3;
16#342:
result := 16#1FC6;
END_CASE
16#3B9:
CASE codePointComb^ OF
16#301:
result := 16#3AF;
16#308:
result := 16#3CA;
16#313:
result := 16#1F30;
16#314:
result := 16#1F31;
16#300:
result := 16#1F76;
16#306:
result := 16#1FD0;
16#304:
result := 16#1FD1;
16#342:
result := 16#1FD6;
END_CASE
16#3CB:
CASE codePointComb^ OF
16#301:
result := 16#3B0;
16#300:
result := 16#1FE2;
16#342:
result := 16#1FE7;
END_CASE
16#3C5:
CASE codePointComb^ OF
16#308:
result := 16#3CB;
16#301:
result := 16#3CD;
16#313:
result := 16#1F50;
16#314:
result := 16#1F51;
16#300:
result := 16#1F7A;
16#306:
result := 16#1FE0;
16#304:
result := 16#1FE1;
16#342:
result := 16#1FE6;
END_CASE
16#3BF:
CASE codePointComb^ OF
16#301:
result := 16#3CC;
16#313:
result := 16#1F40;
16#314:
result := 16#1F41;
16#300:
result := 16#1F78;
END_CASE
16#3C9:
CASE codePointComb^ OF
16#301:
result := 16#3CE;
16#313:
result := 16#1F60;
16#314:
result := 16#1F61;
16#300:
result := 16#1F7C;
16#345:
result := 16#1FF3;
16#342:
result := 16#1FF6;
END_CASE
16#3D2:
CASE codePointComb^ OF
16#301:
result := 16#3D3;
16#308:
result := 16#3D4;
END_CASE
16#415:
CASE codePointComb^ OF
16#300:
result := 16#400;
16#308:
result := 16#401;
16#306:
result := 16#4D6;
END_CASE
16#413:
CASE codePointComb^ OF
16#301:
result := 16#403;
END_CASE
16#406:
CASE codePointComb^ OF
16#308:
result := 16#407;
END_CASE
16#41A:
CASE codePointComb^ OF
16#301:
result := 16#40C;
END_CASE
16#418:
CASE codePointComb^ OF
16#300:
result := 16#40D;
16#306:
result := 16#419;
16#304:
result := 16#4E2;
16#308:
result := 16#4E4;
END_CASE
16#423:
CASE codePointComb^ OF
16#306:
result := 16#40E;
16#304:
result := 16#4EE;
16#308:
result := 16#4F0;
16#30B:
result := 16#4F2;
END_CASE
16#438:
CASE codePointComb^ OF
16#306:
result := 16#439;
16#300:
result := 16#45D;
16#304:
result := 16#4E3;
16#308:
result := 16#4E5;
END_CASE
16#435:
CASE codePointComb^ OF
16#300:
result := 16#450;
16#308:
result := 16#451;
16#306:
result := 16#4D7;
END_CASE
16#433:
CASE codePointComb^ OF
16#301:
result := 16#453;
END_CASE
16#456:
CASE codePointComb^ OF
16#308:
result := 16#457;
END_CASE
16#43A:
CASE codePointComb^ OF
16#301:
result := 16#45C;
END_CASE
16#443:
CASE codePointComb^ OF
16#306:
result := 16#45E;
16#304:
result := 16#4EF;
16#308:
result := 16#4F1;
16#30B:
result := 16#4F3;
END_CASE
16#474:
CASE codePointComb^ OF
16#30F:
result := 16#476;
END_CASE
16#475:
CASE codePointComb^ OF
16#30F:
result := 16#477;
END_CASE
16#416:
CASE codePointComb^ OF
16#306:
result := 16#4C1;
16#308:
result := 16#4DC;
END_CASE
16#436:
CASE codePointComb^ OF
16#306:
result := 16#4C2;
16#308:
result := 16#4DD;
END_CASE
16#410:
CASE codePointComb^ OF
16#306:
result := 16#4D0;
16#308:
result := 16#4D2;
END_CASE
16#430:
CASE codePointComb^ OF
16#306:
result := 16#4D1;
16#308:
result := 16#4D3;
END_CASE
16#4D8:
CASE codePointComb^ OF
16#308:
result := 16#4DA;
END_CASE
16#4D9:
CASE codePointComb^ OF
16#308:
result := 16#4DB;
END_CASE
16#417:
CASE codePointComb^ OF
16#308:
result := 16#4DE;
END_CASE
16#437:
CASE codePointComb^ OF
16#308:
result := 16#4DF;
END_CASE
16#41E:
CASE codePointComb^ OF
16#308:
result := 16#4E6;
END_CASE
16#43E:
CASE codePointComb^ OF
16#308:
result := 16#4E7;
END_CASE
16#4E8:
CASE codePointComb^ OF
16#308:
result := 16#4EA;
END_CASE
16#4E9:
CASE codePointComb^ OF
16#308:
result := 16#4EB;
END_CASE
16#42D:
CASE codePointComb^ OF
16#308:
result := 16#4EC;
END_CASE
16#44D:
CASE codePointComb^ OF
16#308:
result := 16#4ED;
END_CASE
16#427:
CASE codePointComb^ OF
16#308:
result := 16#4F4;
END_CASE
16#447:
CASE codePointComb^ OF
16#308:
result := 16#4F5;
END_CASE
16#42B:
CASE codePointComb^ OF
16#308:
result := 16#4F8;
END_CASE
16#44B:
CASE codePointComb^ OF
16#308:
result := 16#4F9;
END_CASE
16#627:
CASE codePointComb^ OF
16#653:
result := 16#622;
16#654:
result := 16#623;
16#655:
result := 16#625;
END_CASE
16#648:
CASE codePointComb^ OF
16#654:
result := 16#624;
END_CASE
16#64A:
CASE codePointComb^ OF
16#654:
result := 16#626;
END_CASE
16#6D5:
CASE codePointComb^ OF
16#654:
result := 16#6C0;
END_CASE
16#6C1:
CASE codePointComb^ OF
16#654:
result := 16#6C2;
END_CASE
16#6D2:
CASE codePointComb^ OF
16#654:
result := 16#6D3;
END_CASE
16#928:
CASE codePointComb^ OF
16#93C:
result := 16#929;
END_CASE
16#930:
CASE codePointComb^ OF
16#93C:
result := 16#931;
END_CASE
16#933:
CASE codePointComb^ OF
16#93C:
result := 16#934;
END_CASE
16#915:
CASE codePointComb^ OF
16#93C:
result := 16#958;
END_CASE
16#916:
CASE codePointComb^ OF
16#93C:
result := 16#959;
END_CASE
16#917:
CASE codePointComb^ OF
16#93C:
result := 16#95A;
END_CASE
16#91C:
CASE codePointComb^ OF
16#93C:
result := 16#95B;
END_CASE
16#921:
CASE codePointComb^ OF
16#93C:
result := 16#95C;
END_CASE
16#922:
CASE codePointComb^ OF
16#93C:
result := 16#95D;
END_CASE
16#92B:
CASE codePointComb^ OF
16#93C:
result := 16#95E;
END_CASE
16#92F:
CASE codePointComb^ OF
16#93C:
result := 16#95F;
END_CASE
16#9C7:
CASE codePointComb^ OF
16#9BE:
result := 16#9CB;
16#9D7:
result := 16#9CC;
END_CASE
16#9A1:
CASE codePointComb^ OF
16#9BC:
result := 16#9DC;
END_CASE
16#9A2:
CASE codePointComb^ OF
16#9BC:
result := 16#9DD;
END_CASE
16#9AF:
CASE codePointComb^ OF
16#9BC:
result := 16#9DF;
END_CASE
16#A32:
CASE codePointComb^ OF
16#A3C:
result := 16#A33;
END_CASE
16#A38:
CASE codePointComb^ OF
16#A3C:
result := 16#A36;
END_CASE
16#A16:
CASE codePointComb^ OF
16#A3C:
result := 16#A59;
END_CASE
16#A17:
CASE codePointComb^ OF
16#A3C:
result := 16#A5A;
END_CASE
16#A1C:
CASE codePointComb^ OF
16#A3C:
result := 16#A5B;
END_CASE
16#A2B:
CASE codePointComb^ OF
16#A3C:
result := 16#A5E;
END_CASE
16#B47:
CASE codePointComb^ OF
16#B56:
result := 16#B48;
16#B3E:
result := 16#B4B;
16#B57:
result := 16#B4C;
END_CASE
16#B21:
CASE codePointComb^ OF
16#B3C:
result := 16#B5C;
END_CASE
16#B22:
CASE codePointComb^ OF
16#B3C:
result := 16#B5D;
END_CASE
16#B92:
CASE codePointComb^ OF
16#BD7:
result := 16#B94;
END_CASE
16#BC6:
CASE codePointComb^ OF
16#BBE:
result := 16#BCA;
16#BD7:
result := 16#BCC;
END_CASE
16#BC7:
CASE codePointComb^ OF
16#BBE:
result := 16#BCB;
END_CASE
16#C46:
CASE codePointComb^ OF
16#C56:
result := 16#C48;
END_CASE
16#CBF:
CASE codePointComb^ OF
16#CD5:
result := 16#CC0;
END_CASE
16#CC6:
CASE codePointComb^ OF
16#CD5:
result := 16#CC7;
16#CD6:
result := 16#CC8;
16#CC2:
result := 16#CCA;
END_CASE
16#CCA:
CASE codePointComb^ OF
16#CD5:
result := 16#CCB;
END_CASE
16#D46:
CASE codePointComb^ OF
16#D3E:
result := 16#D4A;
16#D57:
result := 16#D4C;
END_CASE
16#D47:
CASE codePointComb^ OF
16#D3E:
result := 16#D4B;
END_CASE
16#DD9:
CASE codePointComb^ OF
16#DCA:
result := 16#DDA;
16#DCF:
result := 16#DDC;
16#DDF:
result := 16#DDE;
END_CASE
16#DDC:
CASE codePointComb^ OF
16#DCA:
result := 16#DDD;
END_CASE
16#F42:
CASE codePointComb^ OF
16#FB7:
result := 16#F43;
END_CASE
16#F4C:
CASE codePointComb^ OF
16#FB7:
result := 16#F4D;
END_CASE
16#F51:
CASE codePointComb^ OF
16#FB7:
result := 16#F52;
END_CASE
16#F56:
CASE codePointComb^ OF
16#FB7:
result := 16#F57;
END_CASE
16#F5B:
CASE codePointComb^ OF
16#FB7:
result := 16#F5C;
END_CASE
16#F40:
CASE codePointComb^ OF
16#FB5:
result := 16#F69;
END_CASE
16#F71:
CASE codePointComb^ OF
16#F72:
result := 16#F73;
16#F74:
result := 16#F75;
16#F80:
result := 16#F81;
END_CASE
16#FB2:
CASE codePointComb^ OF
16#F80:
result := 16#F76;
END_CASE
16#FB3:
CASE codePointComb^ OF
16#F80:
result := 16#F78;
END_CASE
16#F92:
CASE codePointComb^ OF
16#FB7:
result := 16#F93;
END_CASE
16#F9C:
CASE codePointComb^ OF
16#FB7:
result := 16#F9D;
END_CASE
16#FA1:
CASE codePointComb^ OF
16#FB7:
result := 16#FA2;
END_CASE
16#FA6:
CASE codePointComb^ OF
16#FB7:
result := 16#FA7;
END_CASE
16#FAB:
CASE codePointComb^ OF
16#FB7:
result := 16#FAC;
END_CASE
16#F90:
CASE codePointComb^ OF
16#FB5:
result := 16#FB9;
END_CASE
16#1025:
CASE codePointComb^ OF
16#102E:
result := 16#1026;
END_CASE
16#1B05:
CASE codePointComb^ OF
16#1B35:
result := 16#1B06;
END_CASE
16#1B07:
CASE codePointComb^ OF
16#1B35:
result := 16#1B08;
END_CASE
16#1B09:
CASE codePointComb^ OF
16#1B35:
result := 16#1B0A;
END_CASE
16#1B0B:
CASE codePointComb^ OF
16#1B35:
result := 16#1B0C;
END_CASE
16#1B0D:
CASE codePointComb^ OF
16#1B35:
result := 16#1B0E;
END_CASE
16#1B11:
CASE codePointComb^ OF
16#1B35:
result := 16#1B12;
END_CASE
16#1B3A:
CASE codePointComb^ OF
16#1B35:
result := 16#1B3B;
END_CASE
16#1B3C:
CASE codePointComb^ OF
16#1B35:
result := 16#1B3D;
END_CASE
16#1B3E:
CASE codePointComb^ OF
16#1B35:
result := 16#1B40;
END_CASE
16#1B3F:
CASE codePointComb^ OF
16#1B35:
result := 16#1B41;
END_CASE
16#1B42:
CASE codePointComb^ OF
16#1B35:
result := 16#1B43;
END_CASE
16#42:
CASE codePointComb^ OF
16#307:
result := 16#1E02;
16#323:
result := 16#1E04;
16#331:
result := 16#1E06;
END_CASE
16#62:
CASE codePointComb^ OF
16#307:
result := 16#1E03;
16#323:
result := 16#1E05;
16#331:
result := 16#1E07;
END_CASE
16#C7:
CASE codePointComb^ OF
16#301:
result := 16#1E08;
END_CASE
16#E7:
CASE codePointComb^ OF
16#301:
result := 16#1E09;
END_CASE
16#112:
CASE codePointComb^ OF
16#300:
result := 16#1E14;
16#301:
result := 16#1E16;
END_CASE
16#113:
CASE codePointComb^ OF
16#300:
result := 16#1E15;
16#301:
result := 16#1E17;
END_CASE
16#228:
CASE codePointComb^ OF
16#306:
result := 16#1E1C;
END_CASE
16#229:
CASE codePointComb^ OF
16#306:
result := 16#1E1D;
END_CASE
16#46:
CASE codePointComb^ OF
16#307:
result := 16#1E1E;
END_CASE
16#66:
CASE codePointComb^ OF
16#307:
result := 16#1E1F;
END_CASE
16#CF:
CASE codePointComb^ OF
16#301:
result := 16#1E2E;
END_CASE
16#EF:
CASE codePointComb^ OF
16#301:
result := 16#1E2F;
END_CASE
16#1E36:
CASE codePointComb^ OF
16#304:
result := 16#1E38;
END_CASE
16#1E37:
CASE codePointComb^ OF
16#304:
result := 16#1E39;
END_CASE
16#4D:
CASE codePointComb^ OF
16#301:
result := 16#1E3E;
16#307:
result := 16#1E40;
16#323:
result := 16#1E42;
END_CASE
16#6D:
CASE codePointComb^ OF
16#301:
result := 16#1E3F;
16#307:
result := 16#1E41;
16#323:
result := 16#1E43;
END_CASE
16#14C:
CASE codePointComb^ OF
16#300:
result := 16#1E50;
16#301:
result := 16#1E52;
END_CASE
16#14D:
CASE codePointComb^ OF
16#300:
result := 16#1E51;
16#301:
result := 16#1E53;
END_CASE
16#50:
CASE codePointComb^ OF
16#301:
result := 16#1E54;
16#307:
result := 16#1E56;
END_CASE
16#70:
CASE codePointComb^ OF
16#301:
result := 16#1E55;
16#307:
result := 16#1E57;
END_CASE
16#1E5A:
CASE codePointComb^ OF
16#304:
result := 16#1E5C;
END_CASE
16#1E5B:
CASE codePointComb^ OF
16#304:
result := 16#1E5D;
END_CASE
16#15A:
CASE codePointComb^ OF
16#307:
result := 16#1E64;
END_CASE
16#15B:
CASE codePointComb^ OF
16#307:
result := 16#1E65;
END_CASE
16#160:
CASE codePointComb^ OF
16#307:
result := 16#1E66;
END_CASE
16#161:
CASE codePointComb^ OF
16#307:
result := 16#1E67;
END_CASE
16#1E62:
CASE codePointComb^ OF
16#307:
result := 16#1E68;
END_CASE
16#1E63:
CASE codePointComb^ OF
16#307:
result := 16#1E69;
END_CASE
16#168:
CASE codePointComb^ OF
16#301:
result := 16#1E78;
END_CASE
16#169:
CASE codePointComb^ OF
16#301:
result := 16#1E79;
END_CASE
16#16A:
CASE codePointComb^ OF
16#308:
result := 16#1E7A;
END_CASE
16#16B:
CASE codePointComb^ OF
16#308:
result := 16#1E7B;
END_CASE
16#56:
CASE codePointComb^ OF
16#303:
result := 16#1E7C;
16#323:
result := 16#1E7E;
END_CASE
16#76:
CASE codePointComb^ OF
16#303:
result := 16#1E7D;
16#323:
result := 16#1E7F;
END_CASE
16#58:
CASE codePointComb^ OF
16#307:
result := 16#1E8A;
16#308:
result := 16#1E8C;
END_CASE
16#78:
CASE codePointComb^ OF
16#307:
result := 16#1E8B;
16#308:
result := 16#1E8D;
END_CASE
16#17F:
CASE codePointComb^ OF
16#307:
result := 16#1E9B;
END_CASE
16#C2:
CASE codePointComb^ OF
16#301:
result := 16#1EA4;
16#300:
result := 16#1EA6;
16#309:
result := 16#1EA8;
16#303:
result := 16#1EAA;
END_CASE
16#E2:
CASE codePointComb^ OF
16#301:
result := 16#1EA5;
16#300:
result := 16#1EA7;
16#309:
result := 16#1EA9;
16#303:
result := 16#1EAB;
END_CASE
16#1EA0:
CASE codePointComb^ OF
16#302:
result := 16#1EAC;
16#306:
result := 16#1EB6;
END_CASE
16#1EA1:
CASE codePointComb^ OF
16#302:
result := 16#1EAD;
16#306:
result := 16#1EB7;
END_CASE
16#102:
CASE codePointComb^ OF
16#301:
result := 16#1EAE;
16#300:
result := 16#1EB0;
16#309:
result := 16#1EB2;
16#303:
result := 16#1EB4;
END_CASE
16#103:
CASE codePointComb^ OF
16#301:
result := 16#1EAF;
16#300:
result := 16#1EB1;
16#309:
result := 16#1EB3;
16#303:
result := 16#1EB5;
END_CASE
16#CA:
CASE codePointComb^ OF
16#301:
result := 16#1EBE;
16#300:
result := 16#1EC0;
16#309:
result := 16#1EC2;
16#303:
result := 16#1EC4;
END_CASE
16#EA:
CASE codePointComb^ OF
16#301:
result := 16#1EBF;
16#300:
result := 16#1EC1;
16#309:
result := 16#1EC3;
16#303:
result := 16#1EC5;
END_CASE
16#1EB8:
CASE codePointComb^ OF
16#302:
result := 16#1EC6;
END_CASE
16#1EB9:
CASE codePointComb^ OF
16#302:
result := 16#1EC7;
END_CASE
16#D4:
CASE codePointComb^ OF
16#301:
result := 16#1ED0;
16#300:
result := 16#1ED2;
16#309:
result := 16#1ED4;
16#303:
result := 16#1ED6;
END_CASE
16#F4:
CASE codePointComb^ OF
16#301:
result := 16#1ED1;
16#300:
result := 16#1ED3;
16#309:
result := 16#1ED5;
16#303:
result := 16#1ED7;
END_CASE
16#1ECC:
CASE codePointComb^ OF
16#302:
result := 16#1ED8;
END_CASE
16#1ECD:
CASE codePointComb^ OF
16#302:
result := 16#1ED9;
END_CASE
16#1A0:
CASE codePointComb^ OF
16#301:
result := 16#1EDA;
16#300:
result := 16#1EDC;
16#309:
result := 16#1EDE;
16#303:
result := 16#1EE0;
16#323:
result := 16#1EE2;
END_CASE
16#1A1:
CASE codePointComb^ OF
16#301:
result := 16#1EDB;
16#300:
result := 16#1EDD;
16#309:
result := 16#1EDF;
16#303:
result := 16#1EE1;
16#323:
result := 16#1EE3;
END_CASE
16#1AF:
CASE codePointComb^ OF
16#301:
result := 16#1EE8;
16#300:
result := 16#1EEA;
16#309:
result := 16#1EEC;
16#303:
result := 16#1EEE;
16#323:
result := 16#1EF0;
END_CASE
16#1B0:
CASE codePointComb^ OF
16#301:
result := 16#1EE9;
16#300:
result := 16#1EEB;
16#309:
result := 16#1EED;
16#303:
result := 16#1EEF;
16#323:
result := 16#1EF1;
END_CASE
16#1F00:
CASE codePointComb^ OF
16#300:
result := 16#1F02;
16#301:
result := 16#1F04;
16#342:
result := 16#1F06;
16#345:
result := 16#1F80;
END_CASE
16#1F01:
CASE codePointComb^ OF
16#300:
result := 16#1F03;
16#301:
result := 16#1F05;
16#342:
result := 16#1F07;
16#345:
result := 16#1F81;
END_CASE
16#1F08:
CASE codePointComb^ OF
16#300:
result := 16#1F0A;
16#301:
result := 16#1F0C;
16#342:
result := 16#1F0E;
16#345:
result := 16#1F88;
END_CASE
16#1F09:
CASE codePointComb^ OF
16#300:
result := 16#1F0B;
16#301:
result := 16#1F0D;
16#342:
result := 16#1F0F;
16#345:
result := 16#1F89;
END_CASE
16#1F10:
CASE codePointComb^ OF
16#300:
result := 16#1F12;
16#301:
result := 16#1F14;
END_CASE
16#1F11:
CASE codePointComb^ OF
16#300:
result := 16#1F13;
16#301:
result := 16#1F15;
END_CASE
16#1F18:
CASE codePointComb^ OF
16#300:
result := 16#1F1A;
16#301:
result := 16#1F1C;
END_CASE
16#1F19:
CASE codePointComb^ OF
16#300:
result := 16#1F1B;
16#301:
result := 16#1F1D;
END_CASE
16#1F20:
CASE codePointComb^ OF
16#300:
result := 16#1F22;
16#301:
result := 16#1F24;
16#342:
result := 16#1F26;
16#345:
result := 16#1F90;
END_CASE
16#1F21:
CASE codePointComb^ OF
16#300:
result := 16#1F23;
16#301:
result := 16#1F25;
16#342:
result := 16#1F27;
16#345:
result := 16#1F91;
END_CASE
16#1F28:
CASE codePointComb^ OF
16#300:
result := 16#1F2A;
16#301:
result := 16#1F2C;
16#342:
result := 16#1F2E;
16#345:
result := 16#1F98;
END_CASE
16#1F29:
CASE codePointComb^ OF
16#300:
result := 16#1F2B;
16#301:
result := 16#1F2D;
16#342:
result := 16#1F2F;
16#345:
result := 16#1F99;
END_CASE
16#1F30:
CASE codePointComb^ OF
16#300:
result := 16#1F32;
16#301:
result := 16#1F34;
16#342:
result := 16#1F36;
END_CASE
16#1F31:
CASE codePointComb^ OF
16#300:
result := 16#1F33;
16#301:
result := 16#1F35;
16#342:
result := 16#1F37;
END_CASE
16#1F38:
CASE codePointComb^ OF
16#300:
result := 16#1F3A;
16#301:
result := 16#1F3C;
16#342:
result := 16#1F3E;
END_CASE
16#1F39:
CASE codePointComb^ OF
16#300:
result := 16#1F3B;
16#301:
result := 16#1F3D;
16#342:
result := 16#1F3F;
END_CASE
16#1F40:
CASE codePointComb^ OF
16#300:
result := 16#1F42;
16#301:
result := 16#1F44;
END_CASE
16#1F41:
CASE codePointComb^ OF
16#300:
result := 16#1F43;
16#301:
result := 16#1F45;
END_CASE
16#1F48:
CASE codePointComb^ OF
16#300:
result := 16#1F4A;
16#301:
result := 16#1F4C;
END_CASE
16#1F49:
CASE codePointComb^ OF
16#300:
result := 16#1F4B;
16#301:
result := 16#1F4D;
END_CASE
16#1F50:
CASE codePointComb^ OF
16#300:
result := 16#1F52;
16#301:
result := 16#1F54;
16#342:
result := 16#1F56;
END_CASE
16#1F51:
CASE codePointComb^ OF
16#300:
result := 16#1F53;
16#301:
result := 16#1F55;
16#342:
result := 16#1F57;
END_CASE
16#1F59:
CASE codePointComb^ OF
16#300:
result := 16#1F5B;
16#301:
result := 16#1F5D;
16#342:
result := 16#1F5F;
END_CASE
16#1F60:
CASE codePointComb^ OF
16#300:
result := 16#1F62;
16#301:
result := 16#1F64;
16#342:
result := 16#1F66;
16#345:
result := 16#1FA0;
END_CASE
16#1F61:
CASE codePointComb^ OF
16#300:
result := 16#1F63;
16#301:
result := 16#1F65;
16#342:
result := 16#1F67;
16#345:
result := 16#1FA1;
END_CASE
16#1F68:
CASE codePointComb^ OF
16#300:
result := 16#1F6A;
16#301:
result := 16#1F6C;
16#342:
result := 16#1F6E;
16#345:
result := 16#1FA8;
END_CASE
16#1F69:
CASE codePointComb^ OF
16#300:
result := 16#1F6B;
16#301:
result := 16#1F6D;
16#342:
result := 16#1F6F;
16#345:
result := 16#1FA9;
END_CASE
16#1F02:
CASE codePointComb^ OF
16#345:
result := 16#1F82;
END_CASE
16#1F03:
CASE codePointComb^ OF
16#345:
result := 16#1F83;
END_CASE
16#1F04:
CASE codePointComb^ OF
16#345:
result := 16#1F84;
END_CASE
16#1F05:
CASE codePointComb^ OF
16#345:
result := 16#1F85;
END_CASE
16#1F06:
CASE codePointComb^ OF
16#345:
result := 16#1F86;
END_CASE
16#1F07:
CASE codePointComb^ OF
16#345:
result := 16#1F87;
END_CASE
16#1F0A:
CASE codePointComb^ OF
16#345:
result := 16#1F8A;
END_CASE
16#1F0B:
CASE codePointComb^ OF
16#345:
result := 16#1F8B;
END_CASE
16#1F0C:
CASE codePointComb^ OF
16#345:
result := 16#1F8C;
END_CASE
16#1F0D:
CASE codePointComb^ OF
16#345:
result := 16#1F8D;
END_CASE
16#1F0E:
CASE codePointComb^ OF
16#345:
result := 16#1F8E;
END_CASE
16#1F0F:
CASE codePointComb^ OF
16#345:
result := 16#1F8F;
END_CASE
16#1F22:
CASE codePointComb^ OF
16#345:
result := 16#1F92;
END_CASE
16#1F23:
CASE codePointComb^ OF
16#345:
result := 16#1F93;
END_CASE
16#1F24:
CASE codePointComb^ OF
16#345:
result := 16#1F94;
END_CASE
16#1F25:
CASE codePointComb^ OF
16#345:
result := 16#1F95;
END_CASE
16#1F26:
CASE codePointComb^ OF
16#345:
result := 16#1F96;
END_CASE
16#1F27:
CASE codePointComb^ OF
16#345:
result := 16#1F97;
END_CASE
16#1F2A:
CASE codePointComb^ OF
16#345:
result := 16#1F9A;
END_CASE
16#1F2B:
CASE codePointComb^ OF
16#345:
result := 16#1F9B;
END_CASE
16#1F2C:
CASE codePointComb^ OF
16#345:
result := 16#1F9C;
END_CASE
16#1F2D:
CASE codePointComb^ OF
16#345:
result := 16#1F9D;
END_CASE
16#1F2E:
CASE codePointComb^ OF
16#345:
result := 16#1F9E;
END_CASE
16#1F2F:
CASE codePointComb^ OF
16#345:
result := 16#1F9F;
END_CASE
16#1F62:
CASE codePointComb^ OF
16#345:
result := 16#1FA2;
END_CASE
16#1F63:
CASE codePointComb^ OF
16#345:
result := 16#1FA3;
END_CASE
16#1F64:
CASE codePointComb^ OF
16#345:
result := 16#1FA4;
END_CASE
16#1F65:
CASE codePointComb^ OF
16#345:
result := 16#1FA5;
END_CASE
16#1F66:
CASE codePointComb^ OF
16#345:
result := 16#1FA6;
END_CASE
16#1F67:
CASE codePointComb^ OF
16#345:
result := 16#1FA7;
END_CASE
16#1F6A:
CASE codePointComb^ OF
16#345:
result := 16#1FAA;
END_CASE
16#1F6B:
CASE codePointComb^ OF
16#345:
result := 16#1FAB;
END_CASE
16#1F6C:
CASE codePointComb^ OF
16#345:
result := 16#1FAC;
END_CASE
16#1F6D:
CASE codePointComb^ OF
16#345:
result := 16#1FAD;
END_CASE
16#1F6E:
CASE codePointComb^ OF
16#345:
result := 16#1FAE;
END_CASE
16#1F6F:
CASE codePointComb^ OF
16#345:
result := 16#1FAF;
END_CASE
16#1F70:
CASE codePointComb^ OF
16#345:
result := 16#1FB2;
END_CASE
16#3AC:
CASE codePointComb^ OF
16#345:
result := 16#1FB4;
END_CASE
16#1FB6:
CASE codePointComb^ OF
16#345:
result := 16#1FB7;
END_CASE
16#1F74:
CASE codePointComb^ OF
16#345:
result := 16#1FC2;
END_CASE
16#3AE:
CASE codePointComb^ OF
16#345:
result := 16#1FC4;
END_CASE
16#1FC6:
CASE codePointComb^ OF
16#345:
result := 16#1FC7;
END_CASE
16#1FBF:
CASE codePointComb^ OF
16#300:
result := 16#1FCD;
16#301:
result := 16#1FCE;
16#342:
result := 16#1FCF;
END_CASE
16#1FFE:
CASE codePointComb^ OF
16#300:
result := 16#1FDD;
16#301:
result := 16#1FDE;
16#342:
result := 16#1FDF;
END_CASE
16#3C1:
CASE codePointComb^ OF
16#313:
result := 16#1FE4;
16#314:
result := 16#1FE5;
END_CASE
16#3A1:
CASE codePointComb^ OF
16#314:
result := 16#1FEC;
END_CASE
16#1F7C:
CASE codePointComb^ OF
16#345:
result := 16#1FF2;
END_CASE
16#3CE:
CASE codePointComb^ OF
16#345:
result := 16#1FF4;
END_CASE
16#1FF6:
CASE codePointComb^ OF
16#345:
result := 16#1FF7;
END_CASE
16#2190:
CASE codePointComb^ OF
16#338:
result := 16#219A;
END_CASE
16#2192:
CASE codePointComb^ OF
16#338:
result := 16#219B;
END_CASE
16#2194:
CASE codePointComb^ OF
16#338:
result := 16#21AE;
END_CASE
16#21D0:
CASE codePointComb^ OF
16#338:
result := 16#21CD;
END_CASE
16#21D4:
CASE codePointComb^ OF
16#338:
result := 16#21CE;
END_CASE
16#21D2:
CASE codePointComb^ OF
16#338:
result := 16#21CF;
END_CASE
16#2203:
CASE codePointComb^ OF
16#338:
result := 16#2204;
END_CASE
16#2208:
CASE codePointComb^ OF
16#338:
result := 16#2209;
END_CASE
16#220B:
CASE codePointComb^ OF
16#338:
result := 16#220C;
END_CASE
16#2223:
CASE codePointComb^ OF
16#338:
result := 16#2224;
END_CASE
16#2225:
CASE codePointComb^ OF
16#338:
result := 16#2226;
END_CASE
16#223C:
CASE codePointComb^ OF
16#338:
result := 16#2241;
END_CASE
16#2243:
CASE codePointComb^ OF
16#338:
result := 16#2244;
END_CASE
16#2245:
CASE codePointComb^ OF
16#338:
result := 16#2247;
END_CASE
16#2248:
CASE codePointComb^ OF
16#338:
result := 16#2249;
END_CASE
16#3D:
CASE codePointComb^ OF
16#338:
result := 16#2260;
END_CASE
16#2261:
CASE codePointComb^ OF
16#338:
result := 16#2262;
END_CASE
16#224D:
CASE codePointComb^ OF
16#338:
result := 16#226D;
END_CASE
16#3C:
CASE codePointComb^ OF
16#338:
result := 16#226E;
END_CASE
16#3E:
CASE codePointComb^ OF
16#338:
result := 16#226F;
END_CASE
16#2264:
CASE codePointComb^ OF
16#338:
result := 16#2270;
END_CASE
16#2265:
CASE codePointComb^ OF
16#338:
result := 16#2271;
END_CASE
16#2272:
CASE codePointComb^ OF
16#338:
result := 16#2274;
END_CASE
16#2273:
CASE codePointComb^ OF
16#338:
result := 16#2275;
END_CASE
16#2276:
CASE codePointComb^ OF
16#338:
result := 16#2278;
END_CASE
16#2277:
CASE codePointComb^ OF
16#338:
result := 16#2279;
END_CASE
16#227A:
CASE codePointComb^ OF
16#338:
result := 16#2280;
END_CASE
16#227B:
CASE codePointComb^ OF
16#338:
result := 16#2281;
END_CASE
16#2282:
CASE codePointComb^ OF
16#338:
result := 16#2284;
END_CASE
16#2283:
CASE codePointComb^ OF
16#338:
result := 16#2285;
END_CASE
16#2286:
CASE codePointComb^ OF
16#338:
result := 16#2288;
END_CASE
16#2287:
CASE codePointComb^ OF
16#338:
result := 16#2289;
END_CASE
16#22A2:
CASE codePointComb^ OF
16#338:
result := 16#22AC;
END_CASE
16#22A8:
CASE codePointComb^ OF
16#338:
result := 16#22AD;
END_CASE
16#22A9:
CASE codePointComb^ OF
16#338:
result := 16#22AE;
END_CASE
16#22AB:
CASE codePointComb^ OF
16#338:
result := 16#22AF;
END_CASE
16#227C:
CASE codePointComb^ OF
16#338:
result := 16#22E0;
END_CASE
16#227D:
CASE codePointComb^ OF
16#338:
result := 16#22E1;
END_CASE
16#2291:
CASE codePointComb^ OF
16#338:
result := 16#22E2;
END_CASE
16#2292:
CASE codePointComb^ OF
16#338:
result := 16#22E3;
END_CASE
16#22B2:
CASE codePointComb^ OF
16#338:
result := 16#22EA;
END_CASE
16#22B3:
CASE codePointComb^ OF
16#338:
result := 16#22EB;
END_CASE
16#22B4:
CASE codePointComb^ OF
16#338:
result := 16#22EC;
END_CASE
16#22B5:
CASE codePointComb^ OF
16#338:
result := 16#22ED;
END_CASE
16#2ADD:
CASE codePointComb^ OF
16#338:
result := 16#2ADC;
END_CASE
16#304B:
CASE codePointComb^ OF
16#3099:
result := 16#304C;
END_CASE
16#304D:
CASE codePointComb^ OF
16#3099:
result := 16#304E;
END_CASE
16#304F:
CASE codePointComb^ OF
16#3099:
result := 16#3050;
END_CASE
16#3051:
CASE codePointComb^ OF
16#3099:
result := 16#3052;
END_CASE
16#3053:
CASE codePointComb^ OF
16#3099:
result := 16#3054;
END_CASE
16#3055:
CASE codePointComb^ OF
16#3099:
result := 16#3056;
END_CASE
16#3057:
CASE codePointComb^ OF
16#3099:
result := 16#3058;
END_CASE
16#3059:
CASE codePointComb^ OF
16#3099:
result := 16#305A;
END_CASE
16#305B:
CASE codePointComb^ OF
16#3099:
result := 16#305C;
END_CASE
16#305D:
CASE codePointComb^ OF
16#3099:
result := 16#305E;
END_CASE
16#305F:
CASE codePointComb^ OF
16#3099:
result := 16#3060;
END_CASE
16#3061:
CASE codePointComb^ OF
16#3099:
result := 16#3062;
END_CASE
16#3064:
CASE codePointComb^ OF
16#3099:
result := 16#3065;
END_CASE
16#3066:
CASE codePointComb^ OF
16#3099:
result := 16#3067;
END_CASE
16#3068:
CASE codePointComb^ OF
16#3099:
result := 16#3069;
END_CASE
16#306F:
CASE codePointComb^ OF
16#3099:
result := 16#3070;
16#309A:
result := 16#3071;
END_CASE
16#3072:
CASE codePointComb^ OF
16#3099:
result := 16#3073;
16#309A:
result := 16#3074;
END_CASE
16#3075:
CASE codePointComb^ OF
16#3099:
result := 16#3076;
16#309A:
result := 16#3077;
END_CASE
16#3078:
CASE codePointComb^ OF
16#3099:
result := 16#3079;
16#309A:
result := 16#307A;
END_CASE
16#307B:
CASE codePointComb^ OF
16#3099:
result := 16#307C;
16#309A:
result := 16#307D;
END_CASE
16#3046:
CASE codePointComb^ OF
16#3099:
result := 16#3094;
END_CASE
16#309D:
CASE codePointComb^ OF
16#3099:
result := 16#309E;
END_CASE
16#30AB:
CASE codePointComb^ OF
16#3099:
result := 16#30AC;
END_CASE
16#30AD:
CASE codePointComb^ OF
16#3099:
result := 16#30AE;
END_CASE
16#30AF:
CASE codePointComb^ OF
16#3099:
result := 16#30B0;
END_CASE
16#30B1:
CASE codePointComb^ OF
16#3099:
result := 16#30B2;
END_CASE
16#30B3:
CASE codePointComb^ OF
16#3099:
result := 16#30B4;
END_CASE
16#30B5:
CASE codePointComb^ OF
16#3099:
result := 16#30B6;
END_CASE
16#30B7:
CASE codePointComb^ OF
16#3099:
result := 16#30B8;
END_CASE
16#30B9:
CASE codePointComb^ OF
16#3099:
result := 16#30BA;
END_CASE
16#30BB:
CASE codePointComb^ OF
16#3099:
result := 16#30BC;
END_CASE
16#30BD:
CASE codePointComb^ OF
16#3099:
result := 16#30BE;
END_CASE
16#30BF:
CASE codePointComb^ OF
16#3099:
result := 16#30C0;
END_CASE
16#30C1:
CASE codePointComb^ OF
16#3099:
result := 16#30C2;
END_CASE
16#30C4:
CASE codePointComb^ OF
16#3099:
result := 16#30C5;
END_CASE
16#30C6:
CASE codePointComb^ OF
16#3099:
result := 16#30C7;
END_CASE
16#30C8:
CASE codePointComb^ OF
16#3099:
result := 16#30C9;
END_CASE
16#30CF:
CASE codePointComb^ OF
16#3099:
result := 16#30D0;
16#309A:
result := 16#30D1;
END_CASE
16#30D2:
CASE codePointComb^ OF
16#3099:
result := 16#30D3;
16#309A:
result := 16#30D4;
END_CASE
16#30D5:
CASE codePointComb^ OF
16#3099:
result := 16#30D6;
16#309A:
result := 16#30D7;
END_CASE
16#30D8:
CASE codePointComb^ OF
16#3099:
result := 16#30D9;
16#309A:
result := 16#30DA;
END_CASE
16#30DB:
CASE codePointComb^ OF
16#3099:
result := 16#30DC;
16#309A:
result := 16#30DD;
END_CASE
16#30A6:
CASE codePointComb^ OF
16#3099:
result := 16#30F4;
END_CASE
16#30EF:
CASE codePointComb^ OF
16#3099:
result := 16#30F7;
END_CASE
16#30F0:
CASE codePointComb^ OF
16#3099:
result := 16#30F8;
END_CASE
16#30F1:
CASE codePointComb^ OF
16#3099:
result := 16#30F9;
END_CASE
16#30F2:
CASE codePointComb^ OF
16#3099:
result := 16#30FA;
END_CASE
16#30FD:
CASE codePointComb^ OF
16#3099:
result := 16#30FE;
END_CASE
16#5D9:
CASE codePointComb^ OF
16#5B4:
result := 16#FB1D;
16#5BC:
result := 16#FB39;
END_CASE
16#5F2:
CASE codePointComb^ OF
16#5B7:
result := 16#FB1F;
END_CASE
16#5E9:
CASE codePointComb^ OF
16#5C1:
result := 16#FB2A;
16#5C2:
result := 16#FB2B;
16#5BC:
result := 16#FB49;
END_CASE
16#FB49:
CASE codePointComb^ OF
16#5C1:
result := 16#FB2C;
16#5C2:
result := 16#FB2D;
END_CASE
16#5D0:
CASE codePointComb^ OF
16#5B7:
result := 16#FB2E;
16#5B8:
result := 16#FB2F;
16#5BC:
result := 16#FB30;
END_CASE
16#5D1:
CASE codePointComb^ OF
16#5BC:
result := 16#FB31;
16#5BF:
result := 16#FB4C;
END_CASE
16#5D2:
CASE codePointComb^ OF
16#5BC:
result := 16#FB32;
END_CASE
16#5D3:
CASE codePointComb^ OF
16#5BC:
result := 16#FB33;
END_CASE
16#5D4:
CASE codePointComb^ OF
16#5BC:
result := 16#FB34;
END_CASE
16#5D5:
CASE codePointComb^ OF
16#5BC:
result := 16#FB35;
16#5B9:
result := 16#FB4B;
END_CASE
16#5D6:
CASE codePointComb^ OF
16#5BC:
result := 16#FB36;
END_CASE
16#5D8:
CASE codePointComb^ OF
16#5BC:
result := 16#FB38;
END_CASE
16#5DA:
CASE codePointComb^ OF
16#5BC:
result := 16#FB3A;
END_CASE
16#5DB:
CASE codePointComb^ OF
16#5BC:
result := 16#FB3B;
16#5BF:
result := 16#FB4D;
END_CASE
16#5DC:
CASE codePointComb^ OF
16#5BC:
result := 16#FB3C;
END_CASE
16#5DE:
CASE codePointComb^ OF
16#5BC:
result := 16#FB3E;
END_CASE
16#5E0:
CASE codePointComb^ OF
16#5BC:
result := 16#FB40;
END_CASE
16#5E1:
CASE codePointComb^ OF
16#5BC:
result := 16#FB41;
END_CASE
16#5E3:
CASE codePointComb^ OF
16#5BC:
result := 16#FB43;
END_CASE
16#5E4:
CASE codePointComb^ OF
16#5BC:
result := 16#FB44;
16#5BF:
result := 16#FB4E;
END_CASE
16#5E6:
CASE codePointComb^ OF
16#5BC:
result := 16#FB46;
END_CASE
16#5E7:
CASE codePointComb^ OF
16#5BC:
result := 16#FB47;
END_CASE
16#5E8:
CASE codePointComb^ OF
16#5BC:
result := 16#FB48;
END_CASE
16#5EA:
CASE codePointComb^ OF
16#5BC:
result := 16#FB4A;
END_CASE
16#105D2:
CASE codePointComb^ OF
16#307:
result := 16#105C9;
END_CASE
16#105DA:
CASE codePointComb^ OF
16#307:
result := 16#105E4;
END_CASE
16#11099:
CASE codePointComb^ OF
16#110BA:
result := 16#1109A;
END_CASE
16#1109B:
CASE codePointComb^ OF
16#110BA:
result := 16#1109C;
END_CASE
16#110A5:
CASE codePointComb^ OF
16#110BA:
result := 16#110AB;
END_CASE
16#11131:
CASE codePointComb^ OF
16#11127:
result := 16#1112E;
END_CASE
16#11132:
CASE codePointComb^ OF
16#11127:
result := 16#1112F;
END_CASE
16#11347:
CASE codePointComb^ OF
16#1133E:
result := 16#1134B;
16#11357:
result := 16#1134C;
END_CASE
16#11382:
CASE codePointComb^ OF
16#113C9:
result := 16#11383;
END_CASE
16#11384:
CASE codePointComb^ OF
16#113BB:
result := 16#11385;
END_CASE
16#1138B:
CASE codePointComb^ OF
16#113C2:
result := 16#1138E;
END_CASE
16#11390:
CASE codePointComb^ OF
16#113C9:
result := 16#11391;
END_CASE
16#113C2:
CASE codePointComb^ OF
16#113C2:
result := 16#113C5;
16#113B8:
result := 16#113C7;
16#113C9:
result := 16#113C8;
END_CASE
16#114B9:
CASE codePointComb^ OF
16#114BA:
result := 16#114BB;
16#114B0:
result := 16#114BC;
16#114BD:
result := 16#114BE;
END_CASE
16#115B8:
CASE codePointComb^ OF
16#115AF:
result := 16#115BA;
END_CASE
16#115B9:
CASE codePointComb^ OF
16#115AF:
result := 16#115BB;
END_CASE
16#11935:
CASE codePointComb^ OF
16#11930:
result := 16#11938;
END_CASE
16#1611E:
CASE codePointComb^ OF
16#1611E:
result := 16#16121;
16#16129:
result := 16#16122;
16#1611F:
result := 16#16123;
16#16120:
result := 16#16125;
END_CASE
16#16129:
CASE codePointComb^ OF
16#1611F:
result := 16#16124;
END_CASE
16#16121:
CASE codePointComb^ OF
16#1611F:
result := 16#16126;
16#16120:
result := 16#16128;
END_CASE
16#16122:
CASE codePointComb^ OF
16#1611F:
result := 16#16127;
END_CASE
16#16D67:
CASE codePointComb^ OF
16#16D67:
result := 16#16D68;
END_CASE
16#16D63:
CASE codePointComb^ OF
16#16D67:
result := 16#16D69;
END_CASE
16#16D69:
CASE codePointComb^ OF
16#16D67:
result := 16#16D6A;
END_CASE
16#1D157:
CASE codePointComb^ OF
16#1D165:
result := 16#1D15E;
END_CASE
16#1D158:
CASE codePointComb^ OF
16#1D165:
result := 16#1D15F;
END_CASE
16#1D15F:
CASE codePointComb^ OF
16#1D16E:
result := 16#1D160;
16#1D16F:
result := 16#1D161;
16#1D170:
result := 16#1D162;
16#1D171:
result := 16#1D163;
16#1D172:
result := 16#1D164;
END_CASE
16#1D1B9:
CASE codePointComb^ OF
16#1D165:
result := 16#1D1BB;
END_CASE
16#1D1BA:
CASE codePointComb^ OF
16#1D165:
result := 16#1D1BC;
END_CASE
16#1D1BB:
CASE codePointComb^ OF
16#1D16E:
result := 16#1D1BD;
16#1D16F:
result := 16#1D1BF;
END_CASE
16#1D1BC:
CASE codePointComb^ OF
16#1D16E:
result := 16#1D1BE;
16#1D16F:
result := 16#1D1C0;
END_CASE
16#1100..16#11FF,
16#AC00..16#D7A3: // hangul jamos
GetRecompositionFromCodepoints := GetRecompositionFromCodepointsHangul(
codePointBase := codePointBase,
codePointComb := codePointComb,
result => result );
ELSE
GetRecompositionFromCodePoints := FALSE;
END_CASE
IF IsCompositionExcluded(result) THEN
result := 16#00;
END_IF
GetRecompositionFromCodePoints := (result > 16#00);