libmongocrypt-helper 1.12.0.0.1001 → 1.13.2.0.1001

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (491) hide show
  1. checksums.yaml +4 -4
  2. data/ext/libmongocrypt/libmongocrypt/CHANGELOG.md +19 -0
  3. data/ext/libmongocrypt/libmongocrypt/CMakeLists.txt +10 -0
  4. data/ext/libmongocrypt/libmongocrypt/CODEOWNERS +1 -4
  5. data/ext/libmongocrypt/libmongocrypt/CONTRIBUTING.md +14 -0
  6. data/ext/libmongocrypt/libmongocrypt/Earthfile +49 -50
  7. data/ext/libmongocrypt/libmongocrypt/README.md +8 -17
  8. data/ext/libmongocrypt/libmongocrypt/bindings/python/CHANGELOG.rst +6 -0
  9. data/ext/libmongocrypt/libmongocrypt/bindings/python/README.rst +1 -1
  10. data/ext/libmongocrypt/libmongocrypt/bindings/python/libmongocrypt-version.txt +1 -1
  11. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/binding.py +39 -1
  12. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/mongocrypt.py +32 -0
  13. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/version.py +1 -1
  14. data/ext/libmongocrypt/libmongocrypt/bindings/python/release.sh +1 -1
  15. data/ext/libmongocrypt/libmongocrypt/bindings/python/sbom.json +8 -8
  16. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/compact/success/encrypted-field-config-map.json +0 -1
  17. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/encrypted-field-config-map.json +0 -2
  18. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/test_mongocrypt.py +11 -11
  19. data/ext/libmongocrypt/libmongocrypt/cmake/FetchMongoC.cmake +4 -2
  20. data/ext/libmongocrypt/libmongocrypt/cmake/ImportBSON.cmake +3 -5
  21. data/ext/libmongocrypt/libmongocrypt/doc/releasing.md +14 -27
  22. data/ext/libmongocrypt/libmongocrypt/etc/cyclonedx.sbom.json +9 -9
  23. data/ext/libmongocrypt/libmongocrypt/etc/format.sh +0 -2
  24. data/ext/libmongocrypt/libmongocrypt/etc/libbson-remove-GCC-diagnostic-in-functions.patch +158 -0
  25. data/ext/libmongocrypt/libmongocrypt/etc/libbson-remove-GCC-diagnostic-pragma.patch +3 -3
  26. data/ext/libmongocrypt/libmongocrypt/etc/purls.txt +1 -1
  27. data/ext/libmongocrypt/libmongocrypt/integrating.md +42 -11
  28. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_crypto_windows.c +2 -2
  29. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message.c +1 -1
  30. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message_private.h +2 -2
  31. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_request.c +3 -3
  32. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kmip_reader_writer.c +5 -5
  33. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_assert.h +25 -8
  34. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_azure_online.c +2 -2
  35. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_gcp_online.c +3 -3
  36. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_request.c +12 -10
  37. data/ext/libmongocrypt/libmongocrypt/src/mc-efc-private.h +5 -0
  38. data/ext/libmongocrypt/libmongocrypt/src/mc-efc.c +35 -1
  39. data/ext/libmongocrypt/libmongocrypt/src/mc-fle-blob-subtype-private.h +4 -1
  40. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-encryption-placeholder-private.h +79 -0
  41. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-encryption-placeholder.c +226 -2
  42. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload-v2.c +0 -1
  43. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload.c +0 -1
  44. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-private-v2.h +34 -0
  45. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-v2.c +165 -1
  46. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload.c +0 -1
  47. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev-private-v2.h +105 -7
  48. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev-v2.c +381 -70
  49. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-tag-and-encrypted-metadata-block-private.h +7 -2
  50. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-tag-and-encrypted-metadata-block.c +17 -0
  51. data/ext/libmongocrypt/libmongocrypt/src/mc-schema-broker-private.h +126 -0
  52. data/ext/libmongocrypt/libmongocrypt/src/mc-schema-broker.c +1075 -0
  53. data/ext/libmongocrypt/libmongocrypt/src/mc-str-encode-string-sets-private.h +95 -0
  54. data/ext/libmongocrypt/libmongocrypt/src/mc-str-encode-string-sets.c +304 -0
  55. data/ext/libmongocrypt/libmongocrypt/src/mc-text-search-str-encode-private.h +45 -0
  56. data/ext/libmongocrypt/libmongocrypt/src/mc-text-search-str-encode.c +248 -0
  57. data/ext/libmongocrypt/libmongocrypt/src/mc-tokens-private.h +112 -2
  58. data/ext/libmongocrypt/libmongocrypt/src/mc-tokens.c +166 -2
  59. data/ext/libmongocrypt/libmongocrypt/src/mlib/windows-lean.h +2 -0
  60. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-buffer-private.h +11 -0
  61. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-buffer.c +36 -3
  62. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-decrypt.c +8 -4
  63. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-encrypt.c +430 -857
  64. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-private.h +5 -19
  65. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kms-ctx.c +1 -1
  66. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-marking.c +516 -523
  67. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-opts-private.h +0 -4
  68. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-private.h +7 -12
  69. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-traverse-util.c +1 -1
  70. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-util.c +3 -1
  71. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt.c +6 -9
  72. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt.h +17 -0
  73. data/ext/libmongocrypt/libmongocrypt/src/os_posix/os_dll.c +3 -1
  74. data/ext/libmongocrypt/libmongocrypt/src/unicode/case-fold-map.c +1434 -0
  75. data/ext/libmongocrypt/libmongocrypt/src/unicode/diacritic-fold-map.c +2884 -0
  76. data/ext/libmongocrypt/libmongocrypt/src/unicode/fold.c +139 -0
  77. data/ext/libmongocrypt/libmongocrypt/src/unicode/fold.h +58 -0
  78. data/ext/libmongocrypt/libmongocrypt/test/data/bulkWrite/unencrypted/payload.json +2 -2
  79. data/ext/libmongocrypt/libmongocrypt/test/data/cleanup/missing-key-id/collinfo.json +1 -0
  80. data/ext/libmongocrypt/libmongocrypt/test/data/cleanup/no-fields/collinfo.json +1 -0
  81. data/ext/libmongocrypt/libmongocrypt/test/data/cleanup/success/collinfo.json +1 -0
  82. data/ext/libmongocrypt/libmongocrypt/test/data/compact/anchor-pad/collinfo.json +1 -1
  83. data/ext/libmongocrypt/libmongocrypt/test/data/compact/anchor-pad/encrypted-payload-range-v2.json +20 -21
  84. data/ext/libmongocrypt/libmongocrypt/test/data/compact/missing-key-id/collinfo.json +2 -2
  85. data/ext/libmongocrypt/libmongocrypt/test/data/compact/no-fields/collinfo.json +1 -1
  86. data/ext/libmongocrypt/libmongocrypt/test/data/compact/no-range/collinfo.json +1 -1
  87. data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/collinfo.json +1 -1
  88. data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/encrypted-field-config-map.json +0 -1
  89. data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/encrypted-payload-range-v2.json +20 -21
  90. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/omitted/cmd-to-mongocryptd.json +1 -2
  91. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/omitted/collinfo.json +2 -2
  92. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/omitted/encrypted-payload.json +2 -3
  93. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/omitted/mongocryptd-reply.json +1 -2
  94. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved/cmd-to-mongocryptd.json +1 -2
  95. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved/collinfo.json +2 -2
  96. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved/encrypted-payload.json +2 -3
  97. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved/mongocryptd-reply.json +1 -2
  98. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved_empty/cmd-to-mongocryptd.json +1 -2
  99. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved_empty/collinfo.json +2 -2
  100. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved_empty/mongocryptd-reply.json +1 -2
  101. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved_fle1/collinfo.json +2 -1
  102. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-extraField.json +0 -1
  103. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-missingKeyId.json +0 -1
  104. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-oneField-badVersionSet.json +23 -0
  105. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-oneField-goodVersionSet.json +23 -0
  106. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-oneField.json +0 -1
  107. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-textSearchFields-badVersionSet.json +48 -0
  108. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-textSearchFields-goodVersionSet.json +48 -0
  109. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-textSearchFields.json +47 -0
  110. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-twoFields.json +0 -1
  111. data/ext/libmongocrypt/libmongocrypt/test/data/encrypted-field-config-map.json +1 -3
  112. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE1DeterministicEncryptedValue.json +8 -0
  113. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE1EncryptionPlaceholder.json +8 -0
  114. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE1RandomEncryptedValue.json +8 -0
  115. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2EncryptionPlaceholder.json +8 -0
  116. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2EqualityIndexedValueV2.json +8 -0
  117. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2FindEqualityPayloadV2.json +8 -0
  118. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2IndexedEqualityEncryptedValue.json +8 -0
  119. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2IndexedEqualityEncryptedValueV2.json +8 -0
  120. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2IndexedRangeEncryptedValue.json +8 -0
  121. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2IndexedRangeEncryptedValueV2.json +8 -0
  122. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2InsertUpdatePayload-with-edges-V2.json +8 -0
  123. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2InsertUpdatePayload-with-edges.json +8 -0
  124. data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-explicit/insert-indexed.json → explicit-decrypt/FLE2InsertUpdatePayload.json} +1 -1
  125. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2InsertUpdatePayloadV2.json +8 -0
  126. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2RangeIndexedValueV2.json +8 -0
  127. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2UnindexedEncryptedValue.json +8 -0
  128. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2UnindexedEncryptedValueV2.json +8 -0
  129. data/ext/libmongocrypt/libmongocrypt/test/data/find-with-encryptionInformation.json +0 -1
  130. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-explain/with-csfle/collinfo.json +2 -1
  131. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-explain/with-mongocryptd/collinfo.json +2 -1
  132. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-bad-str-encode-version/bad-collinfo.json +26 -0
  133. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-bad-str-encode-version/bad-create-cmd-mongocryptd-reply.json +51 -0
  134. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-bad-str-encode-version/bad-create-cmd-to-mongocryptd.json +45 -0
  135. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-bad-str-encode-version/bad-create-cmd.json +18 -0
  136. data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-find-range/int32/encrypted-field-map.json → fle2-bad-str-encode-version/bad-encrypted-field-config-map.json} +7 -12
  137. data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-insert → fle2-bad-str-encode-version}/encrypted-payload.json +4 -4
  138. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create/cmd-to-mongocryptd.json +1 -2
  139. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create/encrypted-field-config-map.json +1 -2
  140. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection/cmd-to-mongocryptd.json +44 -0
  141. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection/cmd.json +17 -0
  142. data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-find-equality/encrypted-field-map.json → fle2-create-encrypted-collection/encrypted-field-config-map.json} +9 -8
  143. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection/encrypted-payload.json +17 -0
  144. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection/mongocryptd-reply.json +50 -0
  145. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection-encrypted-fields-unset-str-encode-version/cmd-to-mongocryptd.json +45 -0
  146. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection-encrypted-fields-unset-str-encode-version/mongocryptd-reply.json +51 -0
  147. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection-with-str-encode-version/cmd-to-mongocryptd.json +46 -0
  148. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection-with-str-encode-version/cmd.json +18 -0
  149. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection-with-str-encode-version/encrypted-field-config-map.json +25 -0
  150. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection-with-str-encode-version/encrypted-payload.json +18 -0
  151. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection-with-str-encode-version/mongocryptd-reply.json +52 -0
  152. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/empty/collinfo.json +1 -1
  153. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/empty/encrypted-field-config-map.json +0 -1
  154. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/empty/encrypted-payload-v2.json +57 -59
  155. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/empty/mongocryptd-reply.json +63 -64
  156. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/success/collinfo.json +1 -1
  157. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/success/encrypted-field-config-map.json +0 -1
  158. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/success/encrypted-payload-v2.json +64 -66
  159. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/success/mongocryptd-reply.json +69 -70
  160. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-csfle/collinfo.json +1 -1
  161. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-csfle/encrypted-payload.json +1 -2
  162. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-mongocryptd/cmd-to-mongocryptd.json +1 -2
  163. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-mongocryptd/collinfo.json +2 -2
  164. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-mongocryptd/encrypted-payload.json +2 -3
  165. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-mongocryptd/mongocryptd-reply.json +1 -2
  166. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-explicit/cmd-to-mongocryptd.json +0 -1
  167. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-explicit/cmd-to-mongod.json +0 -1
  168. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-explicit/reply-from-mongocryptd.json +0 -1
  169. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32/encrypted-field-map.json +0 -1
  170. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-text-search/cmd.json +9 -0
  171. data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-find-range/date → fle2-insert-text-search}/encrypted-field-map.json +10 -9
  172. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-text-search/encrypted-payload.json +47 -0
  173. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-text-search/mongocryptd-reply.json +55 -0
  174. data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-find-range/double → fle2-insert-text-search-with-str-encode-version}/encrypted-field-map.json +12 -10
  175. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-text-search-with-str-encode-version/encrypted-payload.json +47 -0
  176. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-text-search-with-str-encode-version/mongocryptd-reply.json +55 -0
  177. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-v2-with-str-encode-version/cmd.json +9 -0
  178. data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-insert → fle2-insert-v2-with-str-encode-version}/encrypted-field-map.json +2 -2
  179. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-v2-with-str-encode-version/encrypted-payload.json +40 -0
  180. data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-insert → fle2-insert-v2-with-str-encode-version}/mongocryptd-reply.json +2 -2
  181. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-text-search-create-encrypted-collection/cmd-to-mongocryptd.json +55 -0
  182. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-text-search-create-encrypted-collection/cmd.json +22 -0
  183. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-text-search-create-encrypted-collection/encrypted-field-config-map.json +29 -0
  184. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-text-search-create-encrypted-collection/encrypted-payload.json +23 -0
  185. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-text-search-create-encrypted-collection/mongocryptd-reply.json +61 -0
  186. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-text-search-create-encrypted-collection-with-str-encode-version/cmd-to-mongocryptd.json +56 -0
  187. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-text-search-create-encrypted-collection-with-str-encode-version/cmd.json +23 -0
  188. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-text-search-create-encrypted-collection-with-str-encode-version/encrypted-field-config-map.json +30 -0
  189. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-text-search-create-encrypted-collection-with-str-encode-version/encrypted-payload.json +23 -0
  190. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-text-search-create-encrypted-collection-with-str-encode-version/mongocryptd-reply.json +62 -0
  191. data/ext/libmongocrypt/libmongocrypt/test/data/iev-v2/FLECrudTest-insertOneText.json +20 -0
  192. data/ext/libmongocrypt/libmongocrypt/test/data/iev-v2/FLECrudTest-insertOneTextLarge.json +930 -0
  193. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle/cmd-to-mongocryptd.json +60 -0
  194. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle/cmd.json +14 -0
  195. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle/collInfo-c1.json +39 -0
  196. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle/collInfo-c2.json +39 -0
  197. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-facet/cmd.json +20 -0
  198. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-mismatch/cmd.json +14 -0
  199. data/ext/libmongocrypt/libmongocrypt/{bindings/java/mongocrypt/src/test/resources/collection-info.json → test/data/lookup/csfle-mismatch/collInfo-c1.json} +13 -11
  200. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-mismatch/collInfo-c3.json +39 -0
  201. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-nested/cmd.json +24 -0
  202. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-only-schemaMap/cmd-to-mongocryptd.json +60 -0
  203. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-only-schemaMap/cmd.json +14 -0
  204. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-only-schemaMap/schemaMap.json +40 -0
  205. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-schemaMap/cmd-to-mongocryptd.json +60 -0
  206. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-schemaMap/cmd.json +14 -0
  207. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-schemaMap/collInfo-c1.json +39 -0
  208. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-schemaMap/schemaMap.json +21 -0
  209. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-self/cmd-to-mongocryptd.json +34 -0
  210. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-self/cmd.json +14 -0
  211. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-self/collInfo-c1.json +39 -0
  212. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-sibling/cmd-to-mongocryptd.json +49 -0
  213. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-sibling/cmd.json +14 -0
  214. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-sibling/collInfo-c1.json +39 -0
  215. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-sibling/collInfo-c2.json +29 -0
  216. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-sibling/reply-from-mongocryptd.json +18 -0
  217. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-unionWith/cmd.json +21 -0
  218. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-view/cmd.json +14 -0
  219. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-view/collInfo-c1.json +39 -0
  220. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-view/collInfo-v1.json +11 -0
  221. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/csfle/cmd-to-mongocryptd.json +65 -0
  222. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/csfle/cmd-to-mongod.json +26 -0
  223. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/csfle/cmd.json +19 -0
  224. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/csfle/collInfo-c1.json +39 -0
  225. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/csfle/collInfo-c2.json +39 -0
  226. data/ext/libmongocrypt/libmongocrypt/{bindings/java/mongocrypt/src/test/resources/keys/ABCDEFAB123498761234123456789012-local-document.json → test/data/lookup/mixed/csfle/csfle/key-doc.json} +4 -4
  227. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/csfle/reply-from-mongocryptd.json +33 -0
  228. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/no-schema/cmd-to-mongocryptd.json +47 -0
  229. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/no-schema/cmd-to-mongod.json +26 -0
  230. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/no-schema/cmd.json +19 -0
  231. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/no-schema/collInfo-c1.json +39 -0
  232. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/no-schema/collInfo-c2.json +17 -0
  233. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/no-schema/key-doc.json +30 -0
  234. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/no-schema/reply-from-mongocryptd.json +33 -0
  235. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/qe/cmd-to-mongocryptd.json +70 -0
  236. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/qe/cmd.json +19 -0
  237. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/qe/collInfo-c1.json +39 -0
  238. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/qe/collInfo-c2.json +42 -0
  239. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/csfle/cmd-to-mongocryptd.json +47 -0
  240. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/csfle/cmd-to-mongod.json +26 -0
  241. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/csfle/cmd.json +19 -0
  242. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/csfle/collInfo-c1.json +17 -0
  243. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/csfle/collInfo-c2.json +39 -0
  244. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/csfle/key-doc.json +30 -0
  245. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/csfle/reply-from-mongocryptd.json +33 -0
  246. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/no-schema/cmd-to-mongocryptd.json +29 -0
  247. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/no-schema/cmd-to-mongod.json +19 -0
  248. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/no-schema/cmd.json +19 -0
  249. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/no-schema/collInfo-c1.json +17 -0
  250. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/no-schema/collInfo-c2.json +17 -0
  251. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/no-schema/reply-from-mongocryptd.json +26 -0
  252. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/qe/cmd-to-mongocryptd.json +53 -0
  253. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/qe/cmd-to-mongod.json +58 -0
  254. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/qe/cmd.json +19 -0
  255. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/qe/collInfo-c1.json +17 -0
  256. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/qe/collInfo-c2.json +42 -0
  257. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/qe/key-doc.json +30 -0
  258. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/qe/reply-from-mongocryptd.json +65 -0
  259. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/csfle/cmd-to-mongocryptd.json +70 -0
  260. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/csfle/cmd.json +19 -0
  261. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/csfle/collInfo-c1.json +42 -0
  262. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/csfle/collInfo-c2.json +39 -0
  263. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/no-schema/cmd-to-mongocryptd.json +53 -0
  264. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/no-schema/cmd-to-mongod.json +56 -0
  265. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/no-schema/cmd.json +19 -0
  266. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/no-schema/collInfo-c1.json +42 -0
  267. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/no-schema/collInfo-c2.json +17 -0
  268. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/no-schema/key-doc.json +30 -0
  269. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/no-schema/reply-from-mongocryptd.json +63 -0
  270. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/qe/cmd-to-mongocryptd.json +66 -0
  271. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/qe/cmd-to-mongod.json +71 -0
  272. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/qe/cmd.json +19 -0
  273. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/qe/collInfo-c1.json +42 -0
  274. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/qe/collInfo-c2.json +42 -0
  275. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/qe/key-doc.json +30 -0
  276. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/qe/reply-from-mongocryptd.json +78 -0
  277. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe/cmd-to-mongocryptd.json +61 -0
  278. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe/cmd-to-mongod.json +14 -0
  279. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe/cmd.json +14 -0
  280. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe/collInfo-c1.json +42 -0
  281. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe/collInfo-c2.json +42 -0
  282. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe/reply-from-mongocryptd.json +68 -0
  283. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-encryptedFieldsMap/cmd-to-mongocryptd.json +66 -0
  284. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-encryptedFieldsMap/cmd-to-mongod.json +71 -0
  285. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-encryptedFieldsMap/cmd.json +19 -0
  286. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-encryptedFieldsMap/collInfo-c1.json +42 -0
  287. data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-insert-unindexed/encrypted-field-map.json → lookup/qe-encryptedFieldsMap/encryptedFieldsMap.json} +6 -7
  288. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-encryptedFieldsMap/key-doc.json +30 -0
  289. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-encryptedFieldsMap/reply-from-mongocryptd.json +78 -0
  290. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-self/cmd-to-mongocryptd.json +46 -0
  291. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-self/cmd-to-mongod.json +53 -0
  292. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-self/cmd.json +19 -0
  293. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-self/collInfo-c1.json +42 -0
  294. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-self/key-doc.json +30 -0
  295. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-self/reply-from-mongocryptd.json +58 -0
  296. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-with-payload/cmd-to-mongocryptd.json +66 -0
  297. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-with-payload/cmd-to-mongod.json +75 -0
  298. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-with-payload/cmd.json +19 -0
  299. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-with-payload/collInfo-c1.json +42 -0
  300. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-with-payload/collInfo-c2.json +42 -0
  301. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-with-payload/key-doc.json +30 -0
  302. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-with-payload/reply-from-mongocryptd.json +78 -0
  303. data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-create/mongocryptd-ismaster.json → mongocryptd-ismaster-17.json} +1 -1
  304. data/ext/libmongocrypt/libmongocrypt/test/data/mongocryptd-ismaster-26.json +12 -0
  305. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/collinfo-encryptedFields.json +42 -0
  306. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/collinfo-encryptedFields2.json +42 -0
  307. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/collinfo-jsonSchema.json +43 -0
  308. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/collinfo-noSchema.json +21 -0
  309. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/create-with-jsonSchema.json +24 -0
  310. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/encryptedFields.json +20 -0
  311. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/encryptedFields2.json +20 -0
  312. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/encryptedFieldsMap.json +42 -0
  313. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/jsonSchema.json +19 -0
  314. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/jsonSchema2.json +19 -0
  315. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/schemaMap.json +40 -0
  316. data/ext/libmongocrypt/libmongocrypt/test/data/tokens/mc.json +28 -2
  317. data/ext/libmongocrypt/libmongocrypt/test/data/tokens/server.json +28 -2
  318. data/ext/libmongocrypt/libmongocrypt/test/test-mc-efc.c +70 -0
  319. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-encryption-placeholder.c +468 -0
  320. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-find-equality-payload-v2.c +20 -1
  321. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iev-v2.c +286 -24
  322. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iev.c +1 -1
  323. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iup-v2.c +23 -1
  324. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iup.c +24 -1
  325. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-uev.c +2 -2
  326. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-rfds.c +2 -2
  327. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-tag-and-encrypted-metadata-block.c +36 -1
  328. data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-edge-generation.c +6 -7
  329. data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-encoding.c +32 -33
  330. data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-mincover.c +58 -66
  331. data/ext/libmongocrypt/libmongocrypt/test/test-mc-rangeopts.c +2 -2
  332. data/ext/libmongocrypt/libmongocrypt/test/test-mc-schema-broker.c +1124 -0
  333. data/ext/libmongocrypt/libmongocrypt/test/test-mc-text-search-str-encode.c +1207 -0
  334. data/ext/libmongocrypt/libmongocrypt/test/test-mc-tokens.c +144 -37
  335. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert-match-bson.c +13 -14
  336. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert.h +21 -4
  337. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-buffer.c +25 -0
  338. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-cache.c +3 -2
  339. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-hooks.c +1 -1
  340. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto.c +37 -7
  341. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-csfle-lib.c +21 -0
  342. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-decrypt.c +226 -146
  343. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-encrypt.c +1330 -1200
  344. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kek.c +1 -1
  345. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-key-cache.c +6 -6
  346. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kms-responses.c +2 -2
  347. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-marking.c +744 -106
  348. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt.c +119 -33
  349. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt.h +27 -4
  350. data/ext/libmongocrypt/libmongocrypt/test/test-unicode-fold.c +97 -0
  351. data/lib/libmongocrypt_helper/version.rb +2 -2
  352. metadata +207 -157
  353. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/README.md +0 -36
  354. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/benchmarks/build.gradle.kts +0 -28
  355. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/benchmarks/src/main/java/com/mongodb/crypt/benchmark/BenchmarkRunner.java +0 -217
  356. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/benchmarks/src/main/resources/keyDocument.json +0 -24
  357. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/build.gradle.kts +0 -354
  358. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/gradle/wrapper/gradle-wrapper.jar +0 -0
  359. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/gradle/wrapper/gradle-wrapper.properties +0 -5
  360. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/gradlew +0 -234
  361. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/gradlew.bat +0 -89
  362. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/settings.gradle.kts +0 -1
  363. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/BinaryHolder.java +0 -45
  364. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/CAPI.java +0 -1165
  365. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/CAPIHelper.java +0 -96
  366. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/CipherCallback.java +0 -92
  367. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/DisposableMemory.java +0 -31
  368. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/JULLogger.java +0 -130
  369. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/Logger.java +0 -144
  370. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/Loggers.java +0 -50
  371. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MacCallback.java +0 -60
  372. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MessageDigestCallback.java +0 -55
  373. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoAwsKmsProviderOptions.java +0 -104
  374. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCrypt.java +0 -100
  375. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCryptContext.java +0 -137
  376. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCryptContextImpl.java +0 -164
  377. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCryptException.java +0 -67
  378. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCryptImpl.java +0 -423
  379. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCryptOptions.java +0 -284
  380. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCrypts.java +0 -38
  381. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoDataKeyOptions.java +0 -125
  382. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoExplicitEncryptOptions.java +0 -227
  383. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoKeyDecryptor.java +0 -76
  384. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoKeyDecryptorImpl.java +0 -105
  385. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoLocalKmsProviderOptions.java +0 -83
  386. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoRewrapManyDataKeyOptions.java +0 -104
  387. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/SLF4JLogger.java +0 -110
  388. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/SecureRandomCallback.java +0 -51
  389. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/SigningRSAESPKCSCallback.java +0 -76
  390. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/package-info.java +0 -18
  391. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/resources/META-INF/native-image/jni-config.json +0 -180
  392. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/resources/META-INF/native-image/reflect-config.json +0 -134
  393. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/java/com/mongodb/crypt/capi/MongoCryptTest.java +0 -389
  394. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/command-reply.json +0 -13
  395. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/command.json +0 -6
  396. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/encrypted-command-reply.json +0 -16
  397. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/encrypted-command.json +0 -11
  398. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/encrypted-value.json +0 -6
  399. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit-v2/int32/encrypted-payload.json +0 -26
  400. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit-v2/int32/key-filter.json +0 -19
  401. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit-v2/int32/rangeopts.json +0 -14
  402. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit-v2/int32/value-to-encrypt.json +0 -20
  403. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/json-schema.json +0 -15
  404. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/key-document.json +0 -36
  405. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/key-filter-keyAltName.json +0 -14
  406. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/key-filter.json +0 -19
  407. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/kms-reply.txt +0 -6
  408. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/list-collections-filter.json +0 -3
  409. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/mongocryptd-command.json +0 -22
  410. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/mongocryptd-reply.json +0 -18
  411. data/ext/libmongocrypt/libmongocrypt/etc/silk-create-asset-group.sh +0 -70
  412. data/ext/libmongocrypt/libmongocrypt/test/data/bulkWrite/jsonSchema/cmd.json +0 -20
  413. data/ext/libmongocrypt/libmongocrypt/test/data/collection-info-no-schema.json +0 -19
  414. data/ext/libmongocrypt/libmongocrypt/test/data/compact/no-range/encrypted-field-config-map.json +0 -47
  415. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-collMod/insert/cmd.json +0 -8
  416. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-collMod/insert/collinfo.json +0 -9
  417. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create/ismaster-to-mongocryptd.json +0 -3
  418. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/empty/encrypted-payload.json +0 -91
  419. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/success/encrypted-payload.json +0 -98
  420. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/find-indexed-contentionFactor1.json +0 -8
  421. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/insert-indexed-contentionFactor1.json +0 -8
  422. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/insert-indexed-same-user-and-index-key.json +0 -8
  423. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality/cmd.json +0 -6
  424. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality/encrypted-payload.json +0 -41
  425. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality/mongocryptd-reply.json +0 -19
  426. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date/cmd.json +0 -10
  427. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date/encrypted-payload.json +0 -42
  428. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date/mongocryptd-reply.json +0 -50
  429. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128/cmd.json +0 -6
  430. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128/encrypted-field-map.json +0 -28
  431. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128/encrypted-payload.json +0 -42
  432. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128/mongocryptd-reply.json +0 -50
  433. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision/cmd.json +0 -6
  434. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision/encrypted-field-map.json +0 -31
  435. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision/encrypted-payload.json +0 -51
  436. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision/mongocryptd-reply.json +0 -59
  437. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double/cmd.json +0 -8
  438. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double/encrypted-payload.json +0 -42
  439. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double/mongocryptd-reply.json +0 -50
  440. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision/cmd.json +0 -8
  441. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision/encrypted-field-map.json +0 -31
  442. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision/encrypted-payload.json +0 -45
  443. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision/mongocryptd-reply.json +0 -53
  444. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32/cmd.json +0 -8
  445. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32/encrypted-payload.json +0 -42
  446. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32/mongocryptd-reply.json +0 -50
  447. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64/cmd.json +0 -8
  448. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64/encrypted-field-map.json +0 -28
  449. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64/encrypted-payload.json +0 -42
  450. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64/mongocryptd-reply.json +0 -50
  451. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/double/encrypted-payload.json +0 -26
  452. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/double-precision/encrypted-payload.json +0 -26
  453. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32/encrypted-payload.json +0 -26
  454. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-nominmax/encrypted-payload-v2.json +0 -26
  455. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-openinterval/encrypted-payload.json +0 -16
  456. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date/cmd.json +0 -13
  457. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date/encrypted-field-map.json +0 -28
  458. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date/encrypted-payload.json +0 -45
  459. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date/mongocryptd-reply.json +0 -53
  460. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128/cmd.json +0 -9
  461. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128/encrypted-field-map.json +0 -28
  462. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128/encrypted-payload.json +0 -45
  463. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128/mongocryptd-reply.json +0 -53
  464. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision/cmd.json +0 -9
  465. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision/encrypted-field-map.json +0 -31
  466. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision/encrypted-payload.json +0 -54
  467. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision/mongocryptd-reply.json +0 -62
  468. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double/cmd.json +0 -11
  469. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double/encrypted-field-map.json +0 -28
  470. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double/encrypted-payload.json +0 -45
  471. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double/mongocryptd-reply.json +0 -53
  472. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision/cmd.json +0 -11
  473. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision/encrypted-field-map.json +0 -31
  474. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision/encrypted-payload.json +0 -48
  475. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision/mongocryptd-reply.json +0 -56
  476. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32/encrypted-payload.json +0 -45
  477. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32/mongocryptd-reply.json +0 -53
  478. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64/cmd.json +0 -11
  479. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64/encrypted-field-map.json +0 -28
  480. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64/encrypted-payload.json +0 -45
  481. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64/mongocryptd-reply.json +0 -53
  482. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double/encrypted-payload.json +0 -8
  483. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double-precision/encrypted-payload.json +0 -8
  484. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/encrypted-payload-v2.json +0 -8
  485. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/sparsity-2/encrypted-payload.json +0 -8
  486. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed/cmd.json +0 -9
  487. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed/encrypted-payload.json +0 -14
  488. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed/mongocryptd-reply.json +0 -46
  489. data/ext/libmongocrypt/libmongocrypt/test/data/schema.json +0 -19
  490. /data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-explicit/find-indexed.json → explicit-decrypt/FLE2FindEqualityPayload.json} +0 -0
  491. /data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-insert → fle2-insert-text-search-with-str-encode-version}/cmd.json +0 -0
@@ -0,0 +1,1434 @@
1
+ /**
2
+ * Copyright (C) 2025-present MongoDB, Inc.
3
+ *
4
+ * This program is free software: you can redistribute it and/or modify
5
+ * it under the terms of the Server Side Public License, version 1,
6
+ * as published by MongoDB, Inc.
7
+ *
8
+ * This program is distributed in the hope that it will be useful,
9
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ * Server Side Public License for more details.
12
+ *
13
+ * You should have received a copy of the Server Side Public License
14
+ * along with this program. If not, see
15
+ * <http://www.mongodb.com/licensing/server-side-public-license>.
16
+ *
17
+ * As a special exception, the copyright holders give permission to link the
18
+ * code of portions of this program with the OpenSSL library under certain
19
+ * conditions as described in each individual source file and distribute
20
+ * linked combinations including the program with the OpenSSL library. You
21
+ * must comply with the Server Side Public License in all respects for
22
+ * all of the code used other than as permitted herein. If you modify file(s)
23
+ * with this exception, you may extend this exception to your version of the
24
+ * file(s), but you are not obligated to do so. If you do not wish to do so,
25
+ * delete this exception statement from your version. If you delete this
26
+ * exception statement from all source files in the program, then also delete
27
+ * it in the license file.
28
+ *
29
+ * THIS IS A GENERATED FILE, DO NOT MODIFY.
30
+ */
31
+
32
+ #include "bson/bson.h"
33
+ #include "fold.h"
34
+
35
+ bson_unichar_t unicode_codepoint_to_lower(bson_unichar_t codepoint) {
36
+ if (codepoint <= 0x7f) {
37
+ if (codepoint >= 'A' && codepoint <= 'Z') {
38
+ return codepoint | 0x20; // Set the ascii lowercase bit on the character.
39
+ }
40
+ return codepoint;
41
+ }
42
+
43
+ switch (codepoint) {
44
+ case 0xb5: return 0x3bc;
45
+ case 0xc0: return 0xe0;
46
+ case 0xc1: return 0xe1;
47
+ case 0xc2: return 0xe2;
48
+ case 0xc3: return 0xe3;
49
+ case 0xc4: return 0xe4;
50
+ case 0xc5: return 0xe5;
51
+ case 0xc6: return 0xe6;
52
+ case 0xc7: return 0xe7;
53
+ case 0xc8: return 0xe8;
54
+ case 0xc9: return 0xe9;
55
+ case 0xca: return 0xea;
56
+ case 0xcb: return 0xeb;
57
+ case 0xcc: return 0xec;
58
+ case 0xcd: return 0xed;
59
+ case 0xce: return 0xee;
60
+ case 0xcf: return 0xef;
61
+ case 0xd0: return 0xf0;
62
+ case 0xd1: return 0xf1;
63
+ case 0xd2: return 0xf2;
64
+ case 0xd3: return 0xf3;
65
+ case 0xd4: return 0xf4;
66
+ case 0xd5: return 0xf5;
67
+ case 0xd6: return 0xf6;
68
+ case 0xd8: return 0xf8;
69
+ case 0xd9: return 0xf9;
70
+ case 0xda: return 0xfa;
71
+ case 0xdb: return 0xfb;
72
+ case 0xdc: return 0xfc;
73
+ case 0xdd: return 0xfd;
74
+ case 0xde: return 0xfe;
75
+ case 0x100: return 0x101;
76
+ case 0x102: return 0x103;
77
+ case 0x104: return 0x105;
78
+ case 0x106: return 0x107;
79
+ case 0x108: return 0x109;
80
+ case 0x10a: return 0x10b;
81
+ case 0x10c: return 0x10d;
82
+ case 0x10e: return 0x10f;
83
+ case 0x110: return 0x111;
84
+ case 0x112: return 0x113;
85
+ case 0x114: return 0x115;
86
+ case 0x116: return 0x117;
87
+ case 0x118: return 0x119;
88
+ case 0x11a: return 0x11b;
89
+ case 0x11c: return 0x11d;
90
+ case 0x11e: return 0x11f;
91
+ case 0x120: return 0x121;
92
+ case 0x122: return 0x123;
93
+ case 0x124: return 0x125;
94
+ case 0x126: return 0x127;
95
+ case 0x128: return 0x129;
96
+ case 0x12a: return 0x12b;
97
+ case 0x12c: return 0x12d;
98
+ case 0x12e: return 0x12f;
99
+ case 0x132: return 0x133;
100
+ case 0x134: return 0x135;
101
+ case 0x136: return 0x137;
102
+ case 0x139: return 0x13a;
103
+ case 0x13b: return 0x13c;
104
+ case 0x13d: return 0x13e;
105
+ case 0x13f: return 0x140;
106
+ case 0x141: return 0x142;
107
+ case 0x143: return 0x144;
108
+ case 0x145: return 0x146;
109
+ case 0x147: return 0x148;
110
+ case 0x14a: return 0x14b;
111
+ case 0x14c: return 0x14d;
112
+ case 0x14e: return 0x14f;
113
+ case 0x150: return 0x151;
114
+ case 0x152: return 0x153;
115
+ case 0x154: return 0x155;
116
+ case 0x156: return 0x157;
117
+ case 0x158: return 0x159;
118
+ case 0x15a: return 0x15b;
119
+ case 0x15c: return 0x15d;
120
+ case 0x15e: return 0x15f;
121
+ case 0x160: return 0x161;
122
+ case 0x162: return 0x163;
123
+ case 0x164: return 0x165;
124
+ case 0x166: return 0x167;
125
+ case 0x168: return 0x169;
126
+ case 0x16a: return 0x16b;
127
+ case 0x16c: return 0x16d;
128
+ case 0x16e: return 0x16f;
129
+ case 0x170: return 0x171;
130
+ case 0x172: return 0x173;
131
+ case 0x174: return 0x175;
132
+ case 0x176: return 0x177;
133
+ case 0x178: return 0xff;
134
+ case 0x179: return 0x17a;
135
+ case 0x17b: return 0x17c;
136
+ case 0x17d: return 0x17e;
137
+ case 0x17f: return 0x73;
138
+ case 0x181: return 0x253;
139
+ case 0x182: return 0x183;
140
+ case 0x184: return 0x185;
141
+ case 0x186: return 0x254;
142
+ case 0x187: return 0x188;
143
+ case 0x189: return 0x256;
144
+ case 0x18a: return 0x257;
145
+ case 0x18b: return 0x18c;
146
+ case 0x18e: return 0x1dd;
147
+ case 0x18f: return 0x259;
148
+ case 0x190: return 0x25b;
149
+ case 0x191: return 0x192;
150
+ case 0x193: return 0x260;
151
+ case 0x194: return 0x263;
152
+ case 0x196: return 0x269;
153
+ case 0x197: return 0x268;
154
+ case 0x198: return 0x199;
155
+ case 0x19c: return 0x26f;
156
+ case 0x19d: return 0x272;
157
+ case 0x19f: return 0x275;
158
+ case 0x1a0: return 0x1a1;
159
+ case 0x1a2: return 0x1a3;
160
+ case 0x1a4: return 0x1a5;
161
+ case 0x1a6: return 0x280;
162
+ case 0x1a7: return 0x1a8;
163
+ case 0x1a9: return 0x283;
164
+ case 0x1ac: return 0x1ad;
165
+ case 0x1ae: return 0x288;
166
+ case 0x1af: return 0x1b0;
167
+ case 0x1b1: return 0x28a;
168
+ case 0x1b2: return 0x28b;
169
+ case 0x1b3: return 0x1b4;
170
+ case 0x1b5: return 0x1b6;
171
+ case 0x1b7: return 0x292;
172
+ case 0x1b8: return 0x1b9;
173
+ case 0x1bc: return 0x1bd;
174
+ case 0x1c4: return 0x1c6;
175
+ case 0x1c5: return 0x1c6;
176
+ case 0x1c7: return 0x1c9;
177
+ case 0x1c8: return 0x1c9;
178
+ case 0x1ca: return 0x1cc;
179
+ case 0x1cb: return 0x1cc;
180
+ case 0x1cd: return 0x1ce;
181
+ case 0x1cf: return 0x1d0;
182
+ case 0x1d1: return 0x1d2;
183
+ case 0x1d3: return 0x1d4;
184
+ case 0x1d5: return 0x1d6;
185
+ case 0x1d7: return 0x1d8;
186
+ case 0x1d9: return 0x1da;
187
+ case 0x1db: return 0x1dc;
188
+ case 0x1de: return 0x1df;
189
+ case 0x1e0: return 0x1e1;
190
+ case 0x1e2: return 0x1e3;
191
+ case 0x1e4: return 0x1e5;
192
+ case 0x1e6: return 0x1e7;
193
+ case 0x1e8: return 0x1e9;
194
+ case 0x1ea: return 0x1eb;
195
+ case 0x1ec: return 0x1ed;
196
+ case 0x1ee: return 0x1ef;
197
+ case 0x1f1: return 0x1f3;
198
+ case 0x1f2: return 0x1f3;
199
+ case 0x1f4: return 0x1f5;
200
+ case 0x1f6: return 0x195;
201
+ case 0x1f7: return 0x1bf;
202
+ case 0x1f8: return 0x1f9;
203
+ case 0x1fa: return 0x1fb;
204
+ case 0x1fc: return 0x1fd;
205
+ case 0x1fe: return 0x1ff;
206
+ case 0x200: return 0x201;
207
+ case 0x202: return 0x203;
208
+ case 0x204: return 0x205;
209
+ case 0x206: return 0x207;
210
+ case 0x208: return 0x209;
211
+ case 0x20a: return 0x20b;
212
+ case 0x20c: return 0x20d;
213
+ case 0x20e: return 0x20f;
214
+ case 0x210: return 0x211;
215
+ case 0x212: return 0x213;
216
+ case 0x214: return 0x215;
217
+ case 0x216: return 0x217;
218
+ case 0x218: return 0x219;
219
+ case 0x21a: return 0x21b;
220
+ case 0x21c: return 0x21d;
221
+ case 0x21e: return 0x21f;
222
+ case 0x220: return 0x19e;
223
+ case 0x222: return 0x223;
224
+ case 0x224: return 0x225;
225
+ case 0x226: return 0x227;
226
+ case 0x228: return 0x229;
227
+ case 0x22a: return 0x22b;
228
+ case 0x22c: return 0x22d;
229
+ case 0x22e: return 0x22f;
230
+ case 0x230: return 0x231;
231
+ case 0x232: return 0x233;
232
+ case 0x23a: return 0x2c65;
233
+ case 0x23b: return 0x23c;
234
+ case 0x23d: return 0x19a;
235
+ case 0x23e: return 0x2c66;
236
+ case 0x241: return 0x242;
237
+ case 0x243: return 0x180;
238
+ case 0x244: return 0x289;
239
+ case 0x245: return 0x28c;
240
+ case 0x246: return 0x247;
241
+ case 0x248: return 0x249;
242
+ case 0x24a: return 0x24b;
243
+ case 0x24c: return 0x24d;
244
+ case 0x24e: return 0x24f;
245
+ case 0x345: return 0x3b9;
246
+ case 0x370: return 0x371;
247
+ case 0x372: return 0x373;
248
+ case 0x376: return 0x377;
249
+ case 0x37f: return 0x3f3;
250
+ case 0x386: return 0x3ac;
251
+ case 0x388: return 0x3ad;
252
+ case 0x389: return 0x3ae;
253
+ case 0x38a: return 0x3af;
254
+ case 0x38c: return 0x3cc;
255
+ case 0x38e: return 0x3cd;
256
+ case 0x38f: return 0x3ce;
257
+ case 0x391: return 0x3b1;
258
+ case 0x392: return 0x3b2;
259
+ case 0x393: return 0x3b3;
260
+ case 0x394: return 0x3b4;
261
+ case 0x395: return 0x3b5;
262
+ case 0x396: return 0x3b6;
263
+ case 0x397: return 0x3b7;
264
+ case 0x398: return 0x3b8;
265
+ case 0x399: return 0x3b9;
266
+ case 0x39a: return 0x3ba;
267
+ case 0x39b: return 0x3bb;
268
+ case 0x39c: return 0x3bc;
269
+ case 0x39d: return 0x3bd;
270
+ case 0x39e: return 0x3be;
271
+ case 0x39f: return 0x3bf;
272
+ case 0x3a0: return 0x3c0;
273
+ case 0x3a1: return 0x3c1;
274
+ case 0x3a3: return 0x3c3;
275
+ case 0x3a4: return 0x3c4;
276
+ case 0x3a5: return 0x3c5;
277
+ case 0x3a6: return 0x3c6;
278
+ case 0x3a7: return 0x3c7;
279
+ case 0x3a8: return 0x3c8;
280
+ case 0x3a9: return 0x3c9;
281
+ case 0x3aa: return 0x3ca;
282
+ case 0x3ab: return 0x3cb;
283
+ case 0x3c2: return 0x3c3;
284
+ case 0x3cf: return 0x3d7;
285
+ case 0x3d0: return 0x3b2;
286
+ case 0x3d1: return 0x3b8;
287
+ case 0x3d5: return 0x3c6;
288
+ case 0x3d6: return 0x3c0;
289
+ case 0x3d8: return 0x3d9;
290
+ case 0x3da: return 0x3db;
291
+ case 0x3dc: return 0x3dd;
292
+ case 0x3de: return 0x3df;
293
+ case 0x3e0: return 0x3e1;
294
+ case 0x3e2: return 0x3e3;
295
+ case 0x3e4: return 0x3e5;
296
+ case 0x3e6: return 0x3e7;
297
+ case 0x3e8: return 0x3e9;
298
+ case 0x3ea: return 0x3eb;
299
+ case 0x3ec: return 0x3ed;
300
+ case 0x3ee: return 0x3ef;
301
+ case 0x3f0: return 0x3ba;
302
+ case 0x3f1: return 0x3c1;
303
+ case 0x3f4: return 0x3b8;
304
+ case 0x3f5: return 0x3b5;
305
+ case 0x3f7: return 0x3f8;
306
+ case 0x3f9: return 0x3f2;
307
+ case 0x3fa: return 0x3fb;
308
+ case 0x3fd: return 0x37b;
309
+ case 0x3fe: return 0x37c;
310
+ case 0x3ff: return 0x37d;
311
+ case 0x400: return 0x450;
312
+ case 0x401: return 0x451;
313
+ case 0x402: return 0x452;
314
+ case 0x403: return 0x453;
315
+ case 0x404: return 0x454;
316
+ case 0x405: return 0x455;
317
+ case 0x406: return 0x456;
318
+ case 0x407: return 0x457;
319
+ case 0x408: return 0x458;
320
+ case 0x409: return 0x459;
321
+ case 0x40a: return 0x45a;
322
+ case 0x40b: return 0x45b;
323
+ case 0x40c: return 0x45c;
324
+ case 0x40d: return 0x45d;
325
+ case 0x40e: return 0x45e;
326
+ case 0x40f: return 0x45f;
327
+ case 0x410: return 0x430;
328
+ case 0x411: return 0x431;
329
+ case 0x412: return 0x432;
330
+ case 0x413: return 0x433;
331
+ case 0x414: return 0x434;
332
+ case 0x415: return 0x435;
333
+ case 0x416: return 0x436;
334
+ case 0x417: return 0x437;
335
+ case 0x418: return 0x438;
336
+ case 0x419: return 0x439;
337
+ case 0x41a: return 0x43a;
338
+ case 0x41b: return 0x43b;
339
+ case 0x41c: return 0x43c;
340
+ case 0x41d: return 0x43d;
341
+ case 0x41e: return 0x43e;
342
+ case 0x41f: return 0x43f;
343
+ case 0x420: return 0x440;
344
+ case 0x421: return 0x441;
345
+ case 0x422: return 0x442;
346
+ case 0x423: return 0x443;
347
+ case 0x424: return 0x444;
348
+ case 0x425: return 0x445;
349
+ case 0x426: return 0x446;
350
+ case 0x427: return 0x447;
351
+ case 0x428: return 0x448;
352
+ case 0x429: return 0x449;
353
+ case 0x42a: return 0x44a;
354
+ case 0x42b: return 0x44b;
355
+ case 0x42c: return 0x44c;
356
+ case 0x42d: return 0x44d;
357
+ case 0x42e: return 0x44e;
358
+ case 0x42f: return 0x44f;
359
+ case 0x460: return 0x461;
360
+ case 0x462: return 0x463;
361
+ case 0x464: return 0x465;
362
+ case 0x466: return 0x467;
363
+ case 0x468: return 0x469;
364
+ case 0x46a: return 0x46b;
365
+ case 0x46c: return 0x46d;
366
+ case 0x46e: return 0x46f;
367
+ case 0x470: return 0x471;
368
+ case 0x472: return 0x473;
369
+ case 0x474: return 0x475;
370
+ case 0x476: return 0x477;
371
+ case 0x478: return 0x479;
372
+ case 0x47a: return 0x47b;
373
+ case 0x47c: return 0x47d;
374
+ case 0x47e: return 0x47f;
375
+ case 0x480: return 0x481;
376
+ case 0x48a: return 0x48b;
377
+ case 0x48c: return 0x48d;
378
+ case 0x48e: return 0x48f;
379
+ case 0x490: return 0x491;
380
+ case 0x492: return 0x493;
381
+ case 0x494: return 0x495;
382
+ case 0x496: return 0x497;
383
+ case 0x498: return 0x499;
384
+ case 0x49a: return 0x49b;
385
+ case 0x49c: return 0x49d;
386
+ case 0x49e: return 0x49f;
387
+ case 0x4a0: return 0x4a1;
388
+ case 0x4a2: return 0x4a3;
389
+ case 0x4a4: return 0x4a5;
390
+ case 0x4a6: return 0x4a7;
391
+ case 0x4a8: return 0x4a9;
392
+ case 0x4aa: return 0x4ab;
393
+ case 0x4ac: return 0x4ad;
394
+ case 0x4ae: return 0x4af;
395
+ case 0x4b0: return 0x4b1;
396
+ case 0x4b2: return 0x4b3;
397
+ case 0x4b4: return 0x4b5;
398
+ case 0x4b6: return 0x4b7;
399
+ case 0x4b8: return 0x4b9;
400
+ case 0x4ba: return 0x4bb;
401
+ case 0x4bc: return 0x4bd;
402
+ case 0x4be: return 0x4bf;
403
+ case 0x4c0: return 0x4cf;
404
+ case 0x4c1: return 0x4c2;
405
+ case 0x4c3: return 0x4c4;
406
+ case 0x4c5: return 0x4c6;
407
+ case 0x4c7: return 0x4c8;
408
+ case 0x4c9: return 0x4ca;
409
+ case 0x4cb: return 0x4cc;
410
+ case 0x4cd: return 0x4ce;
411
+ case 0x4d0: return 0x4d1;
412
+ case 0x4d2: return 0x4d3;
413
+ case 0x4d4: return 0x4d5;
414
+ case 0x4d6: return 0x4d7;
415
+ case 0x4d8: return 0x4d9;
416
+ case 0x4da: return 0x4db;
417
+ case 0x4dc: return 0x4dd;
418
+ case 0x4de: return 0x4df;
419
+ case 0x4e0: return 0x4e1;
420
+ case 0x4e2: return 0x4e3;
421
+ case 0x4e4: return 0x4e5;
422
+ case 0x4e6: return 0x4e7;
423
+ case 0x4e8: return 0x4e9;
424
+ case 0x4ea: return 0x4eb;
425
+ case 0x4ec: return 0x4ed;
426
+ case 0x4ee: return 0x4ef;
427
+ case 0x4f0: return 0x4f1;
428
+ case 0x4f2: return 0x4f3;
429
+ case 0x4f4: return 0x4f5;
430
+ case 0x4f6: return 0x4f7;
431
+ case 0x4f8: return 0x4f9;
432
+ case 0x4fa: return 0x4fb;
433
+ case 0x4fc: return 0x4fd;
434
+ case 0x4fe: return 0x4ff;
435
+ case 0x500: return 0x501;
436
+ case 0x502: return 0x503;
437
+ case 0x504: return 0x505;
438
+ case 0x506: return 0x507;
439
+ case 0x508: return 0x509;
440
+ case 0x50a: return 0x50b;
441
+ case 0x50c: return 0x50d;
442
+ case 0x50e: return 0x50f;
443
+ case 0x510: return 0x511;
444
+ case 0x512: return 0x513;
445
+ case 0x514: return 0x515;
446
+ case 0x516: return 0x517;
447
+ case 0x518: return 0x519;
448
+ case 0x51a: return 0x51b;
449
+ case 0x51c: return 0x51d;
450
+ case 0x51e: return 0x51f;
451
+ case 0x520: return 0x521;
452
+ case 0x522: return 0x523;
453
+ case 0x524: return 0x525;
454
+ case 0x526: return 0x527;
455
+ case 0x528: return 0x529;
456
+ case 0x52a: return 0x52b;
457
+ case 0x52c: return 0x52d;
458
+ case 0x52e: return 0x52f;
459
+ case 0x531: return 0x561;
460
+ case 0x532: return 0x562;
461
+ case 0x533: return 0x563;
462
+ case 0x534: return 0x564;
463
+ case 0x535: return 0x565;
464
+ case 0x536: return 0x566;
465
+ case 0x537: return 0x567;
466
+ case 0x538: return 0x568;
467
+ case 0x539: return 0x569;
468
+ case 0x53a: return 0x56a;
469
+ case 0x53b: return 0x56b;
470
+ case 0x53c: return 0x56c;
471
+ case 0x53d: return 0x56d;
472
+ case 0x53e: return 0x56e;
473
+ case 0x53f: return 0x56f;
474
+ case 0x540: return 0x570;
475
+ case 0x541: return 0x571;
476
+ case 0x542: return 0x572;
477
+ case 0x543: return 0x573;
478
+ case 0x544: return 0x574;
479
+ case 0x545: return 0x575;
480
+ case 0x546: return 0x576;
481
+ case 0x547: return 0x577;
482
+ case 0x548: return 0x578;
483
+ case 0x549: return 0x579;
484
+ case 0x54a: return 0x57a;
485
+ case 0x54b: return 0x57b;
486
+ case 0x54c: return 0x57c;
487
+ case 0x54d: return 0x57d;
488
+ case 0x54e: return 0x57e;
489
+ case 0x54f: return 0x57f;
490
+ case 0x550: return 0x580;
491
+ case 0x551: return 0x581;
492
+ case 0x552: return 0x582;
493
+ case 0x553: return 0x583;
494
+ case 0x554: return 0x584;
495
+ case 0x555: return 0x585;
496
+ case 0x556: return 0x586;
497
+ case 0x10a0: return 0x2d00;
498
+ case 0x10a1: return 0x2d01;
499
+ case 0x10a2: return 0x2d02;
500
+ case 0x10a3: return 0x2d03;
501
+ case 0x10a4: return 0x2d04;
502
+ case 0x10a5: return 0x2d05;
503
+ case 0x10a6: return 0x2d06;
504
+ case 0x10a7: return 0x2d07;
505
+ case 0x10a8: return 0x2d08;
506
+ case 0x10a9: return 0x2d09;
507
+ case 0x10aa: return 0x2d0a;
508
+ case 0x10ab: return 0x2d0b;
509
+ case 0x10ac: return 0x2d0c;
510
+ case 0x10ad: return 0x2d0d;
511
+ case 0x10ae: return 0x2d0e;
512
+ case 0x10af: return 0x2d0f;
513
+ case 0x10b0: return 0x2d10;
514
+ case 0x10b1: return 0x2d11;
515
+ case 0x10b2: return 0x2d12;
516
+ case 0x10b3: return 0x2d13;
517
+ case 0x10b4: return 0x2d14;
518
+ case 0x10b5: return 0x2d15;
519
+ case 0x10b6: return 0x2d16;
520
+ case 0x10b7: return 0x2d17;
521
+ case 0x10b8: return 0x2d18;
522
+ case 0x10b9: return 0x2d19;
523
+ case 0x10ba: return 0x2d1a;
524
+ case 0x10bb: return 0x2d1b;
525
+ case 0x10bc: return 0x2d1c;
526
+ case 0x10bd: return 0x2d1d;
527
+ case 0x10be: return 0x2d1e;
528
+ case 0x10bf: return 0x2d1f;
529
+ case 0x10c0: return 0x2d20;
530
+ case 0x10c1: return 0x2d21;
531
+ case 0x10c2: return 0x2d22;
532
+ case 0x10c3: return 0x2d23;
533
+ case 0x10c4: return 0x2d24;
534
+ case 0x10c5: return 0x2d25;
535
+ case 0x10c7: return 0x2d27;
536
+ case 0x10cd: return 0x2d2d;
537
+ case 0x13f8: return 0x13f0;
538
+ case 0x13f9: return 0x13f1;
539
+ case 0x13fa: return 0x13f2;
540
+ case 0x13fb: return 0x13f3;
541
+ case 0x13fc: return 0x13f4;
542
+ case 0x13fd: return 0x13f5;
543
+ case 0x1c80: return 0x432;
544
+ case 0x1c81: return 0x434;
545
+ case 0x1c82: return 0x43e;
546
+ case 0x1c83: return 0x441;
547
+ case 0x1c84: return 0x442;
548
+ case 0x1c85: return 0x442;
549
+ case 0x1c86: return 0x44a;
550
+ case 0x1c87: return 0x463;
551
+ case 0x1c88: return 0xa64b;
552
+ case 0x1c90: return 0x10d0;
553
+ case 0x1c91: return 0x10d1;
554
+ case 0x1c92: return 0x10d2;
555
+ case 0x1c93: return 0x10d3;
556
+ case 0x1c94: return 0x10d4;
557
+ case 0x1c95: return 0x10d5;
558
+ case 0x1c96: return 0x10d6;
559
+ case 0x1c97: return 0x10d7;
560
+ case 0x1c98: return 0x10d8;
561
+ case 0x1c99: return 0x10d9;
562
+ case 0x1c9a: return 0x10da;
563
+ case 0x1c9b: return 0x10db;
564
+ case 0x1c9c: return 0x10dc;
565
+ case 0x1c9d: return 0x10dd;
566
+ case 0x1c9e: return 0x10de;
567
+ case 0x1c9f: return 0x10df;
568
+ case 0x1ca0: return 0x10e0;
569
+ case 0x1ca1: return 0x10e1;
570
+ case 0x1ca2: return 0x10e2;
571
+ case 0x1ca3: return 0x10e3;
572
+ case 0x1ca4: return 0x10e4;
573
+ case 0x1ca5: return 0x10e5;
574
+ case 0x1ca6: return 0x10e6;
575
+ case 0x1ca7: return 0x10e7;
576
+ case 0x1ca8: return 0x10e8;
577
+ case 0x1ca9: return 0x10e9;
578
+ case 0x1caa: return 0x10ea;
579
+ case 0x1cab: return 0x10eb;
580
+ case 0x1cac: return 0x10ec;
581
+ case 0x1cad: return 0x10ed;
582
+ case 0x1cae: return 0x10ee;
583
+ case 0x1caf: return 0x10ef;
584
+ case 0x1cb0: return 0x10f0;
585
+ case 0x1cb1: return 0x10f1;
586
+ case 0x1cb2: return 0x10f2;
587
+ case 0x1cb3: return 0x10f3;
588
+ case 0x1cb4: return 0x10f4;
589
+ case 0x1cb5: return 0x10f5;
590
+ case 0x1cb6: return 0x10f6;
591
+ case 0x1cb7: return 0x10f7;
592
+ case 0x1cb8: return 0x10f8;
593
+ case 0x1cb9: return 0x10f9;
594
+ case 0x1cba: return 0x10fa;
595
+ case 0x1cbd: return 0x10fd;
596
+ case 0x1cbe: return 0x10fe;
597
+ case 0x1cbf: return 0x10ff;
598
+ case 0x1e00: return 0x1e01;
599
+ case 0x1e02: return 0x1e03;
600
+ case 0x1e04: return 0x1e05;
601
+ case 0x1e06: return 0x1e07;
602
+ case 0x1e08: return 0x1e09;
603
+ case 0x1e0a: return 0x1e0b;
604
+ case 0x1e0c: return 0x1e0d;
605
+ case 0x1e0e: return 0x1e0f;
606
+ case 0x1e10: return 0x1e11;
607
+ case 0x1e12: return 0x1e13;
608
+ case 0x1e14: return 0x1e15;
609
+ case 0x1e16: return 0x1e17;
610
+ case 0x1e18: return 0x1e19;
611
+ case 0x1e1a: return 0x1e1b;
612
+ case 0x1e1c: return 0x1e1d;
613
+ case 0x1e1e: return 0x1e1f;
614
+ case 0x1e20: return 0x1e21;
615
+ case 0x1e22: return 0x1e23;
616
+ case 0x1e24: return 0x1e25;
617
+ case 0x1e26: return 0x1e27;
618
+ case 0x1e28: return 0x1e29;
619
+ case 0x1e2a: return 0x1e2b;
620
+ case 0x1e2c: return 0x1e2d;
621
+ case 0x1e2e: return 0x1e2f;
622
+ case 0x1e30: return 0x1e31;
623
+ case 0x1e32: return 0x1e33;
624
+ case 0x1e34: return 0x1e35;
625
+ case 0x1e36: return 0x1e37;
626
+ case 0x1e38: return 0x1e39;
627
+ case 0x1e3a: return 0x1e3b;
628
+ case 0x1e3c: return 0x1e3d;
629
+ case 0x1e3e: return 0x1e3f;
630
+ case 0x1e40: return 0x1e41;
631
+ case 0x1e42: return 0x1e43;
632
+ case 0x1e44: return 0x1e45;
633
+ case 0x1e46: return 0x1e47;
634
+ case 0x1e48: return 0x1e49;
635
+ case 0x1e4a: return 0x1e4b;
636
+ case 0x1e4c: return 0x1e4d;
637
+ case 0x1e4e: return 0x1e4f;
638
+ case 0x1e50: return 0x1e51;
639
+ case 0x1e52: return 0x1e53;
640
+ case 0x1e54: return 0x1e55;
641
+ case 0x1e56: return 0x1e57;
642
+ case 0x1e58: return 0x1e59;
643
+ case 0x1e5a: return 0x1e5b;
644
+ case 0x1e5c: return 0x1e5d;
645
+ case 0x1e5e: return 0x1e5f;
646
+ case 0x1e60: return 0x1e61;
647
+ case 0x1e62: return 0x1e63;
648
+ case 0x1e64: return 0x1e65;
649
+ case 0x1e66: return 0x1e67;
650
+ case 0x1e68: return 0x1e69;
651
+ case 0x1e6a: return 0x1e6b;
652
+ case 0x1e6c: return 0x1e6d;
653
+ case 0x1e6e: return 0x1e6f;
654
+ case 0x1e70: return 0x1e71;
655
+ case 0x1e72: return 0x1e73;
656
+ case 0x1e74: return 0x1e75;
657
+ case 0x1e76: return 0x1e77;
658
+ case 0x1e78: return 0x1e79;
659
+ case 0x1e7a: return 0x1e7b;
660
+ case 0x1e7c: return 0x1e7d;
661
+ case 0x1e7e: return 0x1e7f;
662
+ case 0x1e80: return 0x1e81;
663
+ case 0x1e82: return 0x1e83;
664
+ case 0x1e84: return 0x1e85;
665
+ case 0x1e86: return 0x1e87;
666
+ case 0x1e88: return 0x1e89;
667
+ case 0x1e8a: return 0x1e8b;
668
+ case 0x1e8c: return 0x1e8d;
669
+ case 0x1e8e: return 0x1e8f;
670
+ case 0x1e90: return 0x1e91;
671
+ case 0x1e92: return 0x1e93;
672
+ case 0x1e94: return 0x1e95;
673
+ case 0x1e9b: return 0x1e61;
674
+ case 0x1e9e: return 0xdf;
675
+ case 0x1ea0: return 0x1ea1;
676
+ case 0x1ea2: return 0x1ea3;
677
+ case 0x1ea4: return 0x1ea5;
678
+ case 0x1ea6: return 0x1ea7;
679
+ case 0x1ea8: return 0x1ea9;
680
+ case 0x1eaa: return 0x1eab;
681
+ case 0x1eac: return 0x1ead;
682
+ case 0x1eae: return 0x1eaf;
683
+ case 0x1eb0: return 0x1eb1;
684
+ case 0x1eb2: return 0x1eb3;
685
+ case 0x1eb4: return 0x1eb5;
686
+ case 0x1eb6: return 0x1eb7;
687
+ case 0x1eb8: return 0x1eb9;
688
+ case 0x1eba: return 0x1ebb;
689
+ case 0x1ebc: return 0x1ebd;
690
+ case 0x1ebe: return 0x1ebf;
691
+ case 0x1ec0: return 0x1ec1;
692
+ case 0x1ec2: return 0x1ec3;
693
+ case 0x1ec4: return 0x1ec5;
694
+ case 0x1ec6: return 0x1ec7;
695
+ case 0x1ec8: return 0x1ec9;
696
+ case 0x1eca: return 0x1ecb;
697
+ case 0x1ecc: return 0x1ecd;
698
+ case 0x1ece: return 0x1ecf;
699
+ case 0x1ed0: return 0x1ed1;
700
+ case 0x1ed2: return 0x1ed3;
701
+ case 0x1ed4: return 0x1ed5;
702
+ case 0x1ed6: return 0x1ed7;
703
+ case 0x1ed8: return 0x1ed9;
704
+ case 0x1eda: return 0x1edb;
705
+ case 0x1edc: return 0x1edd;
706
+ case 0x1ede: return 0x1edf;
707
+ case 0x1ee0: return 0x1ee1;
708
+ case 0x1ee2: return 0x1ee3;
709
+ case 0x1ee4: return 0x1ee5;
710
+ case 0x1ee6: return 0x1ee7;
711
+ case 0x1ee8: return 0x1ee9;
712
+ case 0x1eea: return 0x1eeb;
713
+ case 0x1eec: return 0x1eed;
714
+ case 0x1eee: return 0x1eef;
715
+ case 0x1ef0: return 0x1ef1;
716
+ case 0x1ef2: return 0x1ef3;
717
+ case 0x1ef4: return 0x1ef5;
718
+ case 0x1ef6: return 0x1ef7;
719
+ case 0x1ef8: return 0x1ef9;
720
+ case 0x1efa: return 0x1efb;
721
+ case 0x1efc: return 0x1efd;
722
+ case 0x1efe: return 0x1eff;
723
+ case 0x1f08: return 0x1f00;
724
+ case 0x1f09: return 0x1f01;
725
+ case 0x1f0a: return 0x1f02;
726
+ case 0x1f0b: return 0x1f03;
727
+ case 0x1f0c: return 0x1f04;
728
+ case 0x1f0d: return 0x1f05;
729
+ case 0x1f0e: return 0x1f06;
730
+ case 0x1f0f: return 0x1f07;
731
+ case 0x1f18: return 0x1f10;
732
+ case 0x1f19: return 0x1f11;
733
+ case 0x1f1a: return 0x1f12;
734
+ case 0x1f1b: return 0x1f13;
735
+ case 0x1f1c: return 0x1f14;
736
+ case 0x1f1d: return 0x1f15;
737
+ case 0x1f28: return 0x1f20;
738
+ case 0x1f29: return 0x1f21;
739
+ case 0x1f2a: return 0x1f22;
740
+ case 0x1f2b: return 0x1f23;
741
+ case 0x1f2c: return 0x1f24;
742
+ case 0x1f2d: return 0x1f25;
743
+ case 0x1f2e: return 0x1f26;
744
+ case 0x1f2f: return 0x1f27;
745
+ case 0x1f38: return 0x1f30;
746
+ case 0x1f39: return 0x1f31;
747
+ case 0x1f3a: return 0x1f32;
748
+ case 0x1f3b: return 0x1f33;
749
+ case 0x1f3c: return 0x1f34;
750
+ case 0x1f3d: return 0x1f35;
751
+ case 0x1f3e: return 0x1f36;
752
+ case 0x1f3f: return 0x1f37;
753
+ case 0x1f48: return 0x1f40;
754
+ case 0x1f49: return 0x1f41;
755
+ case 0x1f4a: return 0x1f42;
756
+ case 0x1f4b: return 0x1f43;
757
+ case 0x1f4c: return 0x1f44;
758
+ case 0x1f4d: return 0x1f45;
759
+ case 0x1f59: return 0x1f51;
760
+ case 0x1f5b: return 0x1f53;
761
+ case 0x1f5d: return 0x1f55;
762
+ case 0x1f5f: return 0x1f57;
763
+ case 0x1f68: return 0x1f60;
764
+ case 0x1f69: return 0x1f61;
765
+ case 0x1f6a: return 0x1f62;
766
+ case 0x1f6b: return 0x1f63;
767
+ case 0x1f6c: return 0x1f64;
768
+ case 0x1f6d: return 0x1f65;
769
+ case 0x1f6e: return 0x1f66;
770
+ case 0x1f6f: return 0x1f67;
771
+ case 0x1f88: return 0x1f80;
772
+ case 0x1f89: return 0x1f81;
773
+ case 0x1f8a: return 0x1f82;
774
+ case 0x1f8b: return 0x1f83;
775
+ case 0x1f8c: return 0x1f84;
776
+ case 0x1f8d: return 0x1f85;
777
+ case 0x1f8e: return 0x1f86;
778
+ case 0x1f8f: return 0x1f87;
779
+ case 0x1f98: return 0x1f90;
780
+ case 0x1f99: return 0x1f91;
781
+ case 0x1f9a: return 0x1f92;
782
+ case 0x1f9b: return 0x1f93;
783
+ case 0x1f9c: return 0x1f94;
784
+ case 0x1f9d: return 0x1f95;
785
+ case 0x1f9e: return 0x1f96;
786
+ case 0x1f9f: return 0x1f97;
787
+ case 0x1fa8: return 0x1fa0;
788
+ case 0x1fa9: return 0x1fa1;
789
+ case 0x1faa: return 0x1fa2;
790
+ case 0x1fab: return 0x1fa3;
791
+ case 0x1fac: return 0x1fa4;
792
+ case 0x1fad: return 0x1fa5;
793
+ case 0x1fae: return 0x1fa6;
794
+ case 0x1faf: return 0x1fa7;
795
+ case 0x1fb8: return 0x1fb0;
796
+ case 0x1fb9: return 0x1fb1;
797
+ case 0x1fba: return 0x1f70;
798
+ case 0x1fbb: return 0x1f71;
799
+ case 0x1fbc: return 0x1fb3;
800
+ case 0x1fbe: return 0x3b9;
801
+ case 0x1fc8: return 0x1f72;
802
+ case 0x1fc9: return 0x1f73;
803
+ case 0x1fca: return 0x1f74;
804
+ case 0x1fcb: return 0x1f75;
805
+ case 0x1fcc: return 0x1fc3;
806
+ case 0x1fd8: return 0x1fd0;
807
+ case 0x1fd9: return 0x1fd1;
808
+ case 0x1fda: return 0x1f76;
809
+ case 0x1fdb: return 0x1f77;
810
+ case 0x1fe8: return 0x1fe0;
811
+ case 0x1fe9: return 0x1fe1;
812
+ case 0x1fea: return 0x1f7a;
813
+ case 0x1feb: return 0x1f7b;
814
+ case 0x1fec: return 0x1fe5;
815
+ case 0x1ff8: return 0x1f78;
816
+ case 0x1ff9: return 0x1f79;
817
+ case 0x1ffa: return 0x1f7c;
818
+ case 0x1ffb: return 0x1f7d;
819
+ case 0x1ffc: return 0x1ff3;
820
+ case 0x2126: return 0x3c9;
821
+ case 0x212a: return 0x6b;
822
+ case 0x212b: return 0xe5;
823
+ case 0x2132: return 0x214e;
824
+ case 0x2160: return 0x2170;
825
+ case 0x2161: return 0x2171;
826
+ case 0x2162: return 0x2172;
827
+ case 0x2163: return 0x2173;
828
+ case 0x2164: return 0x2174;
829
+ case 0x2165: return 0x2175;
830
+ case 0x2166: return 0x2176;
831
+ case 0x2167: return 0x2177;
832
+ case 0x2168: return 0x2178;
833
+ case 0x2169: return 0x2179;
834
+ case 0x216a: return 0x217a;
835
+ case 0x216b: return 0x217b;
836
+ case 0x216c: return 0x217c;
837
+ case 0x216d: return 0x217d;
838
+ case 0x216e: return 0x217e;
839
+ case 0x216f: return 0x217f;
840
+ case 0x2183: return 0x2184;
841
+ case 0x24b6: return 0x24d0;
842
+ case 0x24b7: return 0x24d1;
843
+ case 0x24b8: return 0x24d2;
844
+ case 0x24b9: return 0x24d3;
845
+ case 0x24ba: return 0x24d4;
846
+ case 0x24bb: return 0x24d5;
847
+ case 0x24bc: return 0x24d6;
848
+ case 0x24bd: return 0x24d7;
849
+ case 0x24be: return 0x24d8;
850
+ case 0x24bf: return 0x24d9;
851
+ case 0x24c0: return 0x24da;
852
+ case 0x24c1: return 0x24db;
853
+ case 0x24c2: return 0x24dc;
854
+ case 0x24c3: return 0x24dd;
855
+ case 0x24c4: return 0x24de;
856
+ case 0x24c5: return 0x24df;
857
+ case 0x24c6: return 0x24e0;
858
+ case 0x24c7: return 0x24e1;
859
+ case 0x24c8: return 0x24e2;
860
+ case 0x24c9: return 0x24e3;
861
+ case 0x24ca: return 0x24e4;
862
+ case 0x24cb: return 0x24e5;
863
+ case 0x24cc: return 0x24e6;
864
+ case 0x24cd: return 0x24e7;
865
+ case 0x24ce: return 0x24e8;
866
+ case 0x24cf: return 0x24e9;
867
+ case 0x2c00: return 0x2c30;
868
+ case 0x2c01: return 0x2c31;
869
+ case 0x2c02: return 0x2c32;
870
+ case 0x2c03: return 0x2c33;
871
+ case 0x2c04: return 0x2c34;
872
+ case 0x2c05: return 0x2c35;
873
+ case 0x2c06: return 0x2c36;
874
+ case 0x2c07: return 0x2c37;
875
+ case 0x2c08: return 0x2c38;
876
+ case 0x2c09: return 0x2c39;
877
+ case 0x2c0a: return 0x2c3a;
878
+ case 0x2c0b: return 0x2c3b;
879
+ case 0x2c0c: return 0x2c3c;
880
+ case 0x2c0d: return 0x2c3d;
881
+ case 0x2c0e: return 0x2c3e;
882
+ case 0x2c0f: return 0x2c3f;
883
+ case 0x2c10: return 0x2c40;
884
+ case 0x2c11: return 0x2c41;
885
+ case 0x2c12: return 0x2c42;
886
+ case 0x2c13: return 0x2c43;
887
+ case 0x2c14: return 0x2c44;
888
+ case 0x2c15: return 0x2c45;
889
+ case 0x2c16: return 0x2c46;
890
+ case 0x2c17: return 0x2c47;
891
+ case 0x2c18: return 0x2c48;
892
+ case 0x2c19: return 0x2c49;
893
+ case 0x2c1a: return 0x2c4a;
894
+ case 0x2c1b: return 0x2c4b;
895
+ case 0x2c1c: return 0x2c4c;
896
+ case 0x2c1d: return 0x2c4d;
897
+ case 0x2c1e: return 0x2c4e;
898
+ case 0x2c1f: return 0x2c4f;
899
+ case 0x2c20: return 0x2c50;
900
+ case 0x2c21: return 0x2c51;
901
+ case 0x2c22: return 0x2c52;
902
+ case 0x2c23: return 0x2c53;
903
+ case 0x2c24: return 0x2c54;
904
+ case 0x2c25: return 0x2c55;
905
+ case 0x2c26: return 0x2c56;
906
+ case 0x2c27: return 0x2c57;
907
+ case 0x2c28: return 0x2c58;
908
+ case 0x2c29: return 0x2c59;
909
+ case 0x2c2a: return 0x2c5a;
910
+ case 0x2c2b: return 0x2c5b;
911
+ case 0x2c2c: return 0x2c5c;
912
+ case 0x2c2d: return 0x2c5d;
913
+ case 0x2c2e: return 0x2c5e;
914
+ case 0x2c60: return 0x2c61;
915
+ case 0x2c62: return 0x26b;
916
+ case 0x2c63: return 0x1d7d;
917
+ case 0x2c64: return 0x27d;
918
+ case 0x2c67: return 0x2c68;
919
+ case 0x2c69: return 0x2c6a;
920
+ case 0x2c6b: return 0x2c6c;
921
+ case 0x2c6d: return 0x251;
922
+ case 0x2c6e: return 0x271;
923
+ case 0x2c6f: return 0x250;
924
+ case 0x2c70: return 0x252;
925
+ case 0x2c72: return 0x2c73;
926
+ case 0x2c75: return 0x2c76;
927
+ case 0x2c7e: return 0x23f;
928
+ case 0x2c7f: return 0x240;
929
+ case 0x2c80: return 0x2c81;
930
+ case 0x2c82: return 0x2c83;
931
+ case 0x2c84: return 0x2c85;
932
+ case 0x2c86: return 0x2c87;
933
+ case 0x2c88: return 0x2c89;
934
+ case 0x2c8a: return 0x2c8b;
935
+ case 0x2c8c: return 0x2c8d;
936
+ case 0x2c8e: return 0x2c8f;
937
+ case 0x2c90: return 0x2c91;
938
+ case 0x2c92: return 0x2c93;
939
+ case 0x2c94: return 0x2c95;
940
+ case 0x2c96: return 0x2c97;
941
+ case 0x2c98: return 0x2c99;
942
+ case 0x2c9a: return 0x2c9b;
943
+ case 0x2c9c: return 0x2c9d;
944
+ case 0x2c9e: return 0x2c9f;
945
+ case 0x2ca0: return 0x2ca1;
946
+ case 0x2ca2: return 0x2ca3;
947
+ case 0x2ca4: return 0x2ca5;
948
+ case 0x2ca6: return 0x2ca7;
949
+ case 0x2ca8: return 0x2ca9;
950
+ case 0x2caa: return 0x2cab;
951
+ case 0x2cac: return 0x2cad;
952
+ case 0x2cae: return 0x2caf;
953
+ case 0x2cb0: return 0x2cb1;
954
+ case 0x2cb2: return 0x2cb3;
955
+ case 0x2cb4: return 0x2cb5;
956
+ case 0x2cb6: return 0x2cb7;
957
+ case 0x2cb8: return 0x2cb9;
958
+ case 0x2cba: return 0x2cbb;
959
+ case 0x2cbc: return 0x2cbd;
960
+ case 0x2cbe: return 0x2cbf;
961
+ case 0x2cc0: return 0x2cc1;
962
+ case 0x2cc2: return 0x2cc3;
963
+ case 0x2cc4: return 0x2cc5;
964
+ case 0x2cc6: return 0x2cc7;
965
+ case 0x2cc8: return 0x2cc9;
966
+ case 0x2cca: return 0x2ccb;
967
+ case 0x2ccc: return 0x2ccd;
968
+ case 0x2cce: return 0x2ccf;
969
+ case 0x2cd0: return 0x2cd1;
970
+ case 0x2cd2: return 0x2cd3;
971
+ case 0x2cd4: return 0x2cd5;
972
+ case 0x2cd6: return 0x2cd7;
973
+ case 0x2cd8: return 0x2cd9;
974
+ case 0x2cda: return 0x2cdb;
975
+ case 0x2cdc: return 0x2cdd;
976
+ case 0x2cde: return 0x2cdf;
977
+ case 0x2ce0: return 0x2ce1;
978
+ case 0x2ce2: return 0x2ce3;
979
+ case 0x2ceb: return 0x2cec;
980
+ case 0x2ced: return 0x2cee;
981
+ case 0x2cf2: return 0x2cf3;
982
+ case 0xa640: return 0xa641;
983
+ case 0xa642: return 0xa643;
984
+ case 0xa644: return 0xa645;
985
+ case 0xa646: return 0xa647;
986
+ case 0xa648: return 0xa649;
987
+ case 0xa64a: return 0xa64b;
988
+ case 0xa64c: return 0xa64d;
989
+ case 0xa64e: return 0xa64f;
990
+ case 0xa650: return 0xa651;
991
+ case 0xa652: return 0xa653;
992
+ case 0xa654: return 0xa655;
993
+ case 0xa656: return 0xa657;
994
+ case 0xa658: return 0xa659;
995
+ case 0xa65a: return 0xa65b;
996
+ case 0xa65c: return 0xa65d;
997
+ case 0xa65e: return 0xa65f;
998
+ case 0xa660: return 0xa661;
999
+ case 0xa662: return 0xa663;
1000
+ case 0xa664: return 0xa665;
1001
+ case 0xa666: return 0xa667;
1002
+ case 0xa668: return 0xa669;
1003
+ case 0xa66a: return 0xa66b;
1004
+ case 0xa66c: return 0xa66d;
1005
+ case 0xa680: return 0xa681;
1006
+ case 0xa682: return 0xa683;
1007
+ case 0xa684: return 0xa685;
1008
+ case 0xa686: return 0xa687;
1009
+ case 0xa688: return 0xa689;
1010
+ case 0xa68a: return 0xa68b;
1011
+ case 0xa68c: return 0xa68d;
1012
+ case 0xa68e: return 0xa68f;
1013
+ case 0xa690: return 0xa691;
1014
+ case 0xa692: return 0xa693;
1015
+ case 0xa694: return 0xa695;
1016
+ case 0xa696: return 0xa697;
1017
+ case 0xa698: return 0xa699;
1018
+ case 0xa69a: return 0xa69b;
1019
+ case 0xa722: return 0xa723;
1020
+ case 0xa724: return 0xa725;
1021
+ case 0xa726: return 0xa727;
1022
+ case 0xa728: return 0xa729;
1023
+ case 0xa72a: return 0xa72b;
1024
+ case 0xa72c: return 0xa72d;
1025
+ case 0xa72e: return 0xa72f;
1026
+ case 0xa732: return 0xa733;
1027
+ case 0xa734: return 0xa735;
1028
+ case 0xa736: return 0xa737;
1029
+ case 0xa738: return 0xa739;
1030
+ case 0xa73a: return 0xa73b;
1031
+ case 0xa73c: return 0xa73d;
1032
+ case 0xa73e: return 0xa73f;
1033
+ case 0xa740: return 0xa741;
1034
+ case 0xa742: return 0xa743;
1035
+ case 0xa744: return 0xa745;
1036
+ case 0xa746: return 0xa747;
1037
+ case 0xa748: return 0xa749;
1038
+ case 0xa74a: return 0xa74b;
1039
+ case 0xa74c: return 0xa74d;
1040
+ case 0xa74e: return 0xa74f;
1041
+ case 0xa750: return 0xa751;
1042
+ case 0xa752: return 0xa753;
1043
+ case 0xa754: return 0xa755;
1044
+ case 0xa756: return 0xa757;
1045
+ case 0xa758: return 0xa759;
1046
+ case 0xa75a: return 0xa75b;
1047
+ case 0xa75c: return 0xa75d;
1048
+ case 0xa75e: return 0xa75f;
1049
+ case 0xa760: return 0xa761;
1050
+ case 0xa762: return 0xa763;
1051
+ case 0xa764: return 0xa765;
1052
+ case 0xa766: return 0xa767;
1053
+ case 0xa768: return 0xa769;
1054
+ case 0xa76a: return 0xa76b;
1055
+ case 0xa76c: return 0xa76d;
1056
+ case 0xa76e: return 0xa76f;
1057
+ case 0xa779: return 0xa77a;
1058
+ case 0xa77b: return 0xa77c;
1059
+ case 0xa77d: return 0x1d79;
1060
+ case 0xa77e: return 0xa77f;
1061
+ case 0xa780: return 0xa781;
1062
+ case 0xa782: return 0xa783;
1063
+ case 0xa784: return 0xa785;
1064
+ case 0xa786: return 0xa787;
1065
+ case 0xa78b: return 0xa78c;
1066
+ case 0xa78d: return 0x265;
1067
+ case 0xa790: return 0xa791;
1068
+ case 0xa792: return 0xa793;
1069
+ case 0xa796: return 0xa797;
1070
+ case 0xa798: return 0xa799;
1071
+ case 0xa79a: return 0xa79b;
1072
+ case 0xa79c: return 0xa79d;
1073
+ case 0xa79e: return 0xa79f;
1074
+ case 0xa7a0: return 0xa7a1;
1075
+ case 0xa7a2: return 0xa7a3;
1076
+ case 0xa7a4: return 0xa7a5;
1077
+ case 0xa7a6: return 0xa7a7;
1078
+ case 0xa7a8: return 0xa7a9;
1079
+ case 0xa7aa: return 0x266;
1080
+ case 0xa7ab: return 0x25c;
1081
+ case 0xa7ac: return 0x261;
1082
+ case 0xa7ad: return 0x26c;
1083
+ case 0xa7ae: return 0x26a;
1084
+ case 0xa7b0: return 0x29e;
1085
+ case 0xa7b1: return 0x287;
1086
+ case 0xa7b2: return 0x29d;
1087
+ case 0xa7b3: return 0xab53;
1088
+ case 0xa7b4: return 0xa7b5;
1089
+ case 0xa7b6: return 0xa7b7;
1090
+ case 0xa7b8: return 0xa7b9;
1091
+ case 0xa7ba: return 0xa7bb;
1092
+ case 0xa7bc: return 0xa7bd;
1093
+ case 0xa7be: return 0xa7bf;
1094
+ case 0xa7c2: return 0xa7c3;
1095
+ case 0xa7c4: return 0xa794;
1096
+ case 0xa7c5: return 0x282;
1097
+ case 0xa7c6: return 0x1d8e;
1098
+ case 0xa7c7: return 0xa7c8;
1099
+ case 0xa7c9: return 0xa7ca;
1100
+ case 0xa7f5: return 0xa7f6;
1101
+ case 0xab70: return 0x13a0;
1102
+ case 0xab71: return 0x13a1;
1103
+ case 0xab72: return 0x13a2;
1104
+ case 0xab73: return 0x13a3;
1105
+ case 0xab74: return 0x13a4;
1106
+ case 0xab75: return 0x13a5;
1107
+ case 0xab76: return 0x13a6;
1108
+ case 0xab77: return 0x13a7;
1109
+ case 0xab78: return 0x13a8;
1110
+ case 0xab79: return 0x13a9;
1111
+ case 0xab7a: return 0x13aa;
1112
+ case 0xab7b: return 0x13ab;
1113
+ case 0xab7c: return 0x13ac;
1114
+ case 0xab7d: return 0x13ad;
1115
+ case 0xab7e: return 0x13ae;
1116
+ case 0xab7f: return 0x13af;
1117
+ case 0xab80: return 0x13b0;
1118
+ case 0xab81: return 0x13b1;
1119
+ case 0xab82: return 0x13b2;
1120
+ case 0xab83: return 0x13b3;
1121
+ case 0xab84: return 0x13b4;
1122
+ case 0xab85: return 0x13b5;
1123
+ case 0xab86: return 0x13b6;
1124
+ case 0xab87: return 0x13b7;
1125
+ case 0xab88: return 0x13b8;
1126
+ case 0xab89: return 0x13b9;
1127
+ case 0xab8a: return 0x13ba;
1128
+ case 0xab8b: return 0x13bb;
1129
+ case 0xab8c: return 0x13bc;
1130
+ case 0xab8d: return 0x13bd;
1131
+ case 0xab8e: return 0x13be;
1132
+ case 0xab8f: return 0x13bf;
1133
+ case 0xab90: return 0x13c0;
1134
+ case 0xab91: return 0x13c1;
1135
+ case 0xab92: return 0x13c2;
1136
+ case 0xab93: return 0x13c3;
1137
+ case 0xab94: return 0x13c4;
1138
+ case 0xab95: return 0x13c5;
1139
+ case 0xab96: return 0x13c6;
1140
+ case 0xab97: return 0x13c7;
1141
+ case 0xab98: return 0x13c8;
1142
+ case 0xab99: return 0x13c9;
1143
+ case 0xab9a: return 0x13ca;
1144
+ case 0xab9b: return 0x13cb;
1145
+ case 0xab9c: return 0x13cc;
1146
+ case 0xab9d: return 0x13cd;
1147
+ case 0xab9e: return 0x13ce;
1148
+ case 0xab9f: return 0x13cf;
1149
+ case 0xaba0: return 0x13d0;
1150
+ case 0xaba1: return 0x13d1;
1151
+ case 0xaba2: return 0x13d2;
1152
+ case 0xaba3: return 0x13d3;
1153
+ case 0xaba4: return 0x13d4;
1154
+ case 0xaba5: return 0x13d5;
1155
+ case 0xaba6: return 0x13d6;
1156
+ case 0xaba7: return 0x13d7;
1157
+ case 0xaba8: return 0x13d8;
1158
+ case 0xaba9: return 0x13d9;
1159
+ case 0xabaa: return 0x13da;
1160
+ case 0xabab: return 0x13db;
1161
+ case 0xabac: return 0x13dc;
1162
+ case 0xabad: return 0x13dd;
1163
+ case 0xabae: return 0x13de;
1164
+ case 0xabaf: return 0x13df;
1165
+ case 0xabb0: return 0x13e0;
1166
+ case 0xabb1: return 0x13e1;
1167
+ case 0xabb2: return 0x13e2;
1168
+ case 0xabb3: return 0x13e3;
1169
+ case 0xabb4: return 0x13e4;
1170
+ case 0xabb5: return 0x13e5;
1171
+ case 0xabb6: return 0x13e6;
1172
+ case 0xabb7: return 0x13e7;
1173
+ case 0xabb8: return 0x13e8;
1174
+ case 0xabb9: return 0x13e9;
1175
+ case 0xabba: return 0x13ea;
1176
+ case 0xabbb: return 0x13eb;
1177
+ case 0xabbc: return 0x13ec;
1178
+ case 0xabbd: return 0x13ed;
1179
+ case 0xabbe: return 0x13ee;
1180
+ case 0xabbf: return 0x13ef;
1181
+ case 0xff21: return 0xff41;
1182
+ case 0xff22: return 0xff42;
1183
+ case 0xff23: return 0xff43;
1184
+ case 0xff24: return 0xff44;
1185
+ case 0xff25: return 0xff45;
1186
+ case 0xff26: return 0xff46;
1187
+ case 0xff27: return 0xff47;
1188
+ case 0xff28: return 0xff48;
1189
+ case 0xff29: return 0xff49;
1190
+ case 0xff2a: return 0xff4a;
1191
+ case 0xff2b: return 0xff4b;
1192
+ case 0xff2c: return 0xff4c;
1193
+ case 0xff2d: return 0xff4d;
1194
+ case 0xff2e: return 0xff4e;
1195
+ case 0xff2f: return 0xff4f;
1196
+ case 0xff30: return 0xff50;
1197
+ case 0xff31: return 0xff51;
1198
+ case 0xff32: return 0xff52;
1199
+ case 0xff33: return 0xff53;
1200
+ case 0xff34: return 0xff54;
1201
+ case 0xff35: return 0xff55;
1202
+ case 0xff36: return 0xff56;
1203
+ case 0xff37: return 0xff57;
1204
+ case 0xff38: return 0xff58;
1205
+ case 0xff39: return 0xff59;
1206
+ case 0xff3a: return 0xff5a;
1207
+ case 0x10400: return 0x10428;
1208
+ case 0x10401: return 0x10429;
1209
+ case 0x10402: return 0x1042a;
1210
+ case 0x10403: return 0x1042b;
1211
+ case 0x10404: return 0x1042c;
1212
+ case 0x10405: return 0x1042d;
1213
+ case 0x10406: return 0x1042e;
1214
+ case 0x10407: return 0x1042f;
1215
+ case 0x10408: return 0x10430;
1216
+ case 0x10409: return 0x10431;
1217
+ case 0x1040a: return 0x10432;
1218
+ case 0x1040b: return 0x10433;
1219
+ case 0x1040c: return 0x10434;
1220
+ case 0x1040d: return 0x10435;
1221
+ case 0x1040e: return 0x10436;
1222
+ case 0x1040f: return 0x10437;
1223
+ case 0x10410: return 0x10438;
1224
+ case 0x10411: return 0x10439;
1225
+ case 0x10412: return 0x1043a;
1226
+ case 0x10413: return 0x1043b;
1227
+ case 0x10414: return 0x1043c;
1228
+ case 0x10415: return 0x1043d;
1229
+ case 0x10416: return 0x1043e;
1230
+ case 0x10417: return 0x1043f;
1231
+ case 0x10418: return 0x10440;
1232
+ case 0x10419: return 0x10441;
1233
+ case 0x1041a: return 0x10442;
1234
+ case 0x1041b: return 0x10443;
1235
+ case 0x1041c: return 0x10444;
1236
+ case 0x1041d: return 0x10445;
1237
+ case 0x1041e: return 0x10446;
1238
+ case 0x1041f: return 0x10447;
1239
+ case 0x10420: return 0x10448;
1240
+ case 0x10421: return 0x10449;
1241
+ case 0x10422: return 0x1044a;
1242
+ case 0x10423: return 0x1044b;
1243
+ case 0x10424: return 0x1044c;
1244
+ case 0x10425: return 0x1044d;
1245
+ case 0x10426: return 0x1044e;
1246
+ case 0x10427: return 0x1044f;
1247
+ case 0x104b0: return 0x104d8;
1248
+ case 0x104b1: return 0x104d9;
1249
+ case 0x104b2: return 0x104da;
1250
+ case 0x104b3: return 0x104db;
1251
+ case 0x104b4: return 0x104dc;
1252
+ case 0x104b5: return 0x104dd;
1253
+ case 0x104b6: return 0x104de;
1254
+ case 0x104b7: return 0x104df;
1255
+ case 0x104b8: return 0x104e0;
1256
+ case 0x104b9: return 0x104e1;
1257
+ case 0x104ba: return 0x104e2;
1258
+ case 0x104bb: return 0x104e3;
1259
+ case 0x104bc: return 0x104e4;
1260
+ case 0x104bd: return 0x104e5;
1261
+ case 0x104be: return 0x104e6;
1262
+ case 0x104bf: return 0x104e7;
1263
+ case 0x104c0: return 0x104e8;
1264
+ case 0x104c1: return 0x104e9;
1265
+ case 0x104c2: return 0x104ea;
1266
+ case 0x104c3: return 0x104eb;
1267
+ case 0x104c4: return 0x104ec;
1268
+ case 0x104c5: return 0x104ed;
1269
+ case 0x104c6: return 0x104ee;
1270
+ case 0x104c7: return 0x104ef;
1271
+ case 0x104c8: return 0x104f0;
1272
+ case 0x104c9: return 0x104f1;
1273
+ case 0x104ca: return 0x104f2;
1274
+ case 0x104cb: return 0x104f3;
1275
+ case 0x104cc: return 0x104f4;
1276
+ case 0x104cd: return 0x104f5;
1277
+ case 0x104ce: return 0x104f6;
1278
+ case 0x104cf: return 0x104f7;
1279
+ case 0x104d0: return 0x104f8;
1280
+ case 0x104d1: return 0x104f9;
1281
+ case 0x104d2: return 0x104fa;
1282
+ case 0x104d3: return 0x104fb;
1283
+ case 0x10c80: return 0x10cc0;
1284
+ case 0x10c81: return 0x10cc1;
1285
+ case 0x10c82: return 0x10cc2;
1286
+ case 0x10c83: return 0x10cc3;
1287
+ case 0x10c84: return 0x10cc4;
1288
+ case 0x10c85: return 0x10cc5;
1289
+ case 0x10c86: return 0x10cc6;
1290
+ case 0x10c87: return 0x10cc7;
1291
+ case 0x10c88: return 0x10cc8;
1292
+ case 0x10c89: return 0x10cc9;
1293
+ case 0x10c8a: return 0x10cca;
1294
+ case 0x10c8b: return 0x10ccb;
1295
+ case 0x10c8c: return 0x10ccc;
1296
+ case 0x10c8d: return 0x10ccd;
1297
+ case 0x10c8e: return 0x10cce;
1298
+ case 0x10c8f: return 0x10ccf;
1299
+ case 0x10c90: return 0x10cd0;
1300
+ case 0x10c91: return 0x10cd1;
1301
+ case 0x10c92: return 0x10cd2;
1302
+ case 0x10c93: return 0x10cd3;
1303
+ case 0x10c94: return 0x10cd4;
1304
+ case 0x10c95: return 0x10cd5;
1305
+ case 0x10c96: return 0x10cd6;
1306
+ case 0x10c97: return 0x10cd7;
1307
+ case 0x10c98: return 0x10cd8;
1308
+ case 0x10c99: return 0x10cd9;
1309
+ case 0x10c9a: return 0x10cda;
1310
+ case 0x10c9b: return 0x10cdb;
1311
+ case 0x10c9c: return 0x10cdc;
1312
+ case 0x10c9d: return 0x10cdd;
1313
+ case 0x10c9e: return 0x10cde;
1314
+ case 0x10c9f: return 0x10cdf;
1315
+ case 0x10ca0: return 0x10ce0;
1316
+ case 0x10ca1: return 0x10ce1;
1317
+ case 0x10ca2: return 0x10ce2;
1318
+ case 0x10ca3: return 0x10ce3;
1319
+ case 0x10ca4: return 0x10ce4;
1320
+ case 0x10ca5: return 0x10ce5;
1321
+ case 0x10ca6: return 0x10ce6;
1322
+ case 0x10ca7: return 0x10ce7;
1323
+ case 0x10ca8: return 0x10ce8;
1324
+ case 0x10ca9: return 0x10ce9;
1325
+ case 0x10caa: return 0x10cea;
1326
+ case 0x10cab: return 0x10ceb;
1327
+ case 0x10cac: return 0x10cec;
1328
+ case 0x10cad: return 0x10ced;
1329
+ case 0x10cae: return 0x10cee;
1330
+ case 0x10caf: return 0x10cef;
1331
+ case 0x10cb0: return 0x10cf0;
1332
+ case 0x10cb1: return 0x10cf1;
1333
+ case 0x10cb2: return 0x10cf2;
1334
+ case 0x118a0: return 0x118c0;
1335
+ case 0x118a1: return 0x118c1;
1336
+ case 0x118a2: return 0x118c2;
1337
+ case 0x118a3: return 0x118c3;
1338
+ case 0x118a4: return 0x118c4;
1339
+ case 0x118a5: return 0x118c5;
1340
+ case 0x118a6: return 0x118c6;
1341
+ case 0x118a7: return 0x118c7;
1342
+ case 0x118a8: return 0x118c8;
1343
+ case 0x118a9: return 0x118c9;
1344
+ case 0x118aa: return 0x118ca;
1345
+ case 0x118ab: return 0x118cb;
1346
+ case 0x118ac: return 0x118cc;
1347
+ case 0x118ad: return 0x118cd;
1348
+ case 0x118ae: return 0x118ce;
1349
+ case 0x118af: return 0x118cf;
1350
+ case 0x118b0: return 0x118d0;
1351
+ case 0x118b1: return 0x118d1;
1352
+ case 0x118b2: return 0x118d2;
1353
+ case 0x118b3: return 0x118d3;
1354
+ case 0x118b4: return 0x118d4;
1355
+ case 0x118b5: return 0x118d5;
1356
+ case 0x118b6: return 0x118d6;
1357
+ case 0x118b7: return 0x118d7;
1358
+ case 0x118b8: return 0x118d8;
1359
+ case 0x118b9: return 0x118d9;
1360
+ case 0x118ba: return 0x118da;
1361
+ case 0x118bb: return 0x118db;
1362
+ case 0x118bc: return 0x118dc;
1363
+ case 0x118bd: return 0x118dd;
1364
+ case 0x118be: return 0x118de;
1365
+ case 0x118bf: return 0x118df;
1366
+ case 0x16e40: return 0x16e60;
1367
+ case 0x16e41: return 0x16e61;
1368
+ case 0x16e42: return 0x16e62;
1369
+ case 0x16e43: return 0x16e63;
1370
+ case 0x16e44: return 0x16e64;
1371
+ case 0x16e45: return 0x16e65;
1372
+ case 0x16e46: return 0x16e66;
1373
+ case 0x16e47: return 0x16e67;
1374
+ case 0x16e48: return 0x16e68;
1375
+ case 0x16e49: return 0x16e69;
1376
+ case 0x16e4a: return 0x16e6a;
1377
+ case 0x16e4b: return 0x16e6b;
1378
+ case 0x16e4c: return 0x16e6c;
1379
+ case 0x16e4d: return 0x16e6d;
1380
+ case 0x16e4e: return 0x16e6e;
1381
+ case 0x16e4f: return 0x16e6f;
1382
+ case 0x16e50: return 0x16e70;
1383
+ case 0x16e51: return 0x16e71;
1384
+ case 0x16e52: return 0x16e72;
1385
+ case 0x16e53: return 0x16e73;
1386
+ case 0x16e54: return 0x16e74;
1387
+ case 0x16e55: return 0x16e75;
1388
+ case 0x16e56: return 0x16e76;
1389
+ case 0x16e57: return 0x16e77;
1390
+ case 0x16e58: return 0x16e78;
1391
+ case 0x16e59: return 0x16e79;
1392
+ case 0x16e5a: return 0x16e7a;
1393
+ case 0x16e5b: return 0x16e7b;
1394
+ case 0x16e5c: return 0x16e7c;
1395
+ case 0x16e5d: return 0x16e7d;
1396
+ case 0x16e5e: return 0x16e7e;
1397
+ case 0x16e5f: return 0x16e7f;
1398
+ case 0x1e900: return 0x1e922;
1399
+ case 0x1e901: return 0x1e923;
1400
+ case 0x1e902: return 0x1e924;
1401
+ case 0x1e903: return 0x1e925;
1402
+ case 0x1e904: return 0x1e926;
1403
+ case 0x1e905: return 0x1e927;
1404
+ case 0x1e906: return 0x1e928;
1405
+ case 0x1e907: return 0x1e929;
1406
+ case 0x1e908: return 0x1e92a;
1407
+ case 0x1e909: return 0x1e92b;
1408
+ case 0x1e90a: return 0x1e92c;
1409
+ case 0x1e90b: return 0x1e92d;
1410
+ case 0x1e90c: return 0x1e92e;
1411
+ case 0x1e90d: return 0x1e92f;
1412
+ case 0x1e90e: return 0x1e930;
1413
+ case 0x1e90f: return 0x1e931;
1414
+ case 0x1e910: return 0x1e932;
1415
+ case 0x1e911: return 0x1e933;
1416
+ case 0x1e912: return 0x1e934;
1417
+ case 0x1e913: return 0x1e935;
1418
+ case 0x1e914: return 0x1e936;
1419
+ case 0x1e915: return 0x1e937;
1420
+ case 0x1e916: return 0x1e938;
1421
+ case 0x1e917: return 0x1e939;
1422
+ case 0x1e918: return 0x1e93a;
1423
+ case 0x1e919: return 0x1e93b;
1424
+ case 0x1e91a: return 0x1e93c;
1425
+ case 0x1e91b: return 0x1e93d;
1426
+ case 0x1e91c: return 0x1e93e;
1427
+ case 0x1e91d: return 0x1e93f;
1428
+ case 0x1e91e: return 0x1e940;
1429
+ case 0x1e91f: return 0x1e941;
1430
+ case 0x1e920: return 0x1e942;
1431
+ case 0x1e921: return 0x1e943;
1432
+ default: return codepoint;
1433
+ }
1434
+ }